32 SUBROUTINE fvbric(IVOLU, RVOLU, IBUF, X, NN)
40#include "implicit_f.inc"
49 INTEGER IVOLU(*), IBUF(*), NN
55 INTEGER I, II, NBX, NBY, NBRIC, NNB, IFV, NNB1, J, K, NV, NALL,
56 . NC, TNC(4), TNV(5,6), KK, L, N1, N2, N3, N4, N5, N6, N7,
59 . vx3, vy3, vz3, vx1, vy1, vz1,
norm, ss, vx2, vy2, vz2,
60 . x0, y0, z0, zlmin, zlmax, xx, yy, zz, zl, lx, ly, dx, dy,
61 . xlc, ylc, zlc1, zlc2, xxg, yyg, zzg, xc, yc, zc, l1, l2,
62 . l3, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4,
63 . nx1, ny1, nz1, nx2, ny2, nz2, area1, area2, nx, ny, nz,
64 . rr, xcf, ycf, zcf, vx, vy, vz, xxx(3,nn), rbid
65 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ITAG
94 IF (ispmd/=
fvspmd(ifv)%PMAIN-1)
RETURN
103 norm=sqrt(vx3**2+vy3**2+vz3**2)
107 ss=vx3*vx1+vy3*vy1+vz3*vz1
111 norm=sqrt(vx1**2+vy1**2+vz1**2)
129 zl=(xx-x0)*vx3+(yy-y0)*vy3+(zz-z0)*vz3
142 zlc1=zlmin-
max(lx,ly)
143 zlc2=zlmax+
max(lx,ly)
153 fvdata(ifv)%XB(3,nnb)=zlc1
154 fvdata(ifv)%XB(1,nnb1+nnb)=xlc
155 fvdata(ifv)%XB(2,nnb1+nnb)=ylc
156 fvdata(ifv)%XB(3,nnb1+nnb)=zlc2
160 nnb=(nbx+1)*(nby+1)*2
165 xxg=x0+xx*vx1+yy*vx2+zz*vx3
166 yyg=y0+xx*vy1+yy*vy2+zz*vy3
167 zzg=z0+xx*vz1+yy*vz2+zz*vz3
177 fvdata(ifv)%BRIC(1,nbric)=(i-1)*(nbx+1)+j
178 fvdata(ifv)%BRIC(2,nbric)=(i-1)*(nbx+1)+j+1
179 fvdata(ifv)%BRIC(3,nbric)=i*(nbx+1)+j+1
180 fvdata(ifv)%BRIC(4,nbric)=i*(nbx+1)+j
181 fvdata(ifv)%BRIC(5,nbric)=nnb1+(i-1)*(nbx+1)+j
182 fvdata(ifv)%BRIC(6,nbric)=nnb1+(i-1)*(nbx+1)+j+1
183 fvdata(ifv)%BRIC(7,nbric)=nnb1+i*(nbx+1)+j+1
184 fvdata(ifv)%BRIC(8,nbric)=nnb1+i*(nbx+1)+j
192 fvdata(ifv)%SFAC(j,k,i)=zero
196 fvdata(ifv)%TBRIC(6+j,i)=0
207 itag(
fvdata(ifv)%BRIC(j,i))=1
217 tnc(nc)=
fvdata(ifv)%BRIC(k,j)
219 nall=nall+itag(
fvdata(ifv)%BRIC(k,j))
230 itag(
fvdata(ifv)%BRIC(j,i))=0
235 itag(
fvdata(ifv)%BRIC(kk,i))=1
240 nall=nall*itag(tnv(1+l,k))
242 IF (nall==1)
fvdata(ifv)%TBRIC(j,i)=tnv(1,k)
246 itag(
fvdata(ifv)%BRIC(kk,i))=0
261 xc=one_over_8*(
fvdata(ifv)%XB(1,n1)+
fvdata(ifv)%XB(1,n2)+
265 yc=one_over_8*(
fvdata(ifv)%XB(2,n1)+
fvdata(ifv)%XB(2,n2)+
269 zc=one_over_8*(
fvdata(ifv)%XB(3,n1)+
fvdata(ifv)%XB(3,n2)+
284 l1=sqrt(vx1**2+vy1**2+vz1**2)
285 l2=sqrt(vx2**2+vy2**2+vz2**2)
286 l3=sqrt(vx3**2+vy3**2+vz3**2)
291 n1=
fvdata(ifv)%BRIC(fac(1,j),i)
292 n2=
fvdata(ifv)%BRIC(fac(2,j),i)
293 n3=
fvdata(ifv)%BRIC(fac(3,j),i)
294 n4=
fvdata(ifv)%BRIC(fac(4,j),i)
323 area1=half*sqrt(nx1**2+ny1**2+nz1**2)
324 area2=half*sqrt(nx2**2+ny2**2+nz2**2)
325 fvdata(ifv)%SFAC(j,1,i)=area1+area2
330 rr=sqrt(nx**2+ny**2+nz**2)
331 xcf=fourth*(x1+x2+x3+x4)
332 ycf=fourth*(y1+y2+y3+y4)
333 zcf=fourth*(z1+z2+z3+z4)
339 fvdata(ifv)%SFAC(j,2,i)=nx/rr
340 fvdata(ifv)%SFAC(j,3,i)=ny/rr
341 fvdata(ifv)%SFAC(j,4,i)=nz/rr
343 fvdata(ifv)%SFAC(j,2,i)=-nx/rr
344 fvdata(ifv)%SFAC(j,3,i)=-ny/rr
345 fvdata(ifv)%SFAC(j,4,i)=-nz/rr