36 . NODGLOB,WEIGHT,ITAB,COMPID_RBODIES)
42 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
43#include "implicit_f.inc"
58 INTEGER NPBY(NNPBY,*),LPBY(*),FR_RBY2(3,*),IAD_RBY2(4,*)
59 INTEGER SBUFSPM,SBUFRECVM,SBUFSPO,NODGLOB(*),SPORBY,WEIGHT(*),
60 . ITAB(*),COMPID_RBODIES
65 INTEGER PMAIN,JENVOIE,I,J,K,L,S,B,M,P,N,
67 . PORBY(SPORBY),II(2),PTRPO(NSPMD+1),PTRPOO(NSPMD
69 INTEGER BUFSPM(SBUFSPM),BUFRECVM(SBUFRECVM+NSPMD
74 INTEGER MAINND(NRBYKIN)
79 INTEGER ,MSGOFF2,MSGTYP,INFO,ATID,ATAG,ALEN
80 INTEGER STATUS(MPI_STATUS_SIZE),IERROR,ISD(NSPMD)
90 IF (loc_proc==abs(pmain))
THEN
91 mainnd(j)=itab( npby(1,j) )-1
117 . abs(pmain)==i .AND. loc_proc/=i)
THEN
124 IF (weight(lpby(k+s-1))==1)
THEN
125 bufspm(l+nr-1) = itab(lpby(k+s-1))-1
139 IF (iad_rby2(1,i)>0)
THEN
143 siz = bufsend(i+1)-bufsend(i)
144 CALL mpi_isend(bufspm(b),siz,mpi_integer,it_spmd(i),msgtyp,
145 . spmd_comm_world,isd(i),ierror)
155 IF (iad_rby2(2,i)>0)
THEN
159 . spmd_comm_world,status,ierror)
162 CALL mpi_recv(bufrecvm(l),siz,mpi_integer,it_spmd(i),msgtyp,
163 . spmd_comm_world,status,ierror)
172 IF (iad_rby2(1,i)>0)
THEN
184 IF (abs(pmain)==loc_proc)
THEN
193 bufspo(l+nr)=itab(lpby(k+j-1))-
196 IF (weight(lpby(k+j-1)) ==1)
THEN
197 bufspo(l+nr)=itab(lpby(k+j-1))-1
210 IF (iad_rby2(2,p)>0)
THEN
212 IF (bufrecvm(m)==i)
THEN
215 bufrecp(p)=bufrecp(p)+2
217 DO j=bufrecp(p),bufrecp(p)+nbnod-1
218 bufspo(l+nr)=bufrecvm(j)
223 bufrecp(p)=bufrecp(p)+nbnod
234 IF (ispmd/=0 .and .l>0)
THEN
237 CALL mpi_send(bufspo,l,mpi_integer,it_spmd(1),msgtyp,
238 . spmd_comm_world,ierror)
248 recoisde(abs(fr_rby2(3,i)))=1
260 IF (recoisde(i)==1)
THEN
264 . spmd_comm_world,status,ierror)
267 CALL mpi_recv(porby(lpo),siz,mpi_integer,it_spmd(i),
268 . msgtyp, spmd_comm_world,status,ierror)