34 * IAD_ELEM,FR_ELEM,ITAB)
42 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
43#include "implicit_f.inc"
56 INTEGER (2,*), FR_ELEM(*),ITAB(*)
63 INTEGER STATUS(MPI_STATUS_SIZE),
64 * req_si(nspmd),req_ri(nspmd),msgtyp,ierror,msgoff
65 INTEGER L,NNOD,P,J,LOC_PROC,PTR,SIZ,NB,NOD
66 INTEGER IADS(NSPMD+1),IADR(NSPMD+1),LENRV
70 *
DIMENSION(:),
ALLOCATABLE :: bbufs,bbufr
73 lenrv = (iad_elem(1,nspmd+1)-iad_elem(1,1))*4
74 ALLOCATE (bbufs(lenrv),bbufr(lenrv))
83 siz = (iad_elem(1,p+1)-iad_elem(1,p))*4
87 s bbufr(l),siz,real,it_spmd(p),msgtyp,
88 g spmd_comm_world,req_ri(p),ierror)
99 DO j=iad_elem(1,p),iad_elem(1,p+1)-1
101 bbufs(l) = mtf(1,nod)
102 bbufs(l+1) = a(1,nod)
103 bbufs(l+2) = a(2,nod)
104 bbufs(l+3) = a(3,nod)
111 IF(iad_elem(1,p+1)-iad_elem(1,p)>0)
THEN
113 siz=iads(p+1)-iads(p)
116 s bbufs(l),siz,real,it_spmd(p),msgtyp,
117 g spmd_comm_world,req_si(p),ierror)
125 nb = iad_elem(1,p+1)-iad_elem(1,p)
127 CALL mpi_wait(req_ri(p),status,ierror)
129 DO j=iad_elem(1,p),iad_elem(1,p+1)-1
131 IF (bbufr(l) > zero)
THEN
143 siz=iads(p+1)-iads(p)
145 CALL mpi_wait(req_si(p),status,ierror)
subroutine mpi_isend(buf, cnt, datatype, dest, tag, comm, ireq, ierr)
subroutine mpi_irecv(buf, cnt, datatype, source, tag, comm, ireq, ierr)