mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 22:55:12 +00:00
mld2p4-2:
mlprec/impl/mld_caggrmat_smth_asb.f90 mlprec/impl/mld_daggrmat_smth_asb.f90 mlprec/impl/mld_saggrmat_smth_asb.f90 mlprec/impl/mld_zaggrmat_smth_asb.f90 Slight reworking for fix_coo & friends.
This commit is contained in:
@@ -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 '
|
||||
|
||||
@@ -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 '
|
||||
|
||||
@@ -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 '
|
||||
|
||||
@@ -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 '
|
||||
|
||||
Reference in New Issue
Block a user