36 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
37#include "implicit_f.inc"
51 INTEGER WEIGHT(*),NODGLOB(*),NUM,SRECBUF
56 INTEGER STATUS(MPI_STATUS_SIZE),IERROR,MSGOFF
57 INTEGER SIZ,MSGTYP,I,K,NG,NREC,MSGOFF2
61 REAL,
DIMENSION(:) ,
ALLOCATABLE :: BUFSR
62 INTEGER,
DIMENSION(:) ,
ALLOCATABLE :: IBUF
64 REAL,
DIMENSION(:) ,
ALLOCATABLE ::
66 ALLOCATE(bufsr(numnodm), ibuf(numnodm))
75 IF (weight(i)==1)
THEN
77 ibuf(siz) = nodglob(i)
87 CALL mpi_send(ibuf,siz,mpi_integer,it_spmd(1),msgtyp,
88 . spmd_comm_world,ierror)
91 CALL mpi_send(bufsr,siz,mpi_real,it_spmd(1),msgtyp,
92 . spmd_comm_world,ierror)
97 IF (weight(i)==1)
THEN
110 . spmd_comm_world,status,ierror)
113 CALL mpi_recv(ibuf,siz,mpi_integer,it_spmd(i),msgtyp,
114 . spmd_comm_world,status,ierror)
119 CALL mpi_recv(bufsr,siz,mpi_real,it_spmd(i),msgtyp,
120 . spmd_comm_world,status,ierror)
132 DEALLOCATE(bufsr,ibuf,xglob)
subroutine mpi_recv(buf, cnt, datatype, source, tag, comm, status, ierr)
subroutine mpi_send(buf, cnt, datatype, dest, tag, comm, ierr)