mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-20 12:52:16 +00:00
mld2p4:
config/pac.m4 configure.ac mlprec/mld_base_prec_type.f90 mlprec/mld_c_prec_type.f90 mlprec/mld_d_as_smoother.f03 mlprec/mld_d_diag_solver.f03 mlprec/mld_d_ilu_solver.f03 mlprec/mld_d_jac_smoother.f03 mlprec/mld_d_prec_type.f03 mlprec/mld_daggrmap_bld.f90 mlprec/mld_daggrmat_asb.f90 mlprec/mld_daggrmat_minnrg_asb.F90 mlprec/mld_daggrmat_nosmth_asb.F90 mlprec/mld_daggrmat_smth_asb.F90 mlprec/mld_das_bld.f90 mlprec/mld_dbaseprec_bld.f90 mlprec/mld_dcoarse_bld.f90 mlprec/mld_ddiag_bld.f90 mlprec/mld_dfact_bld.f90 mlprec/mld_dilu0_fact.f90 mlprec/mld_dilu_bld.f90 mlprec/mld_diluk_fact.f90 mlprec/mld_dilut_fact.f90 mlprec/mld_dmlprec_bld.f90 mlprec/mld_dprecbld.f90 mlprec/mld_dslu_bld.f90 mlprec/mld_dslud_bld.f90 mlprec/mld_dsp_renum.f90 mlprec/mld_dumf_bld.f90 mlprec/mld_inner_mod.f90 mlprec/mld_prec_mod.f90 mlprec/mld_s_prec_type.f90 mlprec/mld_z_prec_type.f90 tests/fileread/Makefile tests/fileread/df_sample.f90 tests/pdegen/ppde.f90 tests/pdegen/spde.f90 Revised name of outer sparse type to be backward-compatible.
This commit is contained in:
+2
-2
@@ -701,7 +701,7 @@ AC_CHECK_HEADER([umfpack.h],
|
||||
[pac_umf_header_ok=yes],
|
||||
[pac_umf_header_ok=no; UMF_INCLUDES=""])
|
||||
if test "x$pac_umf_header_ok" == "xno" ; then
|
||||
dnl Maybe Include or include subdirs?
|
||||
dnl Maybe Include or include subdirs?
|
||||
unset ac_cv_header_umfpack_h
|
||||
UMF_INCLUDES="-I$mld2p4_cv_umfpackdir/include -I$mld2p4_cv_umfpackdir/Include "
|
||||
CPPFLAGS="$UMF_INCLUDES $SAVE_CPPFLAGS"
|
||||
@@ -712,7 +712,7 @@ if test "x$pac_umf_header_ok" == "xno" ; then
|
||||
[pac_umf_header_ok=no; UMF_INCLUDES=""])
|
||||
fi
|
||||
if test "x$pac_umf_header_ok" == "xno" ; then
|
||||
dnl Maybe new structure with UMFPACK UFconfig AMD?
|
||||
dnl Maybe new structure with UMFPACK UFconfig AMD?
|
||||
unset ac_cv_header_umfpack_h
|
||||
UMF_INCLUDES="-I$mld2p4_cv_umfpackdir/UFconfig -I$mld2p4_cv_umfpackdir/UMFPACK/Include -I$mld2p4_cv_umfpackdir/AMD/Include"
|
||||
CPPFLAGS="$UMF_INCLUDES $SAVE_CPPFLAGS"
|
||||
|
||||
+1
-1
@@ -96,7 +96,7 @@ AC_PROG_INSTALL
|
||||
AC_MSG_CHECKING([where to install])
|
||||
case $prefix in
|
||||
\/* ) eval "INSTALL_DIR=$prefix";;
|
||||
* ) eval "INSTALL_DIR=/usr/local/psblas";;
|
||||
* ) eval "INSTALL_DIR=/usr/local/mld2p4";;
|
||||
esac
|
||||
case $libdir in
|
||||
\/* ) eval "INSTALL_LIBDIR=$libdir";;
|
||||
|
||||
@@ -63,8 +63,8 @@ module mld_base_prec_type
|
||||
!
|
||||
use psb_const_mod
|
||||
use psb_sparse_mod, only :&
|
||||
& psb_d_sparse_mat, psb_z_sparse_mat,&
|
||||
& psb_s_sparse_mat, psb_c_sparse_mat,&
|
||||
& psb_dspmat_type, psb_zspmat_type,&
|
||||
& psb_sspmat_type, psb_cspmat_type,&
|
||||
& psb_desc_type,&
|
||||
& psb_slinmap_type, psb_dlinmap_type,&
|
||||
& psb_clinmap_type, psb_zlinmap_type, &
|
||||
|
||||
+10
-10
@@ -89,9 +89,9 @@ module mld_c_prec_type
|
||||
! type(mld_Tbaseprec_type) :: prec
|
||||
! integer, allocatable :: iprcparm(:)
|
||||
! real(psb_Tpk_), allocatable :: rprcparm(:)
|
||||
! type(psb_T_sparse_mat) :: ac
|
||||
! type(psb_Tspmat_type) :: ac
|
||||
! type(psb_desc_type) :: desc_ac
|
||||
! type(psb_T_sparse_mat), pointer :: base_a => null()
|
||||
! type(psb_Tspmat_type), pointer :: base_a => null()
|
||||
! type(psb_desc_type), pointer :: base_desc => null()
|
||||
! type(psb_Tlinmap_type) :: map
|
||||
! end type mld_Tonelev_type
|
||||
@@ -110,7 +110,7 @@ module mld_c_prec_type
|
||||
! desc_ac - type(psb_desc_type).
|
||||
! The communication descriptor associated to the matrix
|
||||
! stored in ac.
|
||||
! base_a - type(psb_z_sparse_mat), pointer.
|
||||
! base_a - type(psb_zspmat_type), pointer.
|
||||
! Pointer (really a pointer!) to the local part of the current
|
||||
! matrix (so we have a unified treatment of residuals).
|
||||
! We need this to avoid passing explicitly the current matrix
|
||||
@@ -128,7 +128,7 @@ module mld_c_prec_type
|
||||
! It holds the smoother (base preconditioner) at a single level.
|
||||
!
|
||||
! type mld_Tbaseprec_type
|
||||
! type(psb_T_sparse_mat), allocatable :: av(:)
|
||||
! type(psb_Tspmat_type), allocatable :: av(:)
|
||||
! IntrType(psb_Tpk_), allocatable :: d(:)
|
||||
! type(psb_desc_type) :: desc_data
|
||||
! integer, allocatable :: iprcparm(:)
|
||||
@@ -140,7 +140,7 @@ module mld_c_prec_type
|
||||
! the kind of the real or complex type, according to the real/complex, single/double
|
||||
! precision version of MLD2P4.
|
||||
!
|
||||
! av - type(psb_T_sparse_mat), dimension(:), allocatable(:).
|
||||
! av - type(psb_Tspmat_type), dimension(:), allocatable(:).
|
||||
! The sparse matrices needed to apply the preconditioner at
|
||||
! the current level ilev.
|
||||
! av(mld_l_pr_) - The L factor of the ILU factorization of the local
|
||||
@@ -177,7 +177,7 @@ module mld_c_prec_type
|
||||
!
|
||||
|
||||
type mld_cbaseprec_type
|
||||
type(psb_c_sparse_mat), allocatable :: av(:)
|
||||
type(psb_cspmat_type), allocatable :: av(:)
|
||||
complex(psb_spk_), allocatable :: d(:)
|
||||
type(psb_desc_type) :: desc_data
|
||||
integer, allocatable :: iprcparm(:)
|
||||
@@ -189,9 +189,9 @@ module mld_c_prec_type
|
||||
type(mld_cbaseprec_type) :: prec
|
||||
integer, allocatable :: iprcparm(:)
|
||||
real(psb_spk_), allocatable :: rprcparm(:)
|
||||
type(psb_c_sparse_mat) :: ac
|
||||
type(psb_cspmat_type) :: ac
|
||||
type(psb_desc_type) :: desc_ac
|
||||
type(psb_c_sparse_mat), pointer :: base_a => null()
|
||||
type(psb_cspmat_type), pointer :: base_a => null()
|
||||
type(psb_desc_type), pointer :: base_desc => null()
|
||||
type(psb_clinmap_type) :: map
|
||||
end type mld_conelev_type
|
||||
@@ -230,7 +230,7 @@ module mld_c_prec_type
|
||||
|
||||
interface mld_precaply
|
||||
subroutine mld_cprecaply(prec,x,y,desc_data,info,trans,work)
|
||||
use psb_sparse_mod, only : psb_c_sparse_mat, psb_desc_type, psb_spk_
|
||||
use psb_sparse_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_
|
||||
import mld_cprec_type
|
||||
type(psb_desc_type),intent(in) :: desc_data
|
||||
type(mld_cprec_type), intent(in) :: prec
|
||||
@@ -241,7 +241,7 @@ module mld_c_prec_type
|
||||
complex(psb_spk_),intent(inout), optional, target :: work(:)
|
||||
end subroutine mld_cprecaply
|
||||
subroutine mld_cprecaply1(prec,x,desc_data,info,trans)
|
||||
use psb_sparse_mod, only : psb_c_sparse_mat, psb_desc_type, psb_spk_
|
||||
use psb_sparse_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_
|
||||
import mld_cprec_type
|
||||
type(psb_desc_type),intent(in) :: desc_data
|
||||
type(mld_cprec_type), intent(in) :: prec
|
||||
|
||||
@@ -51,7 +51,7 @@ module mld_d_as_smoother
|
||||
! parent type.
|
||||
! class(mld_d_base_solver_type), allocatable :: sv
|
||||
!
|
||||
type(psb_d_sparse_mat) :: nd
|
||||
type(psb_dspmat_type) :: nd
|
||||
type(psb_desc_type) :: desc_data
|
||||
integer :: novr, restr, prol
|
||||
contains
|
||||
@@ -163,7 +163,8 @@ contains
|
||||
call sm%sv%apply(alpha,x,beta,y,desc_data,trans_,aux,info)
|
||||
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,a_err='Error in sub_aply Jacobi Sweeps = 1')
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Error in sub_aply Jacobi Sweeps = 1')
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
@@ -517,13 +518,13 @@ contains
|
||||
Implicit None
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(in), target :: a
|
||||
type(psb_dspmat_type), intent(in), target :: a
|
||||
Type(psb_desc_type), Intent(in) :: desc_a
|
||||
class(mld_d_as_smoother_type), intent(inout) :: sm
|
||||
character, intent(in) :: upd
|
||||
integer, intent(out) :: info
|
||||
! Local variables
|
||||
type(psb_d_sparse_mat) :: blck, atmp
|
||||
type(psb_dspmat_type) :: blck, atmp
|
||||
integer :: n_row,n_col, nrow_a, nhalo, novr, data_
|
||||
real(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:)
|
||||
integer :: ictxt,np,me,i, err_act, debug_unit, debug_level
|
||||
|
||||
@@ -196,12 +196,12 @@ contains
|
||||
Implicit None
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(in), target :: a
|
||||
type(psb_dspmat_type), intent(in), target :: a
|
||||
Type(psb_desc_type), Intent(in) :: desc_a
|
||||
class(mld_d_diag_solver_type), intent(inout) :: sv
|
||||
character, intent(in) :: upd
|
||||
integer, intent(out) :: info
|
||||
type(psb_d_sparse_mat), intent(in), target, optional :: b
|
||||
type(psb_dspmat_type), intent(in), target, optional :: b
|
||||
! Local variables
|
||||
integer :: n_row,n_col, nrow_a, nztota
|
||||
real(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:)
|
||||
|
||||
+15
-15
@@ -48,7 +48,7 @@ module mld_d_ilu_solver
|
||||
use mld_d_prec_type
|
||||
|
||||
type, extends(mld_d_base_solver_type) :: mld_d_ilu_solver_type
|
||||
type(psb_d_sparse_mat) :: l, u
|
||||
type(psb_dspmat_type) :: l, u
|
||||
real(psb_dpk_), allocatable :: d(:)
|
||||
integer :: fact_type, fill_in
|
||||
real(psb_dpk_) :: thresh
|
||||
@@ -72,12 +72,12 @@ module mld_d_ilu_solver
|
||||
|
||||
interface mld_ilu0_fact
|
||||
subroutine mld_dilu0_fact(ialg,a,l,u,d,info,blck,upd)
|
||||
use psb_sparse_mod, only : psb_d_sparse_mat, psb_dpk_
|
||||
use psb_sparse_mod, only : psb_dspmat_type, psb_dpk_
|
||||
integer, intent(in) :: ialg
|
||||
integer, intent(out) :: info
|
||||
type(psb_d_sparse_mat),intent(in) :: a
|
||||
type(psb_d_sparse_mat),intent(inout) :: l,u
|
||||
type(psb_d_sparse_mat),intent(in), optional, target :: blck
|
||||
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
|
||||
@@ -85,25 +85,25 @@ module mld_d_ilu_solver
|
||||
|
||||
interface mld_iluk_fact
|
||||
subroutine mld_diluk_fact(fill_in,ialg,a,l,u,d,info,blck)
|
||||
use psb_sparse_mod, only : psb_d_sparse_mat, psb_dpk_
|
||||
use psb_sparse_mod, only : psb_dspmat_type, psb_dpk_
|
||||
integer, intent(in) :: fill_in,ialg
|
||||
integer, intent(out) :: info
|
||||
type(psb_d_sparse_mat),intent(in) :: a
|
||||
type(psb_d_sparse_mat),intent(inout) :: l,u
|
||||
type(psb_d_sparse_mat),intent(in), optional, target :: blck
|
||||
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_d_sparse_mat, psb_dpk_
|
||||
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_d_sparse_mat),intent(in) :: a
|
||||
type(psb_d_sparse_mat),intent(inout) :: l,u
|
||||
type(psb_d_sparse_mat),intent(in), optional, target :: blck
|
||||
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
|
||||
@@ -226,12 +226,12 @@ contains
|
||||
Implicit None
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(in), target :: a
|
||||
type(psb_dspmat_type), intent(in), target :: a
|
||||
Type(psb_desc_type), Intent(in) :: desc_a
|
||||
class(mld_d_ilu_solver_type), intent(inout) :: sv
|
||||
character, intent(in) :: upd
|
||||
integer, intent(out) :: info
|
||||
type(psb_d_sparse_mat), intent(in), target, optional :: b
|
||||
type(psb_dspmat_type), intent(in), target, optional :: b
|
||||
! Local variables
|
||||
integer :: n_row,n_col, nrow_a, nztota
|
||||
real(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:)
|
||||
|
||||
@@ -51,7 +51,7 @@ module mld_d_jac_smoother
|
||||
! parent type.
|
||||
! class(mld_d_base_solver_type), allocatable :: sv
|
||||
!
|
||||
type(psb_d_sparse_mat) :: nd
|
||||
type(psb_dspmat_type) :: nd
|
||||
contains
|
||||
procedure, pass(sm) :: build => d_jac_smoother_bld
|
||||
procedure, pass(sm) :: apply => d_jac_smoother_apply
|
||||
@@ -233,7 +233,7 @@ contains
|
||||
Implicit None
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(in), target :: a
|
||||
type(psb_dspmat_type), intent(in), target :: a
|
||||
Type(psb_desc_type), Intent(in) :: desc_a
|
||||
class(mld_d_jac_smoother_type), intent(inout) :: sm
|
||||
character, intent(in) :: upd
|
||||
|
||||
+12
-12
@@ -88,9 +88,9 @@ module mld_d_prec_type
|
||||
! type(mld_Tbaseprec_type) :: prec
|
||||
! integer, allocatable :: iprcparm(:)
|
||||
! real(psb_Tpk_), allocatable :: rprcparm(:)
|
||||
! type(psb_T_sparse_mat) :: ac
|
||||
! type(psb_Tspmat_type) :: ac
|
||||
! type(psb_desc_type) :: desc_ac
|
||||
! type(psb_T_sparse_mat), pointer :: base_a => null()
|
||||
! type(psb_Tspmat_type), pointer :: base_a => null()
|
||||
! type(psb_desc_type), pointer :: base_desc => null()
|
||||
! type(psb_Tlinmap_type) :: map
|
||||
! end type mld_Tonelev_type
|
||||
@@ -109,7 +109,7 @@ module mld_d_prec_type
|
||||
! desc_ac - type(psb_desc_type).
|
||||
! The communication descriptor associated to the matrix
|
||||
! stored in ac.
|
||||
! base_a - type(psb_z_sparse_mat), pointer.
|
||||
! base_a - type(psb_zspmat_type), pointer.
|
||||
! Pointer (really a pointer!) to the local part of the current
|
||||
! matrix (so we have a unified treatment of residuals).
|
||||
! We need this to avoid passing explicitly the current matrix
|
||||
@@ -127,7 +127,7 @@ module mld_d_prec_type
|
||||
! It holds the smoother (base preconditioner) at a single level.
|
||||
!
|
||||
! type mld_Tbaseprec_type
|
||||
! type(psb_T_sparse_mat), allocatable :: av(:)
|
||||
! type(psb_Tspmat_type), allocatable :: av(:)
|
||||
! IntrType(psb_Tpk_), allocatable :: d(:)
|
||||
! type(psb_desc_type) :: desc_data
|
||||
! integer, allocatable :: iprcparm(:)
|
||||
@@ -139,7 +139,7 @@ module mld_d_prec_type
|
||||
! the kind of the real or complex type, according to the real/complex, single/double
|
||||
! precision version of MLD2P4.
|
||||
!
|
||||
! av - type(psb_T_sparse_mat), dimension(:), allocatable(:).
|
||||
! av - type(psb_Tspmat_type), dimension(:), allocatable(:).
|
||||
! The sparse matrices needed to apply the preconditioner at
|
||||
! the current level ilev.
|
||||
! av(mld_l_pr_) - The L factor of the ILU factorization of the local
|
||||
@@ -215,9 +215,9 @@ module mld_d_prec_type
|
||||
type(mld_dbaseprec_type) :: prec
|
||||
integer, allocatable :: iprcparm(:)
|
||||
real(psb_dpk_), allocatable :: rprcparm(:)
|
||||
type(psb_d_sparse_mat) :: ac
|
||||
type(psb_dspmat_type) :: ac
|
||||
type(psb_desc_type) :: desc_ac
|
||||
type(psb_d_sparse_mat), pointer :: base_a => null()
|
||||
type(psb_dspmat_type), pointer :: base_a => null()
|
||||
type(psb_desc_type), pointer :: base_desc => null()
|
||||
type(psb_dlinmap_type) :: map
|
||||
contains
|
||||
@@ -274,7 +274,7 @@ module mld_d_prec_type
|
||||
|
||||
interface mld_precaply
|
||||
subroutine mld_dprecaply(prec,x,y,desc_data,info,trans,work)
|
||||
use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_
|
||||
use psb_sparse_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_
|
||||
import mld_dprec_type
|
||||
type(psb_desc_type),intent(in) :: desc_data
|
||||
type(mld_dprec_type), intent(in) :: prec
|
||||
@@ -285,7 +285,7 @@ module mld_d_prec_type
|
||||
real(psb_dpk_),intent(inout), optional, target :: work(:)
|
||||
end subroutine mld_dprecaply
|
||||
subroutine mld_dprecaply1(prec,x,desc_data,info,trans)
|
||||
use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_
|
||||
use psb_sparse_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_
|
||||
import mld_dprec_type
|
||||
type(psb_desc_type),intent(in) :: desc_data
|
||||
type(mld_dprec_type), intent(in) :: prec
|
||||
@@ -831,7 +831,7 @@ contains
|
||||
Implicit None
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(in), target :: a
|
||||
type(psb_dspmat_type), intent(in), target :: a
|
||||
Type(psb_desc_type), Intent(in) :: desc_a
|
||||
class(mld_d_base_smoother_type), intent(inout) :: sm
|
||||
character, intent(in) :: upd
|
||||
@@ -1013,12 +1013,12 @@ contains
|
||||
Implicit None
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(in), target :: a
|
||||
type(psb_dspmat_type), intent(in), target :: a
|
||||
Type(psb_desc_type), Intent(in) :: desc_a
|
||||
class(mld_d_base_solver_type), intent(inout) :: sv
|
||||
character, intent(in) :: upd
|
||||
integer, intent(out) :: info
|
||||
type(psb_d_sparse_mat), intent(in), target, optional :: b
|
||||
type(psb_dspmat_type), intent(in), target, optional :: b
|
||||
Integer :: err_act
|
||||
character(len=20) :: name='d_base_solver_bld'
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ subroutine mld_daggrmap_bld(aggr_type,theta,a,desc_a,ilaggr,nlaggr,info)
|
||||
! Arguments
|
||||
integer, intent(in) :: aggr_type
|
||||
real(psb_dpk_), intent(in) :: theta
|
||||
type(psb_d_sparse_mat), intent(in) :: a
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, allocatable, intent(out) :: ilaggr(:),nlaggr(:)
|
||||
integer, intent(out) :: info
|
||||
@@ -97,7 +97,7 @@ subroutine mld_daggrmap_bld(aggr_type,theta,a,desc_a,ilaggr,nlaggr,info)
|
||||
! Local variables
|
||||
integer, allocatable :: ils(:), neigh(:)
|
||||
integer :: icnt,nlp,k,n,ia,isz,nr, naggr,i,j,m
|
||||
type(psb_d_sparse_mat) :: atmp, atrans
|
||||
type(psb_dspmat_type) :: atmp, atrans
|
||||
logical :: recovery
|
||||
integer :: debug_level, debug_unit
|
||||
integer :: ictxt,np,me,err_act
|
||||
@@ -170,7 +170,7 @@ contains
|
||||
implicit none
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(in) :: a
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
real(psb_dpk_), intent(in) :: theta
|
||||
integer, allocatable, intent(out) :: ilaggr(:),nlaggr(:)
|
||||
|
||||
@@ -106,7 +106,7 @@ subroutine mld_daggrmat_asb(a,desc_a,ilaggr,nlaggr,p,info)
|
||||
implicit none
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(in) :: a
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(inout) :: ilaggr(:), nlaggr(:)
|
||||
type(mld_donelev_type), intent(inout), target :: p
|
||||
|
||||
@@ -111,14 +111,14 @@ subroutine mld_daggrmat_minnrg_asb(a,desc_a,ilaggr,nlaggr,p,info)
|
||||
#endif
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(in) :: a
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(inout) :: ilaggr(:), nlaggr(:)
|
||||
type(mld_donelev_type), intent(inout), target :: p
|
||||
integer, intent(out) :: info
|
||||
|
||||
! Local variables
|
||||
type(psb_d_sparse_mat) :: b
|
||||
type(psb_dspmat_type) :: b
|
||||
integer, allocatable :: nzbr(:), idisp(:)
|
||||
integer :: nrow, nglob, ncol, ntaggr, nzac, ip, ndx,&
|
||||
& naggr, nzl,naggrm1,naggrp1, i, j, k, jd, icolF, nrt
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
!
|
||||
!
|
||||
! Arguments:
|
||||
! a - type(psb_d_sparse_mat), input.
|
||||
! a - type(psb_dspmat_type), input.
|
||||
! The sparse matrix structure containing the local part of
|
||||
! the fine-level matrix.
|
||||
! desc_a - type(psb_desc_type), input.
|
||||
@@ -94,7 +94,7 @@ subroutine mld_daggrmat_nosmth_asb(a,desc_a,ilaggr,nlaggr,p,info)
|
||||
#endif
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(in) :: a
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(inout) :: ilaggr(:), nlaggr(:)
|
||||
type(mld_donelev_type), intent(inout), target :: p
|
||||
@@ -103,9 +103,9 @@ subroutine mld_daggrmat_nosmth_asb(a,desc_a,ilaggr,nlaggr,p,info)
|
||||
! Local variables
|
||||
integer ::ictxt,np,me, err_act, icomm
|
||||
character(len=20) :: name
|
||||
type(psb_d_sparse_mat) :: b
|
||||
type(psb_dspmat_type) :: b
|
||||
integer, allocatable :: nzbr(:), idisp(:)
|
||||
type(psb_d_sparse_mat) :: am1,am2
|
||||
type(psb_dspmat_type) :: am1,am2
|
||||
type(psb_d_coo_sparse_mat) :: acoo1, acoo2, bcoo, ac_coo
|
||||
integer :: nrow, nglob, ncol, ntaggr, nzac, ip, ndx,&
|
||||
& naggr, nzt, naggrm1, i
|
||||
|
||||
@@ -111,20 +111,20 @@ subroutine mld_daggrmat_smth_asb(a,desc_a,ilaggr,nlaggr,p,info)
|
||||
#endif
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(in) :: a
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(inout) :: ilaggr(:), nlaggr(:)
|
||||
type(mld_donelev_type), intent(inout), target :: p
|
||||
integer, intent(out) :: info
|
||||
|
||||
! Local variables
|
||||
type(psb_d_sparse_mat) :: b
|
||||
type(psb_dspmat_type) :: b
|
||||
integer, allocatable :: nzbr(:), idisp(:)
|
||||
integer :: nrow, nglob, ncol, ntaggr, nzac, ip, ndx,&
|
||||
& naggr, nzl,naggrm1,naggrp1, i, j, k, jd, icolF, nrw
|
||||
integer ::ictxt,np,me, err_act, icomm
|
||||
character(len=20) :: name
|
||||
type(psb_d_sparse_mat) :: am1,am2, am3, am4
|
||||
type(psb_dspmat_type) :: am1,am2, am3, am4
|
||||
type(psb_d_coo_sparse_mat) :: acoo1, acoo2, acoof, acoo3,acoo4, bcoo, cootmp
|
||||
type(psb_d_csr_sparse_mat) :: acsr1, acsr2, acsrf, acsr3,acsr4, bcsr
|
||||
real(psb_dpk_), allocatable :: adiag(:)
|
||||
|
||||
@@ -74,7 +74,7 @@ subroutine mld_das_bld(a,desc_a,p,upd,info)
|
||||
Implicit None
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(in), target :: a
|
||||
type(psb_dspmat_type), intent(in), target :: a
|
||||
Type(psb_desc_type), Intent(in) :: desc_a
|
||||
type(mld_dbaseprec_type), intent(inout) :: p
|
||||
character, intent(in) :: upd
|
||||
@@ -85,7 +85,7 @@ subroutine mld_das_bld(a,desc_a,p,upd,info)
|
||||
integer :: icomm
|
||||
Integer :: np,me,nnzero,ictxt, int_err(5),&
|
||||
& tot_recv, n_row,n_col,nhalo, err_act, data_
|
||||
type(psb_d_sparse_mat) :: blck
|
||||
type(psb_dspmat_type) :: blck
|
||||
integer :: debug_level, debug_unit
|
||||
character(len=20) :: name, ch_err
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ subroutine mld_dbaseprec_bld(a,desc_a,p,info,upd)
|
||||
Implicit None
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), target :: a
|
||||
type(psb_dspmat_type), target :: a
|
||||
type(psb_desc_type), intent(in), target :: desc_a
|
||||
type(mld_dbaseprec_type),intent(inout) :: p
|
||||
integer, intent(out) :: info
|
||||
|
||||
@@ -73,7 +73,7 @@ subroutine mld_dcoarse_bld(a,desc_a,p,info)
|
||||
implicit none
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(in), target :: a
|
||||
type(psb_dspmat_type), intent(in), target :: a
|
||||
type(psb_desc_type), intent(in), target :: desc_a
|
||||
type(mld_donelev_type), intent(inout),target :: p
|
||||
integer, intent(out) :: info
|
||||
|
||||
@@ -65,7 +65,7 @@ subroutine mld_ddiag_bld(a,desc_a,p,info)
|
||||
Implicit None
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat),intent(in), target :: a
|
||||
type(psb_dspmat_type),intent(in), target :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(mld_dbaseprec_type),intent(inout) :: p
|
||||
integer, intent(out) :: info
|
||||
|
||||
@@ -116,15 +116,15 @@ subroutine mld_dfact_bld(a,p,upd,info,blck)
|
||||
implicit none
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(in), target :: a
|
||||
type(psb_dspmat_type), intent(in), target :: a
|
||||
type(mld_dbaseprec_type), intent(inout) :: p
|
||||
integer, intent(out) :: info
|
||||
character, intent(in) :: upd
|
||||
type(psb_d_sparse_mat), intent(in), target, optional :: blck
|
||||
type(psb_dspmat_type), intent(in), target, optional :: blck
|
||||
|
||||
! Local Variables
|
||||
type(psb_d_sparse_mat), pointer :: blck_
|
||||
type(psb_d_sparse_mat) :: atmp
|
||||
type(psb_dspmat_type), pointer :: blck_
|
||||
type(psb_dspmat_type) :: atmp
|
||||
integer :: ictxt,np,me,err_act
|
||||
integer :: debug_level, debug_unit
|
||||
integer :: k, m, int_err(5), n_row, nrow_a, n_col
|
||||
|
||||
@@ -108,16 +108,16 @@ subroutine mld_dilu0_fact(ialg,a,l,u,d,info,blck, upd)
|
||||
|
||||
! Arguments
|
||||
integer, intent(in) :: ialg
|
||||
type(psb_d_sparse_mat),intent(in) :: a
|
||||
type(psb_d_sparse_mat),intent(inout) :: l,u
|
||||
type(psb_dspmat_type),intent(in) :: a
|
||||
type(psb_dspmat_type),intent(inout) :: l,u
|
||||
real(psb_dpk_), intent(inout) :: d(:)
|
||||
integer, intent(out) :: info
|
||||
type(psb_d_sparse_mat),intent(in), optional, target :: blck
|
||||
type(psb_dspmat_type),intent(in), optional, target :: blck
|
||||
character, intent(in), optional :: upd
|
||||
|
||||
! Local variables
|
||||
integer :: l1, l2, m, err_act
|
||||
type(psb_d_sparse_mat), pointer :: blck_
|
||||
type(psb_dspmat_type), pointer :: blck_
|
||||
type(psb_d_csr_sparse_mat) :: ll, uu
|
||||
character :: upd_
|
||||
character(len=20) :: name, ch_err
|
||||
@@ -293,7 +293,7 @@ contains
|
||||
|
||||
! Arguments
|
||||
integer, intent(in) :: ialg
|
||||
type(psb_d_sparse_mat),intent(in) :: a,b
|
||||
type(psb_dspmat_type),intent(in) :: a,b
|
||||
integer,intent(inout) :: l1,l2,info
|
||||
integer, intent(inout) :: lja(:),lirp(:),uja(:),uirp(:)
|
||||
real(psb_dpk_), intent(inout) :: lval(:),uval(:),d(:)
|
||||
@@ -562,7 +562,7 @@ contains
|
||||
implicit none
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(in) :: a
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
type(psb_d_coo_sparse_mat), intent(inout) :: trw
|
||||
integer, intent(in) :: i,m,jd,jmin,jmax
|
||||
integer, intent(inout) :: ktrw,l1,l2
|
||||
|
||||
@@ -97,11 +97,11 @@ subroutine mld_dilu_bld(a,p,upd,info,blck)
|
||||
implicit none
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(in), target :: a
|
||||
type(psb_dspmat_type), intent(in), target :: a
|
||||
type(mld_dbaseprec_type), intent(inout) :: p
|
||||
character, intent(in) :: upd
|
||||
integer, intent(out) :: info
|
||||
type(psb_d_sparse_mat), intent(in), optional :: blck
|
||||
type(psb_dspmat_type), intent(in), optional :: blck
|
||||
|
||||
! Local Variables
|
||||
integer :: i, nztota, err_act, n_row, nrow_a
|
||||
|
||||
@@ -106,14 +106,14 @@ subroutine mld_diluk_fact(fill_in,ialg,a,l,u,d,info,blck)
|
||||
! Arguments
|
||||
integer, intent(in) :: fill_in, ialg
|
||||
integer, intent(out) :: info
|
||||
type(psb_d_sparse_mat),intent(in) :: a
|
||||
type(psb_d_sparse_mat),intent(inout) :: l,u
|
||||
type(psb_d_sparse_mat),intent(in), optional, target :: blck
|
||||
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(:)
|
||||
! Local Variables
|
||||
integer :: l1, l2, m, err_act
|
||||
|
||||
type(psb_d_sparse_mat), pointer :: blck_
|
||||
type(psb_dspmat_type), pointer :: blck_
|
||||
type(psb_d_csr_sparse_mat) :: ll, uu
|
||||
character(len=20) :: name, ch_err
|
||||
|
||||
@@ -279,7 +279,7 @@ contains
|
||||
|
||||
! Arguments
|
||||
integer, intent(in) :: fill_in, ialg
|
||||
type(psb_d_sparse_mat),intent(in) :: a,b
|
||||
type(psb_dspmat_type),intent(in) :: a,b
|
||||
integer,intent(inout) :: l1,l2,info
|
||||
integer, allocatable, intent(inout) :: lja(:),lirp(:),uja(:),uirp(:)
|
||||
real(psb_dpk_), allocatable, intent(inout) :: lval(:),uval(:)
|
||||
@@ -496,7 +496,7 @@ contains
|
||||
implicit none
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(in) :: a
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
type(psb_d_coo_sparse_mat), intent(inout) :: trw
|
||||
integer, intent(in) :: i,m,jmin,jmax
|
||||
integer, intent(inout) :: ktrw,info
|
||||
|
||||
@@ -103,14 +103,14 @@ subroutine mld_dilut_fact(fill_in,thres,a,l,u,d,info,blck)
|
||||
integer, intent(in) :: fill_in
|
||||
real(psb_dpk_), intent(in) :: thres
|
||||
integer, intent(out) :: info
|
||||
type(psb_d_sparse_mat),intent(in) :: a
|
||||
type(psb_d_sparse_mat),intent(inout) :: l,u
|
||||
type(psb_d_sparse_mat),intent(in), optional, target :: blck
|
||||
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(:)
|
||||
! Local Variables
|
||||
integer :: l1, l2, m, err_act
|
||||
|
||||
type(psb_d_sparse_mat), pointer :: blck_
|
||||
type(psb_dspmat_type), pointer :: blck_
|
||||
type(psb_d_csr_sparse_mat) :: ll, uu
|
||||
character(len=20) :: name, ch_err
|
||||
|
||||
@@ -279,7 +279,7 @@ contains
|
||||
! Arguments
|
||||
integer, intent(in) :: fill_in
|
||||
real(psb_dpk_), intent(in) :: thres
|
||||
type(psb_d_sparse_mat),intent(in) :: a,b
|
||||
type(psb_dspmat_type),intent(in) :: a,b
|
||||
integer,intent(inout) :: l1,l2,info
|
||||
integer, allocatable, intent(inout) :: lja(:),lirp(:),uja(:),uirp(:)
|
||||
real(psb_dpk_), allocatable, intent(inout) :: lval(:),uval(:)
|
||||
@@ -486,7 +486,7 @@ contains
|
||||
subroutine ilut_copyin(i,m,a,jd,jmin,jmax,nlw,nup,jmaxup,nrmi,row,heap,ktrw,trw,info)
|
||||
use psb_sparse_mod
|
||||
implicit none
|
||||
type(psb_d_sparse_mat), intent(in) :: a
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
type(psb_d_coo_sparse_mat), intent(inout) :: trw
|
||||
integer, intent(in) :: i, m,jmin,jmax,jd
|
||||
integer, intent(inout) :: ktrw,nlw,nup,jmaxup,info
|
||||
|
||||
@@ -77,7 +77,7 @@ subroutine mld_dmlprec_bld(a,desc_a,p,info)
|
||||
Implicit None
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat),intent(in), target :: a
|
||||
type(psb_dspmat_type),intent(in), target :: a
|
||||
type(psb_desc_type), intent(in), target :: desc_a
|
||||
type(mld_dprec_type),intent(inout),target :: p
|
||||
integer, intent(out) :: info
|
||||
@@ -223,7 +223,8 @@ subroutine mld_dmlprec_bld(a,desc_a,p,info)
|
||||
& p%precv(i-1)%base_desc, p%precv(i),info)
|
||||
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,a_err='Init upper level preconditioner')
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='Init upper level preconditioner')
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
@@ -254,7 +255,8 @@ subroutine mld_dmlprec_bld(a,desc_a,p,info)
|
||||
end if
|
||||
allocate(t_prec%precv(newsz),stat=info)
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_from_subroutine_,name,a_err='prec reallocation')
|
||||
call psb_errpush(psb_err_from_subroutine_,name,&
|
||||
& a_err='prec reallocation')
|
||||
goto 9999
|
||||
endif
|
||||
do i=1,newsz-1
|
||||
@@ -321,7 +323,8 @@ subroutine mld_dmlprec_bld(a,desc_a,p,info)
|
||||
call p%precv(i)%sm%free(info)
|
||||
if (info == psb_success_) deallocate(p%precv(i)%sm,stat=info)
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_alloc_dealloc_,name,a_err='One level preconditioner build.')
|
||||
call psb_errpush(psb_err_alloc_dealloc_,name,&
|
||||
& a_err='One level preconditioner build.')
|
||||
goto 9999
|
||||
endif
|
||||
end if
|
||||
@@ -336,7 +339,8 @@ subroutine mld_dmlprec_bld(a,desc_a,p,info)
|
||||
if (info /= psb_success_) then
|
||||
write(0,*) ' Smoother allocation error',info,&
|
||||
& p%precv(i)%prec%iprcparm(mld_smoother_type_)
|
||||
call psb_errpush(psb_err_internal_error_,name,a_err='One level preconditioner build.')
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='One level preconditioner build.')
|
||||
goto 9999
|
||||
endif
|
||||
call p%precv(i)%sm%set(mld_sub_restr_,p%precv(i)%prec%iprcparm(mld_sub_restr_),info)
|
||||
@@ -361,14 +365,16 @@ subroutine mld_dmlprec_bld(a,desc_a,p,info)
|
||||
if (info /= psb_success_) then
|
||||
write(0,*) ' Solver allocation error',info,&
|
||||
& p%precv(i)%prec%iprcparm(mld_sub_solve_)
|
||||
call psb_errpush(psb_err_internal_error_,name,a_err='One level preconditioner build.')
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='One level preconditioner build.')
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
call p%precv(i)%sm%build(p%precv(i)%base_a,p%precv(i)%base_desc,'F',info)
|
||||
|
||||
if (info /= psb_success_) then
|
||||
call psb_errpush(psb_err_internal_error_,name,a_err='One level preconditioner build.')
|
||||
call psb_errpush(psb_err_internal_error_,name,&
|
||||
& a_err='One level preconditioner build.')
|
||||
goto 9999
|
||||
endif
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ subroutine mld_dprecbld(a,desc_a,p,info)
|
||||
Implicit None
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat),intent(in), target :: a
|
||||
type(psb_dspmat_type),intent(in), target :: a
|
||||
type(psb_desc_type), intent(in), target :: desc_a
|
||||
type(mld_dprec_type),intent(inout),target :: p
|
||||
integer, intent(out) :: info
|
||||
|
||||
@@ -77,7 +77,7 @@ subroutine mld_dslu_bld(a,desc_a,p,info)
|
||||
implicit none
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(inout) :: a
|
||||
type(psb_dspmat_type), intent(inout) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(mld_dbaseprec_type), intent(inout) :: p
|
||||
integer, intent(out) :: info
|
||||
|
||||
@@ -74,7 +74,7 @@ subroutine mld_dsludist_bld(a,desc_a,p,info)
|
||||
implicit none
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(inout) :: a
|
||||
type(psb_dspmat_type), intent(inout) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(mld_dbaseprec_type), intent(inout) :: p
|
||||
integer, intent(out) :: info
|
||||
|
||||
@@ -89,8 +89,8 @@ subroutine mld_dsp_renum(a,blck,p,atmp,info)
|
||||
implicit none
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(in) :: a,blck
|
||||
type(psb_d_sparse_mat), intent(out) :: atmp
|
||||
type(psb_dspmat_type), intent(in) :: a,blck
|
||||
type(psb_dspmat_type), intent(out) :: atmp
|
||||
type(mld_dbaseprec_type), intent(inout) :: p
|
||||
integer, intent(out) :: info
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ subroutine mld_dumf_bld(a,desc_a,p,info)
|
||||
implicit none
|
||||
|
||||
! Arguments
|
||||
type(psb_d_sparse_mat), intent(inout) :: a
|
||||
type(psb_dspmat_type), intent(inout) :: a
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(mld_dbaseprec_type), intent(inout) :: p
|
||||
integer, intent(out) :: info
|
||||
|
||||
+214
-214
File diff suppressed because it is too large
Load Diff
+46
-46
@@ -49,7 +49,7 @@ module mld_prec_mod
|
||||
|
||||
interface mld_precinit
|
||||
!!$ subroutine mld_sprecinit(p,ptype,info,nlev)
|
||||
!!$ use psb_sparse_mod, only : psb_s_sparse_mat, psb_desc_type, psb_spk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -57,7 +57,7 @@ module mld_prec_mod
|
||||
!!$ integer, optional, intent(in) :: nlev
|
||||
!!$ end subroutine mld_sprecinit
|
||||
subroutine mld_dprecinit(p,ptype,info,nlev)
|
||||
use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_
|
||||
use psb_sparse_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
|
||||
@@ -65,7 +65,7 @@ module mld_prec_mod
|
||||
integer, optional, intent(in) :: nlev
|
||||
end subroutine mld_dprecinit
|
||||
!!$ subroutine mld_cprecinit(p,ptype,info,nlev)
|
||||
!!$ use psb_sparse_mod, only : psb_c_sparse_mat, psb_desc_type, psb_spk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -73,7 +73,7 @@ module mld_prec_mod
|
||||
!!$ integer, optional, intent(in) :: nlev
|
||||
!!$ end subroutine mld_cprecinit
|
||||
!!$ subroutine mld_zprecinit(p,ptype,info,nlev)
|
||||
!!$ use psb_sparse_mod, only : psb_z_sparse_mat, psb_desc_type, psb_dpk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -92,7 +92,7 @@ module mld_prec_mod
|
||||
|
||||
interface mld_inner_precset
|
||||
!!$ subroutine mld_sprecseti(p,what,val,info,ilev)
|
||||
!!$ use psb_sparse_mod, only : psb_s_sparse_mat, psb_desc_type, psb_spk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -101,7 +101,7 @@ module mld_prec_mod
|
||||
!!$ integer, optional, intent(in) :: ilev
|
||||
!!$ end subroutine mld_sprecseti
|
||||
!!$ subroutine mld_sprecsetr(p,what,val,info,ilev)
|
||||
!!$ use psb_sparse_mod, only : psb_s_sparse_mat, psb_desc_type, psb_spk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -110,7 +110,7 @@ module mld_prec_mod
|
||||
!!$ integer, optional, intent(in) :: ilev
|
||||
!!$ end subroutine mld_sprecsetr
|
||||
!!$ subroutine mld_sprecsetc(p,what,string,info,ilev)
|
||||
!!$ use psb_sparse_mod, only : psb_s_sparse_mat, psb_desc_type, psb_spk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -119,7 +119,7 @@ module mld_prec_mod
|
||||
!!$ integer, optional, intent(in) :: ilev
|
||||
!!$ end subroutine mld_sprecsetc
|
||||
subroutine mld_dprecsetsm(p,what,val,info,ilev)
|
||||
use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_
|
||||
use psb_sparse_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_
|
||||
use mld_prec_type, only : mld_dprec_type, mld_d_base_smoother_type
|
||||
type(mld_dprec_type), intent(inout) :: p
|
||||
integer, intent(in) :: what
|
||||
@@ -128,7 +128,7 @@ module mld_prec_mod
|
||||
integer, optional, intent(in) :: ilev
|
||||
end subroutine mld_dprecsetsm
|
||||
subroutine mld_dprecsetsv(p,what,val,info,ilev)
|
||||
use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_
|
||||
use psb_sparse_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_
|
||||
use mld_prec_type, only : mld_dprec_type, mld_d_base_solver_type
|
||||
type(mld_dprec_type), intent(inout) :: p
|
||||
integer, intent(in) :: what
|
||||
@@ -137,7 +137,7 @@ module mld_prec_mod
|
||||
integer, optional, intent(in) :: ilev
|
||||
end subroutine mld_dprecsetsv
|
||||
subroutine mld_dprecseti(p,what,val,info,ilev)
|
||||
use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_
|
||||
use psb_sparse_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
|
||||
@@ -146,7 +146,7 @@ module mld_prec_mod
|
||||
integer, optional, intent(in) :: ilev
|
||||
end subroutine mld_dprecseti
|
||||
subroutine mld_dprecsetr(p,what,val,info,ilev)
|
||||
use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_
|
||||
use psb_sparse_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
|
||||
@@ -155,7 +155,7 @@ module mld_prec_mod
|
||||
integer, optional, intent(in) :: ilev
|
||||
end subroutine mld_dprecsetr
|
||||
subroutine mld_dprecsetc(p,what,string,info,ilev)
|
||||
use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_
|
||||
use psb_sparse_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
|
||||
@@ -164,7 +164,7 @@ module mld_prec_mod
|
||||
integer, optional, intent(in) :: ilev
|
||||
end subroutine mld_dprecsetc
|
||||
!!$ subroutine mld_cprecseti(p,what,val,info,ilev)
|
||||
!!$ use psb_sparse_mod, only : psb_c_sparse_mat, psb_desc_type, psb_spk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -173,7 +173,7 @@ module mld_prec_mod
|
||||
!!$ integer, optional, intent(in) :: ilev
|
||||
!!$ end subroutine mld_cprecseti
|
||||
!!$ subroutine mld_cprecsetr(p,what,val,info,ilev)
|
||||
!!$ use psb_sparse_mod, only : psb_c_sparse_mat, psb_desc_type, psb_spk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -182,7 +182,7 @@ module mld_prec_mod
|
||||
!!$ integer, optional, intent(in) :: ilev
|
||||
!!$ end subroutine mld_cprecsetr
|
||||
!!$ subroutine mld_cprecsetc(p,what,string,info,ilev)
|
||||
!!$ use psb_sparse_mod, only : psb_c_sparse_mat, psb_desc_type, psb_spk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -191,7 +191,7 @@ module mld_prec_mod
|
||||
!!$ integer, optional, intent(in) :: ilev
|
||||
!!$ end subroutine mld_cprecsetc
|
||||
!!$ subroutine mld_zprecseti(p,what,val,info,ilev)
|
||||
!!$ use psb_sparse_mod, only : psb_z_sparse_mat, psb_desc_type, psb_dpk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -200,7 +200,7 @@ module mld_prec_mod
|
||||
!!$ integer, optional, intent(in) :: ilev
|
||||
!!$ end subroutine mld_zprecseti
|
||||
!!$ subroutine mld_zprecsetr(p,what,val,info,ilev)
|
||||
!!$ use psb_sparse_mod, only : psb_z_sparse_mat, psb_desc_type, psb_dpk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -209,7 +209,7 @@ module mld_prec_mod
|
||||
!!$ integer, optional, intent(in) :: ilev
|
||||
!!$ end subroutine mld_zprecsetr
|
||||
!!$ subroutine mld_zprecsetc(p,what,string,info,ilev)
|
||||
!!$ use psb_sparse_mod, only : psb_z_sparse_mat, psb_desc_type, psb_dpk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -221,7 +221,7 @@ module mld_prec_mod
|
||||
!!$
|
||||
!!$ interface mld_precaply
|
||||
!!$ subroutine mld_sprecaply(prec,x,y,desc_data,info,trans,work)
|
||||
!!$ use psb_sparse_mod, only : psb_s_sparse_mat, psb_desc_type, psb_spk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -232,7 +232,7 @@ module mld_prec_mod
|
||||
!!$ real(psb_spk_),intent(inout), optional, target :: work(:)
|
||||
!!$ end subroutine mld_sprecaply
|
||||
!!$ subroutine mld_sprecaply1(prec,x,desc_data,info,trans)
|
||||
!!$ use psb_sparse_mod, only : psb_s_sparse_mat, psb_desc_type, psb_spk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -241,7 +241,7 @@ module mld_prec_mod
|
||||
!!$ character(len=1), optional :: trans
|
||||
!!$ end subroutine mld_sprecaply1
|
||||
!!$ subroutine mld_dprecaply(prec,x,y,desc_data,info,trans,work)
|
||||
!!$ use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -252,7 +252,7 @@ module mld_prec_mod
|
||||
!!$ real(psb_dpk_),intent(inout), optional, target :: work(:)
|
||||
!!$ end subroutine mld_dprecaply
|
||||
!!$ subroutine mld_dprecaply1(prec,x,desc_data,info,trans)
|
||||
!!$ use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -261,7 +261,7 @@ module mld_prec_mod
|
||||
!!$ character(len=1), optional :: trans
|
||||
!!$ end subroutine mld_dprecaply1
|
||||
!!$ subroutine mld_cprecaply(prec,x,y,desc_data,info,trans,work)
|
||||
!!$ use psb_sparse_mod, only : psb_c_sparse_mat, psb_desc_type, psb_spk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -272,7 +272,7 @@ module mld_prec_mod
|
||||
!!$ complex(psb_spk_),intent(inout), optional, target :: work(:)
|
||||
!!$ end subroutine mld_cprecaply
|
||||
!!$ subroutine mld_cprecaply1(prec,x,desc_data,info,trans)
|
||||
!!$ use psb_sparse_mod, only : psb_c_sparse_mat, psb_desc_type, psb_spk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -281,7 +281,7 @@ module mld_prec_mod
|
||||
!!$ character(len=1), optional :: trans
|
||||
!!$ end subroutine mld_cprecaply1
|
||||
!!$ subroutine mld_zprecaply(prec,x,y,desc_data,info,trans,work)
|
||||
!!$ use psb_sparse_mod, only : psb_z_sparse_mat, psb_desc_type, psb_dpk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -292,7 +292,7 @@ module mld_prec_mod
|
||||
!!$ complex(psb_dpk_),intent(inout), optional, target :: work(:)
|
||||
!!$ end subroutine mld_zprecaply
|
||||
!!$ subroutine mld_zprecaply1(prec,x,desc_data,info,trans)
|
||||
!!$ use psb_sparse_mod, only : psb_z_sparse_mat, psb_desc_type, psb_dpk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -304,40 +304,40 @@ module mld_prec_mod
|
||||
!!$
|
||||
interface mld_precbld
|
||||
subroutine mld_sprecbld(a,desc_a,prec,info)
|
||||
use psb_sparse_mod, only : psb_s_sparse_mat, psb_desc_type, psb_spk_
|
||||
use psb_sparse_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_
|
||||
use mld_prec_type, only : mld_sprec_type
|
||||
implicit none
|
||||
type(psb_s_sparse_mat), intent(in), target :: a
|
||||
type(psb_sspmat_type), intent(in), target :: a
|
||||
type(psb_desc_type), intent(in), target :: desc_a
|
||||
type(mld_sprec_type), intent(inout), target :: prec
|
||||
integer, intent(out) :: info
|
||||
!!$ character, intent(in),optional :: upd
|
||||
end subroutine mld_sprecbld
|
||||
subroutine mld_dprecbld(a,desc_a,prec,info)
|
||||
use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_
|
||||
use psb_sparse_mod, only : psb_dspmat_type, psb_desc_type, psb_dpk_
|
||||
use mld_prec_type, only : mld_dprec_type
|
||||
implicit none
|
||||
type(psb_d_sparse_mat), intent(in), target :: a
|
||||
type(psb_dspmat_type), intent(in), target :: a
|
||||
type(psb_desc_type), intent(in), target :: desc_a
|
||||
type(mld_dprec_type), intent(inout), target :: prec
|
||||
integer, intent(out) :: info
|
||||
!!$ character, intent(in),optional :: upd
|
||||
end subroutine mld_dprecbld
|
||||
subroutine mld_cprecbld(a,desc_a,prec,info)
|
||||
use psb_sparse_mod, only : psb_c_sparse_mat, psb_desc_type, psb_spk_
|
||||
use psb_sparse_mod, only : psb_cspmat_type, psb_desc_type, psb_spk_
|
||||
use mld_prec_type, only : mld_cprec_type
|
||||
implicit none
|
||||
type(psb_c_sparse_mat), intent(in), target :: a
|
||||
type(psb_cspmat_type), intent(in), target :: a
|
||||
type(psb_desc_type), intent(in), target :: desc_a
|
||||
type(mld_cprec_type), intent(inout), target :: prec
|
||||
integer, intent(out) :: info
|
||||
!!$ character, intent(in),optional :: upd
|
||||
end subroutine mld_cprecbld
|
||||
subroutine mld_zprecbld(a,desc_a,prec,info)
|
||||
use psb_sparse_mod, only : psb_z_sparse_mat, psb_desc_type, psb_dpk_
|
||||
use psb_sparse_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_
|
||||
use mld_prec_type, only : mld_zprec_type
|
||||
implicit none
|
||||
type(psb_z_sparse_mat), intent(in), target :: a
|
||||
type(psb_zspmat_type), intent(in), target :: a
|
||||
type(psb_desc_type), intent(in), target :: desc_a
|
||||
type(mld_zprec_type), intent(inout) :: prec
|
||||
integer, intent(out) :: info
|
||||
@@ -348,7 +348,7 @@ module mld_prec_mod
|
||||
contains
|
||||
|
||||
!!$ subroutine mld_i_sprecseti(p,what,val,info)
|
||||
!!$ use psb_sparse_mod, only : psb_s_sparse_mat, psb_desc_type, psb_spk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -359,7 +359,7 @@ contains
|
||||
!!$ end subroutine mld_i_sprecseti
|
||||
!!$
|
||||
!!$ subroutine mld_i_sprecsetr(p,what,val,info)
|
||||
!!$ use psb_sparse_mod, only : psb_s_sparse_mat, psb_desc_type, psb_spk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -370,7 +370,7 @@ contains
|
||||
!!$ end subroutine mld_i_sprecsetr
|
||||
!!$
|
||||
!!$ subroutine mld_i_sprecsetc(p,what,val,info)
|
||||
!!$ use psb_sparse_mod, only : psb_s_sparse_mat, psb_desc_type, psb_spk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -381,7 +381,7 @@ contains
|
||||
!!$ end subroutine mld_i_sprecsetc
|
||||
|
||||
subroutine mld_i_dprecseti(p,what,val,info)
|
||||
use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_
|
||||
use psb_sparse_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
|
||||
@@ -392,7 +392,7 @@ contains
|
||||
end subroutine mld_i_dprecseti
|
||||
|
||||
subroutine mld_i_dprecsetr(p,what,val,info)
|
||||
use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_
|
||||
use psb_sparse_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
|
||||
@@ -403,7 +403,7 @@ contains
|
||||
end subroutine mld_i_dprecsetr
|
||||
|
||||
subroutine mld_i_dprecsetc(p,what,val,info)
|
||||
use psb_sparse_mod, only : psb_d_sparse_mat, psb_desc_type, psb_dpk_
|
||||
use psb_sparse_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
|
||||
@@ -414,7 +414,7 @@ contains
|
||||
end subroutine mld_i_dprecsetc
|
||||
|
||||
!!$ subroutine mld_i_cprecseti(p,what,val,info)
|
||||
!!$ use psb_sparse_mod, only : psb_c_sparse_mat, psb_desc_type, psb_spk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -425,7 +425,7 @@ contains
|
||||
!!$ end subroutine mld_i_cprecseti
|
||||
!!$
|
||||
!!$ subroutine mld_i_cprecsetr(p,what,val,info)
|
||||
!!$ use psb_sparse_mod, only : psb_c_sparse_mat, psb_desc_type, psb_spk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -436,7 +436,7 @@ contains
|
||||
!!$ end subroutine mld_i_cprecsetr
|
||||
!!$
|
||||
!!$ subroutine mld_i_cprecsetc(p,what,val,info)
|
||||
!!$ use psb_sparse_mod, only : psb_c_sparse_mat, psb_desc_type, psb_spk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -447,7 +447,7 @@ contains
|
||||
!!$ end subroutine mld_i_cprecsetc
|
||||
!!$
|
||||
!!$ subroutine mld_i_zprecseti(p,what,val,info)
|
||||
!!$ use psb_sparse_mod, only : psb_z_sparse_mat, psb_desc_type, psb_dpk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -458,7 +458,7 @@ contains
|
||||
!!$ end subroutine mld_i_zprecseti
|
||||
!!$
|
||||
!!$ subroutine mld_i_zprecsetr(p,what,val,info)
|
||||
!!$ use psb_sparse_mod, only : psb_z_sparse_mat, psb_desc_type, psb_dpk_
|
||||
!!$ use psb_sparse_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
|
||||
@@ -469,7 +469,7 @@ contains
|
||||
!!$ end subroutine mld_i_zprecsetr
|
||||
!!$
|
||||
!!$ subroutine mld_i_zprecsetc(p,what,val,info)
|
||||
!!$ use psb_sparse_mod, only : psb_z_sparse_mat, psb_desc_type, psb_dpk_
|
||||
!!$ use psb_sparse_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
|
||||
|
||||
+10
-10
@@ -89,9 +89,9 @@ module mld_s_prec_type
|
||||
! type(mld_Tbaseprec_type) :: prec
|
||||
! integer, allocatable :: iprcparm(:)
|
||||
! real(psb_Tpk_), allocatable :: rprcparm(:)
|
||||
! type(psb_T_sparse_mat) :: ac
|
||||
! type(psb_Tspmat_type) :: ac
|
||||
! type(psb_desc_type) :: desc_ac
|
||||
! type(psb_T_sparse_mat), pointer :: base_a => null()
|
||||
! type(psb_Tspmat_type), pointer :: base_a => null()
|
||||
! type(psb_desc_type), pointer :: base_desc => null()
|
||||
! type(psb_Tlinmap_type) :: map
|
||||
! end type mld_Tonelev_type
|
||||
@@ -110,7 +110,7 @@ module mld_s_prec_type
|
||||
! desc_ac - type(psb_desc_type).
|
||||
! The communication descriptor associated to the matrix
|
||||
! stored in ac.
|
||||
! base_a - type(psb_z_sparse_mat), pointer.
|
||||
! base_a - type(psb_zspmat_type), pointer.
|
||||
! Pointer (really a pointer!) to the local part of the current
|
||||
! matrix (so we have a unified treatment of residuals).
|
||||
! We need this to avoid passing explicitly the current matrix
|
||||
@@ -128,7 +128,7 @@ module mld_s_prec_type
|
||||
! It holds the smoother (base preconditioner) at a single level.
|
||||
!
|
||||
! type mld_Tbaseprec_type
|
||||
! type(psb_T_sparse_mat), allocatable :: av(:)
|
||||
! type(psb_Tspmat_type), allocatable :: av(:)
|
||||
! IntrType(psb_Tpk_), allocatable :: d(:)
|
||||
! type(psb_desc_type) :: desc_data
|
||||
! integer, allocatable :: iprcparm(:)
|
||||
@@ -140,7 +140,7 @@ module mld_s_prec_type
|
||||
! the kind of the real or complex type, according to the real/complex, single/double
|
||||
! precision version of MLD2P4.
|
||||
!
|
||||
! av - type(psb_T_sparse_mat), dimension(:), allocatable(:).
|
||||
! av - type(psb_Tspmat_type), dimension(:), allocatable(:).
|
||||
! The sparse matrices needed to apply the preconditioner at
|
||||
! the current level ilev.
|
||||
! av(mld_l_pr_) - The L factor of the ILU factorization of the local
|
||||
@@ -177,7 +177,7 @@ module mld_s_prec_type
|
||||
!
|
||||
|
||||
type mld_sbaseprec_type
|
||||
type(psb_s_sparse_mat), allocatable :: av(:)
|
||||
type(psb_sspmat_type), allocatable :: av(:)
|
||||
real(psb_spk_), allocatable :: d(:)
|
||||
type(psb_desc_type) :: desc_data
|
||||
integer, allocatable :: iprcparm(:)
|
||||
@@ -189,9 +189,9 @@ module mld_s_prec_type
|
||||
type(mld_sbaseprec_type) :: prec
|
||||
integer, allocatable :: iprcparm(:)
|
||||
real(psb_spk_), allocatable :: rprcparm(:)
|
||||
type(psb_s_sparse_mat) :: ac
|
||||
type(psb_sspmat_type) :: ac
|
||||
type(psb_desc_type) :: desc_ac
|
||||
type(psb_s_sparse_mat), pointer :: base_a => null()
|
||||
type(psb_sspmat_type), pointer :: base_a => null()
|
||||
type(psb_desc_type), pointer :: base_desc => null()
|
||||
type(psb_slinmap_type) :: map
|
||||
end type mld_sonelev_type
|
||||
@@ -235,7 +235,7 @@ module mld_s_prec_type
|
||||
|
||||
interface mld_precaply
|
||||
subroutine mld_sprecaply(prec,x,y,desc_data,info,trans,work)
|
||||
use psb_sparse_mod, only : psb_s_sparse_mat, psb_desc_type, psb_spk_
|
||||
use psb_sparse_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_
|
||||
import mld_sprec_type
|
||||
type(psb_desc_type),intent(in) :: desc_data
|
||||
type(mld_sprec_type), intent(in) :: prec
|
||||
@@ -246,7 +246,7 @@ module mld_s_prec_type
|
||||
real(psb_spk_),intent(inout), optional, target :: work(:)
|
||||
end subroutine mld_sprecaply
|
||||
subroutine mld_sprecaply1(prec,x,desc_data,info,trans)
|
||||
use psb_sparse_mod, only : psb_s_sparse_mat, psb_desc_type, psb_spk_
|
||||
use psb_sparse_mod, only : psb_sspmat_type, psb_desc_type, psb_spk_
|
||||
import mld_sprec_type
|
||||
type(psb_desc_type),intent(in) :: desc_data
|
||||
type(mld_sprec_type), intent(in) :: prec
|
||||
|
||||
+10
-10
@@ -88,9 +88,9 @@ module mld_z_prec_type
|
||||
! type(mld_Tbaseprec_type) :: prec
|
||||
! integer, allocatable :: iprcparm(:)
|
||||
! real(psb_Tpk_), allocatable :: rprcparm(:)
|
||||
! type(psb_T_sparse_mat) :: ac
|
||||
! type(psb_Tspmat_type) :: ac
|
||||
! type(psb_desc_type) :: desc_ac
|
||||
! type(psb_T_sparse_mat), pointer :: base_a => null()
|
||||
! type(psb_Tspmat_type), pointer :: base_a => null()
|
||||
! type(psb_desc_type), pointer :: base_desc => null()
|
||||
! type(psb_Tlinmap_type) :: map
|
||||
! end type mld_Tonelev_type
|
||||
@@ -109,7 +109,7 @@ module mld_z_prec_type
|
||||
! desc_ac - type(psb_desc_type).
|
||||
! The communication descriptor associated to the matrix
|
||||
! stored in ac.
|
||||
! base_a - type(psb_z_sparse_mat), pointer.
|
||||
! base_a - type(psb_zspmat_type), pointer.
|
||||
! Pointer (really a pointer!) to the local part of the current
|
||||
! matrix (so we have a unified treatment of residuals).
|
||||
! We need this to avoid passing explicitly the current matrix
|
||||
@@ -127,7 +127,7 @@ module mld_z_prec_type
|
||||
! It holds the smoother (base preconditioner) at a single level.
|
||||
!
|
||||
! type mld_Tbaseprec_type
|
||||
! type(psb_T_sparse_mat), allocatable :: av(:)
|
||||
! type(psb_Tspmat_type), allocatable :: av(:)
|
||||
! IntrType(psb_Tpk_), allocatable :: d(:)
|
||||
! type(psb_desc_type) :: desc_data
|
||||
! integer, allocatable :: iprcparm(:)
|
||||
@@ -139,7 +139,7 @@ module mld_z_prec_type
|
||||
! the kind of the real or complex type, according to the real/complex, single/double
|
||||
! precision version of MLD2P4.
|
||||
!
|
||||
! av - type(psb_T_sparse_mat), dimension(:), allocatable(:).
|
||||
! av - type(psb_Tspmat_type), dimension(:), allocatable(:).
|
||||
! The sparse matrices needed to apply the preconditioner at
|
||||
! the current level ilev.
|
||||
! av(mld_l_pr_) - The L factor of the ILU factorization of the local
|
||||
@@ -176,7 +176,7 @@ module mld_z_prec_type
|
||||
!
|
||||
|
||||
type mld_zbaseprec_type
|
||||
type(psb_z_sparse_mat), allocatable :: av(:)
|
||||
type(psb_zspmat_type), allocatable :: av(:)
|
||||
complex(psb_dpk_), allocatable :: d(:)
|
||||
type(psb_desc_type) :: desc_data
|
||||
integer, allocatable :: iprcparm(:)
|
||||
@@ -188,9 +188,9 @@ module mld_z_prec_type
|
||||
type(mld_zbaseprec_type) :: prec
|
||||
integer, allocatable :: iprcparm(:)
|
||||
real(psb_dpk_), allocatable :: rprcparm(:)
|
||||
type(psb_z_sparse_mat) :: ac
|
||||
type(psb_zspmat_type) :: ac
|
||||
type(psb_desc_type) :: desc_ac
|
||||
type(psb_z_sparse_mat), pointer :: base_a => null()
|
||||
type(psb_zspmat_type), pointer :: base_a => null()
|
||||
type(psb_desc_type), pointer :: base_desc => null()
|
||||
type(psb_zlinmap_type) :: map
|
||||
end type mld_zonelev_type
|
||||
@@ -230,7 +230,7 @@ module mld_z_prec_type
|
||||
|
||||
interface mld_precaply
|
||||
subroutine mld_zprecaply(prec,x,y,desc_data,info,trans,work)
|
||||
use psb_sparse_mod, only : psb_z_sparse_mat, psb_desc_type, psb_dpk_
|
||||
use psb_sparse_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_
|
||||
import mld_zprec_type
|
||||
type(psb_desc_type),intent(in) :: desc_data
|
||||
type(mld_zprec_type), intent(in) :: prec
|
||||
@@ -241,7 +241,7 @@ module mld_z_prec_type
|
||||
complex(psb_dpk_),intent(inout), optional, target :: work(:)
|
||||
end subroutine mld_zprecaply
|
||||
subroutine mld_zprecaply1(prec,x,desc_data,info,trans)
|
||||
use psb_sparse_mod, only : psb_z_sparse_mat, psb_desc_type, psb_dpk_
|
||||
use psb_sparse_mod, only : psb_zspmat_type, psb_desc_type, psb_dpk_
|
||||
import mld_zprec_type
|
||||
type(psb_desc_type),intent(in) :: desc_data
|
||||
type(mld_zprec_type), intent(in) :: prec
|
||||
|
||||
@@ -2,7 +2,7 @@ MLDDIR=../..
|
||||
include $(MLDDIR)/Make.inc
|
||||
PSBDIR=$(PSBLASDIR)/lib/
|
||||
MLDLIBDIR=$(MLDDIR)/lib
|
||||
MLD_LIB=-L$(MLDLIBDIR) -lmld_krylov -lmld_prec
|
||||
MLD_LIB=-L$(MLDLIBDIR) -lpsb_krylov -lmld_prec -lpsb_prec
|
||||
PSBLAS_LIB= -L$(PSBDIR) -lpsb_util -lpsb_base
|
||||
FINCLUDES=$(FMFLAG). $(FMFLAG)$(MLDLIBDIR) $(FMFLAG)$(PSBDIR) $(FIFLAG).
|
||||
|
||||
@@ -40,9 +40,6 @@ df_sample.o: data_input.o
|
||||
cf_sample.o: data_input.o
|
||||
zf_sample.o: data_input.o
|
||||
|
||||
.f90.o:
|
||||
$(MPF90) $(F90COPT) $(FINCLUDES) -c $<
|
||||
|
||||
clean:
|
||||
/bin/rm -f $(DFOBJS) $(ZFOBJS) $(SFSOBJS) $(DFSOBJS) \
|
||||
*$(.mod) $(EXEDIR)/df_bench $(EXEDIR)/zf_bench \
|
||||
|
||||
@@ -52,11 +52,13 @@ program df_sample
|
||||
character(len=20) :: descr ! verbose description of the prec
|
||||
character(len=10) :: prec ! overall prectype
|
||||
integer :: novr ! number of overlap layers
|
||||
integer :: jsweeps ! Jacobi/smoother sweeps
|
||||
character(len=16) :: restr ! restriction over application of AS
|
||||
character(len=16) :: prol ! prolongation over application of AS
|
||||
character(len=16) :: solve ! factorization type: ILU, SuperLU, UMFPACK
|
||||
integer :: fill ! fillin for factorization
|
||||
real(psb_dpk_) :: thr ! threshold for fact. ILU(T)
|
||||
character(len=16) :: smther ! Smoother
|
||||
integer :: nlev ! number of levels in multilevel prec.
|
||||
character(len=16) :: aggrkind ! smoothed, raw aggregation
|
||||
character(len=16) :: aggr_alg ! aggregation algorithm (currently only decoupled)
|
||||
@@ -145,12 +147,12 @@ program df_sample
|
||||
call mm_vet_read(aux_b,info,iunit=iunit,filename=rhs_file)
|
||||
end if
|
||||
end if
|
||||
|
||||
|
||||
case ('HB')
|
||||
! For Harwell-Boeing we have a single file which may or may not
|
||||
! contain an RHS.
|
||||
call hb_read(aux_a,info,iunit=iunit,b=aux_b,filename=mtrx_file)
|
||||
|
||||
|
||||
case default
|
||||
info = -1
|
||||
write(0,*) 'Wrong choice for fileformat ', filefmt
|
||||
@@ -159,10 +161,10 @@ program df_sample
|
||||
write(0,*) 'Error while reading input matrix '
|
||||
call psb_abort(ictxt)
|
||||
end if
|
||||
|
||||
m_problem = aux_a%m
|
||||
|
||||
m_problem = aux_a%get_nrows()
|
||||
call psb_bcast(ictxt,m_problem)
|
||||
|
||||
|
||||
! At this point aux_b may still be unallocated
|
||||
if (psb_size(aux_b,dim=1) == m_problem) then
|
||||
! if any rhs were present, broadcast the first one
|
||||
@@ -208,11 +210,11 @@ program df_sample
|
||||
else if (ipart == 2) then
|
||||
if (iam == psb_root_) then
|
||||
write(*,'("Partition type: graph")')
|
||||
write(*,'(" ")')
|
||||
write(*,'("")')
|
||||
! write(0,'("Build type: graph")')
|
||||
call build_mtpart(aux_a%m,aux_a%fida,aux_a%ia1,aux_a%ia2,np)
|
||||
call build_mtpart(aux_a,np)
|
||||
endif
|
||||
call psb_barrier(ictxt)
|
||||
!!$ call psb_barrier(ictxt)
|
||||
call distr_mtpart(psb_root_,ictxt)
|
||||
call getv_mtpart(ivg)
|
||||
call psb_matdist(aux_a, a, ictxt, &
|
||||
@@ -245,17 +247,15 @@ program df_sample
|
||||
|
||||
if (psb_toupper(prec_choice%prec) == 'ML') then
|
||||
nlv = prec_choice%nlev
|
||||
else
|
||||
nlv = 1
|
||||
end if
|
||||
call mld_precinit(prec,prec_choice%prec,info,nlev=nlv)
|
||||
call mld_precset(prec,mld_sub_ovr_, prec_choice%novr, info)
|
||||
call mld_precset(prec,mld_sub_restr_, prec_choice%restr,info)
|
||||
call mld_precset(prec,mld_sub_prol_, prec_choice%prol, info)
|
||||
call mld_precset(prec,mld_sub_solve_, prec_choice%solve,info)
|
||||
call mld_precset(prec,mld_sub_fillin_,prec_choice%fill,info)
|
||||
call mld_precset(prec,mld_sub_iluthrs_, prec_choice%thr, info)
|
||||
if (psb_toupper(prec_choice%prec) == 'ML') then
|
||||
call mld_precinit(prec,prec_choice%prec,info,nlev=nlv)
|
||||
call mld_precset(prec,mld_smoother_type_, prec_choice%smther, info)
|
||||
call mld_precset(prec,mld_smoother_sweeps_, prec_choice%jsweeps, info)
|
||||
call mld_precset(prec,mld_sub_ovr_, prec_choice%novr, info)
|
||||
call mld_precset(prec,mld_sub_restr_, prec_choice%restr, info)
|
||||
call mld_precset(prec,mld_sub_prol_, prec_choice%prol, info)
|
||||
call mld_precset(prec,mld_sub_solve_, prec_choice%solve, info)
|
||||
call mld_precset(prec,mld_sub_fillin_, prec_choice%fill, info)
|
||||
call mld_precset(prec,mld_sub_iluthrs_, prec_choice%thr, info)
|
||||
call mld_precset(prec,mld_aggr_kind_, prec_choice%aggrkind,info)
|
||||
call mld_precset(prec,mld_aggr_alg_, prec_choice%aggr_alg,info)
|
||||
call mld_precset(prec,mld_ml_type_, prec_choice%mltype, info)
|
||||
@@ -267,6 +267,16 @@ program df_sample
|
||||
call mld_precset(prec,mld_coarse_fillin_, prec_choice%cfill, info)
|
||||
call mld_precset(prec,mld_coarse_iluthrs_, prec_choice%cthres, info)
|
||||
call mld_precset(prec,mld_coarse_sweeps_, prec_choice%cjswp, info)
|
||||
else
|
||||
nlv = 1
|
||||
call mld_precinit(prec,prec_choice%prec,info)
|
||||
call mld_precset(prec,mld_smoother_sweeps_, prec_choice%jsweeps, info)
|
||||
call mld_precset(prec,mld_sub_ovr_, prec_choice%novr, info)
|
||||
call mld_precset(prec,mld_sub_restr_, prec_choice%restr, info)
|
||||
call mld_precset(prec,mld_sub_prol_, prec_choice%prol, info)
|
||||
call mld_precset(prec,mld_sub_solve_, prec_choice%solve, info)
|
||||
call mld_precset(prec,mld_sub_fillin_, prec_choice%fill, info)
|
||||
call mld_precset(prec,mld_sub_iluthrs_, prec_choice%thr, info)
|
||||
end if
|
||||
|
||||
! building the preconditioner
|
||||
@@ -278,7 +288,6 @@ program df_sample
|
||||
goto 9999
|
||||
end if
|
||||
|
||||
|
||||
call psb_amx(ictxt, tprec)
|
||||
|
||||
if(iam == psb_root_) then
|
||||
@@ -401,7 +410,9 @@ contains
|
||||
call read_data(prec%solve,5) ! Factorization type: ILU, SuperLU, UMFPACK.
|
||||
call read_data(prec%fill,5) ! Fill-in for factorization
|
||||
call read_data(prec%thr,5) ! Threshold for fact. ILU(T)
|
||||
call read_data(prec%jsweeps,5) ! Jacobi sweeps for PJAC
|
||||
if (psb_toupper(prec%prec) == 'ML') then
|
||||
call read_data(prec%smther,5) ! Smoother type.
|
||||
call read_data(prec%nlev,5) ! Number of levels in multilevel prec.
|
||||
call read_data(prec%aggrkind,5) ! smoothed/raw aggregatin
|
||||
call read_data(prec%aggr_alg,5) ! local or global aggregation
|
||||
@@ -437,7 +448,9 @@ contains
|
||||
call psb_bcast(icontxt,prec%solve) ! Factorization type: ILU, SuperLU, UMFPACK.
|
||||
call psb_bcast(icontxt,prec%fill) ! Fill-in for factorization
|
||||
call psb_bcast(icontxt,prec%thr) ! Threshold for fact. ILU(T)
|
||||
call psb_bcast(icontxt,prec%jsweeps) ! Jacobi sweeps
|
||||
if (psb_toupper(prec%prec) == 'ML') then
|
||||
call psb_bcast(icontxt,prec%smther) ! Smoother type.
|
||||
call psb_bcast(icontxt,prec%nlev) ! Number of levels in multilevel prec.
|
||||
call psb_bcast(icontxt,prec%aggrkind) ! smoothed/raw aggregatin
|
||||
call psb_bcast(icontxt,prec%aggr_alg) ! local or global aggregation
|
||||
|
||||
@@ -86,8 +86,8 @@ program ppde
|
||||
real(psb_dpk_) :: t1, t2, tprec
|
||||
|
||||
! sparse matrix and preconditioner
|
||||
type(psb_d_sparse_mat) :: a
|
||||
type(mld_dprec_type) :: prec
|
||||
type(psb_dspmat_type) :: a
|
||||
type(mld_dprec_type) :: prec
|
||||
! descriptor
|
||||
type(psb_desc_type) :: desc_a
|
||||
! dense matrices
|
||||
@@ -351,7 +351,7 @@ contains
|
||||
call psb_bcast(ictxt,prectype%solve) ! Factorization type: ILU, SuperLU, UMFPACK.
|
||||
call psb_bcast(ictxt,prectype%fill1) ! Fill-in for factorization 1
|
||||
call psb_bcast(ictxt,prectype%thr1) ! Threshold for fact. 1 ILU(T)
|
||||
call psb_bcast(ictxt,prectype%jsweeps) ! Threshold for fact. 1 ILU(T)
|
||||
call psb_bcast(ictxt,prectype%jsweeps) ! Jacobi sweeps
|
||||
if (psb_toupper(prectype%prec) == 'ML') then
|
||||
call psb_bcast(ictxt,prectype%smther) ! Smoother type.
|
||||
call psb_bcast(ictxt,prectype%nlev) ! Number of levels in multilevel prec.
|
||||
@@ -431,7 +431,7 @@ contains
|
||||
type(psb_desc_type) :: desc_a
|
||||
integer :: ictxt, info
|
||||
character :: afmt*5
|
||||
type(psb_d_sparse_mat) :: a
|
||||
type(psb_dspmat_type) :: a
|
||||
real(psb_dpk_) :: zt(nb),x,y,z
|
||||
integer :: m,n,nnz,glob_row,nlr,i,ii,ib,k
|
||||
integer :: ix,iy,iz,ia,indx_owner
|
||||
|
||||
@@ -86,7 +86,7 @@ program spde
|
||||
real(psb_dpk_) :: t1, t2, tprec
|
||||
|
||||
! sparse matrix and preconditioner
|
||||
type(psb_s_sparse_mat) :: a
|
||||
type(psb_sspmat_type) :: a
|
||||
type(mld_sprec_type) :: prec
|
||||
! descriptor
|
||||
type(psb_desc_type) :: desc_a
|
||||
@@ -418,7 +418,7 @@ contains
|
||||
type(psb_desc_type) :: desc_a
|
||||
integer :: ictxt, info
|
||||
character :: afmt*5
|
||||
type(psb_s_sparse_mat) :: a
|
||||
type(psb_sspmat_type) :: a
|
||||
real(psb_spk_) :: zt(nb),x,y,z
|
||||
integer :: m,n,nnz,glob_row,nlr,i,ii,ib,k
|
||||
integer :: ix,iy,iz,ia,indx_owner
|
||||
|
||||
Reference in New Issue
Block a user