Fix bug in case estimate of NZ for overlap matrix is wrong.

psblas3-type-indexed
Salvatore Filippone 19 years ago
parent ccf9f79bfa
commit fcc86b18fc

@ -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'

@ -78,7 +78,7 @@ subroutine psb_zilu_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_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'

Loading…
Cancel
Save