33 1 FR_MV ,IV ,NAV ,RVOLU ,RVOLUV ,
34 2 ICBAG ,NJET ,IVOLUV ,RBAGVJET,IFLAG ,ITYP,NGASES)
40#include "implicit_f.inc"
55 INTEGER IFLAG, IV, NAV, NJET,
57 . icbag(nicbag,*),ivoluv(nimv,*),ityp,ngases
59 . rvolu(*), rvoluv(nrvolu,*),rbagvjet(*)
64 INTEGER LOC_PROC,I,J,II,P,L,SIZ,NB,IJ,RADVOIS,
65 . MSGTYP,MSGOFF,MSGOFF2,IERROR, ICOMRC,
66 . icomsd(nspmd),req_s(nspmd),igas,
67 . status(mpi_status_size)
70 my_real,
DIMENSION(:),
ALLOCATABLE :: bufs,bufr
76 siz = 5*nvolu+2*njet*nvolu+1
77 IF(ityp == 9) siz = siz + ngases*2*njet*nvolu
78 ALLOCATE(bufs(siz),bufr(siz))
90 IF(fr_mv(nspmd+2,ii)==loc_proc)
THEN
93 bufs(l+2)=rvoluv(12,ii)
94 bufs(l+3)=rvoluv(16,ii)
95 bufs(l+4)=rvoluv(22,ii)
96 bufs(l+5)=rvoluv(24,ii)
99 radvois= ivoluv(10,ii)
101 bufs(l+1)=rbagvjet(radvois+nrbjet*(ij-1)+9)
102 bufs(l+2)=rbagvjet(radvois+nrbjet*(ij-1)+10)
106 bufs(l+1)=rbagvjet(radvois+nrbjet*(ij-1)+23+(igas-1)*4)
107 bufs(l+2)=rbagvjet(radvois+nrbjet*(ij-1)+24+(igas-1)*4)
114 IF(fr_mv(p,ii)==0.AND.fr_mv(p,iv)/=0)
THEN
124 IF(icomsd(p)==1)
THEN
127 . bufs,l,real,it_spmd(p),msgtyp,
128 . spmd_comm_world,req_s(p),ierror)
133 IF(fr_mv(loc_proc,iv)/=0)
THEN
139 IF(fr_mv(nspmd+2,ii)==p.AND.
140 + fr_mv(loc_proc,ii)==0)
THEN
145 siz = 5*nvolu+2*njet*nvolu+1
146 IF(ityp == 9) siz = siz + 2*njet*nvolu*ngases
148 CALL mpi_recv(bufr ,siz ,real ,it_spmd(p),
149 . msgtyp,spmd_comm_world,status,ierror )
154 rvoluv(12,ii) = bufr(l+2)
155 rvoluv(16,ii) = bufr(l+3)
156 rvoluv(22,ii) = bufr(l+4)
157 rvoluv(24,ii) = bufr(l+5)
160 radvois= ivoluv(10,ii)
162 rbagvjet(radvois+nrbjet*(ij-1)+9) =bufr(l+1)
163 rbagvjet(radvois+nrbjet*(ij-1)+10)=bufr(l+2)
167 rbagvjet(radvois+nrbjet
179 IF(icomsd(p)==1)
CALL mpi_wait(req_s(p),status,ierror)
192 bufs(l+1)=rvoluv(22,ii)
193 bufs(l+2)=rvoluv(24,ii)
196 radvois= ivoluv(10,ii)
198 bufs(l+1)=rbagvjet(radvois+nrbjet*(ij-1)+9)
199 bufs(l+2)=rbagvjet(radvois+nrbjet*(ij-1)+10)
203 bufs(l+1)=rbagvjet(radvois+nrbjet*(ij-1)+23+(igas-1)*4)
204 bufs(l+2)=rbagvjet(radvois
211 IF(fr_mv(p,ii)/=0.AND.fr_mv(p,iv)==0)
THEN
218 IF(icomsd(p)==1)
THEN
221 . bufs,l,real,it_spmd(p),msgtyp,
222 . spmd_comm_world,req_s(p),ierror)
228 IF(icomsd(p)==1)
CALL mpi_wait(req_s(p),status,ierror)
230 ELSEIF(fr_mv(loc_proc,iv)==0)
THEN
234 IF(fr_mv(loc_proc,ii)/=0)
THEN
240 p = fr_mv(nspmd+2,iv)
241 siz = 2*nav+2*njet*nav
242 IF(ityp == 9) siz = siz +2*njet*nav*ngases
244 CALL mpi_recv(bufr ,siz ,real ,it_spmd(p),
245 . msgtyp,spmd_comm_world,status,ierror )
249 rvoluv(22,ii) = bufr(l+1)
250 rvoluv(24,ii) = bufr(l+2)
253 radvois= ivoluv(10,ii)
255 rbagvjet(radvois+nrbjet*(ij-1)+9) =bufr(l+1)
256 rbagvjet(radvois+nrbjet*(ij-1)+10)=bufr(l+2)
260 rbagvjet(radvois+nrbjet*(ij-1)+23+(igas-1)*4)=bufr(l+1)
261 rbagvjet(radvois+nrbjet*(ij-1)+24+(igas-1)*4)=bufr(l+2)
271 DEALLOCATE(bufr,bufs)