diff --git a/mlprec/Makefile b/mlprec/Makefile index 5e5ee233..1155f711 100644 --- a/mlprec/Makefile +++ b/mlprec/Makefile @@ -6,7 +6,7 @@ HERE=. FINCLUDES=$(FMFLAG). $(FMFLAG)$(LIBDIR) $(FMFLAG)$(PSBLIBDIR) -MODOBJS=mld_prec_type.o mld_prec_mod.o mld_inner_mod.o mld_basep_bld_mod.o +MODOBJS=mld_prec_type.o mld_prec_mod.o mld_inner_mod.o MPFOBJS=mld_saggrmat_raw_asb.o mld_saggrmat_smth_asb.o \ mld_daggrmat_raw_asb.o mld_daggrmat_smth_asb.o \ mld_caggrmat_raw_asb.o mld_caggrmat_smth_asb.o \ @@ -56,7 +56,7 @@ COBJS= mld_sslu_interface.o mld_sumf_interface.o \ OBJS=$(F90OBJS) $(COBJS) $(MPFOBJS) $(MPCOBJS) $(MODOBJS) LIBMOD=mld_prec_mod$(.mod) -LOCAL_MODS=$(LIBMOD) mld_prec_type$(.mod) mld_inner_mod$(.mod) mld_basep_bld_mod$(.mod) +LOCAL_MODS=$(LIBMOD) mld_prec_type$(.mod) mld_inner_mod$(.mod) LIBNAME=libmld_prec.a lib: mpobjs $(OBJS) @@ -67,7 +67,6 @@ lib: mpobjs $(OBJS) $(F90OBJS) $(MPFOBJS): $(MODOBJS:.o=$(.mod)) mld_prec_mod.o mld_innner_mod.o: mld_prec_type.o -mld_inner_mod.o: mld_basep_bld_mod.o $(MODOBJS): $(PSBLIBDIR)/psb_base_mod$(.mod) diff --git a/mlprec/mld_basep_bld_mod.f90 b/mlprec/mld_basep_bld_mod.f90 index 4f868a35..18ea994d 100644 --- a/mlprec/mld_basep_bld_mod.f90 +++ b/mlprec/mld_basep_bld_mod.f90 @@ -42,10 +42,11 @@ ! ! module mld_basep_bld_mod + interface mld_baseprc_bld subroutine mld_sbaseprc_bld(a,desc_a,p,info,upd) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type type(psb_sspmat_type), target :: a type(psb_desc_type), intent(in), target :: desc_a type(mld_sbaseprc_type),intent(inout) :: p @@ -53,8 +54,8 @@ module mld_basep_bld_mod character, intent(in), optional :: upd end subroutine mld_sbaseprc_bld subroutine mld_dbaseprc_bld(a,desc_a,p,info,upd) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type type(psb_dspmat_type), target :: a type(psb_desc_type), intent(in), target :: desc_a type(mld_dbaseprc_type),intent(inout) :: p @@ -62,8 +63,8 @@ module mld_basep_bld_mod character, intent(in), optional :: upd end subroutine mld_dbaseprc_bld subroutine mld_cbaseprc_bld(a,desc_a,p,info,upd) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type type(psb_cspmat_type), target :: a type(psb_desc_type), intent(in), target :: desc_a type(mld_cbaseprc_type),intent(inout) :: p @@ -71,8 +72,8 @@ module mld_basep_bld_mod character, intent(in), optional :: upd end subroutine mld_cbaseprc_bld subroutine mld_zbaseprc_bld(a,desc_a,p,info,upd) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type type(psb_zspmat_type), target :: a type(psb_desc_type), intent(in), target :: desc_a type(mld_zbaseprc_type),intent(inout) :: p @@ -83,8 +84,8 @@ module mld_basep_bld_mod interface mld_as_bld subroutine mld_sas_bld(a,desc_a,p,upd,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type type(psb_sspmat_type), target :: a type(psb_desc_type), intent(in), target :: desc_a type(mld_sbaseprc_type),intent(inout) :: p @@ -92,8 +93,8 @@ module mld_basep_bld_mod integer, intent(out) :: info end subroutine mld_sas_bld subroutine mld_das_bld(a,desc_a,p,upd,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type type(psb_dspmat_type), target :: a type(psb_desc_type), intent(in), target :: desc_a type(mld_dbaseprc_type),intent(inout) :: p @@ -101,8 +102,8 @@ module mld_basep_bld_mod integer, intent(out) :: info end subroutine mld_das_bld subroutine mld_cas_bld(a,desc_a,p,upd,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type type(psb_cspmat_type), target :: a type(psb_desc_type), intent(in), target :: desc_a type(mld_cbaseprc_type),intent(inout) :: p @@ -110,8 +111,8 @@ module mld_basep_bld_mod integer, intent(out) :: info end subroutine mld_cas_bld subroutine mld_zas_bld(a,desc_a,p,upd,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type type(psb_zspmat_type), target :: a type(psb_desc_type), intent(in), target :: desc_a type(mld_zbaseprc_type),intent(inout) :: p @@ -122,32 +123,32 @@ module mld_basep_bld_mod interface mld_mlprec_bld subroutine mld_smlprec_bld(a,desc_a,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type type(psb_sspmat_type), intent(inout), target :: a type(psb_desc_type), intent(in), target :: desc_a type(mld_sbaseprc_type), intent(inout), target :: p integer, intent(out) :: info end subroutine mld_smlprec_bld subroutine mld_dmlprec_bld(a,desc_a,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type type(psb_dspmat_type), intent(inout), target :: a type(psb_desc_type), intent(in), target :: desc_a type(mld_dbaseprc_type), intent(inout), target :: p integer, intent(out) :: info end subroutine mld_dmlprec_bld subroutine mld_cmlprec_bld(a,desc_a,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type type(psb_cspmat_type), intent(inout), target :: a type(psb_desc_type), intent(in), target :: desc_a type(mld_cbaseprc_type), intent(inout),target :: p integer, intent(out) :: info end subroutine mld_cmlprec_bld subroutine mld_zmlprec_bld(a,desc_a,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type type(psb_zspmat_type), intent(inout), target :: a type(psb_desc_type), intent(in), target :: desc_a type(mld_zbaseprc_type), intent(inout),target :: p @@ -157,32 +158,32 @@ module mld_basep_bld_mod interface mld_diag_bld subroutine mld_sdiag_bld(a,desc_data,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type integer, intent(out) :: info type(psb_sspmat_type), intent(in), target :: a type(psb_desc_type),intent(in) :: desc_data type(mld_sbaseprc_type), intent(inout) :: p end subroutine mld_sdiag_bld subroutine mld_ddiag_bld(a,desc_data,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type integer, intent(out) :: info type(psb_dspmat_type), intent(in), target :: a type(psb_desc_type),intent(in) :: desc_data type(mld_dbaseprc_type), intent(inout) :: p end subroutine mld_ddiag_bld subroutine mld_cdiag_bld(a,desc_data,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type integer, intent(out) :: info type(psb_cspmat_type), intent(in), target :: a type(psb_desc_type),intent(in) :: desc_data type(mld_cbaseprc_type), intent(inout) :: p end subroutine mld_cdiag_bld subroutine mld_zdiag_bld(a,desc_data,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type integer, intent(out) :: info type(psb_zspmat_type), intent(in), target :: a type(psb_desc_type),intent(in) :: desc_data @@ -192,8 +193,8 @@ module mld_basep_bld_mod interface mld_fact_bld subroutine mld_sfact_bld(a,p,upd,info,blck) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type type(psb_sspmat_type), intent(in), target :: a type(mld_sbaseprc_type), intent(inout) :: p integer, intent(out) :: info @@ -201,8 +202,8 @@ module mld_basep_bld_mod type(psb_sspmat_type), intent(in), target, optional :: blck end subroutine mld_sfact_bld subroutine mld_dfact_bld(a,p,upd,info,blck) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type type(psb_dspmat_type), intent(in), target :: a type(mld_dbaseprc_type), intent(inout) :: p integer, intent(out) :: info @@ -210,8 +211,8 @@ module mld_basep_bld_mod type(psb_dspmat_type), intent(in), target, optional :: blck end subroutine mld_dfact_bld subroutine mld_cfact_bld(a,p,upd,info,blck) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type type(psb_cspmat_type), intent(in), target :: a type(mld_cbaseprc_type), intent(inout) :: p integer, intent(out) :: info @@ -219,8 +220,8 @@ module mld_basep_bld_mod type(psb_cspmat_type), intent(in), target, optional :: blck end subroutine mld_cfact_bld subroutine mld_zfact_bld(a,p,upd,info,blck) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type type(psb_zspmat_type), intent(in), target :: a type(mld_zbaseprc_type), intent(inout) :: p integer, intent(out) :: info @@ -231,8 +232,8 @@ module mld_basep_bld_mod interface mld_ilu_bld subroutine mld_silu_bld(a,p,upd,info,blck) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type integer, intent(out) :: info type(psb_sspmat_type), intent(in), target :: a type(mld_sbaseprc_type), intent(inout) :: p @@ -240,8 +241,8 @@ module mld_basep_bld_mod type(psb_sspmat_type), intent(in), optional :: blck end subroutine mld_silu_bld subroutine mld_dilu_bld(a,p,upd,info,blck) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type integer, intent(out) :: info type(psb_dspmat_type), intent(in), target :: a type(mld_dbaseprc_type), intent(inout) :: p @@ -249,8 +250,8 @@ module mld_basep_bld_mod type(psb_dspmat_type), intent(in), optional :: blck end subroutine mld_dilu_bld subroutine mld_cilu_bld(a,p,upd,info,blck) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type integer, intent(out) :: info type(psb_cspmat_type), intent(in), target :: a type(mld_cbaseprc_type), intent(inout) :: p @@ -258,8 +259,8 @@ module mld_basep_bld_mod type(psb_cspmat_type), intent(in), optional :: blck end subroutine mld_cilu_bld subroutine mld_zilu_bld(a,p,upd,info,blck) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type integer, intent(out) :: info type(psb_zspmat_type), intent(in), target :: a type(mld_zbaseprc_type), intent(inout) :: p @@ -270,32 +271,32 @@ module mld_basep_bld_mod interface mld_sludist_bld subroutine mld_ssludist_bld(a,desc_a,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type type(psb_sspmat_type), intent(inout) :: a type(psb_desc_type), intent(in) :: desc_a type(mld_sbaseprc_type), intent(inout) :: p integer, intent(out) :: info end subroutine mld_ssludist_bld subroutine mld_dsludist_bld(a,desc_a,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type type(psb_dspmat_type), intent(inout) :: a type(psb_desc_type), intent(in) :: desc_a type(mld_dbaseprc_type), intent(inout) :: p integer, intent(out) :: info end subroutine mld_dsludist_bld subroutine mld_csludist_bld(a,desc_a,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type type(psb_cspmat_type), intent(inout) :: a type(psb_desc_type), intent(in) :: desc_a type(mld_cbaseprc_type), intent(inout) :: p integer, intent(out) :: info end subroutine mld_csludist_bld subroutine mld_zsludist_bld(a,desc_a,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type type(psb_zspmat_type), intent(inout) :: a type(psb_desc_type), intent(in) :: desc_a type(mld_zbaseprc_type), intent(inout) :: p @@ -305,16 +306,16 @@ module mld_basep_bld_mod interface mld_slu_bld subroutine mld_sslu_bld(a,desc_a,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type type(psb_sspmat_type), intent(inout) :: a type(psb_desc_type), intent(in) :: desc_a type(mld_sbaseprc_type), intent(inout) :: p integer, intent(out) :: info end subroutine mld_sslu_bld subroutine mld_dslu_bld(a,desc_a,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type type(psb_dspmat_type), intent(inout) :: a type(psb_desc_type), intent(in) :: desc_a type(mld_dbaseprc_type), intent(inout) :: p @@ -329,8 +330,8 @@ module mld_basep_bld_mod integer, intent(out) :: info end subroutine mld_cslu_bld subroutine mld_zslu_bld(a,desc_a,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type type(psb_zspmat_type), intent(inout) :: a type(psb_desc_type), intent(in) :: desc_a type(mld_zbaseprc_type), intent(inout) :: p @@ -348,24 +349,16 @@ module mld_basep_bld_mod integer, intent(out) :: info end subroutine mld_sumf_bld subroutine mld_dumf_bld(a,desc_a,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type type(psb_dspmat_type), intent(inout) :: a type(psb_desc_type), intent(in) :: desc_a type(mld_dbaseprc_type), intent(inout) :: p integer, intent(out) :: info end subroutine mld_dumf_bld - subroutine mld_zumf_bld(a,desc_a,p,info) - use psb_base_mod - use mld_prec_type - type(psb_zspmat_type), intent(in) :: a - type(psb_desc_type), intent(in) :: desc_a - type(mld_zbaseprc_type), intent(inout) :: p - integer, intent(out) :: info - end subroutine mld_zumf_bld subroutine mld_cumf_bld(a,desc_a,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type type(psb_cspmat_type), intent(in) :: a type(psb_desc_type), intent(in) :: desc_a type(mld_cbaseprc_type), intent(inout) :: p @@ -375,7 +368,7 @@ module mld_basep_bld_mod interface mld_ilu0_fact subroutine mld_silu0_fact(ialg,a,l,u,d,info,blck) - use psb_base_mod + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ integer, intent(in) :: ialg integer, intent(out) :: info type(psb_sspmat_type),intent(in) :: a @@ -393,7 +386,7 @@ module mld_basep_bld_mod real(psb_dpk_), intent(inout) :: d(:) end subroutine mld_dilu0_fact subroutine mld_cilu0_fact(ialg,a,l,u,d,info,blck) - use psb_base_mod + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ integer, intent(in) :: ialg integer, intent(out) :: info type(psb_cspmat_type),intent(in) :: a @@ -414,7 +407,7 @@ module mld_basep_bld_mod interface mld_iluk_fact subroutine mld_siluk_fact(fill_in,ialg,a,l,u,d,info,blck) - use psb_base_mod + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ integer, intent(in) :: fill_in,ialg integer, intent(out) :: info type(psb_sspmat_type),intent(in) :: a @@ -423,7 +416,7 @@ module mld_basep_bld_mod real(psb_spk_), intent(inout) :: d(:) end subroutine mld_siluk_fact subroutine mld_diluk_fact(fill_in,ialg,a,l,u,d,info,blck) - use psb_base_mod + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ integer, intent(in) :: fill_in,ialg integer, intent(out) :: info type(psb_dspmat_type),intent(in) :: a @@ -432,7 +425,7 @@ module mld_basep_bld_mod real(psb_dpk_), intent(inout) :: d(:) end subroutine mld_diluk_fact subroutine mld_ciluk_fact(fill_in,ialg,a,l,u,d,info,blck) - use psb_base_mod + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ integer, intent(in) :: fill_in,ialg integer, intent(out) :: info type(psb_cspmat_type),intent(in) :: a @@ -441,7 +434,7 @@ module mld_basep_bld_mod complex(psb_spk_), intent(inout) :: d(:) end subroutine mld_ciluk_fact subroutine mld_ziluk_fact(fill_in,ialg,a,l,u,d,info,blck) - use psb_base_mod + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ integer, intent(in) :: fill_in,ialg integer, intent(out) :: info type(psb_zspmat_type),intent(in) :: a @@ -453,7 +446,7 @@ module mld_basep_bld_mod interface mld_ilut_fact subroutine mld_silut_fact(fill_in,thres,a,l,u,d,info,blck) - use psb_base_mod + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ integer, intent(in) :: fill_in real(psb_spk_), intent(in) :: thres integer, intent(out) :: info @@ -463,7 +456,7 @@ module mld_basep_bld_mod real(psb_spk_), intent(inout) :: d(:) end subroutine mld_silut_fact subroutine mld_dilut_fact(fill_in,thres,a,l,u,d,info,blck) - use psb_base_mod + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ integer, intent(in) :: fill_in real(psb_dpk_), intent(in) :: thres integer, intent(out) :: info @@ -473,7 +466,7 @@ module mld_basep_bld_mod real(psb_dpk_), intent(inout) :: d(:) end subroutine mld_dilut_fact subroutine mld_cilut_fact(fill_in,thres,a,l,u,d,info,blck) - use psb_base_mod + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ integer, intent(in) :: fill_in real(psb_spk_), intent(in) :: thres integer, intent(out) :: info @@ -483,7 +476,7 @@ module mld_basep_bld_mod complex(psb_spk_), intent(inout) :: d(:) end subroutine mld_cilut_fact subroutine mld_zilut_fact(fill_in,thres,a,l,u,d,info,blck) - use psb_base_mod + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ integer, intent(in) :: fill_in real(psb_dpk_), intent(in) :: thres integer, intent(out) :: info diff --git a/mlprec/mld_inner_mod.f90 b/mlprec/mld_inner_mod.f90 index 6944dafc..83cf1e4d 100644 --- a/mlprec/mld_inner_mod.f90 +++ b/mlprec/mld_inner_mod.f90 @@ -38,11 +38,11 @@ !!$ module mld_inner_mod use mld_prec_type - use mld_basep_bld_mod + interface mld_baseprec_aply subroutine mld_sbaseprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type type(psb_desc_type),intent(in) :: desc_data type(mld_sbaseprc_type), intent(in) :: prec real(psb_spk_),intent(in) :: x(:) @@ -53,8 +53,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_sbaseprec_aply subroutine mld_dbaseprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type type(psb_desc_type),intent(in) :: desc_data type(mld_dbaseprc_type), intent(in) :: prec real(psb_dpk_),intent(in) :: x(:) @@ -65,8 +65,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_dbaseprec_aply subroutine mld_cbaseprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type type(psb_desc_type),intent(in) :: desc_data type(mld_cbaseprc_type), intent(in) :: prec complex(psb_spk_),intent(in) :: x(:) @@ -77,8 +77,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_cbaseprec_aply subroutine mld_zbaseprec_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type type(psb_desc_type),intent(in) :: desc_data type(mld_zbaseprc_type), intent(in) :: prec complex(psb_dpk_),intent(in) :: x(:) @@ -92,8 +92,8 @@ module mld_inner_mod interface mld_as_aply subroutine mld_sas_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type type(psb_desc_type),intent(in) :: desc_data type(mld_sbaseprc_type), intent(in) :: prec real(psb_spk_),intent(in) :: x(:) @@ -104,8 +104,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_sas_aply subroutine mld_das_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type type(psb_desc_type),intent(in) :: desc_data type(mld_dbaseprc_type), intent(in) :: prec real(psb_dpk_),intent(in) :: x(:) @@ -116,8 +116,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_das_aply subroutine mld_cas_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type type(psb_desc_type),intent(in) :: desc_data type(mld_cbaseprc_type), intent(in) :: prec complex(psb_spk_),intent(in) :: x(:) @@ -128,8 +128,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_cas_aply subroutine mld_zas_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type type(psb_desc_type),intent(in) :: desc_data type(mld_zbaseprc_type), intent(in) :: prec complex(psb_dpk_),intent(in) :: x(:) @@ -143,8 +143,8 @@ module mld_inner_mod interface mld_mlprec_aply subroutine mld_smlprec_aply(alpha,baseprecv,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type type(psb_desc_type),intent(in) :: desc_data type(mld_sbaseprc_type), intent(in) :: baseprecv(:) real(psb_spk_),intent(in) :: alpha,beta @@ -155,8 +155,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_smlprec_aply subroutine mld_dmlprec_aply(alpha,baseprecv,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type type(psb_desc_type),intent(in) :: desc_data type(mld_dbaseprc_type), intent(in) :: baseprecv(:) real(psb_dpk_),intent(in) :: alpha,beta @@ -167,8 +167,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_dmlprec_aply subroutine mld_cmlprec_aply(alpha,baseprecv,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type type(psb_desc_type),intent(in) :: desc_data type(mld_cbaseprc_type), intent(in) :: baseprecv(:) complex(psb_spk_),intent(in) :: alpha,beta @@ -179,8 +179,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_cmlprec_aply subroutine mld_zmlprec_aply(alpha,baseprecv,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type type(psb_desc_type),intent(in) :: desc_data type(mld_zbaseprc_type), intent(in) :: baseprecv(:) complex(psb_dpk_),intent(in) :: alpha,beta @@ -195,8 +195,8 @@ module mld_inner_mod interface mld_sub_aply subroutine mld_ssub_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type type(psb_desc_type), intent(in) :: desc_data type(mld_sbaseprc_type), intent(in) :: prec real(psb_spk_),intent(in) :: x(:) @@ -207,8 +207,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_ssub_aply subroutine mld_dsub_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type type(psb_desc_type), intent(in) :: desc_data type(mld_dbaseprc_type), intent(in) :: prec real(psb_dpk_),intent(in) :: x(:) @@ -219,8 +219,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_dsub_aply subroutine mld_csub_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type type(psb_desc_type), intent(in) :: desc_data type(mld_cbaseprc_type), intent(in) :: prec complex(psb_spk_),intent(in) :: x(:) @@ -231,8 +231,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_csub_aply subroutine mld_zsub_aply(alpha,prec,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type type(psb_desc_type), intent(in) :: desc_data type(mld_zbaseprc_type), intent(in) :: prec complex(psb_dpk_),intent(in) :: x(:) @@ -247,8 +247,8 @@ module mld_inner_mod interface mld_sub_solve subroutine mld_ssub_solve(alpha,prec,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type type(psb_desc_type), intent(in) :: desc_data type(mld_sbaseprc_type), intent(in) :: prec real(psb_spk_),intent(in) :: x(:) @@ -259,8 +259,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_ssub_solve subroutine mld_dsub_solve(alpha,prec,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type type(psb_desc_type), intent(in) :: desc_data type(mld_dbaseprc_type), intent(in) :: prec real(psb_dpk_),intent(in) :: x(:) @@ -271,8 +271,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_dsub_solve subroutine mld_csub_solve(alpha,prec,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type type(psb_desc_type), intent(in) :: desc_data type(mld_cbaseprc_type), intent(in) :: prec complex(psb_spk_),intent(in) :: x(:) @@ -283,8 +283,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_csub_solve subroutine mld_zsub_solve(alpha,prec,x,beta,y,desc_data,trans,work,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type type(psb_desc_type), intent(in) :: desc_data type(mld_zbaseprc_type), intent(in) :: prec complex(psb_dpk_),intent(in) :: x(:) @@ -299,8 +299,8 @@ module mld_inner_mod interface mld_asmat_bld Subroutine mld_sasmat_bld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type integer, intent(in) :: ptype,novr Type(psb_sspmat_type), Intent(in) :: a Type(psb_sspmat_type), Intent(out) :: blk @@ -311,8 +311,8 @@ module mld_inner_mod character(len=5), optional :: outfmt end Subroutine mld_sasmat_bld Subroutine mld_dasmat_bld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type integer, intent(in) :: ptype,novr Type(psb_dspmat_type), Intent(in) :: a Type(psb_dspmat_type), Intent(out) :: blk @@ -323,8 +323,8 @@ module mld_inner_mod character(len=5), optional :: outfmt end Subroutine mld_dasmat_bld Subroutine mld_casmat_bld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type integer, intent(in) :: ptype,novr Type(psb_cspmat_type), Intent(in) :: a Type(psb_cspmat_type), Intent(out) :: blk @@ -335,8 +335,8 @@ module mld_inner_mod character(len=5), optional :: outfmt end Subroutine mld_casmat_bld Subroutine mld_zasmat_bld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type integer, intent(in) :: ptype,novr Type(psb_zspmat_type), Intent(in) :: a Type(psb_zspmat_type), Intent(out) :: blk @@ -350,32 +350,32 @@ module mld_inner_mod interface mld_sp_renum subroutine mld_ssp_renum(a,blck,p,atmp,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type type(psb_sspmat_type), intent(in) :: a,blck type(psb_sspmat_type), intent(out) :: atmp type(mld_sbaseprc_type), intent(inout) :: p integer, intent(out) :: info end subroutine mld_ssp_renum subroutine mld_dsp_renum(a,blck,p,atmp,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type type(psb_dspmat_type), intent(in) :: a,blck type(psb_dspmat_type), intent(out) :: atmp type(mld_dbaseprc_type), intent(inout) :: p integer, intent(out) :: info end subroutine mld_dsp_renum subroutine mld_csp_renum(a,blck,p,atmp,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type type(psb_cspmat_type), intent(in) :: a,blck type(psb_cspmat_type), intent(out) :: atmp type(mld_cbaseprc_type), intent(inout) :: p integer, intent(out) :: info end subroutine mld_csp_renum subroutine mld_zsp_renum(a,blck,p,atmp,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type type(psb_zspmat_type), intent(in) :: a,blck type(psb_zspmat_type), intent(out) :: atmp type(mld_zbaseprc_type), intent(inout) :: p @@ -385,8 +385,8 @@ module mld_inner_mod interface mld_aggrmap_bld subroutine mld_saggrmap_bld(aggr_type,a,desc_a,nlaggr,ilaggr,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type integer, intent(in) :: aggr_type type(psb_sspmat_type), intent(in), target :: a type(psb_desc_type), intent(in) :: desc_a @@ -394,8 +394,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_saggrmap_bld subroutine mld_daggrmap_bld(aggr_type,a,desc_a,nlaggr,ilaggr,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type integer, intent(in) :: aggr_type type(psb_dspmat_type), intent(in), target :: a type(psb_desc_type), intent(in) :: desc_a @@ -403,8 +403,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_daggrmap_bld subroutine mld_caggrmap_bld(aggr_type,a,desc_a,nlaggr,ilaggr,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type integer, intent(in) :: aggr_type type(psb_cspmat_type), intent(in), target :: a type(psb_desc_type), intent(in) :: desc_a @@ -412,8 +412,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_caggrmap_bld subroutine mld_zaggrmap_bld(aggr_type,a,desc_a,nlaggr,ilaggr,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type integer, intent(in) :: aggr_type type(psb_zspmat_type), intent(in), target :: a type(psb_desc_type), intent(in) :: desc_a @@ -424,8 +424,8 @@ module mld_inner_mod interface mld_aggrmat_asb subroutine mld_saggrmat_asb(a,desc_a,ac,desc_ac,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type type(psb_sspmat_type), intent(in) :: a type(psb_desc_type), intent(in) :: desc_a type(psb_sspmat_type), intent(out) :: ac @@ -434,8 +434,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_saggrmat_asb subroutine mld_daggrmat_asb(a,desc_a,ac,desc_ac,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type type(psb_dspmat_type), intent(in) :: a type(psb_desc_type), intent(in) :: desc_a type(psb_dspmat_type), intent(out) :: ac @@ -444,8 +444,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_daggrmat_asb subroutine mld_caggrmat_asb(a,desc_a,ac,desc_ac,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type type(psb_cspmat_type), intent(in) :: a type(psb_desc_type), intent(in) :: desc_a type(psb_cspmat_type), intent(out) :: ac @@ -454,8 +454,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_caggrmat_asb subroutine mld_zaggrmat_asb(a,desc_a,ac,desc_ac,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type type(psb_zspmat_type), intent(in) :: a type(psb_desc_type), intent(in) :: desc_a type(psb_zspmat_type), intent(out) :: ac @@ -467,8 +467,8 @@ module mld_inner_mod interface mld_aggrmat_raw_asb subroutine mld_saggrmat_raw_asb(a,desc_a,ac,desc_ac,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type type(psb_sspmat_type), intent(in) :: a type(psb_desc_type), intent(in) :: desc_a type(psb_sspmat_type), intent(out) :: ac @@ -477,8 +477,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_saggrmat_raw_asb subroutine mld_daggrmat_raw_asb(a,desc_a,ac,desc_ac,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type type(psb_dspmat_type), intent(in) :: a type(psb_desc_type), intent(in) :: desc_a type(psb_dspmat_type), intent(out) :: ac @@ -487,8 +487,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_daggrmat_raw_asb subroutine mld_caggrmat_raw_asb(a,desc_a,ac,desc_ac,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type type(psb_cspmat_type), intent(in) :: a type(psb_desc_type), intent(in) :: desc_a type(psb_cspmat_type), intent(out) :: ac @@ -497,8 +497,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_caggrmat_raw_asb subroutine mld_zaggrmat_raw_asb(a,desc_a,ac,desc_ac,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type type(psb_zspmat_type), intent(in) :: a type(psb_desc_type), intent(in) :: desc_a type(psb_zspmat_type), intent(out) :: ac @@ -510,8 +510,8 @@ module mld_inner_mod interface mld_aggrmat_smth_asb subroutine mld_saggrmat_smth_asb(a,desc_a,ac,desc_ac,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type type(psb_sspmat_type), intent(in) :: a type(psb_desc_type), intent(in) :: desc_a type(psb_sspmat_type), intent(out) :: ac @@ -520,8 +520,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_saggrmat_smth_asb subroutine mld_daggrmat_smth_asb(a,desc_a,ac,desc_ac,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type type(psb_dspmat_type), intent(in) :: a type(psb_desc_type), intent(in) :: desc_a type(psb_dspmat_type), intent(out) :: ac @@ -530,8 +530,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_daggrmat_smth_asb subroutine mld_caggrmat_smth_asb(a,desc_a,ac,desc_ac,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type type(psb_cspmat_type), intent(in) :: a type(psb_desc_type), intent(in) :: desc_a type(psb_cspmat_type), intent(out) :: ac @@ -540,8 +540,8 @@ module mld_inner_mod integer, intent(out) :: info end subroutine mld_caggrmat_smth_asb subroutine mld_zaggrmat_smth_asb(a,desc_a,ac,desc_ac,p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type type(psb_zspmat_type), intent(in) :: a type(psb_desc_type), intent(in) :: desc_a type(psb_zspmat_type), intent(out) :: ac @@ -551,4 +551,456 @@ module mld_inner_mod end subroutine mld_zaggrmat_smth_asb end interface + interface mld_baseprc_bld + subroutine mld_sbaseprc_bld(a,desc_a,p,info,upd) + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type + type(psb_sspmat_type), target :: a + type(psb_desc_type), intent(in), target :: desc_a + type(mld_sbaseprc_type),intent(inout) :: p + integer, intent(out) :: info + character, intent(in), optional :: upd + end subroutine mld_sbaseprc_bld + subroutine mld_dbaseprc_bld(a,desc_a,p,info,upd) + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type + type(psb_dspmat_type), target :: a + type(psb_desc_type), intent(in), target :: desc_a + type(mld_dbaseprc_type),intent(inout) :: p + integer, intent(out) :: info + character, intent(in), optional :: upd + end subroutine mld_dbaseprc_bld + subroutine mld_cbaseprc_bld(a,desc_a,p,info,upd) + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type + type(psb_cspmat_type), target :: a + type(psb_desc_type), intent(in), target :: desc_a + type(mld_cbaseprc_type),intent(inout) :: p + integer, intent(out) :: info + character, intent(in), optional :: upd + end subroutine mld_cbaseprc_bld + subroutine mld_zbaseprc_bld(a,desc_a,p,info,upd) + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type + type(psb_zspmat_type), target :: a + type(psb_desc_type), intent(in), target :: desc_a + type(mld_zbaseprc_type),intent(inout) :: p + integer, intent(out) :: info + character, intent(in), optional :: upd + end subroutine mld_zbaseprc_bld + end interface + + interface mld_as_bld + subroutine mld_sas_bld(a,desc_a,p,upd,info) + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type + type(psb_sspmat_type), target :: a + type(psb_desc_type), intent(in), target :: desc_a + type(mld_sbaseprc_type),intent(inout) :: p + character, intent(in) :: upd + integer, intent(out) :: info + end subroutine mld_sas_bld + subroutine mld_das_bld(a,desc_a,p,upd,info) + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type + type(psb_dspmat_type), target :: a + type(psb_desc_type), intent(in), target :: desc_a + type(mld_dbaseprc_type),intent(inout) :: p + character, intent(in) :: upd + integer, intent(out) :: info + end subroutine mld_das_bld + subroutine mld_cas_bld(a,desc_a,p,upd,info) + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type + type(psb_cspmat_type), target :: a + type(psb_desc_type), intent(in), target :: desc_a + type(mld_cbaseprc_type),intent(inout) :: p + character, intent(in) :: upd + integer, intent(out) :: info + end subroutine mld_cas_bld + subroutine mld_zas_bld(a,desc_a,p,upd,info) + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type + type(psb_zspmat_type), target :: a + type(psb_desc_type), intent(in), target :: desc_a + type(mld_zbaseprc_type),intent(inout) :: p + character, intent(in) :: upd + integer, intent(out) :: info + end subroutine mld_zas_bld + end interface + + interface mld_mlprec_bld + subroutine mld_smlprec_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_sbaseprc_type + type(psb_sspmat_type), intent(inout), target :: a + type(psb_desc_type), intent(in), target :: desc_a + type(mld_sbaseprc_type), intent(inout), target :: p + integer, intent(out) :: info + end subroutine mld_smlprec_bld + subroutine mld_dmlprec_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_dbaseprc_type + type(psb_dspmat_type), intent(inout), target :: a + type(psb_desc_type), intent(in), target :: desc_a + type(mld_dbaseprc_type), intent(inout), target :: p + integer, intent(out) :: info + end subroutine mld_dmlprec_bld + subroutine mld_cmlprec_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_cbaseprc_type + type(psb_cspmat_type), intent(inout), target :: a + type(psb_desc_type), intent(in), target :: desc_a + type(mld_cbaseprc_type), intent(inout),target :: p + integer, intent(out) :: info + end subroutine mld_cmlprec_bld + subroutine mld_zmlprec_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_zbaseprc_type + type(psb_zspmat_type), intent(inout), target :: a + type(psb_desc_type), intent(in), target :: desc_a + type(mld_zbaseprc_type), intent(inout),target :: p + integer, intent(out) :: info + end subroutine mld_zmlprec_bld + end interface + + interface mld_diag_bld + subroutine mld_sdiag_bld(a,desc_data,p,info) + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type + integer, intent(out) :: info + type(psb_sspmat_type), intent(in), target :: a + type(psb_desc_type),intent(in) :: desc_data + type(mld_sbaseprc_type), intent(inout) :: p + end subroutine mld_sdiag_bld + subroutine mld_ddiag_bld(a,desc_data,p,info) + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type + integer, intent(out) :: info + type(psb_dspmat_type), intent(in), target :: a + type(psb_desc_type),intent(in) :: desc_data + type(mld_dbaseprc_type), intent(inout) :: p + end subroutine mld_ddiag_bld + subroutine mld_cdiag_bld(a,desc_data,p,info) + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type + integer, intent(out) :: info + type(psb_cspmat_type), intent(in), target :: a + type(psb_desc_type),intent(in) :: desc_data + type(mld_cbaseprc_type), intent(inout) :: p + end subroutine mld_cdiag_bld + subroutine mld_zdiag_bld(a,desc_data,p,info) + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type + integer, intent(out) :: info + type(psb_zspmat_type), intent(in), target :: a + type(psb_desc_type),intent(in) :: desc_data + type(mld_zbaseprc_type), intent(inout) :: p + end subroutine mld_zdiag_bld + end interface + + interface mld_fact_bld + subroutine mld_sfact_bld(a,p,upd,info,blck) + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type + type(psb_sspmat_type), intent(in), target :: a + type(mld_sbaseprc_type), intent(inout) :: p + integer, intent(out) :: info + character, intent(in) :: upd + type(psb_sspmat_type), intent(in), target, optional :: blck + end subroutine mld_sfact_bld + subroutine mld_dfact_bld(a,p,upd,info,blck) + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type + type(psb_dspmat_type), intent(in), target :: a + type(mld_dbaseprc_type), intent(inout) :: p + integer, intent(out) :: info + character, intent(in) :: upd + type(psb_dspmat_type), intent(in), target, optional :: blck + end subroutine mld_dfact_bld + subroutine mld_cfact_bld(a,p,upd,info,blck) + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type + type(psb_cspmat_type), intent(in), target :: a + type(mld_cbaseprc_type), intent(inout) :: p + integer, intent(out) :: info + character, intent(in) :: upd + type(psb_cspmat_type), intent(in), target, optional :: blck + end subroutine mld_cfact_bld + subroutine mld_zfact_bld(a,p,upd,info,blck) + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type + type(psb_zspmat_type), intent(in), target :: a + type(mld_zbaseprc_type), intent(inout) :: p + integer, intent(out) :: info + character, intent(in) :: upd + type(psb_zspmat_type), intent(in), target, optional :: blck + end subroutine mld_zfact_bld + end interface + + interface mld_ilu_bld + subroutine mld_silu_bld(a,p,upd,info,blck) + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sbaseprc_type + integer, intent(out) :: info + type(psb_sspmat_type), intent(in), target :: a + type(mld_sbaseprc_type), intent(inout) :: p + character, intent(in) :: upd + type(psb_sspmat_type), intent(in), optional :: blck + end subroutine mld_silu_bld + subroutine mld_dilu_bld(a,p,upd,info,blck) + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dbaseprc_type + integer, intent(out) :: info + type(psb_dspmat_type), intent(in), target :: a + type(mld_dbaseprc_type), intent(inout) :: p + character, intent(in) :: upd + type(psb_dspmat_type), intent(in), optional :: blck + end subroutine mld_dilu_bld + subroutine mld_cilu_bld(a,p,upd,info,blck) + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cbaseprc_type + integer, intent(out) :: info + type(psb_cspmat_type), intent(in), target :: a + type(mld_cbaseprc_type), intent(inout) :: p + character, intent(in) :: upd + type(psb_cspmat_type), intent(in), optional :: blck + end subroutine mld_cilu_bld + subroutine mld_zilu_bld(a,p,upd,info,blck) + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zbaseprc_type + integer, intent(out) :: info + type(psb_zspmat_type), intent(in), target :: a + type(mld_zbaseprc_type), intent(inout) :: p + character, intent(in) :: upd + type(psb_zspmat_type), intent(in), optional :: blck + end subroutine mld_zilu_bld + end interface + + interface mld_sludist_bld + subroutine mld_ssludist_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_sbaseprc_type + type(psb_sspmat_type), intent(inout) :: a + type(psb_desc_type), intent(in) :: desc_a + type(mld_sbaseprc_type), intent(inout) :: p + integer, intent(out) :: info + end subroutine mld_ssludist_bld + subroutine mld_dsludist_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_dbaseprc_type + type(psb_dspmat_type), intent(inout) :: a + type(psb_desc_type), intent(in) :: desc_a + type(mld_dbaseprc_type), intent(inout) :: p + integer, intent(out) :: info + end subroutine mld_dsludist_bld + subroutine mld_csludist_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_cbaseprc_type + type(psb_cspmat_type), intent(inout) :: a + type(psb_desc_type), intent(in) :: desc_a + type(mld_cbaseprc_type), intent(inout) :: p + integer, intent(out) :: info + end subroutine mld_csludist_bld + subroutine mld_zsludist_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_zbaseprc_type + type(psb_zspmat_type), intent(inout) :: a + type(psb_desc_type), intent(in) :: desc_a + type(mld_zbaseprc_type), intent(inout) :: p + integer, intent(out) :: info + end subroutine mld_zsludist_bld + end interface + + interface mld_slu_bld + subroutine mld_sslu_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_sbaseprc_type + type(psb_sspmat_type), intent(inout) :: a + type(psb_desc_type), intent(in) :: desc_a + type(mld_sbaseprc_type), intent(inout) :: p + integer, intent(out) :: info + end subroutine mld_sslu_bld + subroutine mld_dslu_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_dbaseprc_type + type(psb_dspmat_type), intent(inout) :: a + type(psb_desc_type), intent(in) :: desc_a + type(mld_dbaseprc_type), intent(inout) :: p + integer, intent(out) :: info + end subroutine mld_dslu_bld + subroutine mld_cslu_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_cbaseprc_type + type(psb_cspmat_type), intent(inout) :: a + type(psb_desc_type), intent(in) :: desc_a + type(mld_cbaseprc_type), intent(inout) :: p + integer, intent(out) :: info + end subroutine mld_cslu_bld + subroutine mld_zslu_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_zbaseprc_type + type(psb_zspmat_type), intent(inout) :: a + type(psb_desc_type), intent(in) :: desc_a + type(mld_zbaseprc_type), intent(inout) :: p + integer, intent(out) :: info + end subroutine mld_zslu_bld + end interface + + interface mld_umf_bld + subroutine mld_sumf_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_sbaseprc_type + type(psb_sspmat_type), intent(inout) :: a + type(psb_desc_type), intent(in) :: desc_a + type(mld_sbaseprc_type), intent(inout) :: p + integer, intent(out) :: info + end subroutine mld_sumf_bld + subroutine mld_dumf_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_dbaseprc_type + type(psb_dspmat_type), intent(inout) :: a + type(psb_desc_type), intent(in) :: desc_a + type(mld_dbaseprc_type), intent(inout) :: p + integer, intent(out) :: info + end subroutine mld_dumf_bld + subroutine mld_cumf_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_cbaseprc_type + type(psb_cspmat_type), intent(in) :: a + type(psb_desc_type), intent(in) :: desc_a + type(mld_cbaseprc_type), intent(inout) :: p + integer, intent(out) :: info + end subroutine mld_cumf_bld + subroutine mld_zumf_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_zbaseprc_type + type(psb_zspmat_type), intent(in) :: a + type(psb_desc_type), intent(in) :: desc_a + type(mld_zbaseprc_type), intent(inout) :: p + integer, intent(out) :: info + end subroutine mld_zumf_bld + end interface + + interface mld_ilu0_fact + subroutine mld_silu0_fact(ialg,a,l,u,d,info,blck) + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + integer, intent(in) :: ialg + integer, intent(out) :: info + type(psb_sspmat_type),intent(in) :: a + type(psb_sspmat_type),intent(inout) :: l,u + type(psb_sspmat_type),intent(in), optional, target :: blck + real(psb_spk_), intent(inout) :: d(:) + end subroutine mld_silu0_fact + subroutine mld_dilu0_fact(ialg,a,l,u,d,info,blck) + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + integer, intent(in) :: ialg + integer, intent(out) :: info + type(psb_dspmat_type),intent(in) :: a + type(psb_dspmat_type),intent(inout) :: l,u + type(psb_dspmat_type),intent(in), optional, target :: blck + real(psb_dpk_), intent(inout) :: d(:) + end subroutine mld_dilu0_fact + subroutine mld_cilu0_fact(ialg,a,l,u,d,info,blck) + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + integer, intent(in) :: ialg + integer, intent(out) :: info + type(psb_cspmat_type),intent(in) :: a + type(psb_cspmat_type),intent(inout) :: l,u + type(psb_cspmat_type),intent(in), optional, target :: blck + complex(psb_spk_), intent(inout) :: d(:) + end subroutine mld_cilu0_fact + subroutine mld_zilu0_fact(ialg,a,l,u,d,info,blck) + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + integer, intent(in) :: ialg + integer, intent(out) :: info + type(psb_zspmat_type),intent(in) :: a + type(psb_zspmat_type),intent(inout) :: l,u + type(psb_zspmat_type),intent(in), optional, target :: blck + complex(psb_dpk_), intent(inout) :: d(:) + end subroutine mld_zilu0_fact + end interface + + interface mld_iluk_fact + subroutine mld_siluk_fact(fill_in,ialg,a,l,u,d,info,blck) + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + integer, intent(in) :: fill_in,ialg + integer, intent(out) :: info + type(psb_sspmat_type),intent(in) :: a + type(psb_sspmat_type),intent(inout) :: l,u + type(psb_sspmat_type),intent(in), optional, target :: blck + real(psb_spk_), intent(inout) :: d(:) + end subroutine mld_siluk_fact + subroutine mld_diluk_fact(fill_in,ialg,a,l,u,d,info,blck) + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + integer, intent(in) :: fill_in,ialg + integer, intent(out) :: info + type(psb_dspmat_type),intent(in) :: a + type(psb_dspmat_type),intent(inout) :: l,u + type(psb_dspmat_type),intent(in), optional, target :: blck + real(psb_dpk_), intent(inout) :: d(:) + end subroutine mld_diluk_fact + subroutine mld_ciluk_fact(fill_in,ialg,a,l,u,d,info,blck) + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + integer, intent(in) :: fill_in,ialg + integer, intent(out) :: info + type(psb_cspmat_type),intent(in) :: a + type(psb_cspmat_type),intent(inout) :: l,u + type(psb_cspmat_type),intent(in), optional, target :: blck + complex(psb_spk_), intent(inout) :: d(:) + end subroutine mld_ciluk_fact + subroutine mld_ziluk_fact(fill_in,ialg,a,l,u,d,info,blck) + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + integer, intent(in) :: fill_in,ialg + integer, intent(out) :: info + type(psb_zspmat_type),intent(in) :: a + type(psb_zspmat_type),intent(inout) :: l,u + type(psb_zspmat_type),intent(in), optional, target :: blck + complex(psb_dpk_), intent(inout) :: d(:) + end subroutine mld_ziluk_fact + end interface + + interface mld_ilut_fact + subroutine mld_silut_fact(fill_in,thres,a,l,u,d,info,blck) + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + integer, intent(in) :: fill_in + real(psb_spk_), intent(in) :: thres + integer, intent(out) :: info + type(psb_sspmat_type),intent(in) :: a + type(psb_sspmat_type),intent(inout) :: l,u + type(psb_sspmat_type),intent(in), optional, target :: blck + real(psb_spk_), intent(inout) :: d(:) + end subroutine mld_silut_fact + subroutine mld_dilut_fact(fill_in,thres,a,l,u,d,info,blck) + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + integer, intent(in) :: fill_in + real(psb_dpk_), intent(in) :: thres + integer, intent(out) :: info + type(psb_dspmat_type),intent(in) :: a + type(psb_dspmat_type),intent(inout) :: l,u + type(psb_dspmat_type),intent(in), optional, target :: blck + real(psb_dpk_), intent(inout) :: d(:) + end subroutine mld_dilut_fact + subroutine mld_cilut_fact(fill_in,thres,a,l,u,d,info,blck) + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + integer, intent(in) :: fill_in + real(psb_spk_), intent(in) :: thres + integer, intent(out) :: info + type(psb_cspmat_type),intent(in) :: a + type(psb_cspmat_type),intent(inout) :: l,u + type(psb_cspmat_type),intent(in), optional, target :: blck + complex(psb_spk_), intent(inout) :: d(:) + end subroutine mld_cilut_fact + subroutine mld_zilut_fact(fill_in,thres,a,l,u,d,info,blck) + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + integer, intent(in) :: fill_in + real(psb_dpk_), intent(in) :: thres + integer, intent(out) :: info + type(psb_zspmat_type),intent(in) :: a + type(psb_zspmat_type),intent(inout) :: l,u + type(psb_zspmat_type),intent(in), optional, target :: blck + complex(psb_dpk_), intent(inout) :: d(:) + end subroutine mld_zilut_fact + end interface + end module mld_inner_mod diff --git a/mlprec/mld_prec_mod.f90 b/mlprec/mld_prec_mod.f90 index b80df25b..eca3068c 100644 --- a/mlprec/mld_prec_mod.f90 +++ b/mlprec/mld_prec_mod.f90 @@ -49,32 +49,32 @@ module mld_prec_mod interface mld_precinit subroutine mld_sprecinit(p,ptype,info,nlev) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sprec_type type(mld_sprec_type), intent(inout) :: p character(len=*), intent(in) :: ptype integer, intent(out) :: info integer, optional, intent(in) :: nlev end subroutine mld_sprecinit subroutine mld_dprecinit(p,ptype,info,nlev) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dprec_type type(mld_dprec_type), intent(inout) :: p character(len=*), intent(in) :: ptype integer, intent(out) :: info integer, optional, intent(in) :: nlev end subroutine mld_dprecinit subroutine mld_cprecinit(p,ptype,info,nlev) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cprec_type type(mld_cprec_type), intent(inout) :: p character(len=*), intent(in) :: ptype integer, intent(out) :: info integer, optional, intent(in) :: nlev end subroutine mld_cprecinit subroutine mld_zprecinit(p,ptype,info,nlev) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zprec_type type(mld_zprec_type), intent(inout) :: p character(len=*), intent(in) :: ptype integer, intent(out) :: info @@ -84,8 +84,8 @@ module mld_prec_mod interface mld_precset subroutine mld_sprecseti(p,what,val,info,ilev) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sprec_type type(mld_sprec_type), intent(inout) :: p integer, intent(in) :: what integer, intent(in) :: val @@ -93,8 +93,8 @@ module mld_prec_mod integer, optional, intent(in) :: ilev end subroutine mld_sprecseti subroutine mld_sprecsetr(p,what,val,info,ilev) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sprec_type type(mld_sprec_type), intent(inout) :: p integer, intent(in) :: what real(psb_spk_), intent(in) :: val @@ -102,8 +102,8 @@ module mld_prec_mod integer, optional, intent(in) :: ilev end subroutine mld_sprecsetr subroutine mld_sprecsetc(p,what,string,info,ilev) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sprec_type type(mld_sprec_type), intent(inout) :: p integer, intent(in) :: what character(len=*), intent(in) :: string @@ -111,8 +111,8 @@ module mld_prec_mod integer, optional, intent(in) :: ilev end subroutine mld_sprecsetc subroutine mld_dprecseti(p,what,val,info,ilev) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dprec_type type(mld_dprec_type), intent(inout) :: p integer, intent(in) :: what integer, intent(in) :: val @@ -120,17 +120,17 @@ module mld_prec_mod integer, optional, intent(in) :: ilev end subroutine mld_dprecseti subroutine mld_dprecsetr(p,what,val,info,ilev) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dprec_type type(mld_dprec_type), intent(inout) :: p integer, intent(in) :: what - real(psb_dpk_), intent(in) :: val + real(psb_dpk_), intent(in) :: val integer, intent(out) :: info integer, optional, intent(in) :: ilev end subroutine mld_dprecsetr subroutine mld_dprecsetc(p,what,string,info,ilev) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dprec_type type(mld_dprec_type), intent(inout) :: p integer, intent(in) :: what character(len=*), intent(in) :: string @@ -138,8 +138,8 @@ module mld_prec_mod integer, optional, intent(in) :: ilev end subroutine mld_dprecsetc subroutine mld_cprecseti(p,what,val,info,ilev) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cprec_type type(mld_cprec_type), intent(inout) :: p integer, intent(in) :: what integer, intent(in) :: val @@ -147,17 +147,17 @@ module mld_prec_mod integer, optional, intent(in) :: ilev end subroutine mld_cprecseti subroutine mld_cprecsetr(p,what,val,info,ilev) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cprec_type type(mld_cprec_type), intent(inout) :: p integer, intent(in) :: what - real(psb_spk_), intent(in) :: val + real(psb_spk_), intent(in) :: val integer, intent(out) :: info integer, optional, intent(in) :: ilev end subroutine mld_cprecsetr subroutine mld_cprecsetc(p,what,string,info,ilev) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cprec_type type(mld_cprec_type), intent(inout) :: p integer, intent(in) :: what character(len=*), intent(in) :: string @@ -165,8 +165,8 @@ module mld_prec_mod integer, optional, intent(in) :: ilev end subroutine mld_cprecsetc subroutine mld_zprecseti(p,what,val,info,ilev) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zprec_type type(mld_zprec_type), intent(inout) :: p integer, intent(in) :: what integer, intent(in) :: val @@ -174,17 +174,17 @@ module mld_prec_mod integer, optional, intent(in) :: ilev end subroutine mld_zprecseti subroutine mld_zprecsetr(p,what,val,info,ilev) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zprec_type type(mld_zprec_type), intent(inout) :: p integer, intent(in) :: what - real(psb_dpk_), intent(in) :: val + real(psb_dpk_), intent(in) :: val integer, intent(out) :: info integer, optional, intent(in) :: ilev end subroutine mld_zprecsetr subroutine mld_zprecsetc(p,what,string,info,ilev) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zprec_type type(mld_zprec_type), intent(inout) :: p integer, intent(in) :: what character(len=*), intent(in) :: string @@ -195,26 +195,26 @@ module mld_prec_mod interface mld_precfree subroutine mld_sprecfree(p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sprec_type type(mld_sprec_type), intent(inout) :: p integer, intent(out) :: info end subroutine mld_sprecfree subroutine mld_dprecfree(p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dprec_type type(mld_dprec_type), intent(inout) :: p integer, intent(out) :: info end subroutine mld_dprecfree subroutine mld_cprecfree(p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cprec_type type(mld_cprec_type), intent(inout) :: p integer, intent(out) :: info end subroutine mld_cprecfree subroutine mld_zprecfree(p,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zprec_type type(mld_zprec_type), intent(inout) :: p integer, intent(out) :: info end subroutine mld_zprecfree @@ -222,8 +222,8 @@ module mld_prec_mod interface mld_precaply subroutine mld_sprec_aply(prec,x,y,desc_data,info,trans,work) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sprec_type type(psb_desc_type),intent(in) :: desc_data type(mld_sprec_type), intent(in) :: prec real(psb_spk_),intent(in) :: x(:) @@ -233,8 +233,8 @@ module mld_prec_mod real(psb_spk_),intent(inout), optional, target :: work(:) end subroutine mld_sprec_aply subroutine mld_sprec_aply1(prec,x,desc_data,info,trans) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sprec_type type(psb_desc_type),intent(in) :: desc_data type(mld_sprec_type), intent(in) :: prec real(psb_spk_),intent(inout) :: x(:) @@ -242,8 +242,8 @@ module mld_prec_mod character(len=1), optional :: trans end subroutine mld_sprec_aply1 subroutine mld_dprec_aply(prec,x,y,desc_data,info,trans,work) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dprec_type type(psb_desc_type),intent(in) :: desc_data type(mld_dprec_type), intent(in) :: prec real(psb_dpk_),intent(in) :: x(:) @@ -253,8 +253,8 @@ module mld_prec_mod real(psb_dpk_),intent(inout), optional, target :: work(:) end subroutine mld_dprec_aply subroutine mld_dprec_aply1(prec,x,desc_data,info,trans) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dprec_type type(psb_desc_type),intent(in) :: desc_data type(mld_dprec_type), intent(in) :: prec real(psb_dpk_),intent(inout) :: x(:) @@ -262,8 +262,8 @@ module mld_prec_mod character(len=1), optional :: trans end subroutine mld_dprec_aply1 subroutine mld_cprec_aply(prec,x,y,desc_data,info,trans,work) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cprec_type type(psb_desc_type),intent(in) :: desc_data type(mld_cprec_type), intent(in) :: prec complex(psb_spk_),intent(in) :: x(:) @@ -273,8 +273,8 @@ module mld_prec_mod complex(psb_spk_),intent(inout), optional, target :: work(:) end subroutine mld_cprec_aply subroutine mld_cprec_aply1(prec,x,desc_data,info,trans) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cprec_type type(psb_desc_type),intent(in) :: desc_data type(mld_cprec_type), intent(in) :: prec complex(psb_spk_),intent(inout) :: x(:) @@ -282,8 +282,8 @@ module mld_prec_mod character(len=1), optional :: trans end subroutine mld_cprec_aply1 subroutine mld_zprec_aply(prec,x,y,desc_data,info,trans,work) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zprec_type type(psb_desc_type),intent(in) :: desc_data type(mld_zprec_type), intent(in) :: prec complex(psb_dpk_),intent(in) :: x(:) @@ -293,8 +293,8 @@ module mld_prec_mod complex(psb_dpk_),intent(inout), optional, target :: work(:) end subroutine mld_zprec_aply subroutine mld_zprec_aply1(prec,x,desc_data,info,trans) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zprec_type type(psb_desc_type),intent(in) :: desc_data type(mld_zprec_type), intent(in) :: prec complex(psb_dpk_),intent(inout) :: x(:) @@ -305,8 +305,8 @@ module mld_prec_mod interface mld_precbld subroutine mld_sprecbld(a,desc_a,prec,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_sprec_type implicit none type(psb_sspmat_type), intent(in), target :: a type(psb_desc_type), intent(in), target :: desc_a @@ -315,8 +315,8 @@ module mld_prec_mod !!$ character, intent(in),optional :: upd end subroutine mld_sprecbld subroutine mld_dprecbld(a,desc_a,prec,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_dprec_type implicit none type(psb_dspmat_type), intent(in), target :: a type(psb_desc_type), intent(in), target :: desc_a @@ -325,8 +325,8 @@ module mld_prec_mod !!$ character, intent(in),optional :: upd end subroutine mld_dprecbld subroutine mld_cprecbld(a,desc_a,prec,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_ + use mld_prec_type, only : mld_cprec_type implicit none type(psb_cspmat_type), intent(in), target :: a type(psb_desc_type), intent(in), target :: desc_a @@ -335,8 +335,8 @@ module mld_prec_mod !!$ character, intent(in),optional :: upd end subroutine mld_cprecbld subroutine mld_zprecbld(a,desc_a,prec,info) - use psb_base_mod - use mld_prec_type + use psb_base_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_ + use mld_prec_type, only : mld_zprec_type implicit none type(psb_zspmat_type), intent(in), target :: a type(psb_desc_type), intent(in), target :: desc_a diff --git a/mlprec/mld_prec_type.f90 b/mlprec/mld_prec_type.f90 index e839fd84..a1c37d29 100644 --- a/mlprec/mld_prec_type.f90 +++ b/mlprec/mld_prec_type.f90 @@ -65,7 +65,8 @@ module mld_prec_type use psb_base_mod, only :& & psb_dspmat_type, psb_zspmat_type,& & psb_sspmat_type, psb_cspmat_type,& - & psb_desc_type, psb_inter_desc_type, psb_sizeof, psb_dpk_, psb_spk_ + & psb_desc_type, psb_inter_desc_type, psb_sizeof, psb_dpk_, psb_spk_,& + & psb_sp_free, psb_cdfree ! ! Type: mld_dprec_type, mld_zprec_type @@ -403,7 +404,6 @@ contains ! function mld_sprec_sizeof(prec) - use psb_base_mod type(mld_sprec_type), intent(in) :: prec integer :: mld_dprec_sizeof integer :: val,i @@ -417,7 +417,6 @@ contains end function mld_sprec_sizeof function mld_dprec_sizeof(prec) - use psb_base_mod type(mld_dprec_type), intent(in) :: prec integer :: mld_dprec_sizeof integer :: val,i @@ -431,7 +430,6 @@ contains end function mld_dprec_sizeof function mld_cprec_sizeof(prec) - use psb_base_mod type(mld_cprec_type), intent(in) :: prec integer :: mld_cprec_sizeof integer :: val,i @@ -445,7 +443,6 @@ contains end function mld_cprec_sizeof function mld_zprec_sizeof(prec) - use psb_base_mod type(mld_zprec_type), intent(in) :: prec integer :: mld_zprec_sizeof integer :: val,i @@ -463,7 +460,6 @@ contains ! function mld_sbaseprc_sizeof(prec) - use psb_base_mod type(mld_sbaseprc_type), intent(in) :: prec integer :: mld_dbaseprc_sizeof integer :: val,i @@ -500,7 +496,6 @@ contains end function mld_sbaseprc_sizeof function mld_dbaseprc_sizeof(prec) - use psb_base_mod type(mld_dbaseprc_type), intent(in) :: prec integer :: mld_dbaseprc_sizeof integer :: val,i @@ -537,7 +532,6 @@ contains end function mld_dbaseprc_sizeof function mld_cbaseprc_sizeof(prec) - use psb_base_mod type(mld_cbaseprc_type), intent(in) :: prec integer :: mld_zbaseprc_sizeof integer :: val,i @@ -574,7 +568,6 @@ contains end function mld_cbaseprc_sizeof function mld_zbaseprc_sizeof(prec) - use psb_base_mod type(mld_zbaseprc_type), intent(in) :: prec integer :: mld_zbaseprc_sizeof integer :: val,i @@ -626,24 +619,20 @@ contains ! The preconditioner data structure to be printed out. ! subroutine mld_out_prec_descr(p) - use psb_base_mod type(mld_dprec_type), intent(in) :: p call mld_file_prec_descr(6,p) end subroutine mld_out_prec_descr subroutine mld_zout_prec_descr(p) - use psb_base_mod type(mld_zprec_type), intent(in) :: p call mld_zfile_prec_descr(6,p) end subroutine mld_zout_prec_descr subroutine mld_sout_prec_descr(p) - use psb_base_mod type(mld_sprec_type), intent(in) :: p call mld_sfile_prec_descr(6,p) end subroutine mld_sout_prec_descr subroutine mld_cout_prec_descr(p) - use psb_base_mod type(mld_cprec_type), intent(in) :: p call mld_cfile_prec_descr(6,p) end subroutine mld_cout_prec_descr @@ -663,7 +652,6 @@ contains ! subroutine mld_file_prec_descr(iout,p) - use psb_base_mod ! Arguments integer, intent(in) :: iout @@ -768,7 +756,6 @@ contains subroutine mld_sfile_prec_descr(iout,p) - use psb_base_mod ! Arguments integer, intent(in) :: iout @@ -872,7 +859,6 @@ contains end subroutine mld_sfile_prec_descr function mld_prec_short_descr(p) - use psb_base_mod type(mld_dprec_type), intent(in) :: p character(len=20) :: mld_prec_short_descr mld_prec_short_descr = ' ' @@ -894,7 +880,6 @@ contains ! subroutine mld_zfile_prec_descr(iout,p) - use psb_base_mod ! Arguments integer, intent(in) :: iout @@ -999,8 +984,6 @@ contains subroutine mld_cfile_prec_descr(iout,p) - use psb_base_mod - ! Arguments integer, intent(in) :: iout type(mld_cprec_type), intent(in) :: p @@ -1103,7 +1086,6 @@ contains end subroutine mld_cfile_prec_descr function mld_zprec_short_descr(p) - use psb_base_mod type(mld_zprec_type), intent(in) :: p character(len=20) :: mld_zprec_short_descr mld_zprec_short_descr = ' ' @@ -1116,7 +1098,6 @@ contains ! function is_legal_base_prec(ip) - use psb_base_mod integer, intent(in) :: ip logical :: is_legal_base_prec @@ -1124,7 +1105,6 @@ contains return end function is_legal_base_prec function is_legal_n_ovr(ip) - use psb_base_mod integer, intent(in) :: ip logical :: is_legal_n_ovr @@ -1132,14 +1112,12 @@ contains return end function is_legal_n_ovr function is_legal_renum(ip) - use psb_base_mod integer, intent(in) :: ip logical :: is_legal_renum is_legal_renum = ((ip >= 0).and.(ip <= mld_max_renum_)) return end function is_legal_renum function is_legal_jac_sweeps(ip) - use psb_base_mod integer, intent(in) :: ip logical :: is_legal_jac_sweeps @@ -1147,21 +1125,18 @@ contains return end function is_legal_jac_sweeps function is_legal_prolong(ip) - use psb_base_mod integer, intent(in) :: ip logical :: is_legal_prolong is_legal_prolong = ((ip>=psb_none_).and.(ip<=psb_square_root_)) return end function is_legal_prolong function is_legal_restrict(ip) - use psb_base_mod integer, intent(in) :: ip logical :: is_legal_restrict is_legal_restrict = ((ip==psb_nohalo_).or.(ip==psb_halo_)) return end function is_legal_restrict function is_legal_ml_type(ip) - use psb_base_mod integer, intent(in) :: ip logical :: is_legal_ml_type @@ -1169,7 +1144,6 @@ contains return end function is_legal_ml_type function is_legal_ml_aggr_alg(ip) - use psb_base_mod integer, intent(in) :: ip logical :: is_legal_ml_aggr_alg @@ -1177,7 +1151,6 @@ contains return end function is_legal_ml_aggr_alg function is_legal_ml_smooth_pos(ip) - use psb_base_mod integer, intent(in) :: ip logical :: is_legal_ml_smooth_pos @@ -1185,7 +1158,6 @@ contains return end function is_legal_ml_smooth_pos function is_legal_ml_aggr_kind(ip) - use psb_base_mod integer, intent(in) :: ip logical :: is_legal_ml_aggr_kind @@ -1193,7 +1165,6 @@ contains return end function is_legal_ml_aggr_kind function is_legal_ml_coarse_mat(ip) - use psb_base_mod integer, intent(in) :: ip logical :: is_legal_ml_coarse_mat @@ -1201,7 +1172,6 @@ contains return end function is_legal_ml_coarse_mat function is_distr_ml_coarse_mat(ip) - use psb_base_mod integer, intent(in) :: ip logical :: is_distr_ml_coarse_mat @@ -1209,7 +1179,6 @@ contains return end function is_distr_ml_coarse_mat function is_legal_ml_fact(ip) - use psb_base_mod integer, intent(in) :: ip logical :: is_legal_ml_fact ! Here the minimum is really 1, mld_fact_none_ is not acceptable. @@ -1217,7 +1186,6 @@ contains return end function is_legal_ml_fact function is_legal_ml_lev(ip) - use psb_base_mod integer, intent(in) :: ip logical :: is_legal_ml_lev @@ -1225,14 +1193,12 @@ contains return end function is_legal_ml_lev function is_legal_omega(ip) - use psb_base_mod real(psb_dpk_), intent(in) :: ip logical :: is_legal_omega is_legal_omega = ((ip>=0.0d0).and.(ip<=2.0d0)) return end function is_legal_omega function is_legal_fact_thrs(ip) - use psb_base_mod real(psb_dpk_), intent(in) :: ip logical :: is_legal_fact_thrs @@ -1241,14 +1207,12 @@ contains end function is_legal_fact_thrs function is_legal_s_omega(ip) - use psb_base_mod real(psb_spk_), intent(in) :: ip logical :: is_legal_s_omega is_legal_s_omega = ((ip>=0.0).and.(ip<=2.0)) return end function is_legal_s_omega function is_legal_s_fact_thrs(ip) - use psb_base_mod real(psb_spk_), intent(in) :: ip logical :: is_legal_s_fact_thrs @@ -1258,7 +1222,6 @@ contains subroutine mld_icheck_def(ip,name,id,is_legal) - use psb_base_mod integer, intent(inout) :: ip integer, intent(in) :: id character(len=*), intent(in) :: name @@ -1278,13 +1241,12 @@ contains end subroutine mld_icheck_def subroutine mld_scheck_def(ip,name,id,is_legal) - use psb_base_mod real(psb_spk_), intent(inout) :: ip real(psb_spk_), intent(in) :: id character(len=*), intent(in) :: name interface function is_legal(i) - use psb_base_mod + use psb_base_mod, only : psb_spk_ real(psb_spk_), intent(in) :: i logical :: is_legal end function is_legal @@ -1299,13 +1261,12 @@ contains end subroutine mld_scheck_def subroutine mld_dcheck_def(ip,name,id,is_legal) - use psb_base_mod real(psb_dpk_), intent(inout) :: ip real(psb_dpk_), intent(in) :: id character(len=*), intent(in) :: name interface function is_legal(i) - use psb_base_mod + use psb_base_mod, only : psb_dpk_ real(psb_dpk_), intent(in) :: i logical :: is_legal end function is_legal @@ -1320,7 +1281,6 @@ contains end subroutine mld_dcheck_def subroutine mld_sbase_precfree(p,info) - use psb_base_mod type(mld_sbaseprc_type), intent(inout) :: p integer, intent(out) :: info @@ -1397,7 +1357,6 @@ contains end subroutine mld_sbase_precfree subroutine mld_nullify_sbaseprec(p) - use psb_base_mod type(mld_sbaseprc_type), intent(inout) :: p @@ -1408,7 +1367,6 @@ contains subroutine mld_dbase_precfree(p,info) - use psb_base_mod type(mld_dbaseprc_type), intent(inout) :: p integer, intent(out) :: info @@ -1485,7 +1443,6 @@ contains end subroutine mld_dbase_precfree subroutine mld_nullify_dbaseprec(p) - use psb_base_mod type(mld_dbaseprc_type), intent(inout) :: p @@ -1495,7 +1452,6 @@ contains end subroutine mld_nullify_dbaseprec subroutine mld_cbase_precfree(p,info) - use psb_base_mod type(mld_cbaseprc_type), intent(inout) :: p integer, intent(out) :: info integer :: i @@ -1565,7 +1521,6 @@ contains end subroutine mld_cbase_precfree subroutine mld_nullify_cbaseprec(p) - use psb_base_mod type(mld_cbaseprc_type), intent(inout) :: p @@ -1575,7 +1530,6 @@ contains end subroutine mld_nullify_cbaseprec subroutine mld_zbase_precfree(p,info) - use psb_base_mod type(mld_zbaseprc_type), intent(inout) :: p integer, intent(out) :: info integer :: i @@ -1645,7 +1599,6 @@ contains end subroutine mld_zbase_precfree subroutine mld_nullify_zbaseprec(p) - use psb_base_mod type(mld_zbaseprc_type), intent(inout) :: p @@ -1656,7 +1609,6 @@ contains function pr_to_str(iprec) - use psb_base_mod integer, intent(in) :: iprec character(len=10) :: pr_to_str