diff --git a/test/cdasb/psb_d_pde3d.f90 b/test/cdasb/psb_d_pde3d.f90 index 2021eb75..c14f8446 100644 --- a/test/cdasb/psb_d_pde3d.f90 +++ b/test/cdasb/psb_d_pde3d.f90 @@ -381,7 +381,7 @@ contains ! integer(psb_mpk_), allocatable :: neighbours(:) integer(psb_mpk_) :: cnt - logical, parameter :: debug_adj=.true. + logical, parameter :: debug_adj=.false. if (debug_adj.and.(np > 1)) then cnt = 0 allocate(neighbours(np)) @@ -397,6 +397,18 @@ contains cnt = cnt + 1 call ijk2idx(neighbours(cnt),iamx,iamy,iamz+1,npx,npy,npz,base=0) end if + if (iamx >0) then + cnt = cnt + 1 + call ijk2idx(neighbours(cnt),iamx-1,iamy,iamz,npx,npy,npz,base=0) + end if + if (iamy >0) then + cnt = cnt + 1 + call ijk2idx(neighbours(cnt),iamx,iamy-1,iamz,npx,npy,npz,base=0) + end if + if (iamz >0) then + cnt = cnt + 1 + call ijk2idx(neighbours(cnt),iamx,iamy,iamz-1,npx,npy,npz,base=0) + end if call psb_realloc(cnt, neighbours,info) call desc_a%set_p_adjcncy(neighbours) write(0,*) iam,' Check on neighbours: ',desc_a%get_p_adjcncy() diff --git a/test/pargen/psb_d_pde3d.f90 b/test/pargen/psb_d_pde3d.f90 index 72446b00..60cb9e9e 100644 --- a/test/pargen/psb_d_pde3d.f90 +++ b/test/pargen/psb_d_pde3d.f90 @@ -237,7 +237,7 @@ contains call psb_info(ictxt, iam, np) call psb_cd_set_large_threshold(1000) - call psb_cd_set_maxspace(10000) + call psb_cd_set_maxspace(-1) if (present(f)) then f_ => f @@ -373,7 +373,49 @@ contains ! the set of global indices it owns. ! call psb_cdall(ictxt,desc_a,info,vl=myidx) + + block + ! + ! Test adjcncy methods + ! + integer(psb_mpk_), allocatable :: neighbours(:) + integer(psb_mpk_) :: cnt + logical, parameter :: debug_adj=.false. + if (debug_adj.and.(np > 1)) then + cnt = 0 + allocate(neighbours(np)) + if (iamx < npx-1) then + cnt = cnt + 1 + call ijk2idx(neighbours(cnt),iamx+1,iamy,iamz,npx,npy,npz,base=0) + end if + if (iamy < npy-1) then + cnt = cnt + 1 + call ijk2idx(neighbours(cnt),iamx,iamy+1,iamz,npx,npy,npz,base=0) + end if + if (iamz < npz-1) then + cnt = cnt + 1 + call ijk2idx(neighbours(cnt),iamx,iamy,iamz+1,npx,npy,npz,base=0) + end if + if (iamx >0) then + cnt = cnt + 1 + call ijk2idx(neighbours(cnt),iamx-1,iamy,iamz,npx,npy,npz,base=0) + end if + if (iamy >0) then + cnt = cnt + 1 + call ijk2idx(neighbours(cnt),iamx,iamy-1,iamz,npx,npy,npz,base=0) + end if + if (iamz >0) then + cnt = cnt + 1 + call ijk2idx(neighbours(cnt),iamx,iamy,iamz-1,npx,npy,npz,base=0) + end if + call psb_realloc(cnt, neighbours,info) + call desc_a%set_p_adjcncy(neighbours) + write(0,*) iam,' Check on neighbours: ',desc_a%get_p_adjcncy() + end if + end block + + case default write(psb_err_unit,*) iam, 'Initialization error: should not get here' info = -1