40 . NODAREA,IAD_ELEM,FR_ELEM,LENR,WEIGHT)
45 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
46#include "implicit_f.inc"
59 INTEGER IAD_ELEM(2,*),FR_ELEM(*), LENR,WEIGHT(*)
66 INTEGER MSGTYP,I,NOD,LOC_PROC,IERROR,
68 . status(mpi_status_size),
69 . iad_send(nspmd+1),iad_recv(nspmd+1),
70 . req_r(nspmd),req_s(nspmd),msgoff
73 .
DIMENSION(:),
ALLOCATABLE :: sbuf,rbuf
92 s rbuf(l),siz,real,it_spmd(i),msgtyp,
93 g spmd_comm_world,req_r(i),ierror)
104 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
106 sbuf(l) = nodarea(nod)
114 IF(iad_elem(1,i+1)-iad_elem(1,i)>0)
THEN
118 siz = iad_send(i+1)-iad_send(i)
122 s sbuf(l),siz,real,it_spmd(i),msgtyp,
123 g spmd_comm_world,req_s(i),ierror)
129 nb_nod = iad_elem(1,i+1)-iad_elem(1,i)
131 CALL mpi_wait(req_r(i),status,ierror)
134 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
137 nodarea(nod) = nodarea(nod) + rbuf(l)
144 IF(iad_elem(1,i+1)-iad_elem(1,i)>0)
THEN
145 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)