41 USE spmd_comm_world_mod,
ONLY
42#include "implicit_f.inc"
56 INTEGER IAD_ELEM(2,*),FR_ELEM(*), TAGNCONT(NLOADP_HYD_INTER,NUMNOD),LENR
61 INTEGER MSGTYP,I,NOD,IERROR,MSGOFF,IERROR2,
62 . SIZ,J,K,L,NB_NOD,NP,
63 . STATUS(MPI_STATUS_SIZE),
64 . IAD_SEND(NSPMD+1),IAD_RECV(NSPMD+1),
65 . REQ_R(NSPMD),REQ_S(NSPMD)
68 INTEGER,
DIMENSION(:),
ALLOCATABLE :: RBUF,SBUF
75 ALLOCATE( rbuf(nloadp_hyd_inter*lenr
76 ierror = ierror + ierror2
77 ALLOCATE( sbuf(nloadp_hyd_inter*lenr),stat=ierror2
78 ierror = ierror + ierror2
81 CALL ancmsg(msgid=20,anmode=aninfo)
87 siz = nloadp_hyd_inter*(iad_elem(1,i+1)-iad_elem(1,i))
91 s rbuf(l),siz,mpi_integer,it_spmd(i),msgtyp,
92 g spmd_comm_world,req_r(i),ierror)
103 DO np=1,nloadp_hyd_inter
104#include "vectorize.inc"
105 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
107 sbuf(l ) = tagncont(np,nod)
121 IF(iad_elem(1,i+1)-iad_elem(1,i)>0)
THEN
123 siz = iad_send(i+1)-iad_send(i)
126 s sbuf(l),siz,mpi_integer,it_spmd(i),msgtyp,
127 g spmd_comm_world,req_s(i),ierror)
138 nb_nod = iad_elem(1,i+1)-iad_elem(1,i)
140 CALL mpi_wait(req_r(i),status,ierror)
143 DO np=1,nloadp_hyd_inter
144#include "vectorize.inc"
145 DO j=iad_elem(1,i),iad_elem(1,i+1)-1
147 tagncont(np,nod) =
max(tagncont(np,nod), rbuf(l))
162 IF(iad_elem(1,i+1)-iad_elem(1,i)>0)
THEN
163 CALL mpi_wait(req_s(i),status,ierror)
167 DEALLOCATE(rbuf,sbuf)
subroutine mpi_isend(buf, cnt, datatype, dest, tag, comm, ireq, ierr)
subroutine mpi_irecv(buf, cnt, datatype, source, tag, comm, ireq, ierr)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)