|
|
|
|
@ -90,13 +90,13 @@ subroutine amg_dcprecseti(p,what,val,info,ilev,ilmax,pos,idx)
|
|
|
|
|
use amg_d_ainv_solver
|
|
|
|
|
use amg_d_invk_solver
|
|
|
|
|
use amg_d_invt_solver
|
|
|
|
|
#if defined(PSB_HAVE_UMF)
|
|
|
|
|
#if defined(AMG_HAVE_UMF)
|
|
|
|
|
use amg_d_umf_solver
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(PSB_HAVE_SLUDIST)
|
|
|
|
|
#if defined(AMG_HAVE_SLUDIST)
|
|
|
|
|
use amg_d_sludist_solver
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(PSB_HAVE_SLU)
|
|
|
|
|
#if defined(AMG_HAVE_SLU)
|
|
|
|
|
use amg_d_slu_solver
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(PSB_HAVE_MUMPS)
|
|
|
|
|
@ -335,13 +335,13 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
|
|
|
|
|
use amg_d_ainv_solver
|
|
|
|
|
use amg_d_invk_solver
|
|
|
|
|
use amg_d_invt_solver
|
|
|
|
|
#if defined(PSB_HAVE_UMF)
|
|
|
|
|
#if defined(AMG_HAVE_UMF)
|
|
|
|
|
use amg_d_umf_solver
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(PSB_HAVE_SLUDIST)
|
|
|
|
|
#if defined(AMG_HAVE_SLUDIST)
|
|
|
|
|
use amg_d_sludist_solver
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(PSB_HAVE_SLU)
|
|
|
|
|
#if defined(AMG_HAVE_SLU)
|
|
|
|
|
use amg_d_slu_solver
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(PSB_HAVE_MUMPS)
|
|
|
|
|
@ -492,9 +492,9 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
|
|
|
|
|
select case (psb_toupper(string))
|
|
|
|
|
case('BJAC')
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
|
|
|
|
|
#if defined(PSB_HAVE_UMF)
|
|
|
|
|
#if defined(AMG_HAVE_UMF)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
|
|
|
|
|
#elif defined(PSB_HAVE_SLU)
|
|
|
|
|
#elif defined(AMG_HAVE_SLU)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
|
|
|
|
|
#elif defined(PSB_HAVE_MUMPS)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
|
|
|
|
|
@ -508,9 +508,9 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
|
|
|
|
|
|
|
|
|
|
case('L1-BJAC')
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_l1_bjac_,info,pos=pos)
|
|
|
|
|
#if defined(PSB_HAVE_UMF)
|
|
|
|
|
#if defined(AMG_HAVE_UMF)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
|
|
|
|
|
#elif defined(PSB_HAVE_SLU)
|
|
|
|
|
#elif defined(AMG_HAVE_SLU)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
|
|
|
|
|
#elif defined(PSB_HAVE_MUMPS)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
|
|
|
|
|
@ -522,7 +522,7 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
|
|
|
|
|
& amg_distr_mat_)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info)
|
|
|
|
|
case('SLU')
|
|
|
|
|
#if defined(PSB_HAVE_SLU)
|
|
|
|
|
#if defined(AMG_HAVE_SLU)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
|
|
|
|
|
if (hier_asb) &
|
|
|
|
|
@ -582,14 +582,14 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info,pos=pos)
|
|
|
|
|
#endif
|
|
|
|
|
case('UMF')
|
|
|
|
|
#if defined(PSB_HAVE_UMF)
|
|
|
|
|
#if defined(AMG_HAVE_UMF)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
|
|
|
|
|
if (hier_asb) &
|
|
|
|
|
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
|
|
|
|
|
& amg_repl_mat_)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
|
|
|
|
|
#elif defined(PSB_HAVE_SLU)
|
|
|
|
|
#elif defined(AMG_HAVE_SLU)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
|
|
|
|
|
if (hier_asb) &
|
|
|
|
|
@ -613,21 +613,21 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
case('SLUDIST')
|
|
|
|
|
#if defined(PSB_HAVE_SLUDIST)
|
|
|
|
|
#if defined(AMG_HAVE_SLUDIST)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_sludist_,info,pos=pos)
|
|
|
|
|
if (hier_asb) &
|
|
|
|
|
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
|
|
|
|
|
& amg_distr_mat_)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info,pos=pos)
|
|
|
|
|
#elif defined(PSB_HAVE_UMF)
|
|
|
|
|
#elif defined(AMG_HAVE_UMF)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
|
|
|
|
|
if (hier_asb) &
|
|
|
|
|
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
|
|
|
|
|
& amg_repl_mat_)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
|
|
|
|
|
#elif defined(PSB_HAVE_SLU)
|
|
|
|
|
#elif defined(AMG_HAVE_SLU)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
|
|
|
|
|
if (hier_asb) &
|
|
|
|
|
@ -746,9 +746,9 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
|
|
|
|
|
select case (psb_toupper(trim(string)))
|
|
|
|
|
case('BJAC')
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
|
|
|
|
|
#if defined(PSB_HAVE_UMF)
|
|
|
|
|
#if defined(AMG_HAVE_UMF)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
|
|
|
|
|
#elif defined(PSB_HAVE_SLU)
|
|
|
|
|
#elif defined(AMG_HAVE_SLU)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
|
|
|
|
|
#elif defined(PSB_HAVE_MUMPS)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
|
|
|
|
|
@ -761,9 +761,9 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info)
|
|
|
|
|
case('L1-BJAC')
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_l1_bjac_,info,pos=pos)
|
|
|
|
|
#if defined(PSB_HAVE_UMF)
|
|
|
|
|
#if defined(AMG_HAVE_UMF)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
|
|
|
|
|
#elif defined(PSB_HAVE_SLU)
|
|
|
|
|
#elif defined(AMG_HAVE_SLU)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
|
|
|
|
|
#elif defined(PSB_HAVE_MUMPS)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_mumps_,info,pos=pos)
|
|
|
|
|
@ -775,7 +775,7 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
|
|
|
|
|
& amg_distr_mat_)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info)
|
|
|
|
|
case('SLU')
|
|
|
|
|
#if defined(PSB_HAVE_SLU)
|
|
|
|
|
#if defined(AMG_HAVE_SLU)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
|
|
|
|
|
if (hier_asb) &
|
|
|
|
|
@ -835,14 +835,14 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info,pos=pos)
|
|
|
|
|
#endif
|
|
|
|
|
case('UMF')
|
|
|
|
|
#if defined(PSB_HAVE_UMF)
|
|
|
|
|
#if defined(AMG_HAVE_UMF)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
|
|
|
|
|
if (hier_asb) &
|
|
|
|
|
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
|
|
|
|
|
& amg_repl_mat_)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
|
|
|
|
|
#elif defined(PSB_HAVE_SLU)
|
|
|
|
|
#elif defined(AMG_HAVE_SLU)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
|
|
|
|
|
if (hier_asb) &
|
|
|
|
|
@ -866,21 +866,21 @@ subroutine amg_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx)
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
case('SLUDIST')
|
|
|
|
|
#if defined(PSB_HAVE_SLUDIST)
|
|
|
|
|
#if defined(AMG_HAVE_SLUDIST)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_sludist_,info,pos=pos)
|
|
|
|
|
if (hier_asb) &
|
|
|
|
|
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
|
|
|
|
|
& amg_distr_mat_)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',amg_distr_mat_,info,pos=pos)
|
|
|
|
|
#elif defined(PSB_HAVE_UMF)
|
|
|
|
|
#elif defined(AMG_HAVE_UMF)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_umf_,info,pos=pos)
|
|
|
|
|
if (hier_asb) &
|
|
|
|
|
& call amg_warn_coarse_mat(p%precv(nlev_)%parms%get_coarse_mat(),&
|
|
|
|
|
& amg_repl_mat_)
|
|
|
|
|
call p%precv(nlev_)%set('COARSE_MAT',amg_repl_mat_,info,pos=pos)
|
|
|
|
|
#elif defined(PSB_HAVE_SLU)
|
|
|
|
|
#elif defined(AMG_HAVE_SLU)
|
|
|
|
|
call p%precv(nlev_)%set('SMOOTHER_TYPE',amg_bjac_,info,pos=pos)
|
|
|
|
|
call p%precv(nlev_)%set('SUB_SOLVE',amg_slu_,info,pos=pos)
|
|
|
|
|
if (hier_asb) &
|
|
|
|
|
|