diff --git a/mlprec/impl/mld_caggrmat_smth_asb.f90 b/mlprec/impl/mld_caggrmat_smth_asb.f90 index 02bf686f..363f7259 100644 --- a/mlprec/impl/mld_caggrmat_smth_asb.f90 +++ b/mlprec/impl/mld_caggrmat_smth_asb.f90 @@ -185,7 +185,7 @@ subroutine mld_caggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest end do call tmpcoo%set_nzeros(ncol) call tmpcoo%set_dupl(psb_dupl_add_) - + call tmpcoo%set_sorted() ! At this point this is in row-major call ptilde%mv_from_coo(tmpcoo,info) if (info == psb_success_) call a%cscnv(acsr3,info,dupl=psb_dupl_add_) @@ -197,7 +197,7 @@ subroutine mld_caggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest ! ! Build the filtered matrix Af from A ! - if (info == psb_success_) call a%cscnv(acsrf,info,dupl=psb_dupl_add_) + if (info == psb_success_) call acsr3%cp_to_fmt(acsrf,info) do i=1,nrow tmp = czero @@ -307,6 +307,7 @@ subroutine mld_caggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest & 'Done NUMBMM 1' else + ! ! Build the smoothed prolongator using the original matrix ! @@ -371,8 +372,9 @@ subroutine mld_caggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest & write(debug_unit,*) me,' ',trim(name),& & 'Done NUMBMM 2',parms%aggr_kind, mld_smooth_prol_ - call op_prol%transp(op_restr) - call op_restr%mv_to(tmpcoo) + call op_prol%cp_to(tmpcoo) + call tmpcoo%transp() + nzl = tmpcoo%get_nzeros() i=0 ! @@ -388,7 +390,7 @@ subroutine mld_caggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest end if end do call tmpcoo%set_nzeros(i) - call tmpcoo%trim() + ! call tmpcoo%trim() call op_restr%mv_from(tmpcoo) call op_restr%cscnv(info,type='csr',dupl=psb_dupl_add_) if (info /= psb_success_) then @@ -422,7 +424,6 @@ subroutine mld_caggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest goto 9999 end if - if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Done smooth_aggregate ' diff --git a/mlprec/impl/mld_daggrmat_smth_asb.f90 b/mlprec/impl/mld_daggrmat_smth_asb.f90 index 4cb4c9ef..500ef1c0 100644 --- a/mlprec/impl/mld_daggrmat_smth_asb.f90 +++ b/mlprec/impl/mld_daggrmat_smth_asb.f90 @@ -185,7 +185,7 @@ subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest end do call tmpcoo%set_nzeros(ncol) call tmpcoo%set_dupl(psb_dupl_add_) - + call tmpcoo%set_sorted() ! At this point this is in row-major call ptilde%mv_from_coo(tmpcoo,info) if (info == psb_success_) call a%cscnv(acsr3,info,dupl=psb_dupl_add_) @@ -197,7 +197,7 @@ subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest ! ! Build the filtered matrix Af from A ! - if (info == psb_success_) call a%cscnv(acsrf,info,dupl=psb_dupl_add_) + if (info == psb_success_) call acsr3%cp_to_fmt(acsrf,info) do i=1,nrow tmp = dzero @@ -307,6 +307,7 @@ subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest & 'Done NUMBMM 1' else + ! ! Build the smoothed prolongator using the original matrix ! @@ -371,8 +372,9 @@ subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest & write(debug_unit,*) me,' ',trim(name),& & 'Done NUMBMM 2',parms%aggr_kind, mld_smooth_prol_ - call op_prol%transp(op_restr) - call op_restr%mv_to(tmpcoo) + call op_prol%cp_to(tmpcoo) + call tmpcoo%transp() + nzl = tmpcoo%get_nzeros() i=0 ! @@ -388,7 +390,7 @@ subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest end if end do call tmpcoo%set_nzeros(i) - call tmpcoo%trim() + ! call tmpcoo%trim() call op_restr%mv_from(tmpcoo) call op_restr%cscnv(info,type='csr',dupl=psb_dupl_add_) if (info /= psb_success_) then @@ -422,7 +424,6 @@ subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest goto 9999 end if - if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Done smooth_aggregate ' diff --git a/mlprec/impl/mld_saggrmat_smth_asb.f90 b/mlprec/impl/mld_saggrmat_smth_asb.f90 index ef39a35c..080af523 100644 --- a/mlprec/impl/mld_saggrmat_smth_asb.f90 +++ b/mlprec/impl/mld_saggrmat_smth_asb.f90 @@ -185,7 +185,7 @@ subroutine mld_saggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest end do call tmpcoo%set_nzeros(ncol) call tmpcoo%set_dupl(psb_dupl_add_) - + call tmpcoo%set_sorted() ! At this point this is in row-major call ptilde%mv_from_coo(tmpcoo,info) if (info == psb_success_) call a%cscnv(acsr3,info,dupl=psb_dupl_add_) @@ -197,7 +197,7 @@ subroutine mld_saggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest ! ! Build the filtered matrix Af from A ! - if (info == psb_success_) call a%cscnv(acsrf,info,dupl=psb_dupl_add_) + if (info == psb_success_) call acsr3%cp_to_fmt(acsrf,info) do i=1,nrow tmp = szero @@ -307,6 +307,7 @@ subroutine mld_saggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest & 'Done NUMBMM 1' else + ! ! Build the smoothed prolongator using the original matrix ! @@ -371,8 +372,9 @@ subroutine mld_saggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest & write(debug_unit,*) me,' ',trim(name),& & 'Done NUMBMM 2',parms%aggr_kind, mld_smooth_prol_ - call op_prol%transp(op_restr) - call op_restr%mv_to(tmpcoo) + call op_prol%cp_to(tmpcoo) + call tmpcoo%transp() + nzl = tmpcoo%get_nzeros() i=0 ! @@ -388,7 +390,7 @@ subroutine mld_saggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest end if end do call tmpcoo%set_nzeros(i) - call tmpcoo%trim() + ! call tmpcoo%trim() call op_restr%mv_from(tmpcoo) call op_restr%cscnv(info,type='csr',dupl=psb_dupl_add_) if (info /= psb_success_) then @@ -422,7 +424,6 @@ subroutine mld_saggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest goto 9999 end if - if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Done smooth_aggregate ' diff --git a/mlprec/impl/mld_zaggrmat_smth_asb.f90 b/mlprec/impl/mld_zaggrmat_smth_asb.f90 index 3274562b..e49f2ae5 100644 --- a/mlprec/impl/mld_zaggrmat_smth_asb.f90 +++ b/mlprec/impl/mld_zaggrmat_smth_asb.f90 @@ -185,7 +185,7 @@ subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest end do call tmpcoo%set_nzeros(ncol) call tmpcoo%set_dupl(psb_dupl_add_) - + call tmpcoo%set_sorted() ! At this point this is in row-major call ptilde%mv_from_coo(tmpcoo,info) if (info == psb_success_) call a%cscnv(acsr3,info,dupl=psb_dupl_add_) @@ -197,7 +197,7 @@ subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest ! ! Build the filtered matrix Af from A ! - if (info == psb_success_) call a%cscnv(acsrf,info,dupl=psb_dupl_add_) + if (info == psb_success_) call acsr3%cp_to_fmt(acsrf,info) do i=1,nrow tmp = zzero @@ -307,6 +307,7 @@ subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest & 'Done NUMBMM 1' else + ! ! Build the smoothed prolongator using the original matrix ! @@ -371,8 +372,9 @@ subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest & write(debug_unit,*) me,' ',trim(name),& & 'Done NUMBMM 2',parms%aggr_kind, mld_smooth_prol_ - call op_prol%transp(op_restr) - call op_restr%mv_to(tmpcoo) + call op_prol%cp_to(tmpcoo) + call tmpcoo%transp() + nzl = tmpcoo%get_nzeros() i=0 ! @@ -388,7 +390,7 @@ subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest end if end do call tmpcoo%set_nzeros(i) - call tmpcoo%trim() + ! call tmpcoo%trim() call op_restr%mv_from(tmpcoo) call op_restr%cscnv(info,type='csr',dupl=psb_dupl_add_) if (info /= psb_success_) then @@ -422,7 +424,6 @@ subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest goto 9999 end if - if (debug_level >= psb_debug_outer_) & & write(debug_unit,*) me,' ',trim(name),& & 'Done smooth_aggregate '