Fix cmp_avg_cr

remap-coarse
sfilippone 3 days ago
parent 8ac5b90454
commit 9cf27f6c46

@ -572,13 +572,17 @@ contains
integer(psb_ipk_) :: il, nl, iam, np integer(psb_ipk_) :: il, nl, iam, np
avgcr = szero avgcr = szero
ctxt = prec%ctxt
call psb_info(ctxt,iam,np)
nl = prec%get_nlevs() nl = prec%get_nlevs()
do il=2,nl do il=2,nl
avgcr = avgcr + max(szero,prec%precv(il)%szratio) if (prec%precv(il)%base_desc%is_ok()) then
ctxt = prec%precv(il)%base_desc%get_ctxt()
call psb_info(ctxt,iam,np)
if (iam >=0) avgcr = avgcr + max(szero,prec%precv(il)%szratio)
end if
end do end do
avgcr = avgcr / (nl-1) avgcr = avgcr / (nl-1)
ctxt = prec%ctxt
call psb_info(ctxt,iam,np)
call psb_sum(ctxt,avgcr) call psb_sum(ctxt,avgcr)
prec%ag_data%avg_cr = avgcr/np prec%ag_data%avg_cr = avgcr/np
end subroutine amg_c_cmp_avg_cr end subroutine amg_c_cmp_avg_cr

@ -572,13 +572,17 @@ contains
integer(psb_ipk_) :: il, nl, iam, np integer(psb_ipk_) :: il, nl, iam, np
avgcr = dzero avgcr = dzero
ctxt = prec%ctxt
call psb_info(ctxt,iam,np)
nl = prec%get_nlevs() nl = prec%get_nlevs()
do il=2,nl do il=2,nl
avgcr = avgcr + max(dzero,prec%precv(il)%szratio) if (prec%precv(il)%base_desc%is_ok()) then
ctxt = prec%precv(il)%base_desc%get_ctxt()
call psb_info(ctxt,iam,np)
if (iam >=0) avgcr = avgcr + max(dzero,prec%precv(il)%szratio)
end if
end do end do
avgcr = avgcr / (nl-1) avgcr = avgcr / (nl-1)
ctxt = prec%ctxt
call psb_info(ctxt,iam,np)
call psb_sum(ctxt,avgcr) call psb_sum(ctxt,avgcr)
prec%ag_data%avg_cr = avgcr/np prec%ag_data%avg_cr = avgcr/np
end subroutine amg_d_cmp_avg_cr end subroutine amg_d_cmp_avg_cr

@ -572,13 +572,17 @@ contains
integer(psb_ipk_) :: il, nl, iam, np integer(psb_ipk_) :: il, nl, iam, np
avgcr = szero avgcr = szero
ctxt = prec%ctxt
call psb_info(ctxt,iam,np)
nl = prec%get_nlevs() nl = prec%get_nlevs()
do il=2,nl do il=2,nl
avgcr = avgcr + max(szero,prec%precv(il)%szratio) if (prec%precv(il)%base_desc%is_ok()) then
ctxt = prec%precv(il)%base_desc%get_ctxt()
call psb_info(ctxt,iam,np)
if (iam >=0) avgcr = avgcr + max(szero,prec%precv(il)%szratio)
end if
end do end do
avgcr = avgcr / (nl-1) avgcr = avgcr / (nl-1)
ctxt = prec%ctxt
call psb_info(ctxt,iam,np)
call psb_sum(ctxt,avgcr) call psb_sum(ctxt,avgcr)
prec%ag_data%avg_cr = avgcr/np prec%ag_data%avg_cr = avgcr/np
end subroutine amg_s_cmp_avg_cr end subroutine amg_s_cmp_avg_cr

@ -572,13 +572,17 @@ contains
integer(psb_ipk_) :: il, nl, iam, np integer(psb_ipk_) :: il, nl, iam, np
avgcr = dzero avgcr = dzero
ctxt = prec%ctxt
call psb_info(ctxt,iam,np)
nl = prec%get_nlevs() nl = prec%get_nlevs()
do il=2,nl do il=2,nl
avgcr = avgcr + max(dzero,prec%precv(il)%szratio) if (prec%precv(il)%base_desc%is_ok()) then
ctxt = prec%precv(il)%base_desc%get_ctxt()
call psb_info(ctxt,iam,np)
if (iam >=0) avgcr = avgcr + max(dzero,prec%precv(il)%szratio)
end if
end do end do
avgcr = avgcr / (nl-1) avgcr = avgcr / (nl-1)
ctxt = prec%ctxt
call psb_info(ctxt,iam,np)
call psb_sum(ctxt,avgcr) call psb_sum(ctxt,avgcr)
prec%ag_data%avg_cr = avgcr/np prec%ag_data%avg_cr = avgcr/np
end subroutine amg_z_cmp_avg_cr end subroutine amg_z_cmp_avg_cr

Loading…
Cancel
Save