mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-18 11:52:12 +00:00
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.
This commit is contained in:
+12
-4
@@ -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 \
|
||||
|
||||
@@ -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
|
||||
@@ -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 ',&
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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 ',&
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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 ',&
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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 ',&
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user