Fixes for build paths with SuperLU and UMFPACK.

stopcriterion
Salvatore Filippone 18 years ago
parent bdf13ac3d1
commit 917ae84e75

@ -68,14 +68,13 @@ subroutine psb_dbjac_bld(a,desc_a,p,upd,info)
character :: trans, unitd character :: trans, unitd
type(psb_dspmat_type) :: blck, atmp type(psb_dspmat_type) :: blck, atmp
real(kind(1.d0)) :: t1,t2,t3,t4,t5,t6, t7, t8 real(kind(1.d0)) :: t1,t2,t3,t4,t5,t6, t7, t8
logical, parameter :: debugprt=.true., debug=.false., aggr_dump=.false. logical, parameter :: debugprt=.false., debug=.false., aggr_dump=.false.
integer nztota, nztotb, nztmp, nzl, nnr, ir, err_act,& integer nztota, nztotb, nztmp, nzl, nnr, ir, err_act,&
& n_row, nrow_a,n_col, nhalo, ind, iind, i1,i2,ia & n_row, nrow_a,n_col, nhalo, ind, iind, i1,i2,ia
integer :: ictxt,np,me integer :: ictxt,np,me
character(len=20) :: name, ch_err character(len=20) :: name, ch_err
character(len=5), parameter :: coofmt='COO' character(len=5), parameter :: coofmt='COO'
if(psb_get_errstatus().ne.0) return if(psb_get_errstatus().ne.0) return
info=0 info=0
name='psb_dbjac_bld' name='psb_dbjac_bld'
@ -240,15 +239,6 @@ subroutine psb_dbjac_bld(a,desc_a,p,upd,info)
case(f_ilu_n_,f_ilu_e_) case(f_ilu_n_,f_ilu_e_)
if (debugprt) then
call psb_barrier(ictxt)
open(40+me)
call psb_csprt(40+me,a,head='% Local matrix')
close(40+me)
open(60+me)
call psb_csprt(60+me,blck,head='% Halo matrix')
close(60+me)
endif
call psb_ipcoo2csr(blck,info,rwshr=.true.) call psb_ipcoo2csr(blck,info,rwshr=.true.)
@ -288,7 +278,10 @@ subroutine psb_dbjac_bld(a,desc_a,p,upd,info)
call psb_errpush(4010,name,a_err='psb_csdp') call psb_errpush(4010,name,a_err='psb_csdp')
goto 9999 goto 9999
end if end if
call psb_rwextd(atmp%m+blck%m,atmp,info,blck,rowscale=.true.)
n_row = psb_cd_get_local_rows(p%desc_data)
n_col = psb_cd_get_local_cols(p%desc_data)
call psb_rwextd(n_row,atmp,info,b=blck,rowscale=.false.)
if (info == 0) call psb_ipcoo2csr(atmp,info) if (info == 0) call psb_ipcoo2csr(atmp,info)
if (info == 0) call psb_slu_bld(atmp,p%desc_data,p,info) if (info == 0) call psb_slu_bld(atmp,p%desc_data,p,info)
if(info /= 0) then if(info /= 0) then
@ -311,7 +304,11 @@ subroutine psb_dbjac_bld(a,desc_a,p,upd,info)
call psb_errpush(4010,name,a_err='psb_csdp') call psb_errpush(4010,name,a_err='psb_csdp')
goto 9999 goto 9999
end if end if
call psb_rwextd(atmp%m+blck%m,atmp,info,blck,rowscale=.true.)
n_row = psb_cd_get_local_rows(p%desc_data)
n_col = psb_cd_get_local_cols(p%desc_data)
call psb_rwextd(n_row,atmp,info,b=blck,rowscale=.false.)
if (info == 0) call psb_ipcoo2csc(atmp,info,clshr=.true.) if (info == 0) call psb_ipcoo2csc(atmp,info,clshr=.true.)
if (info /= 0) then if (info /= 0) then
call psb_errpush(4010,name,a_err='psb_ipcoo2csc') call psb_errpush(4010,name,a_err='psb_ipcoo2csc')

@ -198,7 +198,7 @@ subroutine psb_zbjac_bld(a,desc_a,p,upd,info)
case(f_umf_) case(f_umf_)
call psb_ipcoo2csc(atmp,info) call psb_ipcoo2csc(atmp,info,clshr=.true.)
if (info /= 0) then if (info /= 0) then
call psb_errpush(4010,name,a_err='psb_ipcoo2csc') call psb_errpush(4010,name,a_err='psb_ipcoo2csc')
goto 9999 goto 9999
@ -240,6 +240,7 @@ subroutine psb_zbjac_bld(a,desc_a,p,upd,info)
case(f_ilu_n_,f_ilu_e_) case(f_ilu_n_,f_ilu_e_)
call psb_ipcoo2csr(blck,info,rwshr=.true.) call psb_ipcoo2csr(blck,info,rwshr=.true.)
if(info/=0) then if(info/=0) then
@ -278,7 +279,10 @@ subroutine psb_zbjac_bld(a,desc_a,p,upd,info)
call psb_errpush(4010,name,a_err='psb_csdp') call psb_errpush(4010,name,a_err='psb_csdp')
goto 9999 goto 9999
end if end if
call psb_rwextd(atmp%m+blck%m,atmp,info,blck,rowscale=.true.)
n_row = psb_cd_get_local_rows(p%desc_data)
n_col = psb_cd_get_local_cols(p%desc_data)
call psb_rwextd(n_row,atmp,info,b=blck,rowscale=.false.)
if (info == 0) call psb_ipcoo2csr(atmp,info) if (info == 0) call psb_ipcoo2csr(atmp,info)
if (info == 0) call psb_slu_bld(atmp,p%desc_data,p,info) if (info == 0) call psb_slu_bld(atmp,p%desc_data,p,info)
if(info /= 0) then if(info /= 0) then
@ -301,19 +305,12 @@ subroutine psb_zbjac_bld(a,desc_a,p,upd,info)
call psb_errpush(4010,name,a_err='psb_csdp') call psb_errpush(4010,name,a_err='psb_csdp')
goto 9999 goto 9999
end if end if
if (debugprt) then
call psb_barrier(ictxt)
open(40+me)
call psb_csprt(40+me,atmp,head='% Local matrix')
close(40+me)
open(60+me)
call psb_csprt(60+me,blck,head='% Halo matrix')
close(60+me)
endif
call psb_rwextd(atmp%m+blck%m,atmp,info,blck,rowscale=.true.) n_row = psb_cd_get_local_rows(p%desc_data)
if (info == 0) call psb_ipcoo2csc(atmp,info) n_col = psb_cd_get_local_cols(p%desc_data)
call psb_rwextd(n_row,atmp,info,b=blck,rowscale=.false.)
if (info == 0) call psb_ipcoo2csc(atmp,info,clshr=.true.)
if (info /= 0) then if (info /= 0) then
call psb_errpush(4010,name,a_err='psb_ipcoo2csc') call psb_errpush(4010,name,a_err='psb_ipcoo2csc')
goto 9999 goto 9999

Loading…
Cancel
Save