mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 22:55:12 +00:00
mld2p4:
docs/pdf/Makefile docs/pdf/abstract.tex docs/pdf/background.tex docs/pdf/bibliography.tex docs/pdf/building.tex docs/pdf/conventions.tex docs/pdf/distribution.tex docs/pdf/errors.tex docs/pdf/gettingstarted.tex docs/pdf/license.tex docs/pdf/overview.tex docs/pdf/userguide.tex docs/pdf/userinterface.tex mlprec/mld_cprecinit.f90 mlprec/mld_cprecset.f90 mlprec/mld_dprecinit.f90 mlprec/mld_dprecset.f90 mlprec/mld_sprecinit.f90 mlprec/mld_sprecset.f90 mlprec/mld_zprecinit.f90 mlprec/mld_zprecset.f90 Latest documentation. Fixed inconsistent initialization in precinit. Fixed tipographical conventions in precset.
This commit is contained in:
+67
-66
@@ -117,12 +117,12 @@ subroutine mld_cprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_noprec_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_f_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_noprec_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_f_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
|
||||
@@ -133,12 +133,12 @@ subroutine mld_cprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_diag_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_f_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_diag_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_f_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
|
||||
@@ -149,14 +149,14 @@ subroutine mld_cprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
|
||||
case ('AS')
|
||||
@@ -166,15 +166,15 @@ subroutine mld_cprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_as_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_halo_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 1
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_as_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_halo_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 1
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
|
||||
|
||||
case ('ML')
|
||||
@@ -189,61 +189,62 @@ subroutine mld_cprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = szero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_as_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_halo_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = szero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_as_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_halo_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
if (nlev_ == 1) return
|
||||
|
||||
do ilev_ = 2, nlev_ -1
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = szero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = szero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_ml_type_) = mld_mult_ml_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_alg_) = mld_dec_aggr_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_kind_) = mld_smooth_prol_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_ml_type_) = mld_mult_ml_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_alg_) = mld_dec_aggr_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_kind_) = mld_smooth_prol_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_pos_) = mld_post_smooth_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
p%baseprecv(ilev_)%rprcparm(mld_aggr_damp_) = 4.e0/3.e0
|
||||
p%baseprecv(ilev_)%rprcparm(mld_aggr_damp_) = 4.e0/3.e0
|
||||
end do
|
||||
ilev_ = nlev_
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = szero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = szero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_solve_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_ml_type_) = mld_mult_ml_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_alg_) = mld_dec_aggr_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_kind_) = mld_smooth_prol_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_ml_type_) = mld_mult_ml_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_alg_) = mld_dec_aggr_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_kind_) = mld_smooth_prol_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_pos_) = mld_post_smooth_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 4
|
||||
p%baseprecv(ilev_)%rprcparm(mld_aggr_damp_) = 4.e0/3.e0
|
||||
p%baseprecv(ilev_)%rprcparm(mld_aggr_damp_) = 4.e0/3.e0
|
||||
|
||||
case default
|
||||
write(0,*) name,': Warning: Unknown preconditioner type request "',ptype,'"'
|
||||
|
||||
@@ -244,6 +244,8 @@ subroutine mld_cprecseti(p,what,val,info,ilev)
|
||||
select case (val)
|
||||
case(mld_umf_, mld_slu_)
|
||||
p%baseprecv(nlev_)%iprcparm(mld_coarse_mat_) = mld_repl_mat_
|
||||
case(mld_bjac_)
|
||||
p%baseprecv(nlev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
case default
|
||||
p%baseprecv(nlev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
end select
|
||||
|
||||
+67
-66
@@ -117,12 +117,12 @@ subroutine mld_dprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_noprec_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_f_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_noprec_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_f_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
|
||||
@@ -133,12 +133,12 @@ subroutine mld_dprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_diag_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_f_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_diag_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_f_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
|
||||
@@ -149,14 +149,14 @@ subroutine mld_dprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
|
||||
case ('AS')
|
||||
@@ -166,15 +166,15 @@ subroutine mld_dprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_as_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_halo_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 1
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_as_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_halo_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 1
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
|
||||
|
||||
case ('ML')
|
||||
@@ -189,61 +189,62 @@ subroutine mld_dprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = dzero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_as_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_halo_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = dzero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_as_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_halo_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
if (nlev_ == 1) return
|
||||
|
||||
do ilev_ = 2, nlev_ -1
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = dzero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = dzero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_ml_type_) = mld_mult_ml_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_alg_) = mld_dec_aggr_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_kind_) = mld_smooth_prol_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_ml_type_) = mld_mult_ml_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_alg_) = mld_dec_aggr_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_kind_) = mld_smooth_prol_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_pos_) = mld_post_smooth_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
p%baseprecv(ilev_)%rprcparm(mld_aggr_damp_) = 4.d0/3.d0
|
||||
p%baseprecv(ilev_)%rprcparm(mld_aggr_damp_) = 4.d0/3.d0
|
||||
end do
|
||||
ilev_ = nlev_
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = dzero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = dzero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_solve_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_ml_type_) = mld_mult_ml_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_alg_) = mld_dec_aggr_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_kind_) = mld_smooth_prol_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_ml_type_) = mld_mult_ml_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_alg_) = mld_dec_aggr_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_kind_) = mld_smooth_prol_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_pos_) = mld_post_smooth_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 4
|
||||
p%baseprecv(ilev_)%rprcparm(mld_aggr_damp_) = 4.d0/3.d0
|
||||
p%baseprecv(ilev_)%rprcparm(mld_aggr_damp_) = 4.d0/3.d0
|
||||
|
||||
case default
|
||||
write(0,*) name,': Warning: Unknown preconditioner type request "',ptype,'"'
|
||||
|
||||
@@ -244,6 +244,8 @@ subroutine mld_dprecseti(p,what,val,info,ilev)
|
||||
select case (val)
|
||||
case(mld_umf_, mld_slu_)
|
||||
p%baseprecv(nlev_)%iprcparm(mld_coarse_mat_) = mld_repl_mat_
|
||||
case(mld_bjac_)
|
||||
p%baseprecv(nlev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
case default
|
||||
p%baseprecv(nlev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
end select
|
||||
|
||||
+67
-66
@@ -117,12 +117,12 @@ subroutine mld_sprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_noprec_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_f_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_noprec_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_f_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
|
||||
@@ -133,12 +133,12 @@ subroutine mld_sprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_diag_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_f_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_diag_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_f_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
|
||||
@@ -149,14 +149,14 @@ subroutine mld_sprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
|
||||
case ('AS')
|
||||
@@ -166,15 +166,15 @@ subroutine mld_sprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_as_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_halo_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 1
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_as_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_halo_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 1
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
|
||||
|
||||
case ('ML')
|
||||
@@ -189,61 +189,62 @@ subroutine mld_sprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = szero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_as_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_halo_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = szero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_as_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_halo_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
if (nlev_ == 1) return
|
||||
|
||||
do ilev_ = 2, nlev_ -1
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = szero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = szero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_ml_type_) = mld_mult_ml_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_alg_) = mld_dec_aggr_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_kind_) = mld_smooth_prol_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_ml_type_) = mld_mult_ml_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_alg_) = mld_dec_aggr_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_kind_) = mld_smooth_prol_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_pos_) = mld_post_smooth_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
p%baseprecv(ilev_)%rprcparm(mld_aggr_damp_) = 4.e0/3.e0
|
||||
p%baseprecv(ilev_)%rprcparm(mld_aggr_damp_) = 4.e0/3.e0
|
||||
end do
|
||||
ilev_ = nlev_
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = szero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = szero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_solve_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_ml_type_) = mld_mult_ml_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_alg_) = mld_dec_aggr_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_kind_) = mld_smooth_prol_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_ml_type_) = mld_mult_ml_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_alg_) = mld_dec_aggr_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_kind_) = mld_smooth_prol_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_pos_) = mld_post_smooth_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 4
|
||||
p%baseprecv(ilev_)%rprcparm(mld_aggr_damp_) = 4.e0/3.e0
|
||||
p%baseprecv(ilev_)%rprcparm(mld_aggr_damp_) = 4.e0/3.e0
|
||||
|
||||
case default
|
||||
write(0,*) name,': Warning: Unknown preconditioner type request "',ptype,'"'
|
||||
|
||||
@@ -244,6 +244,8 @@ subroutine mld_sprecseti(p,what,val,info,ilev)
|
||||
select case (val)
|
||||
case(mld_umf_, mld_slu_)
|
||||
p%baseprecv(nlev_)%iprcparm(mld_coarse_mat_) = mld_repl_mat_
|
||||
case(mld_bjac_)
|
||||
p%baseprecv(nlev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
case default
|
||||
p%baseprecv(nlev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
end select
|
||||
|
||||
+67
-66
@@ -117,12 +117,12 @@ subroutine mld_zprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_noprec_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_f_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_noprec_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_f_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
|
||||
@@ -133,12 +133,12 @@ subroutine mld_zprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_diag_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_f_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_diag_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_f_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
|
||||
@@ -149,14 +149,14 @@ subroutine mld_zprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
|
||||
case ('AS')
|
||||
@@ -166,15 +166,15 @@ subroutine mld_zprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_as_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_halo_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 1
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_as_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_halo_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 1
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
|
||||
|
||||
case ('ML')
|
||||
@@ -189,61 +189,62 @@ subroutine mld_zprecinit(p,ptype,info,nlev)
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = dzero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_as_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_halo_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = dzero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_as_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_halo_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
if (nlev_ == 1) return
|
||||
|
||||
do ilev_ = 2, nlev_ -1
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = dzero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = dzero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_ml_type_) = mld_mult_ml_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_alg_) = mld_dec_aggr_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_kind_) = mld_smooth_prol_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_ml_type_) = mld_mult_ml_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_alg_) = mld_dec_aggr_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_kind_) = mld_smooth_prol_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_pos_) = mld_post_smooth_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 1
|
||||
p%baseprecv(ilev_)%rprcparm(mld_aggr_damp_) = 4.d0/3.d0
|
||||
p%baseprecv(ilev_)%rprcparm(mld_aggr_damp_) = 4.d0/3.d0
|
||||
end do
|
||||
ilev_ = nlev_
|
||||
if (info == 0) call psb_realloc(mld_ifpsz_,p%baseprecv(ilev_)%iprcparm,info)
|
||||
if (info == 0) call psb_realloc(mld_rfpsz_,p%baseprecv(ilev_)%rprcparm,info)
|
||||
if (info /= 0) return
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = dzero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(:) = 0
|
||||
p%baseprecv(ilev_)%rprcparm(:) = dzero
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_solve_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_type_) = mld_bjac_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_restr_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_prol_) = psb_none_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ren_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_ovr_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_ml_type_) = mld_mult_ml_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_alg_) = mld_dec_aggr_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_kind_) = mld_smooth_prol_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_ml_type_) = mld_mult_ml_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_alg_) = mld_dec_aggr_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_kind_) = mld_smooth_prol_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_pos_) = mld_post_smooth_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_aggr_eig_) = mld_max_norm_
|
||||
p%baseprecv(ilev_)%iprcparm(mld_sub_fillin_) = 0
|
||||
p%baseprecv(ilev_)%iprcparm(mld_smoother_sweeps_) = 4
|
||||
p%baseprecv(ilev_)%rprcparm(mld_aggr_damp_) = 4.d0/3.d0
|
||||
p%baseprecv(ilev_)%rprcparm(mld_aggr_damp_) = 4.d0/3.d0
|
||||
|
||||
case default
|
||||
write(0,*) name,': Warning: Unknown preconditioner type request "',ptype,'"'
|
||||
|
||||
@@ -244,6 +244,8 @@ subroutine mld_zprecseti(p,what,val,info,ilev)
|
||||
select case (val)
|
||||
case(mld_umf_, mld_slu_)
|
||||
p%baseprecv(nlev_)%iprcparm(mld_coarse_mat_) = mld_repl_mat_
|
||||
case(mld_bjac_)
|
||||
p%baseprecv(nlev_)%iprcparm(mld_sub_solve_) = mld_ilu_n_
|
||||
case default
|
||||
p%baseprecv(nlev_)%iprcparm(mld_coarse_mat_) = mld_distr_mat_
|
||||
end select
|
||||
|
||||
Reference in New Issue
Block a user