mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-20 12:52:16 +00:00
mld2p4:
mlprec/mld_cmlprec_aply.f90 mlprec/mld_dmlprec_aply.f90 mlprec/mld_smlprec_aply.f90 mlprec/mld_zmlprec_aply.f90 Fixed replicated space aggregation, delegating some work into the linmap routines.
This commit is contained in:
@@ -1,6 +1,14 @@
|
||||
Changelog. A lot less detailed than usual, at least for past
|
||||
history.
|
||||
|
||||
2008/06/13: Fixed aggregation for replicated index spaces.
|
||||
|
||||
2008/06/02: Threshold into decoupled aggregation algorithm.
|
||||
|
||||
2008/05/27: Single precision version.
|
||||
|
||||
2008/03/09: Introduced configure script.
|
||||
|
||||
2008/02/08: Merged changes from intermesh branch: we now have an
|
||||
inter_desc_type object. Cleaned up data allocation and
|
||||
variable initialization in multilevel prec application.
|
||||
|
||||
@@ -463,15 +463,6 @@ contains
|
||||
end if
|
||||
|
||||
|
||||
if (icm == mld_repl_mat_) then
|
||||
call psb_sum(ictxt,mlprec_wrk(ilev)%x2l(1:nr2l))
|
||||
else if (icm /= mld_distr_mat_) then
|
||||
info = 4013
|
||||
call psb_errpush(info,name,a_err='invalid mld_coarse_mat_',&
|
||||
& i_Err=(/icm,0,0,0,0/))
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
!
|
||||
! Apply the base preconditioner
|
||||
!
|
||||
@@ -743,14 +734,6 @@ contains
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (icm ==mld_repl_mat_) then
|
||||
call psb_sum(ictxt,mlprec_wrk(ilev)%x2l(1:nr2l))
|
||||
else if (icm /= mld_distr_mat_) then
|
||||
info = 4013
|
||||
call psb_errpush(info,name,a_err='invalid mld_coarse_mat_',&
|
||||
& i_Err=(/icm,0,0,0,0/))
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
!
|
||||
! Apply the base preconditioner
|
||||
@@ -1003,14 +986,6 @@ contains
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (icm == mld_repl_mat_) Then
|
||||
call psb_sum(ictxt,mlprec_wrk(ilev)%x2l(1:nr2l))
|
||||
else if (icm /= mld_distr_mat_) Then
|
||||
info = 4013
|
||||
call psb_errpush(info,name,a_err='invalid mld_coarse_mat_',&
|
||||
& i_Err=(/icm,0,0,0,0/))
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
!
|
||||
! update x2l
|
||||
@@ -1330,14 +1305,6 @@ contains
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (icm == mld_repl_mat_) then
|
||||
call psb_sum(ictxt,mlprec_wrk(ilev)%x2l(1:nr2l))
|
||||
else if (icm /= mld_distr_mat_) then
|
||||
info = 4013
|
||||
call psb_errpush(info,name,a_err='invalid mld_coarse_mat_',&
|
||||
& i_Err=(/icm,0,0,0,0/))
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
call psb_geaxpby(cone,mlprec_wrk(ilev)%x2l,czero,mlprec_wrk(ilev)%tx,&
|
||||
& baseprecv(ilev)%base_desc,info)
|
||||
|
||||
@@ -461,15 +461,6 @@ contains
|
||||
end if
|
||||
|
||||
|
||||
if (icm == mld_repl_mat_) then
|
||||
call psb_sum(ictxt,mlprec_wrk(ilev)%x2l(1:nr2l))
|
||||
else if (icm /= mld_distr_mat_) then
|
||||
info = 4013
|
||||
call psb_errpush(info,name,a_err='invalid mld_coarse_mat_',&
|
||||
& i_Err=(/icm,0,0,0,0/))
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
!
|
||||
! Apply the base preconditioner
|
||||
!
|
||||
@@ -740,15 +731,6 @@ contains
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (icm ==mld_repl_mat_) then
|
||||
call psb_sum(ictxt,mlprec_wrk(ilev)%x2l(1:nr2l))
|
||||
else if (icm /= mld_distr_mat_) then
|
||||
info = 4013
|
||||
call psb_errpush(info,name,a_err='invalid mld_coarse_mat_',&
|
||||
& i_Err=(/icm,0,0,0,0/))
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
!
|
||||
! Apply the base preconditioner
|
||||
!
|
||||
@@ -999,15 +981,6 @@ contains
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (icm == mld_repl_mat_) Then
|
||||
call psb_sum(ictxt,mlprec_wrk(ilev)%x2l(1:nr2l))
|
||||
else if (icm /= mld_distr_mat_) Then
|
||||
info = 4013
|
||||
call psb_errpush(info,name,a_err='invalid mld_coarse_mat_',&
|
||||
& i_Err=(/icm,0,0,0,0/))
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
!
|
||||
! update x2l
|
||||
!
|
||||
@@ -1326,15 +1299,6 @@ contains
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (icm == mld_repl_mat_) then
|
||||
call psb_sum(ictxt,mlprec_wrk(ilev)%x2l(1:nr2l))
|
||||
else if (icm /= mld_distr_mat_) then
|
||||
info = 4013
|
||||
call psb_errpush(info,name,a_err='invalid mld_coarse_mat_',&
|
||||
& i_Err=(/icm,0,0,0,0/))
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
call psb_geaxpby(done,mlprec_wrk(ilev)%x2l,dzero,mlprec_wrk(ilev)%tx,&
|
||||
& baseprecv(ilev)%base_desc,info)
|
||||
!
|
||||
|
||||
@@ -460,16 +460,6 @@ contains
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
|
||||
if (icm == mld_repl_mat_) then
|
||||
call psb_sum(ictxt,mlprec_wrk(ilev)%x2l(1:nr2l))
|
||||
else if (icm /= mld_distr_mat_) then
|
||||
info = 4013
|
||||
call psb_errpush(info,name,a_err='invalid mld_coarse_mat_',&
|
||||
& i_Err=(/icm,0,0,0,0/))
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
!
|
||||
! Apply the base preconditioner
|
||||
!
|
||||
@@ -740,15 +730,6 @@ contains
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (icm ==mld_repl_mat_) then
|
||||
call psb_sum(ictxt,mlprec_wrk(ilev)%x2l(1:nr2l))
|
||||
else if (icm /= mld_distr_mat_) then
|
||||
info = 4013
|
||||
call psb_errpush(info,name,a_err='invalid mld_coarse_mat_',&
|
||||
& i_Err=(/icm,0,0,0,0/))
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
!
|
||||
! Apply the base preconditioner
|
||||
!
|
||||
@@ -999,15 +980,6 @@ contains
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (icm == mld_repl_mat_) Then
|
||||
call psb_sum(ictxt,mlprec_wrk(ilev)%x2l(1:nr2l))
|
||||
else if (icm /= mld_distr_mat_) Then
|
||||
info = 4013
|
||||
call psb_errpush(info,name,a_err='invalid mld_coarse_mat_',&
|
||||
& i_Err=(/icm,0,0,0,0/))
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
!
|
||||
! update x2l
|
||||
!
|
||||
@@ -1326,15 +1298,6 @@ contains
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (icm == mld_repl_mat_) then
|
||||
call psb_sum(ictxt,mlprec_wrk(ilev)%x2l(1:nr2l))
|
||||
else if (icm /= mld_distr_mat_) then
|
||||
info = 4013
|
||||
call psb_errpush(info,name,a_err='invalid mld_coarse_mat_',&
|
||||
& i_Err=(/icm,0,0,0,0/))
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
call psb_geaxpby(sone,mlprec_wrk(ilev)%x2l,szero,mlprec_wrk(ilev)%tx,&
|
||||
& baseprecv(ilev)%base_desc,info)
|
||||
!
|
||||
|
||||
@@ -743,15 +743,6 @@ contains
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (icm ==mld_repl_mat_) then
|
||||
call psb_sum(ictxt,mlprec_wrk(ilev)%x2l(1:nr2l))
|
||||
else if (icm /= mld_distr_mat_) then
|
||||
info = 4013
|
||||
call psb_errpush(info,name,a_err='invalid mld_coarse_mat_',&
|
||||
& i_Err=(/icm,0,0,0,0/))
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
!
|
||||
! Apply the base preconditioner
|
||||
!
|
||||
@@ -1003,15 +994,6 @@ contains
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (icm == mld_repl_mat_) Then
|
||||
call psb_sum(ictxt,mlprec_wrk(ilev)%x2l(1:nr2l))
|
||||
else if (icm /= mld_distr_mat_) Then
|
||||
info = 4013
|
||||
call psb_errpush(info,name,a_err='invalid mld_coarse_mat_',&
|
||||
& i_Err=(/icm,0,0,0,0/))
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
!
|
||||
! update x2l
|
||||
!
|
||||
@@ -1330,15 +1312,6 @@ contains
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
if (icm == mld_repl_mat_) then
|
||||
call psb_sum(ictxt,mlprec_wrk(ilev)%x2l(1:nr2l))
|
||||
else if (icm /= mld_distr_mat_) then
|
||||
info = 4013
|
||||
call psb_errpush(info,name,a_err='invalid mld_coarse_mat_',&
|
||||
& i_Err=(/icm,0,0,0,0/))
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
call psb_geaxpby(zone,mlprec_wrk(ilev)%x2l,zzero,mlprec_wrk(ilev)%tx,&
|
||||
& baseprecv(ilev)%base_desc,info)
|
||||
!
|
||||
|
||||
Reference in New Issue
Block a user