31 SUBROUTINE spmd_gather_wa(MODE,SIZE_BUFFER_S,SIZE_BUFFER_R,SINDEX,RINDEX_PROC,
32 1 BUFFER_S,BUFFER_R,SHIFT_R,NB_ELEM_R)
37 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
38#include "implicit_f.inc"
52 INTEGER,
INTENT(IN) :: MODE,SIZE_BUFFER_S
54 INTEGER,
INTENT(INOUT) :: SIZE_BUFFER_R
56 INTEGER,
DIMENSION(NSECT+1,3),
INTENT(IN) :: SINDEX
58 INTEGER,
DIMENSION(NSECT+1,3,NSPMD),
INTENT(INOUT) :: RINDEX_PROC
60 INTEGER,
DIMENSION(SIZE_BUFFER_S),
INTENT(IN) :: BUFFER_S
62 INTEGER,
DIMENSION(*),
INTENT(INOUT) ::
63 INTEGER,
DIMENSION(NSPMD),
INTENT(INOUT) :: SHIFT_R,NB_ELEM_R
68 INTEGER STATUS(MPI_STATUS_SIZE),IERROR,MSGOFF
69 INTEGER SIZ,MSGTYP,I,K,NG,NREC,STEP
77 CALL mpi_gather(sindex,3*(nsect+1),mpi_integer,
78 . rindex_proc,3*(nsect+1),mpi_integer,0,spmd_comm_world,ierror)
82 nb_elem_r(1:nspmd) = rindex_proc(nsect+1,1,1:nspmd)
85 size_buffer_r = size_buffer_r + nb_elem_r(i)
90 shift_r(i) = shift_r(i-1)+nb_elem_r(i-1)
97 CALL mpi_gatherv(buffer_s,size_buffer_s,mpi_integer,
98 . buffer_r,nb_elem_r,shift_r,mpi_integer,
99 . 0,spmd_comm_world,ierror)
subroutine mpi_gather(sendbuf, cnt, datatype, recvbuf, reccnt, rectype, root, comm, ierr)
subroutine mpi_gatherv(sendbuf, cnt, datatype, recvbuf, reccnt, displs, rectype, root, comm, ierr)
subroutine spmd_gather_wa(mode, size_buffer_s, size_buffer_r, sindex, rindex_proc, buffer_s, buffer_r, shift_r, nb_elem_r)