38 . NODAREA,IAD_ELEM,FR_ELEM,LENR,WEIGHT,JJ)
42 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
43#include "implicit_f.inc"
56 INTEGER IAD_ELEM(2,*),FR_ELEM(*), SIZE, LENR,WEIGHT(*),JJ
63 INTEGER MSGTYP,I,NOD,,IERROR,
65 . status(mpi_status_size),
66 . iad_send(nspmd+1),iad_recv(nspmd+1),
67 . req_r(nspmd),req_s(nspmd),msgoff
70 .
DIMENSION(:),
ALLOCATABLE :: sbuf,rbuf
84 siz = iad_elem(1,i+1)-iad_elem(1,i)
88 s rbuf(l),siz,real,it_spmd(i),msgtyp,
89 g spmd_comm_world,req_r(i),ierror)
100 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
102 sbuf(l) = nodarea(jj,nod)
110 IF(iad_elem(1,i+1)-iad_elem(1,i)>0)
THEN
114 siz = iad_send(i+1)-iad_send(i)
118 s sbuf(l),siz,real,it_spmd(i),msgtyp,
119 g spmd_comm_world,req_s(i),ierror)
125 nb_nod = iad_elem(1,i+1)-iad_elem(1,i)
127 CALL mpi_wait(req_r(i),status,ierror)
130 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
133 nodarea(jj,nod) = nodarea(jj,nod) + rbuf(l)
140 IF(iad_elem(1,i+1)-iad_elem(1,i)>0)
THEN
141 CALL mpi_wait(req_s(i),status,ierror)
subroutine mpi_isend(buf, cnt, datatype, dest, tag, comm, ireq, ierr)
subroutine mpi_irecv(buf, cnt, datatype, source, tag, comm, ireq, ierr)