mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 22:55:12 +00:00
mld2p4-extaggr:
mlprec/impl/mld_caggrmat_biz_asb.f90 mlprec/impl/mld_caggrmat_minnrg_asb.f90 mlprec/impl/mld_caggrmat_smth_asb.f90 mlprec/impl/mld_daggrmat_biz_asb.f90 mlprec/impl/mld_daggrmat_minnrg_asb.f90 mlprec/impl/mld_daggrmat_smth_asb.f90 mlprec/impl/mld_saggrmat_biz_asb.f90 mlprec/impl/mld_saggrmat_minnrg_asb.f90 mlprec/impl/mld_saggrmat_smth_asb.f90 mlprec/impl/mld_zaggrmat_biz_asb.f90 mlprec/impl/mld_zaggrmat_minnrg_asb.f90 mlprec/impl/mld_zaggrmat_smth_asb.f90 Use clean_zeros method in filtering.
This commit is contained in:
@@ -180,19 +180,7 @@ subroutine mld_caggrmat_biz_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_restr
|
||||
end if
|
||||
enddo
|
||||
! Take out zeroed terms
|
||||
call acsrf%mv_to_coo(tmpcoo,info)
|
||||
k = 0
|
||||
do j=1,tmpcoo%get_nzeros()
|
||||
if ((tmpcoo%val(j) /= czero) .or. (tmpcoo%ia(j) == tmpcoo%ja(j))) then
|
||||
k = k + 1
|
||||
tmpcoo%val(k) = tmpcoo%val(j)
|
||||
tmpcoo%ia(k) = tmpcoo%ia(j)
|
||||
tmpcoo%ja(k) = tmpcoo%ja(j)
|
||||
end if
|
||||
end do
|
||||
call tmpcoo%set_nzeros(k)
|
||||
call tmpcoo%set_dupl(psb_dupl_add_)
|
||||
call acsrf%mv_from_coo(tmpcoo,info)
|
||||
call acsrf%clean_zeros(info)
|
||||
end if
|
||||
|
||||
|
||||
|
||||
@@ -299,18 +299,7 @@ subroutine mld_caggrmat_minnrg_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_re
|
||||
end if
|
||||
enddo
|
||||
! Take out zeroed terms
|
||||
call acsrf%mv_to_coo(tmpcoo,info)
|
||||
k = 0
|
||||
do j=1,tmpcoo%get_nzeros()
|
||||
if ((tmpcoo%val(j) /= czero) .or. (tmpcoo%ia(j) == tmpcoo%ja(j))) then
|
||||
k = k + 1
|
||||
tmpcoo%val(k) = tmpcoo%val(j)
|
||||
tmpcoo%ia(k) = tmpcoo%ia(j)
|
||||
tmpcoo%ja(k) = tmpcoo%ja(j)
|
||||
end if
|
||||
end do
|
||||
call tmpcoo%set_nzeros(k)
|
||||
call acsrf%mv_from_coo(tmpcoo,info)
|
||||
call acsrf%clean_zeros(info)
|
||||
|
||||
!
|
||||
! Build the smoothed prolongator using the filtered matrix
|
||||
|
||||
@@ -199,19 +199,7 @@ subroutine mld_caggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest
|
||||
end if
|
||||
enddo
|
||||
! Take out zeroed terms
|
||||
call acsrf%mv_to_coo(tmpcoo,info)
|
||||
k = 0
|
||||
do j=1,tmpcoo%get_nzeros()
|
||||
if ((tmpcoo%val(j) /= czero) .or. (tmpcoo%ia(j) == tmpcoo%ja(j))) then
|
||||
k = k + 1
|
||||
tmpcoo%val(k) = tmpcoo%val(j)
|
||||
tmpcoo%ia(k) = tmpcoo%ia(j)
|
||||
tmpcoo%ja(k) = tmpcoo%ja(j)
|
||||
end if
|
||||
end do
|
||||
call tmpcoo%set_nzeros(k)
|
||||
call tmpcoo%set_dupl(psb_dupl_add_)
|
||||
call acsrf%mv_from_coo(tmpcoo,info)
|
||||
call acsrf%clean_zeros(info)
|
||||
end if
|
||||
|
||||
|
||||
|
||||
@@ -180,19 +180,7 @@ subroutine mld_daggrmat_biz_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_restr
|
||||
end if
|
||||
enddo
|
||||
! Take out zeroed terms
|
||||
call acsrf%mv_to_coo(tmpcoo,info)
|
||||
k = 0
|
||||
do j=1,tmpcoo%get_nzeros()
|
||||
if ((tmpcoo%val(j) /= dzero) .or. (tmpcoo%ia(j) == tmpcoo%ja(j))) then
|
||||
k = k + 1
|
||||
tmpcoo%val(k) = tmpcoo%val(j)
|
||||
tmpcoo%ia(k) = tmpcoo%ia(j)
|
||||
tmpcoo%ja(k) = tmpcoo%ja(j)
|
||||
end if
|
||||
end do
|
||||
call tmpcoo%set_nzeros(k)
|
||||
call tmpcoo%set_dupl(psb_dupl_add_)
|
||||
call acsrf%mv_from_coo(tmpcoo,info)
|
||||
call acsrf%clean_zeros(info)
|
||||
end if
|
||||
|
||||
|
||||
|
||||
@@ -299,18 +299,7 @@ subroutine mld_daggrmat_minnrg_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_re
|
||||
end if
|
||||
enddo
|
||||
! Take out zeroed terms
|
||||
call acsrf%mv_to_coo(tmpcoo,info)
|
||||
k = 0
|
||||
do j=1,tmpcoo%get_nzeros()
|
||||
if ((tmpcoo%val(j) /= dzero) .or. (tmpcoo%ia(j) == tmpcoo%ja(j))) then
|
||||
k = k + 1
|
||||
tmpcoo%val(k) = tmpcoo%val(j)
|
||||
tmpcoo%ia(k) = tmpcoo%ia(j)
|
||||
tmpcoo%ja(k) = tmpcoo%ja(j)
|
||||
end if
|
||||
end do
|
||||
call tmpcoo%set_nzeros(k)
|
||||
call acsrf%mv_from_coo(tmpcoo,info)
|
||||
call acsrf%clean_zeros(info)
|
||||
|
||||
!
|
||||
! Build the smoothed prolongator using the filtered matrix
|
||||
|
||||
@@ -199,19 +199,7 @@ subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest
|
||||
end if
|
||||
enddo
|
||||
! Take out zeroed terms
|
||||
call acsrf%mv_to_coo(tmpcoo,info)
|
||||
k = 0
|
||||
do j=1,tmpcoo%get_nzeros()
|
||||
if ((tmpcoo%val(j) /= dzero) .or. (tmpcoo%ia(j) == tmpcoo%ja(j))) then
|
||||
k = k + 1
|
||||
tmpcoo%val(k) = tmpcoo%val(j)
|
||||
tmpcoo%ia(k) = tmpcoo%ia(j)
|
||||
tmpcoo%ja(k) = tmpcoo%ja(j)
|
||||
end if
|
||||
end do
|
||||
call tmpcoo%set_nzeros(k)
|
||||
call tmpcoo%set_dupl(psb_dupl_add_)
|
||||
call acsrf%mv_from_coo(tmpcoo,info)
|
||||
call acsrf%clean_zeros(info)
|
||||
end if
|
||||
|
||||
|
||||
|
||||
@@ -180,19 +180,7 @@ subroutine mld_saggrmat_biz_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_restr
|
||||
end if
|
||||
enddo
|
||||
! Take out zeroed terms
|
||||
call acsrf%mv_to_coo(tmpcoo,info)
|
||||
k = 0
|
||||
do j=1,tmpcoo%get_nzeros()
|
||||
if ((tmpcoo%val(j) /= szero) .or. (tmpcoo%ia(j) == tmpcoo%ja(j))) then
|
||||
k = k + 1
|
||||
tmpcoo%val(k) = tmpcoo%val(j)
|
||||
tmpcoo%ia(k) = tmpcoo%ia(j)
|
||||
tmpcoo%ja(k) = tmpcoo%ja(j)
|
||||
end if
|
||||
end do
|
||||
call tmpcoo%set_nzeros(k)
|
||||
call tmpcoo%set_dupl(psb_dupl_add_)
|
||||
call acsrf%mv_from_coo(tmpcoo,info)
|
||||
call acsrf%clean_zeros(info)
|
||||
end if
|
||||
|
||||
|
||||
|
||||
@@ -299,18 +299,7 @@ subroutine mld_saggrmat_minnrg_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_re
|
||||
end if
|
||||
enddo
|
||||
! Take out zeroed terms
|
||||
call acsrf%mv_to_coo(tmpcoo,info)
|
||||
k = 0
|
||||
do j=1,tmpcoo%get_nzeros()
|
||||
if ((tmpcoo%val(j) /= szero) .or. (tmpcoo%ia(j) == tmpcoo%ja(j))) then
|
||||
k = k + 1
|
||||
tmpcoo%val(k) = tmpcoo%val(j)
|
||||
tmpcoo%ia(k) = tmpcoo%ia(j)
|
||||
tmpcoo%ja(k) = tmpcoo%ja(j)
|
||||
end if
|
||||
end do
|
||||
call tmpcoo%set_nzeros(k)
|
||||
call acsrf%mv_from_coo(tmpcoo,info)
|
||||
call acsrf%clean_zeros(info)
|
||||
|
||||
!
|
||||
! Build the smoothed prolongator using the filtered matrix
|
||||
|
||||
@@ -199,19 +199,7 @@ subroutine mld_saggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest
|
||||
end if
|
||||
enddo
|
||||
! Take out zeroed terms
|
||||
call acsrf%mv_to_coo(tmpcoo,info)
|
||||
k = 0
|
||||
do j=1,tmpcoo%get_nzeros()
|
||||
if ((tmpcoo%val(j) /= szero) .or. (tmpcoo%ia(j) == tmpcoo%ja(j))) then
|
||||
k = k + 1
|
||||
tmpcoo%val(k) = tmpcoo%val(j)
|
||||
tmpcoo%ia(k) = tmpcoo%ia(j)
|
||||
tmpcoo%ja(k) = tmpcoo%ja(j)
|
||||
end if
|
||||
end do
|
||||
call tmpcoo%set_nzeros(k)
|
||||
call tmpcoo%set_dupl(psb_dupl_add_)
|
||||
call acsrf%mv_from_coo(tmpcoo,info)
|
||||
call acsrf%clean_zeros(info)
|
||||
end if
|
||||
|
||||
|
||||
|
||||
@@ -180,19 +180,7 @@ subroutine mld_zaggrmat_biz_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_restr
|
||||
end if
|
||||
enddo
|
||||
! Take out zeroed terms
|
||||
call acsrf%mv_to_coo(tmpcoo,info)
|
||||
k = 0
|
||||
do j=1,tmpcoo%get_nzeros()
|
||||
if ((tmpcoo%val(j) /= zzero) .or. (tmpcoo%ia(j) == tmpcoo%ja(j))) then
|
||||
k = k + 1
|
||||
tmpcoo%val(k) = tmpcoo%val(j)
|
||||
tmpcoo%ia(k) = tmpcoo%ia(j)
|
||||
tmpcoo%ja(k) = tmpcoo%ja(j)
|
||||
end if
|
||||
end do
|
||||
call tmpcoo%set_nzeros(k)
|
||||
call tmpcoo%set_dupl(psb_dupl_add_)
|
||||
call acsrf%mv_from_coo(tmpcoo,info)
|
||||
call acsrf%clean_zeros(info)
|
||||
end if
|
||||
|
||||
|
||||
|
||||
@@ -299,18 +299,7 @@ subroutine mld_zaggrmat_minnrg_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_re
|
||||
end if
|
||||
enddo
|
||||
! Take out zeroed terms
|
||||
call acsrf%mv_to_coo(tmpcoo,info)
|
||||
k = 0
|
||||
do j=1,tmpcoo%get_nzeros()
|
||||
if ((tmpcoo%val(j) /= zzero) .or. (tmpcoo%ia(j) == tmpcoo%ja(j))) then
|
||||
k = k + 1
|
||||
tmpcoo%val(k) = tmpcoo%val(j)
|
||||
tmpcoo%ia(k) = tmpcoo%ia(j)
|
||||
tmpcoo%ja(k) = tmpcoo%ja(j)
|
||||
end if
|
||||
end do
|
||||
call tmpcoo%set_nzeros(k)
|
||||
call acsrf%mv_from_coo(tmpcoo,info)
|
||||
call acsrf%clean_zeros(info)
|
||||
|
||||
!
|
||||
! Build the smoothed prolongator using the filtered matrix
|
||||
|
||||
@@ -199,19 +199,7 @@ subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,parms,ac,op_prol,op_rest
|
||||
end if
|
||||
enddo
|
||||
! Take out zeroed terms
|
||||
call acsrf%mv_to_coo(tmpcoo,info)
|
||||
k = 0
|
||||
do j=1,tmpcoo%get_nzeros()
|
||||
if ((tmpcoo%val(j) /= zzero) .or. (tmpcoo%ia(j) == tmpcoo%ja(j))) then
|
||||
k = k + 1
|
||||
tmpcoo%val(k) = tmpcoo%val(j)
|
||||
tmpcoo%ia(k) = tmpcoo%ia(j)
|
||||
tmpcoo%ja(k) = tmpcoo%ja(j)
|
||||
end if
|
||||
end do
|
||||
call tmpcoo%set_nzeros(k)
|
||||
call tmpcoo%set_dupl(psb_dupl_add_)
|
||||
call acsrf%mv_from_coo(tmpcoo,info)
|
||||
call acsrf%clean_zeros(info)
|
||||
end if
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user