diff --git a/mlprec/mld_base_prec_type.F90 b/mlprec/mld_base_prec_type.F90 index 966732ca..dd838352 100644 --- a/mlprec/mld_base_prec_type.F90 +++ b/mlprec/mld_base_prec_type.F90 @@ -189,8 +189,11 @@ module mld_base_prec_type integer(psb_ipk_), parameter :: mld_umf_ = mld_slv_delta_+7 integer(psb_ipk_), parameter :: mld_sludist_ = mld_slv_delta_+8 integer(psb_ipk_), parameter :: mld_mumps_ = mld_slv_delta_+9 + integer(psb_ipk_), parameter :: mld_max_sub_solve_= mld_slv_delta_+9 + integer(psb_ipk_), parameter :: mld_mumps_ = mld_slv_delta_+9 integer(psb_ipk_), parameter :: mld_max_sub_solve_= mld_slv_delta_+8 integer(psb_ipk_), parameter :: mld_min_sub_solve_= mld_diag_scale_ + ! ! Legal values for entry: mld_sub_ren_ ! @@ -281,13 +284,16 @@ module mld_base_prec_type integer(psb_ipk_), parameter :: mld_solver_eps_ = 6 integer(psb_ipk_), parameter :: mld_rfpsz_ = 8 + ! - !Entries for dmumps + ! Entries for mumps ! !parameter controling the sequential/parallel building of MUMPS integer(psb_ipk_), parameter :: mld_as_sequential_ =40 !parameter regulating the error printing of MUMPS integer(psb_ipk_), parameter :: mld_mumps_print_err_ = 41 + + ! ! Fields for sparse matrices ensembles stored in av() ! integer(psb_ipk_), parameter :: mld_l_pr_=1 @@ -323,15 +329,17 @@ module mld_base_prec_type character(len=15), parameter, private :: & & ml_names(0:3)=(/'none ','additive ','multiplicative',& & 'new ML '/) + character(len=15), parameter :: & + & mld_fact_names(0:mld_max_sub_solve_)=(/& character(len=15), parameter, private :: & & fact_names(0:mld_slv_delta_+8)=(/& & 'none ','none ',& & 'none ','none ',& - & 'none ','Point Jacobi ','ILU(n) ',& + & 'none ', 'Point Jacobi ',& + & 'Gauss-Seidel ','ILU(n) ',& & 'MILU(n) ','ILU(t,n) ',& & 'SuperLU ','UMFPACK LU ',& - & 'SuperLU_Dist ','MUMPS '/) - + & 'SuperLU_Dist ','MUMPS '/) interface mld_check_def module procedure mld_icheck_def, mld_scheck_def, mld_dcheck_def @@ -568,7 +576,7 @@ contains & 'Block Jacobi' else write(iout,*) ' Coarse solver: ',& - & fact_names(pm%coarse_solve) + & mld_fact_names(pm%coarse_solve) end if end subroutine ml_parms_coarsedescr diff --git a/mlprec/mld_c_ilu_solver.f90 b/mlprec/mld_c_ilu_solver.f90 index 70bf95bc..949f28c5 100644 --- a/mlprec/mld_c_ilu_solver.f90 +++ b/mlprec/mld_c_ilu_solver.f90 @@ -45,6 +45,7 @@ module mld_c_ilu_solver + use mld_base_prec_type, only : mld_fact_names use mld_c_base_solver_mod use mld_c_ilu_fact_mod @@ -86,15 +87,6 @@ module mld_c_ilu_solver & c_ilu_solver_get_fmt, c_ilu_solver_check - character(len=15), parameter, private :: & - & fact_names(0:mld_slv_delta_+4)=(/& - & 'none ','none ',& - & 'none ','none ',& - & 'none ','DIAG ?? ',& - & 'ILU(n) ',& - & 'MILU(n) ','ILU(t,n) '/) - - interface subroutine mld_c_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, mld_c_ilu_solver_type, psb_c_vect_type, psb_spk_, & @@ -484,7 +476,7 @@ contains endif write(iout_,*) ' Incomplete factorization solver: ',& - & fact_names(sv%fact_type) + & mld_fact_names(sv%fact_type) select case(sv%fact_type) case(mld_ilu_n_,mld_milu_n_) write(iout_,*) ' Fill level:',sv%fill_in diff --git a/mlprec/mld_d_ilu_solver.f90 b/mlprec/mld_d_ilu_solver.f90 index f11a04bc..0abfc744 100644 --- a/mlprec/mld_d_ilu_solver.f90 +++ b/mlprec/mld_d_ilu_solver.f90 @@ -45,6 +45,7 @@ module mld_d_ilu_solver + use mld_base_prec_type, only : mld_fact_names use mld_d_base_solver_mod use mld_d_ilu_fact_mod @@ -86,15 +87,6 @@ module mld_d_ilu_solver & d_ilu_solver_get_fmt, d_ilu_solver_check - character(len=15), parameter, private :: & - & fact_names(0:mld_slv_delta_+4)=(/& - & 'none ','none ',& - & 'none ','none ',& - & 'none ','DIAG ?? ',& - & 'ILU(n) ',& - & 'MILU(n) ','ILU(t,n) '/) - - interface subroutine mld_d_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, mld_d_ilu_solver_type, psb_d_vect_type, psb_dpk_, & @@ -484,7 +476,7 @@ contains endif write(iout_,*) ' Incomplete factorization solver: ',& - & fact_names(sv%fact_type) + & mld_fact_names(sv%fact_type) select case(sv%fact_type) case(mld_ilu_n_,mld_milu_n_) write(iout_,*) ' Fill level:',sv%fill_in diff --git a/mlprec/mld_s_ilu_solver.f90 b/mlprec/mld_s_ilu_solver.f90 index 4f784e35..b6bb4a64 100644 --- a/mlprec/mld_s_ilu_solver.f90 +++ b/mlprec/mld_s_ilu_solver.f90 @@ -45,6 +45,7 @@ module mld_s_ilu_solver + use mld_base_prec_type, only : mld_fact_names use mld_s_base_solver_mod use mld_s_ilu_fact_mod @@ -86,15 +87,6 @@ module mld_s_ilu_solver & s_ilu_solver_get_fmt, s_ilu_solver_check - character(len=15), parameter, private :: & - & fact_names(0:mld_slv_delta_+4)=(/& - & 'none ','none ',& - & 'none ','none ',& - & 'none ','DIAG ?? ',& - & 'ILU(n) ',& - & 'MILU(n) ','ILU(t,n) '/) - - interface subroutine mld_s_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, mld_s_ilu_solver_type, psb_s_vect_type, psb_spk_, & @@ -484,7 +476,7 @@ contains endif write(iout_,*) ' Incomplete factorization solver: ',& - & fact_names(sv%fact_type) + & mld_fact_names(sv%fact_type) select case(sv%fact_type) case(mld_ilu_n_,mld_milu_n_) write(iout_,*) ' Fill level:',sv%fill_in diff --git a/mlprec/mld_z_ilu_solver.f90 b/mlprec/mld_z_ilu_solver.f90 index ee110d12..562889b8 100644 --- a/mlprec/mld_z_ilu_solver.f90 +++ b/mlprec/mld_z_ilu_solver.f90 @@ -45,6 +45,7 @@ module mld_z_ilu_solver + use mld_base_prec_type, only : mld_fact_names use mld_z_base_solver_mod use mld_z_ilu_fact_mod @@ -86,15 +87,6 @@ module mld_z_ilu_solver & z_ilu_solver_get_fmt, z_ilu_solver_check - character(len=15), parameter, private :: & - & fact_names(0:mld_slv_delta_+4)=(/& - & 'none ','none ',& - & 'none ','none ',& - & 'none ','DIAG ?? ',& - & 'ILU(n) ',& - & 'MILU(n) ','ILU(t,n) '/) - - interface subroutine mld_z_ilu_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info) import :: psb_desc_type, mld_z_ilu_solver_type, psb_z_vect_type, psb_dpk_, & @@ -484,7 +476,7 @@ contains endif write(iout_,*) ' Incomplete factorization solver: ',& - & fact_names(sv%fact_type) + & mld_fact_names(sv%fact_type) select case(sv%fact_type) case(mld_ilu_n_,mld_milu_n_) write(iout_,*) ' Fill level:',sv%fill_in