mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 14:44:55 +00:00
mld2p4
Changelog krylov/psb_prec_mod.F90 mlprec/mld_cas_aply.f90 mlprec/mld_cas_bld.f90 mlprec/mld_cbaseprec_aply.f90 mlprec/mld_cbaseprec_bld.f90 mlprec/mld_cdiag_bld.f90 mlprec/mld_cfact_bld.f90 mlprec/mld_cilu_bld.f90 mlprec/mld_cmlprec_aply.f90 mlprec/mld_cprecbld.f90 mlprec/mld_cslu_bld.f90 mlprec/mld_cslud_bld.f90 mlprec/mld_csp_renum.f90 mlprec/mld_csub_aply.f90 mlprec/mld_csub_solve.f90 mlprec/mld_cumf_bld.f90 mlprec/mld_das_aply.f90 mlprec/mld_das_bld.f90 mlprec/mld_dbaseprec_aply.f90 mlprec/mld_dbaseprec_bld.f90 mlprec/mld_ddiag_bld.f90 mlprec/mld_dfact_bld.f90 mlprec/mld_dilu_bld.f90 mlprec/mld_dmlprec_aply.f90 mlprec/mld_dprecbld.f90 mlprec/mld_dslu_bld.f90 mlprec/mld_dslud_bld.f90 mlprec/mld_dsp_renum.f90 mlprec/mld_dsub_aply.f90 mlprec/mld_dsub_solve.f90 mlprec/mld_dumf_bld.f90 mlprec/mld_inner_mod.f90 mlprec/mld_move_alloc_mod.F90 mlprec/mld_prec_type.f90 mlprec/mld_sas_aply.f90 mlprec/mld_sas_bld.f90 mlprec/mld_sbaseprec_aply.f90 mlprec/mld_sbaseprec_bld.f90 mlprec/mld_sdiag_bld.f90 mlprec/mld_sfact_bld.f90 mlprec/mld_silu_bld.f90 mlprec/mld_smlprec_aply.f90 mlprec/mld_sprecbld.f90 mlprec/mld_sslu_bld.f90 mlprec/mld_sslud_bld.f90 mlprec/mld_ssp_renum.f90 mlprec/mld_ssub_aply.f90 mlprec/mld_ssub_solve.f90 mlprec/mld_sumf_bld.f90 mlprec/mld_zas_aply.f90 mlprec/mld_zas_bld.f90 mlprec/mld_zbaseprec_aply.f90 mlprec/mld_zbaseprec_bld.f90 mlprec/mld_zdiag_bld.f90 mlprec/mld_zfact_bld.f90 mlprec/mld_zilu_bld.f90 mlprec/mld_zmlprec_aply.f90 mlprec/mld_zprecbld.f90 mlprec/mld_zslu_bld.f90 mlprec/mld_zslud_bld.f90 mlprec/mld_zsp_renum.f90 mlprec/mld_zsub_aply.f90 mlprec/mld_zsub_solve.f90 mlprec/mld_zumf_bld.f90 Changed names from XbaseprcY to XbaseprecY.
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
Changelog. A lot less detailed than usual, at least for past
|
Changelog. A lot less detailed than usual, at least for past
|
||||||
history.
|
history.
|
||||||
|
|
||||||
|
2009/01/28: Changed names from XbaseprcY to XbaseprecY.
|
||||||
2009/01/27: Changed names from mld_transfer to mld_move_alloc.
|
2009/01/27: Changed names from mld_transfer to mld_move_alloc.
|
||||||
|
|
||||||
2009/01/13: Repackaged the one-level preconditioners. Reorganized the
|
2009/01/13: Repackaged the one-level preconditioners. Reorganized the
|
||||||
|
|||||||
@@ -51,10 +51,10 @@
|
|||||||
module psb_prec_mod
|
module psb_prec_mod
|
||||||
|
|
||||||
use mld_prec_mod, &
|
use mld_prec_mod, &
|
||||||
& psb_sbaseprc_type => mld_sbaseprc_type,&
|
& psb_sbaseprec_type => mld_sbaseprec_type,&
|
||||||
& psb_dbaseprc_type => mld_dbaseprc_type,&
|
& psb_dbaseprec_type => mld_dbaseprec_type,&
|
||||||
& psb_cbaseprc_type => mld_cbaseprc_type,&
|
& psb_cbaseprec_type => mld_cbaseprec_type,&
|
||||||
& psb_zbaseprc_type => mld_zbaseprc_type,&
|
& psb_zbaseprec_type => mld_zbaseprec_type,&
|
||||||
& psb_sprec_type => mld_sprec_type,&
|
& psb_sprec_type => mld_sprec_type,&
|
||||||
& psb_dprec_type => mld_dprec_type,&
|
& psb_dprec_type => mld_dprec_type,&
|
||||||
& psb_cprec_type => mld_cprec_type,&
|
& psb_cprec_type => mld_cprec_type,&
|
||||||
@@ -73,7 +73,7 @@ module psb_prec_mod
|
|||||||
|
|
||||||
interface psb_sizeof
|
interface psb_sizeof
|
||||||
module procedure mld_dprec_sizeof, mld_zprec_sizeof, &
|
module procedure mld_dprec_sizeof, mld_zprec_sizeof, &
|
||||||
& mld_dbaseprc_sizeof, mld_zbaseprc_sizeof
|
& mld_dbaseprec_sizeof, mld_zbaseprec_sizeof
|
||||||
end interface
|
end interface
|
||||||
|
|
||||||
end module psb_prec_mod
|
end module psb_prec_mod
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
! Arguments:
|
! Arguments:
|
||||||
! alpha - real(psb_spk_), input.
|
! alpha - real(psb_spk_), input.
|
||||||
! The scalar alpha.
|
! The scalar alpha.
|
||||||
! prec - type(mld_dbaseprc_type), input.
|
! prec - type(mld_dbaseprec_type), input.
|
||||||
! The base preconditioner data structure containing the local part
|
! The base preconditioner data structure containing the local part
|
||||||
! of the preconditioner K.
|
! of the preconditioner K.
|
||||||
! x - real(psb_spk_), dimension(:), input.
|
! x - real(psb_spk_), dimension(:), input.
|
||||||
@@ -83,7 +83,7 @@ subroutine mld_cas_aply(alpha,prec,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_cbaseprc_type), intent(in) :: prec
|
type(mld_cbaseprec_type), intent(in) :: prec
|
||||||
complex(psb_spk_),intent(in) :: x(:)
|
complex(psb_spk_),intent(in) :: x(:)
|
||||||
complex(psb_spk_),intent(inout) :: y(:)
|
complex(psb_spk_),intent(inout) :: y(:)
|
||||||
complex(psb_spk_),intent(in) :: alpha,beta
|
complex(psb_spk_),intent(in) :: alpha,beta
|
||||||
|
|||||||
@@ -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 the sparse matrix a.
|
! The communication descriptor of the sparse matrix a.
|
||||||
! p - type(mld_cbaseprc_type), input/output.
|
! p - type(mld_cbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the local
|
! The 'base preconditioner' data structure containing the local
|
||||||
! part of the preconditioner or solver to be built.
|
! part of the preconditioner or solver to be built.
|
||||||
! upd - character, input.
|
! upd - character, input.
|
||||||
@@ -76,7 +76,7 @@ subroutine mld_cas_bld(a,desc_a,p,upd,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) :: desc_a
|
Type(psb_desc_type), Intent(in) :: desc_a
|
||||||
type(mld_cbaseprc_type), intent(inout) :: p
|
type(mld_cbaseprec_type), intent(inout) :: p
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
! Arguments:
|
! Arguments:
|
||||||
! alpha - complex(psb_spk_), input.
|
! alpha - complex(psb_spk_), input.
|
||||||
! The scalar alpha.
|
! The scalar alpha.
|
||||||
! prec - type(mld_cbaseprc_type), input.
|
! prec - type(mld_cbaseprec_type), input.
|
||||||
! The base preconditioner data structure containing the local part
|
! The base preconditioner data structure containing the local part
|
||||||
! of the preconditioner K.
|
! of the preconditioner K.
|
||||||
! x - complex(psb_spk_), dimension(:), input.
|
! x - complex(psb_spk_), dimension(:), input.
|
||||||
@@ -87,7 +87,7 @@ subroutine mld_cbaseprec_aply(alpha,prec,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_cbaseprc_type), intent(in) :: prec
|
type(mld_cbaseprec_type), intent(in) :: prec
|
||||||
complex(psb_spk_),intent(in) :: x(:)
|
complex(psb_spk_),intent(in) :: x(:)
|
||||||
complex(psb_spk_),intent(inout) :: y(:)
|
complex(psb_spk_),intent(inout) :: y(:)
|
||||||
complex(psb_spk_),intent(in) :: alpha,beta
|
complex(psb_spk_),intent(in) :: alpha,beta
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ subroutine mld_cbaseprec_bld(a,desc_a,p,info,upd)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_cspmat_type), target :: a
|
type(psb_cspmat_type), target :: a
|
||||||
type(psb_desc_type), intent(in), target :: desc_a
|
type(psb_desc_type), intent(in), target :: desc_a
|
||||||
type(mld_cbaseprc_type),intent(inout) :: p
|
type(mld_cbaseprec_type),intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
character, intent(in), optional :: upd
|
character, intent(in), optional :: upd
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ subroutine mld_cbaseprec_bld(a,desc_a,p,info,upd)
|
|||||||
character(len=20) :: name, ch_err
|
character(len=20) :: name, ch_err
|
||||||
|
|
||||||
if (psb_get_errstatus() /= 0) return
|
if (psb_get_errstatus() /= 0) return
|
||||||
name = 'mld_cbaseprc_bld'
|
name = 'mld_cbaseprec_bld'
|
||||||
info=0
|
info=0
|
||||||
err=0
|
err=0
|
||||||
call psb_erractionsave(err_act)
|
call psb_erractionsave(err_act)
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
! matrix A to be preconditioned.
|
! matrix A to be preconditioned.
|
||||||
! desc_a - type(psb_desc_type), input.
|
! desc_a - type(psb_desc_type), input.
|
||||||
! The communication descriptor associated to the sparse matrix A.
|
! The communication descriptor associated to the sparse matrix A.
|
||||||
! p - type(mld_cbaseprc_type), input/output.
|
! p - type(mld_cbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the local
|
! The 'base preconditioner' data structure containing the local
|
||||||
! part of the diagonal preconditioner.
|
! part of the diagonal preconditioner.
|
||||||
! info - integer, output.
|
! info - integer, output.
|
||||||
@@ -67,7 +67,7 @@ subroutine mld_cdiag_bld(a,desc_a,p,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_cspmat_type), target :: a
|
type(psb_cspmat_type), target :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_cbaseprc_type),intent(inout) :: p
|
type(mld_cbaseprec_type),intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ subroutine mld_cfact_bld(a,p,upd,info,blck)
|
|||||||
|
|
||||||
! Arguments
|
! Arguments
|
||||||
type(psb_cspmat_type), intent(in), target :: a
|
type(psb_cspmat_type), intent(in), target :: a
|
||||||
type(mld_cbaseprc_type), intent(inout) :: p
|
type(mld_cbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
type(psb_cspmat_type), intent(in), target, optional :: blck
|
type(psb_cspmat_type), intent(in), target, optional :: blck
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
! only the 'original' local part of the distributed matrix,
|
! only the 'original' local part of the distributed matrix,
|
||||||
! i.e. the rows of the matrix held by the calling process according
|
! i.e. the rows of the matrix held by the calling process according
|
||||||
! to the initial data distribution.
|
! to the initial data distribution.
|
||||||
! p - type(mld_cbaseprc_type), input/output.
|
! p - type(mld_cbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure. In input, p%iprcparm
|
! The 'base preconditioner' data structure. In input, p%iprcparm
|
||||||
! contains information on the type of factorization to be computed.
|
! contains information on the type of factorization to be computed.
|
||||||
! In output, p%av(mld_l_pr_) and p%av(mld_u_pr_) contain the
|
! In output, p%av(mld_l_pr_) and p%av(mld_u_pr_) contain the
|
||||||
@@ -98,7 +98,7 @@ subroutine mld_cilu_bld(a,p,upd,info,blck)
|
|||||||
|
|
||||||
! Arguments
|
! Arguments
|
||||||
type(psb_cspmat_type), intent(in), target :: a
|
type(psb_cspmat_type), intent(in), target :: a
|
||||||
type(mld_cbaseprc_type), intent(inout) :: p
|
type(mld_cbaseprec_type), intent(inout) :: p
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
type(psb_cspmat_type), intent(in), optional :: blck
|
type(psb_cspmat_type), intent(in), optional :: blck
|
||||||
|
|||||||
@@ -82,7 +82,7 @@
|
|||||||
! 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.
|
||||||
! precv(ilev)%prec - type(psb_cbaseprc_type)
|
! precv(ilev)%prec - type(psb_cbaseprec_type)
|
||||||
! The "base" preconditioner for the current level
|
! The "base" preconditioner for the current level
|
||||||
! precv(ilev)%ac - type(psb_cspmat_type)
|
! precv(ilev)%ac - type(psb_cspmat_type)
|
||||||
! The local part of the matrix A(ilev).
|
! The local part of the matrix A(ilev).
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
!
|
!
|
||||||
! Subroutine: mld_cprecbld
|
! Subroutine: mld_cprecbld
|
||||||
! Version: complex
|
! Version: complex
|
||||||
! Contains: subroutine init_baseprc_av
|
! Contains: subroutine init_baseprec_av
|
||||||
!
|
!
|
||||||
! This routine builds the preconditioner according to the requirements made by
|
! This routine builds the preconditioner according to the requirements made by
|
||||||
! the user trough the subroutines mld_precinit and mld_precset.
|
! the user trough the subroutines mld_precinit and mld_precset.
|
||||||
@@ -154,7 +154,7 @@ subroutine mld_cprecbld(a,desc_a,p,info)
|
|||||||
!
|
!
|
||||||
! Finest level first; remember to fix base_a and base_desc
|
! Finest level first; remember to fix base_a and base_desc
|
||||||
!
|
!
|
||||||
call init_baseprc_av(p%precv(1)%prec,info)
|
call init_baseprec_av(p%precv(1)%prec,info)
|
||||||
p%precv(1)%base_a => a
|
p%precv(1)%base_a => a
|
||||||
p%precv(1)%base_desc => desc_a
|
p%precv(1)%base_desc => desc_a
|
||||||
|
|
||||||
@@ -211,7 +211,7 @@ subroutine mld_cprecbld(a,desc_a,p,info)
|
|||||||
!
|
!
|
||||||
! Build the mapping between levels (i-1) and (i)
|
! Build the mapping between levels (i-1) and (i)
|
||||||
!
|
!
|
||||||
call init_baseprc_av(p%precv(i)%prec,info)
|
call init_baseprec_av(p%precv(i)%prec,info)
|
||||||
if (info == 0) call mld_aggr_bld(p%precv(i-1)%base_a,&
|
if (info == 0) call mld_aggr_bld(p%precv(i-1)%base_a,&
|
||||||
& p%precv(i-1)%base_desc, p%precv(i),info)
|
& p%precv(i-1)%base_desc, p%precv(i),info)
|
||||||
|
|
||||||
@@ -275,7 +275,7 @@ subroutine mld_cprecbld(a,desc_a,p,info)
|
|||||||
|
|
||||||
i = iszv
|
i = iszv
|
||||||
call check_coarse_lev(p%precv(i))
|
call check_coarse_lev(p%precv(i))
|
||||||
call init_baseprc_av(p%precv(i)%prec,info)
|
call init_baseprec_av(p%precv(i)%prec,info)
|
||||||
if (info == 0) call mld_aggr_bld(p%precv(i-1)%base_a,&
|
if (info == 0) call mld_aggr_bld(p%precv(i-1)%base_a,&
|
||||||
& p%precv(i-1)%base_desc, p%precv(i),info)
|
& p%precv(i-1)%base_desc, p%precv(i),info)
|
||||||
if (info /= 0) then
|
if (info /= 0) then
|
||||||
@@ -328,8 +328,8 @@ subroutine mld_cprecbld(a,desc_a,p,info)
|
|||||||
|
|
||||||
contains
|
contains
|
||||||
|
|
||||||
subroutine init_baseprc_av(p,info)
|
subroutine init_baseprec_av(p,info)
|
||||||
type(mld_cbaseprc_type), intent(inout) :: p
|
type(mld_cbaseprec_type), intent(inout) :: p
|
||||||
integer :: info
|
integer :: info
|
||||||
if (allocated(p%av)) then
|
if (allocated(p%av)) then
|
||||||
if (size(p%av) /= mld_max_avsz_) then
|
if (size(p%av) /= mld_max_avsz_) then
|
||||||
@@ -345,7 +345,7 @@ contains
|
|||||||
call psb_nullify_sp(p%av(k))
|
call psb_nullify_sp(p%av(k))
|
||||||
end do
|
end do
|
||||||
|
|
||||||
end subroutine init_baseprc_av
|
end subroutine init_baseprec_av
|
||||||
|
|
||||||
subroutine check_coarse_lev(prec)
|
subroutine check_coarse_lev(prec)
|
||||||
type(mld_c_interlev_prec_type) :: prec
|
type(mld_c_interlev_prec_type) :: prec
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
! be factorized.
|
! be factorized.
|
||||||
! desc_a - type(psb_desc_type), input.
|
! desc_a - type(psb_desc_type), input.
|
||||||
! The communication descriptor associated to a.
|
! The communication descriptor associated to a.
|
||||||
! p - type(mld_cbaseprc_type), input/output.
|
! p - type(mld_cbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the pointer,
|
! The 'base preconditioner' data structure containing the pointer,
|
||||||
! p%iprcparm(mld_slu_ptr_), to the data structure used by SuperLU
|
! p%iprcparm(mld_slu_ptr_), to the data structure used by SuperLU
|
||||||
! to store the L and U factors.
|
! to store the L and U factors.
|
||||||
@@ -79,7 +79,7 @@ subroutine mld_cslu_bld(a,desc_a,p,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_cspmat_type), intent(inout) :: a
|
type(psb_cspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_cbaseprc_type), intent(inout) :: p
|
type(mld_cbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
! matrix to be factorized.
|
! matrix to be factorized.
|
||||||
! desc_a - type(psb_desc_type), input.
|
! desc_a - type(psb_desc_type), input.
|
||||||
! The communication descriptor associated to a.
|
! The communication descriptor associated to a.
|
||||||
! p - type(mld_cbaseprc_type), input/output.
|
! p - type(mld_cbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the pointer,
|
! The 'base preconditioner' data structure containing the pointer,
|
||||||
! p%iprcparm(mld_slud_ptr_), to the data structure used by
|
! p%iprcparm(mld_slud_ptr_), to the data structure used by
|
||||||
! SuperLU_DIST to store the L and U factors.
|
! SuperLU_DIST to store the L and U factors.
|
||||||
@@ -76,7 +76,7 @@ subroutine mld_csludist_bld(a,desc_a,p,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_cspmat_type), intent(inout) :: a
|
type(psb_cspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_cbaseprc_type), intent(inout) :: p
|
type(mld_cbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
@@ -69,7 +69,7 @@
|
|||||||
! to build an Additive Schwarz base preconditioner with overlap
|
! to build an Additive Schwarz base preconditioner with overlap
|
||||||
! greater than 0.If the overlap is 0, then blck does not contain
|
! greater than 0.If the overlap is 0, then blck does not contain
|
||||||
! any row.
|
! any row.
|
||||||
! p - type(mld_cbaseprc_type), input/output.
|
! p - type(mld_cbaseprec_type), input/output.
|
||||||
! The base preconditioner data structure containing the local
|
! The base preconditioner data structure containing the local
|
||||||
! part of the base preconditioner to be built. In input it
|
! part of the base preconditioner to be built. In input it
|
||||||
! contains information on the type of reordering to be applied
|
! contains information on the type of reordering to be applied
|
||||||
@@ -91,7 +91,7 @@ subroutine mld_csp_renum(a,blck,p,atmp,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_cspmat_type), intent(in) :: a,blck
|
type(psb_cspmat_type), intent(in) :: a,blck
|
||||||
type(psb_cspmat_type), intent(out) :: atmp
|
type(psb_cspmat_type), intent(out) :: atmp
|
||||||
type(mld_cbaseprc_type), intent(inout) :: p
|
type(mld_cbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ subroutine mld_csub_aply(alpha,prec,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_cbaseprc_type), intent(in) :: prec
|
type(mld_cbaseprec_type), intent(in) :: prec
|
||||||
complex(psb_spk_),intent(in) :: x(:)
|
complex(psb_spk_),intent(in) :: x(:)
|
||||||
complex(psb_spk_),intent(inout) :: y(:)
|
complex(psb_spk_),intent(inout) :: y(:)
|
||||||
complex(psb_spk_),intent(in) :: alpha,beta
|
complex(psb_spk_),intent(in) :: alpha,beta
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ subroutine mld_csub_solve(alpha,prec,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_cbaseprc_type), intent(in) :: prec
|
type(mld_cbaseprec_type), intent(in) :: prec
|
||||||
complex(psb_spk_),intent(in) :: x(:)
|
complex(psb_spk_),intent(in) :: x(:)
|
||||||
complex(psb_spk_),intent(inout) :: y(:)
|
complex(psb_spk_),intent(inout) :: y(:)
|
||||||
complex(psb_spk_),intent(in) :: alpha,beta
|
complex(psb_spk_),intent(in) :: alpha,beta
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
! C code performing the factorization.
|
! C code performing the factorization.
|
||||||
! desc_a - type(psb_desc_type), input.
|
! desc_a - type(psb_desc_type), input.
|
||||||
! The communication descriptor associated to a.
|
! The communication descriptor associated to a.
|
||||||
! p - type(mld_cbaseprc_type), input/output.
|
! p - type(mld_cbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the pointers,
|
! The 'base preconditioner' data structure containing the pointers,
|
||||||
! p%iprcparm(mld_umf_symptr_) and p%iprcparm(mld_umf_numptr_),
|
! p%iprcparm(mld_umf_symptr_) and p%iprcparm(mld_umf_numptr_),
|
||||||
! to the data structures used by UMFPACK for computing the LU
|
! to the data structures used by UMFPACK for computing the LU
|
||||||
@@ -85,7 +85,7 @@ subroutine mld_cumf_bld(a,desc_a,p,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_dspmat_type), intent(inout) :: a
|
type(psb_dspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_cbaseprc_type), intent(inout) :: p
|
type(mld_cbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
! Arguments:
|
! Arguments:
|
||||||
! alpha - real(psb_dpk_), input.
|
! alpha - real(psb_dpk_), input.
|
||||||
! The scalar alpha.
|
! The scalar alpha.
|
||||||
! prec - type(mld_dbaseprc_type), input.
|
! prec - type(mld_dbaseprec_type), input.
|
||||||
! The base preconditioner data structure containing the local part
|
! The base preconditioner data structure containing the local part
|
||||||
! of the preconditioner K.
|
! of the preconditioner K.
|
||||||
! x - real(psb_dpk_), dimension(:), input.
|
! x - real(psb_dpk_), dimension(:), input.
|
||||||
@@ -83,7 +83,7 @@ subroutine mld_das_aply(alpha,prec,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_dbaseprc_type), intent(in) :: prec
|
type(mld_dbaseprec_type), intent(in) :: prec
|
||||||
real(psb_dpk_),intent(in) :: x(:)
|
real(psb_dpk_),intent(in) :: x(:)
|
||||||
real(psb_dpk_),intent(inout) :: y(:)
|
real(psb_dpk_),intent(inout) :: y(:)
|
||||||
real(psb_dpk_),intent(in) :: alpha,beta
|
real(psb_dpk_),intent(in) :: alpha,beta
|
||||||
|
|||||||
@@ -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 the sparse matrix a.
|
! The communication descriptor of the sparse matrix a.
|
||||||
! p - type(mld_dbaseprc_type), input/output.
|
! p - type(mld_dbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the local
|
! The 'base preconditioner' data structure containing the local
|
||||||
! part of the preconditioner or solver to be built.
|
! part of the preconditioner or solver to be built.
|
||||||
! upd - character, input.
|
! upd - character, input.
|
||||||
@@ -76,7 +76,7 @@ subroutine mld_das_bld(a,desc_a,p,upd,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) :: desc_a
|
Type(psb_desc_type), Intent(in) :: desc_a
|
||||||
type(mld_dbaseprc_type), intent(inout) :: p
|
type(mld_dbaseprec_type), intent(inout) :: p
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
! Arguments:
|
! Arguments:
|
||||||
! alpha - real(psb_dpk_), input.
|
! alpha - real(psb_dpk_), input.
|
||||||
! The scalar alpha.
|
! The scalar alpha.
|
||||||
! prec - type(mld_dbaseprc_type), input.
|
! prec - type(mld_dbaseprec_type), input.
|
||||||
! The base preconditioner data structure containing the local part
|
! The base preconditioner data structure containing the local part
|
||||||
! of the preconditioner K.
|
! of the preconditioner K.
|
||||||
! x - real(psb_dpk_), dimension(:), input.
|
! x - real(psb_dpk_), dimension(:), input.
|
||||||
@@ -87,7 +87,7 @@ subroutine mld_dbaseprec_aply(alpha,prec,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_dbaseprc_type), intent(in) :: prec
|
type(mld_dbaseprec_type), intent(in) :: prec
|
||||||
real(psb_dpk_),intent(in) :: x(:)
|
real(psb_dpk_),intent(in) :: x(:)
|
||||||
real(psb_dpk_),intent(inout) :: y(:)
|
real(psb_dpk_),intent(inout) :: y(:)
|
||||||
real(psb_dpk_),intent(in) :: alpha,beta
|
real(psb_dpk_),intent(in) :: alpha,beta
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
!!$
|
!!$
|
||||||
! File: mld_dbaseprec_bld.f90
|
! File: mld_dbaseprec_bld.f90
|
||||||
!
|
!
|
||||||
! Subroutine: mld_dbaseprc_bld
|
! Subroutine: mld_dbaseprec_bld
|
||||||
! Version: real
|
! Version: real
|
||||||
!
|
!
|
||||||
! This routine builds a 'base preconditioner' related to a matrix A.
|
! This routine builds a 'base preconditioner' related to a matrix A.
|
||||||
@@ -78,7 +78,7 @@ subroutine mld_dbaseprec_bld(a,desc_a,p,info,upd)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_dspmat_type), target :: a
|
type(psb_dspmat_type), target :: a
|
||||||
type(psb_desc_type), intent(in), target :: desc_a
|
type(psb_desc_type), intent(in), target :: desc_a
|
||||||
type(mld_dbaseprc_type),intent(inout) :: p
|
type(mld_dbaseprec_type),intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
character, intent(in), optional :: upd
|
character, intent(in), optional :: upd
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ subroutine mld_dbaseprec_bld(a,desc_a,p,info,upd)
|
|||||||
character(len=20) :: name, ch_err
|
character(len=20) :: name, ch_err
|
||||||
|
|
||||||
if (psb_get_errstatus() /= 0) return
|
if (psb_get_errstatus() /= 0) return
|
||||||
name = 'mld_dbaseprc_bld'
|
name = 'mld_dbaseprec_bld'
|
||||||
info=0
|
info=0
|
||||||
err=0
|
err=0
|
||||||
call psb_erractionsave(err_act)
|
call psb_erractionsave(err_act)
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
! matrix A to be preconditioned.
|
! matrix A to be preconditioned.
|
||||||
! desc_a - type(psb_desc_type), input.
|
! desc_a - type(psb_desc_type), input.
|
||||||
! The communication descriptor associated to the sparse matrix A.
|
! The communication descriptor associated to the sparse matrix A.
|
||||||
! p - type(mld_dbaseprc_type), input/output.
|
! p - type(mld_dbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the local
|
! The 'base preconditioner' data structure containing the local
|
||||||
! part of the diagonal preconditioner.
|
! part of the diagonal preconditioner.
|
||||||
! info - integer, output.
|
! info - integer, output.
|
||||||
@@ -67,7 +67,7 @@ subroutine mld_ddiag_bld(a,desc_a,p,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_dspmat_type), target :: a
|
type(psb_dspmat_type), target :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_dbaseprc_type),intent(inout) :: p
|
type(mld_dbaseprec_type),intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ subroutine mld_dfact_bld(a,p,upd,info,blck)
|
|||||||
|
|
||||||
! Arguments
|
! Arguments
|
||||||
type(psb_dspmat_type), intent(in), target :: a
|
type(psb_dspmat_type), intent(in), target :: a
|
||||||
type(mld_dbaseprc_type), intent(inout) :: p
|
type(mld_dbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
type(psb_dspmat_type), intent(in), target, optional :: blck
|
type(psb_dspmat_type), intent(in), target, optional :: blck
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
! only the 'original' local part of the distributed matrix,
|
! only the 'original' local part of the distributed matrix,
|
||||||
! i.e. the rows of the matrix held by the calling process according
|
! i.e. the rows of the matrix held by the calling process according
|
||||||
! to the initial data distribution.
|
! to the initial data distribution.
|
||||||
! p - type(mld_dbaseprc_type), input/output.
|
! p - type(mld_dbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure. In input, p%iprcparm
|
! The 'base preconditioner' data structure. In input, p%iprcparm
|
||||||
! contains information on the type of factorization to be computed.
|
! contains information on the type of factorization to be computed.
|
||||||
! In output, p%av(mld_l_pr_) and p%av(mld_u_pr_) contain the
|
! In output, p%av(mld_l_pr_) and p%av(mld_u_pr_) contain the
|
||||||
@@ -98,7 +98,7 @@ subroutine mld_dilu_bld(a,p,upd,info,blck)
|
|||||||
|
|
||||||
! Arguments
|
! Arguments
|
||||||
type(psb_dspmat_type), intent(in), target :: a
|
type(psb_dspmat_type), intent(in), target :: a
|
||||||
type(mld_dbaseprc_type), intent(inout) :: p
|
type(mld_dbaseprec_type), intent(inout) :: p
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
type(psb_dspmat_type), intent(in), optional :: blck
|
type(psb_dspmat_type), intent(in), optional :: blck
|
||||||
|
|||||||
@@ -82,7 +82,7 @@
|
|||||||
! 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.
|
||||||
! precv(ilev)%prec - type(psb_dbaseprc_type)
|
! precv(ilev)%prec - type(psb_dbaseprec_type)
|
||||||
! The "base" preconditioner for the current level
|
! The "base" preconditioner for the current level
|
||||||
! precv(ilev)%ac - type(psb_dspmat_type)
|
! precv(ilev)%ac - type(psb_dspmat_type)
|
||||||
! The local part of the matrix A(ilev).
|
! The local part of the matrix A(ilev).
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
!
|
!
|
||||||
! Subroutine: mld_dprecbld
|
! Subroutine: mld_dprecbld
|
||||||
! Version: real
|
! Version: real
|
||||||
! Contains: subroutine init_baseprc_av
|
! Contains: subroutine init_baseprec_av
|
||||||
!
|
!
|
||||||
! This routine builds the preconditioner according to the requirements made by
|
! This routine builds the preconditioner according to the requirements made by
|
||||||
! the user trough the subroutines mld_precinit and mld_precset.
|
! the user trough the subroutines mld_precinit and mld_precset.
|
||||||
@@ -154,7 +154,7 @@ subroutine mld_dprecbld(a,desc_a,p,info)
|
|||||||
!
|
!
|
||||||
! Finest level first; remember to fix base_a and base_desc
|
! Finest level first; remember to fix base_a and base_desc
|
||||||
!
|
!
|
||||||
call init_baseprc_av(p%precv(1)%prec,info)
|
call init_baseprec_av(p%precv(1)%prec,info)
|
||||||
p%precv(1)%base_a => a
|
p%precv(1)%base_a => a
|
||||||
p%precv(1)%base_desc => desc_a
|
p%precv(1)%base_desc => desc_a
|
||||||
|
|
||||||
@@ -211,7 +211,7 @@ subroutine mld_dprecbld(a,desc_a,p,info)
|
|||||||
!
|
!
|
||||||
! Build the mapping between levels (i-1) and (i)
|
! Build the mapping between levels (i-1) and (i)
|
||||||
!
|
!
|
||||||
call init_baseprc_av(p%precv(i)%prec,info)
|
call init_baseprec_av(p%precv(i)%prec,info)
|
||||||
if (info == 0) call mld_aggr_bld(p%precv(i-1)%base_a,&
|
if (info == 0) call mld_aggr_bld(p%precv(i-1)%base_a,&
|
||||||
& p%precv(i-1)%base_desc, p%precv(i),info)
|
& p%precv(i-1)%base_desc, p%precv(i),info)
|
||||||
|
|
||||||
@@ -275,7 +275,7 @@ subroutine mld_dprecbld(a,desc_a,p,info)
|
|||||||
|
|
||||||
i = iszv
|
i = iszv
|
||||||
call check_coarse_lev(p%precv(i))
|
call check_coarse_lev(p%precv(i))
|
||||||
call init_baseprc_av(p%precv(i)%prec,info)
|
call init_baseprec_av(p%precv(i)%prec,info)
|
||||||
if (info == 0) call mld_aggr_bld(p%precv(i-1)%base_a,&
|
if (info == 0) call mld_aggr_bld(p%precv(i-1)%base_a,&
|
||||||
& p%precv(i-1)%base_desc, p%precv(i),info)
|
& p%precv(i-1)%base_desc, p%precv(i),info)
|
||||||
if (info /= 0) then
|
if (info /= 0) then
|
||||||
@@ -328,8 +328,8 @@ subroutine mld_dprecbld(a,desc_a,p,info)
|
|||||||
|
|
||||||
contains
|
contains
|
||||||
|
|
||||||
subroutine init_baseprc_av(p,info)
|
subroutine init_baseprec_av(p,info)
|
||||||
type(mld_dbaseprc_type), intent(inout) :: p
|
type(mld_dbaseprec_type), intent(inout) :: p
|
||||||
integer :: info
|
integer :: info
|
||||||
if (allocated(p%av)) then
|
if (allocated(p%av)) then
|
||||||
if (size(p%av) /= mld_max_avsz_) then
|
if (size(p%av) /= mld_max_avsz_) then
|
||||||
@@ -345,7 +345,7 @@ contains
|
|||||||
call psb_nullify_sp(p%av(k))
|
call psb_nullify_sp(p%av(k))
|
||||||
end do
|
end do
|
||||||
|
|
||||||
end subroutine init_baseprc_av
|
end subroutine init_baseprec_av
|
||||||
|
|
||||||
subroutine check_coarse_lev(prec)
|
subroutine check_coarse_lev(prec)
|
||||||
type(mld_d_interlev_prec_type) :: prec
|
type(mld_d_interlev_prec_type) :: prec
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
! be factorized.
|
! be factorized.
|
||||||
! desc_a - type(psb_desc_type), input.
|
! desc_a - type(psb_desc_type), input.
|
||||||
! The communication descriptor associated to a.
|
! The communication descriptor associated to a.
|
||||||
! p - type(mld_dbaseprc_type), input/output.
|
! p - type(mld_dbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the pointer,
|
! The 'base preconditioner' data structure containing the pointer,
|
||||||
! p%iprcparm(mld_slu_ptr_), to the data structure used by SuperLU
|
! p%iprcparm(mld_slu_ptr_), to the data structure used by SuperLU
|
||||||
! to store the L and U factors.
|
! to store the L and U factors.
|
||||||
@@ -79,7 +79,7 @@ subroutine mld_dslu_bld(a,desc_a,p,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_dspmat_type), intent(inout) :: a
|
type(psb_dspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_dbaseprc_type), intent(inout) :: p
|
type(mld_dbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
! matrix to be factorized.
|
! matrix to be factorized.
|
||||||
! desc_a - type(psb_desc_type), input.
|
! desc_a - type(psb_desc_type), input.
|
||||||
! The communication descriptor associated to a.
|
! The communication descriptor associated to a.
|
||||||
! p - type(mld_dbaseprc_type), input/output.
|
! p - type(mld_dbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the pointer,
|
! The 'base preconditioner' data structure containing the pointer,
|
||||||
! p%iprcparm(mld_slud_ptr_), to the data structure used by
|
! p%iprcparm(mld_slud_ptr_), to the data structure used by
|
||||||
! SuperLU_DIST to store the L and U factors.
|
! SuperLU_DIST to store the L and U factors.
|
||||||
@@ -76,7 +76,7 @@ subroutine mld_dsludist_bld(a,desc_a,p,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_dspmat_type), intent(inout) :: a
|
type(psb_dspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_dbaseprc_type), intent(inout) :: p
|
type(mld_dbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
@@ -69,7 +69,7 @@
|
|||||||
! to build an Additive Schwarz base preconditioner with overlap
|
! to build an Additive Schwarz base preconditioner with overlap
|
||||||
! greater than 0.If the overlap is 0, then blck does not contain
|
! greater than 0.If the overlap is 0, then blck does not contain
|
||||||
! any row.
|
! any row.
|
||||||
! p - type(mld_dbaseprc_type), input/output.
|
! p - type(mld_dbaseprec_type), input/output.
|
||||||
! The base preconditioner data structure containing the local
|
! The base preconditioner data structure containing the local
|
||||||
! part of the base preconditioner to be built. In input it
|
! part of the base preconditioner to be built. In input it
|
||||||
! contains information on the type of reordering to be applied
|
! contains information on the type of reordering to be applied
|
||||||
@@ -91,7 +91,7 @@ subroutine mld_dsp_renum(a,blck,p,atmp,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_dspmat_type), intent(in) :: a,blck
|
type(psb_dspmat_type), intent(in) :: a,blck
|
||||||
type(psb_dspmat_type), intent(out) :: atmp
|
type(psb_dspmat_type), intent(out) :: atmp
|
||||||
type(mld_dbaseprc_type), intent(inout) :: p
|
type(mld_dbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ subroutine mld_dsub_aply(alpha,prec,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_dbaseprc_type), intent(in) :: prec
|
type(mld_dbaseprec_type), intent(in) :: prec
|
||||||
real(psb_dpk_),intent(in) :: x(:)
|
real(psb_dpk_),intent(in) :: x(:)
|
||||||
real(psb_dpk_),intent(inout) :: y(:)
|
real(psb_dpk_),intent(inout) :: y(:)
|
||||||
real(psb_dpk_),intent(in) :: alpha,beta
|
real(psb_dpk_),intent(in) :: alpha,beta
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ subroutine mld_dsub_solve(alpha,prec,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_dbaseprc_type), intent(in) :: prec
|
type(mld_dbaseprec_type), intent(in) :: prec
|
||||||
real(psb_dpk_),intent(in) :: x(:)
|
real(psb_dpk_),intent(in) :: x(:)
|
||||||
real(psb_dpk_),intent(inout) :: y(:)
|
real(psb_dpk_),intent(inout) :: y(:)
|
||||||
real(psb_dpk_),intent(in) :: alpha,beta
|
real(psb_dpk_),intent(in) :: alpha,beta
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
! C code performing the factorization.
|
! C code performing the factorization.
|
||||||
! desc_a - type(psb_desc_type), input.
|
! desc_a - type(psb_desc_type), input.
|
||||||
! The communication descriptor associated to a.
|
! The communication descriptor associated to a.
|
||||||
! p - type(mld_dbaseprc_type), input/output.
|
! p - type(mld_dbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the pointers,
|
! The 'base preconditioner' data structure containing the pointers,
|
||||||
! p%iprcparm(mld_umf_symptr_) and p%iprcparm(mld_umf_numptr_),
|
! p%iprcparm(mld_umf_symptr_) and p%iprcparm(mld_umf_numptr_),
|
||||||
! to the data structures used by UMFPACK for computing the LU
|
! to the data structures used by UMFPACK for computing the LU
|
||||||
@@ -85,7 +85,7 @@ subroutine mld_dumf_bld(a,desc_a,p,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_dspmat_type), intent(inout) :: a
|
type(psb_dspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_dbaseprc_type), intent(inout) :: p
|
type(mld_dbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
+132
-132
@@ -43,9 +43,9 @@ module mld_inner_mod
|
|||||||
interface mld_baseprec_aply
|
interface mld_baseprec_aply
|
||||||
subroutine mld_sbaseprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
subroutine mld_sbaseprec_aply(alpha,prec,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_sbaseprc_type
|
use mld_prec_type, only : mld_sbaseprec_type
|
||||||
type(psb_desc_type),intent(in) :: desc_data
|
type(psb_desc_type),intent(in) :: desc_data
|
||||||
type(mld_sbaseprc_type), intent(in) :: prec
|
type(mld_sbaseprec_type), intent(in) :: prec
|
||||||
real(psb_spk_),intent(in) :: x(:)
|
real(psb_spk_),intent(in) :: x(:)
|
||||||
real(psb_spk_),intent(inout) :: y(:)
|
real(psb_spk_),intent(inout) :: y(:)
|
||||||
real(psb_spk_),intent(in) :: alpha,beta
|
real(psb_spk_),intent(in) :: alpha,beta
|
||||||
@@ -55,9 +55,9 @@ module mld_inner_mod
|
|||||||
end subroutine mld_sbaseprec_aply
|
end subroutine mld_sbaseprec_aply
|
||||||
subroutine mld_dbaseprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
subroutine mld_dbaseprec_aply(alpha,prec,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_dbaseprc_type
|
use mld_prec_type, only : mld_dbaseprec_type
|
||||||
type(psb_desc_type),intent(in) :: desc_data
|
type(psb_desc_type),intent(in) :: desc_data
|
||||||
type(mld_dbaseprc_type), intent(in) :: prec
|
type(mld_dbaseprec_type), intent(in) :: prec
|
||||||
real(psb_dpk_),intent(in) :: x(:)
|
real(psb_dpk_),intent(in) :: x(:)
|
||||||
real(psb_dpk_),intent(inout) :: y(:)
|
real(psb_dpk_),intent(inout) :: y(:)
|
||||||
real(psb_dpk_),intent(in) :: alpha,beta
|
real(psb_dpk_),intent(in) :: alpha,beta
|
||||||
@@ -67,9 +67,9 @@ module mld_inner_mod
|
|||||||
end subroutine mld_dbaseprec_aply
|
end subroutine mld_dbaseprec_aply
|
||||||
subroutine mld_cbaseprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
subroutine mld_cbaseprec_aply(alpha,prec,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_cbaseprc_type
|
use mld_prec_type, only : mld_cbaseprec_type
|
||||||
type(psb_desc_type),intent(in) :: desc_data
|
type(psb_desc_type),intent(in) :: desc_data
|
||||||
type(mld_cbaseprc_type), intent(in) :: prec
|
type(mld_cbaseprec_type), intent(in) :: prec
|
||||||
complex(psb_spk_),intent(in) :: x(:)
|
complex(psb_spk_),intent(in) :: x(:)
|
||||||
complex(psb_spk_),intent(inout) :: y(:)
|
complex(psb_spk_),intent(inout) :: y(:)
|
||||||
complex(psb_spk_),intent(in) :: alpha,beta
|
complex(psb_spk_),intent(in) :: alpha,beta
|
||||||
@@ -79,9 +79,9 @@ module mld_inner_mod
|
|||||||
end subroutine mld_cbaseprec_aply
|
end subroutine mld_cbaseprec_aply
|
||||||
subroutine mld_zbaseprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
subroutine mld_zbaseprec_aply(alpha,prec,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_zbaseprc_type
|
use mld_prec_type, only : mld_zbaseprec_type
|
||||||
type(psb_desc_type),intent(in) :: desc_data
|
type(psb_desc_type),intent(in) :: desc_data
|
||||||
type(mld_zbaseprc_type), intent(in) :: prec
|
type(mld_zbaseprec_type), intent(in) :: prec
|
||||||
complex(psb_dpk_),intent(in) :: x(:)
|
complex(psb_dpk_),intent(in) :: x(:)
|
||||||
complex(psb_dpk_),intent(inout) :: y(:)
|
complex(psb_dpk_),intent(inout) :: y(:)
|
||||||
complex(psb_dpk_),intent(in) :: alpha,beta
|
complex(psb_dpk_),intent(in) :: alpha,beta
|
||||||
@@ -94,9 +94,9 @@ module mld_inner_mod
|
|||||||
interface mld_as_aply
|
interface mld_as_aply
|
||||||
subroutine mld_sas_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
subroutine mld_sas_aply(alpha,prec,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_sbaseprc_type
|
use mld_prec_type, only : mld_sbaseprec_type
|
||||||
type(psb_desc_type),intent(in) :: desc_data
|
type(psb_desc_type),intent(in) :: desc_data
|
||||||
type(mld_sbaseprc_type), intent(in) :: prec
|
type(mld_sbaseprec_type), intent(in) :: prec
|
||||||
real(psb_spk_),intent(in) :: x(:)
|
real(psb_spk_),intent(in) :: x(:)
|
||||||
real(psb_spk_),intent(inout) :: y(:)
|
real(psb_spk_),intent(inout) :: y(:)
|
||||||
real(psb_spk_),intent(in) :: alpha,beta
|
real(psb_spk_),intent(in) :: alpha,beta
|
||||||
@@ -106,9 +106,9 @@ module mld_inner_mod
|
|||||||
end subroutine mld_sas_aply
|
end subroutine mld_sas_aply
|
||||||
subroutine mld_das_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
subroutine mld_das_aply(alpha,prec,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_dbaseprc_type
|
use mld_prec_type, only : mld_dbaseprec_type
|
||||||
type(psb_desc_type),intent(in) :: desc_data
|
type(psb_desc_type),intent(in) :: desc_data
|
||||||
type(mld_dbaseprc_type), intent(in) :: prec
|
type(mld_dbaseprec_type), intent(in) :: prec
|
||||||
real(psb_dpk_),intent(in) :: x(:)
|
real(psb_dpk_),intent(in) :: x(:)
|
||||||
real(psb_dpk_),intent(inout) :: y(:)
|
real(psb_dpk_),intent(inout) :: y(:)
|
||||||
real(psb_dpk_),intent(in) :: alpha,beta
|
real(psb_dpk_),intent(in) :: alpha,beta
|
||||||
@@ -118,9 +118,9 @@ module mld_inner_mod
|
|||||||
end subroutine mld_das_aply
|
end subroutine mld_das_aply
|
||||||
subroutine mld_cas_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
subroutine mld_cas_aply(alpha,prec,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_cbaseprc_type
|
use mld_prec_type, only : mld_cbaseprec_type
|
||||||
type(psb_desc_type),intent(in) :: desc_data
|
type(psb_desc_type),intent(in) :: desc_data
|
||||||
type(mld_cbaseprc_type), intent(in) :: prec
|
type(mld_cbaseprec_type), intent(in) :: prec
|
||||||
complex(psb_spk_),intent(in) :: x(:)
|
complex(psb_spk_),intent(in) :: x(:)
|
||||||
complex(psb_spk_),intent(inout) :: y(:)
|
complex(psb_spk_),intent(inout) :: y(:)
|
||||||
complex(psb_spk_),intent(in) :: alpha,beta
|
complex(psb_spk_),intent(in) :: alpha,beta
|
||||||
@@ -130,9 +130,9 @@ module mld_inner_mod
|
|||||||
end subroutine mld_cas_aply
|
end subroutine mld_cas_aply
|
||||||
subroutine mld_zas_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
subroutine mld_zas_aply(alpha,prec,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_zbaseprc_type
|
use mld_prec_type, only : mld_zbaseprec_type
|
||||||
type(psb_desc_type),intent(in) :: desc_data
|
type(psb_desc_type),intent(in) :: desc_data
|
||||||
type(mld_zbaseprc_type), intent(in) :: prec
|
type(mld_zbaseprec_type), intent(in) :: prec
|
||||||
complex(psb_dpk_),intent(in) :: x(:)
|
complex(psb_dpk_),intent(in) :: x(:)
|
||||||
complex(psb_dpk_),intent(inout) :: y(:)
|
complex(psb_dpk_),intent(inout) :: y(:)
|
||||||
complex(psb_dpk_),intent(in) :: alpha,beta
|
complex(psb_dpk_),intent(in) :: alpha,beta
|
||||||
@@ -145,7 +145,7 @@ 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_sbaseprc_type, mld_s_interlev_prec_type
|
use mld_prec_type, only : mld_sbaseprec_type, mld_s_interlev_prec_type
|
||||||
type(psb_desc_type),intent(in) :: desc_data
|
type(psb_desc_type),intent(in) :: desc_data
|
||||||
type(mld_s_interlev_prec_type), intent(in) :: precv(:)
|
type(mld_s_interlev_prec_type), intent(in) :: precv(:)
|
||||||
real(psb_spk_),intent(in) :: alpha,beta
|
real(psb_spk_),intent(in) :: alpha,beta
|
||||||
@@ -157,7 +157,7 @@ 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_dbaseprc_type, mld_d_interlev_prec_type
|
use mld_prec_type, only : mld_dbaseprec_type, mld_d_interlev_prec_type
|
||||||
type(psb_desc_type),intent(in) :: desc_data
|
type(psb_desc_type),intent(in) :: desc_data
|
||||||
type(mld_d_interlev_prec_type), intent(in) :: precv(:)
|
type(mld_d_interlev_prec_type), intent(in) :: precv(:)
|
||||||
real(psb_dpk_),intent(in) :: alpha,beta
|
real(psb_dpk_),intent(in) :: alpha,beta
|
||||||
@@ -169,7 +169,7 @@ 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_cbaseprc_type, mld_c_interlev_prec_type
|
use mld_prec_type, only : mld_cbaseprec_type, mld_c_interlev_prec_type
|
||||||
type(psb_desc_type),intent(in) :: desc_data
|
type(psb_desc_type),intent(in) :: desc_data
|
||||||
type(mld_c_interlev_prec_type), intent(in) :: baseprecv(:)
|
type(mld_c_interlev_prec_type), intent(in) :: baseprecv(:)
|
||||||
complex(psb_spk_),intent(in) :: alpha,beta
|
complex(psb_spk_),intent(in) :: alpha,beta
|
||||||
@@ -181,7 +181,7 @@ 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_zbaseprc_type, mld_z_interlev_prec_type
|
use mld_prec_type, only : mld_zbaseprec_type, mld_z_interlev_prec_type
|
||||||
type(psb_desc_type),intent(in) :: desc_data
|
type(psb_desc_type),intent(in) :: desc_data
|
||||||
type(mld_z_interlev_prec_type), intent(in) :: baseprecv(:)
|
type(mld_z_interlev_prec_type), intent(in) :: baseprecv(:)
|
||||||
complex(psb_dpk_),intent(in) :: alpha,beta
|
complex(psb_dpk_),intent(in) :: alpha,beta
|
||||||
@@ -197,9 +197,9 @@ module mld_inner_mod
|
|||||||
interface mld_sub_aply
|
interface mld_sub_aply
|
||||||
subroutine mld_ssub_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
subroutine mld_ssub_aply(alpha,prec,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_sbaseprc_type
|
use mld_prec_type, only : mld_sbaseprec_type
|
||||||
type(psb_desc_type), intent(in) :: desc_data
|
type(psb_desc_type), intent(in) :: desc_data
|
||||||
type(mld_sbaseprc_type), intent(in) :: prec
|
type(mld_sbaseprec_type), intent(in) :: prec
|
||||||
real(psb_spk_),intent(in) :: x(:)
|
real(psb_spk_),intent(in) :: x(:)
|
||||||
real(psb_spk_),intent(inout) :: y(:)
|
real(psb_spk_),intent(inout) :: y(:)
|
||||||
real(psb_spk_),intent(in) :: alpha,beta
|
real(psb_spk_),intent(in) :: alpha,beta
|
||||||
@@ -209,9 +209,9 @@ module mld_inner_mod
|
|||||||
end subroutine mld_ssub_aply
|
end subroutine mld_ssub_aply
|
||||||
subroutine mld_dsub_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
subroutine mld_dsub_aply(alpha,prec,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_dbaseprc_type
|
use mld_prec_type, only : mld_dbaseprec_type
|
||||||
type(psb_desc_type), intent(in) :: desc_data
|
type(psb_desc_type), intent(in) :: desc_data
|
||||||
type(mld_dbaseprc_type), intent(in) :: prec
|
type(mld_dbaseprec_type), intent(in) :: prec
|
||||||
real(psb_dpk_),intent(in) :: x(:)
|
real(psb_dpk_),intent(in) :: x(:)
|
||||||
real(psb_dpk_),intent(inout) :: y(:)
|
real(psb_dpk_),intent(inout) :: y(:)
|
||||||
real(psb_dpk_),intent(in) :: alpha,beta
|
real(psb_dpk_),intent(in) :: alpha,beta
|
||||||
@@ -221,9 +221,9 @@ module mld_inner_mod
|
|||||||
end subroutine mld_dsub_aply
|
end subroutine mld_dsub_aply
|
||||||
subroutine mld_csub_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
subroutine mld_csub_aply(alpha,prec,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_cbaseprc_type
|
use mld_prec_type, only : mld_cbaseprec_type
|
||||||
type(psb_desc_type), intent(in) :: desc_data
|
type(psb_desc_type), intent(in) :: desc_data
|
||||||
type(mld_cbaseprc_type), intent(in) :: prec
|
type(mld_cbaseprec_type), intent(in) :: prec
|
||||||
complex(psb_spk_),intent(in) :: x(:)
|
complex(psb_spk_),intent(in) :: x(:)
|
||||||
complex(psb_spk_),intent(inout) :: y(:)
|
complex(psb_spk_),intent(inout) :: y(:)
|
||||||
complex(psb_spk_),intent(in) :: alpha,beta
|
complex(psb_spk_),intent(in) :: alpha,beta
|
||||||
@@ -233,9 +233,9 @@ module mld_inner_mod
|
|||||||
end subroutine mld_csub_aply
|
end subroutine mld_csub_aply
|
||||||
subroutine mld_zsub_aply(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
subroutine mld_zsub_aply(alpha,prec,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_zbaseprc_type
|
use mld_prec_type, only : mld_zbaseprec_type
|
||||||
type(psb_desc_type), intent(in) :: desc_data
|
type(psb_desc_type), intent(in) :: desc_data
|
||||||
type(mld_zbaseprc_type), intent(in) :: prec
|
type(mld_zbaseprec_type), intent(in) :: prec
|
||||||
complex(psb_dpk_),intent(in) :: x(:)
|
complex(psb_dpk_),intent(in) :: x(:)
|
||||||
complex(psb_dpk_),intent(inout) :: y(:)
|
complex(psb_dpk_),intent(inout) :: y(:)
|
||||||
complex(psb_dpk_),intent(in) :: alpha,beta
|
complex(psb_dpk_),intent(in) :: alpha,beta
|
||||||
@@ -249,9 +249,9 @@ module mld_inner_mod
|
|||||||
interface mld_sub_solve
|
interface mld_sub_solve
|
||||||
subroutine mld_ssub_solve(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
subroutine mld_ssub_solve(alpha,prec,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_sbaseprc_type
|
use mld_prec_type, only : mld_sbaseprec_type
|
||||||
type(psb_desc_type), intent(in) :: desc_data
|
type(psb_desc_type), intent(in) :: desc_data
|
||||||
type(mld_sbaseprc_type), intent(in) :: prec
|
type(mld_sbaseprec_type), intent(in) :: prec
|
||||||
real(psb_spk_),intent(in) :: x(:)
|
real(psb_spk_),intent(in) :: x(:)
|
||||||
real(psb_spk_),intent(inout) :: y(:)
|
real(psb_spk_),intent(inout) :: y(:)
|
||||||
real(psb_spk_),intent(in) :: alpha,beta
|
real(psb_spk_),intent(in) :: alpha,beta
|
||||||
@@ -261,9 +261,9 @@ module mld_inner_mod
|
|||||||
end subroutine mld_ssub_solve
|
end subroutine mld_ssub_solve
|
||||||
subroutine mld_dsub_solve(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
subroutine mld_dsub_solve(alpha,prec,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_dbaseprc_type
|
use mld_prec_type, only : mld_dbaseprec_type
|
||||||
type(psb_desc_type), intent(in) :: desc_data
|
type(psb_desc_type), intent(in) :: desc_data
|
||||||
type(mld_dbaseprc_type), intent(in) :: prec
|
type(mld_dbaseprec_type), intent(in) :: prec
|
||||||
real(psb_dpk_),intent(in) :: x(:)
|
real(psb_dpk_),intent(in) :: x(:)
|
||||||
real(psb_dpk_),intent(inout) :: y(:)
|
real(psb_dpk_),intent(inout) :: y(:)
|
||||||
real(psb_dpk_),intent(in) :: alpha,beta
|
real(psb_dpk_),intent(in) :: alpha,beta
|
||||||
@@ -273,9 +273,9 @@ module mld_inner_mod
|
|||||||
end subroutine mld_dsub_solve
|
end subroutine mld_dsub_solve
|
||||||
subroutine mld_csub_solve(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
subroutine mld_csub_solve(alpha,prec,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_cbaseprc_type
|
use mld_prec_type, only : mld_cbaseprec_type
|
||||||
type(psb_desc_type), intent(in) :: desc_data
|
type(psb_desc_type), intent(in) :: desc_data
|
||||||
type(mld_cbaseprc_type), intent(in) :: prec
|
type(mld_cbaseprec_type), intent(in) :: prec
|
||||||
complex(psb_spk_),intent(in) :: x(:)
|
complex(psb_spk_),intent(in) :: x(:)
|
||||||
complex(psb_spk_),intent(inout) :: y(:)
|
complex(psb_spk_),intent(inout) :: y(:)
|
||||||
complex(psb_spk_),intent(in) :: alpha,beta
|
complex(psb_spk_),intent(in) :: alpha,beta
|
||||||
@@ -285,9 +285,9 @@ module mld_inner_mod
|
|||||||
end subroutine mld_csub_solve
|
end subroutine mld_csub_solve
|
||||||
subroutine mld_zsub_solve(alpha,prec,x,beta,y,desc_data,trans,work,info)
|
subroutine mld_zsub_solve(alpha,prec,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_zbaseprc_type
|
use mld_prec_type, only : mld_zbaseprec_type
|
||||||
type(psb_desc_type), intent(in) :: desc_data
|
type(psb_desc_type), intent(in) :: desc_data
|
||||||
type(mld_zbaseprc_type), intent(in) :: prec
|
type(mld_zbaseprec_type), intent(in) :: prec
|
||||||
complex(psb_dpk_),intent(in) :: x(:)
|
complex(psb_dpk_),intent(in) :: x(:)
|
||||||
complex(psb_dpk_),intent(inout) :: y(:)
|
complex(psb_dpk_),intent(inout) :: y(:)
|
||||||
complex(psb_dpk_),intent(in) :: alpha,beta
|
complex(psb_dpk_),intent(in) :: alpha,beta
|
||||||
@@ -301,7 +301,7 @@ module mld_inner_mod
|
|||||||
interface mld_asmat_bld
|
interface mld_asmat_bld
|
||||||
Subroutine mld_sasmat_bld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt)
|
Subroutine mld_sasmat_bld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt)
|
||||||
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_sbaseprc_type
|
use mld_prec_type, only : mld_sbaseprec_type
|
||||||
integer, intent(in) :: ptype,novr
|
integer, intent(in) :: ptype,novr
|
||||||
Type(psb_sspmat_type), Intent(in) :: a
|
Type(psb_sspmat_type), Intent(in) :: a
|
||||||
Type(psb_sspmat_type), Intent(out) :: blk
|
Type(psb_sspmat_type), Intent(out) :: blk
|
||||||
@@ -313,7 +313,7 @@ module mld_inner_mod
|
|||||||
end Subroutine mld_sasmat_bld
|
end Subroutine mld_sasmat_bld
|
||||||
Subroutine mld_dasmat_bld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt)
|
Subroutine mld_dasmat_bld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt)
|
||||||
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_dbaseprc_type
|
use mld_prec_type, only : mld_dbaseprec_type
|
||||||
integer, intent(in) :: ptype,novr
|
integer, intent(in) :: ptype,novr
|
||||||
Type(psb_dspmat_type), Intent(in) :: a
|
Type(psb_dspmat_type), Intent(in) :: a
|
||||||
Type(psb_dspmat_type), Intent(out) :: blk
|
Type(psb_dspmat_type), Intent(out) :: blk
|
||||||
@@ -325,7 +325,7 @@ module mld_inner_mod
|
|||||||
end Subroutine mld_dasmat_bld
|
end Subroutine mld_dasmat_bld
|
||||||
Subroutine mld_casmat_bld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt)
|
Subroutine mld_casmat_bld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt)
|
||||||
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_cbaseprc_type
|
use mld_prec_type, only : mld_cbaseprec_type
|
||||||
integer, intent(in) :: ptype,novr
|
integer, intent(in) :: ptype,novr
|
||||||
Type(psb_cspmat_type), Intent(in) :: a
|
Type(psb_cspmat_type), Intent(in) :: a
|
||||||
Type(psb_cspmat_type), Intent(out) :: blk
|
Type(psb_cspmat_type), Intent(out) :: blk
|
||||||
@@ -337,7 +337,7 @@ module mld_inner_mod
|
|||||||
end Subroutine mld_casmat_bld
|
end Subroutine mld_casmat_bld
|
||||||
Subroutine mld_zasmat_bld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt)
|
Subroutine mld_zasmat_bld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt)
|
||||||
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_zbaseprc_type
|
use mld_prec_type, only : mld_zbaseprec_type
|
||||||
integer, intent(in) :: ptype,novr
|
integer, intent(in) :: ptype,novr
|
||||||
Type(psb_zspmat_type), Intent(in) :: a
|
Type(psb_zspmat_type), Intent(in) :: a
|
||||||
Type(psb_zspmat_type), Intent(out) :: blk
|
Type(psb_zspmat_type), Intent(out) :: blk
|
||||||
@@ -352,34 +352,34 @@ module mld_inner_mod
|
|||||||
interface mld_sp_renum
|
interface mld_sp_renum
|
||||||
subroutine mld_ssp_renum(a,blck,p,atmp,info)
|
subroutine mld_ssp_renum(a,blck,p,atmp,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_sbaseprc_type
|
use mld_prec_type, only : mld_sbaseprec_type
|
||||||
type(psb_sspmat_type), intent(in) :: a,blck
|
type(psb_sspmat_type), intent(in) :: a,blck
|
||||||
type(psb_sspmat_type), intent(out) :: atmp
|
type(psb_sspmat_type), intent(out) :: atmp
|
||||||
type(mld_sbaseprc_type), intent(inout) :: p
|
type(mld_sbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_ssp_renum
|
end subroutine mld_ssp_renum
|
||||||
subroutine mld_dsp_renum(a,blck,p,atmp,info)
|
subroutine mld_dsp_renum(a,blck,p,atmp,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_dbaseprc_type
|
use mld_prec_type, only : mld_dbaseprec_type
|
||||||
type(psb_dspmat_type), intent(in) :: a,blck
|
type(psb_dspmat_type), intent(in) :: a,blck
|
||||||
type(psb_dspmat_type), intent(out) :: atmp
|
type(psb_dspmat_type), intent(out) :: atmp
|
||||||
type(mld_dbaseprc_type), intent(inout) :: p
|
type(mld_dbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_dsp_renum
|
end subroutine mld_dsp_renum
|
||||||
subroutine mld_csp_renum(a,blck,p,atmp,info)
|
subroutine mld_csp_renum(a,blck,p,atmp,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_cbaseprc_type
|
use mld_prec_type, only : mld_cbaseprec_type
|
||||||
type(psb_cspmat_type), intent(in) :: a,blck
|
type(psb_cspmat_type), intent(in) :: a,blck
|
||||||
type(psb_cspmat_type), intent(out) :: atmp
|
type(psb_cspmat_type), intent(out) :: atmp
|
||||||
type(mld_cbaseprc_type), intent(inout) :: p
|
type(mld_cbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_csp_renum
|
end subroutine mld_csp_renum
|
||||||
subroutine mld_zsp_renum(a,blck,p,atmp,info)
|
subroutine mld_zsp_renum(a,blck,p,atmp,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_zbaseprc_type
|
use mld_prec_type, only : mld_zbaseprec_type
|
||||||
type(psb_zspmat_type), intent(in) :: a,blck
|
type(psb_zspmat_type), intent(in) :: a,blck
|
||||||
type(psb_zspmat_type), intent(out) :: atmp
|
type(psb_zspmat_type), intent(out) :: atmp
|
||||||
type(mld_zbaseprc_type), intent(inout) :: p
|
type(mld_zbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_zsp_renum
|
end subroutine mld_zsp_renum
|
||||||
end interface
|
end interface
|
||||||
@@ -387,7 +387,7 @@ module mld_inner_mod
|
|||||||
interface mld_aggr_bld
|
interface mld_aggr_bld
|
||||||
subroutine mld_saggr_bld(a,desc_a,p,info)
|
subroutine mld_saggr_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_sbaseprc_type, mld_s_interlev_prec_type
|
use mld_prec_type, only : mld_sbaseprec_type, mld_s_interlev_prec_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_interlev_prec_type), intent(inout), target :: p
|
type(mld_s_interlev_prec_type), intent(inout), target :: p
|
||||||
@@ -395,7 +395,7 @@ module mld_inner_mod
|
|||||||
end subroutine mld_saggr_bld
|
end subroutine mld_saggr_bld
|
||||||
subroutine mld_daggr_bld(a,desc_a,p,info)
|
subroutine mld_daggr_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_dbaseprc_type, mld_d_interlev_prec_type
|
use mld_prec_type, only : mld_dbaseprec_type, mld_d_interlev_prec_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_interlev_prec_type), intent(inout), target :: p
|
type(mld_d_interlev_prec_type), intent(inout), target :: p
|
||||||
@@ -403,7 +403,7 @@ module mld_inner_mod
|
|||||||
end subroutine mld_daggr_bld
|
end subroutine mld_daggr_bld
|
||||||
subroutine mld_caggr_bld(a,desc_a,p,info)
|
subroutine mld_caggr_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_cbaseprc_type, mld_c_interlev_prec_type
|
use mld_prec_type, only : mld_cbaseprec_type, mld_c_interlev_prec_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_interlev_prec_type), intent(inout), target :: p
|
type(mld_c_interlev_prec_type), intent(inout), target :: p
|
||||||
@@ -411,7 +411,7 @@ module mld_inner_mod
|
|||||||
end subroutine mld_caggr_bld
|
end subroutine mld_caggr_bld
|
||||||
subroutine mld_zaggr_bld(a,desc_a,p,info)
|
subroutine mld_zaggr_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_zbaseprc_type, mld_z_interlev_prec_type
|
use mld_prec_type, only : mld_zbaseprec_type, mld_z_interlev_prec_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_interlev_prec_type), intent(inout), target :: p
|
type(mld_z_interlev_prec_type), intent(inout), target :: p
|
||||||
@@ -422,7 +422,7 @@ module mld_inner_mod
|
|||||||
interface mld_aggrmap_bld
|
interface mld_aggrmap_bld
|
||||||
subroutine mld_saggrmap_bld(aggr_type,theta,a,desc_a,nlaggr,ilaggr,info)
|
subroutine mld_saggrmap_bld(aggr_type,theta,a,desc_a,nlaggr,ilaggr,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_sbaseprc_type
|
use mld_prec_type, only : mld_sbaseprec_type
|
||||||
integer, intent(in) :: aggr_type
|
integer, intent(in) :: aggr_type
|
||||||
real(psb_spk_), intent(in) :: theta
|
real(psb_spk_), intent(in) :: theta
|
||||||
type(psb_sspmat_type), intent(in) :: a
|
type(psb_sspmat_type), intent(in) :: a
|
||||||
@@ -432,7 +432,7 @@ module mld_inner_mod
|
|||||||
end subroutine mld_saggrmap_bld
|
end subroutine mld_saggrmap_bld
|
||||||
subroutine mld_daggrmap_bld(aggr_type,theta,a,desc_a,nlaggr,ilaggr,info)
|
subroutine mld_daggrmap_bld(aggr_type,theta,a,desc_a,nlaggr,ilaggr,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_dbaseprc_type
|
use mld_prec_type, only : mld_dbaseprec_type
|
||||||
integer, intent(in) :: aggr_type
|
integer, intent(in) :: aggr_type
|
||||||
real(psb_dpk_), intent(in) :: theta
|
real(psb_dpk_), intent(in) :: theta
|
||||||
type(psb_dspmat_type), intent(in) :: a
|
type(psb_dspmat_type), intent(in) :: a
|
||||||
@@ -442,7 +442,7 @@ module mld_inner_mod
|
|||||||
end subroutine mld_daggrmap_bld
|
end subroutine mld_daggrmap_bld
|
||||||
subroutine mld_caggrmap_bld(aggr_type,theta,a,desc_a,nlaggr,ilaggr,info)
|
subroutine mld_caggrmap_bld(aggr_type,theta,a,desc_a,nlaggr,ilaggr,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_cbaseprc_type
|
use mld_prec_type, only : mld_cbaseprec_type
|
||||||
integer, intent(in) :: aggr_type
|
integer, intent(in) :: aggr_type
|
||||||
real(psb_spk_), intent(in) :: theta
|
real(psb_spk_), intent(in) :: theta
|
||||||
type(psb_cspmat_type), intent(in) :: a
|
type(psb_cspmat_type), intent(in) :: a
|
||||||
@@ -452,7 +452,7 @@ module mld_inner_mod
|
|||||||
end subroutine mld_caggrmap_bld
|
end subroutine mld_caggrmap_bld
|
||||||
subroutine mld_zaggrmap_bld(aggr_type,theta,a,desc_a,nlaggr,ilaggr,info)
|
subroutine mld_zaggrmap_bld(aggr_type,theta,a,desc_a,nlaggr,ilaggr,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_zbaseprc_type
|
use mld_prec_type, only : mld_zbaseprec_type
|
||||||
integer, intent(in) :: aggr_type
|
integer, intent(in) :: aggr_type
|
||||||
real(psb_dpk_), intent(in) :: theta
|
real(psb_dpk_), intent(in) :: theta
|
||||||
type(psb_zspmat_type), intent(in) :: a
|
type(psb_zspmat_type), intent(in) :: a
|
||||||
@@ -465,7 +465,7 @@ module mld_inner_mod
|
|||||||
interface mld_aggrmat_asb
|
interface mld_aggrmat_asb
|
||||||
subroutine mld_saggrmat_asb(a,desc_a,p,info)
|
subroutine mld_saggrmat_asb(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_sbaseprc_type, mld_s_interlev_prec_type
|
use mld_prec_type, only : mld_sbaseprec_type, mld_s_interlev_prec_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_interlev_prec_type), intent(inout), target :: p
|
type(mld_s_interlev_prec_type), intent(inout), target :: p
|
||||||
@@ -473,7 +473,7 @@ module mld_inner_mod
|
|||||||
end subroutine mld_saggrmat_asb
|
end subroutine mld_saggrmat_asb
|
||||||
subroutine mld_daggrmat_asb(a,desc_a,p,info)
|
subroutine mld_daggrmat_asb(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_dbaseprc_type, mld_d_interlev_prec_type
|
use mld_prec_type, only : mld_dbaseprec_type, mld_d_interlev_prec_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_interlev_prec_type), intent(inout), target :: p
|
type(mld_d_interlev_prec_type), intent(inout), target :: p
|
||||||
@@ -481,7 +481,7 @@ module mld_inner_mod
|
|||||||
end subroutine mld_daggrmat_asb
|
end subroutine mld_daggrmat_asb
|
||||||
subroutine mld_caggrmat_asb(a,desc_a,p,info)
|
subroutine mld_caggrmat_asb(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_cbaseprc_type, mld_c_interlev_prec_type
|
use mld_prec_type, only : mld_cbaseprec_type, mld_c_interlev_prec_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_interlev_prec_type), intent(inout), target :: p
|
type(mld_c_interlev_prec_type), intent(inout), target :: p
|
||||||
@@ -489,7 +489,7 @@ module mld_inner_mod
|
|||||||
end subroutine mld_caggrmat_asb
|
end subroutine mld_caggrmat_asb
|
||||||
subroutine mld_zaggrmat_asb(a,desc_a,p,info)
|
subroutine mld_zaggrmat_asb(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_zbaseprc_type, mld_z_interlev_prec_type
|
use mld_prec_type, only : mld_zbaseprec_type, mld_z_interlev_prec_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_interlev_prec_type), intent(inout), target :: p
|
type(mld_z_interlev_prec_type), intent(inout), target :: p
|
||||||
@@ -500,7 +500,7 @@ module mld_inner_mod
|
|||||||
interface mld_aggrmat_raw_asb
|
interface mld_aggrmat_raw_asb
|
||||||
subroutine mld_saggrmat_raw_asb(a,desc_a,p,info)
|
subroutine mld_saggrmat_raw_asb(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_sbaseprc_type, mld_s_interlev_prec_type
|
use mld_prec_type, only : mld_sbaseprec_type, mld_s_interlev_prec_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_interlev_prec_type), intent(inout), target :: p
|
type(mld_s_interlev_prec_type), intent(inout), target :: p
|
||||||
@@ -508,7 +508,7 @@ module mld_inner_mod
|
|||||||
end subroutine mld_saggrmat_raw_asb
|
end subroutine mld_saggrmat_raw_asb
|
||||||
subroutine mld_daggrmat_raw_asb(a,desc_a,p,info)
|
subroutine mld_daggrmat_raw_asb(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_dbaseprc_type, mld_d_interlev_prec_type
|
use mld_prec_type, only : mld_dbaseprec_type, mld_d_interlev_prec_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_interlev_prec_type), intent(inout), target :: p
|
type(mld_d_interlev_prec_type), intent(inout), target :: p
|
||||||
@@ -516,7 +516,7 @@ module mld_inner_mod
|
|||||||
end subroutine mld_daggrmat_raw_asb
|
end subroutine mld_daggrmat_raw_asb
|
||||||
subroutine mld_caggrmat_raw_asb(a,desc_a,p,info)
|
subroutine mld_caggrmat_raw_asb(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_cbaseprc_type, mld_c_interlev_prec_type
|
use mld_prec_type, only : mld_cbaseprec_type, mld_c_interlev_prec_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_interlev_prec_type), intent(inout), target :: p
|
type(mld_c_interlev_prec_type), intent(inout), target :: p
|
||||||
@@ -524,7 +524,7 @@ module mld_inner_mod
|
|||||||
end subroutine mld_caggrmat_raw_asb
|
end subroutine mld_caggrmat_raw_asb
|
||||||
subroutine mld_zaggrmat_raw_asb(a,desc_a,p,info)
|
subroutine mld_zaggrmat_raw_asb(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_zbaseprc_type, mld_z_interlev_prec_type
|
use mld_prec_type, only : mld_zbaseprec_type, mld_z_interlev_prec_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_interlev_prec_type), intent(inout), target :: p
|
type(mld_z_interlev_prec_type), intent(inout), target :: p
|
||||||
@@ -535,7 +535,7 @@ module mld_inner_mod
|
|||||||
interface mld_aggrmat_smth_asb
|
interface mld_aggrmat_smth_asb
|
||||||
subroutine mld_saggrmat_smth_asb(a,desc_a,p,info)
|
subroutine mld_saggrmat_smth_asb(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_sbaseprc_type, mld_s_interlev_prec_type
|
use mld_prec_type, only : mld_sbaseprec_type, mld_s_interlev_prec_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_interlev_prec_type), intent(inout), target :: p
|
type(mld_s_interlev_prec_type), intent(inout), target :: p
|
||||||
@@ -543,7 +543,7 @@ module mld_inner_mod
|
|||||||
end subroutine mld_saggrmat_smth_asb
|
end subroutine mld_saggrmat_smth_asb
|
||||||
subroutine mld_daggrmat_smth_asb(a,desc_a,p,info)
|
subroutine mld_daggrmat_smth_asb(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_dbaseprc_type, mld_d_interlev_prec_type
|
use mld_prec_type, only : mld_dbaseprec_type, mld_d_interlev_prec_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_interlev_prec_type), intent(inout), target :: p
|
type(mld_d_interlev_prec_type), intent(inout), target :: p
|
||||||
@@ -551,7 +551,7 @@ module mld_inner_mod
|
|||||||
end subroutine mld_daggrmat_smth_asb
|
end subroutine mld_daggrmat_smth_asb
|
||||||
subroutine mld_caggrmat_smth_asb(a,desc_a,p,info)
|
subroutine mld_caggrmat_smth_asb(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_cbaseprc_type, mld_c_interlev_prec_type
|
use mld_prec_type, only : mld_cbaseprec_type, mld_c_interlev_prec_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_interlev_prec_type), intent(inout), target :: p
|
type(mld_c_interlev_prec_type), intent(inout), target :: p
|
||||||
@@ -559,7 +559,7 @@ module mld_inner_mod
|
|||||||
end subroutine mld_caggrmat_smth_asb
|
end subroutine mld_caggrmat_smth_asb
|
||||||
subroutine mld_zaggrmat_smth_asb(a,desc_a,p,info)
|
subroutine mld_zaggrmat_smth_asb(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_zbaseprc_type, mld_z_interlev_prec_type
|
use mld_prec_type, only : mld_zbaseprec_type, mld_z_interlev_prec_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_interlev_prec_type), intent(inout), target :: p
|
type(mld_z_interlev_prec_type), intent(inout), target :: p
|
||||||
@@ -570,37 +570,37 @@ module mld_inner_mod
|
|||||||
interface mld_baseprec_bld
|
interface mld_baseprec_bld
|
||||||
subroutine mld_sbaseprec_bld(a,desc_a,p,info,upd)
|
subroutine mld_sbaseprec_bld(a,desc_a,p,info,upd)
|
||||||
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_sbaseprc_type
|
use mld_prec_type, only : mld_sbaseprec_type
|
||||||
type(psb_sspmat_type), target :: a
|
type(psb_sspmat_type), target :: a
|
||||||
type(psb_desc_type), intent(in), target :: desc_a
|
type(psb_desc_type), intent(in), target :: desc_a
|
||||||
type(mld_sbaseprc_type),intent(inout) :: p
|
type(mld_sbaseprec_type),intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
character, intent(in), optional :: upd
|
character, intent(in), optional :: upd
|
||||||
end subroutine mld_sbaseprec_bld
|
end subroutine mld_sbaseprec_bld
|
||||||
subroutine mld_dbaseprec_bld(a,desc_a,p,info,upd)
|
subroutine mld_dbaseprec_bld(a,desc_a,p,info,upd)
|
||||||
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_dbaseprc_type
|
use mld_prec_type, only : mld_dbaseprec_type
|
||||||
type(psb_dspmat_type), target :: a
|
type(psb_dspmat_type), target :: a
|
||||||
type(psb_desc_type), intent(in), target :: desc_a
|
type(psb_desc_type), intent(in), target :: desc_a
|
||||||
type(mld_dbaseprc_type),intent(inout) :: p
|
type(mld_dbaseprec_type),intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
character, intent(in), optional :: upd
|
character, intent(in), optional :: upd
|
||||||
end subroutine mld_dbaseprec_bld
|
end subroutine mld_dbaseprec_bld
|
||||||
subroutine mld_cbaseprec_bld(a,desc_a,p,info,upd)
|
subroutine mld_cbaseprec_bld(a,desc_a,p,info,upd)
|
||||||
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_cbaseprc_type
|
use mld_prec_type, only : mld_cbaseprec_type
|
||||||
type(psb_cspmat_type), target :: a
|
type(psb_cspmat_type), target :: a
|
||||||
type(psb_desc_type), intent(in), target :: desc_a
|
type(psb_desc_type), intent(in), target :: desc_a
|
||||||
type(mld_cbaseprc_type),intent(inout) :: p
|
type(mld_cbaseprec_type),intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
character, intent(in), optional :: upd
|
character, intent(in), optional :: upd
|
||||||
end subroutine mld_cbaseprec_bld
|
end subroutine mld_cbaseprec_bld
|
||||||
subroutine mld_zbaseprec_bld(a,desc_a,p,info,upd)
|
subroutine mld_zbaseprec_bld(a,desc_a,p,info,upd)
|
||||||
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_zbaseprc_type
|
use mld_prec_type, only : mld_zbaseprec_type
|
||||||
type(psb_zspmat_type), target :: a
|
type(psb_zspmat_type), target :: a
|
||||||
type(psb_desc_type), intent(in), target :: desc_a
|
type(psb_desc_type), intent(in), target :: desc_a
|
||||||
type(mld_zbaseprc_type),intent(inout) :: p
|
type(mld_zbaseprec_type),intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
character, intent(in), optional :: upd
|
character, intent(in), optional :: upd
|
||||||
end subroutine mld_zbaseprec_bld
|
end subroutine mld_zbaseprec_bld
|
||||||
@@ -609,37 +609,37 @@ module mld_inner_mod
|
|||||||
interface mld_as_bld
|
interface mld_as_bld
|
||||||
subroutine mld_sas_bld(a,desc_a,p,upd,info)
|
subroutine mld_sas_bld(a,desc_a,p,upd,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_sbaseprc_type
|
use mld_prec_type, only : mld_sbaseprec_type
|
||||||
type(psb_sspmat_type), target :: a
|
type(psb_sspmat_type), target :: a
|
||||||
type(psb_desc_type), intent(in), target :: desc_a
|
type(psb_desc_type), intent(in), target :: desc_a
|
||||||
type(mld_sbaseprc_type),intent(inout) :: p
|
type(mld_sbaseprec_type),intent(inout) :: p
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_sas_bld
|
end subroutine mld_sas_bld
|
||||||
subroutine mld_das_bld(a,desc_a,p,upd,info)
|
subroutine mld_das_bld(a,desc_a,p,upd,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_dbaseprc_type
|
use mld_prec_type, only : mld_dbaseprec_type
|
||||||
type(psb_dspmat_type), target :: a
|
type(psb_dspmat_type), target :: a
|
||||||
type(psb_desc_type), intent(in), target :: desc_a
|
type(psb_desc_type), intent(in), target :: desc_a
|
||||||
type(mld_dbaseprc_type),intent(inout) :: p
|
type(mld_dbaseprec_type),intent(inout) :: p
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_das_bld
|
end subroutine mld_das_bld
|
||||||
subroutine mld_cas_bld(a,desc_a,p,upd,info)
|
subroutine mld_cas_bld(a,desc_a,p,upd,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_cbaseprc_type
|
use mld_prec_type, only : mld_cbaseprec_type
|
||||||
type(psb_cspmat_type), target :: a
|
type(psb_cspmat_type), target :: a
|
||||||
type(psb_desc_type), intent(in), target :: desc_a
|
type(psb_desc_type), intent(in), target :: desc_a
|
||||||
type(mld_cbaseprc_type),intent(inout) :: p
|
type(mld_cbaseprec_type),intent(inout) :: p
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_cas_bld
|
end subroutine mld_cas_bld
|
||||||
subroutine mld_zas_bld(a,desc_a,p,upd,info)
|
subroutine mld_zas_bld(a,desc_a,p,upd,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_zbaseprc_type
|
use mld_prec_type, only : mld_zbaseprec_type
|
||||||
type(psb_zspmat_type), target :: a
|
type(psb_zspmat_type), target :: a
|
||||||
type(psb_desc_type), intent(in), target :: desc_a
|
type(psb_desc_type), intent(in), target :: desc_a
|
||||||
type(mld_zbaseprc_type),intent(inout) :: p
|
type(mld_zbaseprec_type),intent(inout) :: p
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_zas_bld
|
end subroutine mld_zas_bld
|
||||||
@@ -648,71 +648,71 @@ module mld_inner_mod
|
|||||||
interface mld_diag_bld
|
interface mld_diag_bld
|
||||||
subroutine mld_sdiag_bld(a,desc_data,p,info)
|
subroutine mld_sdiag_bld(a,desc_data,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_sbaseprc_type
|
use mld_prec_type, only : mld_sbaseprec_type
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
type(psb_sspmat_type), intent(in), target :: a
|
type(psb_sspmat_type), intent(in), target :: a
|
||||||
type(psb_desc_type),intent(in) :: desc_data
|
type(psb_desc_type),intent(in) :: desc_data
|
||||||
type(mld_sbaseprc_type), intent(inout) :: p
|
type(mld_sbaseprec_type), intent(inout) :: p
|
||||||
end subroutine mld_sdiag_bld
|
end subroutine mld_sdiag_bld
|
||||||
subroutine mld_ddiag_bld(a,desc_data,p,info)
|
subroutine mld_ddiag_bld(a,desc_data,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_dbaseprc_type
|
use mld_prec_type, only : mld_dbaseprec_type
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
type(psb_dspmat_type), intent(in), target :: a
|
type(psb_dspmat_type), intent(in), target :: a
|
||||||
type(psb_desc_type),intent(in) :: desc_data
|
type(psb_desc_type),intent(in) :: desc_data
|
||||||
type(mld_dbaseprc_type), intent(inout) :: p
|
type(mld_dbaseprec_type), intent(inout) :: p
|
||||||
end subroutine mld_ddiag_bld
|
end subroutine mld_ddiag_bld
|
||||||
subroutine mld_cdiag_bld(a,desc_data,p,info)
|
subroutine mld_cdiag_bld(a,desc_data,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_cbaseprc_type
|
use mld_prec_type, only : mld_cbaseprec_type
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
type(psb_cspmat_type), intent(in), target :: a
|
type(psb_cspmat_type), intent(in), target :: a
|
||||||
type(psb_desc_type),intent(in) :: desc_data
|
type(psb_desc_type),intent(in) :: desc_data
|
||||||
type(mld_cbaseprc_type), intent(inout) :: p
|
type(mld_cbaseprec_type), intent(inout) :: p
|
||||||
end subroutine mld_cdiag_bld
|
end subroutine mld_cdiag_bld
|
||||||
subroutine mld_zdiag_bld(a,desc_data,p,info)
|
subroutine mld_zdiag_bld(a,desc_data,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_zbaseprc_type
|
use mld_prec_type, only : mld_zbaseprec_type
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
type(psb_zspmat_type), intent(in), target :: a
|
type(psb_zspmat_type), intent(in), target :: a
|
||||||
type(psb_desc_type),intent(in) :: desc_data
|
type(psb_desc_type),intent(in) :: desc_data
|
||||||
type(mld_zbaseprc_type), intent(inout) :: p
|
type(mld_zbaseprec_type), intent(inout) :: p
|
||||||
end subroutine mld_zdiag_bld
|
end subroutine mld_zdiag_bld
|
||||||
end interface
|
end interface
|
||||||
|
|
||||||
interface mld_fact_bld
|
interface mld_fact_bld
|
||||||
subroutine mld_sfact_bld(a,p,upd,info,blck)
|
subroutine mld_sfact_bld(a,p,upd,info,blck)
|
||||||
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_sbaseprc_type
|
use mld_prec_type, only : mld_sbaseprec_type
|
||||||
type(psb_sspmat_type), intent(in), target :: a
|
type(psb_sspmat_type), intent(in), target :: a
|
||||||
type(mld_sbaseprc_type), intent(inout) :: p
|
type(mld_sbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
type(psb_sspmat_type), intent(in), target, optional :: blck
|
type(psb_sspmat_type), intent(in), target, optional :: blck
|
||||||
end subroutine mld_sfact_bld
|
end subroutine mld_sfact_bld
|
||||||
subroutine mld_dfact_bld(a,p,upd,info,blck)
|
subroutine mld_dfact_bld(a,p,upd,info,blck)
|
||||||
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_dbaseprc_type
|
use mld_prec_type, only : mld_dbaseprec_type
|
||||||
type(psb_dspmat_type), intent(in), target :: a
|
type(psb_dspmat_type), intent(in), target :: a
|
||||||
type(mld_dbaseprc_type), intent(inout) :: p
|
type(mld_dbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
type(psb_dspmat_type), intent(in), target, optional :: blck
|
type(psb_dspmat_type), intent(in), target, optional :: blck
|
||||||
end subroutine mld_dfact_bld
|
end subroutine mld_dfact_bld
|
||||||
subroutine mld_cfact_bld(a,p,upd,info,blck)
|
subroutine mld_cfact_bld(a,p,upd,info,blck)
|
||||||
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_cbaseprc_type
|
use mld_prec_type, only : mld_cbaseprec_type
|
||||||
type(psb_cspmat_type), intent(in), target :: a
|
type(psb_cspmat_type), intent(in), target :: a
|
||||||
type(mld_cbaseprc_type), intent(inout) :: p
|
type(mld_cbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
type(psb_cspmat_type), intent(in), target, optional :: blck
|
type(psb_cspmat_type), intent(in), target, optional :: blck
|
||||||
end subroutine mld_cfact_bld
|
end subroutine mld_cfact_bld
|
||||||
subroutine mld_zfact_bld(a,p,upd,info,blck)
|
subroutine mld_zfact_bld(a,p,upd,info,blck)
|
||||||
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_zbaseprc_type
|
use mld_prec_type, only : mld_zbaseprec_type
|
||||||
type(psb_zspmat_type), intent(in), target :: a
|
type(psb_zspmat_type), intent(in), target :: a
|
||||||
type(mld_zbaseprc_type), intent(inout) :: p
|
type(mld_zbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
type(psb_zspmat_type), intent(in), target, optional :: blck
|
type(psb_zspmat_type), intent(in), target, optional :: blck
|
||||||
@@ -722,37 +722,37 @@ module mld_inner_mod
|
|||||||
interface mld_ilu_bld
|
interface mld_ilu_bld
|
||||||
subroutine mld_silu_bld(a,p,upd,info,blck)
|
subroutine mld_silu_bld(a,p,upd,info,blck)
|
||||||
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_sbaseprc_type
|
use mld_prec_type, only : mld_sbaseprec_type
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
type(psb_sspmat_type), intent(in), target :: a
|
type(psb_sspmat_type), intent(in), target :: a
|
||||||
type(mld_sbaseprc_type), intent(inout) :: p
|
type(mld_sbaseprec_type), intent(inout) :: p
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
type(psb_sspmat_type), intent(in), optional :: blck
|
type(psb_sspmat_type), intent(in), optional :: blck
|
||||||
end subroutine mld_silu_bld
|
end subroutine mld_silu_bld
|
||||||
subroutine mld_dilu_bld(a,p,upd,info,blck)
|
subroutine mld_dilu_bld(a,p,upd,info,blck)
|
||||||
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_dbaseprc_type
|
use mld_prec_type, only : mld_dbaseprec_type
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
type(psb_dspmat_type), intent(in), target :: a
|
type(psb_dspmat_type), intent(in), target :: a
|
||||||
type(mld_dbaseprc_type), intent(inout) :: p
|
type(mld_dbaseprec_type), intent(inout) :: p
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
type(psb_dspmat_type), intent(in), optional :: blck
|
type(psb_dspmat_type), intent(in), optional :: blck
|
||||||
end subroutine mld_dilu_bld
|
end subroutine mld_dilu_bld
|
||||||
subroutine mld_cilu_bld(a,p,upd,info,blck)
|
subroutine mld_cilu_bld(a,p,upd,info,blck)
|
||||||
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_cbaseprc_type
|
use mld_prec_type, only : mld_cbaseprec_type
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
type(psb_cspmat_type), intent(in), target :: a
|
type(psb_cspmat_type), intent(in), target :: a
|
||||||
type(mld_cbaseprc_type), intent(inout) :: p
|
type(mld_cbaseprec_type), intent(inout) :: p
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
type(psb_cspmat_type), intent(in), optional :: blck
|
type(psb_cspmat_type), intent(in), optional :: blck
|
||||||
end subroutine mld_cilu_bld
|
end subroutine mld_cilu_bld
|
||||||
subroutine mld_zilu_bld(a,p,upd,info,blck)
|
subroutine mld_zilu_bld(a,p,upd,info,blck)
|
||||||
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_zbaseprc_type
|
use mld_prec_type, only : mld_zbaseprec_type
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
type(psb_zspmat_type), intent(in), target :: a
|
type(psb_zspmat_type), intent(in), target :: a
|
||||||
type(mld_zbaseprc_type), intent(inout) :: p
|
type(mld_zbaseprec_type), intent(inout) :: p
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
type(psb_zspmat_type), intent(in), optional :: blck
|
type(psb_zspmat_type), intent(in), optional :: blck
|
||||||
end subroutine mld_zilu_bld
|
end subroutine mld_zilu_bld
|
||||||
@@ -761,34 +761,34 @@ module mld_inner_mod
|
|||||||
interface mld_sludist_bld
|
interface mld_sludist_bld
|
||||||
subroutine mld_ssludist_bld(a,desc_a,p,info)
|
subroutine mld_ssludist_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_sbaseprc_type
|
use mld_prec_type, only : mld_sbaseprec_type
|
||||||
type(psb_sspmat_type), intent(inout) :: a
|
type(psb_sspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_sbaseprc_type), intent(inout) :: p
|
type(mld_sbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_ssludist_bld
|
end subroutine mld_ssludist_bld
|
||||||
subroutine mld_dsludist_bld(a,desc_a,p,info)
|
subroutine mld_dsludist_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_dbaseprc_type
|
use mld_prec_type, only : mld_dbaseprec_type
|
||||||
type(psb_dspmat_type), intent(inout) :: a
|
type(psb_dspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_dbaseprc_type), intent(inout) :: p
|
type(mld_dbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_dsludist_bld
|
end subroutine mld_dsludist_bld
|
||||||
subroutine mld_csludist_bld(a,desc_a,p,info)
|
subroutine mld_csludist_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_cbaseprc_type
|
use mld_prec_type, only : mld_cbaseprec_type
|
||||||
type(psb_cspmat_type), intent(inout) :: a
|
type(psb_cspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_cbaseprc_type), intent(inout) :: p
|
type(mld_cbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_csludist_bld
|
end subroutine mld_csludist_bld
|
||||||
subroutine mld_zsludist_bld(a,desc_a,p,info)
|
subroutine mld_zsludist_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_zbaseprc_type
|
use mld_prec_type, only : mld_zbaseprec_type
|
||||||
type(psb_zspmat_type), intent(inout) :: a
|
type(psb_zspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_zbaseprc_type), intent(inout) :: p
|
type(mld_zbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_zsludist_bld
|
end subroutine mld_zsludist_bld
|
||||||
end interface
|
end interface
|
||||||
@@ -796,34 +796,34 @@ module mld_inner_mod
|
|||||||
interface mld_slu_bld
|
interface mld_slu_bld
|
||||||
subroutine mld_sslu_bld(a,desc_a,p,info)
|
subroutine mld_sslu_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_sbaseprc_type
|
use mld_prec_type, only : mld_sbaseprec_type
|
||||||
type(psb_sspmat_type), intent(inout) :: a
|
type(psb_sspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_sbaseprc_type), intent(inout) :: p
|
type(mld_sbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_sslu_bld
|
end subroutine mld_sslu_bld
|
||||||
subroutine mld_dslu_bld(a,desc_a,p,info)
|
subroutine mld_dslu_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_dbaseprc_type
|
use mld_prec_type, only : mld_dbaseprec_type
|
||||||
type(psb_dspmat_type), intent(inout) :: a
|
type(psb_dspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_dbaseprc_type), intent(inout) :: p
|
type(mld_dbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_dslu_bld
|
end subroutine mld_dslu_bld
|
||||||
subroutine mld_cslu_bld(a,desc_a,p,info)
|
subroutine mld_cslu_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_cbaseprc_type
|
use mld_prec_type, only : mld_cbaseprec_type
|
||||||
type(psb_cspmat_type), intent(inout) :: a
|
type(psb_cspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_cbaseprc_type), intent(inout) :: p
|
type(mld_cbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_cslu_bld
|
end subroutine mld_cslu_bld
|
||||||
subroutine mld_zslu_bld(a,desc_a,p,info)
|
subroutine mld_zslu_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_zbaseprc_type
|
use mld_prec_type, only : mld_zbaseprec_type
|
||||||
type(psb_zspmat_type), intent(inout) :: a
|
type(psb_zspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_zbaseprc_type), intent(inout) :: p
|
type(mld_zbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_zslu_bld
|
end subroutine mld_zslu_bld
|
||||||
end interface
|
end interface
|
||||||
@@ -831,34 +831,34 @@ module mld_inner_mod
|
|||||||
interface mld_umf_bld
|
interface mld_umf_bld
|
||||||
subroutine mld_sumf_bld(a,desc_a,p,info)
|
subroutine mld_sumf_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_sbaseprc_type
|
use mld_prec_type, only : mld_sbaseprec_type
|
||||||
type(psb_sspmat_type), intent(inout) :: a
|
type(psb_sspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_sbaseprc_type), intent(inout) :: p
|
type(mld_sbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_sumf_bld
|
end subroutine mld_sumf_bld
|
||||||
subroutine mld_dumf_bld(a,desc_a,p,info)
|
subroutine mld_dumf_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_dbaseprc_type
|
use mld_prec_type, only : mld_dbaseprec_type
|
||||||
type(psb_dspmat_type), intent(inout) :: a
|
type(psb_dspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_dbaseprc_type), intent(inout) :: p
|
type(mld_dbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_dumf_bld
|
end subroutine mld_dumf_bld
|
||||||
subroutine mld_cumf_bld(a,desc_a,p,info)
|
subroutine mld_cumf_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_cbaseprc_type
|
use mld_prec_type, only : mld_cbaseprec_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_cbaseprc_type), intent(inout) :: p
|
type(mld_cbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_cumf_bld
|
end subroutine mld_cumf_bld
|
||||||
subroutine mld_zumf_bld(a,desc_a,p,info)
|
subroutine mld_zumf_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_zbaseprc_type
|
use mld_prec_type, only : mld_zbaseprec_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_zbaseprc_type), intent(inout) :: p
|
type(mld_zbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
end subroutine mld_zumf_bld
|
end subroutine mld_zumf_bld
|
||||||
end interface
|
end interface
|
||||||
|
|||||||
@@ -49,7 +49,7 @@
|
|||||||
! data structure (see below).
|
! data structure (see below).
|
||||||
!
|
!
|
||||||
! It contains:
|
! It contains:
|
||||||
! - mld_dprec_sizeof, mld_dbaseprc_sizeof, mld_out_prec_descr, mld_file_prec_descr,
|
! - mld_dprec_sizeof, mld_dbaseprec_sizeof, mld_out_prec_descr, mld_file_prec_descr,
|
||||||
! mld_icheck_def, mld_dcheck_def, mld_dbase_precfree, mld_nullify_dbaseprec,
|
! mld_icheck_def, mld_dcheck_def, mld_dbase_precfree, mld_nullify_dbaseprec,
|
||||||
! is_legal_..._..., and their complex versions (if applicable).
|
! is_legal_..._..., and their complex versions (if applicable).
|
||||||
! These routines check if the preconditioner is correctly defined, print a
|
! These routines check if the preconditioner is correctly defined, print a
|
||||||
@@ -77,7 +77,7 @@ contains
|
|||||||
subroutine mld_sbaseprec_move_alloc(a, b,info)
|
subroutine mld_sbaseprec_move_alloc(a, b,info)
|
||||||
use psb_base_mod
|
use psb_base_mod
|
||||||
implicit none
|
implicit none
|
||||||
type(mld_sbaseprc_type), intent(inout) :: a, b
|
type(mld_sbaseprec_type), intent(inout) :: a, b
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
integer :: i, isz
|
integer :: i, isz
|
||||||
|
|
||||||
@@ -172,7 +172,7 @@ contains
|
|||||||
subroutine mld_dbaseprec_move_alloc(a, b,info)
|
subroutine mld_dbaseprec_move_alloc(a, b,info)
|
||||||
use psb_base_mod
|
use psb_base_mod
|
||||||
implicit none
|
implicit none
|
||||||
type(mld_dbaseprc_type), intent(inout) :: a, b
|
type(mld_dbaseprec_type), intent(inout) :: a, b
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
integer :: i, isz
|
integer :: i, isz
|
||||||
|
|
||||||
@@ -267,7 +267,7 @@ contains
|
|||||||
subroutine mld_cbaseprec_move_alloc(a, b,info)
|
subroutine mld_cbaseprec_move_alloc(a, b,info)
|
||||||
use psb_base_mod
|
use psb_base_mod
|
||||||
implicit none
|
implicit none
|
||||||
type(mld_cbaseprc_type), intent(inout) :: a, b
|
type(mld_cbaseprec_type), intent(inout) :: a, b
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
integer :: i, isz
|
integer :: i, isz
|
||||||
|
|
||||||
@@ -362,7 +362,7 @@ contains
|
|||||||
subroutine mld_zbaseprec_move_alloc(a, b,info)
|
subroutine mld_zbaseprec_move_alloc(a, b,info)
|
||||||
use psb_base_mod
|
use psb_base_mod
|
||||||
implicit none
|
implicit none
|
||||||
type(mld_zbaseprc_type), intent(inout) :: a, b
|
type(mld_zbaseprec_type), intent(inout) :: a, b
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
integer :: i, isz
|
integer :: i, isz
|
||||||
|
|
||||||
|
|||||||
+38
-38
@@ -49,7 +49,7 @@
|
|||||||
! data structure (see below).
|
! data structure (see below).
|
||||||
!
|
!
|
||||||
! It contains:
|
! It contains:
|
||||||
! - mld_dprec_sizeof, mld_dbaseprc_sizeof, mld_out_prec_descr, mld_file_prec_descr,
|
! - mld_dprec_sizeof, mld_dbaseprec_sizeof, mld_out_prec_descr, mld_file_prec_descr,
|
||||||
! mld_icheck_def, mld_dcheck_def, mld_dbase_precfree, mld_nullify_dbaseprec,
|
! mld_icheck_def, mld_dcheck_def, mld_dbase_precfree, mld_nullify_dbaseprec,
|
||||||
! is_legal_..._..., and their complex versions (if applicable).
|
! is_legal_..._..., and their complex versions (if applicable).
|
||||||
! These routines check if the preconditioner is correctly defined, print a
|
! These routines check if the preconditioner is correctly defined, print a
|
||||||
@@ -101,7 +101,7 @@ module mld_prec_type
|
|||||||
! Type: mld_X_interlev_prec_type.
|
! Type: mld_X_interlev_prec_type.
|
||||||
! The data type containing necessary items for the current level.
|
! The data type containing necessary items for the current level.
|
||||||
!
|
!
|
||||||
! type(mld_Xbaseprc_type) - prec
|
! type(mld_Xbaseprec_type) - prec
|
||||||
! The current level preconditioner (aka smoother).
|
! The current level preconditioner (aka smoother).
|
||||||
! ac - The local part of the matrix A(ilev).
|
! ac - The local part of the matrix A(ilev).
|
||||||
! desc_ac - type(psb_desc_type).
|
! desc_ac - type(psb_desc_type).
|
||||||
@@ -128,7 +128,7 @@ module mld_prec_type
|
|||||||
! base_desc - type(psb_desc_type), pointer.
|
! base_desc - type(psb_desc_type), pointer.
|
||||||
! Pointer to the communication descriptor associated to the sparse
|
! Pointer to the communication descriptor associated to the sparse
|
||||||
! matrix pointed by base_a.
|
! matrix pointed by base_a.
|
||||||
! Type: mld_Xbaseprc_type
|
! Type: mld_Xbaseprec_type
|
||||||
! The smoother.
|
! The smoother.
|
||||||
!
|
!
|
||||||
! av - type(psb_Xspmat_type), dimension(:), allocatable(:).
|
! av - type(psb_Xspmat_type), dimension(:), allocatable(:).
|
||||||
@@ -166,17 +166,17 @@ module mld_prec_type
|
|||||||
! prec%iprcparm(mld_umf_ptr) or prec%iprcparm(mld_slu_ptr), respectively.
|
! prec%iprcparm(mld_umf_ptr) or prec%iprcparm(mld_slu_ptr), respectively.
|
||||||
!
|
!
|
||||||
|
|
||||||
type mld_sbaseprc_type
|
type mld_sbaseprec_type
|
||||||
type(psb_sspmat_type), allocatable :: av(:)
|
type(psb_sspmat_type), allocatable :: av(:)
|
||||||
real(psb_spk_), allocatable :: d(:)
|
real(psb_spk_), allocatable :: d(:)
|
||||||
type(psb_desc_type) :: desc_data
|
type(psb_desc_type) :: desc_data
|
||||||
integer, allocatable :: iprcparm(:)
|
integer, allocatable :: iprcparm(:)
|
||||||
real(psb_spk_), allocatable :: rprcparm(:)
|
real(psb_spk_), allocatable :: rprcparm(:)
|
||||||
integer, allocatable :: perm(:), invperm(:)
|
integer, allocatable :: perm(:), invperm(:)
|
||||||
end type mld_sbaseprc_type
|
end type mld_sbaseprec_type
|
||||||
|
|
||||||
type mld_s_interlev_prec_type
|
type mld_s_interlev_prec_type
|
||||||
type(mld_sbaseprc_type) :: prec
|
type(mld_sbaseprec_type) :: prec
|
||||||
integer, allocatable :: iprcparm(:)
|
integer, allocatable :: iprcparm(:)
|
||||||
real(psb_spk_), allocatable :: rprcparm(:)
|
real(psb_spk_), allocatable :: rprcparm(:)
|
||||||
type(psb_sspmat_type) :: ac
|
type(psb_sspmat_type) :: ac
|
||||||
@@ -191,17 +191,17 @@ module mld_prec_type
|
|||||||
type(mld_s_interlev_prec_type), allocatable :: precv(:)
|
type(mld_s_interlev_prec_type), allocatable :: precv(:)
|
||||||
end type mld_sprec_type
|
end type mld_sprec_type
|
||||||
|
|
||||||
type mld_dbaseprc_type
|
type mld_dbaseprec_type
|
||||||
type(psb_dspmat_type), allocatable :: av(:)
|
type(psb_dspmat_type), allocatable :: av(:)
|
||||||
real(psb_dpk_), allocatable :: d(:)
|
real(psb_dpk_), allocatable :: d(:)
|
||||||
type(psb_desc_type) :: desc_data
|
type(psb_desc_type) :: desc_data
|
||||||
integer, allocatable :: iprcparm(:)
|
integer, allocatable :: iprcparm(:)
|
||||||
real(psb_dpk_), allocatable :: rprcparm(:)
|
real(psb_dpk_), allocatable :: rprcparm(:)
|
||||||
integer, allocatable :: perm(:), invperm(:)
|
integer, allocatable :: perm(:), invperm(:)
|
||||||
end type mld_dbaseprc_type
|
end type mld_dbaseprec_type
|
||||||
|
|
||||||
type mld_d_interlev_prec_type
|
type mld_d_interlev_prec_type
|
||||||
type(mld_dbaseprc_type) :: prec
|
type(mld_dbaseprec_type) :: prec
|
||||||
integer, allocatable :: iprcparm(:)
|
integer, allocatable :: iprcparm(:)
|
||||||
real(psb_dpk_), allocatable :: rprcparm(:)
|
real(psb_dpk_), allocatable :: rprcparm(:)
|
||||||
type(psb_dspmat_type) :: ac
|
type(psb_dspmat_type) :: ac
|
||||||
@@ -217,17 +217,17 @@ module mld_prec_type
|
|||||||
end type mld_dprec_type
|
end type mld_dprec_type
|
||||||
|
|
||||||
|
|
||||||
type mld_cbaseprc_type
|
type mld_cbaseprec_type
|
||||||
type(psb_cspmat_type), allocatable :: av(:)
|
type(psb_cspmat_type), allocatable :: av(:)
|
||||||
complex(psb_spk_), allocatable :: d(:)
|
complex(psb_spk_), allocatable :: d(:)
|
||||||
type(psb_desc_type) :: desc_data
|
type(psb_desc_type) :: desc_data
|
||||||
integer, allocatable :: iprcparm(:)
|
integer, allocatable :: iprcparm(:)
|
||||||
real(psb_spk_), allocatable :: rprcparm(:)
|
real(psb_spk_), allocatable :: rprcparm(:)
|
||||||
integer, allocatable :: perm(:), invperm(:)
|
integer, allocatable :: perm(:), invperm(:)
|
||||||
end type mld_cbaseprc_type
|
end type mld_cbaseprec_type
|
||||||
|
|
||||||
type mld_c_interlev_prec_type
|
type mld_c_interlev_prec_type
|
||||||
type(mld_cbaseprc_type) :: prec
|
type(mld_cbaseprec_type) :: prec
|
||||||
integer, allocatable :: iprcparm(:)
|
integer, allocatable :: iprcparm(:)
|
||||||
real(psb_spk_), allocatable :: rprcparm(:)
|
real(psb_spk_), allocatable :: rprcparm(:)
|
||||||
type(psb_cspmat_type) :: ac
|
type(psb_cspmat_type) :: ac
|
||||||
@@ -242,17 +242,17 @@ module mld_prec_type
|
|||||||
type(mld_c_interlev_prec_type), allocatable :: precv(:)
|
type(mld_c_interlev_prec_type), allocatable :: precv(:)
|
||||||
end type mld_cprec_type
|
end type mld_cprec_type
|
||||||
|
|
||||||
type mld_zbaseprc_type
|
type mld_zbaseprec_type
|
||||||
type(psb_zspmat_type), allocatable :: av(:)
|
type(psb_zspmat_type), allocatable :: av(:)
|
||||||
complex(psb_dpk_), allocatable :: d(:)
|
complex(psb_dpk_), allocatable :: d(:)
|
||||||
type(psb_desc_type) :: desc_data
|
type(psb_desc_type) :: desc_data
|
||||||
integer, allocatable :: iprcparm(:)
|
integer, allocatable :: iprcparm(:)
|
||||||
real(psb_dpk_), allocatable :: rprcparm(:)
|
real(psb_dpk_), allocatable :: rprcparm(:)
|
||||||
integer, allocatable :: perm(:), invperm(:)
|
integer, allocatable :: perm(:), invperm(:)
|
||||||
end type mld_zbaseprc_type
|
end type mld_zbaseprec_type
|
||||||
|
|
||||||
type mld_z_interlev_prec_type
|
type mld_z_interlev_prec_type
|
||||||
type(mld_zbaseprc_type) :: prec
|
type(mld_zbaseprec_type) :: prec
|
||||||
integer, allocatable :: iprcparm(:)
|
integer, allocatable :: iprcparm(:)
|
||||||
real(psb_dpk_), allocatable :: rprcparm(:)
|
real(psb_dpk_), allocatable :: rprcparm(:)
|
||||||
type(psb_zspmat_type) :: ac
|
type(psb_zspmat_type) :: ac
|
||||||
@@ -449,8 +449,8 @@ module mld_prec_type
|
|||||||
interface mld_sizeof
|
interface mld_sizeof
|
||||||
module procedure mld_sprec_sizeof, mld_cprec_sizeof, &
|
module procedure mld_sprec_sizeof, mld_cprec_sizeof, &
|
||||||
& mld_dprec_sizeof, mld_zprec_sizeof, &
|
& mld_dprec_sizeof, mld_zprec_sizeof, &
|
||||||
& mld_sbaseprc_sizeof, mld_cbaseprc_sizeof,&
|
& mld_sbaseprec_sizeof, mld_cbaseprec_sizeof,&
|
||||||
& mld_dbaseprc_sizeof, mld_zbaseprc_sizeof, &
|
& mld_dbaseprec_sizeof, mld_zbaseprec_sizeof, &
|
||||||
& mld_s_onelev_prec_sizeof, mld_d_onelev_prec_sizeof,&
|
& mld_s_onelev_prec_sizeof, mld_d_onelev_prec_sizeof,&
|
||||||
& mld_c_onelev_prec_sizeof, mld_z_onelev_prec_sizeof
|
& mld_c_onelev_prec_sizeof, mld_z_onelev_prec_sizeof
|
||||||
end interface
|
end interface
|
||||||
@@ -612,12 +612,12 @@ contains
|
|||||||
end function mld_zprec_sizeof
|
end function mld_zprec_sizeof
|
||||||
|
|
||||||
!
|
!
|
||||||
! Function returning the size of the mld_baseprc_type data structure
|
! Function returning the size of the mld_baseprec_type data structure
|
||||||
!
|
!
|
||||||
|
|
||||||
function mld_sbaseprc_sizeof(prec) result(val)
|
function mld_sbaseprec_sizeof(prec) result(val)
|
||||||
implicit none
|
implicit none
|
||||||
type(mld_sbaseprc_type), intent(in) :: prec
|
type(mld_sbaseprec_type), intent(in) :: prec
|
||||||
integer(psb_long_int_k_) :: val
|
integer(psb_long_int_k_) :: val
|
||||||
integer :: i
|
integer :: i
|
||||||
|
|
||||||
@@ -647,11 +647,11 @@ contains
|
|||||||
end do
|
end do
|
||||||
end if
|
end if
|
||||||
|
|
||||||
end function mld_sbaseprc_sizeof
|
end function mld_sbaseprec_sizeof
|
||||||
|
|
||||||
function mld_dbaseprc_sizeof(prec) result(val)
|
function mld_dbaseprec_sizeof(prec) result(val)
|
||||||
implicit none
|
implicit none
|
||||||
type(mld_dbaseprc_type), intent(in) :: prec
|
type(mld_dbaseprec_type), intent(in) :: prec
|
||||||
integer(psb_long_int_k_) :: val
|
integer(psb_long_int_k_) :: val
|
||||||
integer :: i
|
integer :: i
|
||||||
|
|
||||||
@@ -682,11 +682,11 @@ contains
|
|||||||
end if
|
end if
|
||||||
|
|
||||||
|
|
||||||
end function mld_dbaseprc_sizeof
|
end function mld_dbaseprec_sizeof
|
||||||
|
|
||||||
function mld_cbaseprc_sizeof(prec) result(val)
|
function mld_cbaseprec_sizeof(prec) result(val)
|
||||||
implicit none
|
implicit none
|
||||||
type(mld_cbaseprc_type), intent(in) :: prec
|
type(mld_cbaseprec_type), intent(in) :: prec
|
||||||
integer(psb_long_int_k_) :: val
|
integer(psb_long_int_k_) :: val
|
||||||
integer :: i
|
integer :: i
|
||||||
|
|
||||||
@@ -716,11 +716,11 @@ contains
|
|||||||
end do
|
end do
|
||||||
end if
|
end if
|
||||||
|
|
||||||
end function mld_cbaseprc_sizeof
|
end function mld_cbaseprec_sizeof
|
||||||
|
|
||||||
function mld_zbaseprc_sizeof(prec) result(val)
|
function mld_zbaseprec_sizeof(prec) result(val)
|
||||||
implicit none
|
implicit none
|
||||||
type(mld_zbaseprc_type), intent(in) :: prec
|
type(mld_zbaseprec_type), intent(in) :: prec
|
||||||
integer(psb_long_int_k_) :: val
|
integer(psb_long_int_k_) :: val
|
||||||
integer :: i
|
integer :: i
|
||||||
|
|
||||||
@@ -750,7 +750,7 @@ contains
|
|||||||
end do
|
end do
|
||||||
end if
|
end if
|
||||||
|
|
||||||
end function mld_zbaseprc_sizeof
|
end function mld_zbaseprec_sizeof
|
||||||
|
|
||||||
function mld_s_onelev_prec_sizeof(prec) result(val)
|
function mld_s_onelev_prec_sizeof(prec) result(val)
|
||||||
implicit none
|
implicit none
|
||||||
@@ -1816,7 +1816,7 @@ contains
|
|||||||
subroutine mld_sbase_precfree(p,info)
|
subroutine mld_sbase_precfree(p,info)
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
type(mld_sbaseprc_type), intent(inout) :: p
|
type(mld_sbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
integer :: i
|
integer :: i
|
||||||
|
|
||||||
@@ -1925,7 +1925,7 @@ contains
|
|||||||
subroutine mld_nullify_sbaseprec(p)
|
subroutine mld_nullify_sbaseprec(p)
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
type(mld_sbaseprc_type), intent(inout) :: p
|
type(mld_sbaseprec_type), intent(inout) :: p
|
||||||
|
|
||||||
!!$ nullify(p%base_a)
|
!!$ nullify(p%base_a)
|
||||||
!!$ nullify(p%base_desc)
|
!!$ nullify(p%base_desc)
|
||||||
@@ -1936,7 +1936,7 @@ contains
|
|||||||
subroutine mld_dbase_precfree(p,info)
|
subroutine mld_dbase_precfree(p,info)
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
type(mld_dbaseprc_type), intent(inout) :: p
|
type(mld_dbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
integer :: i
|
integer :: i
|
||||||
|
|
||||||
@@ -2039,7 +2039,7 @@ contains
|
|||||||
subroutine mld_nullify_dbaseprec(p)
|
subroutine mld_nullify_dbaseprec(p)
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
type(mld_dbaseprc_type), intent(inout) :: p
|
type(mld_dbaseprec_type), intent(inout) :: p
|
||||||
!!$
|
!!$
|
||||||
!!$ nullify(p%base_a)
|
!!$ nullify(p%base_a)
|
||||||
!!$ nullify(p%base_desc)
|
!!$ nullify(p%base_desc)
|
||||||
@@ -2058,7 +2058,7 @@ contains
|
|||||||
|
|
||||||
subroutine mld_cbase_precfree(p,info)
|
subroutine mld_cbase_precfree(p,info)
|
||||||
implicit none
|
implicit none
|
||||||
type(mld_cbaseprc_type), intent(inout) :: p
|
type(mld_cbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
integer :: i
|
integer :: i
|
||||||
|
|
||||||
@@ -2161,7 +2161,7 @@ contains
|
|||||||
subroutine mld_nullify_cbaseprec(p)
|
subroutine mld_nullify_cbaseprec(p)
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
type(mld_cbaseprc_type), intent(inout) :: p
|
type(mld_cbaseprec_type), intent(inout) :: p
|
||||||
|
|
||||||
!!$ nullify(p%base_a)
|
!!$ nullify(p%base_a)
|
||||||
!!$ nullify(p%base_desc)
|
!!$ nullify(p%base_desc)
|
||||||
@@ -2170,7 +2170,7 @@ contains
|
|||||||
|
|
||||||
subroutine mld_zbase_precfree(p,info)
|
subroutine mld_zbase_precfree(p,info)
|
||||||
implicit none
|
implicit none
|
||||||
type(mld_zbaseprc_type), intent(inout) :: p
|
type(mld_zbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
integer :: i
|
integer :: i
|
||||||
|
|
||||||
@@ -2278,7 +2278,7 @@ contains
|
|||||||
subroutine mld_nullify_zbaseprec(p)
|
subroutine mld_nullify_zbaseprec(p)
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
type(mld_zbaseprc_type), intent(inout) :: p
|
type(mld_zbaseprec_type), intent(inout) :: p
|
||||||
|
|
||||||
!!$ nullify(p%base_a)
|
!!$ nullify(p%base_a)
|
||||||
!!$ nullify(p%base_desc)
|
!!$ nullify(p%base_desc)
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
! Arguments:
|
! Arguments:
|
||||||
! alpha - real(psb_spk_), input.
|
! alpha - real(psb_spk_), input.
|
||||||
! The scalar alpha.
|
! The scalar alpha.
|
||||||
! prec - type(mld_sbaseprc_type), input.
|
! prec - type(mld_sbaseprec_type), input.
|
||||||
! The base preconditioner data structure containing the local part
|
! The base preconditioner data structure containing the local part
|
||||||
! of the preconditioner K.
|
! of the preconditioner K.
|
||||||
! x - real(psb_spk_), dimension(:), input.
|
! x - real(psb_spk_), dimension(:), input.
|
||||||
@@ -83,7 +83,7 @@ subroutine mld_sas_aply(alpha,prec,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_sbaseprc_type), intent(in) :: prec
|
type(mld_sbaseprec_type), intent(in) :: prec
|
||||||
real(psb_spk_),intent(in) :: x(:)
|
real(psb_spk_),intent(in) :: x(:)
|
||||||
real(psb_spk_),intent(inout) :: y(:)
|
real(psb_spk_),intent(inout) :: y(:)
|
||||||
real(psb_spk_),intent(in) :: alpha,beta
|
real(psb_spk_),intent(in) :: alpha,beta
|
||||||
|
|||||||
@@ -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 the sparse matrix a.
|
! The communication descriptor of the sparse matrix a.
|
||||||
! p - type(mld_sbaseprc_type), input/output.
|
! p - type(mld_sbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the local
|
! The 'base preconditioner' data structure containing the local
|
||||||
! part of the preconditioner or solver to be built.
|
! part of the preconditioner or solver to be built.
|
||||||
! upd - character, input.
|
! upd - character, input.
|
||||||
@@ -76,7 +76,7 @@ subroutine mld_sas_bld(a,desc_a,p,upd,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) :: desc_a
|
Type(psb_desc_type), Intent(in) :: desc_a
|
||||||
type(mld_sbaseprc_type), intent(inout) :: p
|
type(mld_sbaseprec_type), intent(inout) :: p
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
! Arguments:
|
! Arguments:
|
||||||
! alpha - real(psb_spk_), input.
|
! alpha - real(psb_spk_), input.
|
||||||
! The scalar alpha.
|
! The scalar alpha.
|
||||||
! prec - type(mld_sbaseprc_type), input.
|
! prec - type(mld_sbaseprec_type), input.
|
||||||
! The base preconditioner data structure containing the local part
|
! The base preconditioner data structure containing the local part
|
||||||
! of the preconditioner K.
|
! of the preconditioner K.
|
||||||
! x - real(psb_spk_), dimension(:), input.
|
! x - real(psb_spk_), dimension(:), input.
|
||||||
@@ -87,7 +87,7 @@ subroutine mld_sbaseprec_aply(alpha,prec,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_sbaseprc_type), intent(in) :: prec
|
type(mld_sbaseprec_type), intent(in) :: prec
|
||||||
real(psb_spk_),intent(in) :: x(:)
|
real(psb_spk_),intent(in) :: x(:)
|
||||||
real(psb_spk_),intent(inout) :: y(:)
|
real(psb_spk_),intent(inout) :: y(:)
|
||||||
real(psb_spk_),intent(in) :: alpha,beta
|
real(psb_spk_),intent(in) :: alpha,beta
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ subroutine mld_sbaseprec_bld(a,desc_a,p,info,upd)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_sspmat_type), target :: a
|
type(psb_sspmat_type), target :: a
|
||||||
type(psb_desc_type), intent(in), target :: desc_a
|
type(psb_desc_type), intent(in), target :: desc_a
|
||||||
type(mld_sbaseprc_type),intent(inout) :: p
|
type(mld_sbaseprec_type),intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
character, intent(in), optional :: upd
|
character, intent(in), optional :: upd
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ subroutine mld_sbaseprec_bld(a,desc_a,p,info,upd)
|
|||||||
character(len=20) :: name, ch_err
|
character(len=20) :: name, ch_err
|
||||||
|
|
||||||
if (psb_get_errstatus() /= 0) return
|
if (psb_get_errstatus() /= 0) return
|
||||||
name = 'mld_sbaseprc_bld'
|
name = 'mld_sbaseprec_bld'
|
||||||
info=0
|
info=0
|
||||||
err=0
|
err=0
|
||||||
call psb_erractionsave(err_act)
|
call psb_erractionsave(err_act)
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
! matrix A to be preconditioned.
|
! matrix A to be preconditioned.
|
||||||
! desc_a - type(psb_desc_type), input.
|
! desc_a - type(psb_desc_type), input.
|
||||||
! The communication descriptor associated to the sparse matrix A.
|
! The communication descriptor associated to the sparse matrix A.
|
||||||
! p - type(mld_sbaseprc_type), input/output.
|
! p - type(mld_sbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the local
|
! The 'base preconditioner' data structure containing the local
|
||||||
! part of the diagonal preconditioner.
|
! part of the diagonal preconditioner.
|
||||||
! info - integer, output.
|
! info - integer, output.
|
||||||
@@ -67,7 +67,7 @@ subroutine mld_sdiag_bld(a,desc_a,p,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_sspmat_type), target :: a
|
type(psb_sspmat_type), target :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_sbaseprc_type),intent(inout) :: p
|
type(mld_sbaseprec_type),intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ subroutine mld_sfact_bld(a,p,upd,info,blck)
|
|||||||
|
|
||||||
! Arguments
|
! Arguments
|
||||||
type(psb_sspmat_type), intent(in), target :: a
|
type(psb_sspmat_type), intent(in), target :: a
|
||||||
type(mld_sbaseprc_type), intent(inout) :: p
|
type(mld_sbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
type(psb_sspmat_type), intent(in), target, optional :: blck
|
type(psb_sspmat_type), intent(in), target, optional :: blck
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
! only the 'original' local part of the distributed matrix,
|
! only the 'original' local part of the distributed matrix,
|
||||||
! i.e. the rows of the matrix held by the calling process according
|
! i.e. the rows of the matrix held by the calling process according
|
||||||
! to the initial data distribution.
|
! to the initial data distribution.
|
||||||
! p - type(mld_sbaseprc_type), input/output.
|
! p - type(mld_sbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure. In input, p%iprcparm
|
! The 'base preconditioner' data structure. In input, p%iprcparm
|
||||||
! contains information on the type of factorization to be computed.
|
! contains information on the type of factorization to be computed.
|
||||||
! In output, p%av(mld_l_pr_) and p%av(mld_u_pr_) contain the
|
! In output, p%av(mld_l_pr_) and p%av(mld_u_pr_) contain the
|
||||||
@@ -98,7 +98,7 @@ subroutine mld_silu_bld(a,p,upd,info,blck)
|
|||||||
|
|
||||||
! Arguments
|
! Arguments
|
||||||
type(psb_sspmat_type), intent(in), target :: a
|
type(psb_sspmat_type), intent(in), target :: a
|
||||||
type(mld_sbaseprc_type), intent(inout) :: p
|
type(mld_sbaseprec_type), intent(inout) :: p
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
type(psb_sspmat_type), intent(in), optional :: blck
|
type(psb_sspmat_type), intent(in), optional :: blck
|
||||||
|
|||||||
@@ -82,7 +82,7 @@
|
|||||||
! 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.
|
||||||
! precv(ilev)%prec - type(psb_sbaseprc_type)
|
! precv(ilev)%prec - type(psb_sbaseprec_type)
|
||||||
! The "base" preconditioner for the current level
|
! The "base" preconditioner for the current level
|
||||||
! precv(ilev)%ac - type(psb_sspmat_type)
|
! precv(ilev)%ac - type(psb_sspmat_type)
|
||||||
! The local part of the matrix A(ilev).
|
! The local part of the matrix A(ilev).
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
!
|
!
|
||||||
! Subroutine: mld_sprecbld
|
! Subroutine: mld_sprecbld
|
||||||
! Version: real
|
! Version: real
|
||||||
! Contains: subroutine init_baseprc_av
|
! Contains: subroutine init_baseprec_av
|
||||||
!
|
!
|
||||||
! This routine builds the preconditioner according to the requirements made by
|
! This routine builds the preconditioner according to the requirements made by
|
||||||
! the user trough the subroutines mld_precinit and mld_precset.
|
! the user trough the subroutines mld_precinit and mld_precset.
|
||||||
@@ -154,7 +154,7 @@ subroutine mld_sprecbld(a,desc_a,p,info)
|
|||||||
!
|
!
|
||||||
! Finest level first; remember to fix base_a and base_desc
|
! Finest level first; remember to fix base_a and base_desc
|
||||||
!
|
!
|
||||||
call init_baseprc_av(p%precv(1)%prec,info)
|
call init_baseprec_av(p%precv(1)%prec,info)
|
||||||
p%precv(1)%base_a => a
|
p%precv(1)%base_a => a
|
||||||
p%precv(1)%base_desc => desc_a
|
p%precv(1)%base_desc => desc_a
|
||||||
|
|
||||||
@@ -211,7 +211,7 @@ subroutine mld_sprecbld(a,desc_a,p,info)
|
|||||||
!
|
!
|
||||||
! Build the mapping between levels (i-1) and (i)
|
! Build the mapping between levels (i-1) and (i)
|
||||||
!
|
!
|
||||||
call init_baseprc_av(p%precv(i)%prec,info)
|
call init_baseprec_av(p%precv(i)%prec,info)
|
||||||
if (info == 0) call mld_aggr_bld(p%precv(i-1)%base_a,&
|
if (info == 0) call mld_aggr_bld(p%precv(i-1)%base_a,&
|
||||||
& p%precv(i-1)%base_desc, p%precv(i),info)
|
& p%precv(i-1)%base_desc, p%precv(i),info)
|
||||||
|
|
||||||
@@ -275,7 +275,7 @@ subroutine mld_sprecbld(a,desc_a,p,info)
|
|||||||
|
|
||||||
i = iszv
|
i = iszv
|
||||||
call check_coarse_lev(p%precv(i))
|
call check_coarse_lev(p%precv(i))
|
||||||
call init_baseprc_av(p%precv(i)%prec,info)
|
call init_baseprec_av(p%precv(i)%prec,info)
|
||||||
if (info == 0) call mld_aggr_bld(p%precv(i-1)%base_a,&
|
if (info == 0) call mld_aggr_bld(p%precv(i-1)%base_a,&
|
||||||
& p%precv(i-1)%base_desc, p%precv(i),info)
|
& p%precv(i-1)%base_desc, p%precv(i),info)
|
||||||
if (info /= 0) then
|
if (info /= 0) then
|
||||||
@@ -328,8 +328,8 @@ subroutine mld_sprecbld(a,desc_a,p,info)
|
|||||||
|
|
||||||
contains
|
contains
|
||||||
|
|
||||||
subroutine init_baseprc_av(p,info)
|
subroutine init_baseprec_av(p,info)
|
||||||
type(mld_sbaseprc_type), intent(inout) :: p
|
type(mld_sbaseprec_type), intent(inout) :: p
|
||||||
integer :: info
|
integer :: info
|
||||||
if (allocated(p%av)) then
|
if (allocated(p%av)) then
|
||||||
if (size(p%av) /= mld_max_avsz_) then
|
if (size(p%av) /= mld_max_avsz_) then
|
||||||
@@ -345,7 +345,7 @@ contains
|
|||||||
call psb_nullify_sp(p%av(k))
|
call psb_nullify_sp(p%av(k))
|
||||||
end do
|
end do
|
||||||
|
|
||||||
end subroutine init_baseprc_av
|
end subroutine init_baseprec_av
|
||||||
|
|
||||||
subroutine check_coarse_lev(prec)
|
subroutine check_coarse_lev(prec)
|
||||||
type(mld_s_interlev_prec_type) :: prec
|
type(mld_s_interlev_prec_type) :: prec
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
! be factorized.
|
! be factorized.
|
||||||
! desc_a - type(psb_desc_type), input.
|
! desc_a - type(psb_desc_type), input.
|
||||||
! The communication descriptor associated to a.
|
! The communication descriptor associated to a.
|
||||||
! p - type(mld_sbaseprc_type), input/output.
|
! p - type(mld_sbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the pointer,
|
! The 'base preconditioner' data structure containing the pointer,
|
||||||
! p%iprcparm(mld_slu_ptr_), to the data structure used by SuperLU
|
! p%iprcparm(mld_slu_ptr_), to the data structure used by SuperLU
|
||||||
! to store the L and U factors.
|
! to store the L and U factors.
|
||||||
@@ -79,7 +79,7 @@ subroutine mld_sslu_bld(a,desc_a,p,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_sspmat_type), intent(inout) :: a
|
type(psb_sspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_sbaseprc_type), intent(inout) :: p
|
type(mld_sbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
! matrix to be factorized.
|
! matrix to be factorized.
|
||||||
! desc_a - type(psb_desc_type), input.
|
! desc_a - type(psb_desc_type), input.
|
||||||
! The communication descriptor associated to a.
|
! The communication descriptor associated to a.
|
||||||
! p - type(mld_sbaseprc_type), input/output.
|
! p - type(mld_sbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the pointer,
|
! The 'base preconditioner' data structure containing the pointer,
|
||||||
! p%iprcparm(mld_slud_ptr_), to the data structure used by
|
! p%iprcparm(mld_slud_ptr_), to the data structure used by
|
||||||
! SuperLU_DIST to store the L and U factors.
|
! SuperLU_DIST to store the L and U factors.
|
||||||
@@ -76,7 +76,7 @@ subroutine mld_ssludist_bld(a,desc_a,p,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_sspmat_type), intent(inout) :: a
|
type(psb_sspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_sbaseprc_type), intent(inout) :: p
|
type(mld_sbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
@@ -69,7 +69,7 @@
|
|||||||
! to build an Additive Schwarz base preconditioner with overlap
|
! to build an Additive Schwarz base preconditioner with overlap
|
||||||
! greater than 0.If the overlap is 0, then blck does not contain
|
! greater than 0.If the overlap is 0, then blck does not contain
|
||||||
! any row.
|
! any row.
|
||||||
! p - type(mld_sbaseprc_type), input/output.
|
! p - type(mld_sbaseprec_type), input/output.
|
||||||
! The base preconditioner data structure containing the local
|
! The base preconditioner data structure containing the local
|
||||||
! part of the base preconditioner to be built. In input it
|
! part of the base preconditioner to be built. In input it
|
||||||
! contains information on the type of reordering to be applied
|
! contains information on the type of reordering to be applied
|
||||||
@@ -91,7 +91,7 @@ subroutine mld_ssp_renum(a,blck,p,atmp,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_sspmat_type), intent(in) :: a,blck
|
type(psb_sspmat_type), intent(in) :: a,blck
|
||||||
type(psb_sspmat_type), intent(out) :: atmp
|
type(psb_sspmat_type), intent(out) :: atmp
|
||||||
type(mld_sbaseprc_type), intent(inout) :: p
|
type(mld_sbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ subroutine mld_ssub_aply(alpha,prec,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_sbaseprc_type), intent(in) :: prec
|
type(mld_sbaseprec_type), intent(in) :: prec
|
||||||
real(psb_spk_),intent(in) :: x(:)
|
real(psb_spk_),intent(in) :: x(:)
|
||||||
real(psb_spk_),intent(inout) :: y(:)
|
real(psb_spk_),intent(inout) :: y(:)
|
||||||
real(psb_spk_),intent(in) :: alpha,beta
|
real(psb_spk_),intent(in) :: alpha,beta
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ subroutine mld_ssub_solve(alpha,prec,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_sbaseprc_type), intent(in) :: prec
|
type(mld_sbaseprec_type), intent(in) :: prec
|
||||||
real(psb_spk_),intent(in) :: x(:)
|
real(psb_spk_),intent(in) :: x(:)
|
||||||
real(psb_spk_),intent(inout) :: y(:)
|
real(psb_spk_),intent(inout) :: y(:)
|
||||||
real(psb_spk_),intent(in) :: alpha,beta
|
real(psb_spk_),intent(in) :: alpha,beta
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
! C code performing the factorization.
|
! C code performing the factorization.
|
||||||
! desc_a - type(psb_desc_type), input.
|
! desc_a - type(psb_desc_type), input.
|
||||||
! The communication descriptor associated to a.
|
! The communication descriptor associated to a.
|
||||||
! p - type(mld_sbaseprc_type), input/output.
|
! p - type(mld_sbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the pointers,
|
! The 'base preconditioner' data structure containing the pointers,
|
||||||
! p%iprcparm(mld_umf_symptr_) and p%iprcparm(mld_umf_numptr_),
|
! p%iprcparm(mld_umf_symptr_) and p%iprcparm(mld_umf_numptr_),
|
||||||
! to the data structures used by UMFPACK for computing the LU
|
! to the data structures used by UMFPACK for computing the LU
|
||||||
@@ -85,7 +85,7 @@ subroutine mld_sumf_bld(a,desc_a,p,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_sspmat_type), intent(inout) :: a
|
type(psb_sspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_sbaseprc_type), intent(inout) :: p
|
type(mld_sbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
! Arguments:
|
! Arguments:
|
||||||
! alpha - real(psb_dpk_), input.
|
! alpha - real(psb_dpk_), input.
|
||||||
! The scalar alpha.
|
! The scalar alpha.
|
||||||
! prec - type(mld_dbaseprc_type), input.
|
! prec - type(mld_dbaseprec_type), input.
|
||||||
! The base preconditioner data structure containing the local part
|
! The base preconditioner data structure containing the local part
|
||||||
! of the preconditioner K.
|
! of the preconditioner K.
|
||||||
! x - real(psb_dpk_), dimension(:), input.
|
! x - real(psb_dpk_), dimension(:), input.
|
||||||
@@ -83,7 +83,7 @@ subroutine mld_zas_aply(alpha,prec,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_zbaseprc_type), intent(in) :: prec
|
type(mld_zbaseprec_type), intent(in) :: prec
|
||||||
complex(psb_dpk_),intent(in) :: x(:)
|
complex(psb_dpk_),intent(in) :: x(:)
|
||||||
complex(psb_dpk_),intent(inout) :: y(:)
|
complex(psb_dpk_),intent(inout) :: y(:)
|
||||||
complex(psb_dpk_),intent(in) :: alpha,beta
|
complex(psb_dpk_),intent(in) :: alpha,beta
|
||||||
|
|||||||
@@ -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 the sparse matrix a.
|
! The communication descriptor of the sparse matrix a.
|
||||||
! p - type(mld_zbaseprc_type), input/output.
|
! p - type(mld_zbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the local
|
! The 'base preconditioner' data structure containing the local
|
||||||
! part of the preconditioner or solver to be built.
|
! part of the preconditioner or solver to be built.
|
||||||
! upd - character, input.
|
! upd - character, input.
|
||||||
@@ -76,7 +76,7 @@ subroutine mld_zas_bld(a,desc_a,p,upd,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) :: desc_a
|
Type(psb_desc_type), Intent(in) :: desc_a
|
||||||
type(mld_zbaseprc_type), intent(inout) :: p
|
type(mld_zbaseprec_type), intent(inout) :: p
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
! Arguments:
|
! Arguments:
|
||||||
! alpha - complex(psb_dpk_), input.
|
! alpha - complex(psb_dpk_), input.
|
||||||
! The scalar alpha.
|
! The scalar alpha.
|
||||||
! prec - type(mld_zbaseprc_type), input.
|
! prec - type(mld_zbaseprec_type), input.
|
||||||
! The base preconditioner data structure containing the local part
|
! The base preconditioner data structure containing the local part
|
||||||
! of the preconditioner K.
|
! of the preconditioner K.
|
||||||
! x - complex(psb_dpk_), dimension(:), input.
|
! x - complex(psb_dpk_), dimension(:), input.
|
||||||
@@ -87,7 +87,7 @@ subroutine mld_zbaseprec_aply(alpha,prec,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_zbaseprc_type), intent(in) :: prec
|
type(mld_zbaseprec_type), intent(in) :: prec
|
||||||
complex(psb_dpk_),intent(in) :: x(:)
|
complex(psb_dpk_),intent(in) :: x(:)
|
||||||
complex(psb_dpk_),intent(inout) :: y(:)
|
complex(psb_dpk_),intent(inout) :: y(:)
|
||||||
complex(psb_dpk_),intent(in) :: alpha,beta
|
complex(psb_dpk_),intent(in) :: alpha,beta
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ subroutine mld_zbaseprec_bld(a,desc_a,p,info,upd)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_zspmat_type), target :: a
|
type(psb_zspmat_type), target :: a
|
||||||
type(psb_desc_type), intent(in), target :: desc_a
|
type(psb_desc_type), intent(in), target :: desc_a
|
||||||
type(mld_zbaseprc_type),intent(inout) :: p
|
type(mld_zbaseprec_type),intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
character, intent(in), optional :: upd
|
character, intent(in), optional :: upd
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
! matrix A to be preconditioned.
|
! matrix A to be preconditioned.
|
||||||
! desc_a - type(psb_desc_type), input.
|
! desc_a - type(psb_desc_type), input.
|
||||||
! The communication descriptor associated to the sparse matrix A.
|
! The communication descriptor associated to the sparse matrix A.
|
||||||
! p - type(mld_zbaseprc_type), input/output.
|
! p - type(mld_zbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the local
|
! The 'base preconditioner' data structure containing the local
|
||||||
! part of the diagonal preconditioner.
|
! part of the diagonal preconditioner.
|
||||||
! info - integer, output.
|
! info - integer, output.
|
||||||
@@ -67,7 +67,7 @@ subroutine mld_zdiag_bld(a,desc_a,p,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_zspmat_type), target :: a
|
type(psb_zspmat_type), target :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_zbaseprc_type),intent(inout) :: p
|
type(mld_zbaseprec_type),intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ subroutine mld_zfact_bld(a,p,upd,info,blck)
|
|||||||
|
|
||||||
! Arguments
|
! Arguments
|
||||||
type(psb_zspmat_type), intent(in), target :: a
|
type(psb_zspmat_type), intent(in), target :: a
|
||||||
type(mld_zbaseprc_type), intent(inout) :: p
|
type(mld_zbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
type(psb_zspmat_type), intent(in), target, optional :: blck
|
type(psb_zspmat_type), intent(in), target, optional :: blck
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
! only the 'original' local part of the distributed matrix,
|
! only the 'original' local part of the distributed matrix,
|
||||||
! i.e. the rows of the matrix held by the calling process according
|
! i.e. the rows of the matrix held by the calling process according
|
||||||
! to the initial data distribution.
|
! to the initial data distribution.
|
||||||
! p - type(mld_zbaseprc_type), input/output.
|
! p - type(mld_zbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure. In input, p%iprcparm
|
! The 'base preconditioner' data structure. In input, p%iprcparm
|
||||||
! contains information on the type of factorization to be computed.
|
! contains information on the type of factorization to be computed.
|
||||||
! In output, p%av(mld_l_pr_) and p%av(mld_u_pr_) contain the
|
! In output, p%av(mld_l_pr_) and p%av(mld_u_pr_) contain the
|
||||||
@@ -98,7 +98,7 @@ subroutine mld_zilu_bld(a,p,upd,info,blck)
|
|||||||
|
|
||||||
! Arguments
|
! Arguments
|
||||||
type(psb_zspmat_type), intent(in), target :: a
|
type(psb_zspmat_type), intent(in), target :: a
|
||||||
type(mld_zbaseprc_type), intent(inout) :: p
|
type(mld_zbaseprec_type), intent(inout) :: p
|
||||||
character, intent(in) :: upd
|
character, intent(in) :: upd
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
type(psb_zspmat_type), intent(in), optional :: blck
|
type(psb_zspmat_type), intent(in), optional :: blck
|
||||||
|
|||||||
@@ -82,7 +82,7 @@
|
|||||||
! 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.
|
||||||
! precv(ilev)%prec - type(psb_zbaseprc_type)
|
! precv(ilev)%prec - type(psb_zbaseprec_type)
|
||||||
! The "base" preconditioner for the current level
|
! The "base" preconditioner for the current level
|
||||||
! precv(ilev)%ac - type(psb_zspmat_type)
|
! precv(ilev)%ac - type(psb_zspmat_type)
|
||||||
! The local part of the matrix A(ilev).
|
! The local part of the matrix A(ilev).
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
!
|
!
|
||||||
! Subroutine: mld_zprecbld
|
! Subroutine: mld_zprecbld
|
||||||
! Version: complex
|
! Version: complex
|
||||||
! Contains: subroutine init_baseprc_av
|
! Contains: subroutine init_baseprec_av
|
||||||
!
|
!
|
||||||
! This routine builds the preconditioner according to the requirements made by
|
! This routine builds the preconditioner according to the requirements made by
|
||||||
! the user trough the subroutines mld_precinit and mld_precset.
|
! the user trough the subroutines mld_precinit and mld_precset.
|
||||||
@@ -154,7 +154,7 @@ subroutine mld_zprecbld(a,desc_a,p,info)
|
|||||||
!
|
!
|
||||||
! Finest level first; remember to fix base_a and base_desc
|
! Finest level first; remember to fix base_a and base_desc
|
||||||
!
|
!
|
||||||
call init_baseprc_av(p%precv(1)%prec,info)
|
call init_baseprec_av(p%precv(1)%prec,info)
|
||||||
p%precv(1)%base_a => a
|
p%precv(1)%base_a => a
|
||||||
p%precv(1)%base_desc => desc_a
|
p%precv(1)%base_desc => desc_a
|
||||||
|
|
||||||
@@ -211,7 +211,7 @@ subroutine mld_zprecbld(a,desc_a,p,info)
|
|||||||
!
|
!
|
||||||
! Build the mapping between levels (i-1) and (i)
|
! Build the mapping between levels (i-1) and (i)
|
||||||
!
|
!
|
||||||
call init_baseprc_av(p%precv(i)%prec,info)
|
call init_baseprec_av(p%precv(i)%prec,info)
|
||||||
if (info == 0) call mld_aggr_bld(p%precv(i-1)%base_a,&
|
if (info == 0) call mld_aggr_bld(p%precv(i-1)%base_a,&
|
||||||
& p%precv(i-1)%base_desc, p%precv(i),info)
|
& p%precv(i-1)%base_desc, p%precv(i),info)
|
||||||
|
|
||||||
@@ -275,7 +275,7 @@ subroutine mld_zprecbld(a,desc_a,p,info)
|
|||||||
|
|
||||||
i = iszv
|
i = iszv
|
||||||
call check_coarse_lev(p%precv(i))
|
call check_coarse_lev(p%precv(i))
|
||||||
call init_baseprc_av(p%precv(i)%prec,info)
|
call init_baseprec_av(p%precv(i)%prec,info)
|
||||||
if (info == 0) call mld_aggr_bld(p%precv(i-1)%base_a,&
|
if (info == 0) call mld_aggr_bld(p%precv(i-1)%base_a,&
|
||||||
& p%precv(i-1)%base_desc, p%precv(i),info)
|
& p%precv(i-1)%base_desc, p%precv(i),info)
|
||||||
if (info /= 0) then
|
if (info /= 0) then
|
||||||
@@ -328,8 +328,8 @@ subroutine mld_zprecbld(a,desc_a,p,info)
|
|||||||
|
|
||||||
contains
|
contains
|
||||||
|
|
||||||
subroutine init_baseprc_av(p,info)
|
subroutine init_baseprec_av(p,info)
|
||||||
type(mld_zbaseprc_type), intent(inout) :: p
|
type(mld_zbaseprec_type), intent(inout) :: p
|
||||||
integer :: info
|
integer :: info
|
||||||
if (allocated(p%av)) then
|
if (allocated(p%av)) then
|
||||||
if (size(p%av) /= mld_max_avsz_) then
|
if (size(p%av) /= mld_max_avsz_) then
|
||||||
@@ -345,7 +345,7 @@ contains
|
|||||||
call psb_nullify_sp(p%av(k))
|
call psb_nullify_sp(p%av(k))
|
||||||
end do
|
end do
|
||||||
|
|
||||||
end subroutine init_baseprc_av
|
end subroutine init_baseprec_av
|
||||||
|
|
||||||
subroutine check_coarse_lev(prec)
|
subroutine check_coarse_lev(prec)
|
||||||
type(mld_z_interlev_prec_type) :: prec
|
type(mld_z_interlev_prec_type) :: prec
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
! be factorized.
|
! be factorized.
|
||||||
! desc_a - type(psb_desc_type), input.
|
! desc_a - type(psb_desc_type), input.
|
||||||
! The communication descriptor associated to a.
|
! The communication descriptor associated to a.
|
||||||
! p - type(mld_zbaseprc_type), input/output.
|
! p - type(mld_zbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the pointer,
|
! The 'base preconditioner' data structure containing the pointer,
|
||||||
! p%iprcparm(mld_slu_ptr_), to the data structure used by SuperLU
|
! p%iprcparm(mld_slu_ptr_), to the data structure used by SuperLU
|
||||||
! to store the L and U factors.
|
! to store the L and U factors.
|
||||||
@@ -79,7 +79,7 @@ subroutine mld_zslu_bld(a,desc_a,p,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_zspmat_type), intent(inout) :: a
|
type(psb_zspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_zbaseprc_type), intent(inout) :: p
|
type(mld_zbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
! matrix to be factorized.
|
! matrix to be factorized.
|
||||||
! desc_a - type(psb_desc_type), input.
|
! desc_a - type(psb_desc_type), input.
|
||||||
! The communication descriptor associated to a.
|
! The communication descriptor associated to a.
|
||||||
! p - type(mld_zbaseprc_type), input/output.
|
! p - type(mld_zbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the pointer,
|
! The 'base preconditioner' data structure containing the pointer,
|
||||||
! p%iprcparm(mld_slud_ptr_), to the data structure used by
|
! p%iprcparm(mld_slud_ptr_), to the data structure used by
|
||||||
! SuperLU_DIST to store the L and U factors.
|
! SuperLU_DIST to store the L and U factors.
|
||||||
@@ -76,7 +76,7 @@ subroutine mld_zsludist_bld(a,desc_a,p,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_zspmat_type), intent(inout) :: a
|
type(psb_zspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_zbaseprc_type), intent(inout) :: p
|
type(mld_zbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
@@ -69,7 +69,7 @@
|
|||||||
! to build an Additive Schwarz base preconditioner with overlap
|
! to build an Additive Schwarz base preconditioner with overlap
|
||||||
! greater than 0.If the overlap is 0, then blck does not contain
|
! greater than 0.If the overlap is 0, then blck does not contain
|
||||||
! any row.
|
! any row.
|
||||||
! p - type(mld_zbaseprc_type), input/output.
|
! p - type(mld_zbaseprec_type), input/output.
|
||||||
! The base preconditioner data structure containing the local
|
! The base preconditioner data structure containing the local
|
||||||
! part of the base preconditioner to be built. In input it
|
! part of the base preconditioner to be built. In input it
|
||||||
! contains information on the type of reordering to be applied
|
! contains information on the type of reordering to be applied
|
||||||
@@ -91,7 +91,7 @@ subroutine mld_zsp_renum(a,blck,p,atmp,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_zspmat_type), intent(in) :: a,blck
|
type(psb_zspmat_type), intent(in) :: a,blck
|
||||||
type(psb_zspmat_type), intent(out) :: atmp
|
type(psb_zspmat_type), intent(out) :: atmp
|
||||||
type(mld_zbaseprc_type), intent(inout) :: p
|
type(mld_zbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ subroutine mld_zsub_aply(alpha,prec,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_zbaseprc_type), intent(in) :: prec
|
type(mld_zbaseprec_type), intent(in) :: prec
|
||||||
complex(psb_dpk_),intent(in) :: x(:)
|
complex(psb_dpk_),intent(in) :: x(:)
|
||||||
complex(psb_dpk_),intent(inout) :: y(:)
|
complex(psb_dpk_),intent(inout) :: y(:)
|
||||||
complex(psb_dpk_),intent(in) :: alpha,beta
|
complex(psb_dpk_),intent(in) :: alpha,beta
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ subroutine mld_zsub_solve(alpha,prec,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_zbaseprc_type), intent(in) :: prec
|
type(mld_zbaseprec_type), intent(in) :: prec
|
||||||
complex(psb_dpk_),intent(in) :: x(:)
|
complex(psb_dpk_),intent(in) :: x(:)
|
||||||
complex(psb_dpk_),intent(inout) :: y(:)
|
complex(psb_dpk_),intent(inout) :: y(:)
|
||||||
complex(psb_dpk_),intent(in) :: alpha,beta
|
complex(psb_dpk_),intent(in) :: alpha,beta
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
! C code performing the factorization.
|
! C code performing the factorization.
|
||||||
! desc_a - type(psb_desc_type), input.
|
! desc_a - type(psb_desc_type), input.
|
||||||
! The communication descriptor associated to a.
|
! The communication descriptor associated to a.
|
||||||
! p - type(mld_zbaseprc_type), input/output.
|
! p - type(mld_zbaseprec_type), input/output.
|
||||||
! The 'base preconditioner' data structure containing the pointers,
|
! The 'base preconditioner' data structure containing the pointers,
|
||||||
! p%iprcparm(mld_umf_symptr_) and p%iprcparm(mld_umf_numptr_),
|
! p%iprcparm(mld_umf_symptr_) and p%iprcparm(mld_umf_numptr_),
|
||||||
! to the data structures used by UMFPACK for computing the LU
|
! to the data structures used by UMFPACK for computing the LU
|
||||||
@@ -85,7 +85,7 @@ subroutine mld_zumf_bld(a,desc_a,p,info)
|
|||||||
! Arguments
|
! Arguments
|
||||||
type(psb_dspmat_type), intent(inout) :: a
|
type(psb_dspmat_type), intent(inout) :: a
|
||||||
type(psb_desc_type), intent(in) :: desc_a
|
type(psb_desc_type), intent(in) :: desc_a
|
||||||
type(mld_zbaseprc_type), intent(inout) :: p
|
type(mld_zbaseprec_type), intent(inout) :: p
|
||||||
integer, intent(out) :: info
|
integer, intent(out) :: info
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|||||||
Reference in New Issue
Block a user