Make DESC_A inout in solver%bld.

stopcriterion
Salvatore Filippone 6 years ago
parent b0159a9257
commit e318e23310

@ -42,7 +42,7 @@ subroutine mld_c_base_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
Implicit None Implicit None
! 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(inout) :: desc_a
class(mld_c_base_solver_type), intent(inout) :: sv class(mld_c_base_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_cspmat_type), intent(in), target, optional :: b type(psb_cspmat_type), intent(in), target, optional :: b

@ -44,7 +44,7 @@ subroutine mld_c_diag_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! 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(inout) :: desc_a
class(mld_c_diag_solver_type), intent(inout) :: sv class(mld_c_diag_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_cspmat_type), intent(in), target, optional :: b type(psb_cspmat_type), intent(in), target, optional :: b

@ -44,7 +44,7 @@ subroutine mld_c_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! 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(inout) :: desc_a
class(mld_c_gs_solver_type), intent(inout) :: sv class(mld_c_gs_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_cspmat_type), intent(in), target, optional :: b type(psb_cspmat_type), intent(in), target, optional :: b

@ -44,7 +44,7 @@ subroutine mld_c_ilu_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! 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(inout) :: desc_a
class(mld_c_ilu_solver_type), intent(inout) :: sv class(mld_c_ilu_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_cspmat_type), intent(in), target, optional :: b type(psb_cspmat_type), intent(in), target, optional :: b

@ -48,7 +48,7 @@
! Arguments ! Arguments
type(psb_cspmat_type) :: c type(psb_cspmat_type) :: c
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(inout) :: desc_a
class(mld_c_mumps_solver_type), intent(inout) :: sv class(mld_c_mumps_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_cspmat_type), intent(in), target, optional :: b type(psb_cspmat_type), intent(in), target, optional :: b

@ -42,7 +42,7 @@ subroutine mld_d_base_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
Implicit None Implicit None
! 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(inout) :: desc_a
class(mld_d_base_solver_type), intent(inout) :: sv class(mld_d_base_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_dspmat_type), intent(in), target, optional :: b type(psb_dspmat_type), intent(in), target, optional :: b

@ -44,7 +44,7 @@ subroutine mld_d_diag_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! 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(inout) :: desc_a
class(mld_d_diag_solver_type), intent(inout) :: sv class(mld_d_diag_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_dspmat_type), intent(in), target, optional :: b type(psb_dspmat_type), intent(in), target, optional :: b

@ -44,7 +44,7 @@ subroutine mld_d_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! 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(inout) :: desc_a
class(mld_d_gs_solver_type), intent(inout) :: sv class(mld_d_gs_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_dspmat_type), intent(in), target, optional :: b type(psb_dspmat_type), intent(in), target, optional :: b

@ -44,7 +44,7 @@ subroutine mld_d_ilu_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! 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(inout) :: desc_a
class(mld_d_ilu_solver_type), intent(inout) :: sv class(mld_d_ilu_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_dspmat_type), intent(in), target, optional :: b type(psb_dspmat_type), intent(in), target, optional :: b

@ -48,7 +48,7 @@
! Arguments ! Arguments
type(psb_dspmat_type) :: c type(psb_dspmat_type) :: c
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(inout) :: desc_a
class(mld_d_mumps_solver_type), intent(inout) :: sv class(mld_d_mumps_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_dspmat_type), intent(in), target, optional :: b type(psb_dspmat_type), intent(in), target, optional :: b

@ -42,7 +42,7 @@ subroutine mld_s_base_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
Implicit None Implicit None
! 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(inout) :: desc_a
class(mld_s_base_solver_type), intent(inout) :: sv class(mld_s_base_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_sspmat_type), intent(in), target, optional :: b type(psb_sspmat_type), intent(in), target, optional :: b

@ -44,7 +44,7 @@ subroutine mld_s_diag_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! 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(inout) :: desc_a
class(mld_s_diag_solver_type), intent(inout) :: sv class(mld_s_diag_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_sspmat_type), intent(in), target, optional :: b type(psb_sspmat_type), intent(in), target, optional :: b

@ -44,7 +44,7 @@ subroutine mld_s_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! 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(inout) :: desc_a
class(mld_s_gs_solver_type), intent(inout) :: sv class(mld_s_gs_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_sspmat_type), intent(in), target, optional :: b type(psb_sspmat_type), intent(in), target, optional :: b

@ -44,7 +44,7 @@ subroutine mld_s_ilu_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! 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(inout) :: desc_a
class(mld_s_ilu_solver_type), intent(inout) :: sv class(mld_s_ilu_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_sspmat_type), intent(in), target, optional :: b type(psb_sspmat_type), intent(in), target, optional :: b

@ -48,7 +48,7 @@
! Arguments ! Arguments
type(psb_sspmat_type) :: c type(psb_sspmat_type) :: c
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(inout) :: desc_a
class(mld_s_mumps_solver_type), intent(inout) :: sv class(mld_s_mumps_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_sspmat_type), intent(in), target, optional :: b type(psb_sspmat_type), intent(in), target, optional :: b

@ -42,7 +42,7 @@ subroutine mld_z_base_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
Implicit None Implicit None
! 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(inout) :: desc_a
class(mld_z_base_solver_type), intent(inout) :: sv class(mld_z_base_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_zspmat_type), intent(in), target, optional :: b type(psb_zspmat_type), intent(in), target, optional :: b

@ -44,7 +44,7 @@ subroutine mld_z_diag_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! 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(inout) :: desc_a
class(mld_z_diag_solver_type), intent(inout) :: sv class(mld_z_diag_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_zspmat_type), intent(in), target, optional :: b type(psb_zspmat_type), intent(in), target, optional :: b

@ -44,7 +44,7 @@ subroutine mld_z_gs_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! 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(inout) :: desc_a
class(mld_z_gs_solver_type), intent(inout) :: sv class(mld_z_gs_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_zspmat_type), intent(in), target, optional :: b type(psb_zspmat_type), intent(in), target, optional :: b

@ -44,7 +44,7 @@ subroutine mld_z_ilu_solver_bld(a,desc_a,sv,info,b,amold,vmold,imold)
! 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(inout) :: desc_a
class(mld_z_ilu_solver_type), intent(inout) :: sv class(mld_z_ilu_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_zspmat_type), intent(in), target, optional :: b type(psb_zspmat_type), intent(in), target, optional :: b

@ -48,7 +48,7 @@
! Arguments ! Arguments
type(psb_zspmat_type) :: c type(psb_zspmat_type) :: c
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(inout) :: desc_a
class(mld_z_mumps_solver_type), intent(inout) :: sv class(mld_z_mumps_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_zspmat_type), intent(in), target, optional :: b type(psb_zspmat_type), intent(in), target, optional :: b

@ -168,7 +168,7 @@ module mld_c_base_solver_mod
! 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(inout) :: desc_a
class(mld_c_base_solver_type), intent(inout) :: sv class(mld_c_base_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_cspmat_type), intent(in), target, optional :: b type(psb_cspmat_type), intent(in), target, optional :: b

@ -119,7 +119,7 @@ module mld_c_diag_solver
& psb_c_vect_type, psb_c_base_vect_type, psb_spk_, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, &
& mld_c_diag_solver_type, psb_ipk_, psb_i_base_vect_type & mld_c_diag_solver_type, psb_ipk_, psb_i_base_vect_type
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(inout) :: desc_a
class(mld_c_diag_solver_type), intent(inout) :: sv class(mld_c_diag_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_cspmat_type), intent(in), target, optional :: b type(psb_cspmat_type), intent(in), target, optional :: b

@ -179,7 +179,7 @@ module mld_c_gs_solver
& psb_ipk_, psb_i_base_vect_type & psb_ipk_, psb_i_base_vect_type
implicit none implicit none
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(inout) :: desc_a
class(mld_c_gs_solver_type), intent(inout) :: sv class(mld_c_gs_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_cspmat_type), intent(in), target, optional :: b type(psb_cspmat_type), intent(in), target, optional :: b
@ -193,7 +193,7 @@ module mld_c_gs_solver
& psb_ipk_, psb_i_base_vect_type & psb_ipk_, psb_i_base_vect_type
implicit none implicit none
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(inout) :: desc_a
class(mld_c_bwgs_solver_type), intent(inout) :: sv class(mld_c_bwgs_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_cspmat_type), intent(in), target, optional :: b type(psb_cspmat_type), intent(in), target, optional :: b

@ -124,7 +124,7 @@ contains
! 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(inout) :: desc_a
class(mld_c_id_solver_type), intent(inout) :: sv class(mld_c_id_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_cspmat_type), intent(in), target, optional :: b type(psb_cspmat_type), intent(in), target, optional :: b

@ -143,7 +143,7 @@ module mld_c_ilu_solver
& psb_ipk_, psb_i_base_vect_type & psb_ipk_, psb_i_base_vect_type
implicit none implicit none
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(inout) :: desc_a
class(mld_c_ilu_solver_type), intent(inout) :: sv class(mld_c_ilu_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_cspmat_type), intent(in), target, optional :: b type(psb_cspmat_type), intent(in), target, optional :: b

@ -161,7 +161,7 @@ module mld_c_mumps_solver
! 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(inout) :: desc_a
class(mld_c_mumps_solver_type), intent(inout) :: sv class(mld_c_mumps_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_cspmat_type), intent(in), target, optional :: b type(psb_cspmat_type), intent(in), target, optional :: b

@ -118,6 +118,7 @@ module mld_c_prec_type
procedure, pass(prec) :: psb_c_apply2v => mld_c_apply2v procedure, pass(prec) :: psb_c_apply2v => mld_c_apply2v
procedure, pass(prec) :: psb_c_apply1v => mld_c_apply1v procedure, pass(prec) :: psb_c_apply1v => mld_c_apply1v
procedure, pass(prec) :: dump => mld_c_dump procedure, pass(prec) :: dump => mld_c_dump
procedure, pass(prec) :: cnv => mld_c_cnv
procedure, pass(prec) :: clone => mld_c_clone procedure, pass(prec) :: clone => mld_c_clone
procedure, pass(prec) :: free => mld_c_prec_free procedure, pass(prec) :: free => mld_c_prec_free
procedure, pass(prec) :: allocate_wrk => mld_c_allocate_wrk procedure, pass(prec) :: allocate_wrk => mld_c_allocate_wrk
@ -754,6 +755,26 @@ contains
end subroutine mld_c_dump end subroutine mld_c_dump
subroutine mld_c_cnv(prec,info,amold,vmold,imold)
implicit none
class(mld_cprec_type), intent(inout) :: prec
integer(psb_ipk_), intent(out) :: info
class(psb_c_base_sparse_mat), intent(in), optional :: amold
class(psb_c_base_vect_type), intent(in), optional :: vmold
class(psb_i_base_vect_type), intent(in), optional :: imold
integer(psb_ipk_) :: i
info = psb_success_
if (allocated(prec%precv)) then
do i=1,size(prec%precv)
if (info == psb_success_ ) &
& call prec%precv(i)%cnv(info,amold=amold,vmold=vmold,imold=imold)
end do
end if
end subroutine mld_c_cnv
subroutine mld_c_clone(prec,precout,info) subroutine mld_c_clone(prec,precout,info)

@ -258,7 +258,7 @@ contains
! 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(inout) :: desc_a
class(mld_c_slu_solver_type), intent(inout) :: sv class(mld_c_slu_solver_type), intent(inout) :: sv
integer, intent(out) :: info integer, intent(out) :: info
type(psb_cspmat_type), intent(in), target, optional :: b type(psb_cspmat_type), intent(in), target, optional :: b

@ -168,7 +168,7 @@ module mld_d_base_solver_mod
! 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(inout) :: desc_a
class(mld_d_base_solver_type), intent(inout) :: sv class(mld_d_base_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_dspmat_type), intent(in), target, optional :: b type(psb_dspmat_type), intent(in), target, optional :: b

@ -119,7 +119,7 @@ module mld_d_diag_solver
& psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, &
& mld_d_diag_solver_type, psb_ipk_, psb_i_base_vect_type & mld_d_diag_solver_type, psb_ipk_, psb_i_base_vect_type
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(inout) :: desc_a
class(mld_d_diag_solver_type), intent(inout) :: sv class(mld_d_diag_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_dspmat_type), intent(in), target, optional :: b type(psb_dspmat_type), intent(in), target, optional :: b

@ -179,7 +179,7 @@ module mld_d_gs_solver
& psb_ipk_, psb_i_base_vect_type & psb_ipk_, psb_i_base_vect_type
implicit none implicit none
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(inout) :: desc_a
class(mld_d_gs_solver_type), intent(inout) :: sv class(mld_d_gs_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_dspmat_type), intent(in), target, optional :: b type(psb_dspmat_type), intent(in), target, optional :: b
@ -193,7 +193,7 @@ module mld_d_gs_solver
& psb_ipk_, psb_i_base_vect_type & psb_ipk_, psb_i_base_vect_type
implicit none implicit none
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(inout) :: desc_a
class(mld_d_bwgs_solver_type), intent(inout) :: sv class(mld_d_bwgs_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_dspmat_type), intent(in), target, optional :: b type(psb_dspmat_type), intent(in), target, optional :: b

@ -124,7 +124,7 @@ contains
! 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(inout) :: desc_a
class(mld_d_id_solver_type), intent(inout) :: sv class(mld_d_id_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_dspmat_type), intent(in), target, optional :: b type(psb_dspmat_type), intent(in), target, optional :: b

@ -143,7 +143,7 @@ module mld_d_ilu_solver
& psb_ipk_, psb_i_base_vect_type & psb_ipk_, psb_i_base_vect_type
implicit none implicit none
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(inout) :: desc_a
class(mld_d_ilu_solver_type), intent(inout) :: sv class(mld_d_ilu_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_dspmat_type), intent(in), target, optional :: b type(psb_dspmat_type), intent(in), target, optional :: b

@ -161,7 +161,7 @@ module mld_d_mumps_solver
! 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(inout) :: desc_a
class(mld_d_mumps_solver_type), intent(inout) :: sv class(mld_d_mumps_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_dspmat_type), intent(in), target, optional :: b type(psb_dspmat_type), intent(in), target, optional :: b

@ -118,6 +118,7 @@ module mld_d_prec_type
procedure, pass(prec) :: psb_d_apply2v => mld_d_apply2v procedure, pass(prec) :: psb_d_apply2v => mld_d_apply2v
procedure, pass(prec) :: psb_d_apply1v => mld_d_apply1v procedure, pass(prec) :: psb_d_apply1v => mld_d_apply1v
procedure, pass(prec) :: dump => mld_d_dump procedure, pass(prec) :: dump => mld_d_dump
procedure, pass(prec) :: cnv => mld_d_cnv
procedure, pass(prec) :: clone => mld_d_clone procedure, pass(prec) :: clone => mld_d_clone
procedure, pass(prec) :: free => mld_d_prec_free procedure, pass(prec) :: free => mld_d_prec_free
procedure, pass(prec) :: allocate_wrk => mld_d_allocate_wrk procedure, pass(prec) :: allocate_wrk => mld_d_allocate_wrk
@ -754,6 +755,26 @@ contains
end subroutine mld_d_dump end subroutine mld_d_dump
subroutine mld_d_cnv(prec,info,amold,vmold,imold)
implicit none
class(mld_dprec_type), intent(inout) :: prec
integer(psb_ipk_), intent(out) :: info
class(psb_d_base_sparse_mat), intent(in), optional :: amold
class(psb_d_base_vect_type), intent(in), optional :: vmold
class(psb_i_base_vect_type), intent(in), optional :: imold
integer(psb_ipk_) :: i
info = psb_success_
if (allocated(prec%precv)) then
do i=1,size(prec%precv)
if (info == psb_success_ ) &
& call prec%precv(i)%cnv(info,amold=amold,vmold=vmold,imold=imold)
end do
end if
end subroutine mld_d_cnv
subroutine mld_d_clone(prec,precout,info) subroutine mld_d_clone(prec,precout,info)

@ -258,7 +258,7 @@ contains
! 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(inout) :: desc_a
class(mld_d_slu_solver_type), intent(inout) :: sv class(mld_d_slu_solver_type), intent(inout) :: sv
integer, intent(out) :: info integer, intent(out) :: info
type(psb_dspmat_type), intent(in), target, optional :: b type(psb_dspmat_type), intent(in), target, optional :: b

@ -260,7 +260,7 @@ contains
! 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(inout) :: desc_a
class(mld_d_sludist_solver_type), intent(inout) :: sv class(mld_d_sludist_solver_type), intent(inout) :: sv
integer, intent(out) :: info integer, intent(out) :: info
type(psb_dspmat_type), intent(in), target, optional :: b type(psb_dspmat_type), intent(in), target, optional :: b

@ -262,7 +262,7 @@ contains
! 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(inout) :: desc_a
class(mld_d_umf_solver_type), intent(inout) :: sv class(mld_d_umf_solver_type), intent(inout) :: sv
integer, intent(out) :: info integer, intent(out) :: info
type(psb_dspmat_type), intent(in), target, optional :: b type(psb_dspmat_type), intent(in), target, optional :: b

@ -168,7 +168,7 @@ module mld_s_base_solver_mod
! 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(inout) :: desc_a
class(mld_s_base_solver_type), intent(inout) :: sv class(mld_s_base_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_sspmat_type), intent(in), target, optional :: b type(psb_sspmat_type), intent(in), target, optional :: b

@ -119,7 +119,7 @@ module mld_s_diag_solver
& psb_s_vect_type, psb_s_base_vect_type, psb_spk_, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, &
& mld_s_diag_solver_type, psb_ipk_, psb_i_base_vect_type & mld_s_diag_solver_type, psb_ipk_, psb_i_base_vect_type
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(inout) :: desc_a
class(mld_s_diag_solver_type), intent(inout) :: sv class(mld_s_diag_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_sspmat_type), intent(in), target, optional :: b type(psb_sspmat_type), intent(in), target, optional :: b

@ -179,7 +179,7 @@ module mld_s_gs_solver
& psb_ipk_, psb_i_base_vect_type & psb_ipk_, psb_i_base_vect_type
implicit none implicit none
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(inout) :: desc_a
class(mld_s_gs_solver_type), intent(inout) :: sv class(mld_s_gs_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_sspmat_type), intent(in), target, optional :: b type(psb_sspmat_type), intent(in), target, optional :: b
@ -193,7 +193,7 @@ module mld_s_gs_solver
& psb_ipk_, psb_i_base_vect_type & psb_ipk_, psb_i_base_vect_type
implicit none implicit none
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(inout) :: desc_a
class(mld_s_bwgs_solver_type), intent(inout) :: sv class(mld_s_bwgs_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_sspmat_type), intent(in), target, optional :: b type(psb_sspmat_type), intent(in), target, optional :: b

@ -124,7 +124,7 @@ contains
! 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(inout) :: desc_a
class(mld_s_id_solver_type), intent(inout) :: sv class(mld_s_id_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_sspmat_type), intent(in), target, optional :: b type(psb_sspmat_type), intent(in), target, optional :: b

@ -143,7 +143,7 @@ module mld_s_ilu_solver
& psb_ipk_, psb_i_base_vect_type & psb_ipk_, psb_i_base_vect_type
implicit none implicit none
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(inout) :: desc_a
class(mld_s_ilu_solver_type), intent(inout) :: sv class(mld_s_ilu_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_sspmat_type), intent(in), target, optional :: b type(psb_sspmat_type), intent(in), target, optional :: b

@ -161,7 +161,7 @@ module mld_s_mumps_solver
! 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(inout) :: desc_a
class(mld_s_mumps_solver_type), intent(inout) :: sv class(mld_s_mumps_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_sspmat_type), intent(in), target, optional :: b type(psb_sspmat_type), intent(in), target, optional :: b

@ -118,6 +118,7 @@ module mld_s_prec_type
procedure, pass(prec) :: psb_s_apply2v => mld_s_apply2v procedure, pass(prec) :: psb_s_apply2v => mld_s_apply2v
procedure, pass(prec) :: psb_s_apply1v => mld_s_apply1v procedure, pass(prec) :: psb_s_apply1v => mld_s_apply1v
procedure, pass(prec) :: dump => mld_s_dump procedure, pass(prec) :: dump => mld_s_dump
procedure, pass(prec) :: cnv => mld_s_cnv
procedure, pass(prec) :: clone => mld_s_clone procedure, pass(prec) :: clone => mld_s_clone
procedure, pass(prec) :: free => mld_s_prec_free procedure, pass(prec) :: free => mld_s_prec_free
procedure, pass(prec) :: allocate_wrk => mld_s_allocate_wrk procedure, pass(prec) :: allocate_wrk => mld_s_allocate_wrk
@ -754,6 +755,26 @@ contains
end subroutine mld_s_dump end subroutine mld_s_dump
subroutine mld_s_cnv(prec,info,amold,vmold,imold)
implicit none
class(mld_sprec_type), intent(inout) :: prec
integer(psb_ipk_), intent(out) :: info
class(psb_s_base_sparse_mat), intent(in), optional :: amold
class(psb_s_base_vect_type), intent(in), optional :: vmold
class(psb_i_base_vect_type), intent(in), optional :: imold
integer(psb_ipk_) :: i
info = psb_success_
if (allocated(prec%precv)) then
do i=1,size(prec%precv)
if (info == psb_success_ ) &
& call prec%precv(i)%cnv(info,amold=amold,vmold=vmold,imold=imold)
end do
end if
end subroutine mld_s_cnv
subroutine mld_s_clone(prec,precout,info) subroutine mld_s_clone(prec,precout,info)

@ -258,7 +258,7 @@ contains
! 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(inout) :: desc_a
class(mld_s_slu_solver_type), intent(inout) :: sv class(mld_s_slu_solver_type), intent(inout) :: sv
integer, intent(out) :: info integer, intent(out) :: info
type(psb_sspmat_type), intent(in), target, optional :: b type(psb_sspmat_type), intent(in), target, optional :: b

@ -168,7 +168,7 @@ module mld_z_base_solver_mod
! 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(inout) :: desc_a
class(mld_z_base_solver_type), intent(inout) :: sv class(mld_z_base_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_zspmat_type), intent(in), target, optional :: b type(psb_zspmat_type), intent(in), target, optional :: b

@ -119,7 +119,7 @@ module mld_z_diag_solver
& psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, &
& mld_z_diag_solver_type, psb_ipk_, psb_i_base_vect_type & mld_z_diag_solver_type, psb_ipk_, psb_i_base_vect_type
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(inout) :: desc_a
class(mld_z_diag_solver_type), intent(inout) :: sv class(mld_z_diag_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_zspmat_type), intent(in), target, optional :: b type(psb_zspmat_type), intent(in), target, optional :: b

@ -179,7 +179,7 @@ module mld_z_gs_solver
& psb_ipk_, psb_i_base_vect_type & psb_ipk_, psb_i_base_vect_type
implicit none implicit none
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(inout) :: desc_a
class(mld_z_gs_solver_type), intent(inout) :: sv class(mld_z_gs_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_zspmat_type), intent(in), target, optional :: b type(psb_zspmat_type), intent(in), target, optional :: b
@ -193,7 +193,7 @@ module mld_z_gs_solver
& psb_ipk_, psb_i_base_vect_type & psb_ipk_, psb_i_base_vect_type
implicit none implicit none
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(inout) :: desc_a
class(mld_z_bwgs_solver_type), intent(inout) :: sv class(mld_z_bwgs_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_zspmat_type), intent(in), target, optional :: b type(psb_zspmat_type), intent(in), target, optional :: b

@ -124,7 +124,7 @@ contains
! 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(inout) :: desc_a
class(mld_z_id_solver_type), intent(inout) :: sv class(mld_z_id_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_zspmat_type), intent(in), target, optional :: b type(psb_zspmat_type), intent(in), target, optional :: b

@ -143,7 +143,7 @@ module mld_z_ilu_solver
& psb_ipk_, psb_i_base_vect_type & psb_ipk_, psb_i_base_vect_type
implicit none implicit none
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(inout) :: desc_a
class(mld_z_ilu_solver_type), intent(inout) :: sv class(mld_z_ilu_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_zspmat_type), intent(in), target, optional :: b type(psb_zspmat_type), intent(in), target, optional :: b

@ -161,7 +161,7 @@ module mld_z_mumps_solver
! 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(inout) :: desc_a
class(mld_z_mumps_solver_type), intent(inout) :: sv class(mld_z_mumps_solver_type), intent(inout) :: sv
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
type(psb_zspmat_type), intent(in), target, optional :: b type(psb_zspmat_type), intent(in), target, optional :: b

@ -118,6 +118,7 @@ module mld_z_prec_type
procedure, pass(prec) :: psb_z_apply2v => mld_z_apply2v procedure, pass(prec) :: psb_z_apply2v => mld_z_apply2v
procedure, pass(prec) :: psb_z_apply1v => mld_z_apply1v procedure, pass(prec) :: psb_z_apply1v => mld_z_apply1v
procedure, pass(prec) :: dump => mld_z_dump procedure, pass(prec) :: dump => mld_z_dump
procedure, pass(prec) :: cnv => mld_z_cnv
procedure, pass(prec) :: clone => mld_z_clone procedure, pass(prec) :: clone => mld_z_clone
procedure, pass(prec) :: free => mld_z_prec_free procedure, pass(prec) :: free => mld_z_prec_free
procedure, pass(prec) :: allocate_wrk => mld_z_allocate_wrk procedure, pass(prec) :: allocate_wrk => mld_z_allocate_wrk
@ -754,6 +755,26 @@ contains
end subroutine mld_z_dump end subroutine mld_z_dump
subroutine mld_z_cnv(prec,info,amold,vmold,imold)
implicit none
class(mld_zprec_type), intent(inout) :: prec
integer(psb_ipk_), intent(out) :: info
class(psb_z_base_sparse_mat), intent(in), optional :: amold
class(psb_z_base_vect_type), intent(in), optional :: vmold
class(psb_i_base_vect_type), intent(in), optional :: imold
integer(psb_ipk_) :: i
info = psb_success_
if (allocated(prec%precv)) then
do i=1,size(prec%precv)
if (info == psb_success_ ) &
& call prec%precv(i)%cnv(info,amold=amold,vmold=vmold,imold=imold)
end do
end if
end subroutine mld_z_cnv
subroutine mld_z_clone(prec,precout,info) subroutine mld_z_clone(prec,precout,info)

@ -258,7 +258,7 @@ contains
! 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(inout) :: desc_a
class(mld_z_slu_solver_type), intent(inout) :: sv class(mld_z_slu_solver_type), intent(inout) :: sv
integer, intent(out) :: info integer, intent(out) :: info
type(psb_zspmat_type), intent(in), target, optional :: b type(psb_zspmat_type), intent(in), target, optional :: b

@ -260,7 +260,7 @@ contains
! 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(inout) :: desc_a
class(mld_z_sludist_solver_type), intent(inout) :: sv class(mld_z_sludist_solver_type), intent(inout) :: sv
integer, intent(out) :: info integer, intent(out) :: info
type(psb_zspmat_type), intent(in), target, optional :: b type(psb_zspmat_type), intent(in), target, optional :: b

@ -262,7 +262,7 @@ contains
! 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(inout) :: desc_a
class(mld_z_umf_solver_type), intent(inout) :: sv class(mld_z_umf_solver_type), intent(inout) :: sv
integer, intent(out) :: info integer, intent(out) :: info
type(psb_zspmat_type), intent(in), target, optional :: b type(psb_zspmat_type), intent(in), target, optional :: b

Loading…
Cancel
Save