34 . IDMAX, ITAB , NODCUT, NNWL , NNSRG ,
43 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
44#include
"implicit_f.inc"
59 INTEGER NFVTR, FVOFF(2,*), NFVNOD, NFVPART, NFVSUBS, IDMAX,
60 . ITAB(*), NODCUT, NNWL, NNSRG, NNSMD, NNSPHG
65 INTEGER IDMAXL, I, MSGOFF, IDMAXP(NSPMD-1),
66 . REQ(NSPMD-1), IERR, STAT(MPI_STATUS_SIZE,NSPMD-1),
67 . pmain, tab(4),msgtyp
72 idmaxl=
max(idmaxl,itab(i))
77 CALL mpi_irecv(idmaxp(i), 1, mpi_integer, it_spmd(i+1),
78 . msgtyp, spmd_comm_world, req(i), ierr)
84 idmax=
max(idmax,idmaxp(i))
88 CALL mpi_isend(idmaxl, 1, mpi_integer, it_spmd(1),
89 . msgtyp, spmd_comm_world, req, ierr)
96 IF (ispmd==pmain-1)
THEN
98 fvoff(1,i)=numnodg+nodcut+nsect+nrwall+nnwl
99 . +nnsrg+nnsmd+nnsphg+2*numels16g+nfvnod
100 fvoff(2,i)=idmax+nfvnod
101 nfvnod=nfvnod+
fvdata(i)%NNS_ANIM
102 nfvpart=nfvpart+
fvdata(i)%NPOLH_ANIM
106 CALL mpi_recv(tab, 3, mpi_integer, it_spmd(pmain),
107 . msgtyp, spmd_comm_world, stat, ierr)
110 fvoff(1,i)=numnodg+nodcut+nsect+nrwall+nnwl
111 . +nnsrg+nnsmd+nnsphg+2*numels16g+nfvnod
112 fvoff(2,i)=idmax+nfvnod
114 nfvpart=nfvpart+tab(3)
118 IF (ispmd==pmain-1)
THEN
122 tab(3)=
fvdata(i)%NPOLH_ANIM
123 CALL mpi_send(tab, 3, mpi_integer, it_spmd(1),
124 . msgtyp, spmd_comm_world, ierr)
135 CALL mpi_bcast(tab, 4, mpi_integer, it_spmd(1),
136 . spmd_comm_world, ierr)
subroutine mpi_recv(buf, cnt, datatype, source, tag, comm, status, ierr)
subroutine mpi_isend(buf, cnt, datatype, dest, tag, comm, ireq, ierr)
subroutine mpi_irecv(buf, cnt, datatype, source, tag, comm, ireq, ierr)
subroutine spmd_fvb_adim(nfvtr, fvoff, nfvnod, nfvpart, nfvsubs, idmax, itab, nodcut, nnwl, nnsrg, nnsmd, nnsphg)