From 0a3d2871c93e0b54344e09d5b37d6fb92c612987 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Fri, 25 Jul 2008 13:53:26 +0000 Subject: [PATCH] psblas2-dev/base/serial psb_cipcoo2csc.f90 psb_sipcoo2csc.f90 Aligned with double version, --- base/serial/psb_cipcoo2csc.f90 | 15 +++++++++++---- base/serial/psb_sipcoo2csc.f90 | 15 +++++++++++---- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/base/serial/psb_cipcoo2csc.f90 b/base/serial/psb_cipcoo2csc.f90 index d25600ab..c7d05a36 100644 --- a/base/serial/psb_cipcoo2csc.f90 +++ b/base/serial/psb_cipcoo2csc.f90 @@ -76,9 +76,11 @@ subroutine psb_cipcoo2csc(a,info,clshr) end if call psb_fixcoo(a,info,idir=1) - nc = a%k - nza = a%infoa(psb_nnz_) - allocate(iaux(max(nc+1,1)),stat=info) + if (info == 0) then + nc = a%k + nza = a%infoa(psb_nnz_) + allocate(iaux(max(nc+1,1)),stat=info) + end if if (info /= 0) then info=4025 call psb_errpush(info,name,a_err='integer',i_err=(/max(nc+1,1),0,0,0,0/)) @@ -88,7 +90,12 @@ subroutine psb_cipcoo2csc(a,info,clshr) & ': out of fixcoo',nza,nc,size(a%ia2),size(iaux) call psb_transfer(a%ia2,itemp,info) - call psb_transfer(iaux,a%ia2,info) + if (info == 0) call psb_transfer(iaux,a%ia2,info) + if (info /= 0) then + info=4010 + call psb_errpush(info,name,a_err='psb_transfer') + goto 9999 + end if ! ! This routine can be used in two modes: diff --git a/base/serial/psb_sipcoo2csc.f90 b/base/serial/psb_sipcoo2csc.f90 index d84a0ff9..ea04484b 100644 --- a/base/serial/psb_sipcoo2csc.f90 +++ b/base/serial/psb_sipcoo2csc.f90 @@ -76,9 +76,11 @@ subroutine psb_sipcoo2csc(a,info,clshr) end if call psb_fixcoo(a,info,idir=1) - nc = a%k - nza = a%infoa(psb_nnz_) - allocate(iaux(max(nc+1,1)),stat=info) + if (info == 0) then + nc = a%k + nza = a%infoa(psb_nnz_) + allocate(iaux(max(nc+1,1)),stat=info) + end if if (info /= 0) then info=4025 call psb_errpush(info,name,a_err='integer',i_err=(/max(nc+1,1),0,0,0,0/)) @@ -88,7 +90,12 @@ subroutine psb_sipcoo2csc(a,info,clshr) & ': out of fixcoo',nza,nc,size(a%ia2),size(iaux) call psb_transfer(a%ia2,itemp,info) - call psb_transfer(iaux,a%ia2,info) + if (info == 0) call psb_transfer(iaux,a%ia2,info) + if (info /= 0) then + info=4010 + call psb_errpush(info,name,a_err='psb_transfer') + goto 9999 + end if ! ! This routine can be used in two modes: