|
|
|
@ -175,23 +175,25 @@ module mld_d_prec_type
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
subroutine mld_dprecsetsm(prec,val,info,ilev)
|
|
|
|
|
subroutine mld_dprecsetsm(prec,val,info,ilev,pos)
|
|
|
|
|
import :: psb_dspmat_type, psb_desc_type, psb_dpk_, &
|
|
|
|
|
& mld_dprec_type, mld_d_base_smoother_type, psb_ipk_
|
|
|
|
|
class(mld_dprec_type), intent(inout) :: prec
|
|
|
|
|
class(mld_dprec_type), target, intent(inout) :: prec
|
|
|
|
|
class(mld_d_base_smoother_type), intent(in) :: val
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
integer(psb_ipk_), optional, intent(in) :: ilev
|
|
|
|
|
character(len=*), optional, intent(in) :: pos
|
|
|
|
|
end subroutine mld_dprecsetsm
|
|
|
|
|
subroutine mld_dprecsetsv(prec,val,info,ilev)
|
|
|
|
|
subroutine mld_dprecsetsv(prec,val,info,ilev,pos)
|
|
|
|
|
import :: psb_dspmat_type, psb_desc_type, psb_dpk_, &
|
|
|
|
|
& mld_dprec_type, mld_d_base_solver_type, psb_ipk_
|
|
|
|
|
class(mld_dprec_type), intent(inout) :: prec
|
|
|
|
|
class(mld_d_base_solver_type), intent(in) :: val
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
integer(psb_ipk_), optional, intent(in) :: ilev
|
|
|
|
|
character(len=*), optional, intent(in) :: pos
|
|
|
|
|
end subroutine mld_dprecsetsv
|
|
|
|
|
subroutine mld_dprecseti(prec,what,val,info,ilev)
|
|
|
|
|
subroutine mld_dprecseti(prec,what,val,info,ilev,pos)
|
|
|
|
|
import :: psb_dspmat_type, psb_desc_type, psb_dpk_, &
|
|
|
|
|
& mld_dprec_type, psb_ipk_
|
|
|
|
|
class(mld_dprec_type), intent(inout) :: prec
|
|
|
|
@ -199,8 +201,9 @@ module mld_d_prec_type
|
|
|
|
|
integer(psb_ipk_), intent(in) :: val
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
integer(psb_ipk_), optional, intent(in) :: ilev
|
|
|
|
|
character(len=*), optional, intent(in) :: pos
|
|
|
|
|
end subroutine mld_dprecseti
|
|
|
|
|
subroutine mld_dprecsetr(prec,what,val,info,ilev)
|
|
|
|
|
subroutine mld_dprecsetr(prec,what,val,info,ilev,pos)
|
|
|
|
|
import :: psb_dspmat_type, psb_desc_type, psb_dpk_, &
|
|
|
|
|
& mld_dprec_type, psb_ipk_
|
|
|
|
|
class(mld_dprec_type), intent(inout) :: prec
|
|
|
|
@ -208,8 +211,9 @@ module mld_d_prec_type
|
|
|
|
|
real(psb_dpk_), intent(in) :: val
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
integer(psb_ipk_), optional, intent(in) :: ilev
|
|
|
|
|
character(len=*), optional, intent(in) :: pos
|
|
|
|
|
end subroutine mld_dprecsetr
|
|
|
|
|
subroutine mld_dprecsetc(prec,what,string,info,ilev)
|
|
|
|
|
subroutine mld_dprecsetc(prec,what,string,info,ilev,pos)
|
|
|
|
|
import :: psb_dspmat_type, psb_desc_type, psb_dpk_, &
|
|
|
|
|
& mld_dprec_type, psb_ipk_
|
|
|
|
|
class(mld_dprec_type), intent(inout) :: prec
|
|
|
|
@ -217,8 +221,9 @@ module mld_d_prec_type
|
|
|
|
|
character(len=*), intent(in) :: string
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
integer(psb_ipk_), optional, intent(in) :: ilev
|
|
|
|
|
character(len=*), optional, intent(in) :: pos
|
|
|
|
|
end subroutine mld_dprecsetc
|
|
|
|
|
subroutine mld_dcprecseti(prec,what,val,info,ilev)
|
|
|
|
|
subroutine mld_dcprecseti(prec,what,val,info,ilev,pos)
|
|
|
|
|
import :: psb_dspmat_type, psb_desc_type, psb_dpk_, &
|
|
|
|
|
& mld_dprec_type, psb_ipk_
|
|
|
|
|
class(mld_dprec_type), intent(inout) :: prec
|
|
|
|
@ -226,8 +231,9 @@ module mld_d_prec_type
|
|
|
|
|
integer(psb_ipk_), intent(in) :: val
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
integer(psb_ipk_), optional, intent(in) :: ilev
|
|
|
|
|
character(len=*), optional, intent(in) :: pos
|
|
|
|
|
end subroutine mld_dcprecseti
|
|
|
|
|
subroutine mld_dcprecsetr(prec,what,val,info,ilev)
|
|
|
|
|
subroutine mld_dcprecsetr(prec,what,val,info,ilev,pos)
|
|
|
|
|
import :: psb_dspmat_type, psb_desc_type, psb_dpk_, &
|
|
|
|
|
& mld_dprec_type, psb_ipk_
|
|
|
|
|
class(mld_dprec_type), intent(inout) :: prec
|
|
|
|
@ -235,8 +241,9 @@ module mld_d_prec_type
|
|
|
|
|
real(psb_dpk_), intent(in) :: val
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
integer(psb_ipk_), optional, intent(in) :: ilev
|
|
|
|
|
character(len=*), optional, intent(in) :: pos
|
|
|
|
|
end subroutine mld_dcprecsetr
|
|
|
|
|
subroutine mld_dcprecsetc(prec,what,string,info,ilev)
|
|
|
|
|
subroutine mld_dcprecsetc(prec,what,string,info,ilev,pos)
|
|
|
|
|
import :: psb_dspmat_type, psb_desc_type, psb_dpk_, &
|
|
|
|
|
& mld_dprec_type, psb_ipk_
|
|
|
|
|
class(mld_dprec_type), intent(inout) :: prec
|
|
|
|
@ -244,6 +251,7 @@ module mld_d_prec_type
|
|
|
|
|
character(len=*), intent(in) :: string
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
integer(psb_ipk_), optional, intent(in) :: ilev
|
|
|
|
|
character(len=*), optional, intent(in) :: pos
|
|
|
|
|
end subroutine mld_dcprecsetc
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
@ -478,6 +486,18 @@ contains
|
|
|
|
|
write(iout_,*)
|
|
|
|
|
return
|
|
|
|
|
end if
|
|
|
|
|
if (allocated(p%precv(1)%sm2a)) then
|
|
|
|
|
write(iout_,*) 'Post smoother details'
|
|
|
|
|
call p%precv(1)%sm2a%descr(info,iout=iout_)
|
|
|
|
|
if (nlev == 1) then
|
|
|
|
|
if (p%precv(1)%parms%sweeps > 1) then
|
|
|
|
|
write(iout_,*) ' Number of smoother sweeps : ',&
|
|
|
|
|
& p%precv(1)%parms%sweeps
|
|
|
|
|
end if
|
|
|
|
|
write(iout_,*)
|
|
|
|
|
return
|
|
|
|
|
end if
|
|
|
|
|
end if
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
!
|
|
|
|
|