32 . V , RHO, VOL , MOM ,IXS ,
33 . IPM, MAT, IPARG1, NPF ,TF ,
43#include "implicit_f.inc"
51#include "vect01_c.inc"
58 my_real :: V(3,*) , RHO(*) , VOL(*) , MOM(NEL,3) , TF(*) , PM(NPROPM,*) , SSP(*), SIG(NEL,6)
59 INTEGER :: IXS(NIXS,*), IPM(NPROPMI,*), MAT(MVSIZ), IPARG1(NPARG), NPF(*)
85 INTEGER :: I, J, II, IALEFVM_FLG,IALEL,IVxFUN, IVyFUN, IVzFUN, MX, MLW, ITYP
86 my_real :: SUBVOL, Vcell(3), Vnod(3,8),
87 . VX1(MVSIZ), VX2(MVSIZ), VX3(MVSIZ), VX4(MVSIZ)
93 my_real,
EXTERNAL :: finter
99 ialel = iparg1(7)+iparg1(11)
122 print *, "** warning int22 : /ale/solver card
"
123 print *, " recommended
VALUE is imom_vel=5
"
124 ALEFVM_Param%IPRINT_2 = 1
129 IF(ALEFVM_Param%ISOLVER>0)THEN
130 IPM(251,MAT(1)) = ALEFVM_Param%ISOLVER
131 ! 0: Default = 1 expect if /ALE/MAT or /EULER/MAT has IFROM flag defined.
134 ! 3 : FVM rho.U average
135 ! 4 : FVM rho.c.U average
136 ! 5 : Godunov Acoustic
142 !-----------------------------------------
144 !-----------------------------------------
150 VX1(I) = V(1,IXS(2,II))
151 VY1(I) = V(2,IXS(2,II))
152 VZ1(I) = V(3,IXS(2,II))
154 VX2(I) = V(1,IXS(3,II))
155 VY2(I) = V(2,IXS(3,II))
156 VZ2(I) = V(3,IXS(3,II))
158 VX3(I) = V(1,IXS(4,II))
159 VY3(I) = V(2,IXS(4,II))
160 VZ3(I) = V(3,IXS(4,II))
162 VX4(I) = V(1,IXS(5,II))
163 VY4(I) = V(2,IXS(5,II))
164 VZ4(I) = V(3,IXS(5,II))
166 VX5(I) = V(1,IXS(6,II))
167 VY5(I) = V(2,IXS(6,II))
168 VZ5(I) = V(3,IXS(6,II))
170 VX6(I) = V(1,IXS(7,II))
171 VY6(I) = V(2,IXS(7,II))
172 VZ6(I) = V(3,IXS(7,II))
174 VX7(I) = V(1,IXS(8,II))
175 VY7(I) = V(2,IXS(8,II))
176 VZ7(I) = V(3,IXS(8,II))
178 VX8(I) = V(1,IXS(9,II))
179 VY8(I) = V(2,IXS(9,II))
180 VZ8(I) = V(3,IXS(9,II))
181 !---cell_velocity---!
182 Vcell(1) = ONE_OVER_8 * (VX1(I)+VX2(I)+VX3(I)+VX4(I)+VX5(I)+VX6(I)+VX7(I)+VX8(I))
183 Vcell(2) = ONE_OVER_8 * (VY1(I)+VY2(I)+VY3(I)+VY4(I)+VY5(I)+VY6(I)+VY7(I)+VY8(I))
184 Vcell(3) = ONE_OVER_8 * (VZ1(I)+VZ2(I)+VZ3(I)+VZ4(I)+VZ5(I)+VZ6(I)+VZ7(I)+VZ8(I))
186 !MOM(I,1:3) = RHO(I) * Vcell(1:3)
187 !rho*VOL* VEL in aconve. VEL is needed before for FLUXES
188 MOM(I,1) = Vcell(1)*RHO(I)
189 MOM(I,2) = Vcell(2)*RHO(I)
190 MOM(I,3) = Vcell(3)*RHO(I)
196 ALEFVM_Buffer%FCELL(1,II) = MOM(I,1)
197 ALEFVM_Buffer%FCELL(2,II) = MOM(I,2)
198 ALEFVM_Buffer%FCELL(3,II) = MOM(I,3)
199 ALEFVM_Buffer%FCELL(4,II) = RHO(I)
200 ALEFVM_Buffer%FCELL(5,II) = SSP(I)
201 ALEFVM_Buffer%FCELL(6,II) = -THIRD*(SIG(I,1)+SIG(I,2)+SIG(I,3))
204 !-----------------------------------------
205 ! MATERIAL BOUNDARY : IMPOSED
206 !-----------------------------------------
223 Vx = Vx0*FINTER(IVxFUN,T0,NPF,TF,DYDX)
229 Vy = Vy0*FINTER(IVyFUN,T0,NPF,TF,DYDX)
235 Vz = Vz0*FINTER(IVzFUN,T0,NPF,TF,DYDX)
245 ALEFVM_Buffer%FCELL(1,II) = MOM(I,1)
246 ALEFVM_Buffer%FCELL(2,II) = MOM(I,2)
247 ALEFVM_Buffer%FCELL(3,II) = MOM(I,3)
248 ALEFVM_Buffer%FCELL(4,II) = RHO(I)
249 ALEFVM_Buffer%FCELL(5,II) = SSP(I)
250 ALEFVM_Buffer%FCELL(6,II) = -THIRD*(SIG(I,1)+SIG(I,2)+SIG(I,3))
252 ELSEIF(ITYP == 3)THEN
262 ALEFVM_Buffer%FCELL(1,II) = MOM(I,1)
263 ALEFVM_Buffer%FCELL(2,II) = MOM(I,2)
264 ALEFVM_Buffer%FCELL(3,II) = MOM(I,3)
265 ALEFVM_Buffer%FCELL(4,II) = RHO(I)
266 ALEFVM_Buffer%FCELL(5,II) = SSP(I)
267 ALEFVM_Buffer%FCELL(6,II) = -THIRD*(SIG(I,1)+SIG(I,2)+SIG(I,3))
subroutine inimom_fvm(v, rho, vol, mom, ixs, ipm, mat, iparg1, npf, tf, pm, ssp, sig, nel)