mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-19 20:32:12 +00:00
Fix bug in case estimate of NZ for overlap matrix is wrong.
This commit is contained in:
@@ -78,7 +78,7 @@ subroutine psb_dilu_bld(a,desc_a,p,upd,info)
|
||||
external mpi_wtime
|
||||
logical, parameter :: debugprt=.false., debug=.false., aggr_dump=.false.
|
||||
integer nztota, nztotb, nztmp, nzl, nnr, ir, err_act,&
|
||||
& n_row, nrow_a,n_col, nhalo,lovr, ind, iind
|
||||
& n_row, nrow_a,n_col, nhalo, ind, iind
|
||||
integer :: ictxt,np,me
|
||||
character(len=20) :: name, ch_err
|
||||
|
||||
@@ -186,6 +186,7 @@ subroutine psb_dilu_bld(a,desc_a,p,upd,info)
|
||||
|
||||
nrow_a = desc_a%matrix_data(psb_n_row_)
|
||||
call psb_spinfo(psb_nztotreq_,a,nztota,info)
|
||||
if (info == 0) call psb_spinfo(psb_nztotreq_,blck,nztotb,info)
|
||||
if(info/=0) then
|
||||
info=4010
|
||||
ch_err='psb_spinfo'
|
||||
@@ -198,13 +199,12 @@ subroutine psb_dilu_bld(a,desc_a,p,upd,info)
|
||||
n_col = desc_a%matrix_data(psb_n_col_)
|
||||
nhalo = n_col-nrow_a
|
||||
n_row = p%desc_data%matrix_data(psb_n_row_)
|
||||
lovr = ((nztota+nrow_a-1)/nrow_a)*nhalo*p%iprcparm(n_ovr_)
|
||||
p%av(l_pr_)%m = n_row
|
||||
p%av(l_pr_)%k = n_row
|
||||
p%av(u_pr_)%m = n_row
|
||||
p%av(u_pr_)%k = n_row
|
||||
call psb_sp_all(n_row,n_row,p%av(l_pr_),nztota+lovr,info)
|
||||
if (info == 0) call psb_sp_all(n_row,n_row,p%av(u_pr_),nztota+lovr,info)
|
||||
call psb_sp_all(n_row,n_row,p%av(l_pr_),nztota+nztotb,info)
|
||||
if (info == 0) call psb_sp_all(n_row,n_row,p%av(u_pr_),nztota+nztotb,info)
|
||||
if(info/=0) then
|
||||
info=4010
|
||||
ch_err='psb_sp_all'
|
||||
|
||||
@@ -77,8 +77,8 @@ subroutine psb_zilu_bld(a,desc_a,p,upd,info)
|
||||
real(kind(1.d0)) :: t1,t2,t3,t4,t5,t6,mpi_wtime, t7, t8
|
||||
external mpi_wtime
|
||||
logical, parameter :: debugprt=.false., debug=.false., aggr_dump=.false.
|
||||
integer nztota, nztotb, nztmp, nzl, nnr, ir, err_act, &
|
||||
& n_row, nrow_a,n_col, nhalo,lovr, ind, iind
|
||||
integer nztota, nztotb, nztmp, nzl, nnr, ir, err_act,&
|
||||
& n_row, nrow_a,n_col, nhalo, ind, iind
|
||||
integer :: ictxt,np,me
|
||||
character(len=20) :: name, ch_err
|
||||
|
||||
@@ -186,6 +186,7 @@ subroutine psb_zilu_bld(a,desc_a,p,upd,info)
|
||||
|
||||
nrow_a = desc_a%matrix_data(psb_n_row_)
|
||||
call psb_spinfo(psb_nztotreq_,a,nztota,info)
|
||||
if (info == 0) call psb_spinfo(psb_nztotreq_,blck,nztotb,info)
|
||||
if(info/=0) then
|
||||
info=4010
|
||||
ch_err='psb_spinfo'
|
||||
@@ -198,13 +199,12 @@ subroutine psb_zilu_bld(a,desc_a,p,upd,info)
|
||||
n_col = desc_a%matrix_data(psb_n_col_)
|
||||
nhalo = n_col-nrow_a
|
||||
n_row = p%desc_data%matrix_data(psb_n_row_)
|
||||
lovr = ((nztota+nrow_a-1)/nrow_a)*nhalo*p%iprcparm(n_ovr_)
|
||||
p%av(l_pr_)%m = n_row
|
||||
p%av(l_pr_)%k = n_row
|
||||
p%av(u_pr_)%m = n_row
|
||||
p%av(u_pr_)%k = n_row
|
||||
call psb_sp_all(n_row,n_row,p%av(l_pr_),nztota+lovr,info)
|
||||
if (info == 0) call psb_sp_all(n_row,n_row,p%av(u_pr_),nztota+lovr,info)
|
||||
call psb_sp_all(n_row,n_row,p%av(l_pr_),nztota+nztotb,info)
|
||||
if (info == 0) call psb_sp_all(n_row,n_row,p%av(u_pr_),nztota+nztotb,info)
|
||||
if(info/=0) then
|
||||
info=4010
|
||||
ch_err='psb_sp_all'
|
||||
|
||||
Reference in New Issue
Block a user