39 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
40#include "implicit_f.inc"
51 INTEGER ICRK,NUM,IDMAXNOD,NODGLOBXFE(*)
56 INTEGER STATUS(MPI_STATUS_SIZE),IERROR,MSGOFF
57 INTEGER SIZ,MSGTYP,I,K,NG,NREC,STEP
60 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IBUF
61 INTEGER,
DIMENSION(:),
ALLOCATABLE :: XGLOB
65 ALLOCATE(ibuf(2,ncrknodg))
71 DO i=1,
crknod(icrk)%CRKNUMNODS
73 step =
crknod(icrk)%CRKNUMNODS*(icrk-1)
74 ibuf(1,siz) = nodglobxfe(i+step)
75 ibuf(2,siz) =
crknod(icrk)%XFECRKNODID(i)+idmaxnod
79 CALL mpi_send(ibuf,2*siz,mpi_integer,it_spmd(1),msgtyp,
80 . spmd_comm_world,ierror)
84 DO i=1,
crknod(icrk)%CRKNUMNODS
85 step =
crknod(icrk)%CRKNUMNODS*(icrk-1)
86 ng = nodglobxfe(i+step)
87 xglob(ng) =
crknod(icrk)%XFECRKNODID(i)+idmaxnod
95 . spmd_comm_world,status,ierror)
97 CALL mpi_recv(ibuf,siz,mpi_integer,it_spmd(i),msgtyp,
98 . spmd_comm_world,status,ierror)
103 xglob(ng) = ibuf(2,k)
110 k=i+ncrknodg*(icrk-1)
subroutine mpi_recv(buf, cnt, datatype, source, tag, comm, status, ierr)
subroutine mpi_send(buf, cnt, datatype, dest, tag, comm, ierr)