diff --git a/mlprec/impl/level/mld_c_base_onelev_cseti.F90 b/mlprec/impl/level/mld_c_base_onelev_cseti.F90 index 705853bd..f91b0c8a 100644 --- a/mlprec/impl/level/mld_c_base_onelev_cseti.F90 +++ b/mlprec/impl/level/mld_c_base_onelev_cseti.F90 @@ -132,7 +132,12 @@ subroutine mld_c_base_onelev_cseti(lv,what,val,info,pos) ! Do nothing and hope for the best :) ! end select - if (allocated(lv%sm)) call lv%sm%default() + if (ipos_==mld_pre_smooth_) then + if (allocated(lv%sm)) call lv%sm%default() + else if (ipos_==mld_post_smooth_) then + if (allocated(lv%sm2a)) call lv%sm2a%default() + end if + case('SUB_SOLVE') select case (val) diff --git a/mlprec/impl/level/mld_c_base_onelev_seti.F90 b/mlprec/impl/level/mld_c_base_onelev_seti.F90 index 07d3ba92..eee5ac04 100644 --- a/mlprec/impl/level/mld_c_base_onelev_seti.F90 +++ b/mlprec/impl/level/mld_c_base_onelev_seti.F90 @@ -133,7 +133,12 @@ subroutine mld_c_base_onelev_seti(lv,what,val,info,pos) ! Do nothing and hope for the best :) ! end select - if (allocated(lv%sm)) call lv%sm%default() + if (ipos_==mld_pre_smooth_) then + if (allocated(lv%sm)) call lv%sm%default() + else if (ipos_==mld_post_smooth_) then + if (allocated(lv%sm2a)) call lv%sm2a%default() + end if + case(mld_sub_solve_) select case (val) diff --git a/mlprec/impl/level/mld_d_base_onelev_cseti.F90 b/mlprec/impl/level/mld_d_base_onelev_cseti.F90 index b4f445e0..dcad847d 100644 --- a/mlprec/impl/level/mld_d_base_onelev_cseti.F90 +++ b/mlprec/impl/level/mld_d_base_onelev_cseti.F90 @@ -138,7 +138,12 @@ subroutine mld_d_base_onelev_cseti(lv,what,val,info,pos) ! Do nothing and hope for the best :) ! end select - if (allocated(lv%sm)) call lv%sm%default() + if (ipos_==mld_pre_smooth_) then + if (allocated(lv%sm)) call lv%sm%default() + else if (ipos_==mld_post_smooth_) then + if (allocated(lv%sm2a)) call lv%sm2a%default() + end if + case('SUB_SOLVE') select case (val) diff --git a/mlprec/impl/level/mld_d_base_onelev_seti.F90 b/mlprec/impl/level/mld_d_base_onelev_seti.F90 index 1efad636..d2bb642c 100644 --- a/mlprec/impl/level/mld_d_base_onelev_seti.F90 +++ b/mlprec/impl/level/mld_d_base_onelev_seti.F90 @@ -139,7 +139,12 @@ subroutine mld_d_base_onelev_seti(lv,what,val,info,pos) ! Do nothing and hope for the best :) ! end select - if (allocated(lv%sm)) call lv%sm%default() + if (ipos_==mld_pre_smooth_) then + if (allocated(lv%sm)) call lv%sm%default() + else if (ipos_==mld_post_smooth_) then + if (allocated(lv%sm2a)) call lv%sm2a%default() + end if + case(mld_sub_solve_) select case (val) diff --git a/mlprec/impl/level/mld_s_base_onelev_cseti.F90 b/mlprec/impl/level/mld_s_base_onelev_cseti.F90 index 962061f4..ad76a21f 100644 --- a/mlprec/impl/level/mld_s_base_onelev_cseti.F90 +++ b/mlprec/impl/level/mld_s_base_onelev_cseti.F90 @@ -132,7 +132,12 @@ subroutine mld_s_base_onelev_cseti(lv,what,val,info,pos) ! Do nothing and hope for the best :) ! end select - if (allocated(lv%sm)) call lv%sm%default() + if (ipos_==mld_pre_smooth_) then + if (allocated(lv%sm)) call lv%sm%default() + else if (ipos_==mld_post_smooth_) then + if (allocated(lv%sm2a)) call lv%sm2a%default() + end if + case('SUB_SOLVE') select case (val) diff --git a/mlprec/impl/level/mld_s_base_onelev_seti.F90 b/mlprec/impl/level/mld_s_base_onelev_seti.F90 index aa7f4bc5..83083ae2 100644 --- a/mlprec/impl/level/mld_s_base_onelev_seti.F90 +++ b/mlprec/impl/level/mld_s_base_onelev_seti.F90 @@ -133,7 +133,12 @@ subroutine mld_s_base_onelev_seti(lv,what,val,info,pos) ! Do nothing and hope for the best :) ! end select - if (allocated(lv%sm)) call lv%sm%default() + if (ipos_==mld_pre_smooth_) then + if (allocated(lv%sm)) call lv%sm%default() + else if (ipos_==mld_post_smooth_) then + if (allocated(lv%sm2a)) call lv%sm2a%default() + end if + case(mld_sub_solve_) select case (val) diff --git a/mlprec/impl/level/mld_z_base_onelev_cseti.F90 b/mlprec/impl/level/mld_z_base_onelev_cseti.F90 index 979454d6..47e05f11 100644 --- a/mlprec/impl/level/mld_z_base_onelev_cseti.F90 +++ b/mlprec/impl/level/mld_z_base_onelev_cseti.F90 @@ -138,7 +138,12 @@ subroutine mld_z_base_onelev_cseti(lv,what,val,info,pos) ! Do nothing and hope for the best :) ! end select - if (allocated(lv%sm)) call lv%sm%default() + if (ipos_==mld_pre_smooth_) then + if (allocated(lv%sm)) call lv%sm%default() + else if (ipos_==mld_post_smooth_) then + if (allocated(lv%sm2a)) call lv%sm2a%default() + end if + case('SUB_SOLVE') select case (val) diff --git a/mlprec/impl/level/mld_z_base_onelev_seti.F90 b/mlprec/impl/level/mld_z_base_onelev_seti.F90 index 76246f86..cb7a5a84 100644 --- a/mlprec/impl/level/mld_z_base_onelev_seti.F90 +++ b/mlprec/impl/level/mld_z_base_onelev_seti.F90 @@ -139,7 +139,12 @@ subroutine mld_z_base_onelev_seti(lv,what,val,info,pos) ! Do nothing and hope for the best :) ! end select - if (allocated(lv%sm)) call lv%sm%default() + if (ipos_==mld_pre_smooth_) then + if (allocated(lv%sm)) call lv%sm%default() + else if (ipos_==mld_post_smooth_) then + if (allocated(lv%sm2a)) call lv%sm2a%default() + end if + case(mld_sub_solve_) select case (val) diff --git a/mlprec/mld_c_mumps_solver.F90 b/mlprec/mld_c_mumps_solver.F90 index 9fe2b4bb..49211c61 100644 --- a/mlprec/mld_c_mumps_solver.F90 +++ b/mlprec/mld_c_mumps_solver.F90 @@ -80,6 +80,7 @@ module mld_c_mumps_solver procedure, pass(sv) :: cseti =>c_mumps_solver_cseti procedure, pass(sv) :: csetr => c_mumps_solver_csetr procedure, pass(sv) :: default => c_mumps_solver_default + procedure, nopass :: get_fmt => c_mumps_get_fmt #if defined(HAVE_FINAL) final :: c_mumps_solver_finalize @@ -477,5 +478,13 @@ contains return end function c_mumps_solver_sizeof #endif + + function c_mumps_get_fmt() result(val) + implicit none + character(len=32) :: val + + val = "MUMPS solver" + end function c_mumps_get_fmt + end module mld_c_mumps_solver diff --git a/mlprec/mld_d_mumps_solver.F90 b/mlprec/mld_d_mumps_solver.F90 index a443d5e9..b680f91d 100644 --- a/mlprec/mld_d_mumps_solver.F90 +++ b/mlprec/mld_d_mumps_solver.F90 @@ -80,6 +80,7 @@ module mld_d_mumps_solver procedure, pass(sv) :: cseti =>d_mumps_solver_cseti procedure, pass(sv) :: csetr => d_mumps_solver_csetr procedure, pass(sv) :: default => d_mumps_solver_default + procedure, nopass :: get_fmt => d_mumps_get_fmt #if defined(HAVE_FINAL) final :: d_mumps_solver_finalize @@ -477,5 +478,13 @@ contains return end function d_mumps_solver_sizeof #endif + + function d_mumps_get_fmt() result(val) + implicit none + character(len=32) :: val + + val = "MUMPS solver" + end function d_mumps_get_fmt + end module mld_d_mumps_solver diff --git a/mlprec/mld_s_mumps_solver.F90 b/mlprec/mld_s_mumps_solver.F90 index 4a8d5429..6a72f2a7 100644 --- a/mlprec/mld_s_mumps_solver.F90 +++ b/mlprec/mld_s_mumps_solver.F90 @@ -80,6 +80,7 @@ module mld_s_mumps_solver procedure, pass(sv) :: cseti =>s_mumps_solver_cseti procedure, pass(sv) :: csetr => s_mumps_solver_csetr procedure, pass(sv) :: default => s_mumps_solver_default + procedure, nopass :: get_fmt => s_mumps_get_fmt #if defined(HAVE_FINAL) final :: s_mumps_solver_finalize @@ -477,5 +478,13 @@ contains return end function s_mumps_solver_sizeof #endif + + function s_mumps_get_fmt() result(val) + implicit none + character(len=32) :: val + + val = "MUMPS solver" + end function s_mumps_get_fmt + end module mld_s_mumps_solver diff --git a/mlprec/mld_z_mumps_solver.F90 b/mlprec/mld_z_mumps_solver.F90 index 1808bdfa..0d89cfc2 100644 --- a/mlprec/mld_z_mumps_solver.F90 +++ b/mlprec/mld_z_mumps_solver.F90 @@ -80,6 +80,7 @@ module mld_z_mumps_solver procedure, pass(sv) :: cseti =>z_mumps_solver_cseti procedure, pass(sv) :: csetr => z_mumps_solver_csetr procedure, pass(sv) :: default => z_mumps_solver_default + procedure, nopass :: get_fmt => z_mumps_get_fmt #if defined(HAVE_FINAL) final :: z_mumps_solver_finalize @@ -477,5 +478,13 @@ contains return end function z_mumps_solver_sizeof #endif + + function z_mumps_get_fmt() result(val) + implicit none + character(len=32) :: val + + val = "MUMPS solver" + end function z_mumps_get_fmt + end module mld_z_mumps_solver