diff --git a/base/modules/tools/psb_c_tools_mod.F90 b/base/modules/tools/psb_c_tools_mod.F90 index dc41128d..b698b099 100644 --- a/base/modules/tools/psb_c_tools_mod.F90 +++ b/base/modules/tools/psb_c_tools_mod.F90 @@ -432,7 +432,8 @@ Module psb_c_tools_mod end interface interface psb_remap - subroutine psb_c_remap(np_remap, desc_in, a_in, desc_out, isrc, nrsrc, a_out, info) + subroutine psb_c_remap(np_remap, desc_in, a_in, desc_out, & + & ipd, isrc, nrsrc, a_out, info) import implicit none !....parameters... @@ -441,6 +442,7 @@ Module psb_c_tools_mod type(psb_cspmat_type), intent(inout) :: a_in type(psb_cspmat_type), intent(out) :: a_out type(psb_desc_type), intent(out) :: desc_out + integer(psb_ipk_), intent(out) :: ipd integer(psb_ipk_), allocatable, intent(out) :: isrc(:), nrsrc(:) integer(psb_ipk_), intent(out) :: info end subroutine psb_c_remap diff --git a/base/modules/tools/psb_d_tools_mod.F90 b/base/modules/tools/psb_d_tools_mod.F90 index 4d262cf4..d462416b 100644 --- a/base/modules/tools/psb_d_tools_mod.F90 +++ b/base/modules/tools/psb_d_tools_mod.F90 @@ -432,7 +432,8 @@ Module psb_d_tools_mod end interface interface psb_remap - subroutine psb_d_remap(np_remap, desc_in, a_in, desc_out, isrc, nrsrc, a_out, info) + subroutine psb_d_remap(np_remap, desc_in, a_in, desc_out, & + & ipd, isrc, nrsrc, a_out, info) import implicit none !....parameters... @@ -441,6 +442,7 @@ Module psb_d_tools_mod type(psb_dspmat_type), intent(inout) :: a_in type(psb_dspmat_type), intent(out) :: a_out type(psb_desc_type), intent(out) :: desc_out + integer(psb_ipk_), intent(out) :: ipd integer(psb_ipk_), allocatable, intent(out) :: isrc(:), nrsrc(:) integer(psb_ipk_), intent(out) :: info end subroutine psb_d_remap diff --git a/base/modules/tools/psb_s_tools_mod.F90 b/base/modules/tools/psb_s_tools_mod.F90 index 969df083..40173a60 100644 --- a/base/modules/tools/psb_s_tools_mod.F90 +++ b/base/modules/tools/psb_s_tools_mod.F90 @@ -432,7 +432,8 @@ Module psb_s_tools_mod end interface interface psb_remap - subroutine psb_s_remap(np_remap, desc_in, a_in, desc_out, isrc, nrsrc, a_out, info) + subroutine psb_s_remap(np_remap, desc_in, a_in, desc_out, & + & ipd, isrc, nrsrc, a_out, info) import implicit none !....parameters... @@ -441,6 +442,7 @@ Module psb_s_tools_mod type(psb_sspmat_type), intent(inout) :: a_in type(psb_sspmat_type), intent(out) :: a_out type(psb_desc_type), intent(out) :: desc_out + integer(psb_ipk_), intent(out) :: ipd integer(psb_ipk_), allocatable, intent(out) :: isrc(:), nrsrc(:) integer(psb_ipk_), intent(out) :: info end subroutine psb_s_remap diff --git a/base/modules/tools/psb_z_tools_mod.F90 b/base/modules/tools/psb_z_tools_mod.F90 index 2a28fc04..c5207690 100644 --- a/base/modules/tools/psb_z_tools_mod.F90 +++ b/base/modules/tools/psb_z_tools_mod.F90 @@ -432,7 +432,8 @@ Module psb_z_tools_mod end interface interface psb_remap - subroutine psb_z_remap(np_remap, desc_in, a_in, desc_out, isrc, nrsrc, a_out, info) + subroutine psb_z_remap(np_remap, desc_in, a_in, desc_out, & + & ipd, isrc, nrsrc, a_out, info) import implicit none !....parameters... @@ -441,6 +442,7 @@ Module psb_z_tools_mod type(psb_zspmat_type), intent(inout) :: a_in type(psb_zspmat_type), intent(out) :: a_out type(psb_desc_type), intent(out) :: desc_out + integer(psb_ipk_), intent(out) :: ipd integer(psb_ipk_), allocatable, intent(out) :: isrc(:), nrsrc(:) integer(psb_ipk_), intent(out) :: info end subroutine psb_z_remap diff --git a/base/tools/psb_c_remap.F90 b/base/tools/psb_c_remap.F90 index 5b0bfc82..22bb6ca9 100644 --- a/base/tools/psb_c_remap.F90 +++ b/base/tools/psb_c_remap.F90 @@ -36,7 +36,7 @@ ! desc_in - type(psb_desc_type). The communication descriptor to be cloned. ! desc_out - type(psb_desc_type). The output communication descriptor. ! info - integer. Return code. -subroutine psb_c_remap(np_remap, desc_in, a_in, desc_out, isrc, nrsrc, a_out, info) +subroutine psb_c_remap(np_remap, desc_in, a_in, desc_out, ipd, isrc, nrsrc, a_out, info) use psb_base_mod, psb_protect_name => psb_c_remap @@ -47,6 +47,7 @@ subroutine psb_c_remap(np_remap, desc_in, a_in, desc_out, isrc, nrsrc, a_out, in type(psb_cspmat_type), intent(inout) :: a_in type(psb_cspmat_type), intent(out) :: a_out type(psb_desc_type), intent(out) :: desc_out + integer(psb_ipk_), intent(out) :: ipd integer(psb_ipk_), allocatable, intent(out) :: isrc(:), nrsrc(:) integer(psb_ipk_), intent(out) :: info @@ -54,7 +55,7 @@ subroutine psb_c_remap(np_remap, desc_in, a_in, desc_out, isrc, nrsrc, a_out, in ! locals integer(psb_ipk_) :: np, me, ictxt, err_act integer(psb_ipk_) :: rnp, rme, newctxt - integer(psb_ipk_) :: ipdest, ipd, id1, id2, imd, i, nsrc + integer(psb_ipk_) :: ipdest, id1, id2, imd, i, nsrc integer(psb_ipk_), allocatable :: newnl(:), nzsrc(:), ids(:) type(psb_lc_coo_sparse_mat) :: acoo_snd, acoo_rcv integer(psb_ipk_) :: debug_level, debug_unit diff --git a/base/tools/psb_d_remap.F90 b/base/tools/psb_d_remap.F90 index 4045bf18..99401c8a 100644 --- a/base/tools/psb_d_remap.F90 +++ b/base/tools/psb_d_remap.F90 @@ -36,7 +36,7 @@ ! desc_in - type(psb_desc_type). The communication descriptor to be cloned. ! desc_out - type(psb_desc_type). The output communication descriptor. ! info - integer. Return code. -subroutine psb_d_remap(np_remap, desc_in, a_in, desc_out, isrc, nrsrc, a_out, info) +subroutine psb_d_remap(np_remap, desc_in, a_in, desc_out, ipd, isrc, nrsrc, a_out, info) use psb_base_mod, psb_protect_name => psb_d_remap @@ -47,6 +47,7 @@ subroutine psb_d_remap(np_remap, desc_in, a_in, desc_out, isrc, nrsrc, a_out, in type(psb_dspmat_type), intent(inout) :: a_in type(psb_dspmat_type), intent(out) :: a_out type(psb_desc_type), intent(out) :: desc_out + integer(psb_ipk_), intent(out) :: ipd integer(psb_ipk_), allocatable, intent(out) :: isrc(:), nrsrc(:) integer(psb_ipk_), intent(out) :: info @@ -54,7 +55,7 @@ subroutine psb_d_remap(np_remap, desc_in, a_in, desc_out, isrc, nrsrc, a_out, in ! locals integer(psb_ipk_) :: np, me, ictxt, err_act integer(psb_ipk_) :: rnp, rme, newctxt - integer(psb_ipk_) :: ipdest, ipd, id1, id2, imd, i, nsrc + integer(psb_ipk_) :: ipdest, id1, id2, imd, i, nsrc integer(psb_ipk_), allocatable :: newnl(:), nzsrc(:), ids(:) type(psb_ld_coo_sparse_mat) :: acoo_snd, acoo_rcv integer(psb_ipk_) :: debug_level, debug_unit diff --git a/base/tools/psb_s_remap.F90 b/base/tools/psb_s_remap.F90 index 47af42b8..e0eb098d 100644 --- a/base/tools/psb_s_remap.F90 +++ b/base/tools/psb_s_remap.F90 @@ -36,7 +36,7 @@ ! desc_in - type(psb_desc_type). The communication descriptor to be cloned. ! desc_out - type(psb_desc_type). The output communication descriptor. ! info - integer. Return code. -subroutine psb_s_remap(np_remap, desc_in, a_in, desc_out, isrc, nrsrc, a_out, info) +subroutine psb_s_remap(np_remap, desc_in, a_in, desc_out, ipd, isrc, nrsrc, a_out, info) use psb_base_mod, psb_protect_name => psb_s_remap @@ -47,6 +47,7 @@ subroutine psb_s_remap(np_remap, desc_in, a_in, desc_out, isrc, nrsrc, a_out, in type(psb_sspmat_type), intent(inout) :: a_in type(psb_sspmat_type), intent(out) :: a_out type(psb_desc_type), intent(out) :: desc_out + integer(psb_ipk_), intent(out) :: ipd integer(psb_ipk_), allocatable, intent(out) :: isrc(:), nrsrc(:) integer(psb_ipk_), intent(out) :: info @@ -54,7 +55,7 @@ subroutine psb_s_remap(np_remap, desc_in, a_in, desc_out, isrc, nrsrc, a_out, in ! locals integer(psb_ipk_) :: np, me, ictxt, err_act integer(psb_ipk_) :: rnp, rme, newctxt - integer(psb_ipk_) :: ipdest, ipd, id1, id2, imd, i, nsrc + integer(psb_ipk_) :: ipdest, id1, id2, imd, i, nsrc integer(psb_ipk_), allocatable :: newnl(:), nzsrc(:), ids(:) type(psb_ls_coo_sparse_mat) :: acoo_snd, acoo_rcv integer(psb_ipk_) :: debug_level, debug_unit diff --git a/base/tools/psb_z_remap.F90 b/base/tools/psb_z_remap.F90 index b98364dc..9aed22ec 100644 --- a/base/tools/psb_z_remap.F90 +++ b/base/tools/psb_z_remap.F90 @@ -36,7 +36,7 @@ ! desc_in - type(psb_desc_type). The communication descriptor to be cloned. ! desc_out - type(psb_desc_type). The output communication descriptor. ! info - integer. Return code. -subroutine psb_z_remap(np_remap, desc_in, a_in, desc_out, isrc, nrsrc, a_out, info) +subroutine psb_z_remap(np_remap, desc_in, a_in, desc_out, ipd, isrc, nrsrc, a_out, info) use psb_base_mod, psb_protect_name => psb_z_remap @@ -47,6 +47,7 @@ subroutine psb_z_remap(np_remap, desc_in, a_in, desc_out, isrc, nrsrc, a_out, in type(psb_zspmat_type), intent(inout) :: a_in type(psb_zspmat_type), intent(out) :: a_out type(psb_desc_type), intent(out) :: desc_out + integer(psb_ipk_), intent(out) :: ipd integer(psb_ipk_), allocatable, intent(out) :: isrc(:), nrsrc(:) integer(psb_ipk_), intent(out) :: info @@ -54,7 +55,7 @@ subroutine psb_z_remap(np_remap, desc_in, a_in, desc_out, isrc, nrsrc, a_out, in ! locals integer(psb_ipk_) :: np, me, ictxt, err_act integer(psb_ipk_) :: rnp, rme, newctxt - integer(psb_ipk_) :: ipdest, ipd, id1, id2, imd, i, nsrc + integer(psb_ipk_) :: ipdest, id1, id2, imd, i, nsrc integer(psb_ipk_), allocatable :: newnl(:), nzsrc(:), ids(:) type(psb_lz_coo_sparse_mat) :: acoo_snd, acoo_rcv integer(psb_ipk_) :: debug_level, debug_unit diff --git a/test/cdasb/psb_d_pde3d.f90 b/test/cdasb/psb_d_pde3d.f90 index 3e947e25..4cdb99bd 100644 --- a/test/cdasb/psb_d_pde3d.f90 +++ b/test/cdasb/psb_d_pde3d.f90 @@ -644,7 +644,7 @@ program psb_d_pde3d integer(psb_ipk_) :: ictxt, iam, np ! solver parameters - integer(psb_ipk_) :: iter, itmax,itrace, istopc, irst, ipart + integer(psb_ipk_) :: iter, itmax,itrace, istopc, irst, ipart, idest integer(psb_epk_) :: amatsize, precsize, descsize, d2size real(psb_dpk_) :: err, eps integer(psb_ipk_), allocatable :: isrc(:), nrsrc(:) @@ -701,7 +701,7 @@ program psb_d_pde3d if (iam == 0) write(0,*) 'Remapping from ',np,' to ',rnp flush(0) call psb_barrier(ictxt) - call psb_remap(rnp,desc_blk,a,desc_rmp,isrc,nrsrc,aremap,info) + call psb_remap(rnp,desc_blk,a,desc_rmp,idest,isrc,nrsrc,aremap,info) flush(0) call psb_barrier(ictxt) if (iam == 0) write(0,*) ' Info ',info