From 2c2a166f44f4f75cee279f2dbc95af6777b598b0 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Tue, 8 Mar 2011 14:30:45 +0000 Subject: [PATCH] mld2p4-2: mlprec/Makefile mlprec/mld_c_ilu_fact_mod.f90 mlprec/mld_c_ilu_solver.f90 mlprec/mld_cilu0_fact.f90 mlprec/mld_ciluk_fact.f90 mlprec/mld_cilut_fact.f90 mlprec/mld_d_ilu_fact_mod.f90 mlprec/mld_d_ilu_solver.f90 mlprec/mld_dilu0_fact.f90 mlprec/mld_diluk_fact.f90 mlprec/mld_dilut_fact.f90 mlprec/mld_s_ilu_fact_mod.f90 mlprec/mld_s_ilu_solver.f90 mlprec/mld_silu0_fact.f90 mlprec/mld_siluk_fact.f90 mlprec/mld_silut_fact.f90 mlprec/mld_z_ilu_fact_mod.f90 mlprec/mld_z_ilu_solver.f90 mlprec/mld_zilu0_fact.f90 mlprec/mld_ziluk_fact.f90 mlprec/mld_zilut_fact.f90 Added mld_X_ilu_fact_mod for interfaces into factorizations, for usage in extensions to the solvers. --- mlprec/Makefile | 16 +++++++++---- mlprec/mld_c_ilu_fact_mod.f90 | 43 +++++++++++++++++++++++++++++++++++ mlprec/mld_c_ilu_solver.f90 | 40 +------------------------------- mlprec/mld_cilu0_fact.f90 | 2 +- mlprec/mld_ciluk_fact.f90 | 2 +- mlprec/mld_cilut_fact.f90 | 2 +- mlprec/mld_d_ilu_fact_mod.f90 | 43 +++++++++++++++++++++++++++++++++++ mlprec/mld_d_ilu_solver.f90 | 39 +------------------------------ mlprec/mld_dilu0_fact.f90 | 2 +- mlprec/mld_diluk_fact.f90 | 2 +- mlprec/mld_dilut_fact.f90 | 2 +- mlprec/mld_s_ilu_fact_mod.f90 | 43 +++++++++++++++++++++++++++++++++++ mlprec/mld_s_ilu_solver.f90 | 40 +------------------------------- mlprec/mld_silu0_fact.f90 | 2 +- mlprec/mld_siluk_fact.f90 | 2 +- mlprec/mld_silut_fact.f90 | 2 +- mlprec/mld_z_ilu_fact_mod.f90 | 43 +++++++++++++++++++++++++++++++++++ mlprec/mld_z_ilu_solver.f90 | 40 +------------------------------- mlprec/mld_zilu0_fact.f90 | 2 +- mlprec/mld_ziluk_fact.f90 | 2 +- mlprec/mld_zilut_fact.f90 | 2 +- 21 files changed, 200 insertions(+), 171 deletions(-) create mode 100644 mlprec/mld_c_ilu_fact_mod.f90 create mode 100644 mlprec/mld_d_ilu_fact_mod.f90 create mode 100644 mlprec/mld_s_ilu_fact_mod.f90 create mode 100644 mlprec/mld_z_ilu_fact_mod.f90 diff --git a/mlprec/Makefile b/mlprec/Makefile index 82fabf81..85ab44bd 100644 --- a/mlprec/Makefile +++ b/mlprec/Makefile @@ -7,19 +7,19 @@ HERE=. FINCLUDES=$(FMFLAG). $(FMFLAG)$(LIBDIR) $(FMFLAG)$(PSBINCDIR) $(FMFLAG)$(PSBLIBDIR) -SMODOBJS=mld_s_prec_type.o mld_s_prec_mod.o mld_s_move_alloc_mod.o \ +SMODOBJS=mld_s_prec_type.o mld_s_prec_mod.o mld_s_move_alloc_mod.o mld_s_ilu_fact_mod.o \ mld_s_inner_mod.o mld_s_ilu_solver.o mld_s_diag_solver.o mld_s_jac_smoother.o mld_s_as_smoother.o \ mld_s_id_solver.o mld_s_slu_solver.o -DMODOBJS=mld_d_prec_type.o mld_d_prec_mod.o mld_d_move_alloc_mod.o \ +DMODOBJS=mld_d_prec_type.o mld_d_prec_mod.o mld_d_move_alloc_mod.o mld_d_ilu_fact_mod.o \ mld_d_inner_mod.o mld_d_ilu_solver.o mld_d_diag_solver.o mld_d_jac_smoother.o mld_d_as_smoother.o \ mld_d_umf_solver.o mld_d_slu_solver.o mld_d_sludist_solver.o mld_d_id_solver.o -CMODOBJS=mld_c_prec_type.o mld_c_prec_mod.o mld_c_move_alloc_mod.o \ +CMODOBJS=mld_c_prec_type.o mld_c_prec_mod.o mld_c_move_alloc_mod.o mld_c_ilu_fact_mod.o \ mld_c_inner_mod.o mld_c_ilu_solver.o mld_c_diag_solver.o mld_c_jac_smoother.o mld_c_as_smoother.o \ mld_c_id_solver.o mld_c_slu_solver.o -ZMODOBJS=mld_z_prec_type.o mld_z_prec_mod.o mld_z_move_alloc_mod.o \ +ZMODOBJS=mld_z_prec_type.o mld_z_prec_mod.o mld_z_move_alloc_mod.o mld_z_ilu_fact_mod.o \ mld_z_inner_mod.o mld_z_ilu_solver.o mld_z_diag_solver.o mld_z_jac_smoother.o mld_z_as_smoother.o \ mld_z_id_solver.o mld_z_umf_solver.o mld_z_slu_solver.o @@ -111,6 +111,8 @@ mld_z_prec_mod.o: mld_z_move_alloc_mod.o mld_d_sludist_solver.o mld_d_slu_solver.o mld_d_umf_solver.o mld_d_diag_solver.o mld_d_ilu_solver.o: mld_d_prec_type.o +mld_d_ilu_fact_mod.o: mld_base_prec_type.o +mld_d_ilu_solver.o mld_d_iluk_fact.o: mld_d_ilu_fact_mod.o mld_d_as_smoother.o mld_d_jac_smoother.o: mld_d_prec_type.o mld_d_jac_smoother.o: mld_d_diag_solver.o mld_dprecinit.o mld_dprecset.o: mld_d_diag_solver.o mld_d_ilu_solver.o \ @@ -118,18 +120,24 @@ mld_dprecinit.o mld_dprecset.o: mld_d_diag_solver.o mld_d_ilu_solver.o \ mld_d_id_solver.o mld_d_slu_solver.o mld_d_sludist_solver.o mld_z_umf_solver.o mld_z_diag_solver.o mld_z_ilu_solver.o: mld_z_prec_type.o +mld_z_ilu_fact_mod.o: mld_base_prec_type.o +mld_z_ilu_solver.o mld_z_iluk_fact.o: mld_z_ilu_fact_mod.o mld_z_as_smoother.o mld_z_jac_smoother.o: mld_z_prec_type.o mld_z_jac_smoother.o: mld_z_diag_solver.o mld_zprecinit.o mld_zprecset.o: mld_z_diag_solver.o mld_z_ilu_solver.o \ mld_z_umf_solver.o mld_z_as_smoother.o mld_z_jac_smoother.o mld_s_diag_solver.o mld_s_ilu_solver.o: mld_s_prec_type.o +mld_s_ilu_fact_mod.o: mld_base_prec_type.o +mld_s_ilu_solver.o mld_s_iluk_fact.o: mld_s_ilu_fact_mod.o mld_s_as_smoother.o mld_s_jac_smoother.o: mld_s_prec_type.o mld_s_jac_smoother.o: mld_s_diag_solver.o mld_sprecinit.o mld_sprecset.o: mld_s_diag_solver.o mld_s_ilu_solver.o \ mld_s_as_smoother.o mld_s_jac_smoother.o mld_c_diag_solver.o mld_c_ilu_solver.o: mld_c_prec_type.o +mld_c_ilu_fact_mod.o: mld_base_prec_type.o +mld_c_ilu_solver.o mld_c_iluk_fact.o: mld_c_ilu_fact_mod.o mld_c_as_smoother.o mld_c_jac_smoother.o: mld_c_prec_type.o mld_c_jac_smoother.o: mld_c_diag_solver.o mld_cprecinit.o mld_cprecset.o: mld_c_diag_solver.o mld_c_ilu_solver.o \ diff --git a/mlprec/mld_c_ilu_fact_mod.f90 b/mlprec/mld_c_ilu_fact_mod.f90 new file mode 100644 index 00000000..1beccfda --- /dev/null +++ b/mlprec/mld_c_ilu_fact_mod.f90 @@ -0,0 +1,43 @@ +module mld_c_ilu_fact_mod + + use mld_base_prec_type + + interface mld_ilu0_fact + subroutine mld_cilu0_fact(ialg,a,l,u,d,info,blck,upd) + import psb_cspmat_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 + character, intent(in), optional :: upd + complex(psb_spk_), intent(inout) :: d(:) + end subroutine mld_cilu0_fact + end interface + + interface mld_iluk_fact + subroutine mld_ciluk_fact(fill_in,ialg,a,l,u,d,info,blck) + import psb_cspmat_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 + end interface + + interface mld_ilut_fact + subroutine mld_cilut_fact(fill_in,thres,a,l,u,d,info,blck) + import psb_cspmat_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 + end interface + +end module mld_c_ilu_fact_mod diff --git a/mlprec/mld_c_ilu_solver.f90 b/mlprec/mld_c_ilu_solver.f90 index 04c4bb33..b117475e 100644 --- a/mlprec/mld_c_ilu_solver.f90 +++ b/mlprec/mld_c_ilu_solver.f90 @@ -46,6 +46,7 @@ module mld_c_ilu_solver use mld_c_prec_type + use mld_c_ilu_fact_mod type, extends(mld_c_base_solver_type) :: mld_c_ilu_solver_type type(psb_cspmat_type) :: l, u @@ -72,45 +73,6 @@ module mld_c_ilu_solver & c_ilu_solver_descr, c_ilu_solver_sizeof, & & c_ilu_solver_default, c_ilu_solver_dmp - - interface mld_ilu0_fact - subroutine mld_cilu0_fact(ialg,a,l,u,d,info,blck,upd) - use psb_sparse_mod, only : psb_cspmat_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 - character, intent(in), optional :: upd - complex(psb_spk_), intent(inout) :: d(:) - end subroutine mld_cilu0_fact - end interface - - interface mld_iluk_fact - subroutine mld_ciluk_fact(fill_in,ialg,a,l,u,d,info,blck) - use psb_sparse_mod, only : psb_cspmat_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 - end interface - - interface mld_ilut_fact - subroutine mld_cilut_fact(fill_in,thres,a,l,u,d,info,blck) - use psb_sparse_mod, only : psb_cspmat_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 - end interface - character(len=15), parameter, private :: & & fact_names(0:mld_slv_delta_+4)=(/& & 'none ','none ',& diff --git a/mlprec/mld_cilu0_fact.f90 b/mlprec/mld_cilu0_fact.f90 index 6346035d..8442b7a6 100644 --- a/mlprec/mld_cilu0_fact.f90 +++ b/mlprec/mld_cilu0_fact.f90 @@ -102,7 +102,7 @@ subroutine mld_cilu0_fact(ialg,a,l,u,d,info,blck,upd) use psb_sparse_mod - use mld_c_inner_mod!, mld_protect_name => mld_cilu0_fact + use mld_c_ilu_fact_mod, mld_protect_name => mld_cilu0_fact implicit none diff --git a/mlprec/mld_ciluk_fact.f90 b/mlprec/mld_ciluk_fact.f90 index b0e48f37..51f6a2f1 100644 --- a/mlprec/mld_ciluk_fact.f90 +++ b/mlprec/mld_ciluk_fact.f90 @@ -99,7 +99,7 @@ subroutine mld_ciluk_fact(fill_in,ialg,a,l,u,d,info,blck) use psb_sparse_mod - use mld_c_inner_mod!, mld_protect_name => mld_ciluk_fact + use mld_c_ilu_fact_mod, mld_protect_name => mld_ciluk_fact implicit none diff --git a/mlprec/mld_cilut_fact.f90 b/mlprec/mld_cilut_fact.f90 index 10cd7005..cfce092c 100644 --- a/mlprec/mld_cilut_fact.f90 +++ b/mlprec/mld_cilut_fact.f90 @@ -95,7 +95,7 @@ subroutine mld_cilut_fact(fill_in,thres,a,l,u,d,info,blck) use psb_sparse_mod - use mld_c_inner_mod!, mld_protect_name => mld_cilut_fact + use mld_c_ilu_fact_mod, mld_protect_name => mld_cilut_fact implicit none diff --git a/mlprec/mld_d_ilu_fact_mod.f90 b/mlprec/mld_d_ilu_fact_mod.f90 new file mode 100644 index 00000000..dbec54e3 --- /dev/null +++ b/mlprec/mld_d_ilu_fact_mod.f90 @@ -0,0 +1,43 @@ +module mld_d_ilu_fact_mod + + use mld_base_prec_type + + interface mld_ilu0_fact + subroutine mld_dilu0_fact(ialg,a,l,u,d,info,blck,upd) + import psb_dspmat_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 + character, intent(in), optional :: upd + real(psb_dpk_), intent(inout) :: d(:) + end subroutine mld_dilu0_fact + end interface + + interface mld_iluk_fact + subroutine mld_diluk_fact(fill_in,ialg,a,l,u,d,info,blck) + import psb_dspmat_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 + end interface + + interface mld_ilut_fact + subroutine mld_dilut_fact(fill_in,thres,a,l,u,d,info,blck) + import psb_dspmat_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 + end interface + +end module mld_d_ilu_fact_mod diff --git a/mlprec/mld_d_ilu_solver.f90 b/mlprec/mld_d_ilu_solver.f90 index c25d2363..7ebb7092 100644 --- a/mlprec/mld_d_ilu_solver.f90 +++ b/mlprec/mld_d_ilu_solver.f90 @@ -46,6 +46,7 @@ module mld_d_ilu_solver use mld_d_prec_type + use mld_d_ilu_fact_mod type, extends(mld_d_base_solver_type) :: mld_d_ilu_solver_type type(psb_dspmat_type) :: l, u @@ -73,44 +74,6 @@ module mld_d_ilu_solver & d_ilu_solver_default, d_ilu_solver_dmp - interface mld_ilu0_fact - subroutine mld_dilu0_fact(ialg,a,l,u,d,info,blck,upd) - use psb_sparse_mod, only : psb_dspmat_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 - character, intent(in), optional :: upd - real(psb_dpk_), intent(inout) :: d(:) - end subroutine mld_dilu0_fact - end interface - - interface mld_iluk_fact - subroutine mld_diluk_fact(fill_in,ialg,a,l,u,d,info,blck) - use psb_sparse_mod, only : psb_dspmat_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 - end interface - - interface mld_ilut_fact - subroutine mld_dilut_fact(fill_in,thres,a,l,u,d,info,blck) - use psb_sparse_mod, only : psb_dspmat_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 - end interface - character(len=15), parameter, private :: & & fact_names(0:mld_slv_delta_+4)=(/& & 'none ','none ',& diff --git a/mlprec/mld_dilu0_fact.f90 b/mlprec/mld_dilu0_fact.f90 index fcf89e6d..23492248 100644 --- a/mlprec/mld_dilu0_fact.f90 +++ b/mlprec/mld_dilu0_fact.f90 @@ -102,7 +102,7 @@ subroutine mld_dilu0_fact(ialg,a,l,u,d,info,blck, upd) use psb_sparse_mod - use mld_d_inner_mod!, mld_protect_name => mld_dilu0_fact + use mld_d_ilu_fact_mod, mld_protect_name => mld_dilu0_fact implicit none diff --git a/mlprec/mld_diluk_fact.f90 b/mlprec/mld_diluk_fact.f90 index feee2bd2..7c3cb538 100644 --- a/mlprec/mld_diluk_fact.f90 +++ b/mlprec/mld_diluk_fact.f90 @@ -99,7 +99,7 @@ subroutine mld_diluk_fact(fill_in,ialg,a,l,u,d,info,blck) use psb_sparse_mod - use mld_d_inner_mod!, mld_protect_name => mld_diluk_fact + use mld_d_ilu_fact_mod, mld_protect_name => mld_diluk_fact implicit none diff --git a/mlprec/mld_dilut_fact.f90 b/mlprec/mld_dilut_fact.f90 index 919a4c0a..ca099bc5 100644 --- a/mlprec/mld_dilut_fact.f90 +++ b/mlprec/mld_dilut_fact.f90 @@ -95,7 +95,7 @@ subroutine mld_dilut_fact(fill_in,thres,a,l,u,d,info,blck) use psb_sparse_mod - use mld_d_inner_mod!, mld_protect_name => mld_dilut_fact + use mld_d_ilu_fact_mod, mld_protect_name => mld_dilut_fact implicit none diff --git a/mlprec/mld_s_ilu_fact_mod.f90 b/mlprec/mld_s_ilu_fact_mod.f90 new file mode 100644 index 00000000..e9afec37 --- /dev/null +++ b/mlprec/mld_s_ilu_fact_mod.f90 @@ -0,0 +1,43 @@ +module mld_s_ilu_fact_mod + + use mld_base_prec_type + + interface mld_ilu0_fact + subroutine mld_silu0_fact(ialg,a,l,u,d,info,blck,upd) + import psb_sspmat_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 + character, intent(in), optional :: upd + real(psb_spk_), intent(inout) :: d(:) + end subroutine mld_silu0_fact + end interface + + interface mld_iluk_fact + subroutine mld_siluk_fact(fill_in,ialg,a,l,u,d,info,blck) + import psb_sspmat_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 + end interface + + interface mld_ilut_fact + subroutine mld_silut_fact(fill_in,thres,a,l,u,d,info,blck) + import psb_sspmat_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 + end interface + +end module mld_s_ilu_fact_mod diff --git a/mlprec/mld_s_ilu_solver.f90 b/mlprec/mld_s_ilu_solver.f90 index b1f02405..27e22c1f 100644 --- a/mlprec/mld_s_ilu_solver.f90 +++ b/mlprec/mld_s_ilu_solver.f90 @@ -46,6 +46,7 @@ module mld_s_ilu_solver use mld_s_prec_type + use mld_s_ilu_fact_mod type, extends(mld_s_base_solver_type) :: mld_s_ilu_solver_type type(psb_sspmat_type) :: l, u @@ -72,45 +73,6 @@ module mld_s_ilu_solver & s_ilu_solver_descr, s_ilu_solver_sizeof, & & s_ilu_solver_default, s_ilu_solver_dmp - - interface mld_ilu0_fact - subroutine mld_silu0_fact(ialg,a,l,u,d,info,blck,upd) - use psb_sparse_mod, only : psb_sspmat_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 - character, intent(in), optional :: upd - real(psb_spk_), intent(inout) :: d(:) - end subroutine mld_silu0_fact - end interface - - interface mld_iluk_fact - subroutine mld_siluk_fact(fill_in,ialg,a,l,u,d,info,blck) - use psb_sparse_mod, only : psb_sspmat_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 - end interface - - interface mld_ilut_fact - subroutine mld_silut_fact(fill_in,thres,a,l,u,d,info,blck) - use psb_sparse_mod, only : psb_sspmat_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 - end interface - character(len=15), parameter, private :: & & fact_names(0:mld_slv_delta_+4)=(/& & 'none ','none ',& diff --git a/mlprec/mld_silu0_fact.f90 b/mlprec/mld_silu0_fact.f90 index 08b0c5de..2afd8df5 100644 --- a/mlprec/mld_silu0_fact.f90 +++ b/mlprec/mld_silu0_fact.f90 @@ -102,7 +102,7 @@ subroutine mld_silu0_fact(ialg,a,l,u,d,info,blck,upd) use psb_sparse_mod - use mld_s_inner_mod!, mld_protect_name => mld_silu0_fact + use mld_s_ilu_fact_mod, mld_protect_name => mld_silu0_fact implicit none diff --git a/mlprec/mld_siluk_fact.f90 b/mlprec/mld_siluk_fact.f90 index 1de372c6..793479f0 100644 --- a/mlprec/mld_siluk_fact.f90 +++ b/mlprec/mld_siluk_fact.f90 @@ -99,7 +99,7 @@ subroutine mld_siluk_fact(fill_in,ialg,a,l,u,d,info,blck) use psb_sparse_mod - use mld_s_inner_mod!, mld_protect_name => mld_siluk_fact + use mld_s_ilu_fact_mod, mld_protect_name => mld_siluk_fact implicit none diff --git a/mlprec/mld_silut_fact.f90 b/mlprec/mld_silut_fact.f90 index 07a511ec..6c7b0e0f 100644 --- a/mlprec/mld_silut_fact.f90 +++ b/mlprec/mld_silut_fact.f90 @@ -95,7 +95,7 @@ subroutine mld_silut_fact(fill_in,thres,a,l,u,d,info,blck) use psb_sparse_mod - use mld_s_inner_mod!, mld_protect_name => mld_silut_fact + use mld_s_ilu_fact_mod, mld_protect_name => mld_silut_fact implicit none diff --git a/mlprec/mld_z_ilu_fact_mod.f90 b/mlprec/mld_z_ilu_fact_mod.f90 new file mode 100644 index 00000000..831092f3 --- /dev/null +++ b/mlprec/mld_z_ilu_fact_mod.f90 @@ -0,0 +1,43 @@ +module mld_z_ilu_fact_mod + + use mld_base_prec_type + + interface mld_ilu0_fact + subroutine mld_zilu0_fact(ialg,a,l,u,d,info,blck,upd) + import psb_zspmat_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 + character, intent(in), optional :: upd + complex(psb_dpk_), intent(inout) :: d(:) + end subroutine mld_zilu0_fact + end interface + + interface mld_iluk_fact + subroutine mld_ziluk_fact(fill_in,ialg,a,l,u,d,info,blck) + import psb_zspmat_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_zilut_fact(fill_in,thres,a,l,u,d,info,blck) + import psb_zspmat_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_z_ilu_fact_mod diff --git a/mlprec/mld_z_ilu_solver.f90 b/mlprec/mld_z_ilu_solver.f90 index 5a36ae77..fdbaa5ca 100644 --- a/mlprec/mld_z_ilu_solver.f90 +++ b/mlprec/mld_z_ilu_solver.f90 @@ -46,6 +46,7 @@ module mld_z_ilu_solver use mld_z_prec_type + use mld_z_ilu_fact_mod type, extends(mld_z_base_solver_type) :: mld_z_ilu_solver_type type(psb_zspmat_type) :: l, u @@ -72,45 +73,6 @@ module mld_z_ilu_solver & z_ilu_solver_descr, z_ilu_solver_sizeof, & & z_ilu_solver_default, z_ilu_solver_dmp - - interface mld_ilu0_fact - subroutine mld_zilu0_fact(ialg,a,l,u,d,info,blck,upd) - use psb_sparse_mod, only : psb_zspmat_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 - character, intent(in), optional :: upd - complex(psb_dpk_), intent(inout) :: d(:) - end subroutine mld_zilu0_fact - end interface - - interface mld_iluk_fact - subroutine mld_ziluk_fact(fill_in,ialg,a,l,u,d,info,blck) - use psb_sparse_mod, only : psb_zspmat_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_zilut_fact(fill_in,thres,a,l,u,d,info,blck) - use psb_sparse_mod, only : psb_zspmat_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 - character(len=15), parameter, private :: & & fact_names(0:mld_slv_delta_+4)=(/& & 'none ','none ',& diff --git a/mlprec/mld_zilu0_fact.f90 b/mlprec/mld_zilu0_fact.f90 index 80ee7838..0600cca6 100644 --- a/mlprec/mld_zilu0_fact.f90 +++ b/mlprec/mld_zilu0_fact.f90 @@ -102,7 +102,7 @@ subroutine mld_zilu0_fact(ialg,a,l,u,d,info,blck,upd) use psb_sparse_mod - use mld_z_inner_mod!, mld_protect_name => mld_zilu0_fact + use mld_z_ilu_fact_mod, mld_protect_name => mld_zilu0_fact implicit none diff --git a/mlprec/mld_ziluk_fact.f90 b/mlprec/mld_ziluk_fact.f90 index d728c99d..36c454e0 100644 --- a/mlprec/mld_ziluk_fact.f90 +++ b/mlprec/mld_ziluk_fact.f90 @@ -99,7 +99,7 @@ subroutine mld_ziluk_fact(fill_in,ialg,a,l,u,d,info,blck) use psb_sparse_mod - use mld_z_inner_mod!, mld_protect_name => mld_ziluk_fact + use mld_z_ilu_fact_mod, mld_protect_name => mld_ziluk_fact implicit none diff --git a/mlprec/mld_zilut_fact.f90 b/mlprec/mld_zilut_fact.f90 index 6d80d469..24ef8cd7 100644 --- a/mlprec/mld_zilut_fact.f90 +++ b/mlprec/mld_zilut_fact.f90 @@ -95,7 +95,7 @@ subroutine mld_zilut_fact(fill_in,thres,a,l,u,d,info,blck) use psb_sparse_mod - use mld_z_inner_mod!, mld_protect_name => mld_zilut_fact + use mld_z_ilu_fact_mod, mld_protect_name => mld_zilut_fact implicit none