30 SUBROUTINE fvbric(IVOLU, RVOLU, IBUF, X, NN)
38#include
"implicit_f.inc"
42 INTEGER IVOLU(*), IBUF(*), NN
48 INTEGER I, II, NBX, NBY, NBRIC, NNB, IFV, NNB1, J, K, NV, NALL,
49 . NC, TNC(4), TNV(5,6), KK, L, N1, N2, N3, N4, N5, N6, N7,
52 . vx3, vy3, vz3, vx1, vy1, vz1,
norm, ss, vx2, vy2, vz2,
53 . x0, y0, z0, zlmin, zlmax, xx, yy, zz, zl, lx, ly, dx, dy,
54 . xlc, ylc, zlc1, zlc2, xxg, yyg, zzg, xc, yc, zc, l1, l2,
55 . l3, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4,
56 . nx1, ny1, nz1, nx2, ny2, nz2, area1, area2, nx, ny, nz,
57 . rr, xcf, ycf, zcf, vx, vy, vz
58 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ITAG
75 norm=sqrt(vx3**2+vy3**2+vz3**2)
79 ss=vx3*vx1+vy3*vy1+vz3*vz1
83 norm=sqrt(vx1**2+vy1**2+vz1**2)
102 zl=(xx-x0)*vx3+(yy-y0)*vy3+(zz-z0)*vz3
115 zlc1=zlmin-
max(lx,ly)
116 zlc2=zlmax+
max(lx,ly)
126 fvdata(ifv)%XB(3,nnb)=zlc1
127 fvdata(ifv)%XB(1,nnb1+nnb)=xlc
128 fvdata(ifv)%XB(2,nnb1+nnb)=ylc
129 fvdata(ifv)%XB(3,nnb1+nnb)=zlc2
133 nnb=(nbx+1)*(nby+1)*2
138 xxg=x0+xx*vx1+yy*vx2+zz*vx3
139 yyg=y0+xx*vy1+yy*vy2+zz*vy3
140 zzg=z0+xx*vz1+yy*vz2+zz*vz3
150 fvdata(ifv)%BRIC(1,nbric)=(i-1)*(nbx+1)+j
151 fvdata(ifv)%BRIC(2,nbric)=(i-1)*(nbx+1)+j+1
152 fvdata(ifv)%BRIC(3,nbric)=i*(nbx+1)+j+1
153 fvdata(ifv)%BRIC(4,nbric)=i*(nbx+1)+j
154 fvdata(ifv)%BRIC(5,nbric)=nnb1+(i-1)*(nbx+1)+j
155 fvdata(ifv)%BRIC(6,nbric)=nnb1+(i-1)*(nbx+1)+j+1
156 fvdata(ifv)%BRIC(7,nbric)=nnb1+i*(nbx+1)+j+1
157 fvdata(ifv)%BRIC(8,nbric)=nnb1+i*(nbx+1)+j
165 fvdata(ifv)%SFAC(j,k,i)=zero
169 fvdata(ifv)%TBRIC(6+j,i)=0
180 itag(
fvdata(ifv)%BRIC(j,i))=1
188 IF (itag(
fvdata(ifv)%BRIC(k,j))==1)
THEN
190 tnc(nc)=
fvdata(ifv)%BRIC(k,j)
192 nall=nall+itag(
fvdata(ifv)%BRIC(k,j))
203 itag(
fvdata(ifv)%BRIC(j,i))=0
208 itag(
fvdata(ifv)%BRIC(kk,i))=1
213 nall=nall*itag(tnv(1+l,k))
215 IF (nall==1)
fvdata(ifv)%TBRIC(j,i)=tnv
219 itag(
fvdata(ifv)%BRIC(kk,i))=0
234 xc=one_over_8*(
fvdata(ifv)%XB(1,n1)+
fvdata(ifv)%XB(1,n2)+
238 yc=one_over_8*(
fvdata(ifv)%XB(2,n1)+
fvdata(ifv)%XB(2,n2)+
242 zc=one_over_8*(
fvdata(ifv)%XB(3,n1)+
fvdata(ifv)%XB(3,n2)+
257 l1=sqrt(vx1**2+vy1**2+vz1**2)
258 l2=sqrt(vx2**2+vy2**2+vz2**2)
259 l3=sqrt(vx3**2+vy3**2+vz3**2)
264 n1=
fvdata(ifv)%BRIC(fac(1,j),i)
265 n2=
fvdata(ifv)%BRIC(fac(2,j),i)
266 n3=
fvdata(ifv)%BRIC(fac(3,j),i)
267 n4=
fvdata(ifv)%BRIC(fac(4,j),i)
296 area1=half*sqrt(nx1**2+ny1**2+nz1**2)
297 area2=half*sqrt(nx2**2+ny2**2+nz2**2)
298 fvdata(ifv)%SFAC(j,1,i)=area1+area2
303 rr=sqrt(nx**2+ny**2+nz**2)
304 xcf=fourth*(x1+x2+x3+x4)
305 ycf=fourth*(y1+y2+y3+y4)
306 zcf=fourth*(z1+z2+z3+z4)
313 fvdata(ifv)%SFAC(j,2,i)=nx/rr
314 fvdata(ifv)%SFAC(j,3,i)=ny/rr
315 fvdata(ifv)%SFAC(j,4,i)=nz/rr
317 fvdata(ifv)%SFAC(j,2,i)=-nx/rr
318 fvdata(ifv)%SFAC(j,3,i)=-ny/rr
319 fvdata(ifv)%SFAC(j,4,i)=-nz/rr