34 * IAD_ELEM,FR_ELEM,ITAB)
42 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
43#include "implicit_f.inc"
56 INTEGER IAD_ELEM(2,*), FR_ELEM(*),ITAB(*)
63 INTEGER STATUS(MPI_STATUS_SIZE),
64 * req_si(nspmd),req_ri(nspmd),msgtyp,ierror
66INTEGER IADS(NSPMD+1),(NSPMD+1),LENRV
68 *
DIMENSION(:),
ALLOCATABLE :: bbufs,bbufr
71 lenrv = (iad_elem(1,nspmd+1)-iad_elem(1,1))*4
72 ALLOCATE (bbufs(lenrv),bbufr(lenrv))
81 siz = (iad_elem(1,p+1)-iad_elem(1,p))*4
85 s bbufr(l),siz,real,it_spmd(p),msgtyp,
86 g spmd_comm_world,req_ri(p),ierror)
97 DO j=iad_elem(1,p),iad_elem(1,p+1)-1
100 bbufs(l+1) = a(1,nod)
101 bbufs(l+2) = a(2,nod)
102 bbufs(l+3) = a(3,nod)
109 IF(iad_elem(1,p+1)-iad_elem(1,p)>0)
THEN
111 siz=iads(p+1)-iads(p)
114 s bbufs(l),siz,real,it_spmd(p),msgtyp,
115 g spmd_comm_world,req_si(p),ierror)
123 nb = iad_elem(1,p+1)-iad_elem(1,p)
125 CALL mpi_wait(req_ri(p),status,ierror)
127 DO j=iad_elem(1,p),iad_elem(1,p+1)-1
129 IF (bbufr(l) > zero)
THEN
141 siz=iads(p+1)-iads(p)
143 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)