|
|
|
@ -145,9 +145,9 @@ module mld_inner_mod
|
|
|
|
|
interface mld_mlprec_aply
|
|
|
|
|
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 mld_prec_type, only : mld_sbaseprec_type, mld_s_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_sbaseprec_type, mld_s_onelev_type
|
|
|
|
|
type(psb_desc_type),intent(in) :: desc_data
|
|
|
|
|
type(mld_s_interlev_prec_type), intent(in) :: precv(:)
|
|
|
|
|
type(mld_s_onelev_type), intent(in) :: precv(:)
|
|
|
|
|
real(psb_spk_),intent(in) :: alpha,beta
|
|
|
|
|
real(psb_spk_),intent(in) :: x(:)
|
|
|
|
|
real(psb_spk_),intent(inout) :: y(:)
|
|
|
|
@ -157,9 +157,9 @@ module mld_inner_mod
|
|
|
|
|
end subroutine mld_smlprec_aply
|
|
|
|
|
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 mld_prec_type, only : mld_dbaseprec_type, mld_d_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_dbaseprec_type, mld_d_onelev_type
|
|
|
|
|
type(psb_desc_type),intent(in) :: desc_data
|
|
|
|
|
type(mld_d_interlev_prec_type), intent(in) :: precv(:)
|
|
|
|
|
type(mld_d_onelev_type), intent(in) :: precv(:)
|
|
|
|
|
real(psb_dpk_),intent(in) :: alpha,beta
|
|
|
|
|
real(psb_dpk_),intent(in) :: x(:)
|
|
|
|
|
real(psb_dpk_),intent(inout) :: y(:)
|
|
|
|
@ -169,9 +169,9 @@ module mld_inner_mod
|
|
|
|
|
end subroutine mld_dmlprec_aply
|
|
|
|
|
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 mld_prec_type, only : mld_cbaseprec_type, mld_c_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_cbaseprec_type, mld_c_onelev_type
|
|
|
|
|
type(psb_desc_type),intent(in) :: desc_data
|
|
|
|
|
type(mld_c_interlev_prec_type), intent(in) :: baseprecv(:)
|
|
|
|
|
type(mld_c_onelev_type), intent(in) :: baseprecv(:)
|
|
|
|
|
complex(psb_spk_),intent(in) :: alpha,beta
|
|
|
|
|
complex(psb_spk_),intent(in) :: x(:)
|
|
|
|
|
complex(psb_spk_),intent(inout) :: y(:)
|
|
|
|
@ -181,9 +181,9 @@ module mld_inner_mod
|
|
|
|
|
end subroutine mld_cmlprec_aply
|
|
|
|
|
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 mld_prec_type, only : mld_zbaseprec_type, mld_z_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_zbaseprec_type, mld_z_onelev_type
|
|
|
|
|
type(psb_desc_type),intent(in) :: desc_data
|
|
|
|
|
type(mld_z_interlev_prec_type), intent(in) :: baseprecv(:)
|
|
|
|
|
type(mld_z_onelev_type), intent(in) :: baseprecv(:)
|
|
|
|
|
complex(psb_dpk_),intent(in) :: alpha,beta
|
|
|
|
|
complex(psb_dpk_),intent(in) :: x(:)
|
|
|
|
|
complex(psb_dpk_),intent(inout) :: y(:)
|
|
|
|
@ -387,34 +387,34 @@ module mld_inner_mod
|
|
|
|
|
interface mld_aggr_bld
|
|
|
|
|
subroutine mld_saggr_bld(a,desc_a,p,info)
|
|
|
|
|
use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_
|
|
|
|
|
use mld_prec_type, only : mld_sbaseprec_type, mld_s_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_sbaseprec_type, mld_s_onelev_type
|
|
|
|
|
type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
type(mld_s_interlev_prec_type), intent(inout), target :: p
|
|
|
|
|
type(mld_s_onelev_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine mld_saggr_bld
|
|
|
|
|
subroutine mld_daggr_bld(a,desc_a,p,info)
|
|
|
|
|
use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_
|
|
|
|
|
use mld_prec_type, only : mld_dbaseprec_type, mld_d_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_dbaseprec_type, mld_d_onelev_type
|
|
|
|
|
type(psb_dspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
type(mld_d_interlev_prec_type), intent(inout), target :: p
|
|
|
|
|
type(mld_d_onelev_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine mld_daggr_bld
|
|
|
|
|
subroutine mld_caggr_bld(a,desc_a,p,info)
|
|
|
|
|
use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_
|
|
|
|
|
use mld_prec_type, only : mld_cbaseprec_type, mld_c_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_cbaseprec_type, mld_c_onelev_type
|
|
|
|
|
type(psb_cspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
type(mld_c_interlev_prec_type), intent(inout), target :: p
|
|
|
|
|
type(mld_c_onelev_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine mld_caggr_bld
|
|
|
|
|
subroutine mld_zaggr_bld(a,desc_a,p,info)
|
|
|
|
|
use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_
|
|
|
|
|
use mld_prec_type, only : mld_zbaseprec_type, mld_z_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_zbaseprec_type, mld_z_onelev_type
|
|
|
|
|
type(psb_zspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
type(mld_z_interlev_prec_type), intent(inout), target :: p
|
|
|
|
|
type(mld_z_onelev_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine mld_zaggr_bld
|
|
|
|
|
end interface
|
|
|
|
@ -463,106 +463,118 @@ module mld_inner_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface mld_aggrmat_asb
|
|
|
|
|
subroutine mld_saggrmat_asb(a,desc_a,p,info)
|
|
|
|
|
subroutine mld_saggrmat_asb(a,desc_a,ilaggr,nlaggr,p,info)
|
|
|
|
|
use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_
|
|
|
|
|
use mld_prec_type, only : mld_sbaseprec_type, mld_s_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_sbaseprec_type, mld_s_onelev_type
|
|
|
|
|
type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
type(mld_s_interlev_prec_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(inout) :: ilaggr(:), nlaggr(:)
|
|
|
|
|
type(mld_s_onelev_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine mld_saggrmat_asb
|
|
|
|
|
subroutine mld_daggrmat_asb(a,desc_a,p,info)
|
|
|
|
|
subroutine mld_daggrmat_asb(a,desc_a,ilaggr,nlaggr,p,info)
|
|
|
|
|
use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_
|
|
|
|
|
use mld_prec_type, only : mld_dbaseprec_type, mld_d_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_dbaseprec_type, mld_d_onelev_type
|
|
|
|
|
type(psb_dspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
type(mld_d_interlev_prec_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(inout) :: ilaggr(:), nlaggr(:)
|
|
|
|
|
type(mld_d_onelev_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine mld_daggrmat_asb
|
|
|
|
|
subroutine mld_caggrmat_asb(a,desc_a,p,info)
|
|
|
|
|
subroutine mld_caggrmat_asb(a,desc_a,ilaggr,nlaggr,p,info)
|
|
|
|
|
use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_
|
|
|
|
|
use mld_prec_type, only : mld_cbaseprec_type, mld_c_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_cbaseprec_type, mld_c_onelev_type
|
|
|
|
|
type(psb_cspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
type(mld_c_interlev_prec_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(inout) :: ilaggr(:), nlaggr(:)
|
|
|
|
|
type(mld_c_onelev_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine mld_caggrmat_asb
|
|
|
|
|
subroutine mld_zaggrmat_asb(a,desc_a,p,info)
|
|
|
|
|
subroutine mld_zaggrmat_asb(a,desc_a,ilaggr,nlaggr,p,info)
|
|
|
|
|
use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_
|
|
|
|
|
use mld_prec_type, only : mld_zbaseprec_type, mld_z_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_zbaseprec_type, mld_z_onelev_type
|
|
|
|
|
type(psb_zspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
type(mld_z_interlev_prec_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(inout) :: ilaggr(:), nlaggr(:)
|
|
|
|
|
type(mld_z_onelev_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine mld_zaggrmat_asb
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface mld_aggrmat_raw_asb
|
|
|
|
|
subroutine mld_saggrmat_raw_asb(a,desc_a,p,info)
|
|
|
|
|
subroutine mld_saggrmat_raw_asb(a,desc_a,ilaggr,nlaggr,p,info)
|
|
|
|
|
use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_
|
|
|
|
|
use mld_prec_type, only : mld_sbaseprec_type, mld_s_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_sbaseprec_type, mld_s_onelev_type
|
|
|
|
|
type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
type(mld_s_interlev_prec_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(inout) :: ilaggr(:), nlaggr(:)
|
|
|
|
|
type(mld_s_onelev_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine mld_saggrmat_raw_asb
|
|
|
|
|
subroutine mld_daggrmat_raw_asb(a,desc_a,p,info)
|
|
|
|
|
subroutine mld_daggrmat_raw_asb(a,desc_a,ilaggr,nlaggr,p,info)
|
|
|
|
|
use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_
|
|
|
|
|
use mld_prec_type, only : mld_dbaseprec_type, mld_d_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_dbaseprec_type, mld_d_onelev_type
|
|
|
|
|
type(psb_dspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
type(mld_d_interlev_prec_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(inout) :: ilaggr(:), nlaggr(:)
|
|
|
|
|
type(mld_d_onelev_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine mld_daggrmat_raw_asb
|
|
|
|
|
subroutine mld_caggrmat_raw_asb(a,desc_a,p,info)
|
|
|
|
|
subroutine mld_caggrmat_raw_asb(a,desc_a,ilaggr,nlaggr,p,info)
|
|
|
|
|
use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_
|
|
|
|
|
use mld_prec_type, only : mld_cbaseprec_type, mld_c_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_cbaseprec_type, mld_c_onelev_type
|
|
|
|
|
type(psb_cspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
type(mld_c_interlev_prec_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(inout) :: ilaggr(:), nlaggr(:)
|
|
|
|
|
type(mld_c_onelev_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine mld_caggrmat_raw_asb
|
|
|
|
|
subroutine mld_zaggrmat_raw_asb(a,desc_a,p,info)
|
|
|
|
|
subroutine mld_zaggrmat_raw_asb(a,desc_a,ilaggr,nlaggr,p,info)
|
|
|
|
|
use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_
|
|
|
|
|
use mld_prec_type, only : mld_zbaseprec_type, mld_z_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_zbaseprec_type, mld_z_onelev_type
|
|
|
|
|
type(psb_zspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
type(mld_z_interlev_prec_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(inout) :: ilaggr(:), nlaggr(:)
|
|
|
|
|
type(mld_z_onelev_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine mld_zaggrmat_raw_asb
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface mld_aggrmat_smth_asb
|
|
|
|
|
subroutine mld_saggrmat_smth_asb(a,desc_a,p,info)
|
|
|
|
|
subroutine mld_saggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info)
|
|
|
|
|
use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_
|
|
|
|
|
use mld_prec_type, only : mld_sbaseprec_type, mld_s_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_sbaseprec_type, mld_s_onelev_type
|
|
|
|
|
type(psb_sspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
type(mld_s_interlev_prec_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(inout) :: ilaggr(:), nlaggr(:)
|
|
|
|
|
type(mld_s_onelev_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine mld_saggrmat_smth_asb
|
|
|
|
|
subroutine mld_daggrmat_smth_asb(a,desc_a,p,info)
|
|
|
|
|
subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info)
|
|
|
|
|
use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_
|
|
|
|
|
use mld_prec_type, only : mld_dbaseprec_type, mld_d_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_dbaseprec_type, mld_d_onelev_type
|
|
|
|
|
type(psb_dspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
type(mld_d_interlev_prec_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(inout) :: ilaggr(:), nlaggr(:)
|
|
|
|
|
type(mld_d_onelev_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine mld_daggrmat_smth_asb
|
|
|
|
|
subroutine mld_caggrmat_smth_asb(a,desc_a,p,info)
|
|
|
|
|
subroutine mld_caggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info)
|
|
|
|
|
use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_
|
|
|
|
|
use mld_prec_type, only : mld_cbaseprec_type, mld_c_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_cbaseprec_type, mld_c_onelev_type
|
|
|
|
|
type(psb_cspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
type(mld_c_interlev_prec_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(inout) :: ilaggr(:), nlaggr(:)
|
|
|
|
|
type(mld_c_onelev_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine mld_caggrmat_smth_asb
|
|
|
|
|
subroutine mld_zaggrmat_smth_asb(a,desc_a,p,info)
|
|
|
|
|
subroutine mld_zaggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info)
|
|
|
|
|
use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_
|
|
|
|
|
use mld_prec_type, only : mld_zbaseprec_type, mld_z_interlev_prec_type
|
|
|
|
|
use mld_prec_type, only : mld_zbaseprec_type, mld_z_onelev_type
|
|
|
|
|
type(psb_zspmat_type), intent(in) :: a
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
type(mld_z_interlev_prec_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(inout) :: ilaggr(:), nlaggr(:)
|
|
|
|
|
type(mld_z_onelev_type), intent(inout), target :: p
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine mld_zaggrmat_smth_asb
|
|
|
|
|
end interface
|
|
|
|
|