47 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
48#include "implicit_f.inc"
63 INTEGER IPARI(NPARI,*),ITAB(*)
67 TYPE(intbuf_struct_) INTBUF_TAB(*)
72 INTEGER STATUS(MPI_STATUS_SIZE),
73 * req_si(nspmd),req_ri(nspmd)
74 INTEGER P,LENSD,LENRV,IADS(NSPMD+1),IADR(NSPMD+1),IERROR,
75 * siz,loc_proc,msgtyp,msgoff,ideb(ninter)
76 INTEGER NIN,NTY,INACTI
77 INTEGER J,L,NB,NN,K,N,NOD,MODE,,ALEN,ND
79 *
DIMENSION(:),
ALLOCATABLE :: bbufs, bbufr
97 IF((nty==7.and.ipari(34,nin)==-2.and.inacti==7).OR.
98 . (nty==22.and.ipari(34,nin)==-2.and.inacti==7))
THEN
99 lensd = lensd +
nsnsi(nin)%P(p)*alen
100 lenrv = lenrv +
nsnfi(nin)%P(p)*alen
104 iadr(nspmd+1)=lenrv+1
107 ALLOCATE(bbufs(lensd),stat=ierror)
109 CALL ancmsg(msgid=20,anmode=aninfo)
116 ALLOCATE(bbufr(lenrv),stat=ierror)
118 CALL ancmsg(msgid=20,anmode=aninfo)
128 IF (p/= loc_proc)
THEN
131 inacti =ipari(22,nin)
132 IF((nty==7.and.ipari(34,nin)==-2.and.inacti==7).OR.
133 . (nty==22.and.ipari(34,nin)==-2.and.inacti==7))
THEN
137 nd =
nsvsi(nin)%P(ideb(nin)+nn)
138 nod=intbuf_tab(nin)%NSV(nd)
145 ideb(nin)=ideb(nin)+nb
153 . bbufs(iads(p)),siz,real ,it_spmd(p),msgtyp,
154 . spmd_comm_world,req_si(p),ierror )
165 siz=iadr(p+1)-iadr(p)
168 CALL mpi_recv( bbufr(iadr(p)),siz,real,it_spmd(p),msgtyp,
169 * spmd_comm_world,status,ierror )
172 inacti =ipari(22,nin)
176 IF((nty==7.and.ipari(34,nin)==-2.and.inacti==7).OR.
177 . (nty==22.and.ipari(34,nin)==-2.and.inacti==7))
THEN
181 i18kafi(nin)%P(1,ideb(nin)+k)=bbufr(iadr(p)+l)
182 i18kafi(nin)%P(2,ideb(nin)+k)=bbufr(iadr(p)+l+1)
183 i18kafi(nin)%P(3,ideb(nin)+k)=bbufr(iadr(p)+l+2)
188 ideb(nin)=ideb(nin)+nb
198 siz=iads(p+1)-iads(p)
201 CALL mpi_wait(req_si(p),status,ierror)
205 IF (
ALLOCATED(bbufs))
DEALLOCATE(bbufs)
206 IF (
ALLOCATED(bbufr))
DEALLOCATE(bbufr)
subroutine mpi_recv(buf, cnt, datatype, source, tag, comm, status, ierr)
subroutine mpi_isend(buf, cnt, datatype, dest, 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)