33 . FVRHO , FVENER, FVCSON, FVGAMA, FVVISU,
42 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
43#include "implicit_f.inc"
58 . fvener(*), fvcson(*), fvgama(*), fvvisu(*)
63 INTEGER ELOFF, I, PMAIN, J, K, KK, N, NN, IDP, ITAG, MSGOFF,
64 . NNTR, LEN, IAD, STAT(MPI_STATUS_SIZE), IERR,MSGOFF2
68 . ,
DIMENSION(:),
ALLOCATABLE :: rbuf
77 IF (ispmd==pmain-1)
THEN
80 ssp=sqrt((gama-one)*gama*
fvdata(i)%EPOLH(j)/
84 DO n=
fvdata(i)%IFVTADR(kk),
85 .
fvdata(i)%IFVTADR(kk+1)-1
88 IF (
fvdata(i)%IFVTRI(4,nn)/=0)
THEN
90 fvvisu(fvel2fa(eloff+nn))=idp-(idp/8)*8+1
92 fvvisu(fvel2fa(eloff+nn))=-1
96 fvmass(nn)=fvmass(nn)+fac*
fvdata(i)%MPOLH(j)
97 fvpres(nn)=fvpres(nn)+fac*
fvdata(i)%PPOLH(j)
98 IF (
fvdata(i)%MPOLH(j)>zero)
THEN
99 fvqx(nn)=fvqx(nn)+fac*
fvdata(i)%QPOLH(1,j)/
101 fvqy(nn)=fvqy(nn)+fac*
fvdata(i)%QPOLH(2,j)/
103 fvqz(nn)=fvqz(nn)+fac*
fvdata(i)%QPOLH(3,j)/
105 fvener(nn)=fvener(nn)+fac*
fvdata(i)%EPOLH(j)/
108 fvrho(nn)=fvrho(nn)+fac*
fvdata(i)%RPOLH(j)
109 fvcson(nn)=fvcson(nn)+fac*ssp
110 fvgama(nn)=fvgama(nn)+fac*gama
114 eloff=eloff+
fvdata(i)%NNTR
117 CALL mpi_recv(nntr, 1, mpi_integer, it_spmd(pmain),
118 . itag, spmd_comm_world, stat, ierr)
123 CALL mpi_recv(rbuf, len, real, it_spmd(pmain),
124 . itag, spmd_comm_world, stat, ierr)
129 fvpres(nn)=rbuf(nntr+j)
130 fvqx(nn)=rbuf(2*nntr+j)
131 fvqy(nn)=rbuf(3*nntr+j)
132 fvqz(nn)=rbuf(4*nntr+j)
133 fvener(nn)=rbuf(5*nntr+j)
134 fvrho(nn)=rbuf(6*nntr+j)
135 fvcson(nn)=rbuf(7*nntr+j)
136 fvgama(nn)=rbuf(8*nntr+j)
137 fvvisu(nn)=rbuf(9*nntr+j)
143 IF (ispmd==pmain-1)
THEN
146 CALL mpi_send(nntr, 1, mpi_integer, it_spmd(1),
147 . itag, spmd_comm_world, ierr)
156 ssp=sqrt((gama-one)*gama*
fvdata(i)%EPOLH(j)/
160 DO n=
fvdata(i)%IFVTADR(kk),
161 .
fvdata(i)%IFVTADR(kk+1)-1
164 IF (
fvdata(i)%IFVTRI(4,nn)/=0)
THEN
166 rbuf(9*nntr+nn)=idp-(idp/8)*8+1
171 rbuf(nn)=rbuf(nn)+fac*
fvdata(i)%MPOLH(j)
172 rbuf(nntr+nn)=rbuf(nntr+nn)
174 IF (
fvdata(i)%MPOLH(j)>zero)
THEN
175 rbuf(2*nntr+nn)=rbuf(2*nntr+nn)
176 . +fac*
fvdata(i)%QPOLH(1,j)/
178 rbuf(3*nntr+nn)=rbuf(3*nntr+nn)
179 . +fac*
fvdata(i)%QPOLH(2,j)/
181 rbuf(4*nntr+nn)=rbuf(4*nntr+nn)
182 . +fac*
fvdata(i)%QPOLH(3,j)/
184 rbuf(5*nntr+nn)=rbuf(5*nntr+nn)
185 . +fac*
fvdata(i)%EPOLH(j)/
188 rbuf(6*nntr+nn)=rbuf(6*nntr+nn)
190 rbuf(7*nntr+nn)=rbuf(7*nntr+nn)+fac*ssp
191 rbuf(8*nntr+nn)=rbuf(8*nntr+nn)+fac*gama
196 CALL mpi_send(rbuf, len, real, it_spmd(1),
197 . itag, spmd_comm_world, ierr)
subroutine spmd_fvb_aelf(fvmass, fvpres, fvqx, fvqy, fvqz, fvrho, fvener, fvcson, fvgama, fvvisu, fvel2fa)