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, NSTEP, 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