33 SUBROUTINE lecfvbag(NFVMESH, MONVOL, VOLMON, X)
41#include "implicit_f.inc"
53 INTEGER NFVMESH, MONVOL(*)
59 INTEGER I, ID, NBX, NBY, K1, K2, KIBJET, KIBHOL, KIBALE, KK1, N,
60 . ITYP, NN, KI1, J, JJ, NSTEP, IV(10), IFVI, NBZ, IFV
62 . vx3, vy3, vz3, vx1, vy1, vz1, dx0, dy0, dz0, lx, ly,
norm,
63 . vvx3, vvy3, vvz3, norm2, ss, vvx1, vvy1, vvz1, vvx2,
64 . vvy2, vvz2, lxmax, lymax, xx, yy, zz, xl, yl, x0, y0, z0,
67 . ,
DIMENSION(:,:),
ALLOCATABLE :: xxx
70 READ(iin,
'(I10)') ifvi
72 READ(iin,
'(2I10)') id, nstep
73 IF (nstep==0) nstep=20
74 READ(iin,
'(3F20.0)') vx3, vy3, vz3
75 READ(iin,
'(3F20.0)') vx1, vy1, vz1
76 READ(iin,
'(3F20.0)') dx0, dy0, dz0
77 READ(iin,
'(3F20.0)') lx, ly, lz
78 READ(iin,
'(3I10)') nbx, nby, nbz
83 kibhol=kibjet+libagjet
84 kibale=kibhol+libaghol
87 IF (monvol(k1)==id)
THEN
90 WRITE(iout,
'(A33,I8,A38)')
91 .
' /FVMBAG/REMESH : MON. VOLUME ID ',id,
' IS NOT OF TYPE FVMBAG'//
96 norm=sqrt(vx3**2+vy3**2+vz3**2)
101 norm=sqrt(vx3**2+vy3**2+vz3**2)
106 norm2=vx1**2+vy1**2+vz1**2
107 IF (norm2==zero)
THEN
112 x0=volmon(kk1-1+41)+dx0
113 y0=volmon(kk1-1+42)+dy0
114 z0=volmon(kk1-1+43)+dz0
115 IF (lx==zero) lx=volmon(kk1-1+44)
116 IF (ly==zero) ly=volmon(kk1-1+45)
117 IF (lz==zero) lz=volmon(kk1-1+53)
118 IF (nbx==0) nbx=monvol(k1-1+54)
119 IF (nby==0) nby=monvol(k1-1+55)
120 IF (nbz==0) nbz=monvol(k1-1+65)
122 ss=vx1*vvx3+vy1*vvy3+vz1*vvz3
126 norm=sqrt(vvx1**2+vvy1**2+vvz1**2)
129 .
' ** ERROR IN FVMBAG MESHING DATA '
131 .
' ** ERROR IN FVMBAG MESHING DATA '
132 WRITE(iout,
'(A14,I8)')
' MONVOL ID ',id
134 .
' NEW CUT DIRECTIONS ARE COLINEAR'
140 vvx2=vvy3*vvz1-vvz3*vvy1
141 vvy2=vvz3*vvx1-vvx3*vvz1
142 vvz2=vvx3*vvy1-vvy3*vvx1
148 ki1=kibale+monvol(k1-1+31)
154 IF (ispmd==
fvspmd(ifv)%PMAIN-1)
THEN
159 xl=(xx-x0)*vvx1+(yy-y0)*vvy1+(zz-z0)*vvz1
160 yl=(xx-x0)*vvx2+(yy-y0)*vvy2+(zz-z0)*vvz2
161 zl=(xx-x0)*vvx3+(yy-y0)*vvy3+(zz-z0)*vvz3
162 lxmax=
max(lxmax,abs(xl))
163 lymax=
max(lymax,abs(yl))
164 lzmax=
max(lzmax,abs(zl))
170 WRITE(iout,
'(A14,I8,A9)')
171 .
' ** MONVOL ID ',id,
' (FVMBAG)'
172 WRITE(iout,
'(A)')
' IN LOCAL FRAME DIRECTION 1'
173 WRITE(iout,
'(A18,G11.4,A33,G11.4,G11.4)')
174 .
' GIVEN LENGTH ',lx,
175 .
' IS SMALLER THAN BOUNDING LENGTH ',lxmax
177 WRITE(iout,
'(A20,G11.4)')
' IT IS RESET TO ',lx
180 WRITE(iout,
'(A14,I8,A9)')
181 .
' ** MONVOL ID ',id,
' (FVMBAG)'
182 WRITE(iout,
'(A)')
' IN LOCAL FRAME DIRECTION 2'
183 WRITE(iout,
'(A18,G11.4,A33,G11.4,G11.4)')
184 .
' GIVEN LENGTH ',ly,
185 .
' IS SMALLER THAN BOUNDING LENGTH ',lymax
187 WRITE(iout,
'(A20,G11.4)')
' IT IS RESET TO ',ly
218 monvol(k1-1+58)=nstep