|
|
|
@ -120,7 +120,7 @@ subroutine mld_caggrmat_minnrg_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_re
|
|
|
|
|
character(len=20) :: name
|
|
|
|
|
type(psb_cspmat_type) :: af, ptilde, rtilde, atran, atp, atdatp
|
|
|
|
|
type(psb_cspmat_type) :: am3,am4, ap, adap,atmp,rada, ra, atmp2, dap, dadap, da
|
|
|
|
|
type(psb_cspmat_type) :: dat, datp, datdatp, atmp3
|
|
|
|
|
type(psb_cspmat_type) :: dat, datp, datdatp, atmp3, tmp_prol
|
|
|
|
|
type(psb_c_coo_sparse_mat) :: tmpcoo
|
|
|
|
|
type(psb_c_csr_sparse_mat) :: acsr1, acsr2, acsr3, acsr, acsrf
|
|
|
|
|
type(psb_c_csc_sparse_mat) :: csc_dap, csc_dadap, csc_datp, csc_datdatp, acsc
|
|
|
|
@ -512,9 +512,10 @@ subroutine mld_caggrmat_minnrg_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_re
|
|
|
|
|
! Now we have to gather the halo of op_prol, and add it to itself
|
|
|
|
|
! to multiply it by A,
|
|
|
|
|
!
|
|
|
|
|
call psb_sphalo(op_prol,desc_a,am4,info,&
|
|
|
|
|
call op_prol%clone(tmp_prol,info)
|
|
|
|
|
if (info == psb_success_) call psb_sphalo(tmp_prol,desc_a,am4,info,&
|
|
|
|
|
& colcnv=.false.,rowscale=.true.)
|
|
|
|
|
if (info == psb_success_) call psb_rwextd(ncol,op_prol,info,b=am4)
|
|
|
|
|
if (info == psb_success_) call psb_rwextd(ncol,tmp_prol,info,b=am4)
|
|
|
|
|
if (info == psb_success_) call am4%free()
|
|
|
|
|
|
|
|
|
|
if(info /= psb_success_) then
|
|
|
|
@ -547,13 +548,13 @@ subroutine mld_caggrmat_minnrg_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_re
|
|
|
|
|
& write(debug_unit,*) me,' ',trim(name),&
|
|
|
|
|
& 'starting sphalo/ rwxtd'
|
|
|
|
|
|
|
|
|
|
call psb_symbmm(a,op_prol,am3,info)
|
|
|
|
|
call psb_symbmm(a,tmp_prol,am3,info)
|
|
|
|
|
if(info /= psb_success_) then
|
|
|
|
|
call psb_errpush(psb_err_from_subroutine_,name,&
|
|
|
|
|
& a_err='symbmm 2')
|
|
|
|
|
goto 9999
|
|
|
|
|
end if
|
|
|
|
|
call psb_numbmm(a,op_prol,am3)
|
|
|
|
|
call psb_numbmm(a,tmp_prol,am3)
|
|
|
|
|
if (debug_level >= psb_debug_outer_) &
|
|
|
|
|
& write(debug_unit,*) me,' ',trim(name),&
|
|
|
|
|
& 'Done NUMBMM 2'
|
|
|
|
|