From 2894a0944bea4032e6b6b3f6ddf09f4cfbea0c99 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Thu, 28 May 2020 17:50:37 +0200 Subject: [PATCH] Implement global_num for smoother%dmp. --- mlprec/impl/level/mld_c_base_onelev_dump.f90 | 8 ++--- mlprec/impl/level/mld_d_base_onelev_dump.f90 | 8 ++--- mlprec/impl/level/mld_s_base_onelev_dump.f90 | 8 ++--- mlprec/impl/level/mld_z_base_onelev_dump.f90 | 8 ++--- .../impl/smoother/mld_c_as_smoother_dmp.f90 | 22 +++++++++----- .../impl/smoother/mld_c_base_smoother_dmp.f90 | 18 ++++++++---- .../impl/smoother/mld_c_jac_smoother_dmp.f90 | 29 ++++++++++++++----- .../impl/smoother/mld_d_as_smoother_dmp.f90 | 22 +++++++++----- .../impl/smoother/mld_d_base_smoother_dmp.f90 | 18 ++++++++---- .../impl/smoother/mld_d_jac_smoother_dmp.f90 | 29 ++++++++++++++----- .../impl/smoother/mld_s_as_smoother_dmp.f90 | 22 +++++++++----- .../impl/smoother/mld_s_base_smoother_dmp.f90 | 18 ++++++++---- .../impl/smoother/mld_s_jac_smoother_dmp.f90 | 29 ++++++++++++++----- .../impl/smoother/mld_z_as_smoother_dmp.f90 | 22 +++++++++----- .../impl/smoother/mld_z_base_smoother_dmp.f90 | 18 ++++++++---- .../impl/smoother/mld_z_jac_smoother_dmp.f90 | 29 ++++++++++++++----- mlprec/mld_c_as_smoother.f90 | 6 ++-- mlprec/mld_c_base_smoother_mod.f90 | 6 ++-- mlprec/mld_c_jac_smoother.f90 | 6 ++-- mlprec/mld_d_as_smoother.f90 | 6 ++-- mlprec/mld_d_base_smoother_mod.f90 | 6 ++-- mlprec/mld_d_jac_smoother.f90 | 6 ++-- mlprec/mld_s_as_smoother.f90 | 6 ++-- mlprec/mld_s_base_smoother_mod.f90 | 6 ++-- mlprec/mld_s_jac_smoother.f90 | 6 ++-- mlprec/mld_z_as_smoother.f90 | 6 ++-- mlprec/mld_z_base_smoother_mod.f90 | 6 ++-- mlprec/mld_z_jac_smoother.f90 | 6 ++-- 28 files changed, 244 insertions(+), 136 deletions(-) diff --git a/mlprec/impl/level/mld_c_base_onelev_dump.f90 b/mlprec/impl/level/mld_c_base_onelev_dump.f90 index 0013ac36..30d3e7fe 100644 --- a/mlprec/impl/level/mld_c_base_onelev_dump.f90 +++ b/mlprec/impl/level/mld_c_base_onelev_dump.f90 @@ -147,12 +147,12 @@ subroutine mld_c_base_onelev_dump(lv,level,info,prefix,head,ac,rp,& end if if (allocated(lv%sm)) then - call lv%sm%dump(icontxt,level,info,smoother=smoother, & - & solver=solver,prefix=trim(prefix_)//"_sm") + call lv%sm%dump(lv%desc_ac,level,info,smoother=smoother, & + & solver=solver,prefix=trim(prefix_)//"_sm",global_num=global_num) end if if (allocated(lv%sm2a)) then - call lv%sm2a%dump(icontxt,level,info,smoother=smoother, & - & solver=solver,prefix=trim(prefix_)//"_sm2a") + call lv%sm2a%dump(lv%desc_ac,level,info,smoother=smoother, & + & solver=solver,prefix=trim(prefix_)//"_sm2a",global_num=global_num) end if end subroutine mld_c_base_onelev_dump diff --git a/mlprec/impl/level/mld_d_base_onelev_dump.f90 b/mlprec/impl/level/mld_d_base_onelev_dump.f90 index 8ec2fc6f..a49f5b6d 100644 --- a/mlprec/impl/level/mld_d_base_onelev_dump.f90 +++ b/mlprec/impl/level/mld_d_base_onelev_dump.f90 @@ -147,12 +147,12 @@ subroutine mld_d_base_onelev_dump(lv,level,info,prefix,head,ac,rp,& end if if (allocated(lv%sm)) then - call lv%sm%dump(icontxt,level,info,smoother=smoother, & - & solver=solver,prefix=trim(prefix_)//"_sm") + call lv%sm%dump(lv%desc_ac,level,info,smoother=smoother, & + & solver=solver,prefix=trim(prefix_)//"_sm",global_num=global_num) end if if (allocated(lv%sm2a)) then - call lv%sm2a%dump(icontxt,level,info,smoother=smoother, & - & solver=solver,prefix=trim(prefix_)//"_sm2a") + call lv%sm2a%dump(lv%desc_ac,level,info,smoother=smoother, & + & solver=solver,prefix=trim(prefix_)//"_sm2a",global_num=global_num) end if end subroutine mld_d_base_onelev_dump diff --git a/mlprec/impl/level/mld_s_base_onelev_dump.f90 b/mlprec/impl/level/mld_s_base_onelev_dump.f90 index 43b9e93e..36ef4341 100644 --- a/mlprec/impl/level/mld_s_base_onelev_dump.f90 +++ b/mlprec/impl/level/mld_s_base_onelev_dump.f90 @@ -147,12 +147,12 @@ subroutine mld_s_base_onelev_dump(lv,level,info,prefix,head,ac,rp,& end if if (allocated(lv%sm)) then - call lv%sm%dump(icontxt,level,info,smoother=smoother, & - & solver=solver,prefix=trim(prefix_)//"_sm") + call lv%sm%dump(lv%desc_ac,level,info,smoother=smoother, & + & solver=solver,prefix=trim(prefix_)//"_sm",global_num=global_num) end if if (allocated(lv%sm2a)) then - call lv%sm2a%dump(icontxt,level,info,smoother=smoother, & - & solver=solver,prefix=trim(prefix_)//"_sm2a") + call lv%sm2a%dump(lv%desc_ac,level,info,smoother=smoother, & + & solver=solver,prefix=trim(prefix_)//"_sm2a",global_num=global_num) end if end subroutine mld_s_base_onelev_dump diff --git a/mlprec/impl/level/mld_z_base_onelev_dump.f90 b/mlprec/impl/level/mld_z_base_onelev_dump.f90 index acde72f3..87c6bca1 100644 --- a/mlprec/impl/level/mld_z_base_onelev_dump.f90 +++ b/mlprec/impl/level/mld_z_base_onelev_dump.f90 @@ -147,12 +147,12 @@ subroutine mld_z_base_onelev_dump(lv,level,info,prefix,head,ac,rp,& end if if (allocated(lv%sm)) then - call lv%sm%dump(icontxt,level,info,smoother=smoother, & - & solver=solver,prefix=trim(prefix_)//"_sm") + call lv%sm%dump(lv%desc_ac,level,info,smoother=smoother, & + & solver=solver,prefix=trim(prefix_)//"_sm",global_num=global_num) end if if (allocated(lv%sm2a)) then - call lv%sm2a%dump(icontxt,level,info,smoother=smoother, & - & solver=solver,prefix=trim(prefix_)//"_sm2a") + call lv%sm2a%dump(lv%desc_ac,level,info,smoother=smoother, & + & solver=solver,prefix=trim(prefix_)//"_sm2a",global_num=global_num) end if end subroutine mld_z_base_onelev_dump diff --git a/mlprec/impl/smoother/mld_c_as_smoother_dmp.f90 b/mlprec/impl/smoother/mld_c_as_smoother_dmp.f90 index ada54775..5c662299 100644 --- a/mlprec/impl/smoother/mld_c_as_smoother_dmp.f90 +++ b/mlprec/impl/smoother/mld_c_as_smoother_dmp.f90 @@ -35,21 +35,22 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_c_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) +subroutine mld_c_as_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) use psb_base_mod use mld_c_as_smoother, mld_protect_nam => mld_c_as_smoother_dmp implicit none class(mld_c_as_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt,level + type(psb_desc_type), intent(in) :: desc + integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: icontxt,iam, np + integer(psb_ipk_) :: ictxt,iam, np character(len=80) :: prefix_ character(len=120) :: fname ! len should be at least 20 more than - logical :: smoother_ + logical :: smoother_, global_num_ ! len of prefix_ info = 0 @@ -59,7 +60,7 @@ subroutine mld_c_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver else prefix_ = "dump_smth_c" end if - + ictxt = desc%get_context() call psb_info(ictxt,iam,np) if (present(smoother)) then @@ -67,11 +68,18 @@ subroutine mld_c_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver else smoother_ = .false. end if + if (present(global_num)) then + global_num_ = global_num + else + global_num_ = .false. + end if lname = len_trim(prefix_) fname = trim(prefix_) write(fname(lname+1:lname+5),'(a,i3.3)') '_p',iam lname = lname + 5 - + if (global_num_) then + write(0,*) iam,' Warning: no global num with AS smoothers dump' + end if if (smoother_) then write(fname(lname+1:),'(a,i3.3,a)')'_l',level,'_nd.mtx' if (sm%nd%is_asb()) & diff --git a/mlprec/impl/smoother/mld_c_base_smoother_dmp.f90 b/mlprec/impl/smoother/mld_c_base_smoother_dmp.f90 index 5ab50a52..9ef2a05e 100644 --- a/mlprec/impl/smoother/mld_c_base_smoother_dmp.f90 +++ b/mlprec/impl/smoother/mld_c_base_smoother_dmp.f90 @@ -35,21 +35,22 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_c_base_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) +subroutine mld_c_base_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) use psb_base_mod use mld_c_base_smoother_mod, mld_protect_name => mld_c_base_smoother_dmp implicit none class(mld_c_base_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt,level + type(psb_desc_type), intent(in) :: desc + integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: icontxt,iam, np + integer(psb_ipk_) :: ictxt,iam, np character(len=80) :: prefix_ character(len=120) :: fname ! len should be at least 20 more than - logical :: smoother_ + logical :: smoother_, global_num_ ! len of prefix_ info = 0 @@ -59,9 +60,14 @@ subroutine mld_c_base_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solv else prefix_ = "dump_smth_c" end if - + ictxt = desc%get_context() call psb_info(ictxt,iam,np) + if (present(global_num)) then + global_num_ = global_num + else + global_num_ = .false. + end if if (present(smoother)) then smoother_ = smoother else diff --git a/mlprec/impl/smoother/mld_c_jac_smoother_dmp.f90 b/mlprec/impl/smoother/mld_c_jac_smoother_dmp.f90 index bfa05ed4..6581e740 100644 --- a/mlprec/impl/smoother/mld_c_jac_smoother_dmp.f90 +++ b/mlprec/impl/smoother/mld_c_jac_smoother_dmp.f90 @@ -35,21 +35,23 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_c_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) +subroutine mld_c_jac_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) use psb_base_mod use mld_c_jac_smoother, mld_protect_nam => mld_c_jac_smoother_dmp implicit none class(mld_c_jac_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt,level + type(psb_desc_type), intent(in) :: desc + integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: icontxt,iam, np + integer(psb_ipk_) :: ictxt,iam, np character(len=80) :: prefix_ character(len=120) :: fname ! len should be at least 20 more than - logical :: smoother_ + integer(psb_lpk_), allocatable :: iv(:) + logical :: smoother_, global_num_ ! len of prefix_ info = 0 @@ -59,7 +61,7 @@ subroutine mld_c_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solve else prefix_ = "dump_smth_c" end if - + ictxt = desc%get_context() call psb_info(ictxt,iam,np) if (present(smoother)) then @@ -67,6 +69,11 @@ subroutine mld_c_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solve else smoother_ = .false. end if + if (present(global_num)) then + global_num_ = global_num + else + global_num_ = .false. + end if lname = len_trim(prefix_) fname = trim(prefix_) write(fname(lname+1:lname+5),'(a,i3.3)') '_p',iam @@ -74,8 +81,14 @@ subroutine mld_c_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solve if (smoother_) then write(fname(lname+1:),'(a,i3.3,a)')'_l',level,'_nd.mtx' - if (sm%nd%is_asb()) & - & call sm%nd%print(fname,head=head) + if (global_num_) then + iv = desc%get_global_indices(owned=.false.) + if (sm%nd%is_asb()) & + & call sm%nd%print(fname,head=head,iv=iv) + else + if (sm%nd%is_asb()) & + & call sm%nd%print(fname,head=head) + end if end if ! At base level do nothing for the smoother if (allocated(sm%sv)) & diff --git a/mlprec/impl/smoother/mld_d_as_smoother_dmp.f90 b/mlprec/impl/smoother/mld_d_as_smoother_dmp.f90 index 5929b06d..f274a93a 100644 --- a/mlprec/impl/smoother/mld_d_as_smoother_dmp.f90 +++ b/mlprec/impl/smoother/mld_d_as_smoother_dmp.f90 @@ -35,21 +35,22 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_d_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) +subroutine mld_d_as_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) use psb_base_mod use mld_d_as_smoother, mld_protect_nam => mld_d_as_smoother_dmp implicit none class(mld_d_as_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt,level + type(psb_desc_type), intent(in) :: desc + integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: icontxt,iam, np + integer(psb_ipk_) :: ictxt,iam, np character(len=80) :: prefix_ character(len=120) :: fname ! len should be at least 20 more than - logical :: smoother_ + logical :: smoother_, global_num_ ! len of prefix_ info = 0 @@ -59,7 +60,7 @@ subroutine mld_d_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver else prefix_ = "dump_smth_d" end if - + ictxt = desc%get_context() call psb_info(ictxt,iam,np) if (present(smoother)) then @@ -67,11 +68,18 @@ subroutine mld_d_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver else smoother_ = .false. end if + if (present(global_num)) then + global_num_ = global_num + else + global_num_ = .false. + end if lname = len_trim(prefix_) fname = trim(prefix_) write(fname(lname+1:lname+5),'(a,i3.3)') '_p',iam lname = lname + 5 - + if (global_num_) then + write(0,*) iam,' Warning: no global num with AS smoothers dump' + end if if (smoother_) then write(fname(lname+1:),'(a,i3.3,a)')'_l',level,'_nd.mtx' if (sm%nd%is_asb()) & diff --git a/mlprec/impl/smoother/mld_d_base_smoother_dmp.f90 b/mlprec/impl/smoother/mld_d_base_smoother_dmp.f90 index 900a91ed..e8db6ea9 100644 --- a/mlprec/impl/smoother/mld_d_base_smoother_dmp.f90 +++ b/mlprec/impl/smoother/mld_d_base_smoother_dmp.f90 @@ -35,21 +35,22 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_d_base_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) +subroutine mld_d_base_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) use psb_base_mod use mld_d_base_smoother_mod, mld_protect_name => mld_d_base_smoother_dmp implicit none class(mld_d_base_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt,level + type(psb_desc_type), intent(in) :: desc + integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: icontxt,iam, np + integer(psb_ipk_) :: ictxt,iam, np character(len=80) :: prefix_ character(len=120) :: fname ! len should be at least 20 more than - logical :: smoother_ + logical :: smoother_, global_num_ ! len of prefix_ info = 0 @@ -59,9 +60,14 @@ subroutine mld_d_base_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solv else prefix_ = "dump_smth_d" end if - + ictxt = desc%get_context() call psb_info(ictxt,iam,np) + if (present(global_num)) then + global_num_ = global_num + else + global_num_ = .false. + end if if (present(smoother)) then smoother_ = smoother else diff --git a/mlprec/impl/smoother/mld_d_jac_smoother_dmp.f90 b/mlprec/impl/smoother/mld_d_jac_smoother_dmp.f90 index 811cee25..3ce48469 100644 --- a/mlprec/impl/smoother/mld_d_jac_smoother_dmp.f90 +++ b/mlprec/impl/smoother/mld_d_jac_smoother_dmp.f90 @@ -35,21 +35,23 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_d_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) +subroutine mld_d_jac_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) use psb_base_mod use mld_d_jac_smoother, mld_protect_nam => mld_d_jac_smoother_dmp implicit none class(mld_d_jac_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt,level + type(psb_desc_type), intent(in) :: desc + integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: icontxt,iam, np + integer(psb_ipk_) :: ictxt,iam, np character(len=80) :: prefix_ character(len=120) :: fname ! len should be at least 20 more than - logical :: smoother_ + integer(psb_lpk_), allocatable :: iv(:) + logical :: smoother_, global_num_ ! len of prefix_ info = 0 @@ -59,7 +61,7 @@ subroutine mld_d_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solve else prefix_ = "dump_smth_d" end if - + ictxt = desc%get_context() call psb_info(ictxt,iam,np) if (present(smoother)) then @@ -67,6 +69,11 @@ subroutine mld_d_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solve else smoother_ = .false. end if + if (present(global_num)) then + global_num_ = global_num + else + global_num_ = .false. + end if lname = len_trim(prefix_) fname = trim(prefix_) write(fname(lname+1:lname+5),'(a,i3.3)') '_p',iam @@ -74,8 +81,14 @@ subroutine mld_d_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solve if (smoother_) then write(fname(lname+1:),'(a,i3.3,a)')'_l',level,'_nd.mtx' - if (sm%nd%is_asb()) & - & call sm%nd%print(fname,head=head) + if (global_num_) then + iv = desc%get_global_indices(owned=.false.) + if (sm%nd%is_asb()) & + & call sm%nd%print(fname,head=head,iv=iv) + else + if (sm%nd%is_asb()) & + & call sm%nd%print(fname,head=head) + end if end if ! At base level do nothing for the smoother if (allocated(sm%sv)) & diff --git a/mlprec/impl/smoother/mld_s_as_smoother_dmp.f90 b/mlprec/impl/smoother/mld_s_as_smoother_dmp.f90 index f35859b7..15d7a322 100644 --- a/mlprec/impl/smoother/mld_s_as_smoother_dmp.f90 +++ b/mlprec/impl/smoother/mld_s_as_smoother_dmp.f90 @@ -35,21 +35,22 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_s_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) +subroutine mld_s_as_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) use psb_base_mod use mld_s_as_smoother, mld_protect_nam => mld_s_as_smoother_dmp implicit none class(mld_s_as_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt,level + type(psb_desc_type), intent(in) :: desc + integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: icontxt,iam, np + integer(psb_ipk_) :: ictxt,iam, np character(len=80) :: prefix_ character(len=120) :: fname ! len should be at least 20 more than - logical :: smoother_ + logical :: smoother_, global_num_ ! len of prefix_ info = 0 @@ -59,7 +60,7 @@ subroutine mld_s_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver else prefix_ = "dump_smth_s" end if - + ictxt = desc%get_context() call psb_info(ictxt,iam,np) if (present(smoother)) then @@ -67,11 +68,18 @@ subroutine mld_s_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver else smoother_ = .false. end if + if (present(global_num)) then + global_num_ = global_num + else + global_num_ = .false. + end if lname = len_trim(prefix_) fname = trim(prefix_) write(fname(lname+1:lname+5),'(a,i3.3)') '_p',iam lname = lname + 5 - + if (global_num_) then + write(0,*) iam,' Warning: no global num with AS smoothers dump' + end if if (smoother_) then write(fname(lname+1:),'(a,i3.3,a)')'_l',level,'_nd.mtx' if (sm%nd%is_asb()) & diff --git a/mlprec/impl/smoother/mld_s_base_smoother_dmp.f90 b/mlprec/impl/smoother/mld_s_base_smoother_dmp.f90 index a9fcf074..34ff44cd 100644 --- a/mlprec/impl/smoother/mld_s_base_smoother_dmp.f90 +++ b/mlprec/impl/smoother/mld_s_base_smoother_dmp.f90 @@ -35,21 +35,22 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_s_base_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) +subroutine mld_s_base_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) use psb_base_mod use mld_s_base_smoother_mod, mld_protect_name => mld_s_base_smoother_dmp implicit none class(mld_s_base_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt,level + type(psb_desc_type), intent(in) :: desc + integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: icontxt,iam, np + integer(psb_ipk_) :: ictxt,iam, np character(len=80) :: prefix_ character(len=120) :: fname ! len should be at least 20 more than - logical :: smoother_ + logical :: smoother_, global_num_ ! len of prefix_ info = 0 @@ -59,9 +60,14 @@ subroutine mld_s_base_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solv else prefix_ = "dump_smth_s" end if - + ictxt = desc%get_context() call psb_info(ictxt,iam,np) + if (present(global_num)) then + global_num_ = global_num + else + global_num_ = .false. + end if if (present(smoother)) then smoother_ = smoother else diff --git a/mlprec/impl/smoother/mld_s_jac_smoother_dmp.f90 b/mlprec/impl/smoother/mld_s_jac_smoother_dmp.f90 index e1c14975..cafe8bd9 100644 --- a/mlprec/impl/smoother/mld_s_jac_smoother_dmp.f90 +++ b/mlprec/impl/smoother/mld_s_jac_smoother_dmp.f90 @@ -35,21 +35,23 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_s_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) +subroutine mld_s_jac_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) use psb_base_mod use mld_s_jac_smoother, mld_protect_nam => mld_s_jac_smoother_dmp implicit none class(mld_s_jac_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt,level + type(psb_desc_type), intent(in) :: desc + integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: icontxt,iam, np + integer(psb_ipk_) :: ictxt,iam, np character(len=80) :: prefix_ character(len=120) :: fname ! len should be at least 20 more than - logical :: smoother_ + integer(psb_lpk_), allocatable :: iv(:) + logical :: smoother_, global_num_ ! len of prefix_ info = 0 @@ -59,7 +61,7 @@ subroutine mld_s_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solve else prefix_ = "dump_smth_s" end if - + ictxt = desc%get_context() call psb_info(ictxt,iam,np) if (present(smoother)) then @@ -67,6 +69,11 @@ subroutine mld_s_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solve else smoother_ = .false. end if + if (present(global_num)) then + global_num_ = global_num + else + global_num_ = .false. + end if lname = len_trim(prefix_) fname = trim(prefix_) write(fname(lname+1:lname+5),'(a,i3.3)') '_p',iam @@ -74,8 +81,14 @@ subroutine mld_s_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solve if (smoother_) then write(fname(lname+1:),'(a,i3.3,a)')'_l',level,'_nd.mtx' - if (sm%nd%is_asb()) & - & call sm%nd%print(fname,head=head) + if (global_num_) then + iv = desc%get_global_indices(owned=.false.) + if (sm%nd%is_asb()) & + & call sm%nd%print(fname,head=head,iv=iv) + else + if (sm%nd%is_asb()) & + & call sm%nd%print(fname,head=head) + end if end if ! At base level do nothing for the smoother if (allocated(sm%sv)) & diff --git a/mlprec/impl/smoother/mld_z_as_smoother_dmp.f90 b/mlprec/impl/smoother/mld_z_as_smoother_dmp.f90 index ecf10467..fd13cba6 100644 --- a/mlprec/impl/smoother/mld_z_as_smoother_dmp.f90 +++ b/mlprec/impl/smoother/mld_z_as_smoother_dmp.f90 @@ -35,21 +35,22 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_z_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) +subroutine mld_z_as_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) use psb_base_mod use mld_z_as_smoother, mld_protect_nam => mld_z_as_smoother_dmp implicit none class(mld_z_as_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt,level + type(psb_desc_type), intent(in) :: desc + integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: icontxt,iam, np + integer(psb_ipk_) :: ictxt,iam, np character(len=80) :: prefix_ character(len=120) :: fname ! len should be at least 20 more than - logical :: smoother_ + logical :: smoother_, global_num_ ! len of prefix_ info = 0 @@ -59,7 +60,7 @@ subroutine mld_z_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver else prefix_ = "dump_smth_z" end if - + ictxt = desc%get_context() call psb_info(ictxt,iam,np) if (present(smoother)) then @@ -67,11 +68,18 @@ subroutine mld_z_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver else smoother_ = .false. end if + if (present(global_num)) then + global_num_ = global_num + else + global_num_ = .false. + end if lname = len_trim(prefix_) fname = trim(prefix_) write(fname(lname+1:lname+5),'(a,i3.3)') '_p',iam lname = lname + 5 - + if (global_num_) then + write(0,*) iam,' Warning: no global num with AS smoothers dump' + end if if (smoother_) then write(fname(lname+1:),'(a,i3.3,a)')'_l',level,'_nd.mtx' if (sm%nd%is_asb()) & diff --git a/mlprec/impl/smoother/mld_z_base_smoother_dmp.f90 b/mlprec/impl/smoother/mld_z_base_smoother_dmp.f90 index 27f83a56..f96c17d8 100644 --- a/mlprec/impl/smoother/mld_z_base_smoother_dmp.f90 +++ b/mlprec/impl/smoother/mld_z_base_smoother_dmp.f90 @@ -35,21 +35,22 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_z_base_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) +subroutine mld_z_base_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) use psb_base_mod use mld_z_base_smoother_mod, mld_protect_name => mld_z_base_smoother_dmp implicit none class(mld_z_base_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt,level + type(psb_desc_type), intent(in) :: desc + integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: icontxt,iam, np + integer(psb_ipk_) :: ictxt,iam, np character(len=80) :: prefix_ character(len=120) :: fname ! len should be at least 20 more than - logical :: smoother_ + logical :: smoother_, global_num_ ! len of prefix_ info = 0 @@ -59,9 +60,14 @@ subroutine mld_z_base_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solv else prefix_ = "dump_smth_z" end if - + ictxt = desc%get_context() call psb_info(ictxt,iam,np) + if (present(global_num)) then + global_num_ = global_num + else + global_num_ = .false. + end if if (present(smoother)) then smoother_ = smoother else diff --git a/mlprec/impl/smoother/mld_z_jac_smoother_dmp.f90 b/mlprec/impl/smoother/mld_z_jac_smoother_dmp.f90 index 1c4f3f24..39d0a5be 100644 --- a/mlprec/impl/smoother/mld_z_jac_smoother_dmp.f90 +++ b/mlprec/impl/smoother/mld_z_jac_smoother_dmp.f90 @@ -35,21 +35,23 @@ ! POSSIBILITY OF SUCH DAMAGE. ! ! -subroutine mld_z_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) +subroutine mld_z_jac_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) use psb_base_mod use mld_z_jac_smoother, mld_protect_nam => mld_z_jac_smoother_dmp implicit none class(mld_z_jac_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt,level + type(psb_desc_type), intent(in) :: desc + integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num integer(psb_ipk_) :: i, j, il1, iln, lname, lev - integer(psb_ipk_) :: icontxt,iam, np + integer(psb_ipk_) :: ictxt,iam, np character(len=80) :: prefix_ character(len=120) :: fname ! len should be at least 20 more than - logical :: smoother_ + integer(psb_lpk_), allocatable :: iv(:) + logical :: smoother_, global_num_ ! len of prefix_ info = 0 @@ -59,7 +61,7 @@ subroutine mld_z_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solve else prefix_ = "dump_smth_z" end if - + ictxt = desc%get_context() call psb_info(ictxt,iam,np) if (present(smoother)) then @@ -67,6 +69,11 @@ subroutine mld_z_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solve else smoother_ = .false. end if + if (present(global_num)) then + global_num_ = global_num + else + global_num_ = .false. + end if lname = len_trim(prefix_) fname = trim(prefix_) write(fname(lname+1:lname+5),'(a,i3.3)') '_p',iam @@ -74,8 +81,14 @@ subroutine mld_z_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solve if (smoother_) then write(fname(lname+1:),'(a,i3.3,a)')'_l',level,'_nd.mtx' - if (sm%nd%is_asb()) & - & call sm%nd%print(fname,head=head) + if (global_num_) then + iv = desc%get_global_indices(owned=.false.) + if (sm%nd%is_asb()) & + & call sm%nd%print(fname,head=head,iv=iv) + else + if (sm%nd%is_asb()) & + & call sm%nd%print(fname,head=head) + end if end if ! At base level do nothing for the smoother if (allocated(sm%sv)) & diff --git a/mlprec/mld_c_as_smoother.f90 b/mlprec/mld_c_as_smoother.f90 index dd7bec53..017e1520 100644 --- a/mlprec/mld_c_as_smoother.f90 +++ b/mlprec/mld_c_as_smoother.f90 @@ -291,17 +291,17 @@ module mld_c_as_smoother end interface interface - subroutine mld_c_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) + subroutine mld_c_as_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_spk_, mld_c_as_smoother_type, psb_epk_, psb_desc_type, & & psb_ipk_ implicit none class(mld_c_as_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt + type(psb_desc_type), intent(in) :: desc integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num end subroutine mld_c_as_smoother_dmp end interface diff --git a/mlprec/mld_c_base_smoother_mod.f90 b/mlprec/mld_c_base_smoother_mod.f90 index 0a80f1b9..b7c8cd0a 100644 --- a/mlprec/mld_c_base_smoother_mod.f90 +++ b/mlprec/mld_c_base_smoother_mod.f90 @@ -285,16 +285,16 @@ module mld_c_base_smoother_mod end interface interface - subroutine mld_c_base_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) + subroutine mld_c_base_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) 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_ class(mld_c_base_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt + type(psb_desc_type), intent(in) :: desc integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num end subroutine mld_c_base_smoother_dmp end interface diff --git a/mlprec/mld_c_jac_smoother.f90 b/mlprec/mld_c_jac_smoother.f90 index df30aed0..c9303889 100644 --- a/mlprec/mld_c_jac_smoother.f90 +++ b/mlprec/mld_c_jac_smoother.f90 @@ -175,17 +175,17 @@ module mld_c_jac_smoother end interface interface - subroutine mld_c_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) + subroutine mld_c_jac_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) import :: psb_cspmat_type, psb_c_vect_type, psb_c_base_vect_type, & & psb_spk_, mld_c_jac_smoother_type, psb_epk_, psb_desc_type, & & psb_ipk_ implicit none class(mld_c_jac_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt + type(psb_desc_type), intent(in) :: desc integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num end subroutine mld_c_jac_smoother_dmp end interface diff --git a/mlprec/mld_d_as_smoother.f90 b/mlprec/mld_d_as_smoother.f90 index c544b3c5..a560706a 100644 --- a/mlprec/mld_d_as_smoother.f90 +++ b/mlprec/mld_d_as_smoother.f90 @@ -291,17 +291,17 @@ module mld_d_as_smoother end interface interface - subroutine mld_d_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) + subroutine mld_d_as_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dpk_, mld_d_as_smoother_type, psb_epk_, psb_desc_type, & & psb_ipk_ implicit none class(mld_d_as_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt + type(psb_desc_type), intent(in) :: desc integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num end subroutine mld_d_as_smoother_dmp end interface diff --git a/mlprec/mld_d_base_smoother_mod.f90 b/mlprec/mld_d_base_smoother_mod.f90 index 755a982d..1db243a2 100644 --- a/mlprec/mld_d_base_smoother_mod.f90 +++ b/mlprec/mld_d_base_smoother_mod.f90 @@ -285,16 +285,16 @@ module mld_d_base_smoother_mod end interface interface - subroutine mld_d_base_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) + subroutine mld_d_base_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) 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_ class(mld_d_base_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt + type(psb_desc_type), intent(in) :: desc integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num end subroutine mld_d_base_smoother_dmp end interface diff --git a/mlprec/mld_d_jac_smoother.f90 b/mlprec/mld_d_jac_smoother.f90 index a312333f..25bbed4b 100644 --- a/mlprec/mld_d_jac_smoother.f90 +++ b/mlprec/mld_d_jac_smoother.f90 @@ -175,17 +175,17 @@ module mld_d_jac_smoother end interface interface - subroutine mld_d_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) + subroutine mld_d_jac_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) import :: psb_dspmat_type, psb_d_vect_type, psb_d_base_vect_type, & & psb_dpk_, mld_d_jac_smoother_type, psb_epk_, psb_desc_type, & & psb_ipk_ implicit none class(mld_d_jac_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt + type(psb_desc_type), intent(in) :: desc integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num end subroutine mld_d_jac_smoother_dmp end interface diff --git a/mlprec/mld_s_as_smoother.f90 b/mlprec/mld_s_as_smoother.f90 index 0165f6bb..318cb72d 100644 --- a/mlprec/mld_s_as_smoother.f90 +++ b/mlprec/mld_s_as_smoother.f90 @@ -291,17 +291,17 @@ module mld_s_as_smoother end interface interface - subroutine mld_s_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) + subroutine mld_s_as_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_spk_, mld_s_as_smoother_type, psb_epk_, psb_desc_type, & & psb_ipk_ implicit none class(mld_s_as_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt + type(psb_desc_type), intent(in) :: desc integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num end subroutine mld_s_as_smoother_dmp end interface diff --git a/mlprec/mld_s_base_smoother_mod.f90 b/mlprec/mld_s_base_smoother_mod.f90 index 9d5e7b67..9bef3fcf 100644 --- a/mlprec/mld_s_base_smoother_mod.f90 +++ b/mlprec/mld_s_base_smoother_mod.f90 @@ -285,16 +285,16 @@ module mld_s_base_smoother_mod end interface interface - subroutine mld_s_base_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) + subroutine mld_s_base_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) 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_ class(mld_s_base_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt + type(psb_desc_type), intent(in) :: desc integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num end subroutine mld_s_base_smoother_dmp end interface diff --git a/mlprec/mld_s_jac_smoother.f90 b/mlprec/mld_s_jac_smoother.f90 index 278f997d..cbe6fead 100644 --- a/mlprec/mld_s_jac_smoother.f90 +++ b/mlprec/mld_s_jac_smoother.f90 @@ -175,17 +175,17 @@ module mld_s_jac_smoother end interface interface - subroutine mld_s_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) + subroutine mld_s_jac_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) import :: psb_sspmat_type, psb_s_vect_type, psb_s_base_vect_type, & & psb_spk_, mld_s_jac_smoother_type, psb_epk_, psb_desc_type, & & psb_ipk_ implicit none class(mld_s_jac_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt + type(psb_desc_type), intent(in) :: desc integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num end subroutine mld_s_jac_smoother_dmp end interface diff --git a/mlprec/mld_z_as_smoother.f90 b/mlprec/mld_z_as_smoother.f90 index d2e7b8b1..146dcb9e 100644 --- a/mlprec/mld_z_as_smoother.f90 +++ b/mlprec/mld_z_as_smoother.f90 @@ -291,17 +291,17 @@ module mld_z_as_smoother end interface interface - subroutine mld_z_as_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) + subroutine mld_z_as_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_dpk_, mld_z_as_smoother_type, psb_epk_, psb_desc_type, & & psb_ipk_ implicit none class(mld_z_as_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt + type(psb_desc_type), intent(in) :: desc integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num end subroutine mld_z_as_smoother_dmp end interface diff --git a/mlprec/mld_z_base_smoother_mod.f90 b/mlprec/mld_z_base_smoother_mod.f90 index 4d61e26d..867664ba 100644 --- a/mlprec/mld_z_base_smoother_mod.f90 +++ b/mlprec/mld_z_base_smoother_mod.f90 @@ -285,16 +285,16 @@ module mld_z_base_smoother_mod end interface interface - subroutine mld_z_base_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) + subroutine mld_z_base_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) 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_ class(mld_z_base_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt + type(psb_desc_type), intent(in) :: desc integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num end subroutine mld_z_base_smoother_dmp end interface diff --git a/mlprec/mld_z_jac_smoother.f90 b/mlprec/mld_z_jac_smoother.f90 index f9eeda76..628636b7 100644 --- a/mlprec/mld_z_jac_smoother.f90 +++ b/mlprec/mld_z_jac_smoother.f90 @@ -175,17 +175,17 @@ module mld_z_jac_smoother end interface interface - subroutine mld_z_jac_smoother_dmp(sm,ictxt,level,info,prefix,head,smoother,solver) + subroutine mld_z_jac_smoother_dmp(sm,desc,level,info,prefix,head,smoother,solver,global_num) import :: psb_zspmat_type, psb_z_vect_type, psb_z_base_vect_type, & & psb_dpk_, mld_z_jac_smoother_type, psb_epk_, psb_desc_type, & & psb_ipk_ implicit none class(mld_z_jac_smoother_type), intent(in) :: sm - integer(psb_ipk_), intent(in) :: ictxt + type(psb_desc_type), intent(in) :: desc integer(psb_ipk_), intent(in) :: level integer(psb_ipk_), intent(out) :: info character(len=*), intent(in), optional :: prefix, head - logical, optional, intent(in) :: smoother, solver + logical, optional, intent(in) :: smoother, solver, global_num end subroutine mld_z_jac_smoother_dmp end interface