From fcc86b18fcd150814f9bed8014859265237dc893 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Tue, 18 Jul 2006 13:24:05 +0000 Subject: [PATCH] Fix bug in case estimate of NZ for overlap matrix is wrong. --- src/prec/psb_dilu_bld.f90 | 8 ++++---- src/prec/psb_zilu_bld.f90 | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/prec/psb_dilu_bld.f90 b/src/prec/psb_dilu_bld.f90 index 81f1f060..a623e636 100644 --- a/src/prec/psb_dilu_bld.f90 +++ b/src/prec/psb_dilu_bld.f90 @@ -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' diff --git a/src/prec/psb_zilu_bld.f90 b/src/prec/psb_zilu_bld.f90 index 1d914bcf..3c9aaa1c 100644 --- a/src/prec/psb_zilu_bld.f90 +++ b/src/prec/psb_zilu_bld.f90 @@ -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'