diff --git a/mlprec/impl/level/mld_c_base_onelev_csetc.f90 b/mlprec/impl/level/mld_c_base_onelev_csetc.f90 index c293c3b8..17840211 100644 --- a/mlprec/impl/level/mld_c_base_onelev_csetc.f90 +++ b/mlprec/impl/level/mld_c_base_onelev_csetc.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_c_base_onelev_csetc(lv,what,val,info,pos) +subroutine mld_c_base_onelev_csetc(lv,what,val,info,pos,idx) use psb_base_mod use mld_c_onelev_mod, mld_protect_name => mld_c_base_onelev_csetc @@ -47,7 +47,8 @@ subroutine mld_c_base_onelev_csetc(lv,what,val,info,pos) character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local integer(psb_ipk_) :: ipos_, err_act character(len=20) :: name='c_base_onelev_csetc' @@ -77,16 +78,16 @@ subroutine mld_c_base_onelev_csetc(lv,what,val,info,pos) if ((ipos_==mld_smooth_pre_) .or.(ipos_==mld_smooth_both_)) then if (allocated(lv%sm)) then - call lv%sm%set(what,val,info) + call lv%sm%set(what,val,info,idx=idx) end if end if if ((ipos_==mld_smooth_post_).or.(ipos_==mld_smooth_both_))then if (allocated(lv%sm2a)) then - call lv%sm2a%set(what,val,info) + call lv%sm2a%set(what,val,info,idx=idx) end if end if - if (allocated(lv%aggr)) call lv%aggr%set(what,val,info) + if (allocated(lv%aggr)) call lv%aggr%set(what,val,info,idx=idx) end if diff --git a/mlprec/impl/level/mld_c_base_onelev_cseti.F90 b/mlprec/impl/level/mld_c_base_onelev_cseti.F90 index dc11e2c6..2aede23f 100644 --- a/mlprec/impl/level/mld_c_base_onelev_cseti.F90 +++ b/mlprec/impl/level/mld_c_base_onelev_cseti.F90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_c_base_onelev_cseti(lv,what,val,info,pos) +subroutine mld_c_base_onelev_cseti(lv,what,val,info,pos,idx) use psb_base_mod use mld_c_onelev_mod, mld_protect_name => mld_c_base_onelev_cseti @@ -62,7 +62,8 @@ subroutine mld_c_base_onelev_cseti(lv,what,val,info,pos) character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local integer(psb_ipk_) :: ipos_, err_act character(len=20) :: name='c_base_onelev_cseti' @@ -232,15 +233,15 @@ subroutine mld_c_base_onelev_cseti(lv,what,val,info,pos) case default if ((ipos_==mld_smooth_pre_) .or.(ipos_==mld_smooth_both_)) then if (allocated(lv%sm)) then - call lv%sm%set(what,val,info) + call lv%sm%set(what,val,info,idx=idx) end if end if if ((ipos_==mld_smooth_post_).or.(ipos_==mld_smooth_both_))then if (allocated(lv%sm2a)) then - call lv%sm2a%set(what,val,info) + call lv%sm2a%set(what,val,info,idx=idx) end if end if - if (allocated(lv%aggr)) call lv%aggr%set(what,val,info) + if (allocated(lv%aggr)) call lv%aggr%set(what,val,info,idx=idx) end select if (info /= psb_success_) goto 9999 diff --git a/mlprec/impl/level/mld_c_base_onelev_csetr.f90 b/mlprec/impl/level/mld_c_base_onelev_csetr.f90 index 2b773c27..4e69ac5e 100644 --- a/mlprec/impl/level/mld_c_base_onelev_csetr.f90 +++ b/mlprec/impl/level/mld_c_base_onelev_csetr.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_c_base_onelev_csetr(lv,what,val,info,pos) +subroutine mld_c_base_onelev_csetr(lv,what,val,info,pos,idx) use psb_base_mod use mld_c_onelev_mod, mld_protect_name => mld_c_base_onelev_csetr @@ -47,7 +47,8 @@ subroutine mld_c_base_onelev_csetr(lv,what,val,info,pos) character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local integer(psb_ipk_) :: ipos_, err_act character(len=20) :: name='c_base_onelev_csetr' @@ -82,15 +83,15 @@ subroutine mld_c_base_onelev_csetr(lv,what,val,info,pos) if ((ipos_==mld_smooth_pre_) .or.(ipos_==mld_smooth_both_)) then if (allocated(lv%sm)) then - call lv%sm%set(what,val,info) + call lv%sm%set(what,val,info,idx=idx) end if end if if ((ipos_==mld_smooth_post_).or.(ipos_==mld_smooth_both_))then if (allocated(lv%sm2a)) then - call lv%sm2a%set(what,val,info) + call lv%sm2a%set(what,val,info,idx=idx) end if end if - if (allocated(lv%aggr)) call lv%aggr%set(what,val,info) + if (allocated(lv%aggr)) call lv%aggr%set(what,val,info,idx=idx) end select diff --git a/mlprec/impl/level/mld_d_base_onelev_csetc.f90 b/mlprec/impl/level/mld_d_base_onelev_csetc.f90 index 5a86527e..c301e5ad 100644 --- a/mlprec/impl/level/mld_d_base_onelev_csetc.f90 +++ b/mlprec/impl/level/mld_d_base_onelev_csetc.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_d_base_onelev_csetc(lv,what,val,info,pos) +subroutine mld_d_base_onelev_csetc(lv,what,val,info,pos,idx) use psb_base_mod use mld_d_onelev_mod, mld_protect_name => mld_d_base_onelev_csetc @@ -47,7 +47,8 @@ subroutine mld_d_base_onelev_csetc(lv,what,val,info,pos) character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local integer(psb_ipk_) :: ipos_, err_act character(len=20) :: name='d_base_onelev_csetc' @@ -77,16 +78,16 @@ subroutine mld_d_base_onelev_csetc(lv,what,val,info,pos) if ((ipos_==mld_smooth_pre_) .or.(ipos_==mld_smooth_both_)) then if (allocated(lv%sm)) then - call lv%sm%set(what,val,info) + call lv%sm%set(what,val,info,idx=idx) end if end if if ((ipos_==mld_smooth_post_).or.(ipos_==mld_smooth_both_))then if (allocated(lv%sm2a)) then - call lv%sm2a%set(what,val,info) + call lv%sm2a%set(what,val,info,idx=idx) end if end if - if (allocated(lv%aggr)) call lv%aggr%set(what,val,info) + if (allocated(lv%aggr)) call lv%aggr%set(what,val,info,idx=idx) end if diff --git a/mlprec/impl/level/mld_d_base_onelev_cseti.F90 b/mlprec/impl/level/mld_d_base_onelev_cseti.F90 index 34826a7e..74631029 100644 --- a/mlprec/impl/level/mld_d_base_onelev_cseti.F90 +++ b/mlprec/impl/level/mld_d_base_onelev_cseti.F90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_d_base_onelev_cseti(lv,what,val,info,pos) +subroutine mld_d_base_onelev_cseti(lv,what,val,info,pos,idx) use psb_base_mod use mld_d_onelev_mod, mld_protect_name => mld_d_base_onelev_cseti @@ -68,7 +68,8 @@ subroutine mld_d_base_onelev_cseti(lv,what,val,info,pos) character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local integer(psb_ipk_) :: ipos_, err_act character(len=20) :: name='d_base_onelev_cseti' @@ -252,15 +253,15 @@ subroutine mld_d_base_onelev_cseti(lv,what,val,info,pos) case default if ((ipos_==mld_smooth_pre_) .or.(ipos_==mld_smooth_both_)) then if (allocated(lv%sm)) then - call lv%sm%set(what,val,info) + call lv%sm%set(what,val,info,idx=idx) end if end if if ((ipos_==mld_smooth_post_).or.(ipos_==mld_smooth_both_))then if (allocated(lv%sm2a)) then - call lv%sm2a%set(what,val,info) + call lv%sm2a%set(what,val,info,idx=idx) end if end if - if (allocated(lv%aggr)) call lv%aggr%set(what,val,info) + if (allocated(lv%aggr)) call lv%aggr%set(what,val,info,idx=idx) end select if (info /= psb_success_) goto 9999 diff --git a/mlprec/impl/level/mld_d_base_onelev_csetr.f90 b/mlprec/impl/level/mld_d_base_onelev_csetr.f90 index 40b6de33..1fd2654c 100644 --- a/mlprec/impl/level/mld_d_base_onelev_csetr.f90 +++ b/mlprec/impl/level/mld_d_base_onelev_csetr.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_d_base_onelev_csetr(lv,what,val,info,pos) +subroutine mld_d_base_onelev_csetr(lv,what,val,info,pos,idx) use psb_base_mod use mld_d_onelev_mod, mld_protect_name => mld_d_base_onelev_csetr @@ -47,7 +47,8 @@ subroutine mld_d_base_onelev_csetr(lv,what,val,info,pos) character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local integer(psb_ipk_) :: ipos_, err_act character(len=20) :: name='d_base_onelev_csetr' @@ -82,15 +83,15 @@ subroutine mld_d_base_onelev_csetr(lv,what,val,info,pos) if ((ipos_==mld_smooth_pre_) .or.(ipos_==mld_smooth_both_)) then if (allocated(lv%sm)) then - call lv%sm%set(what,val,info) + call lv%sm%set(what,val,info,idx=idx) end if end if if ((ipos_==mld_smooth_post_).or.(ipos_==mld_smooth_both_))then if (allocated(lv%sm2a)) then - call lv%sm2a%set(what,val,info) + call lv%sm2a%set(what,val,info,idx=idx) end if end if - if (allocated(lv%aggr)) call lv%aggr%set(what,val,info) + if (allocated(lv%aggr)) call lv%aggr%set(what,val,info,idx=idx) end select diff --git a/mlprec/impl/level/mld_s_base_onelev_csetc.f90 b/mlprec/impl/level/mld_s_base_onelev_csetc.f90 index 11644212..f99df0c0 100644 --- a/mlprec/impl/level/mld_s_base_onelev_csetc.f90 +++ b/mlprec/impl/level/mld_s_base_onelev_csetc.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_s_base_onelev_csetc(lv,what,val,info,pos) +subroutine mld_s_base_onelev_csetc(lv,what,val,info,pos,idx) use psb_base_mod use mld_s_onelev_mod, mld_protect_name => mld_s_base_onelev_csetc @@ -47,7 +47,8 @@ subroutine mld_s_base_onelev_csetc(lv,what,val,info,pos) character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local integer(psb_ipk_) :: ipos_, err_act character(len=20) :: name='s_base_onelev_csetc' @@ -77,16 +78,16 @@ subroutine mld_s_base_onelev_csetc(lv,what,val,info,pos) if ((ipos_==mld_smooth_pre_) .or.(ipos_==mld_smooth_both_)) then if (allocated(lv%sm)) then - call lv%sm%set(what,val,info) + call lv%sm%set(what,val,info,idx=idx) end if end if if ((ipos_==mld_smooth_post_).or.(ipos_==mld_smooth_both_))then if (allocated(lv%sm2a)) then - call lv%sm2a%set(what,val,info) + call lv%sm2a%set(what,val,info,idx=idx) end if end if - if (allocated(lv%aggr)) call lv%aggr%set(what,val,info) + if (allocated(lv%aggr)) call lv%aggr%set(what,val,info,idx=idx) end if diff --git a/mlprec/impl/level/mld_s_base_onelev_cseti.F90 b/mlprec/impl/level/mld_s_base_onelev_cseti.F90 index e3dbca73..5c5ffbf1 100644 --- a/mlprec/impl/level/mld_s_base_onelev_cseti.F90 +++ b/mlprec/impl/level/mld_s_base_onelev_cseti.F90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_s_base_onelev_cseti(lv,what,val,info,pos) +subroutine mld_s_base_onelev_cseti(lv,what,val,info,pos,idx) use psb_base_mod use mld_s_onelev_mod, mld_protect_name => mld_s_base_onelev_cseti @@ -62,7 +62,8 @@ subroutine mld_s_base_onelev_cseti(lv,what,val,info,pos) character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local integer(psb_ipk_) :: ipos_, err_act character(len=20) :: name='s_base_onelev_cseti' @@ -232,15 +233,15 @@ subroutine mld_s_base_onelev_cseti(lv,what,val,info,pos) case default if ((ipos_==mld_smooth_pre_) .or.(ipos_==mld_smooth_both_)) then if (allocated(lv%sm)) then - call lv%sm%set(what,val,info) + call lv%sm%set(what,val,info,idx=idx) end if end if if ((ipos_==mld_smooth_post_).or.(ipos_==mld_smooth_both_))then if (allocated(lv%sm2a)) then - call lv%sm2a%set(what,val,info) + call lv%sm2a%set(what,val,info,idx=idx) end if end if - if (allocated(lv%aggr)) call lv%aggr%set(what,val,info) + if (allocated(lv%aggr)) call lv%aggr%set(what,val,info,idx=idx) end select if (info /= psb_success_) goto 9999 diff --git a/mlprec/impl/level/mld_s_base_onelev_csetr.f90 b/mlprec/impl/level/mld_s_base_onelev_csetr.f90 index da4dc302..f49ac7e3 100644 --- a/mlprec/impl/level/mld_s_base_onelev_csetr.f90 +++ b/mlprec/impl/level/mld_s_base_onelev_csetr.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_s_base_onelev_csetr(lv,what,val,info,pos) +subroutine mld_s_base_onelev_csetr(lv,what,val,info,pos,idx) use psb_base_mod use mld_s_onelev_mod, mld_protect_name => mld_s_base_onelev_csetr @@ -47,7 +47,8 @@ subroutine mld_s_base_onelev_csetr(lv,what,val,info,pos) character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local integer(psb_ipk_) :: ipos_, err_act character(len=20) :: name='s_base_onelev_csetr' @@ -82,15 +83,15 @@ subroutine mld_s_base_onelev_csetr(lv,what,val,info,pos) if ((ipos_==mld_smooth_pre_) .or.(ipos_==mld_smooth_both_)) then if (allocated(lv%sm)) then - call lv%sm%set(what,val,info) + call lv%sm%set(what,val,info,idx=idx) end if end if if ((ipos_==mld_smooth_post_).or.(ipos_==mld_smooth_both_))then if (allocated(lv%sm2a)) then - call lv%sm2a%set(what,val,info) + call lv%sm2a%set(what,val,info,idx=idx) end if end if - if (allocated(lv%aggr)) call lv%aggr%set(what,val,info) + if (allocated(lv%aggr)) call lv%aggr%set(what,val,info,idx=idx) end select diff --git a/mlprec/impl/level/mld_z_base_onelev_csetc.f90 b/mlprec/impl/level/mld_z_base_onelev_csetc.f90 index 85bf48dc..8553011e 100644 --- a/mlprec/impl/level/mld_z_base_onelev_csetc.f90 +++ b/mlprec/impl/level/mld_z_base_onelev_csetc.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_z_base_onelev_csetc(lv,what,val,info,pos) +subroutine mld_z_base_onelev_csetc(lv,what,val,info,pos,idx) use psb_base_mod use mld_z_onelev_mod, mld_protect_name => mld_z_base_onelev_csetc @@ -47,7 +47,8 @@ subroutine mld_z_base_onelev_csetc(lv,what,val,info,pos) character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local integer(psb_ipk_) :: ipos_, err_act character(len=20) :: name='z_base_onelev_csetc' @@ -77,16 +78,16 @@ subroutine mld_z_base_onelev_csetc(lv,what,val,info,pos) if ((ipos_==mld_smooth_pre_) .or.(ipos_==mld_smooth_both_)) then if (allocated(lv%sm)) then - call lv%sm%set(what,val,info) + call lv%sm%set(what,val,info,idx=idx) end if end if if ((ipos_==mld_smooth_post_).or.(ipos_==mld_smooth_both_))then if (allocated(lv%sm2a)) then - call lv%sm2a%set(what,val,info) + call lv%sm2a%set(what,val,info,idx=idx) end if end if - if (allocated(lv%aggr)) call lv%aggr%set(what,val,info) + if (allocated(lv%aggr)) call lv%aggr%set(what,val,info,idx=idx) end if diff --git a/mlprec/impl/level/mld_z_base_onelev_cseti.F90 b/mlprec/impl/level/mld_z_base_onelev_cseti.F90 index 303d788c..9ea87251 100644 --- a/mlprec/impl/level/mld_z_base_onelev_cseti.F90 +++ b/mlprec/impl/level/mld_z_base_onelev_cseti.F90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_z_base_onelev_cseti(lv,what,val,info,pos) +subroutine mld_z_base_onelev_cseti(lv,what,val,info,pos,idx) use psb_base_mod use mld_z_onelev_mod, mld_protect_name => mld_z_base_onelev_cseti @@ -68,7 +68,8 @@ subroutine mld_z_base_onelev_cseti(lv,what,val,info,pos) character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local integer(psb_ipk_) :: ipos_, err_act character(len=20) :: name='z_base_onelev_cseti' @@ -252,15 +253,15 @@ subroutine mld_z_base_onelev_cseti(lv,what,val,info,pos) case default if ((ipos_==mld_smooth_pre_) .or.(ipos_==mld_smooth_both_)) then if (allocated(lv%sm)) then - call lv%sm%set(what,val,info) + call lv%sm%set(what,val,info,idx=idx) end if end if if ((ipos_==mld_smooth_post_).or.(ipos_==mld_smooth_both_))then if (allocated(lv%sm2a)) then - call lv%sm2a%set(what,val,info) + call lv%sm2a%set(what,val,info,idx=idx) end if end if - if (allocated(lv%aggr)) call lv%aggr%set(what,val,info) + if (allocated(lv%aggr)) call lv%aggr%set(what,val,info,idx=idx) end select if (info /= psb_success_) goto 9999 diff --git a/mlprec/impl/level/mld_z_base_onelev_csetr.f90 b/mlprec/impl/level/mld_z_base_onelev_csetr.f90 index e5d55883..565524b9 100644 --- a/mlprec/impl/level/mld_z_base_onelev_csetr.f90 +++ b/mlprec/impl/level/mld_z_base_onelev_csetr.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_z_base_onelev_csetr(lv,what,val,info,pos) +subroutine mld_z_base_onelev_csetr(lv,what,val,info,pos,idx) use psb_base_mod use mld_z_onelev_mod, mld_protect_name => mld_z_base_onelev_csetr @@ -47,7 +47,8 @@ subroutine mld_z_base_onelev_csetr(lv,what,val,info,pos) character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local integer(psb_ipk_) :: ipos_, err_act character(len=20) :: name='z_base_onelev_csetr' @@ -82,15 +83,15 @@ subroutine mld_z_base_onelev_csetr(lv,what,val,info,pos) if ((ipos_==mld_smooth_pre_) .or.(ipos_==mld_smooth_both_)) then if (allocated(lv%sm)) then - call lv%sm%set(what,val,info) + call lv%sm%set(what,val,info,idx=idx) end if end if if ((ipos_==mld_smooth_post_).or.(ipos_==mld_smooth_both_))then if (allocated(lv%sm2a)) then - call lv%sm2a%set(what,val,info) + call lv%sm2a%set(what,val,info,idx=idx) end if end if - if (allocated(lv%aggr)) call lv%aggr%set(what,val,info) + if (allocated(lv%aggr)) call lv%aggr%set(what,val,info,idx=idx) end select diff --git a/mlprec/impl/mld_ccprecset.F90 b/mlprec/impl/mld_ccprecset.F90 index 79bfdd29..04684638 100644 --- a/mlprec/impl/mld_ccprecset.F90 +++ b/mlprec/impl/mld_ccprecset.F90 @@ -75,7 +75,7 @@ ! For this reason, the interface mld_precset to this routine has been built in ! such a way that ilev is not visible to the user (see mld_prec_mod.f90). ! -subroutine mld_ccprecseti(p,what,val,info,ilev,ilmax,pos) +subroutine mld_ccprecseti(p,what,val,info,ilev,ilmax,pos,idx) use psb_base_mod use mld_c_prec_mod, mld_protect_name => mld_ccprecseti @@ -102,6 +102,7 @@ subroutine mld_ccprecseti(p,what,val,info,ilev,ilmax,pos) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: ilev,ilmax character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local variables integer(psb_ipk_) :: ilev_, nlev_, ilmax_, il @@ -283,7 +284,7 @@ subroutine mld_ccprecseti(p,what,val,info,ilev,ilmax,pos) case default do il=ilev_, ilmax_ - call p%precv(il)%set(what,val,info,pos=pos) + call p%precv(il)%set(what,val,info,pos=pos,idx=idx) end do end select @@ -410,7 +411,7 @@ subroutine mld_ccprecseti(p,what,val,info,ilev,ilmax,pos) case default do ilev_=1,nlev_ - call p%precv(ilev_)%set(what,val,info,pos=pos) + call p%precv(ilev_)%set(what,val,info,pos=pos,idx=idx) end do end select @@ -457,7 +458,7 @@ end subroutine mld_ccprecseti ! For this reason, the interface mld_precset to this routine has been built in ! such a way that ilev is not visible to the user (see mld_prec_mod.f90). ! -subroutine mld_ccprecsetc(p,what,string,info,ilev,ilmax,pos) +subroutine mld_ccprecsetc(p,what,string,info,ilev,ilmax,pos,idx) use psb_base_mod use mld_c_prec_mod, mld_protect_name => mld_ccprecsetc @@ -470,7 +471,8 @@ subroutine mld_ccprecsetc(p,what,string,info,ilev,ilmax,pos) character(len=*), intent(in) :: string integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: ilev,ilmax - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local variables integer(psb_ipk_) :: ilev_, nlev_,val,ilmax_, il @@ -486,7 +488,7 @@ subroutine mld_ccprecsetc(p,what,string,info,ilev,ilmax,pos) if (val >=0) then - call p%set(what,val,info,ilev=ilev,ilmax=ilmax,pos=pos) + call p%set(what,val,info,ilev=ilev,ilmax=ilmax,pos=pos,idx=idx) else nlev_ = size(p%precv) @@ -515,7 +517,7 @@ subroutine mld_ccprecsetc(p,what,string,info,ilev,ilmax,pos) return endif do il=ilev_, ilmax_ - call p%precv(il)%set(what,string,info,pos=pos) + call p%precv(il)%set(what,string,info,pos=pos,idx=idx) end do end if @@ -560,7 +562,7 @@ end subroutine mld_ccprecsetc ! For this reason, the interface mld_precset to this routine has been built in ! such a way that ilev is not visible to the user (see mld_prec_mod.f90). ! -subroutine mld_ccprecsetr(p,what,val,info,ilev,ilmax,pos) +subroutine mld_ccprecsetr(p,what,val,info,ilev,ilmax,pos,idx) use psb_base_mod use mld_c_prec_mod, mld_protect_name => mld_ccprecsetr @@ -573,7 +575,8 @@ subroutine mld_ccprecsetr(p,what,val,info,ilev,ilmax,pos) real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: ilev,ilmax - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local variables integer(psb_ipk_) :: ilev_,nlev_, ilmax_, il @@ -634,7 +637,7 @@ subroutine mld_ccprecsetr(p,what,val,info,ilev,ilmax,pos) if (present(ilev)) then do il=ilev_, ilmax_ - call p%precv(il)%set(what,val,info,pos=pos) + call p%precv(il)%set(what,val,info,pos=pos,idx=idx) end do else if (.not.present(ilev)) then @@ -650,7 +653,7 @@ subroutine mld_ccprecsetr(p,what,val,info,ilev,ilmax,pos) case default do il=1,nlev_ - call p%precv(il)%set(what,val,info,pos=pos) + call p%precv(il)%set(what,val,info,pos=pos,idx=idx) end do end select diff --git a/mlprec/impl/mld_dcprecset.F90 b/mlprec/impl/mld_dcprecset.F90 index 7838dea6..2532504f 100644 --- a/mlprec/impl/mld_dcprecset.F90 +++ b/mlprec/impl/mld_dcprecset.F90 @@ -75,7 +75,7 @@ ! For this reason, the interface mld_precset to this routine has been built in ! such a way that ilev is not visible to the user (see mld_prec_mod.f90). ! -subroutine mld_dcprecseti(p,what,val,info,ilev,ilmax,pos) +subroutine mld_dcprecseti(p,what,val,info,ilev,ilmax,pos,idx) use psb_base_mod use mld_d_prec_mod, mld_protect_name => mld_dcprecseti @@ -108,6 +108,7 @@ subroutine mld_dcprecseti(p,what,val,info,ilev,ilmax,pos) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: ilev,ilmax character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local variables integer(psb_ipk_) :: ilev_, nlev_, ilmax_, il @@ -303,7 +304,7 @@ subroutine mld_dcprecseti(p,what,val,info,ilev,ilmax,pos) case default do il=ilev_, ilmax_ - call p%precv(il)%set(what,val,info,pos=pos) + call p%precv(il)%set(what,val,info,pos=pos,idx=idx) end do end select @@ -444,7 +445,7 @@ subroutine mld_dcprecseti(p,what,val,info,ilev,ilmax,pos) case default do ilev_=1,nlev_ - call p%precv(ilev_)%set(what,val,info,pos=pos) + call p%precv(ilev_)%set(what,val,info,pos=pos,idx=idx) end do end select @@ -491,7 +492,7 @@ end subroutine mld_dcprecseti ! For this reason, the interface mld_precset to this routine has been built in ! such a way that ilev is not visible to the user (see mld_prec_mod.f90). ! -subroutine mld_dcprecsetc(p,what,string,info,ilev,ilmax,pos) +subroutine mld_dcprecsetc(p,what,string,info,ilev,ilmax,pos,idx) use psb_base_mod use mld_d_prec_mod, mld_protect_name => mld_dcprecsetc @@ -504,7 +505,8 @@ subroutine mld_dcprecsetc(p,what,string,info,ilev,ilmax,pos) character(len=*), intent(in) :: string integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: ilev,ilmax - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local variables integer(psb_ipk_) :: ilev_, nlev_,val,ilmax_, il @@ -520,7 +522,7 @@ subroutine mld_dcprecsetc(p,what,string,info,ilev,ilmax,pos) if (val >=0) then - call p%set(what,val,info,ilev=ilev,ilmax=ilmax,pos=pos) + call p%set(what,val,info,ilev=ilev,ilmax=ilmax,pos=pos,idx=idx) else nlev_ = size(p%precv) @@ -549,7 +551,7 @@ subroutine mld_dcprecsetc(p,what,string,info,ilev,ilmax,pos) return endif do il=ilev_, ilmax_ - call p%precv(il)%set(what,string,info,pos=pos) + call p%precv(il)%set(what,string,info,pos=pos,idx=idx) end do end if @@ -594,7 +596,7 @@ end subroutine mld_dcprecsetc ! For this reason, the interface mld_precset to this routine has been built in ! such a way that ilev is not visible to the user (see mld_prec_mod.f90). ! -subroutine mld_dcprecsetr(p,what,val,info,ilev,ilmax,pos) +subroutine mld_dcprecsetr(p,what,val,info,ilev,ilmax,pos,idx) use psb_base_mod use mld_d_prec_mod, mld_protect_name => mld_dcprecsetr @@ -607,7 +609,8 @@ subroutine mld_dcprecsetr(p,what,val,info,ilev,ilmax,pos) real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: ilev,ilmax - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local variables integer(psb_ipk_) :: ilev_,nlev_, ilmax_, il @@ -668,7 +671,7 @@ subroutine mld_dcprecsetr(p,what,val,info,ilev,ilmax,pos) if (present(ilev)) then do il=ilev_, ilmax_ - call p%precv(il)%set(what,val,info,pos=pos) + call p%precv(il)%set(what,val,info,pos=pos,idx=idx) end do else if (.not.present(ilev)) then @@ -684,7 +687,7 @@ subroutine mld_dcprecsetr(p,what,val,info,ilev,ilmax,pos) case default do il=1,nlev_ - call p%precv(il)%set(what,val,info,pos=pos) + call p%precv(il)%set(what,val,info,pos=pos,idx=idx) end do end select diff --git a/mlprec/impl/mld_scprecset.F90 b/mlprec/impl/mld_scprecset.F90 index b887d878..7af6c714 100644 --- a/mlprec/impl/mld_scprecset.F90 +++ b/mlprec/impl/mld_scprecset.F90 @@ -75,7 +75,7 @@ ! For this reason, the interface mld_precset to this routine has been built in ! such a way that ilev is not visible to the user (see mld_prec_mod.f90). ! -subroutine mld_scprecseti(p,what,val,info,ilev,ilmax,pos) +subroutine mld_scprecseti(p,what,val,info,ilev,ilmax,pos,idx) use psb_base_mod use mld_s_prec_mod, mld_protect_name => mld_scprecseti @@ -102,6 +102,7 @@ subroutine mld_scprecseti(p,what,val,info,ilev,ilmax,pos) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: ilev,ilmax character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local variables integer(psb_ipk_) :: ilev_, nlev_, ilmax_, il @@ -283,7 +284,7 @@ subroutine mld_scprecseti(p,what,val,info,ilev,ilmax,pos) case default do il=ilev_, ilmax_ - call p%precv(il)%set(what,val,info,pos=pos) + call p%precv(il)%set(what,val,info,pos=pos,idx=idx) end do end select @@ -410,7 +411,7 @@ subroutine mld_scprecseti(p,what,val,info,ilev,ilmax,pos) case default do ilev_=1,nlev_ - call p%precv(ilev_)%set(what,val,info,pos=pos) + call p%precv(ilev_)%set(what,val,info,pos=pos,idx=idx) end do end select @@ -457,7 +458,7 @@ end subroutine mld_scprecseti ! For this reason, the interface mld_precset to this routine has been built in ! such a way that ilev is not visible to the user (see mld_prec_mod.f90). ! -subroutine mld_scprecsetc(p,what,string,info,ilev,ilmax,pos) +subroutine mld_scprecsetc(p,what,string,info,ilev,ilmax,pos,idx) use psb_base_mod use mld_s_prec_mod, mld_protect_name => mld_scprecsetc @@ -470,7 +471,8 @@ subroutine mld_scprecsetc(p,what,string,info,ilev,ilmax,pos) character(len=*), intent(in) :: string integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: ilev,ilmax - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local variables integer(psb_ipk_) :: ilev_, nlev_,val,ilmax_, il @@ -486,7 +488,7 @@ subroutine mld_scprecsetc(p,what,string,info,ilev,ilmax,pos) if (val >=0) then - call p%set(what,val,info,ilev=ilev,ilmax=ilmax,pos=pos) + call p%set(what,val,info,ilev=ilev,ilmax=ilmax,pos=pos,idx=idx) else nlev_ = size(p%precv) @@ -515,7 +517,7 @@ subroutine mld_scprecsetc(p,what,string,info,ilev,ilmax,pos) return endif do il=ilev_, ilmax_ - call p%precv(il)%set(what,string,info,pos=pos) + call p%precv(il)%set(what,string,info,pos=pos,idx=idx) end do end if @@ -560,7 +562,7 @@ end subroutine mld_scprecsetc ! For this reason, the interface mld_precset to this routine has been built in ! such a way that ilev is not visible to the user (see mld_prec_mod.f90). ! -subroutine mld_scprecsetr(p,what,val,info,ilev,ilmax,pos) +subroutine mld_scprecsetr(p,what,val,info,ilev,ilmax,pos,idx) use psb_base_mod use mld_s_prec_mod, mld_protect_name => mld_scprecsetr @@ -573,7 +575,8 @@ subroutine mld_scprecsetr(p,what,val,info,ilev,ilmax,pos) real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: ilev,ilmax - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local variables integer(psb_ipk_) :: ilev_,nlev_, ilmax_, il @@ -634,7 +637,7 @@ subroutine mld_scprecsetr(p,what,val,info,ilev,ilmax,pos) if (present(ilev)) then do il=ilev_, ilmax_ - call p%precv(il)%set(what,val,info,pos=pos) + call p%precv(il)%set(what,val,info,pos=pos,idx=idx) end do else if (.not.present(ilev)) then @@ -650,7 +653,7 @@ subroutine mld_scprecsetr(p,what,val,info,ilev,ilmax,pos) case default do il=1,nlev_ - call p%precv(il)%set(what,val,info,pos=pos) + call p%precv(il)%set(what,val,info,pos=pos,idx=idx) end do end select diff --git a/mlprec/impl/mld_zcprecset.F90 b/mlprec/impl/mld_zcprecset.F90 index 871a03d4..37b41d67 100644 --- a/mlprec/impl/mld_zcprecset.F90 +++ b/mlprec/impl/mld_zcprecset.F90 @@ -75,7 +75,7 @@ ! For this reason, the interface mld_precset to this routine has been built in ! such a way that ilev is not visible to the user (see mld_prec_mod.f90). ! -subroutine mld_zcprecseti(p,what,val,info,ilev,ilmax,pos) +subroutine mld_zcprecseti(p,what,val,info,ilev,ilmax,pos,idx) use psb_base_mod use mld_z_prec_mod, mld_protect_name => mld_zcprecseti @@ -108,6 +108,7 @@ subroutine mld_zcprecseti(p,what,val,info,ilev,ilmax,pos) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: ilev,ilmax character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local variables integer(psb_ipk_) :: ilev_, nlev_, ilmax_, il @@ -303,7 +304,7 @@ subroutine mld_zcprecseti(p,what,val,info,ilev,ilmax,pos) case default do il=ilev_, ilmax_ - call p%precv(il)%set(what,val,info,pos=pos) + call p%precv(il)%set(what,val,info,pos=pos,idx=idx) end do end select @@ -444,7 +445,7 @@ subroutine mld_zcprecseti(p,what,val,info,ilev,ilmax,pos) case default do ilev_=1,nlev_ - call p%precv(ilev_)%set(what,val,info,pos=pos) + call p%precv(ilev_)%set(what,val,info,pos=pos,idx=idx) end do end select @@ -491,7 +492,7 @@ end subroutine mld_zcprecseti ! For this reason, the interface mld_precset to this routine has been built in ! such a way that ilev is not visible to the user (see mld_prec_mod.f90). ! -subroutine mld_zcprecsetc(p,what,string,info,ilev,ilmax,pos) +subroutine mld_zcprecsetc(p,what,string,info,ilev,ilmax,pos,idx) use psb_base_mod use mld_z_prec_mod, mld_protect_name => mld_zcprecsetc @@ -504,7 +505,8 @@ subroutine mld_zcprecsetc(p,what,string,info,ilev,ilmax,pos) character(len=*), intent(in) :: string integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: ilev,ilmax - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local variables integer(psb_ipk_) :: ilev_, nlev_,val,ilmax_, il @@ -520,7 +522,7 @@ subroutine mld_zcprecsetc(p,what,string,info,ilev,ilmax,pos) if (val >=0) then - call p%set(what,val,info,ilev=ilev,ilmax=ilmax,pos=pos) + call p%set(what,val,info,ilev=ilev,ilmax=ilmax,pos=pos,idx=idx) else nlev_ = size(p%precv) @@ -549,7 +551,7 @@ subroutine mld_zcprecsetc(p,what,string,info,ilev,ilmax,pos) return endif do il=ilev_, ilmax_ - call p%precv(il)%set(what,string,info,pos=pos) + call p%precv(il)%set(what,string,info,pos=pos,idx=idx) end do end if @@ -594,7 +596,7 @@ end subroutine mld_zcprecsetc ! For this reason, the interface mld_precset to this routine has been built in ! such a way that ilev is not visible to the user (see mld_prec_mod.f90). ! -subroutine mld_zcprecsetr(p,what,val,info,ilev,ilmax,pos) +subroutine mld_zcprecsetr(p,what,val,info,ilev,ilmax,pos,idx) use psb_base_mod use mld_z_prec_mod, mld_protect_name => mld_zcprecsetr @@ -607,7 +609,8 @@ subroutine mld_zcprecsetr(p,what,val,info,ilev,ilmax,pos) real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), optional, intent(in) :: ilev,ilmax - character(len=*), optional, intent(in) :: pos + character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx ! Local variables integer(psb_ipk_) :: ilev_,nlev_, ilmax_, il @@ -668,7 +671,7 @@ subroutine mld_zcprecsetr(p,what,val,info,ilev,ilmax,pos) if (present(ilev)) then do il=ilev_, ilmax_ - call p%precv(il)%set(what,val,info,pos=pos) + call p%precv(il)%set(what,val,info,pos=pos,idx=idx) end do else if (.not.present(ilev)) then @@ -684,7 +687,7 @@ subroutine mld_zcprecsetr(p,what,val,info,ilev,ilmax,pos) case default do il=1,nlev_ - call p%precv(il)%set(what,val,info,pos=pos) + call p%precv(il)%set(what,val,info,pos=pos,idx=idx) end do end select diff --git a/mlprec/impl/smoother/mld_c_as_smoother_csetc.f90 b/mlprec/impl/smoother/mld_c_as_smoother_csetc.f90 index b48f58ed..a46f7bff 100644 --- a/mlprec/impl/smoother/mld_c_as_smoother_csetc.f90 +++ b/mlprec/impl/smoother/mld_c_as_smoother_csetc.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_c_as_smoother_csetc(sm,what,val,info) +subroutine mld_c_as_smoother_csetc(sm,what,val,info,idx) use psb_base_mod use mld_c_as_smoother, mld_protect_nam => mld_c_as_smoother_csetc @@ -45,6 +45,7 @@ subroutine mld_c_as_smoother_csetc(sm,what,val,info) character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act, ival character(len=20) :: name='c_as_smoother_csetc' @@ -54,9 +55,9 @@ subroutine mld_c_as_smoother_csetc(sm,what,val,info) ival = sm%stringval(val) if (ival >= 0) then - call sm%set(what,ival,info) + call sm%set(what,ival,info,idx=idx) else - call sm%mld_c_base_smoother_type%set(what,val,info) + call sm%mld_c_base_smoother_type%set(what,val,info,idx=idx) end if if (info /= psb_success_) then diff --git a/mlprec/impl/smoother/mld_c_as_smoother_cseti.f90 b/mlprec/impl/smoother/mld_c_as_smoother_cseti.f90 index 6414ed84..5a17adaf 100644 --- a/mlprec/impl/smoother/mld_c_as_smoother_cseti.f90 +++ b/mlprec/impl/smoother/mld_c_as_smoother_cseti.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_c_as_smoother_cseti(sm,what,val,info) +subroutine mld_c_as_smoother_cseti(sm,what,val,info,idx) use psb_base_mod use mld_c_as_smoother, mld_protect_nam => mld_c_as_smoother_cseti @@ -46,6 +46,7 @@ subroutine mld_c_as_smoother_cseti(sm,what,val,info) character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='c_as_smoother_cseti' @@ -60,7 +61,7 @@ subroutine mld_c_as_smoother_cseti(sm,what,val,info) case('SUB_PROL') sm%prol = val case default - call sm%mld_c_base_smoother_type%set(what,val,info) + call sm%mld_c_base_smoother_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) diff --git a/mlprec/impl/smoother/mld_c_as_smoother_csetr.f90 b/mlprec/impl/smoother/mld_c_as_smoother_csetr.f90 index ea438b55..cdc2abe8 100644 --- a/mlprec/impl/smoother/mld_c_as_smoother_csetr.f90 +++ b/mlprec/impl/smoother/mld_c_as_smoother_csetr.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_c_as_smoother_csetr(sm,what,val,info) +subroutine mld_c_as_smoother_csetr(sm,what,val,info,idx) use psb_base_mod use mld_c_as_smoother, mld_protect_nam => mld_c_as_smoother_csetr @@ -45,6 +45,7 @@ subroutine mld_c_as_smoother_csetr(sm,what,val,info) character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='c_as_smoother_csetr' @@ -53,7 +54,7 @@ subroutine mld_c_as_smoother_csetr(sm,what,val,info) if (allocated(sm%sv)) then - call sm%sv%set(what,val,info) + call sm%sv%set(what,val,info,idx=idx) else !!$ write(0,*) trim(name),' Missing component, not setting!' !!$ info = 1121 diff --git a/mlprec/impl/smoother/mld_c_base_smoother_csetc.f90 b/mlprec/impl/smoother/mld_c_base_smoother_csetc.f90 index 94387853..58355833 100644 --- a/mlprec/impl/smoother/mld_c_base_smoother_csetc.f90 +++ b/mlprec/impl/smoother/mld_c_base_smoother_csetc.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_c_base_smoother_csetc(sm,what,val,info) +subroutine mld_c_base_smoother_csetc(sm,what,val,info,idx) use psb_base_mod use mld_c_base_smoother_mod, mld_protect_name => mld_c_base_smoother_csetc @@ -46,6 +46,7 @@ subroutine mld_c_base_smoother_csetc(sm,what,val,info) character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act, ival character(len=20) :: name='c_base_smoother_csetc' @@ -55,10 +56,10 @@ subroutine mld_c_base_smoother_csetc(sm,what,val,info) ival = sm%stringval(val) if (ival >= 0) then - call sm%set(what,ival,info) + call sm%set(what,ival,info,idx=idx) else if (allocated(sm%sv)) then - call sm%sv%set(what,val,info) + call sm%sv%set(what,val,info,idx=idx) end if end if diff --git a/mlprec/impl/smoother/mld_c_base_smoother_cseti.f90 b/mlprec/impl/smoother/mld_c_base_smoother_cseti.f90 index d04cc545..41ac305d 100644 --- a/mlprec/impl/smoother/mld_c_base_smoother_cseti.f90 +++ b/mlprec/impl/smoother/mld_c_base_smoother_cseti.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_c_base_smoother_cseti(sm,what,val,info) +subroutine mld_c_base_smoother_cseti(sm,what,val,info,idx) use psb_base_mod use mld_c_base_smoother_mod, mld_protect_name => mld_c_base_smoother_cseti @@ -45,6 +45,7 @@ subroutine mld_c_base_smoother_cseti(sm,what,val,info) character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='c_base_smoother_cseti' @@ -52,7 +53,7 @@ subroutine mld_c_base_smoother_cseti(sm,what,val,info) info = psb_success_ if (allocated(sm%sv)) then - call sm%sv%set(what,val,info) + call sm%sv%set(what,val,info,idx=idx) end if if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) diff --git a/mlprec/impl/smoother/mld_c_base_smoother_csetr.f90 b/mlprec/impl/smoother/mld_c_base_smoother_csetr.f90 index 6890258e..5cd3ad34 100644 --- a/mlprec/impl/smoother/mld_c_base_smoother_csetr.f90 +++ b/mlprec/impl/smoother/mld_c_base_smoother_csetr.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_c_base_smoother_csetr(sm,what,val,info) +subroutine mld_c_base_smoother_csetr(sm,what,val,info,idx) use psb_base_mod use mld_c_base_smoother_mod, mld_protect_name => mld_c_base_smoother_csetr @@ -46,6 +46,7 @@ subroutine mld_c_base_smoother_csetr(sm,what,val,info) character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='c_base_smoother_csetr' @@ -55,7 +56,7 @@ subroutine mld_c_base_smoother_csetr(sm,what,val,info) info = psb_success_ if (allocated(sm%sv)) then - call sm%sv%set(what,val,info) + call sm%sv%set(what,val,info,idx=idx) end if if (info /= psb_success_) goto 9999 diff --git a/mlprec/impl/smoother/mld_d_as_smoother_csetc.f90 b/mlprec/impl/smoother/mld_d_as_smoother_csetc.f90 index 13edd238..39b48836 100644 --- a/mlprec/impl/smoother/mld_d_as_smoother_csetc.f90 +++ b/mlprec/impl/smoother/mld_d_as_smoother_csetc.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_d_as_smoother_csetc(sm,what,val,info) +subroutine mld_d_as_smoother_csetc(sm,what,val,info,idx) use psb_base_mod use mld_d_as_smoother, mld_protect_nam => mld_d_as_smoother_csetc @@ -45,6 +45,7 @@ subroutine mld_d_as_smoother_csetc(sm,what,val,info) character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act, ival character(len=20) :: name='d_as_smoother_csetc' @@ -54,9 +55,9 @@ subroutine mld_d_as_smoother_csetc(sm,what,val,info) ival = sm%stringval(val) if (ival >= 0) then - call sm%set(what,ival,info) + call sm%set(what,ival,info,idx=idx) else - call sm%mld_d_base_smoother_type%set(what,val,info) + call sm%mld_d_base_smoother_type%set(what,val,info,idx=idx) end if if (info /= psb_success_) then diff --git a/mlprec/impl/smoother/mld_d_as_smoother_cseti.f90 b/mlprec/impl/smoother/mld_d_as_smoother_cseti.f90 index 269e90ce..0e51c2c7 100644 --- a/mlprec/impl/smoother/mld_d_as_smoother_cseti.f90 +++ b/mlprec/impl/smoother/mld_d_as_smoother_cseti.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_d_as_smoother_cseti(sm,what,val,info) +subroutine mld_d_as_smoother_cseti(sm,what,val,info,idx) use psb_base_mod use mld_d_as_smoother, mld_protect_nam => mld_d_as_smoother_cseti @@ -46,6 +46,7 @@ subroutine mld_d_as_smoother_cseti(sm,what,val,info) character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='d_as_smoother_cseti' @@ -60,7 +61,7 @@ subroutine mld_d_as_smoother_cseti(sm,what,val,info) case('SUB_PROL') sm%prol = val case default - call sm%mld_d_base_smoother_type%set(what,val,info) + call sm%mld_d_base_smoother_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) diff --git a/mlprec/impl/smoother/mld_d_as_smoother_csetr.f90 b/mlprec/impl/smoother/mld_d_as_smoother_csetr.f90 index 29324f20..11547d4f 100644 --- a/mlprec/impl/smoother/mld_d_as_smoother_csetr.f90 +++ b/mlprec/impl/smoother/mld_d_as_smoother_csetr.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_d_as_smoother_csetr(sm,what,val,info) +subroutine mld_d_as_smoother_csetr(sm,what,val,info,idx) use psb_base_mod use mld_d_as_smoother, mld_protect_nam => mld_d_as_smoother_csetr @@ -45,6 +45,7 @@ subroutine mld_d_as_smoother_csetr(sm,what,val,info) character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='d_as_smoother_csetr' @@ -53,7 +54,7 @@ subroutine mld_d_as_smoother_csetr(sm,what,val,info) if (allocated(sm%sv)) then - call sm%sv%set(what,val,info) + call sm%sv%set(what,val,info,idx=idx) else !!$ write(0,*) trim(name),' Missing component, not setting!' !!$ info = 1121 diff --git a/mlprec/impl/smoother/mld_d_base_smoother_csetc.f90 b/mlprec/impl/smoother/mld_d_base_smoother_csetc.f90 index 64fb2902..b0a425c2 100644 --- a/mlprec/impl/smoother/mld_d_base_smoother_csetc.f90 +++ b/mlprec/impl/smoother/mld_d_base_smoother_csetc.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_d_base_smoother_csetc(sm,what,val,info) +subroutine mld_d_base_smoother_csetc(sm,what,val,info,idx) use psb_base_mod use mld_d_base_smoother_mod, mld_protect_name => mld_d_base_smoother_csetc @@ -46,6 +46,7 @@ subroutine mld_d_base_smoother_csetc(sm,what,val,info) character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act, ival character(len=20) :: name='d_base_smoother_csetc' @@ -55,10 +56,10 @@ subroutine mld_d_base_smoother_csetc(sm,what,val,info) ival = sm%stringval(val) if (ival >= 0) then - call sm%set(what,ival,info) + call sm%set(what,ival,info,idx=idx) else if (allocated(sm%sv)) then - call sm%sv%set(what,val,info) + call sm%sv%set(what,val,info,idx=idx) end if end if diff --git a/mlprec/impl/smoother/mld_d_base_smoother_cseti.f90 b/mlprec/impl/smoother/mld_d_base_smoother_cseti.f90 index 923288c8..20175edc 100644 --- a/mlprec/impl/smoother/mld_d_base_smoother_cseti.f90 +++ b/mlprec/impl/smoother/mld_d_base_smoother_cseti.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_d_base_smoother_cseti(sm,what,val,info) +subroutine mld_d_base_smoother_cseti(sm,what,val,info,idx) use psb_base_mod use mld_d_base_smoother_mod, mld_protect_name => mld_d_base_smoother_cseti @@ -45,6 +45,7 @@ subroutine mld_d_base_smoother_cseti(sm,what,val,info) character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='d_base_smoother_cseti' @@ -52,7 +53,7 @@ subroutine mld_d_base_smoother_cseti(sm,what,val,info) info = psb_success_ if (allocated(sm%sv)) then - call sm%sv%set(what,val,info) + call sm%sv%set(what,val,info,idx=idx) end if if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) diff --git a/mlprec/impl/smoother/mld_d_base_smoother_csetr.f90 b/mlprec/impl/smoother/mld_d_base_smoother_csetr.f90 index 2048835f..bdae241d 100644 --- a/mlprec/impl/smoother/mld_d_base_smoother_csetr.f90 +++ b/mlprec/impl/smoother/mld_d_base_smoother_csetr.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_d_base_smoother_csetr(sm,what,val,info) +subroutine mld_d_base_smoother_csetr(sm,what,val,info,idx) use psb_base_mod use mld_d_base_smoother_mod, mld_protect_name => mld_d_base_smoother_csetr @@ -46,6 +46,7 @@ subroutine mld_d_base_smoother_csetr(sm,what,val,info) character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='d_base_smoother_csetr' @@ -55,7 +56,7 @@ subroutine mld_d_base_smoother_csetr(sm,what,val,info) info = psb_success_ if (allocated(sm%sv)) then - call sm%sv%set(what,val,info) + call sm%sv%set(what,val,info,idx=idx) end if if (info /= psb_success_) goto 9999 diff --git a/mlprec/impl/smoother/mld_s_as_smoother_csetc.f90 b/mlprec/impl/smoother/mld_s_as_smoother_csetc.f90 index 08abf889..841f5adb 100644 --- a/mlprec/impl/smoother/mld_s_as_smoother_csetc.f90 +++ b/mlprec/impl/smoother/mld_s_as_smoother_csetc.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_s_as_smoother_csetc(sm,what,val,info) +subroutine mld_s_as_smoother_csetc(sm,what,val,info,idx) use psb_base_mod use mld_s_as_smoother, mld_protect_nam => mld_s_as_smoother_csetc @@ -45,6 +45,7 @@ subroutine mld_s_as_smoother_csetc(sm,what,val,info) character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act, ival character(len=20) :: name='s_as_smoother_csetc' @@ -54,9 +55,9 @@ subroutine mld_s_as_smoother_csetc(sm,what,val,info) ival = sm%stringval(val) if (ival >= 0) then - call sm%set(what,ival,info) + call sm%set(what,ival,info,idx=idx) else - call sm%mld_s_base_smoother_type%set(what,val,info) + call sm%mld_s_base_smoother_type%set(what,val,info,idx=idx) end if if (info /= psb_success_) then diff --git a/mlprec/impl/smoother/mld_s_as_smoother_cseti.f90 b/mlprec/impl/smoother/mld_s_as_smoother_cseti.f90 index 53950e47..4f0c2f9a 100644 --- a/mlprec/impl/smoother/mld_s_as_smoother_cseti.f90 +++ b/mlprec/impl/smoother/mld_s_as_smoother_cseti.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_s_as_smoother_cseti(sm,what,val,info) +subroutine mld_s_as_smoother_cseti(sm,what,val,info,idx) use psb_base_mod use mld_s_as_smoother, mld_protect_nam => mld_s_as_smoother_cseti @@ -46,6 +46,7 @@ subroutine mld_s_as_smoother_cseti(sm,what,val,info) character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='s_as_smoother_cseti' @@ -60,7 +61,7 @@ subroutine mld_s_as_smoother_cseti(sm,what,val,info) case('SUB_PROL') sm%prol = val case default - call sm%mld_s_base_smoother_type%set(what,val,info) + call sm%mld_s_base_smoother_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) diff --git a/mlprec/impl/smoother/mld_s_as_smoother_csetr.f90 b/mlprec/impl/smoother/mld_s_as_smoother_csetr.f90 index 5cdb1a35..d0d3445a 100644 --- a/mlprec/impl/smoother/mld_s_as_smoother_csetr.f90 +++ b/mlprec/impl/smoother/mld_s_as_smoother_csetr.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_s_as_smoother_csetr(sm,what,val,info) +subroutine mld_s_as_smoother_csetr(sm,what,val,info,idx) use psb_base_mod use mld_s_as_smoother, mld_protect_nam => mld_s_as_smoother_csetr @@ -45,6 +45,7 @@ subroutine mld_s_as_smoother_csetr(sm,what,val,info) character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='s_as_smoother_csetr' @@ -53,7 +54,7 @@ subroutine mld_s_as_smoother_csetr(sm,what,val,info) if (allocated(sm%sv)) then - call sm%sv%set(what,val,info) + call sm%sv%set(what,val,info,idx=idx) else !!$ write(0,*) trim(name),' Missing component, not setting!' !!$ info = 1121 diff --git a/mlprec/impl/smoother/mld_s_base_smoother_csetc.f90 b/mlprec/impl/smoother/mld_s_base_smoother_csetc.f90 index 27c7d700..871f66fd 100644 --- a/mlprec/impl/smoother/mld_s_base_smoother_csetc.f90 +++ b/mlprec/impl/smoother/mld_s_base_smoother_csetc.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_s_base_smoother_csetc(sm,what,val,info) +subroutine mld_s_base_smoother_csetc(sm,what,val,info,idx) use psb_base_mod use mld_s_base_smoother_mod, mld_protect_name => mld_s_base_smoother_csetc @@ -46,6 +46,7 @@ subroutine mld_s_base_smoother_csetc(sm,what,val,info) character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act, ival character(len=20) :: name='s_base_smoother_csetc' @@ -55,10 +56,10 @@ subroutine mld_s_base_smoother_csetc(sm,what,val,info) ival = sm%stringval(val) if (ival >= 0) then - call sm%set(what,ival,info) + call sm%set(what,ival,info,idx=idx) else if (allocated(sm%sv)) then - call sm%sv%set(what,val,info) + call sm%sv%set(what,val,info,idx=idx) end if end if diff --git a/mlprec/impl/smoother/mld_s_base_smoother_cseti.f90 b/mlprec/impl/smoother/mld_s_base_smoother_cseti.f90 index 81808a41..8600372a 100644 --- a/mlprec/impl/smoother/mld_s_base_smoother_cseti.f90 +++ b/mlprec/impl/smoother/mld_s_base_smoother_cseti.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_s_base_smoother_cseti(sm,what,val,info) +subroutine mld_s_base_smoother_cseti(sm,what,val,info,idx) use psb_base_mod use mld_s_base_smoother_mod, mld_protect_name => mld_s_base_smoother_cseti @@ -45,6 +45,7 @@ subroutine mld_s_base_smoother_cseti(sm,what,val,info) character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='s_base_smoother_cseti' @@ -52,7 +53,7 @@ subroutine mld_s_base_smoother_cseti(sm,what,val,info) info = psb_success_ if (allocated(sm%sv)) then - call sm%sv%set(what,val,info) + call sm%sv%set(what,val,info,idx=idx) end if if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) diff --git a/mlprec/impl/smoother/mld_s_base_smoother_csetr.f90 b/mlprec/impl/smoother/mld_s_base_smoother_csetr.f90 index 2e20b226..31a99c91 100644 --- a/mlprec/impl/smoother/mld_s_base_smoother_csetr.f90 +++ b/mlprec/impl/smoother/mld_s_base_smoother_csetr.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_s_base_smoother_csetr(sm,what,val,info) +subroutine mld_s_base_smoother_csetr(sm,what,val,info,idx) use psb_base_mod use mld_s_base_smoother_mod, mld_protect_name => mld_s_base_smoother_csetr @@ -46,6 +46,7 @@ subroutine mld_s_base_smoother_csetr(sm,what,val,info) character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='s_base_smoother_csetr' @@ -55,7 +56,7 @@ subroutine mld_s_base_smoother_csetr(sm,what,val,info) info = psb_success_ if (allocated(sm%sv)) then - call sm%sv%set(what,val,info) + call sm%sv%set(what,val,info,idx=idx) end if if (info /= psb_success_) goto 9999 diff --git a/mlprec/impl/smoother/mld_z_as_smoother_csetc.f90 b/mlprec/impl/smoother/mld_z_as_smoother_csetc.f90 index 553a2d20..98749555 100644 --- a/mlprec/impl/smoother/mld_z_as_smoother_csetc.f90 +++ b/mlprec/impl/smoother/mld_z_as_smoother_csetc.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_z_as_smoother_csetc(sm,what,val,info) +subroutine mld_z_as_smoother_csetc(sm,what,val,info,idx) use psb_base_mod use mld_z_as_smoother, mld_protect_nam => mld_z_as_smoother_csetc @@ -45,6 +45,7 @@ subroutine mld_z_as_smoother_csetc(sm,what,val,info) character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act, ival character(len=20) :: name='z_as_smoother_csetc' @@ -54,9 +55,9 @@ subroutine mld_z_as_smoother_csetc(sm,what,val,info) ival = sm%stringval(val) if (ival >= 0) then - call sm%set(what,ival,info) + call sm%set(what,ival,info,idx=idx) else - call sm%mld_z_base_smoother_type%set(what,val,info) + call sm%mld_z_base_smoother_type%set(what,val,info,idx=idx) end if if (info /= psb_success_) then diff --git a/mlprec/impl/smoother/mld_z_as_smoother_cseti.f90 b/mlprec/impl/smoother/mld_z_as_smoother_cseti.f90 index 0b7915be..03b47764 100644 --- a/mlprec/impl/smoother/mld_z_as_smoother_cseti.f90 +++ b/mlprec/impl/smoother/mld_z_as_smoother_cseti.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_z_as_smoother_cseti(sm,what,val,info) +subroutine mld_z_as_smoother_cseti(sm,what,val,info,idx) use psb_base_mod use mld_z_as_smoother, mld_protect_nam => mld_z_as_smoother_cseti @@ -46,6 +46,7 @@ subroutine mld_z_as_smoother_cseti(sm,what,val,info) character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='z_as_smoother_cseti' @@ -60,7 +61,7 @@ subroutine mld_z_as_smoother_cseti(sm,what,val,info) case('SUB_PROL') sm%prol = val case default - call sm%mld_z_base_smoother_type%set(what,val,info) + call sm%mld_z_base_smoother_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) diff --git a/mlprec/impl/smoother/mld_z_as_smoother_csetr.f90 b/mlprec/impl/smoother/mld_z_as_smoother_csetr.f90 index c781b8ad..84aa75d9 100644 --- a/mlprec/impl/smoother/mld_z_as_smoother_csetr.f90 +++ b/mlprec/impl/smoother/mld_z_as_smoother_csetr.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_z_as_smoother_csetr(sm,what,val,info) +subroutine mld_z_as_smoother_csetr(sm,what,val,info,idx) use psb_base_mod use mld_z_as_smoother, mld_protect_nam => mld_z_as_smoother_csetr @@ -45,6 +45,7 @@ subroutine mld_z_as_smoother_csetr(sm,what,val,info) character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='z_as_smoother_csetr' @@ -53,7 +54,7 @@ subroutine mld_z_as_smoother_csetr(sm,what,val,info) if (allocated(sm%sv)) then - call sm%sv%set(what,val,info) + call sm%sv%set(what,val,info,idx=idx) else !!$ write(0,*) trim(name),' Missing component, not setting!' !!$ info = 1121 diff --git a/mlprec/impl/smoother/mld_z_base_smoother_csetc.f90 b/mlprec/impl/smoother/mld_z_base_smoother_csetc.f90 index 361fc3a0..fba8da22 100644 --- a/mlprec/impl/smoother/mld_z_base_smoother_csetc.f90 +++ b/mlprec/impl/smoother/mld_z_base_smoother_csetc.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_z_base_smoother_csetc(sm,what,val,info) +subroutine mld_z_base_smoother_csetc(sm,what,val,info,idx) use psb_base_mod use mld_z_base_smoother_mod, mld_protect_name => mld_z_base_smoother_csetc @@ -46,6 +46,7 @@ subroutine mld_z_base_smoother_csetc(sm,what,val,info) character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act, ival character(len=20) :: name='z_base_smoother_csetc' @@ -55,10 +56,10 @@ subroutine mld_z_base_smoother_csetc(sm,what,val,info) ival = sm%stringval(val) if (ival >= 0) then - call sm%set(what,ival,info) + call sm%set(what,ival,info,idx=idx) else if (allocated(sm%sv)) then - call sm%sv%set(what,val,info) + call sm%sv%set(what,val,info,idx=idx) end if end if diff --git a/mlprec/impl/smoother/mld_z_base_smoother_cseti.f90 b/mlprec/impl/smoother/mld_z_base_smoother_cseti.f90 index f87f49c5..f431efd6 100644 --- a/mlprec/impl/smoother/mld_z_base_smoother_cseti.f90 +++ b/mlprec/impl/smoother/mld_z_base_smoother_cseti.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_z_base_smoother_cseti(sm,what,val,info) +subroutine mld_z_base_smoother_cseti(sm,what,val,info,idx) use psb_base_mod use mld_z_base_smoother_mod, mld_protect_name => mld_z_base_smoother_cseti @@ -45,6 +45,7 @@ subroutine mld_z_base_smoother_cseti(sm,what,val,info) character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='z_base_smoother_cseti' @@ -52,7 +53,7 @@ subroutine mld_z_base_smoother_cseti(sm,what,val,info) info = psb_success_ if (allocated(sm%sv)) then - call sm%sv%set(what,val,info) + call sm%sv%set(what,val,info,idx=idx) end if if (info /= psb_success_) goto 9999 call psb_erractionrestore(err_act) diff --git a/mlprec/impl/smoother/mld_z_base_smoother_csetr.f90 b/mlprec/impl/smoother/mld_z_base_smoother_csetr.f90 index 730df7ad..07be9ab8 100644 --- a/mlprec/impl/smoother/mld_z_base_smoother_csetr.f90 +++ b/mlprec/impl/smoother/mld_z_base_smoother_csetr.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_z_base_smoother_csetr(sm,what,val,info) +subroutine mld_z_base_smoother_csetr(sm,what,val,info,idx) use psb_base_mod use mld_z_base_smoother_mod, mld_protect_name => mld_z_base_smoother_csetr @@ -46,6 +46,7 @@ subroutine mld_z_base_smoother_csetr(sm,what,val,info) character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='z_base_smoother_csetr' @@ -55,7 +56,7 @@ subroutine mld_z_base_smoother_csetr(sm,what,val,info) info = psb_success_ if (allocated(sm%sv)) then - call sm%sv%set(what,val,info) + call sm%sv%set(what,val,info,idx=idx) end if if (info /= psb_success_) goto 9999 diff --git a/mlprec/impl/solver/mld_c_base_solver_csetc.f90 b/mlprec/impl/solver/mld_c_base_solver_csetc.f90 index c11c2a23..48cf9ed9 100644 --- a/mlprec/impl/solver/mld_c_base_solver_csetc.f90 +++ b/mlprec/impl/solver/mld_c_base_solver_csetc.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_c_base_solver_csetc(sv,what,val,info) +subroutine mld_c_base_solver_csetc(sv,what,val,info,idx) use psb_base_mod use mld_c_base_solver_mod, mld_protect_name => mld_c_base_solver_csetc @@ -45,6 +45,7 @@ subroutine mld_c_base_solver_csetc(sv,what,val,info) character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx Integer(Psb_ipk_) :: err_act, ival character(len=20) :: name='d_base_solver_csetc' @@ -54,7 +55,7 @@ subroutine mld_c_base_solver_csetc(sv,what,val,info) ival = sv%stringval(val) if (ival >=0) then - call sv%set(what,ival,info) + call sv%set(what,ival,info,idx=idx) end if if (info /= psb_success_) goto 9999 diff --git a/mlprec/impl/solver/mld_c_base_solver_cseti.f90 b/mlprec/impl/solver/mld_c_base_solver_cseti.f90 index 34bda825..be11d0b3 100644 --- a/mlprec/impl/solver/mld_c_base_solver_cseti.f90 +++ b/mlprec/impl/solver/mld_c_base_solver_cseti.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_c_base_solver_cseti(sv,what,val,info) +subroutine mld_c_base_solver_cseti(sv,what,val,info,idx) use psb_base_mod use mld_c_base_solver_mod, mld_protect_name => mld_c_base_solver_cseti @@ -45,6 +45,7 @@ subroutine mld_c_base_solver_cseti(sv,what,val,info) character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='d_base_solver_cseti' diff --git a/mlprec/impl/solver/mld_c_base_solver_csetr.f90 b/mlprec/impl/solver/mld_c_base_solver_csetr.f90 index 5a210ded..b0373816 100644 --- a/mlprec/impl/solver/mld_c_base_solver_csetr.f90 +++ b/mlprec/impl/solver/mld_c_base_solver_csetr.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_c_base_solver_csetr(sv,what,val,info) +subroutine mld_c_base_solver_csetr(sv,what,val,info,idx) use psb_base_mod use mld_c_base_solver_mod, mld_protect_name => mld_c_base_solver_csetr @@ -45,6 +45,7 @@ subroutine mld_c_base_solver_csetr(sv,what,val,info) integer(psb_ipk_), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='d_base_solver_csetr' diff --git a/mlprec/impl/solver/mld_d_base_solver_csetc.f90 b/mlprec/impl/solver/mld_d_base_solver_csetc.f90 index 706d4ee1..0198ff40 100644 --- a/mlprec/impl/solver/mld_d_base_solver_csetc.f90 +++ b/mlprec/impl/solver/mld_d_base_solver_csetc.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_d_base_solver_csetc(sv,what,val,info) +subroutine mld_d_base_solver_csetc(sv,what,val,info,idx) use psb_base_mod use mld_d_base_solver_mod, mld_protect_name => mld_d_base_solver_csetc @@ -45,6 +45,7 @@ subroutine mld_d_base_solver_csetc(sv,what,val,info) character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx Integer(Psb_ipk_) :: err_act, ival character(len=20) :: name='d_base_solver_csetc' @@ -54,7 +55,7 @@ subroutine mld_d_base_solver_csetc(sv,what,val,info) ival = sv%stringval(val) if (ival >=0) then - call sv%set(what,ival,info) + call sv%set(what,ival,info,idx=idx) end if if (info /= psb_success_) goto 9999 diff --git a/mlprec/impl/solver/mld_d_base_solver_cseti.f90 b/mlprec/impl/solver/mld_d_base_solver_cseti.f90 index 07cbd399..c30cf96b 100644 --- a/mlprec/impl/solver/mld_d_base_solver_cseti.f90 +++ b/mlprec/impl/solver/mld_d_base_solver_cseti.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_d_base_solver_cseti(sv,what,val,info) +subroutine mld_d_base_solver_cseti(sv,what,val,info,idx) use psb_base_mod use mld_d_base_solver_mod, mld_protect_name => mld_d_base_solver_cseti @@ -45,6 +45,7 @@ subroutine mld_d_base_solver_cseti(sv,what,val,info) character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='d_base_solver_cseti' diff --git a/mlprec/impl/solver/mld_d_base_solver_csetr.f90 b/mlprec/impl/solver/mld_d_base_solver_csetr.f90 index 1511eb26..b55377be 100644 --- a/mlprec/impl/solver/mld_d_base_solver_csetr.f90 +++ b/mlprec/impl/solver/mld_d_base_solver_csetr.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_d_base_solver_csetr(sv,what,val,info) +subroutine mld_d_base_solver_csetr(sv,what,val,info,idx) use psb_base_mod use mld_d_base_solver_mod, mld_protect_name => mld_d_base_solver_csetr @@ -45,6 +45,7 @@ subroutine mld_d_base_solver_csetr(sv,what,val,info) integer(psb_ipk_), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='d_base_solver_csetr' diff --git a/mlprec/impl/solver/mld_s_base_solver_csetc.f90 b/mlprec/impl/solver/mld_s_base_solver_csetc.f90 index 0525d845..c7004902 100644 --- a/mlprec/impl/solver/mld_s_base_solver_csetc.f90 +++ b/mlprec/impl/solver/mld_s_base_solver_csetc.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_s_base_solver_csetc(sv,what,val,info) +subroutine mld_s_base_solver_csetc(sv,what,val,info,idx) use psb_base_mod use mld_s_base_solver_mod, mld_protect_name => mld_s_base_solver_csetc @@ -45,6 +45,7 @@ subroutine mld_s_base_solver_csetc(sv,what,val,info) character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx Integer(Psb_ipk_) :: err_act, ival character(len=20) :: name='d_base_solver_csetc' @@ -54,7 +55,7 @@ subroutine mld_s_base_solver_csetc(sv,what,val,info) ival = sv%stringval(val) if (ival >=0) then - call sv%set(what,ival,info) + call sv%set(what,ival,info,idx=idx) end if if (info /= psb_success_) goto 9999 diff --git a/mlprec/impl/solver/mld_s_base_solver_cseti.f90 b/mlprec/impl/solver/mld_s_base_solver_cseti.f90 index 73da04f4..ff11aa50 100644 --- a/mlprec/impl/solver/mld_s_base_solver_cseti.f90 +++ b/mlprec/impl/solver/mld_s_base_solver_cseti.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_s_base_solver_cseti(sv,what,val,info) +subroutine mld_s_base_solver_cseti(sv,what,val,info,idx) use psb_base_mod use mld_s_base_solver_mod, mld_protect_name => mld_s_base_solver_cseti @@ -45,6 +45,7 @@ subroutine mld_s_base_solver_cseti(sv,what,val,info) character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='d_base_solver_cseti' diff --git a/mlprec/impl/solver/mld_s_base_solver_csetr.f90 b/mlprec/impl/solver/mld_s_base_solver_csetr.f90 index 4afcd3a8..bd646583 100644 --- a/mlprec/impl/solver/mld_s_base_solver_csetr.f90 +++ b/mlprec/impl/solver/mld_s_base_solver_csetr.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_s_base_solver_csetr(sv,what,val,info) +subroutine mld_s_base_solver_csetr(sv,what,val,info,idx) use psb_base_mod use mld_s_base_solver_mod, mld_protect_name => mld_s_base_solver_csetr @@ -45,6 +45,7 @@ subroutine mld_s_base_solver_csetr(sv,what,val,info) integer(psb_ipk_), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='d_base_solver_csetr' diff --git a/mlprec/impl/solver/mld_z_base_solver_csetc.f90 b/mlprec/impl/solver/mld_z_base_solver_csetc.f90 index 048a4fdc..879b5d4d 100644 --- a/mlprec/impl/solver/mld_z_base_solver_csetc.f90 +++ b/mlprec/impl/solver/mld_z_base_solver_csetc.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_z_base_solver_csetc(sv,what,val,info) +subroutine mld_z_base_solver_csetc(sv,what,val,info,idx) use psb_base_mod use mld_z_base_solver_mod, mld_protect_name => mld_z_base_solver_csetc @@ -45,6 +45,7 @@ subroutine mld_z_base_solver_csetc(sv,what,val,info) character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx Integer(Psb_ipk_) :: err_act, ival character(len=20) :: name='d_base_solver_csetc' @@ -54,7 +55,7 @@ subroutine mld_z_base_solver_csetc(sv,what,val,info) ival = sv%stringval(val) if (ival >=0) then - call sv%set(what,ival,info) + call sv%set(what,ival,info,idx=idx) end if if (info /= psb_success_) goto 9999 diff --git a/mlprec/impl/solver/mld_z_base_solver_cseti.f90 b/mlprec/impl/solver/mld_z_base_solver_cseti.f90 index 25ac8f67..5cf357b8 100644 --- a/mlprec/impl/solver/mld_z_base_solver_cseti.f90 +++ b/mlprec/impl/solver/mld_z_base_solver_cseti.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_z_base_solver_cseti(sv,what,val,info) +subroutine mld_z_base_solver_cseti(sv,what,val,info,idx) use psb_base_mod use mld_z_base_solver_mod, mld_protect_name => mld_z_base_solver_cseti @@ -45,6 +45,7 @@ subroutine mld_z_base_solver_cseti(sv,what,val,info) character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='d_base_solver_cseti' diff --git a/mlprec/impl/solver/mld_z_base_solver_csetr.f90 b/mlprec/impl/solver/mld_z_base_solver_csetr.f90 index 739586fc..193fa789 100644 --- a/mlprec/impl/solver/mld_z_base_solver_csetr.f90 +++ b/mlprec/impl/solver/mld_z_base_solver_csetr.f90 @@ -35,7 +35,7 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_z_base_solver_csetr(sv,what,val,info) +subroutine mld_z_base_solver_csetr(sv,what,val,info,idx) use psb_base_mod use mld_z_base_solver_mod, mld_protect_name => mld_z_base_solver_csetr @@ -45,6 +45,7 @@ subroutine mld_z_base_solver_csetr(sv,what,val,info) integer(psb_ipk_), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='d_base_solver_csetr' diff --git a/mlprec/mld_c_as_smoother.f90 b/mlprec/mld_c_as_smoother.f90 index 9a84bad5..dcf26369 100644 --- a/mlprec/mld_c_as_smoother.f90 +++ b/mlprec/mld_c_as_smoother.f90 @@ -252,7 +252,7 @@ module mld_c_as_smoother end interface interface - subroutine mld_c_as_smoother_cseti(sm,what,val,info) + subroutine mld_c_as_smoother_cseti(sm,what,val,info,idx) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_spk_, mld_c_as_smoother_type, psb_long_int_k_, psb_desc_type, psb_ipk_ implicit none @@ -260,11 +260,12 @@ module mld_c_as_smoother character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_c_as_smoother_cseti end interface interface - subroutine mld_c_as_smoother_csetc(sm,what,val,info) + subroutine mld_c_as_smoother_csetc(sm,what,val,info,idx) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_spk_, mld_c_as_smoother_type, psb_long_int_k_, psb_desc_type, psb_ipk_ implicit none @@ -272,6 +273,7 @@ module mld_c_as_smoother character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_c_as_smoother_csetc end interface diff --git a/mlprec/mld_c_base_aggregator_mod.f90 b/mlprec/mld_c_base_aggregator_mod.f90 index a30b8723..8bf95b5a 100644 --- a/mlprec/mld_c_base_aggregator_mod.f90 +++ b/mlprec/mld_c_base_aggregator_mod.f90 @@ -114,7 +114,7 @@ module mld_c_base_aggregator_mod contains - subroutine mld_c_base_aggregator_cseti(ag,what,val,info) + subroutine mld_c_base_aggregator_cseti(ag,what,val,info,idx) Implicit None @@ -123,11 +123,12 @@ contains character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx ! Do nothing info = 0 end subroutine mld_c_base_aggregator_cseti - subroutine mld_c_base_aggregator_csetr(ag,what,val,info) + subroutine mld_c_base_aggregator_csetr(ag,what,val,info,idx) Implicit None @@ -136,11 +137,12 @@ contains character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx ! Do nothing info = 0 end subroutine mld_c_base_aggregator_csetr - subroutine mld_c_base_aggregator_csetc(ag,what,val,info) + subroutine mld_c_base_aggregator_csetc(ag,what,val,info,idx) Implicit None @@ -149,6 +151,7 @@ contains character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx ! Do nothing info = 0 end subroutine mld_c_base_aggregator_csetc diff --git a/mlprec/mld_c_base_smoother_mod.f90 b/mlprec/mld_c_base_smoother_mod.f90 index a17300f5..1b4b7d59 100644 --- a/mlprec/mld_c_base_smoother_mod.f90 +++ b/mlprec/mld_c_base_smoother_mod.f90 @@ -186,7 +186,7 @@ module mld_c_base_smoother_mod end interface interface - subroutine mld_c_base_smoother_cseti(sm,what,val,info) + subroutine mld_c_base_smoother_cseti(sm,what,val,info,idx) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, & & mld_c_base_smoother_type, psb_ipk_ @@ -195,11 +195,12 @@ module mld_c_base_smoother_mod character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_c_base_smoother_cseti end interface interface - subroutine mld_c_base_smoother_csetc(sm,what,val,info) + subroutine mld_c_base_smoother_csetc(sm,what,val,info,idx) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, & & mld_c_base_smoother_type, psb_ipk_ @@ -207,11 +208,12 @@ module mld_c_base_smoother_mod character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_c_base_smoother_csetc end interface interface - subroutine mld_c_base_smoother_csetr(sm,what,val,info) + subroutine mld_c_base_smoother_csetr(sm,what,val,info,idx) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, & & mld_c_base_smoother_type, psb_ipk_ @@ -220,6 +222,7 @@ module mld_c_base_smoother_mod character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_c_base_smoother_csetr end interface diff --git a/mlprec/mld_c_base_solver_mod.f90 b/mlprec/mld_c_base_solver_mod.f90 index 376abc61..c88965c7 100644 --- a/mlprec/mld_c_base_solver_mod.f90 +++ b/mlprec/mld_c_base_solver_mod.f90 @@ -207,7 +207,7 @@ module mld_c_base_solver_mod end interface interface - subroutine mld_c_base_solver_cseti(sv,what,val,info) + subroutine mld_c_base_solver_cseti(sv,what,val,info,idx) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, & & mld_c_base_solver_type, psb_ipk_ @@ -218,11 +218,12 @@ module mld_c_base_solver_mod character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_c_base_solver_cseti end interface interface - subroutine mld_c_base_solver_csetc(sv,what,val,info) + subroutine mld_c_base_solver_csetc(sv,what,val,info,idx) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, & & mld_c_base_solver_type, psb_ipk_ @@ -233,11 +234,12 @@ module mld_c_base_solver_mod character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_c_base_solver_csetc end interface interface - subroutine mld_c_base_solver_csetr(sv,what,val,info) + subroutine mld_c_base_solver_csetr(sv,what,val,info,idx) import :: psb_desc_type, psb_cspmat_type, psb_c_base_sparse_mat, & & psb_c_vect_type, psb_c_base_vect_type, psb_spk_, & & mld_c_base_solver_type, psb_ipk_ @@ -247,6 +249,7 @@ module mld_c_base_solver_mod character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_c_base_solver_csetr end interface diff --git a/mlprec/mld_c_gs_solver.f90 b/mlprec/mld_c_gs_solver.f90 index 746843ba..a40aede8 100644 --- a/mlprec/mld_c_gs_solver.f90 +++ b/mlprec/mld_c_gs_solver.f90 @@ -287,7 +287,7 @@ contains end subroutine c_gs_solver_check - subroutine c_gs_solver_cseti(sv,what,val,info) + subroutine c_gs_solver_cseti(sv,what,val,info,idx) Implicit None @@ -296,6 +296,7 @@ contains character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='c_gs_solver_cseti' @@ -306,7 +307,7 @@ contains case('SOLVER_SWEEPS') sv%sweeps = val case default - call sv%mld_c_base_solver_type%set(what,val,info) + call sv%mld_c_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) @@ -316,7 +317,7 @@ contains return end subroutine c_gs_solver_cseti - subroutine c_gs_solver_csetc(sv,what,val,info) + subroutine c_gs_solver_csetc(sv,what,val,info,idx) Implicit None @@ -325,6 +326,7 @@ contains character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act, ival character(len=20) :: name='c_gs_solver_csetc' @@ -334,7 +336,7 @@ contains ival = sv%stringval(val) if (ival >= 0) then - call sv%set(what,ival,info) + call sv%set(what,ival,info,idx=idx) end if if (info /= psb_success_) then @@ -350,7 +352,7 @@ contains return end subroutine c_gs_solver_csetc - subroutine c_gs_solver_csetr(sv,what,val,info) + subroutine c_gs_solver_csetr(sv,what,val,info,idx) Implicit None @@ -359,6 +361,7 @@ contains character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='c_gs_solver_csetr' @@ -369,7 +372,7 @@ contains case('SOLVER_EPS') sv%eps = val case default - call sv%mld_c_base_solver_type%set(what,val,info) + call sv%mld_c_base_solver_type%set(what,val,info,idx=idx) end select diff --git a/mlprec/mld_c_ilu_solver.f90 b/mlprec/mld_c_ilu_solver.f90 index f7358797..0e88dba8 100644 --- a/mlprec/mld_c_ilu_solver.f90 +++ b/mlprec/mld_c_ilu_solver.f90 @@ -247,7 +247,7 @@ contains end subroutine c_ilu_solver_check - subroutine c_ilu_solver_cseti(sv,what,val,info) + subroutine c_ilu_solver_cseti(sv,what,val,info,idx) Implicit None @@ -256,6 +256,7 @@ contains character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='c_ilu_solver_cseti' @@ -268,7 +269,7 @@ contains case('SUB_FILLIN') sv%fill_in = val case default - call sv%mld_c_base_solver_type%set(what,val,info) + call sv%mld_c_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) @@ -278,7 +279,7 @@ contains return end subroutine c_ilu_solver_cseti - subroutine c_ilu_solver_csetc(sv,what,val,info) + subroutine c_ilu_solver_csetc(sv,what,val,info,idx) Implicit None @@ -287,6 +288,7 @@ contains character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act, ival character(len=20) :: name='c_ilu_solver_csetc' @@ -296,7 +298,7 @@ contains ival = sv%stringval(val) if (ival >= 0) then - call sv%set(what,ival,info) + call sv%set(what,ival,info,idx=idx) end if if (info /= psb_success_) then @@ -312,7 +314,7 @@ contains return end subroutine c_ilu_solver_csetc - subroutine c_ilu_solver_csetr(sv,what,val,info) + subroutine c_ilu_solver_csetr(sv,what,val,info,idx) Implicit None @@ -321,6 +323,7 @@ contains character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='c_ilu_solver_csetr' @@ -331,7 +334,7 @@ contains case('SUB_ILUTHRS') sv%thresh = val case default - call sv%mld_c_base_solver_type%set(what,val,info) + call sv%mld_c_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) diff --git a/mlprec/mld_c_mumps_solver.F90 b/mlprec/mld_c_mumps_solver.F90 index 0e2baca4..c1d921fe 100644 --- a/mlprec/mld_c_mumps_solver.F90 +++ b/mlprec/mld_c_mumps_solver.F90 @@ -255,7 +255,7 @@ contains !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - subroutine c_mumps_solver_cseti(sv,what,val,info) + subroutine c_mumps_solver_cseti(sv,what,val,info,idx) Implicit None @@ -264,6 +264,7 @@ contains character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='c_mumps_solver_cseti' @@ -276,9 +277,13 @@ contains sv%ipar(1)=val case('MUMPS_PRINT_ERR') sv%ipar(2)=val + case('MUMPS_IPAR_ENTRY') + if(present(idx)) then + sv%ipar(idx)=val + end if #endif case default - call sv%mld_c_base_solver_type%set(what,val,info) + call sv%mld_c_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) @@ -293,7 +298,7 @@ contains return end subroutine c_mumps_solver_cseti - subroutine c_mumps_solver_csetr(sv,what,val,info) + subroutine c_mumps_solver_csetr(sv,what,val,info,idx) Implicit None @@ -302,6 +307,7 @@ contains character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='c_mumps_solver_csetr' @@ -310,7 +316,7 @@ contains select case(psb_toupper(what)) case default - call sv%mld_c_base_solver_type%set(what,val,info) + call sv%mld_c_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) diff --git a/mlprec/mld_c_onelev_mod.f90 b/mlprec/mld_c_onelev_mod.f90 index b836b66b..6d0c0295 100644 --- a/mlprec/mld_c_onelev_mod.f90 +++ b/mlprec/mld_c_onelev_mod.f90 @@ -313,7 +313,7 @@ module mld_c_onelev_mod end interface interface - subroutine mld_c_base_onelev_cseti(lv,what,val,info,pos) + subroutine mld_c_base_onelev_cseti(lv,what,val,info,pos,idx) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_clinmap_type, psb_spk_, mld_c_onelev_type, & & psb_ipk_, psb_long_int_k_, psb_desc_type @@ -325,11 +325,12 @@ module mld_c_onelev_mod integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_c_base_onelev_cseti end interface interface - subroutine mld_c_base_onelev_csetc(lv,what,val,info,pos) + subroutine mld_c_base_onelev_csetc(lv,what,val,info,pos,idx) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_clinmap_type, psb_spk_, mld_c_onelev_type, & & psb_ipk_, psb_long_int_k_, psb_desc_type @@ -340,11 +341,12 @@ module mld_c_onelev_mod character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_c_base_onelev_csetc end interface interface - subroutine mld_c_base_onelev_csetr(lv,what,val,info,pos) + subroutine mld_c_base_onelev_csetr(lv,what,val,info,pos,idx) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_clinmap_type, psb_spk_, mld_c_onelev_type, & & psb_ipk_, psb_long_int_k_, psb_desc_type @@ -355,6 +357,7 @@ module mld_c_onelev_mod real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_c_base_onelev_csetr end interface diff --git a/mlprec/mld_c_prec_type.f90 b/mlprec/mld_c_prec_type.f90 index 7a9d4d13..bafc6a03 100644 --- a/mlprec/mld_c_prec_type.f90 +++ b/mlprec/mld_c_prec_type.f90 @@ -241,34 +241,34 @@ module mld_c_prec_type integer(psb_ipk_), optional, intent(in) :: ilev character(len=*), optional, intent(in) :: pos end subroutine mld_cprecsetag - subroutine mld_ccprecseti(prec,what,val,info,ilev,ilmax,pos) + subroutine mld_ccprecseti(prec,what,val,info,ilev,ilmax,pos,idx) import :: psb_cspmat_type, psb_desc_type, psb_spk_, & & mld_cprec_type, psb_ipk_ class(mld_cprec_type), intent(inout) :: prec character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: ilev,ilmax + integer(psb_ipk_), optional, intent(in) :: ilev,ilmax,idx character(len=*), optional, intent(in) :: pos end subroutine mld_ccprecseti - subroutine mld_ccprecsetr(prec,what,val,info,ilev,ilmax,pos) + subroutine mld_ccprecsetr(prec,what,val,info,ilev,ilmax,pos,idx) import :: psb_cspmat_type, psb_desc_type, psb_spk_, & & mld_cprec_type, psb_ipk_ class(mld_cprec_type), intent(inout) :: prec character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: ilev,ilmax + integer(psb_ipk_), optional, intent(in) :: ilev,ilmax,idx character(len=*), optional, intent(in) :: pos end subroutine mld_ccprecsetr - subroutine mld_ccprecsetc(prec,what,string,info,ilev,ilmax,pos) + subroutine mld_ccprecsetc(prec,what,string,info,ilev,ilmax,pos,idx) import :: psb_cspmat_type, psb_desc_type, psb_spk_, & & mld_cprec_type, psb_ipk_ class(mld_cprec_type), intent(inout) :: prec character(len=*), intent(in) :: what character(len=*), intent(in) :: string integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: ilev,ilmax + integer(psb_ipk_), optional, intent(in) :: ilev,ilmax,idx character(len=*), optional, intent(in) :: pos end subroutine mld_ccprecsetc end interface diff --git a/mlprec/mld_d_as_smoother.f90 b/mlprec/mld_d_as_smoother.f90 index 8aaee4b9..44d57ea4 100644 --- a/mlprec/mld_d_as_smoother.f90 +++ b/mlprec/mld_d_as_smoother.f90 @@ -252,7 +252,7 @@ module mld_d_as_smoother end interface interface - subroutine mld_d_as_smoother_cseti(sm,what,val,info) + subroutine mld_d_as_smoother_cseti(sm,what,val,info,idx) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dpk_, mld_d_as_smoother_type, psb_long_int_k_, psb_desc_type, psb_ipk_ implicit none @@ -260,11 +260,12 @@ module mld_d_as_smoother character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_d_as_smoother_cseti end interface interface - subroutine mld_d_as_smoother_csetc(sm,what,val,info) + subroutine mld_d_as_smoother_csetc(sm,what,val,info,idx) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dpk_, mld_d_as_smoother_type, psb_long_int_k_, psb_desc_type, psb_ipk_ implicit none @@ -272,6 +273,7 @@ module mld_d_as_smoother character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_d_as_smoother_csetc end interface diff --git a/mlprec/mld_d_base_aggregator_mod.f90 b/mlprec/mld_d_base_aggregator_mod.f90 index cbd57fd3..97d8796a 100644 --- a/mlprec/mld_d_base_aggregator_mod.f90 +++ b/mlprec/mld_d_base_aggregator_mod.f90 @@ -114,7 +114,7 @@ module mld_d_base_aggregator_mod contains - subroutine mld_d_base_aggregator_cseti(ag,what,val,info) + subroutine mld_d_base_aggregator_cseti(ag,what,val,info,idx) Implicit None @@ -123,11 +123,12 @@ contains character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx ! Do nothing info = 0 end subroutine mld_d_base_aggregator_cseti - subroutine mld_d_base_aggregator_csetr(ag,what,val,info) + subroutine mld_d_base_aggregator_csetr(ag,what,val,info,idx) Implicit None @@ -136,11 +137,12 @@ contains character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx ! Do nothing info = 0 end subroutine mld_d_base_aggregator_csetr - subroutine mld_d_base_aggregator_csetc(ag,what,val,info) + subroutine mld_d_base_aggregator_csetc(ag,what,val,info,idx) Implicit None @@ -149,6 +151,7 @@ contains character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx ! Do nothing info = 0 end subroutine mld_d_base_aggregator_csetc diff --git a/mlprec/mld_d_base_smoother_mod.f90 b/mlprec/mld_d_base_smoother_mod.f90 index 18391f39..84ccb79e 100644 --- a/mlprec/mld_d_base_smoother_mod.f90 +++ b/mlprec/mld_d_base_smoother_mod.f90 @@ -186,7 +186,7 @@ module mld_d_base_smoother_mod end interface interface - subroutine mld_d_base_smoother_cseti(sm,what,val,info) + subroutine mld_d_base_smoother_cseti(sm,what,val,info,idx) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, & & mld_d_base_smoother_type, psb_ipk_ @@ -195,11 +195,12 @@ module mld_d_base_smoother_mod character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_d_base_smoother_cseti end interface interface - subroutine mld_d_base_smoother_csetc(sm,what,val,info) + subroutine mld_d_base_smoother_csetc(sm,what,val,info,idx) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, & & mld_d_base_smoother_type, psb_ipk_ @@ -207,11 +208,12 @@ module mld_d_base_smoother_mod character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_d_base_smoother_csetc end interface interface - subroutine mld_d_base_smoother_csetr(sm,what,val,info) + subroutine mld_d_base_smoother_csetr(sm,what,val,info,idx) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, & & mld_d_base_smoother_type, psb_ipk_ @@ -220,6 +222,7 @@ module mld_d_base_smoother_mod character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_d_base_smoother_csetr end interface diff --git a/mlprec/mld_d_base_solver_mod.f90 b/mlprec/mld_d_base_solver_mod.f90 index 536f4ee6..b2e70450 100644 --- a/mlprec/mld_d_base_solver_mod.f90 +++ b/mlprec/mld_d_base_solver_mod.f90 @@ -207,7 +207,7 @@ module mld_d_base_solver_mod end interface interface - subroutine mld_d_base_solver_cseti(sv,what,val,info) + subroutine mld_d_base_solver_cseti(sv,what,val,info,idx) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, & & mld_d_base_solver_type, psb_ipk_ @@ -218,11 +218,12 @@ module mld_d_base_solver_mod character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_d_base_solver_cseti end interface interface - subroutine mld_d_base_solver_csetc(sv,what,val,info) + subroutine mld_d_base_solver_csetc(sv,what,val,info,idx) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, & & mld_d_base_solver_type, psb_ipk_ @@ -233,11 +234,12 @@ module mld_d_base_solver_mod character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_d_base_solver_csetc end interface interface - subroutine mld_d_base_solver_csetr(sv,what,val,info) + subroutine mld_d_base_solver_csetr(sv,what,val,info,idx) import :: psb_desc_type, psb_dspmat_type, psb_d_base_sparse_mat, & & psb_d_vect_type, psb_d_base_vect_type, psb_dpk_, & & mld_d_base_solver_type, psb_ipk_ @@ -247,6 +249,7 @@ module mld_d_base_solver_mod character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_d_base_solver_csetr end interface diff --git a/mlprec/mld_d_gs_solver.f90 b/mlprec/mld_d_gs_solver.f90 index 46ac5898..5bedce92 100644 --- a/mlprec/mld_d_gs_solver.f90 +++ b/mlprec/mld_d_gs_solver.f90 @@ -287,7 +287,7 @@ contains end subroutine d_gs_solver_check - subroutine d_gs_solver_cseti(sv,what,val,info) + subroutine d_gs_solver_cseti(sv,what,val,info,idx) Implicit None @@ -296,6 +296,7 @@ contains character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='d_gs_solver_cseti' @@ -306,7 +307,7 @@ contains case('SOLVER_SWEEPS') sv%sweeps = val case default - call sv%mld_d_base_solver_type%set(what,val,info) + call sv%mld_d_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) @@ -316,7 +317,7 @@ contains return end subroutine d_gs_solver_cseti - subroutine d_gs_solver_csetc(sv,what,val,info) + subroutine d_gs_solver_csetc(sv,what,val,info,idx) Implicit None @@ -325,6 +326,7 @@ contains character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act, ival character(len=20) :: name='d_gs_solver_csetc' @@ -334,7 +336,7 @@ contains ival = sv%stringval(val) if (ival >= 0) then - call sv%set(what,ival,info) + call sv%set(what,ival,info,idx=idx) end if if (info /= psb_success_) then @@ -350,7 +352,7 @@ contains return end subroutine d_gs_solver_csetc - subroutine d_gs_solver_csetr(sv,what,val,info) + subroutine d_gs_solver_csetr(sv,what,val,info,idx) Implicit None @@ -359,6 +361,7 @@ contains character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='d_gs_solver_csetr' @@ -369,7 +372,7 @@ contains case('SOLVER_EPS') sv%eps = val case default - call sv%mld_d_base_solver_type%set(what,val,info) + call sv%mld_d_base_solver_type%set(what,val,info,idx=idx) end select diff --git a/mlprec/mld_d_ilu_solver.f90 b/mlprec/mld_d_ilu_solver.f90 index e6b177a2..e6a5894b 100644 --- a/mlprec/mld_d_ilu_solver.f90 +++ b/mlprec/mld_d_ilu_solver.f90 @@ -247,7 +247,7 @@ contains end subroutine d_ilu_solver_check - subroutine d_ilu_solver_cseti(sv,what,val,info) + subroutine d_ilu_solver_cseti(sv,what,val,info,idx) Implicit None @@ -256,6 +256,7 @@ contains character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='d_ilu_solver_cseti' @@ -268,7 +269,7 @@ contains case('SUB_FILLIN') sv%fill_in = val case default - call sv%mld_d_base_solver_type%set(what,val,info) + call sv%mld_d_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) @@ -278,7 +279,7 @@ contains return end subroutine d_ilu_solver_cseti - subroutine d_ilu_solver_csetc(sv,what,val,info) + subroutine d_ilu_solver_csetc(sv,what,val,info,idx) Implicit None @@ -287,6 +288,7 @@ contains character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act, ival character(len=20) :: name='d_ilu_solver_csetc' @@ -296,7 +298,7 @@ contains ival = sv%stringval(val) if (ival >= 0) then - call sv%set(what,ival,info) + call sv%set(what,ival,info,idx=idx) end if if (info /= psb_success_) then @@ -312,7 +314,7 @@ contains return end subroutine d_ilu_solver_csetc - subroutine d_ilu_solver_csetr(sv,what,val,info) + subroutine d_ilu_solver_csetr(sv,what,val,info,idx) Implicit None @@ -321,6 +323,7 @@ contains character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='d_ilu_solver_csetr' @@ -331,7 +334,7 @@ contains case('SUB_ILUTHRS') sv%thresh = val case default - call sv%mld_d_base_solver_type%set(what,val,info) + call sv%mld_d_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) diff --git a/mlprec/mld_d_mumps_solver.F90 b/mlprec/mld_d_mumps_solver.F90 index f41822d8..41e09a6c 100644 --- a/mlprec/mld_d_mumps_solver.F90 +++ b/mlprec/mld_d_mumps_solver.F90 @@ -255,7 +255,7 @@ contains !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - subroutine d_mumps_solver_cseti(sv,what,val,info) + subroutine d_mumps_solver_cseti(sv,what,val,info,idx) Implicit None @@ -264,6 +264,7 @@ contains character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='d_mumps_solver_cseti' @@ -276,9 +277,13 @@ contains sv%ipar(1)=val case('MUMPS_PRINT_ERR') sv%ipar(2)=val + case('MUMPS_IPAR_ENTRY') + if(present(idx)) then + sv%ipar(idx)=val + end if #endif case default - call sv%mld_d_base_solver_type%set(what,val,info) + call sv%mld_d_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) @@ -293,7 +298,7 @@ contains return end subroutine d_mumps_solver_cseti - subroutine d_mumps_solver_csetr(sv,what,val,info) + subroutine d_mumps_solver_csetr(sv,what,val,info,idx) Implicit None @@ -302,6 +307,7 @@ contains character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='d_mumps_solver_csetr' @@ -310,7 +316,7 @@ contains select case(psb_toupper(what)) case default - call sv%mld_d_base_solver_type%set(what,val,info) + call sv%mld_d_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) diff --git a/mlprec/mld_d_onelev_mod.f90 b/mlprec/mld_d_onelev_mod.f90 index 7cc6a728..e465667b 100644 --- a/mlprec/mld_d_onelev_mod.f90 +++ b/mlprec/mld_d_onelev_mod.f90 @@ -313,7 +313,7 @@ module mld_d_onelev_mod end interface interface - subroutine mld_d_base_onelev_cseti(lv,what,val,info,pos) + subroutine mld_d_base_onelev_cseti(lv,what,val,info,pos,idx) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dlinmap_type, psb_dpk_, mld_d_onelev_type, & & psb_ipk_, psb_long_int_k_, psb_desc_type @@ -325,11 +325,12 @@ module mld_d_onelev_mod integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_d_base_onelev_cseti end interface interface - subroutine mld_d_base_onelev_csetc(lv,what,val,info,pos) + subroutine mld_d_base_onelev_csetc(lv,what,val,info,pos,idx) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dlinmap_type, psb_dpk_, mld_d_onelev_type, & & psb_ipk_, psb_long_int_k_, psb_desc_type @@ -340,11 +341,12 @@ module mld_d_onelev_mod character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_d_base_onelev_csetc end interface interface - subroutine mld_d_base_onelev_csetr(lv,what,val,info,pos) + subroutine mld_d_base_onelev_csetr(lv,what,val,info,pos,idx) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dlinmap_type, psb_dpk_, mld_d_onelev_type, & & psb_ipk_, psb_long_int_k_, psb_desc_type @@ -355,6 +357,7 @@ module mld_d_onelev_mod real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_d_base_onelev_csetr end interface diff --git a/mlprec/mld_d_prec_type.f90 b/mlprec/mld_d_prec_type.f90 index a2d6e763..c1cbe45d 100644 --- a/mlprec/mld_d_prec_type.f90 +++ b/mlprec/mld_d_prec_type.f90 @@ -241,34 +241,34 @@ module mld_d_prec_type integer(psb_ipk_), optional, intent(in) :: ilev character(len=*), optional, intent(in) :: pos end subroutine mld_dprecsetag - subroutine mld_dcprecseti(prec,what,val,info,ilev,ilmax,pos) + subroutine mld_dcprecseti(prec,what,val,info,ilev,ilmax,pos,idx) import :: psb_dspmat_type, psb_desc_type, psb_dpk_, & & mld_dprec_type, psb_ipk_ class(mld_dprec_type), intent(inout) :: prec character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: ilev,ilmax + integer(psb_ipk_), optional, intent(in) :: ilev,ilmax,idx character(len=*), optional, intent(in) :: pos end subroutine mld_dcprecseti - subroutine mld_dcprecsetr(prec,what,val,info,ilev,ilmax,pos) + subroutine mld_dcprecsetr(prec,what,val,info,ilev,ilmax,pos,idx) import :: psb_dspmat_type, psb_desc_type, psb_dpk_, & & mld_dprec_type, psb_ipk_ class(mld_dprec_type), intent(inout) :: prec character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: ilev,ilmax + integer(psb_ipk_), optional, intent(in) :: ilev,ilmax,idx character(len=*), optional, intent(in) :: pos end subroutine mld_dcprecsetr - subroutine mld_dcprecsetc(prec,what,string,info,ilev,ilmax,pos) + subroutine mld_dcprecsetc(prec,what,string,info,ilev,ilmax,pos,idx) import :: psb_dspmat_type, psb_desc_type, psb_dpk_, & & mld_dprec_type, psb_ipk_ class(mld_dprec_type), intent(inout) :: prec character(len=*), intent(in) :: what character(len=*), intent(in) :: string integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: ilev,ilmax + integer(psb_ipk_), optional, intent(in) :: ilev,ilmax,idx character(len=*), optional, intent(in) :: pos end subroutine mld_dcprecsetc end interface diff --git a/mlprec/mld_s_as_smoother.f90 b/mlprec/mld_s_as_smoother.f90 index f7abe638..0f3ec7d7 100644 --- a/mlprec/mld_s_as_smoother.f90 +++ b/mlprec/mld_s_as_smoother.f90 @@ -252,7 +252,7 @@ module mld_s_as_smoother end interface interface - subroutine mld_s_as_smoother_cseti(sm,what,val,info) + subroutine mld_s_as_smoother_cseti(sm,what,val,info,idx) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_spk_, mld_s_as_smoother_type, psb_long_int_k_, psb_desc_type, psb_ipk_ implicit none @@ -260,11 +260,12 @@ module mld_s_as_smoother character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_s_as_smoother_cseti end interface interface - subroutine mld_s_as_smoother_csetc(sm,what,val,info) + subroutine mld_s_as_smoother_csetc(sm,what,val,info,idx) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_spk_, mld_s_as_smoother_type, psb_long_int_k_, psb_desc_type, psb_ipk_ implicit none @@ -272,6 +273,7 @@ module mld_s_as_smoother character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_s_as_smoother_csetc end interface diff --git a/mlprec/mld_s_base_aggregator_mod.f90 b/mlprec/mld_s_base_aggregator_mod.f90 index acfc456a..6a180825 100644 --- a/mlprec/mld_s_base_aggregator_mod.f90 +++ b/mlprec/mld_s_base_aggregator_mod.f90 @@ -114,7 +114,7 @@ module mld_s_base_aggregator_mod contains - subroutine mld_s_base_aggregator_cseti(ag,what,val,info) + subroutine mld_s_base_aggregator_cseti(ag,what,val,info,idx) Implicit None @@ -123,11 +123,12 @@ contains character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx ! Do nothing info = 0 end subroutine mld_s_base_aggregator_cseti - subroutine mld_s_base_aggregator_csetr(ag,what,val,info) + subroutine mld_s_base_aggregator_csetr(ag,what,val,info,idx) Implicit None @@ -136,11 +137,12 @@ contains character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx ! Do nothing info = 0 end subroutine mld_s_base_aggregator_csetr - subroutine mld_s_base_aggregator_csetc(ag,what,val,info) + subroutine mld_s_base_aggregator_csetc(ag,what,val,info,idx) Implicit None @@ -149,6 +151,7 @@ contains character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx ! Do nothing info = 0 end subroutine mld_s_base_aggregator_csetc diff --git a/mlprec/mld_s_base_smoother_mod.f90 b/mlprec/mld_s_base_smoother_mod.f90 index 0097e6e2..ab7590ea 100644 --- a/mlprec/mld_s_base_smoother_mod.f90 +++ b/mlprec/mld_s_base_smoother_mod.f90 @@ -186,7 +186,7 @@ module mld_s_base_smoother_mod end interface interface - subroutine mld_s_base_smoother_cseti(sm,what,val,info) + subroutine mld_s_base_smoother_cseti(sm,what,val,info,idx) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, & & mld_s_base_smoother_type, psb_ipk_ @@ -195,11 +195,12 @@ module mld_s_base_smoother_mod character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_s_base_smoother_cseti end interface interface - subroutine mld_s_base_smoother_csetc(sm,what,val,info) + subroutine mld_s_base_smoother_csetc(sm,what,val,info,idx) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, & & mld_s_base_smoother_type, psb_ipk_ @@ -207,11 +208,12 @@ module mld_s_base_smoother_mod character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_s_base_smoother_csetc end interface interface - subroutine mld_s_base_smoother_csetr(sm,what,val,info) + subroutine mld_s_base_smoother_csetr(sm,what,val,info,idx) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, & & mld_s_base_smoother_type, psb_ipk_ @@ -220,6 +222,7 @@ module mld_s_base_smoother_mod character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_s_base_smoother_csetr end interface diff --git a/mlprec/mld_s_base_solver_mod.f90 b/mlprec/mld_s_base_solver_mod.f90 index 2d31f730..ee0f7bba 100644 --- a/mlprec/mld_s_base_solver_mod.f90 +++ b/mlprec/mld_s_base_solver_mod.f90 @@ -207,7 +207,7 @@ module mld_s_base_solver_mod end interface interface - subroutine mld_s_base_solver_cseti(sv,what,val,info) + subroutine mld_s_base_solver_cseti(sv,what,val,info,idx) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, & & mld_s_base_solver_type, psb_ipk_ @@ -218,11 +218,12 @@ module mld_s_base_solver_mod character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_s_base_solver_cseti end interface interface - subroutine mld_s_base_solver_csetc(sv,what,val,info) + subroutine mld_s_base_solver_csetc(sv,what,val,info,idx) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, & & mld_s_base_solver_type, psb_ipk_ @@ -233,11 +234,12 @@ module mld_s_base_solver_mod character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_s_base_solver_csetc end interface interface - subroutine mld_s_base_solver_csetr(sv,what,val,info) + subroutine mld_s_base_solver_csetr(sv,what,val,info,idx) import :: psb_desc_type, psb_sspmat_type, psb_s_base_sparse_mat, & & psb_s_vect_type, psb_s_base_vect_type, psb_spk_, & & mld_s_base_solver_type, psb_ipk_ @@ -247,6 +249,7 @@ module mld_s_base_solver_mod character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_s_base_solver_csetr end interface diff --git a/mlprec/mld_s_gs_solver.f90 b/mlprec/mld_s_gs_solver.f90 index 6029c2bb..17389073 100644 --- a/mlprec/mld_s_gs_solver.f90 +++ b/mlprec/mld_s_gs_solver.f90 @@ -287,7 +287,7 @@ contains end subroutine s_gs_solver_check - subroutine s_gs_solver_cseti(sv,what,val,info) + subroutine s_gs_solver_cseti(sv,what,val,info,idx) Implicit None @@ -296,6 +296,7 @@ contains character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='s_gs_solver_cseti' @@ -306,7 +307,7 @@ contains case('SOLVER_SWEEPS') sv%sweeps = val case default - call sv%mld_s_base_solver_type%set(what,val,info) + call sv%mld_s_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) @@ -316,7 +317,7 @@ contains return end subroutine s_gs_solver_cseti - subroutine s_gs_solver_csetc(sv,what,val,info) + subroutine s_gs_solver_csetc(sv,what,val,info,idx) Implicit None @@ -325,6 +326,7 @@ contains character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act, ival character(len=20) :: name='s_gs_solver_csetc' @@ -334,7 +336,7 @@ contains ival = sv%stringval(val) if (ival >= 0) then - call sv%set(what,ival,info) + call sv%set(what,ival,info,idx=idx) end if if (info /= psb_success_) then @@ -350,7 +352,7 @@ contains return end subroutine s_gs_solver_csetc - subroutine s_gs_solver_csetr(sv,what,val,info) + subroutine s_gs_solver_csetr(sv,what,val,info,idx) Implicit None @@ -359,6 +361,7 @@ contains character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='s_gs_solver_csetr' @@ -369,7 +372,7 @@ contains case('SOLVER_EPS') sv%eps = val case default - call sv%mld_s_base_solver_type%set(what,val,info) + call sv%mld_s_base_solver_type%set(what,val,info,idx=idx) end select diff --git a/mlprec/mld_s_ilu_solver.f90 b/mlprec/mld_s_ilu_solver.f90 index b80632f1..02d464f9 100644 --- a/mlprec/mld_s_ilu_solver.f90 +++ b/mlprec/mld_s_ilu_solver.f90 @@ -247,7 +247,7 @@ contains end subroutine s_ilu_solver_check - subroutine s_ilu_solver_cseti(sv,what,val,info) + subroutine s_ilu_solver_cseti(sv,what,val,info,idx) Implicit None @@ -256,6 +256,7 @@ contains character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='s_ilu_solver_cseti' @@ -268,7 +269,7 @@ contains case('SUB_FILLIN') sv%fill_in = val case default - call sv%mld_s_base_solver_type%set(what,val,info) + call sv%mld_s_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) @@ -278,7 +279,7 @@ contains return end subroutine s_ilu_solver_cseti - subroutine s_ilu_solver_csetc(sv,what,val,info) + subroutine s_ilu_solver_csetc(sv,what,val,info,idx) Implicit None @@ -287,6 +288,7 @@ contains character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act, ival character(len=20) :: name='s_ilu_solver_csetc' @@ -296,7 +298,7 @@ contains ival = sv%stringval(val) if (ival >= 0) then - call sv%set(what,ival,info) + call sv%set(what,ival,info,idx=idx) end if if (info /= psb_success_) then @@ -312,7 +314,7 @@ contains return end subroutine s_ilu_solver_csetc - subroutine s_ilu_solver_csetr(sv,what,val,info) + subroutine s_ilu_solver_csetr(sv,what,val,info,idx) Implicit None @@ -321,6 +323,7 @@ contains character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='s_ilu_solver_csetr' @@ -331,7 +334,7 @@ contains case('SUB_ILUTHRS') sv%thresh = val case default - call sv%mld_s_base_solver_type%set(what,val,info) + call sv%mld_s_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) diff --git a/mlprec/mld_s_mumps_solver.F90 b/mlprec/mld_s_mumps_solver.F90 index 4b4e4f7e..6c69583e 100644 --- a/mlprec/mld_s_mumps_solver.F90 +++ b/mlprec/mld_s_mumps_solver.F90 @@ -255,7 +255,7 @@ contains !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - subroutine s_mumps_solver_cseti(sv,what,val,info) + subroutine s_mumps_solver_cseti(sv,what,val,info,idx) Implicit None @@ -264,6 +264,7 @@ contains character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='s_mumps_solver_cseti' @@ -276,9 +277,13 @@ contains sv%ipar(1)=val case('MUMPS_PRINT_ERR') sv%ipar(2)=val + case('MUMPS_IPAR_ENTRY') + if(present(idx)) then + sv%ipar(idx)=val + end if #endif case default - call sv%mld_s_base_solver_type%set(what,val,info) + call sv%mld_s_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) @@ -293,7 +298,7 @@ contains return end subroutine s_mumps_solver_cseti - subroutine s_mumps_solver_csetr(sv,what,val,info) + subroutine s_mumps_solver_csetr(sv,what,val,info,idx) Implicit None @@ -302,6 +307,7 @@ contains character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='s_mumps_solver_csetr' @@ -310,7 +316,7 @@ contains select case(psb_toupper(what)) case default - call sv%mld_s_base_solver_type%set(what,val,info) + call sv%mld_s_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) diff --git a/mlprec/mld_s_onelev_mod.f90 b/mlprec/mld_s_onelev_mod.f90 index 251ee330..e40ae8fb 100644 --- a/mlprec/mld_s_onelev_mod.f90 +++ b/mlprec/mld_s_onelev_mod.f90 @@ -313,7 +313,7 @@ module mld_s_onelev_mod end interface interface - subroutine mld_s_base_onelev_cseti(lv,what,val,info,pos) + subroutine mld_s_base_onelev_cseti(lv,what,val,info,pos,idx) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_slinmap_type, psb_spk_, mld_s_onelev_type, & & psb_ipk_, psb_long_int_k_, psb_desc_type @@ -325,11 +325,12 @@ module mld_s_onelev_mod integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_s_base_onelev_cseti end interface interface - subroutine mld_s_base_onelev_csetc(lv,what,val,info,pos) + subroutine mld_s_base_onelev_csetc(lv,what,val,info,pos,idx) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_slinmap_type, psb_spk_, mld_s_onelev_type, & & psb_ipk_, psb_long_int_k_, psb_desc_type @@ -340,11 +341,12 @@ module mld_s_onelev_mod character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_s_base_onelev_csetc end interface interface - subroutine mld_s_base_onelev_csetr(lv,what,val,info,pos) + subroutine mld_s_base_onelev_csetr(lv,what,val,info,pos,idx) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_slinmap_type, psb_spk_, mld_s_onelev_type, & & psb_ipk_, psb_long_int_k_, psb_desc_type @@ -355,6 +357,7 @@ module mld_s_onelev_mod real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_s_base_onelev_csetr end interface diff --git a/mlprec/mld_s_prec_type.f90 b/mlprec/mld_s_prec_type.f90 index a2b05ec1..21dbfb27 100644 --- a/mlprec/mld_s_prec_type.f90 +++ b/mlprec/mld_s_prec_type.f90 @@ -241,34 +241,34 @@ module mld_s_prec_type integer(psb_ipk_), optional, intent(in) :: ilev character(len=*), optional, intent(in) :: pos end subroutine mld_sprecsetag - subroutine mld_scprecseti(prec,what,val,info,ilev,ilmax,pos) + subroutine mld_scprecseti(prec,what,val,info,ilev,ilmax,pos,idx) import :: psb_sspmat_type, psb_desc_type, psb_spk_, & & mld_sprec_type, psb_ipk_ class(mld_sprec_type), intent(inout) :: prec character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: ilev,ilmax + integer(psb_ipk_), optional, intent(in) :: ilev,ilmax,idx character(len=*), optional, intent(in) :: pos end subroutine mld_scprecseti - subroutine mld_scprecsetr(prec,what,val,info,ilev,ilmax,pos) + subroutine mld_scprecsetr(prec,what,val,info,ilev,ilmax,pos,idx) import :: psb_sspmat_type, psb_desc_type, psb_spk_, & & mld_sprec_type, psb_ipk_ class(mld_sprec_type), intent(inout) :: prec character(len=*), intent(in) :: what real(psb_spk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: ilev,ilmax + integer(psb_ipk_), optional, intent(in) :: ilev,ilmax,idx character(len=*), optional, intent(in) :: pos end subroutine mld_scprecsetr - subroutine mld_scprecsetc(prec,what,string,info,ilev,ilmax,pos) + subroutine mld_scprecsetc(prec,what,string,info,ilev,ilmax,pos,idx) import :: psb_sspmat_type, psb_desc_type, psb_spk_, & & mld_sprec_type, psb_ipk_ class(mld_sprec_type), intent(inout) :: prec character(len=*), intent(in) :: what character(len=*), intent(in) :: string integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: ilev,ilmax + integer(psb_ipk_), optional, intent(in) :: ilev,ilmax,idx character(len=*), optional, intent(in) :: pos end subroutine mld_scprecsetc end interface diff --git a/mlprec/mld_z_as_smoother.f90 b/mlprec/mld_z_as_smoother.f90 index 2da97762..63de5ba3 100644 --- a/mlprec/mld_z_as_smoother.f90 +++ b/mlprec/mld_z_as_smoother.f90 @@ -252,7 +252,7 @@ module mld_z_as_smoother end interface interface - subroutine mld_z_as_smoother_cseti(sm,what,val,info) + subroutine mld_z_as_smoother_cseti(sm,what,val,info,idx) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_dpk_, mld_z_as_smoother_type, psb_long_int_k_, psb_desc_type, psb_ipk_ implicit none @@ -260,11 +260,12 @@ module mld_z_as_smoother character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_z_as_smoother_cseti end interface interface - subroutine mld_z_as_smoother_csetc(sm,what,val,info) + subroutine mld_z_as_smoother_csetc(sm,what,val,info,idx) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_dpk_, mld_z_as_smoother_type, psb_long_int_k_, psb_desc_type, psb_ipk_ implicit none @@ -272,6 +273,7 @@ module mld_z_as_smoother character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_z_as_smoother_csetc end interface diff --git a/mlprec/mld_z_base_aggregator_mod.f90 b/mlprec/mld_z_base_aggregator_mod.f90 index 552a2ce0..017b1f36 100644 --- a/mlprec/mld_z_base_aggregator_mod.f90 +++ b/mlprec/mld_z_base_aggregator_mod.f90 @@ -114,7 +114,7 @@ module mld_z_base_aggregator_mod contains - subroutine mld_z_base_aggregator_cseti(ag,what,val,info) + subroutine mld_z_base_aggregator_cseti(ag,what,val,info,idx) Implicit None @@ -123,11 +123,12 @@ contains character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx ! Do nothing info = 0 end subroutine mld_z_base_aggregator_cseti - subroutine mld_z_base_aggregator_csetr(ag,what,val,info) + subroutine mld_z_base_aggregator_csetr(ag,what,val,info,idx) Implicit None @@ -136,11 +137,12 @@ contains character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx ! Do nothing info = 0 end subroutine mld_z_base_aggregator_csetr - subroutine mld_z_base_aggregator_csetc(ag,what,val,info) + subroutine mld_z_base_aggregator_csetc(ag,what,val,info,idx) Implicit None @@ -149,6 +151,7 @@ contains character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx ! Do nothing info = 0 end subroutine mld_z_base_aggregator_csetc diff --git a/mlprec/mld_z_base_smoother_mod.f90 b/mlprec/mld_z_base_smoother_mod.f90 index ca176c7a..97fdaf1b 100644 --- a/mlprec/mld_z_base_smoother_mod.f90 +++ b/mlprec/mld_z_base_smoother_mod.f90 @@ -186,7 +186,7 @@ module mld_z_base_smoother_mod end interface interface - subroutine mld_z_base_smoother_cseti(sm,what,val,info) + subroutine mld_z_base_smoother_cseti(sm,what,val,info,idx) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, & & mld_z_base_smoother_type, psb_ipk_ @@ -195,11 +195,12 @@ module mld_z_base_smoother_mod character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_z_base_smoother_cseti end interface interface - subroutine mld_z_base_smoother_csetc(sm,what,val,info) + subroutine mld_z_base_smoother_csetc(sm,what,val,info,idx) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, & & mld_z_base_smoother_type, psb_ipk_ @@ -207,11 +208,12 @@ module mld_z_base_smoother_mod character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_z_base_smoother_csetc end interface interface - subroutine mld_z_base_smoother_csetr(sm,what,val,info) + subroutine mld_z_base_smoother_csetr(sm,what,val,info,idx) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, & & mld_z_base_smoother_type, psb_ipk_ @@ -220,6 +222,7 @@ module mld_z_base_smoother_mod character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_z_base_smoother_csetr end interface diff --git a/mlprec/mld_z_base_solver_mod.f90 b/mlprec/mld_z_base_solver_mod.f90 index 79e58678..3a1bf16a 100644 --- a/mlprec/mld_z_base_solver_mod.f90 +++ b/mlprec/mld_z_base_solver_mod.f90 @@ -207,7 +207,7 @@ module mld_z_base_solver_mod end interface interface - subroutine mld_z_base_solver_cseti(sv,what,val,info) + subroutine mld_z_base_solver_cseti(sv,what,val,info,idx) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, & & mld_z_base_solver_type, psb_ipk_ @@ -218,11 +218,12 @@ module mld_z_base_solver_mod character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_z_base_solver_cseti end interface interface - subroutine mld_z_base_solver_csetc(sv,what,val,info) + subroutine mld_z_base_solver_csetc(sv,what,val,info,idx) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, & & mld_z_base_solver_type, psb_ipk_ @@ -233,11 +234,12 @@ module mld_z_base_solver_mod character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_z_base_solver_csetc end interface interface - subroutine mld_z_base_solver_csetr(sv,what,val,info) + subroutine mld_z_base_solver_csetr(sv,what,val,info,idx) import :: psb_desc_type, psb_zspmat_type, psb_z_base_sparse_mat, & & psb_z_vect_type, psb_z_base_vect_type, psb_dpk_, & & mld_z_base_solver_type, psb_ipk_ @@ -247,6 +249,7 @@ module mld_z_base_solver_mod character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_z_base_solver_csetr end interface diff --git a/mlprec/mld_z_gs_solver.f90 b/mlprec/mld_z_gs_solver.f90 index 79ee052d..31f09c84 100644 --- a/mlprec/mld_z_gs_solver.f90 +++ b/mlprec/mld_z_gs_solver.f90 @@ -287,7 +287,7 @@ contains end subroutine z_gs_solver_check - subroutine z_gs_solver_cseti(sv,what,val,info) + subroutine z_gs_solver_cseti(sv,what,val,info,idx) Implicit None @@ -296,6 +296,7 @@ contains character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='z_gs_solver_cseti' @@ -306,7 +307,7 @@ contains case('SOLVER_SWEEPS') sv%sweeps = val case default - call sv%mld_z_base_solver_type%set(what,val,info) + call sv%mld_z_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) @@ -316,7 +317,7 @@ contains return end subroutine z_gs_solver_cseti - subroutine z_gs_solver_csetc(sv,what,val,info) + subroutine z_gs_solver_csetc(sv,what,val,info,idx) Implicit None @@ -325,6 +326,7 @@ contains character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act, ival character(len=20) :: name='z_gs_solver_csetc' @@ -334,7 +336,7 @@ contains ival = sv%stringval(val) if (ival >= 0) then - call sv%set(what,ival,info) + call sv%set(what,ival,info,idx=idx) end if if (info /= psb_success_) then @@ -350,7 +352,7 @@ contains return end subroutine z_gs_solver_csetc - subroutine z_gs_solver_csetr(sv,what,val,info) + subroutine z_gs_solver_csetr(sv,what,val,info,idx) Implicit None @@ -359,6 +361,7 @@ contains character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='z_gs_solver_csetr' @@ -369,7 +372,7 @@ contains case('SOLVER_EPS') sv%eps = val case default - call sv%mld_z_base_solver_type%set(what,val,info) + call sv%mld_z_base_solver_type%set(what,val,info,idx=idx) end select diff --git a/mlprec/mld_z_ilu_solver.f90 b/mlprec/mld_z_ilu_solver.f90 index d1d9332f..398bcfee 100644 --- a/mlprec/mld_z_ilu_solver.f90 +++ b/mlprec/mld_z_ilu_solver.f90 @@ -247,7 +247,7 @@ contains end subroutine z_ilu_solver_check - subroutine z_ilu_solver_cseti(sv,what,val,info) + subroutine z_ilu_solver_cseti(sv,what,val,info,idx) Implicit None @@ -256,6 +256,7 @@ contains character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='z_ilu_solver_cseti' @@ -268,7 +269,7 @@ contains case('SUB_FILLIN') sv%fill_in = val case default - call sv%mld_z_base_solver_type%set(what,val,info) + call sv%mld_z_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) @@ -278,7 +279,7 @@ contains return end subroutine z_ilu_solver_cseti - subroutine z_ilu_solver_csetc(sv,what,val,info) + subroutine z_ilu_solver_csetc(sv,what,val,info,idx) Implicit None @@ -287,6 +288,7 @@ contains character(len=*), intent(in) :: what character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act, ival character(len=20) :: name='z_ilu_solver_csetc' @@ -296,7 +298,7 @@ contains ival = sv%stringval(val) if (ival >= 0) then - call sv%set(what,ival,info) + call sv%set(what,ival,info,idx=idx) end if if (info /= psb_success_) then @@ -312,7 +314,7 @@ contains return end subroutine z_ilu_solver_csetc - subroutine z_ilu_solver_csetr(sv,what,val,info) + subroutine z_ilu_solver_csetr(sv,what,val,info,idx) Implicit None @@ -321,6 +323,7 @@ contains character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='z_ilu_solver_csetr' @@ -331,7 +334,7 @@ contains case('SUB_ILUTHRS') sv%thresh = val case default - call sv%mld_z_base_solver_type%set(what,val,info) + call sv%mld_z_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) diff --git a/mlprec/mld_z_mumps_solver.F90 b/mlprec/mld_z_mumps_solver.F90 index 61699694..95a7115c 100644 --- a/mlprec/mld_z_mumps_solver.F90 +++ b/mlprec/mld_z_mumps_solver.F90 @@ -255,7 +255,7 @@ contains !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - subroutine z_mumps_solver_cseti(sv,what,val,info) + subroutine z_mumps_solver_cseti(sv,what,val,info,idx) Implicit None @@ -264,6 +264,7 @@ contains character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='z_mumps_solver_cseti' @@ -276,9 +277,13 @@ contains sv%ipar(1)=val case('MUMPS_PRINT_ERR') sv%ipar(2)=val + case('MUMPS_IPAR_ENTRY') + if(present(idx)) then + sv%ipar(idx)=val + end if #endif case default - call sv%mld_z_base_solver_type%set(what,val,info) + call sv%mld_z_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) @@ -293,7 +298,7 @@ contains return end subroutine z_mumps_solver_cseti - subroutine z_mumps_solver_csetr(sv,what,val,info) + subroutine z_mumps_solver_csetr(sv,what,val,info,idx) Implicit None @@ -302,6 +307,7 @@ contains character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info + integer(psb_ipk_), intent(in), optional :: idx integer(psb_ipk_) :: err_act character(len=20) :: name='z_mumps_solver_csetr' @@ -310,7 +316,7 @@ contains select case(psb_toupper(what)) case default - call sv%mld_z_base_solver_type%set(what,val,info) + call sv%mld_z_base_solver_type%set(what,val,info,idx=idx) end select call psb_erractionrestore(err_act) diff --git a/mlprec/mld_z_onelev_mod.f90 b/mlprec/mld_z_onelev_mod.f90 index 70dd6471..ceaa300e 100644 --- a/mlprec/mld_z_onelev_mod.f90 +++ b/mlprec/mld_z_onelev_mod.f90 @@ -313,7 +313,7 @@ module mld_z_onelev_mod end interface interface - subroutine mld_z_base_onelev_cseti(lv,what,val,info,pos) + subroutine mld_z_base_onelev_cseti(lv,what,val,info,pos,idx) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_zlinmap_type, psb_dpk_, mld_z_onelev_type, & & psb_ipk_, psb_long_int_k_, psb_desc_type @@ -325,11 +325,12 @@ module mld_z_onelev_mod integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_z_base_onelev_cseti end interface interface - subroutine mld_z_base_onelev_csetc(lv,what,val,info,pos) + subroutine mld_z_base_onelev_csetc(lv,what,val,info,pos,idx) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_zlinmap_type, psb_dpk_, mld_z_onelev_type, & & psb_ipk_, psb_long_int_k_, psb_desc_type @@ -340,11 +341,12 @@ module mld_z_onelev_mod character(len=*), intent(in) :: val integer(psb_ipk_), intent(out) :: info character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_z_base_onelev_csetc end interface interface - subroutine mld_z_base_onelev_csetr(lv,what,val,info,pos) + subroutine mld_z_base_onelev_csetr(lv,what,val,info,pos,idx) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_zlinmap_type, psb_dpk_, mld_z_onelev_type, & & psb_ipk_, psb_long_int_k_, psb_desc_type @@ -355,6 +357,7 @@ module mld_z_onelev_mod real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info character(len=*), optional, intent(in) :: pos + integer(psb_ipk_), intent(in), optional :: idx end subroutine mld_z_base_onelev_csetr end interface diff --git a/mlprec/mld_z_prec_type.f90 b/mlprec/mld_z_prec_type.f90 index ce1d0a81..db29b60b 100644 --- a/mlprec/mld_z_prec_type.f90 +++ b/mlprec/mld_z_prec_type.f90 @@ -241,34 +241,34 @@ module mld_z_prec_type integer(psb_ipk_), optional, intent(in) :: ilev character(len=*), optional, intent(in) :: pos end subroutine mld_zprecsetag - subroutine mld_zcprecseti(prec,what,val,info,ilev,ilmax,pos) + subroutine mld_zcprecseti(prec,what,val,info,ilev,ilmax,pos,idx) import :: psb_zspmat_type, psb_desc_type, psb_dpk_, & & mld_zprec_type, psb_ipk_ class(mld_zprec_type), intent(inout) :: prec character(len=*), intent(in) :: what integer(psb_ipk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: ilev,ilmax + integer(psb_ipk_), optional, intent(in) :: ilev,ilmax,idx character(len=*), optional, intent(in) :: pos end subroutine mld_zcprecseti - subroutine mld_zcprecsetr(prec,what,val,info,ilev,ilmax,pos) + subroutine mld_zcprecsetr(prec,what,val,info,ilev,ilmax,pos,idx) import :: psb_zspmat_type, psb_desc_type, psb_dpk_, & & mld_zprec_type, psb_ipk_ class(mld_zprec_type), intent(inout) :: prec character(len=*), intent(in) :: what real(psb_dpk_), intent(in) :: val integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: ilev,ilmax + integer(psb_ipk_), optional, intent(in) :: ilev,ilmax,idx character(len=*), optional, intent(in) :: pos end subroutine mld_zcprecsetr - subroutine mld_zcprecsetc(prec,what,string,info,ilev,ilmax,pos) + subroutine mld_zcprecsetc(prec,what,string,info,ilev,ilmax,pos,idx) import :: psb_zspmat_type, psb_desc_type, psb_dpk_, & & mld_zprec_type, psb_ipk_ class(mld_zprec_type), intent(inout) :: prec character(len=*), intent(in) :: what character(len=*), intent(in) :: string integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), optional, intent(in) :: ilev,ilmax + integer(psb_ipk_), optional, intent(in) :: ilev,ilmax,idx character(len=*), optional, intent(in) :: pos end subroutine mld_zcprecsetc end interface