mlprec/mld_caggrmat_asb.f90
 mlprec/mld_caggrmat_raw_asb.F90
 mlprec/mld_caggrmat_smth_asb.F90
 mlprec/mld_ccoarse_bld.f90
 mlprec/mld_cmlprec_aply.f90
 mlprec/mld_cmlprecbld.f90
 mlprec/mld_daggrmat_asb.f90
 mlprec/mld_daggrmat_raw_asb.F90
 mlprec/mld_daggrmat_smth_asb.F90
 mlprec/mld_dcoarse_bld.f90
 mlprec/mld_dmlprec_aply.f90
 mlprec/mld_dmlprecbld.f90
 mlprec/mld_inner_mod.f90
 mlprec/mld_move_alloc_mod.F90
 mlprec/mld_prec_type.f90
 mlprec/mld_saggrmat_asb.f90
 mlprec/mld_saggrmat_raw_asb.F90
 mlprec/mld_saggrmat_smth_asb.F90
 mlprec/mld_scoarse_bld.f90
 mlprec/mld_smlprec_aply.f90
 mlprec/mld_smlprecbld.f90
 mlprec/mld_zaggrmat_asb.f90
 mlprec/mld_zaggrmat_raw_asb.F90
 mlprec/mld_zaggrmat_smth_asb.F90
 mlprec/mld_zcoarse_bld.f90
 mlprec/mld_zmlprec_aply.f90
 mlprec/mld_zmlprecbld.f90

From X_onelev_type to Xonelev_type.
stopcriterion
Salvatore Filippone 16 years ago
parent a1ecba3a3b
commit 6f0fd11557

@ -83,7 +83,7 @@
! the fine-level matrix. ! the fine-level matrix.
! desc_a - type(psb_desc_type), input. ! desc_a - type(psb_desc_type), input.
! The communication descriptor of the fine-level matrix. ! The communication descriptor of the fine-level matrix.
! p - type(mld_c_onelev_type), input/output. ! p - type(mld_conelev_type), input/output.
! The one-level preconditioner data structure containing the local ! The one-level preconditioner data structure containing the local
! part of the base preconditioner to be built as well as the ! part of the base preconditioner to be built as well as the
! aggregate matrices. ! aggregate matrices.
@ -101,7 +101,7 @@ subroutine mld_caggrmat_asb(a,desc_a,ilaggr,nlaggr,p,info)
type(psb_cspmat_type), intent(in) :: a type(psb_cspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_c_onelev_type), intent(inout), target :: p type(mld_conelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
! Local variables ! Local variables

@ -66,7 +66,7 @@
! the fine-level matrix. ! the fine-level matrix.
! desc_a - type(psb_desc_type), input. ! desc_a - type(psb_desc_type), input.
! The communication descriptor of the fine-level matrix. ! The communication descriptor of the fine-level matrix.
! p - type(mld_c_onelev_type), input/output. ! p - type(mld_conelev_type), input/output.
! The one-level preconditioner data structure containing the local ! The one-level preconditioner data structure containing the local
! part of the base preconditioner to be built as well as the ! part of the base preconditioner to be built as well as the
! aggregate matrices. ! aggregate matrices.
@ -89,7 +89,7 @@ subroutine mld_caggrmat_raw_asb(a,desc_a,ilaggr,nlaggr,p,info)
type(psb_cspmat_type), intent(in) :: a type(psb_cspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_c_onelev_type), intent(inout), target :: p type(mld_conelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
! Local variables ! Local variables

@ -83,7 +83,7 @@
! the fine-level matrix. ! the fine-level matrix.
! desc_a - type(psb_desc_type), input. ! desc_a - type(psb_desc_type), input.
! The communication descriptor of the fine-level matrix. ! The communication descriptor of the fine-level matrix.
! p - type(mld_c_onelev_type), input/output. ! p - type(mld_conelev_type), input/output.
! The one-level preconditioner data structure containing the local ! The one-level preconditioner data structure containing the local
! part of the base preconditioner to be built as well as the ! part of the base preconditioner to be built as well as the
! aggregate matrices. ! aggregate matrices.
@ -106,7 +106,7 @@ subroutine mld_caggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info)
type(psb_cspmat_type), intent(in) :: a type(psb_cspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_c_onelev_type), intent(inout), target :: p type(mld_conelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
! Local variables ! Local variables

@ -54,7 +54,7 @@
! matrix to be preconditioned. ! matrix to be preconditioned.
! desc_a - type(psb_desc_type), input. ! desc_a - type(psb_desc_type), input.
! The communication descriptor of a. ! The communication descriptor of a.
! p - type(mld_c_onelev_type), input/output. ! p - type(mld_conelev_type), input/output.
! The preconditioner data structure containing the local ! The preconditioner data structure containing the local
! part of the one-level preconditioner to be built. ! part of the one-level preconditioner to be built.
! info - integer, output. ! info - integer, output.
@ -70,7 +70,7 @@ subroutine mld_ccoarse_bld(a,desc_a,p,info)
! Arguments ! Arguments
type(psb_cspmat_type), intent(in), target :: a type(psb_cspmat_type), intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a type(psb_desc_type), intent(in), target :: desc_a
type(mld_c_onelev_type), intent(inout),target :: p type(mld_conelev_type), intent(inout),target :: p
integer, intent(out) :: info integer, intent(out) :: info
! Local variables ! Local variables

@ -78,7 +78,7 @@
! Arguments: ! Arguments:
! alpha - complex(psb_spk_), input. ! alpha - complex(psb_spk_), input.
! The scalar alpha. ! The scalar alpha.
! precv - type(mld_c_onelev_type), dimension(:), input. ! precv - type(mld_conelev_type), dimension(:), input.
! The array of one-level preconditioner data structures containing the ! The array of one-level preconditioner data structures containing the
! local parts of the preconditioners to be applied at each level. ! local parts of the preconditioners to be applied at each level.
! Note that nlev = size(precv) = number of levels. ! Note that nlev = size(precv) = number of levels.
@ -148,7 +148,7 @@ subroutine mld_cmlprec_aply(alpha,precv,x,beta,y,desc_data,trans,work,info)
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_c_onelev_type), intent(in) :: precv(:) type(mld_conelev_type), intent(in) :: precv(:)
complex(psb_spk_),intent(in) :: alpha,beta complex(psb_spk_),intent(in) :: alpha,beta
complex(psb_spk_),intent(in) :: x(:) complex(psb_spk_),intent(in) :: x(:)
complex(psb_spk_),intent(inout) :: y(:) complex(psb_spk_),intent(inout) :: y(:)
@ -341,7 +341,7 @@ contains
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_c_onelev_type), intent(in) :: precv(:) type(mld_conelev_type), intent(in) :: precv(:)
complex(psb_spk_),intent(in) :: alpha,beta complex(psb_spk_),intent(in) :: alpha,beta
complex(psb_spk_),intent(in) :: x(:) complex(psb_spk_),intent(in) :: x(:)
complex(psb_spk_),intent(inout) :: y(:) complex(psb_spk_),intent(inout) :: y(:)
@ -577,7 +577,7 @@ contains
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_c_onelev_type), intent(in) :: precv(:) type(mld_conelev_type), intent(in) :: precv(:)
complex(psb_spk_),intent(in) :: alpha,beta complex(psb_spk_),intent(in) :: alpha,beta
complex(psb_spk_),intent(in) :: x(:) complex(psb_spk_),intent(in) :: x(:)
complex(psb_spk_),intent(inout) :: y(:) complex(psb_spk_),intent(inout) :: y(:)
@ -837,7 +837,7 @@ contains
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_c_onelev_type), intent(in) :: precv(:) type(mld_conelev_type), intent(in) :: precv(:)
complex(psb_spk_),intent(in) :: alpha,beta complex(psb_spk_),intent(in) :: alpha,beta
complex(psb_spk_),intent(in) :: x(:) complex(psb_spk_),intent(in) :: x(:)
complex(psb_spk_),intent(inout) :: y(:) complex(psb_spk_),intent(inout) :: y(:)
@ -1135,7 +1135,7 @@ contains
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_c_onelev_type), intent(in) :: precv(:) type(mld_conelev_type), intent(in) :: precv(:)
complex(psb_spk_),intent(in) :: alpha,beta complex(psb_spk_),intent(in) :: alpha,beta
complex(psb_spk_),intent(in) :: x(:) complex(psb_spk_),intent(in) :: x(:)
complex(psb_spk_),intent(inout) :: y(:) complex(psb_spk_),intent(inout) :: y(:)

@ -349,7 +349,7 @@ contains
end subroutine init_baseprec_av end subroutine init_baseprec_av
subroutine check_coarse_lev(prec) subroutine check_coarse_lev(prec)
type(mld_c_onelev_type) :: prec type(mld_conelev_type) :: prec
! !
! At the coarsest level, check mld_coarse_solve_ ! At the coarsest level, check mld_coarse_solve_

@ -83,7 +83,7 @@
! the fine-level matrix. ! the fine-level matrix.
! desc_a - type(psb_desc_type), input. ! desc_a - type(psb_desc_type), input.
! The communication descriptor of the fine-level matrix. ! The communication descriptor of the fine-level matrix.
! p - type(mld_d_onelev_type), input/output. ! p - type(mld_donelev_type), input/output.
! The one-level preconditioner data structure containing the local ! The one-level preconditioner data structure containing the local
! part of the base preconditioner to be built as well as the ! part of the base preconditioner to be built as well as the
! aggregate matrices. ! aggregate matrices.
@ -101,7 +101,7 @@ subroutine mld_daggrmat_asb(a,desc_a,ilaggr,nlaggr,p,info)
type(psb_dspmat_type), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_d_onelev_type), intent(inout), target :: p type(mld_donelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
! Local variables ! Local variables

@ -66,7 +66,7 @@
! the fine-level matrix. ! the fine-level matrix.
! desc_a - type(psb_desc_type), input. ! desc_a - type(psb_desc_type), input.
! The communication descriptor of the fine-level matrix. ! The communication descriptor of the fine-level matrix.
! p - type(mld_d_onelev_type), input/output. ! p - type(mld_donelev_type), input/output.
! The one-level preconditioner data structure containing the local ! The one-level preconditioner data structure containing the local
! part of the base preconditioner to be built as well as the ! part of the base preconditioner to be built as well as the
! aggregate matrices. ! aggregate matrices.
@ -89,7 +89,7 @@ subroutine mld_daggrmat_raw_asb(a,desc_a,ilaggr,nlaggr,p,info)
type(psb_dspmat_type), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_d_onelev_type), intent(inout), target :: p type(mld_donelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
! Local variables ! Local variables

@ -83,7 +83,7 @@
! the fine-level matrix. ! the fine-level matrix.
! desc_a - type(psb_desc_type), input. ! desc_a - type(psb_desc_type), input.
! The communication descriptor of the fine-level matrix. ! The communication descriptor of the fine-level matrix.
! p - type(mld_d_onelev_type), input/output. ! p - type(mld_donelev_type), input/output.
! The one-level preconditioner data structure containing the local ! The one-level preconditioner data structure containing the local
! part of the base preconditioner to be built as well as the ! part of the base preconditioner to be built as well as the
! aggregate matrices. ! aggregate matrices.
@ -106,7 +106,7 @@ subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info)
type(psb_dspmat_type), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_d_onelev_type), intent(inout), target :: p type(mld_donelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
! Local variables ! Local variables

@ -54,7 +54,7 @@
! matrix to be preconditioned. ! matrix to be preconditioned.
! desc_a - type(psb_desc_type), input. ! desc_a - type(psb_desc_type), input.
! The communication descriptor of a. ! The communication descriptor of a.
! p - type(mld_d_onelev_type), input/output. ! p - type(mld_donelev_type), input/output.
! The preconditioner data structure containing the local ! The preconditioner data structure containing the local
! part of the one-level preconditioner to be built. ! part of the one-level preconditioner to be built.
! info - integer, output. ! info - integer, output.
@ -70,7 +70,7 @@ subroutine mld_dcoarse_bld(a,desc_a,p,info)
! Arguments ! Arguments
type(psb_dspmat_type), intent(in), target :: a type(psb_dspmat_type), intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a type(psb_desc_type), intent(in), target :: desc_a
type(mld_d_onelev_type), intent(inout),target :: p type(mld_donelev_type), intent(inout),target :: p
integer, intent(out) :: info integer, intent(out) :: info
! Local variables ! Local variables

@ -78,7 +78,7 @@
! Arguments: ! Arguments:
! alpha - real(psb_dpk_), input. ! alpha - real(psb_dpk_), input.
! The scalar alpha. ! The scalar alpha.
! precv - type(mld_d_onelev_type), dimension(:), input. ! precv - type(mld_donelev_type), dimension(:), input.
! The array of one-level preconditioner data structures containing the ! The array of one-level preconditioner data structures containing the
! local parts of the preconditioners to be applied at each level. ! local parts of the preconditioners to be applied at each level.
! Note that nlev = size(precv) = number of levels. ! Note that nlev = size(precv) = number of levels.
@ -148,7 +148,7 @@ subroutine mld_dmlprec_aply(alpha,precv,x,beta,y,desc_data,trans,work,info)
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_d_onelev_type), intent(in) :: precv(:) type(mld_donelev_type), intent(in) :: precv(:)
real(psb_dpk_),intent(in) :: alpha,beta real(psb_dpk_),intent(in) :: alpha,beta
real(psb_dpk_),intent(in) :: x(:) real(psb_dpk_),intent(in) :: x(:)
real(psb_dpk_),intent(inout) :: y(:) real(psb_dpk_),intent(inout) :: y(:)
@ -340,7 +340,7 @@ contains
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_d_onelev_type), intent(in) :: precv(:) type(mld_donelev_type), intent(in) :: precv(:)
real(psb_dpk_),intent(in) :: alpha,beta real(psb_dpk_),intent(in) :: alpha,beta
real(psb_dpk_),intent(in) :: x(:) real(psb_dpk_),intent(in) :: x(:)
real(psb_dpk_),intent(inout) :: y(:) real(psb_dpk_),intent(inout) :: y(:)
@ -575,7 +575,7 @@ contains
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_d_onelev_type), intent(in) :: precv(:) type(mld_donelev_type), intent(in) :: precv(:)
real(psb_dpk_),intent(in) :: alpha,beta real(psb_dpk_),intent(in) :: alpha,beta
real(psb_dpk_),intent(in) :: x(:) real(psb_dpk_),intent(in) :: x(:)
real(psb_dpk_),intent(inout) :: y(:) real(psb_dpk_),intent(inout) :: y(:)
@ -834,7 +834,7 @@ contains
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_d_onelev_type), intent(in) :: precv(:) type(mld_donelev_type), intent(in) :: precv(:)
real(psb_dpk_),intent(in) :: alpha,beta real(psb_dpk_),intent(in) :: alpha,beta
real(psb_dpk_),intent(in) :: x(:) real(psb_dpk_),intent(in) :: x(:)
real(psb_dpk_),intent(inout) :: y(:) real(psb_dpk_),intent(inout) :: y(:)
@ -1131,7 +1131,7 @@ contains
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_d_onelev_type), intent(in) :: precv(:) type(mld_donelev_type), intent(in) :: precv(:)
real(psb_dpk_),intent(in) :: alpha,beta real(psb_dpk_),intent(in) :: alpha,beta
real(psb_dpk_),intent(in) :: x(:) real(psb_dpk_),intent(in) :: x(:)
real(psb_dpk_),intent(inout) :: y(:) real(psb_dpk_),intent(inout) :: y(:)

@ -349,7 +349,7 @@ contains
end subroutine init_baseprec_av end subroutine init_baseprec_av
subroutine check_coarse_lev(prec) subroutine check_coarse_lev(prec)
type(mld_d_onelev_type) :: prec type(mld_donelev_type) :: prec
! !
! At the coarsest level, check mld_coarse_solve_ ! At the coarsest level, check mld_coarse_solve_

@ -188,9 +188,9 @@ module mld_inner_mod
interface mld_mlprec_aply interface mld_mlprec_aply
subroutine mld_smlprec_aply(alpha,precv,x,beta,y,desc_data,trans,work,info) subroutine mld_smlprec_aply(alpha,precv,x,beta,y,desc_data,trans,work,info)
use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_
use mld_prec_type, only : mld_sbaseprec_type, mld_s_onelev_type use mld_prec_type, only : mld_sbaseprec_type, mld_sonelev_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_s_onelev_type), intent(in) :: precv(:) type(mld_sonelev_type), intent(in) :: precv(:)
real(psb_spk_),intent(in) :: alpha,beta real(psb_spk_),intent(in) :: alpha,beta
real(psb_spk_),intent(in) :: x(:) real(psb_spk_),intent(in) :: x(:)
real(psb_spk_),intent(inout) :: y(:) real(psb_spk_),intent(inout) :: y(:)
@ -200,9 +200,9 @@ module mld_inner_mod
end subroutine mld_smlprec_aply end subroutine mld_smlprec_aply
subroutine mld_dmlprec_aply(alpha,precv,x,beta,y,desc_data,trans,work,info) subroutine mld_dmlprec_aply(alpha,precv,x,beta,y,desc_data,trans,work,info)
use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_
use mld_prec_type, only : mld_dbaseprec_type, mld_d_onelev_type use mld_prec_type, only : mld_dbaseprec_type, mld_donelev_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_d_onelev_type), intent(in) :: precv(:) type(mld_donelev_type), intent(in) :: precv(:)
real(psb_dpk_),intent(in) :: alpha,beta real(psb_dpk_),intent(in) :: alpha,beta
real(psb_dpk_),intent(in) :: x(:) real(psb_dpk_),intent(in) :: x(:)
real(psb_dpk_),intent(inout) :: y(:) real(psb_dpk_),intent(inout) :: y(:)
@ -212,9 +212,9 @@ module mld_inner_mod
end subroutine mld_dmlprec_aply end subroutine mld_dmlprec_aply
subroutine mld_cmlprec_aply(alpha,baseprecv,x,beta,y,desc_data,trans,work,info) subroutine mld_cmlprec_aply(alpha,baseprecv,x,beta,y,desc_data,trans,work,info)
use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_
use mld_prec_type, only : mld_cbaseprec_type, mld_c_onelev_type use mld_prec_type, only : mld_cbaseprec_type, mld_conelev_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_c_onelev_type), intent(in) :: baseprecv(:) type(mld_conelev_type), intent(in) :: baseprecv(:)
complex(psb_spk_),intent(in) :: alpha,beta complex(psb_spk_),intent(in) :: alpha,beta
complex(psb_spk_),intent(in) :: x(:) complex(psb_spk_),intent(in) :: x(:)
complex(psb_spk_),intent(inout) :: y(:) complex(psb_spk_),intent(inout) :: y(:)
@ -224,9 +224,9 @@ module mld_inner_mod
end subroutine mld_cmlprec_aply end subroutine mld_cmlprec_aply
subroutine mld_zmlprec_aply(alpha,baseprecv,x,beta,y,desc_data,trans,work,info) subroutine mld_zmlprec_aply(alpha,baseprecv,x,beta,y,desc_data,trans,work,info)
use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_
use mld_prec_type, only : mld_zbaseprec_type, mld_z_onelev_type use mld_prec_type, only : mld_zbaseprec_type, mld_zonelev_type
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_z_onelev_type), intent(in) :: baseprecv(:) type(mld_zonelev_type), intent(in) :: baseprecv(:)
complex(psb_dpk_),intent(in) :: alpha,beta complex(psb_dpk_),intent(in) :: alpha,beta
complex(psb_dpk_),intent(in) :: x(:) complex(psb_dpk_),intent(in) :: x(:)
complex(psb_dpk_),intent(inout) :: y(:) complex(psb_dpk_),intent(inout) :: y(:)
@ -430,34 +430,34 @@ module mld_inner_mod
interface mld_coarse_bld interface mld_coarse_bld
subroutine mld_scoarse_bld(a,desc_a,p,info) subroutine mld_scoarse_bld(a,desc_a,p,info)
use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_
use mld_prec_type, only : mld_sbaseprec_type, mld_s_onelev_type use mld_prec_type, only : mld_sbaseprec_type, mld_sonelev_type
type(psb_sspmat_type), intent(in) :: a type(psb_sspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
type(mld_s_onelev_type), intent(inout), target :: p type(mld_sonelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine mld_scoarse_bld end subroutine mld_scoarse_bld
subroutine mld_dcoarse_bld(a,desc_a,p,info) subroutine mld_dcoarse_bld(a,desc_a,p,info)
use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_
use mld_prec_type, only : mld_dbaseprec_type, mld_d_onelev_type use mld_prec_type, only : mld_dbaseprec_type, mld_donelev_type
type(psb_dspmat_type), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
type(mld_d_onelev_type), intent(inout), target :: p type(mld_donelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine mld_dcoarse_bld end subroutine mld_dcoarse_bld
subroutine mld_ccoarse_bld(a,desc_a,p,info) subroutine mld_ccoarse_bld(a,desc_a,p,info)
use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_
use mld_prec_type, only : mld_cbaseprec_type, mld_c_onelev_type use mld_prec_type, only : mld_cbaseprec_type, mld_conelev_type
type(psb_cspmat_type), intent(in) :: a type(psb_cspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
type(mld_c_onelev_type), intent(inout), target :: p type(mld_conelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine mld_ccoarse_bld end subroutine mld_ccoarse_bld
subroutine mld_zcoarse_bld(a,desc_a,p,info) subroutine mld_zcoarse_bld(a,desc_a,p,info)
use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_
use mld_prec_type, only : mld_zbaseprec_type, mld_z_onelev_type use mld_prec_type, only : mld_zbaseprec_type, mld_zonelev_type
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
type(mld_z_onelev_type), intent(inout), target :: p type(mld_zonelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine mld_zcoarse_bld end subroutine mld_zcoarse_bld
end interface end interface
@ -508,38 +508,38 @@ module mld_inner_mod
interface mld_aggrmat_asb interface mld_aggrmat_asb
subroutine mld_saggrmat_asb(a,desc_a,ilaggr,nlaggr,p,info) subroutine mld_saggrmat_asb(a,desc_a,ilaggr,nlaggr,p,info)
use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_
use mld_prec_type, only : mld_sbaseprec_type, mld_s_onelev_type use mld_prec_type, only : mld_sbaseprec_type, mld_sonelev_type
type(psb_sspmat_type), intent(in) :: a type(psb_sspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_s_onelev_type), intent(inout), target :: p type(mld_sonelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine mld_saggrmat_asb end subroutine mld_saggrmat_asb
subroutine mld_daggrmat_asb(a,desc_a,ilaggr,nlaggr,p,info) subroutine mld_daggrmat_asb(a,desc_a,ilaggr,nlaggr,p,info)
use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_
use mld_prec_type, only : mld_dbaseprec_type, mld_d_onelev_type use mld_prec_type, only : mld_dbaseprec_type, mld_donelev_type
type(psb_dspmat_type), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_d_onelev_type), intent(inout), target :: p type(mld_donelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine mld_daggrmat_asb end subroutine mld_daggrmat_asb
subroutine mld_caggrmat_asb(a,desc_a,ilaggr,nlaggr,p,info) subroutine mld_caggrmat_asb(a,desc_a,ilaggr,nlaggr,p,info)
use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_
use mld_prec_type, only : mld_cbaseprec_type, mld_c_onelev_type use mld_prec_type, only : mld_cbaseprec_type, mld_conelev_type
type(psb_cspmat_type), intent(in) :: a type(psb_cspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_c_onelev_type), intent(inout), target :: p type(mld_conelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine mld_caggrmat_asb end subroutine mld_caggrmat_asb
subroutine mld_zaggrmat_asb(a,desc_a,ilaggr,nlaggr,p,info) subroutine mld_zaggrmat_asb(a,desc_a,ilaggr,nlaggr,p,info)
use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_
use mld_prec_type, only : mld_zbaseprec_type, mld_z_onelev_type use mld_prec_type, only : mld_zbaseprec_type, mld_zonelev_type
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_z_onelev_type), intent(inout), target :: p type(mld_zonelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine mld_zaggrmat_asb end subroutine mld_zaggrmat_asb
end interface end interface
@ -547,38 +547,38 @@ module mld_inner_mod
interface mld_aggrmat_raw_asb interface mld_aggrmat_raw_asb
subroutine mld_saggrmat_raw_asb(a,desc_a,ilaggr,nlaggr,p,info) subroutine mld_saggrmat_raw_asb(a,desc_a,ilaggr,nlaggr,p,info)
use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_
use mld_prec_type, only : mld_sbaseprec_type, mld_s_onelev_type use mld_prec_type, only : mld_sbaseprec_type, mld_sonelev_type
type(psb_sspmat_type), intent(in) :: a type(psb_sspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_s_onelev_type), intent(inout), target :: p type(mld_sonelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine mld_saggrmat_raw_asb end subroutine mld_saggrmat_raw_asb
subroutine mld_daggrmat_raw_asb(a,desc_a,ilaggr,nlaggr,p,info) subroutine mld_daggrmat_raw_asb(a,desc_a,ilaggr,nlaggr,p,info)
use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_
use mld_prec_type, only : mld_dbaseprec_type, mld_d_onelev_type use mld_prec_type, only : mld_dbaseprec_type, mld_donelev_type
type(psb_dspmat_type), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_d_onelev_type), intent(inout), target :: p type(mld_donelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine mld_daggrmat_raw_asb end subroutine mld_daggrmat_raw_asb
subroutine mld_caggrmat_raw_asb(a,desc_a,ilaggr,nlaggr,p,info) subroutine mld_caggrmat_raw_asb(a,desc_a,ilaggr,nlaggr,p,info)
use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_
use mld_prec_type, only : mld_cbaseprec_type, mld_c_onelev_type use mld_prec_type, only : mld_cbaseprec_type, mld_conelev_type
type(psb_cspmat_type), intent(in) :: a type(psb_cspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_c_onelev_type), intent(inout), target :: p type(mld_conelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine mld_caggrmat_raw_asb end subroutine mld_caggrmat_raw_asb
subroutine mld_zaggrmat_raw_asb(a,desc_a,ilaggr,nlaggr,p,info) subroutine mld_zaggrmat_raw_asb(a,desc_a,ilaggr,nlaggr,p,info)
use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_
use mld_prec_type, only : mld_zbaseprec_type, mld_z_onelev_type use mld_prec_type, only : mld_zbaseprec_type, mld_zonelev_type
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_z_onelev_type), intent(inout), target :: p type(mld_zonelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine mld_zaggrmat_raw_asb end subroutine mld_zaggrmat_raw_asb
end interface end interface
@ -586,38 +586,38 @@ module mld_inner_mod
interface mld_aggrmat_smth_asb interface mld_aggrmat_smth_asb
subroutine mld_saggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) subroutine mld_saggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info)
use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_
use mld_prec_type, only : mld_sbaseprec_type, mld_s_onelev_type use mld_prec_type, only : mld_sbaseprec_type, mld_sonelev_type
type(psb_sspmat_type), intent(in) :: a type(psb_sspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_s_onelev_type), intent(inout), target :: p type(mld_sonelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine mld_saggrmat_smth_asb end subroutine mld_saggrmat_smth_asb
subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info)
use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_
use mld_prec_type, only : mld_dbaseprec_type, mld_d_onelev_type use mld_prec_type, only : mld_dbaseprec_type, mld_donelev_type
type(psb_dspmat_type), intent(in) :: a type(psb_dspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_d_onelev_type), intent(inout), target :: p type(mld_donelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine mld_daggrmat_smth_asb end subroutine mld_daggrmat_smth_asb
subroutine mld_caggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) subroutine mld_caggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info)
use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_
use mld_prec_type, only : mld_cbaseprec_type, mld_c_onelev_type use mld_prec_type, only : mld_cbaseprec_type, mld_conelev_type
type(psb_cspmat_type), intent(in) :: a type(psb_cspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_c_onelev_type), intent(inout), target :: p type(mld_conelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine mld_caggrmat_smth_asb end subroutine mld_caggrmat_smth_asb
subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info) subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info)
use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_
use mld_prec_type, only : mld_zbaseprec_type, mld_z_onelev_type use mld_prec_type, only : mld_zbaseprec_type, mld_zonelev_type
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_z_onelev_type), intent(inout), target :: p type(mld_zonelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
end subroutine mld_zaggrmat_smth_asb end subroutine mld_zaggrmat_smth_asb
end interface end interface

@ -110,7 +110,7 @@ contains
subroutine mld_sonelev_prec_move_alloc(a, b,info) subroutine mld_sonelev_prec_move_alloc(a, b,info)
use psb_base_mod use psb_base_mod
implicit none implicit none
type(mld_s_onelev_type), intent(inout) :: a, b type(mld_sonelev_type), intent(inout) :: a, b
integer, intent(out) :: info integer, intent(out) :: info
call mld_precfree(b,info) call mld_precfree(b,info)
@ -205,7 +205,7 @@ contains
subroutine mld_donelev_prec_move_alloc(a, b,info) subroutine mld_donelev_prec_move_alloc(a, b,info)
use psb_base_mod use psb_base_mod
implicit none implicit none
type(mld_d_onelev_type), intent(inout) :: a, b type(mld_donelev_type), intent(inout) :: a, b
integer, intent(out) :: info integer, intent(out) :: info
call mld_precfree(b,info) call mld_precfree(b,info)
@ -300,7 +300,7 @@ contains
subroutine mld_conelev_prec_move_alloc(a, b,info) subroutine mld_conelev_prec_move_alloc(a, b,info)
use psb_base_mod use psb_base_mod
implicit none implicit none
type(mld_c_onelev_type), intent(inout) :: a, b type(mld_conelev_type), intent(inout) :: a, b
integer, intent(out) :: info integer, intent(out) :: info
call mld_precfree(b,info) call mld_precfree(b,info)
@ -395,7 +395,7 @@ contains
subroutine mld_zonelev_prec_move_alloc(a, b,info) subroutine mld_zonelev_prec_move_alloc(a, b,info)
use psb_base_mod use psb_base_mod
implicit none implicit none
type(mld_z_onelev_type), intent(inout) :: a, b type(mld_zonelev_type), intent(inout) :: a, b
integer, intent(out) :: info integer, intent(out) :: info
call mld_precfree(b,info) call mld_precfree(b,info)

@ -80,7 +80,7 @@ module mld_prec_type
! are mostly omitted. ! are mostly omitted.
! !
! The multilevel preconditioner data structure, mld_Xprec_type, consists ! The multilevel preconditioner data structure, mld_Xprec_type, consists
! of an array of 'one-level preconditioner' data structures, mld_X_onelev_type, ! of an array of 'one-level preconditioner' data structures, mld_Xonelev_type,
! each containing the local part of the preconditioner associated to a ! each containing the local part of the preconditioner associated to a
! certain level. For each level ilev, the base preconditioner K(ilev) is ! certain level. For each level ilev, the base preconditioner K(ilev) is
! built from a matrix A(ilev), which is obtained by 'tranferring' the ! built from a matrix A(ilev), which is obtained by 'tranferring' the
@ -91,14 +91,14 @@ module mld_prec_type
! one, i.e. level 1 is the finest level and A(1) is the matrix A. ! one, i.e. level 1 is the finest level and A(1) is the matrix A.
! !
!| type mld_Xprec_type !| type mld_Xprec_type
!| type(mld_X_onelev_type), allocatable :: precv(:) !| type(mld_Xonelev_type), allocatable :: precv(:)
!| end type mld_Xprec_type !| end type mld_Xprec_type
!| !|
! !
! precv(ilev) is the preconditioner at level ilev. ! precv(ilev) is the preconditioner at level ilev.
! The number of levels is given by size(precv(:)). ! The number of levels is given by size(precv(:)).
! !
! Type: mld_X_onelev_type. ! Type: mld_Xonelev_type.
! The data type containing necessary items for the current level. ! The data type containing necessary items for the current level.
! !
! type(mld_Xbaseprec_type) - prec ! type(mld_Xbaseprec_type) - prec
@ -175,7 +175,7 @@ module mld_prec_type
integer, allocatable :: perm(:), invperm(:) integer, allocatable :: perm(:), invperm(:)
end type mld_sbaseprec_type end type mld_sbaseprec_type
type mld_s_onelev_type type mld_sonelev_type
type(mld_sbaseprec_type) :: prec type(mld_sbaseprec_type) :: prec
integer, allocatable :: iprcparm(:) integer, allocatable :: iprcparm(:)
real(psb_spk_), allocatable :: rprcparm(:) real(psb_spk_), allocatable :: rprcparm(:)
@ -184,10 +184,10 @@ module mld_prec_type
type(psb_sspmat_type), pointer :: base_a => null() type(psb_sspmat_type), pointer :: base_a => null()
type(psb_desc_type), pointer :: base_desc => null() type(psb_desc_type), pointer :: base_desc => null()
type(psb_linmap_type) :: map type(psb_linmap_type) :: map
end type mld_s_onelev_type end type mld_sonelev_type
type mld_sprec_type type mld_sprec_type
type(mld_s_onelev_type), allocatable :: precv(:) type(mld_sonelev_type), allocatable :: precv(:)
end type mld_sprec_type end type mld_sprec_type
type mld_dbaseprec_type type mld_dbaseprec_type
@ -199,7 +199,7 @@ module mld_prec_type
integer, allocatable :: perm(:), invperm(:) integer, allocatable :: perm(:), invperm(:)
end type mld_dbaseprec_type end type mld_dbaseprec_type
type mld_d_onelev_type type mld_donelev_type
type(mld_dbaseprec_type) :: prec type(mld_dbaseprec_type) :: prec
integer, allocatable :: iprcparm(:) integer, allocatable :: iprcparm(:)
real(psb_dpk_), allocatable :: rprcparm(:) real(psb_dpk_), allocatable :: rprcparm(:)
@ -209,10 +209,10 @@ module mld_prec_type
type(psb_dspmat_type), pointer :: base_a => null() type(psb_dspmat_type), pointer :: base_a => null()
type(psb_desc_type), pointer :: base_desc => null() type(psb_desc_type), pointer :: base_desc => null()
type(psb_linmap_type) :: map type(psb_linmap_type) :: map
end type mld_d_onelev_type end type mld_donelev_type
type mld_dprec_type type mld_dprec_type
type(mld_d_onelev_type), allocatable :: precv(:) type(mld_donelev_type), allocatable :: precv(:)
end type mld_dprec_type end type mld_dprec_type
@ -225,7 +225,7 @@ module mld_prec_type
integer, allocatable :: perm(:), invperm(:) integer, allocatable :: perm(:), invperm(:)
end type mld_cbaseprec_type end type mld_cbaseprec_type
type mld_c_onelev_type type mld_conelev_type
type(mld_cbaseprec_type) :: prec type(mld_cbaseprec_type) :: prec
integer, allocatable :: iprcparm(:) integer, allocatable :: iprcparm(:)
real(psb_spk_), allocatable :: rprcparm(:) real(psb_spk_), allocatable :: rprcparm(:)
@ -234,10 +234,10 @@ module mld_prec_type
type(psb_cspmat_type), pointer :: base_a => null() type(psb_cspmat_type), pointer :: base_a => null()
type(psb_desc_type), pointer :: base_desc => null() type(psb_desc_type), pointer :: base_desc => null()
type(psb_linmap_type) :: map type(psb_linmap_type) :: map
end type mld_c_onelev_type end type mld_conelev_type
type mld_cprec_type type mld_cprec_type
type(mld_c_onelev_type), allocatable :: precv(:) type(mld_conelev_type), allocatable :: precv(:)
end type mld_cprec_type end type mld_cprec_type
type mld_zbaseprec_type type mld_zbaseprec_type
@ -249,7 +249,7 @@ module mld_prec_type
integer, allocatable :: perm(:), invperm(:) integer, allocatable :: perm(:), invperm(:)
end type mld_zbaseprec_type end type mld_zbaseprec_type
type mld_z_onelev_type type mld_zonelev_type
type(mld_zbaseprec_type) :: prec type(mld_zbaseprec_type) :: prec
integer, allocatable :: iprcparm(:) integer, allocatable :: iprcparm(:)
real(psb_dpk_), allocatable :: rprcparm(:) real(psb_dpk_), allocatable :: rprcparm(:)
@ -258,10 +258,10 @@ module mld_prec_type
type(psb_zspmat_type), pointer :: base_a => null() type(psb_zspmat_type), pointer :: base_a => null()
type(psb_desc_type), pointer :: base_desc => null() type(psb_desc_type), pointer :: base_desc => null()
type(psb_linmap_type) :: map type(psb_linmap_type) :: map
end type mld_z_onelev_type end type mld_zonelev_type
type mld_zprec_type type mld_zprec_type
type(mld_z_onelev_type), allocatable :: precv(:) type(mld_zonelev_type), allocatable :: precv(:)
end type mld_zprec_type end type mld_zprec_type
@ -751,7 +751,7 @@ contains
function mld_s_onelev_prec_sizeof(prec) result(val) function mld_s_onelev_prec_sizeof(prec) result(val)
implicit none implicit none
type(mld_s_onelev_type), intent(in) :: prec type(mld_sonelev_type), intent(in) :: prec
integer(psb_long_int_k_) :: val integer(psb_long_int_k_) :: val
integer :: i integer :: i
@ -768,7 +768,7 @@ contains
function mld_d_onelev_prec_sizeof(prec) result(val) function mld_d_onelev_prec_sizeof(prec) result(val)
implicit none implicit none
type(mld_d_onelev_type), intent(in) :: prec type(mld_donelev_type), intent(in) :: prec
integer(psb_long_int_k_) :: val integer(psb_long_int_k_) :: val
integer :: i integer :: i
@ -785,7 +785,7 @@ contains
function mld_c_onelev_prec_sizeof(prec) result(val) function mld_c_onelev_prec_sizeof(prec) result(val)
implicit none implicit none
type(mld_c_onelev_type), intent(in) :: prec type(mld_conelev_type), intent(in) :: prec
integer(psb_long_int_k_) :: val integer(psb_long_int_k_) :: val
integer :: i integer :: i
@ -802,7 +802,7 @@ contains
function mld_z_onelev_prec_sizeof(prec) result(val) function mld_z_onelev_prec_sizeof(prec) result(val)
implicit none implicit none
type(mld_z_onelev_type), intent(in) :: prec type(mld_zonelev_type), intent(in) :: prec
integer(psb_long_int_k_) :: val integer(psb_long_int_k_) :: val
integer :: i integer :: i
@ -1869,7 +1869,7 @@ contains
subroutine mld_s_onelev_precfree(p,info) subroutine mld_s_onelev_precfree(p,info)
implicit none implicit none
type(mld_s_onelev_type), intent(inout) :: p type(mld_sonelev_type), intent(inout) :: p
integer, intent(out) :: info integer, intent(out) :: info
integer :: i integer :: i
@ -1904,7 +1904,7 @@ contains
subroutine mld_nullify_s_onelevprec(p) subroutine mld_nullify_s_onelevprec(p)
implicit none implicit none
type(mld_s_onelev_type), intent(inout) :: p type(mld_sonelev_type), intent(inout) :: p
nullify(p%base_a) nullify(p%base_a)
nullify(p%base_desc) nullify(p%base_desc)
@ -1984,7 +1984,7 @@ contains
subroutine mld_d_onelev_precfree(p,info) subroutine mld_d_onelev_precfree(p,info)
implicit none implicit none
type(mld_d_onelev_type), intent(inout) :: p type(mld_donelev_type), intent(inout) :: p
integer, intent(out) :: info integer, intent(out) :: info
integer :: i integer :: i
@ -2026,7 +2026,7 @@ contains
subroutine mld_nullify_d_onelevprec(p) subroutine mld_nullify_d_onelevprec(p)
implicit none implicit none
type(mld_d_onelev_type), intent(inout) :: p type(mld_donelev_type), intent(inout) :: p
nullify(p%base_a) nullify(p%base_a)
nullify(p%base_desc) nullify(p%base_desc)
@ -2086,7 +2086,7 @@ contains
subroutine mld_c_onelev_precfree(p,info) subroutine mld_c_onelev_precfree(p,info)
implicit none implicit none
type(mld_c_onelev_type), intent(inout) :: p type(mld_conelev_type), intent(inout) :: p
integer, intent(out) :: info integer, intent(out) :: info
integer :: i integer :: i
@ -2120,7 +2120,7 @@ contains
subroutine mld_nullify_c_onelevprec(p) subroutine mld_nullify_c_onelevprec(p)
implicit none implicit none
type(mld_c_onelev_type), intent(inout) :: p type(mld_conelev_type), intent(inout) :: p
nullify(p%base_a) nullify(p%base_a)
nullify(p%base_desc) nullify(p%base_desc)
@ -2192,7 +2192,7 @@ contains
subroutine mld_z_onelev_precfree(p,info) subroutine mld_z_onelev_precfree(p,info)
implicit none implicit none
type(mld_z_onelev_type), intent(inout) :: p type(mld_zonelev_type), intent(inout) :: p
integer, intent(out) :: info integer, intent(out) :: info
integer :: i integer :: i
@ -2226,7 +2226,7 @@ contains
subroutine mld_nullify_z_onelevprec(p) subroutine mld_nullify_z_onelevprec(p)
implicit none implicit none
type(mld_z_onelev_type), intent(inout) :: p type(mld_zonelev_type), intent(inout) :: p
nullify(p%base_a) nullify(p%base_a)
nullify(p%base_desc) nullify(p%base_desc)

@ -83,7 +83,7 @@
! the fine-level matrix. ! the fine-level matrix.
! desc_a - type(psb_desc_type), input. ! desc_a - type(psb_desc_type), input.
! The communication descriptor of the fine-level matrix. ! The communication descriptor of the fine-level matrix.
! p - type(mld_s_onelev_type), input/output. ! p - type(mld_sonelev_type), input/output.
! The one-level preconditioner data structure containing the local ! The one-level preconditioner data structure containing the local
! part of the base preconditioner to be built as well as the ! part of the base preconditioner to be built as well as the
! aggregate matrices. ! aggregate matrices.
@ -101,7 +101,7 @@ subroutine mld_saggrmat_asb(a,desc_a,ilaggr,nlaggr,p,info)
type(psb_sspmat_type), intent(in) :: a type(psb_sspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_s_onelev_type), intent(inout), target :: p type(mld_sonelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
! Local variables ! Local variables

@ -66,7 +66,7 @@
! the fine-level matrix. ! the fine-level matrix.
! desc_a - type(psb_desc_type), input. ! desc_a - type(psb_desc_type), input.
! The communication descriptor of the fine-level matrix. ! The communication descriptor of the fine-level matrix.
! p - type(mld_s_onelev_type), input/output. ! p - type(mld_sonelev_type), input/output.
! The one-level preconditioner data structure containing the local ! The one-level preconditioner data structure containing the local
! part of the base preconditioner to be built as well as the ! part of the base preconditioner to be built as well as the
! aggregate matrices. ! aggregate matrices.
@ -89,7 +89,7 @@ subroutine mld_saggrmat_raw_asb(a,desc_a,ilaggr,nlaggr,p,info)
type(psb_sspmat_type), intent(in) :: a type(psb_sspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_s_onelev_type), intent(inout), target :: p type(mld_sonelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
! Local variables ! Local variables

@ -83,7 +83,7 @@
! the fine-level matrix. ! the fine-level matrix.
! desc_a - type(psb_desc_type), input. ! desc_a - type(psb_desc_type), input.
! The communication descriptor of the fine-level matrix. ! The communication descriptor of the fine-level matrix.
! p - type(mld_s_onelev_type), input/output. ! p - type(mld_sonelev_type), input/output.
! The one-level preconditioner data structure containing the local ! The one-level preconditioner data structure containing the local
! part of the base preconditioner to be built as well as the ! part of the base preconditioner to be built as well as the
! aggregate matrices. ! aggregate matrices.
@ -106,7 +106,7 @@ subroutine mld_saggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info)
type(psb_sspmat_type), intent(in) :: a type(psb_sspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_s_onelev_type), intent(inout), target :: p type(mld_sonelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
! Local variables ! Local variables

@ -54,7 +54,7 @@
! matrix to be preconditioned. ! matrix to be preconditioned.
! desc_a - type(psb_desc_type), input. ! desc_a - type(psb_desc_type), input.
! The communication descriptor of a. ! The communication descriptor of a.
! p - type(mld_s_onelev_type), input/output. ! p - type(mld_sonelev_type), input/output.
! The preconditioner data structure containing the local ! The preconditioner data structure containing the local
! part of the one-level preconditioner to be built. ! part of the one-level preconditioner to be built.
! info - integer, output. ! info - integer, output.
@ -70,7 +70,7 @@ subroutine mld_scoarse_bld(a,desc_a,p,info)
! Arguments ! Arguments
type(psb_sspmat_type), intent(in), target :: a type(psb_sspmat_type), intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a type(psb_desc_type), intent(in), target :: desc_a
type(mld_s_onelev_type), intent(inout),target :: p type(mld_sonelev_type), intent(inout),target :: p
integer, intent(out) :: info integer, intent(out) :: info
! Local variables ! Local variables

@ -78,7 +78,7 @@
! Arguments: ! Arguments:
! alpha - real(psb_spk_), input. ! alpha - real(psb_spk_), input.
! The scalar alpha. ! The scalar alpha.
! precv - type(mld_s_onelev_type), dimension(:), input. ! precv - type(mld_sonelev_type), dimension(:), input.
! The array of one-level preconditioner data structures containing the ! The array of one-level preconditioner data structures containing the
! local parts of the preconditioners to be applied at each level. ! local parts of the preconditioners to be applied at each level.
! Note that nlev = size(precv) = number of levels. ! Note that nlev = size(precv) = number of levels.
@ -148,7 +148,7 @@ subroutine mld_smlprec_aply(alpha,precv,x,beta,y,desc_data,trans,work,info)
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_s_onelev_type), intent(in) :: precv(:) type(mld_sonelev_type), intent(in) :: precv(:)
real(psb_spk_),intent(in) :: alpha,beta real(psb_spk_),intent(in) :: alpha,beta
real(psb_spk_),intent(in) :: x(:) real(psb_spk_),intent(in) :: x(:)
real(psb_spk_),intent(inout) :: y(:) real(psb_spk_),intent(inout) :: y(:)
@ -340,7 +340,7 @@ contains
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_s_onelev_type), intent(in) :: precv(:) type(mld_sonelev_type), intent(in) :: precv(:)
real(psb_spk_),intent(in) :: alpha,beta real(psb_spk_),intent(in) :: alpha,beta
real(psb_spk_),intent(in) :: x(:) real(psb_spk_),intent(in) :: x(:)
real(psb_spk_),intent(inout) :: y(:) real(psb_spk_),intent(inout) :: y(:)
@ -575,7 +575,7 @@ contains
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_s_onelev_type), intent(in) :: precv(:) type(mld_sonelev_type), intent(in) :: precv(:)
real(psb_spk_),intent(in) :: alpha,beta real(psb_spk_),intent(in) :: alpha,beta
real(psb_spk_),intent(in) :: x(:) real(psb_spk_),intent(in) :: x(:)
real(psb_spk_),intent(inout) :: y(:) real(psb_spk_),intent(inout) :: y(:)
@ -834,7 +834,7 @@ contains
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_s_onelev_type), intent(in) :: precv(:) type(mld_sonelev_type), intent(in) :: precv(:)
real(psb_spk_),intent(in) :: alpha,beta real(psb_spk_),intent(in) :: alpha,beta
real(psb_spk_),intent(in) :: x(:) real(psb_spk_),intent(in) :: x(:)
real(psb_spk_),intent(inout) :: y(:) real(psb_spk_),intent(inout) :: y(:)
@ -1131,7 +1131,7 @@ contains
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_s_onelev_type), intent(in) :: precv(:) type(mld_sonelev_type), intent(in) :: precv(:)
real(psb_spk_),intent(in) :: alpha,beta real(psb_spk_),intent(in) :: alpha,beta
real(psb_spk_),intent(in) :: x(:) real(psb_spk_),intent(in) :: x(:)
real(psb_spk_),intent(inout) :: y(:) real(psb_spk_),intent(inout) :: y(:)

@ -349,7 +349,7 @@ contains
end subroutine init_baseprec_av end subroutine init_baseprec_av
subroutine check_coarse_lev(prec) subroutine check_coarse_lev(prec)
type(mld_s_onelev_type) :: prec type(mld_sonelev_type) :: prec
! !
! At the coarsest level, check mld_coarse_solve_ ! At the coarsest level, check mld_coarse_solve_

@ -83,7 +83,7 @@
! the fine-level matrix. ! the fine-level matrix.
! desc_a - type(psb_desc_type), input. ! desc_a - type(psb_desc_type), input.
! The communication descriptor of the fine-level matrix. ! The communication descriptor of the fine-level matrix.
! p - type(mld_z_onelev_type), input/output. ! p - type(mld_zonelev_type), input/output.
! The one-level preconditioner data structure containing the local ! The one-level preconditioner data structure containing the local
! part of the base preconditioner to be built as well as the ! part of the base preconditioner to be built as well as the
! aggregate matrices. ! aggregate matrices.
@ -101,7 +101,7 @@ subroutine mld_zaggrmat_asb(a,desc_a,ilaggr,nlaggr,p,info)
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_z_onelev_type), intent(inout), target :: p type(mld_zonelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
! Local variables ! Local variables

@ -66,7 +66,7 @@
! the fine-level matrix. ! the fine-level matrix.
! desc_a - type(psb_desc_type), input. ! desc_a - type(psb_desc_type), input.
! The communication descriptor of the fine-level matrix. ! The communication descriptor of the fine-level matrix.
! p - type(mld_z_onelev_type), input/output. ! p - type(mld_zonelev_type), input/output.
! The one-level preconditioner data structure containing the local ! The one-level preconditioner data structure containing the local
! part of the base preconditioner to be built as well as the ! part of the base preconditioner to be built as well as the
! aggregate matrices. ! aggregate matrices.
@ -89,7 +89,7 @@ subroutine mld_zaggrmat_raw_asb(a,desc_a,ilaggr,nlaggr,p,info)
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_z_onelev_type), intent(inout), target :: p type(mld_zonelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
! Local variables ! Local variables

@ -83,7 +83,7 @@
! the fine-level matrix. ! the fine-level matrix.
! desc_a - type(psb_desc_type), input. ! desc_a - type(psb_desc_type), input.
! The communication descriptor of the fine-level matrix. ! The communication descriptor of the fine-level matrix.
! p - type(mld_z_onelev_type), input/output. ! p - type(mld_zonelev_type), input/output.
! The one-level preconditioner data structure containing the local ! The one-level preconditioner data structure containing the local
! part of the base preconditioner to be built as well as the ! part of the base preconditioner to be built as well as the
! aggregate matrices. ! aggregate matrices.
@ -106,7 +106,7 @@ subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info)
type(psb_zspmat_type), intent(in) :: a type(psb_zspmat_type), intent(in) :: a
type(psb_desc_type), intent(in) :: desc_a type(psb_desc_type), intent(in) :: desc_a
integer, intent(inout) :: ilaggr(:), nlaggr(:) integer, intent(inout) :: ilaggr(:), nlaggr(:)
type(mld_z_onelev_type), intent(inout), target :: p type(mld_zonelev_type), intent(inout), target :: p
integer, intent(out) :: info integer, intent(out) :: info
! Local variables ! Local variables

@ -54,7 +54,7 @@
! matrix to be preconditioned. ! matrix to be preconditioned.
! desc_a - type(psb_desc_type), input. ! desc_a - type(psb_desc_type), input.
! The communication descriptor of a. ! The communication descriptor of a.
! p - type(mld_z_onelev_type), input/output. ! p - type(mld_zonelev_type), input/output.
! The preconditioner data structure containing the local ! The preconditioner data structure containing the local
! part of the one-level preconditioner to be built. ! part of the one-level preconditioner to be built.
! info - integer, output. ! info - integer, output.
@ -70,7 +70,7 @@ subroutine mld_zcoarse_bld(a,desc_a,p,info)
! Arguments ! Arguments
type(psb_zspmat_type), intent(in), target :: a type(psb_zspmat_type), intent(in), target :: a
type(psb_desc_type), intent(in), target :: desc_a type(psb_desc_type), intent(in), target :: desc_a
type(mld_z_onelev_type), intent(inout),target :: p type(mld_zonelev_type), intent(inout),target :: p
integer, intent(out) :: info integer, intent(out) :: info
! Local variables ! Local variables

@ -78,7 +78,7 @@
! Arguments: ! Arguments:
! alpha - complex(psb_dpk_), input. ! alpha - complex(psb_dpk_), input.
! The scalar alpha. ! The scalar alpha.
! precv - type(mld_z_onelev_type), dimension(:), input. ! precv - type(mld_zonelev_type), dimension(:), input.
! The array of one-level preconditioner data structures containing the ! The array of one-level preconditioner data structures containing the
! local parts of the preconditioners to be applied at each level. ! local parts of the preconditioners to be applied at each level.
! Note that nlev = size(precv) = number of levels. ! Note that nlev = size(precv) = number of levels.
@ -148,7 +148,7 @@ subroutine mld_zmlprec_aply(alpha,precv,x,beta,y,desc_data,trans,work,info)
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_z_onelev_type), intent(in) :: precv(:) type(mld_zonelev_type), intent(in) :: precv(:)
complex(psb_dpk_),intent(in) :: alpha,beta complex(psb_dpk_),intent(in) :: alpha,beta
complex(psb_dpk_),intent(in) :: x(:) complex(psb_dpk_),intent(in) :: x(:)
complex(psb_dpk_),intent(inout) :: y(:) complex(psb_dpk_),intent(inout) :: y(:)
@ -341,7 +341,7 @@ contains
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_z_onelev_type), intent(in) :: precv(:) type(mld_zonelev_type), intent(in) :: precv(:)
complex(psb_dpk_),intent(in) :: alpha,beta complex(psb_dpk_),intent(in) :: alpha,beta
complex(psb_dpk_),intent(in) :: x(:) complex(psb_dpk_),intent(in) :: x(:)
complex(psb_dpk_),intent(inout) :: y(:) complex(psb_dpk_),intent(inout) :: y(:)
@ -577,7 +577,7 @@ contains
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_z_onelev_type), intent(in) :: precv(:) type(mld_zonelev_type), intent(in) :: precv(:)
complex(psb_dpk_),intent(in) :: alpha,beta complex(psb_dpk_),intent(in) :: alpha,beta
complex(psb_dpk_),intent(in) :: x(:) complex(psb_dpk_),intent(in) :: x(:)
complex(psb_dpk_),intent(inout) :: y(:) complex(psb_dpk_),intent(inout) :: y(:)
@ -837,7 +837,7 @@ contains
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_z_onelev_type), intent(in) :: precv(:) type(mld_zonelev_type), intent(in) :: precv(:)
complex(psb_dpk_),intent(in) :: alpha,beta complex(psb_dpk_),intent(in) :: alpha,beta
complex(psb_dpk_),intent(in) :: x(:) complex(psb_dpk_),intent(in) :: x(:)
complex(psb_dpk_),intent(inout) :: y(:) complex(psb_dpk_),intent(inout) :: y(:)
@ -1135,7 +1135,7 @@ contains
! Arguments ! Arguments
type(psb_desc_type),intent(in) :: desc_data type(psb_desc_type),intent(in) :: desc_data
type(mld_z_onelev_type), intent(in) :: precv(:) type(mld_zonelev_type), intent(in) :: precv(:)
complex(psb_dpk_),intent(in) :: alpha,beta complex(psb_dpk_),intent(in) :: alpha,beta
complex(psb_dpk_),intent(in) :: x(:) complex(psb_dpk_),intent(in) :: x(:)
complex(psb_dpk_),intent(inout) :: y(:) complex(psb_dpk_),intent(inout) :: y(:)

@ -349,7 +349,7 @@ contains
end subroutine init_baseprec_av end subroutine init_baseprec_av
subroutine check_coarse_lev(prec) subroutine check_coarse_lev(prec)
type(mld_z_onelev_type) :: prec type(mld_zonelev_type) :: prec
! !
! At the coarsest level, check mld_coarse_solve_ ! At the coarsest level, check mld_coarse_solve_

Loading…
Cancel
Save