36 . NODGLOB,WEIGHT,ITAB)
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(*),
65 INTEGER PMAIN,JENVOIE,I,J,K,L,S,B,M,P,N,
67 . II(2),PTRPO(NSPMD+1),PTRPOO(NSPMD+1)
69 INTEGER BUFSEND(NSPMD+1),BUFRECP(NSPMD+1),
70 . NBNOD,SIZ,LPO,NSN,PTR,NOD,NN,NR,
72 INTEGER,
DIMENSION(:),
ALLOCATABLE :: BUFSPM,BUFRECVM,PORBY,BUFSPO
74 INTEGER MAINND(NRBYKIN)
78 INTEGER MSGOFF,MSGOFF2,MSGTYP,INFO,,ATAG,ALEN
79 INTEGER STATUS(MPI_STATUS_SIZE),IERROR,ISD(NSPMD)
84 ALLOCATE(bufspm(sbufspm))
85 ALLOCATE(bufrecvm(sbufrecvm+nspmd+1))
86 ALLOCATE(porby(sporby))
87 ALLOCATE(bufspo(sbufspo))
94 IF (loc_proc==abs(pmain))
THEN
95 mainnd(j)=nodglob( npby(1,j) )-1
119 . abs(pmain)==i .AND. loc_proc/=i)
THEN
126 IF (weight(lpby(k+s-1))==1)
THEN
127 bufspm(l+nr-1) = nodglob(lpby(k+s-1))-1
140 IF (iad_rby2(1,i)>0)
THEN
144 siz = bufsend(i+1)-bufsend(i)
145 CALL mpi_isend(bufspm(b),siz,mpi_integer,it_spmd(i),msgtyp,
146 . spmd_comm_world,isd(i),ierror)
154 IF (iad_rby2(2,i)>0)
THEN
158 . spmd_comm_world,status,ierror)
161 CALL mpi_recv(bufrecvm(l),siz,mpi_integer,it_spmd(i),msgtyp,
162 . spmd_comm_world,status,ierror)
171 IF (iad_rby2(1,i)>0)
THEN
180 IF (abs(pmain)==loc_proc)
THEN
187 bufspo(l+nr)=nodglob(lpby(k+j-1))-1
190 IF (weight(lpby(k+j-1)) ==1)
THEN
191 bufspo(l+nr)=nodglob(lpby(k+j-1))-1
201 IF (iad_rby2(2,p)>0)
THEN
203 IF (bufrecvm(m)==i)
THEN
206 bufrecp(p)=bufrecp(p)+2
208 DO j=bufrecp(p),bufrecp(p)+nbnod-1
209 bufspo(l+nr)=bufrecvm(j)
214 bufrecp(p)=bufrecp(p)+nbnod
225 IF (ispmd/=0 .and .l>0)
THEN
227 CALL mpi_send(bufspo,l,mpi_integer,it_spmd(1),msgtyp,
228 . spmd_comm_world,ierror)
236 recoisde(abs(fr_rby2(3,i)))=1
248 IF (recoisde(i)==1)
THEN
252 . spmd_comm_world,status,ierror)
255 CALL mpi_recv(porby(lpo),siz,mpi_integer,it_spmd(i),
256 . msgtyp, spmd_comm_world,status,ierror)
269 IF(ptr<ptrpoo(p+1))
THEN
270 IF(porby(ptr)==i)
THEN
277 ptrpo(p)=ptrpo(p) + nsn +2
subroutine genani(x, d, v, a, bufel, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, swaft, smas, sxnorm, siad, iparg, pm, geo, ms, sinvert, cont, smater, icut, skew, xcut, fint, itab, sel2fa, fext, fopt, anin, lpby, npby, nstrf, rwbuf, nprw, tani, elbuf_tab, mat_param, dd_iad, weight, eani, ipart, cluster, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, ipartur, iparttg, rby, swa4, tors, nom_opt, igrsurf, bufsf, idata, rdata, siadg, bufmat, bufgeo, kxx, ixx, ipartx, suix, sxusr, snfacptx, sixedge, sixfacet, sixsolid, snumx1, snumx2, snumx3, soffx1, soffx2, soffx3, smass1, smass2, smass3, sfunc1, sfunc2, sfunc3, kxsp, ixsp, nod2sp, ipartsp, spbuf, ixs10, ixs20, ixs16, vr, monvol, volmon, ipm, igeo, nodglob, iad_elem, fr_elem, fr_sec, fr_rby2, iad_rby2, fr_wall, iflow, rflow, fncont, ftcont, temp, thke, err_thk_sh4, err_thk_sh3, diag_sms, ipari, fncont2, dr, ale_connectivity, irbe2, irbe3, lrbe2, lrbe3, fr_rbe2, fr_rbe3m, iad_rbe2, dxancg, nod_pxfem, iel_pxfem, zi_ply, vgaz, fcontg, fncontg, ftcontg, fanreac, inod_crk, iel_crk, elcutc, iadc_crk, pdama2, res_sms, weight_md, nodglobxfe, nodedge, fcluster, mcluster, xfem_tab, w, nv46, ipartig3d, kxig3d, ixig3d, sig3dsolid, knot, wige, nercvois, nesdvois, lercvois, lesdvois, crkedge, indx_crk, xedge4n, xedge3n, stack, sph2sol, stifn, stifr, igrnod, h3d_data, subset, multi_fvm, knotlocpc, knotlocel, fcont_max, fncontp2, ftcontp2, glob_therm, drape_sh4n, drape_sh3n, drapeg, output)