43 D F18, F28, F38, PX1H1,
44 E PX1H2, PX1H3, PX2H1, PX2H2,
45 F PX2H3, PX3H1, PX3H2, PX3H3,
46 G PX4H1, PX4H2, PX4H3, VOL,
48 I DELTAX, EANI, PID, GEO,
49 J PARTSAV, IPARTS, OFFG, VOL0,
50 K IPARG1, IFVM_SKIP,NEL, NFT,
51 L MTN, ISMSTR, JLAG, JHBE)
59#include "implicit_f.inc"
79 INTEGER,
INTENT(IN) :: NEL
80 INTEGER,
INTENT(IN) :: NFT
81 INTEGER,
INTENT(IN) :: MTN
82 INTEGER,
INTENT(IN) :: ISMSTR
83 INTEGER,
INTENT(IN) :: JLAG
84 INTEGER,
INTENT(IN) :: JHBE
85 INTEGER MAT(*),PID(*),IPARTS(*), IPARG1(*)
87 . PM(NPROPM,NUMMAT),GEO(NPROPG,NUMGEO), RHO(*),OFF(*),
88 . VX1(*),VX2(*),VX3(*),VX4(*),VX5(*),VX6(*),VX7(*),VX8(*),
89 . VY1(*),VY2(*),VY3(*),VY4(*),VY5(*),VY6(*),VY7(*),VY8(*),
90 . VZ1(*),VZ2(*),VZ3(*),VZ4(*),VZ5(*),VZ6(*),VZ7(*),VZ8(*),
91 . F11(*),F21(*),F31(*),F12(*),F22(*),F32(*),
92 . F13(*),F23(*),F33(*),(*),F24(*),F34(*),
93 . F15(*),F25(*),F35(*),F16(*),F26(*),F36(*),
94 . F17(*),F27(*),F37(*),F18(*),(*),F38(*),
95 . PX1H1(*), PX1H2(*), PX1H3(*),
96 . PX2H1(*), PX2H2(*), PX2H3(*),
97 . PX3H1(*), PX3H2(*), PX3H3(*),
98 . PX4H1(*), PX4H2(*), PX4H3(*),EANI(*),PARTSAV(NPSAV,*),
99 . VOL(*),CXX(*),VIS(*),VD2(*),DELTAX(*) ,OFFG(*),VOL0(*)
103 INTEGER I, FLUID,MX, J, II, IC, (MVSIZ+1), MT, IFVM_SKIP
105 . caq(mvsiz), fcl(mvsiz), fcq(mvsiz),ehou(mvsiz),
106 . hx1(mvsiz), hx2(mvsiz), hx3(mvsiz), hx4(mvsiz),
107 . hy1(mvsiz), hy2(mvsiz), hy3(mvsiz), hy4(mvsiz),
108 . hz1(mvsiz), hz2(mvsiz), hz3(mvsiz), hz4(mvsiz),
109 . g11(mvsiz),g21(mvsiz),g31(mvsiz),g41(mvsiz),
111 . g12(mvsiz),g22(mvsiz),g32(mvsiz),g42(mvsiz
112 . g52(mvsiz),g62(mvsiz),g72(mvsiz),g82(mvsiz),
113 . g13(mvsiz),g23(mvsiz),g33(mvsiz),g43(mvsiz),
114 . g53(mvsiz),g63(mvsiz),g73(mvsiz),g83(mvsiz),
115 . len(mvsiz),rho0(mvsiz),
119 . hgx1(mvsiz), hgx2(mvsiz), hgx3(mvsiz), hgx4(mvsiz),
120 . hgy1(mvsiz), hgy2(mvsiz), hgy3(mvsiz), hgy4(mvsiz),
121 . hgz1(mvsiz), hgz2(mvsiz), hgz3(mvsiz), hgz4(mvsiz)
123 . vx3478, vx2358, vx1467, vx1256,
124 . vy3478, vy2358, vy1467, vy1256,
125 . vz3478, vz2358, vz1467, vz1256
128 IF(iparg1(64)==1 .OR. (mtn==17 .AND.
ale%UPWIND%UPWM<2) .OR. int22
THEN
166 caq(i)=fourth*off(i)*geo(13,mt)
171 caq(i)=fourth*off(i)*pm(4,mx)
178 IF(
ale%UPWIND%UPWM>1 .OR. jlag==1)
THEN
182 fcl(i)=ten*caq(i)*vis(i)*deltax(i)
185 fcl(i)=caq(i)*rho(i)*cxx(i)*deltax(i)**2
188 ELSEIF(
ale%UPWIND%UPWM==0)
THEN
190 fcl(i)=caq(i)*rho(i)*cxx(i)*vol(i)**two_third
193 ELSEIF(
ale%UPWIND%UPWM==1)
THEN
195 fcl(i)=caq(i)*rho(i)*deltax(i)**2
196 fcl(i)=
min(fcl(i)*cxx(i),
max(ten*caq(i)*vis(i)*deltax(i),fcl(i)*sqrt(vd2(i))))
208 fcl(i)=caq(i)*rho0(i)*vol(i)**two_third
209 fcq(i)=fcl(i)*caq(i)*hundred
212 ELSEIF(ismstr == 2)
THEN
215 IF(offg(i) > one)
THEN
220 IF(offg(i) > one)
THEN
221 aa = rho0(i)*vol0(i)/
max(em20,vol(i))
222 fcl(i)=caq(i)*aa*vol(i)**two_third
223 fcq(i)=fcl(i)*caq(i)*hundred
226 fcl(i)=caq(i)*rho(i)*vol(i)**two_third
227 fcq(i)=fcl(i)*caq(i)*hundred
233 fcl(i)=caq(i)*rho(i)*vol(i)**two_third
234 fcq(i)=fcl(i)*caq(i)*hundred
241 vx3478=vx3(i)-vx4(i)-vx7(i)+vx8(i)
242 vx2358=vx2(i)-vx3(i)-vx5(i)+vx8(i)
243 vx1467=vx1(i)-vx4(i)-vx6(i)+vx7(i)
244 vx1256=vx1(i)-vx2(i)-vx5(i)+vx6(i)
246 vy3478=vy3(i)-vy4(i)-vy7(i)+vy8(i)
247 vy2358=vy2(i)-vy3(i)-vy5(i)+vy8(i)
248 vy1467=vy1(i)-vy4(i)-vy6(i)+vy7(i)
249 vy1256=vy1(i)-vy2(i)-vy5(i)+vy6(i)
251 vz3478=vz3(i)-vz4(i)-vz7(i)+vz8(i)
252 vz2358=vz2(i)-vz3(i)-vz5(i)+vz8(i)
253 vz1467=vz1(i)-vz4(i)-vz6(i)+vz7(i)
254 vz1256=vz1(i)-vz2(i)-vz5(i)+vz6(i)
256 hgx1(i)=vx1467-vx2358
257 hgx2(i)=vx1467+vx2358
258 hgx3(i)=vx1256-vx3478
259 hgx4(i)=vx1256+vx3478
261 hgy1(i)=vy1467-vy2358
262 hgy2(i)=vy1467+vy2358
263 hgy3(i)=vy1256-vy3478
264 hgy4(i)=vy1256+vy3478
266 hgz1(i)=vz1467-vz2358
267 hgz2(i)=vz1467+vz2358
268 hgz3(i)=vz1256-vz3478
269 hgz4(i)=vz1256+vz3478
273 hx1(i)=hgx1(i)*(fcl(i)+abs(hgx1(i))*fcq(i))
274 hx2(i)=hgx2(i)*(fcl(i)+abs(hgx2(i))*fcq(i))
275 hx3(i)=hgx3(i)*(fcl(i)+abs(hgx3(i))*fcq(i))
276 hx4(i)=hgx4(i)*(fcl(i)+abs(hgx4(i))*fcq(i))
278 hy1(i)=hgy1(i)*(fcl(i)+abs(hgy1(i))*fcq(i))
279 hy2(i)=hgy2(i)*(fcl(i)+abs(hgy2(i))*fcq(i))
280 hy3(i)=hgy3(i)*(fcl(i)+abs(hgy3(i))*fcq(i))
281 hy4(i)=hgy4(i)*(fcl(i)+abs(hgy4(i))*fcq(i))
283 hz1(i)=hgz1(i)*(fcl(i)+abs(hgz1(i))*fcq(i))
284 hz2(i)=hgz2(i)*(fcl(i)+abs(hgz2(i))*fcq(i))
285 hz3(i)=hgz3(i)*(fcl(i)+abs(hgz3(i))*fcq(i))
286 hz4(i)=hgz4(i)*(fcl(i)+abs(hgz4(i))*fcq(i))
290 f11(i) =-hx1(i)-hx2(i)-hx3(i)-hx4(i)
291 f12(i) = hx1(i)-hx2(i)+hx3(i)+hx4(i)
292 f13(i) =-hx1(i)+hx2(i)+hx3(i)-hx4(i)
293 f14(i) = hx1(i)+hx2(i)-hx3(i)+hx4(i)
294 f15(i) =-hx1(i)+hx2(i)+hx3(i)+hx4(i)
295 f16(i) = hx1(i)+hx2(i)-hx3(i)-hx4(i)
296 f17(i) =-hx1(i)-hx2(i)-hx3(i)+hx4(i)
297 f18(i) = hx1(i)-hx2(i)+hx3(i)-hx4(i)
299 f21(i) =-hy1(i)-hy2(i)-hy3(i)-hy4(i)
300 f22(i) = hy1(i)-hy2(i)+hy3(i)+hy4(i)
301 f23(i) =-hy1(i)+hy2(i)+hy3(i)-hy4(i)
303 f25(i) =-hy1(i)+hy2(i)+hy3(i)+hy4(i)
304 f26(i) = hy1(i)+hy2(i)-hy3(i)-hy4(i)
305 f27(i) =-hy1(i)-hy2(i)-hy3(i)+hy4(i)
306 f28(i) = hy1(i)-hy2(i)+hy3(i)-hy4(i)
308 f31(i) =-hz1(i)-hz2(i)-hz3(i)-hz4(i)
309 f32(i) = hz1(i)-hz2(i)+hz3(i)+hz4(i)
310 f33(i) =-hz1(i)+hz2(i)+hz3(i)-hz4(i)
311 f34(i) = hz1(i)+hz2(i)-hz3(i)+hz4(i)
312 f35(i) =-hz1(i)+hz2(i)+hz3(i)+hz4(i)
313 f36(i) = hz1(i)+hz2(i)-hz3(i)-hz4(i)
314 f37(i) =-hz1(i)-hz2(i)-hz3(i)+hz4(i)
315 f38(i) = hz1(i)-hz2(i)+hz3(i)-hz4(i)
327 hgx1(i) = g11(i)*vx1(i)+g21(i)*vx2(i)+g31(i)*vx3(i)+g41(i)*vx4(i)+g51(i)*vx5(i)+g61(i)*vx6(i)+g71(i)*vx7(i)+g81(i)*vx8(i)
328 hgy1(i) = g11(i)*vy1(i)+g21(i)*vy2(i)+g31(i)*vy3(i)+g41(i)*vy4(i)+g51(i)*vy5(i)+g61(i)*vy6(i)+g71(i)*vy7(i)+g81(i)*vy8(i)
329 hgz1(i) = g11(i)*vz1(i)+g21(i)*vz2(i)+g31(i)*vz3(i)+g41(i)*vz4(i)+g51(i)*vz5(i)+g61(i)*vz6(i)+g71(i)*vz7(i)+g81(i)*vz8(i)
341 hgx2(i)=g12(i)*vx1(i)+g22(i)*vx2(i)+g32(i)*vx3(i)+g42(i)*vx4(i)+g52(i)*vx5(i)+g62(i)*vx6(i)+g72(i)*vx7(i)+g82(i)*vx8(i)
342 hgy2(i)=g12(i)*vy1(i)+g22(i)*vy2(i)+g32(i)*vy3(i)+g42(i)*vy4(i)+g52(i)*vy5(i)+g62(i)*vy6(i)+g72(i)*vy7(i)+g82(i)*vy8(i)
343 hgz2(i)=g12(i)*vz1(i)+g22(i)*vz2(i)+g32(i)*vz3(i)+g42(i)*vz4(i)+g52(i)*vz5(i)+g62(i)*vz6(i)+g72(i)*vz7(i)+g82(i)*vz8(i)
355 hgx3(i)=g13(i)*vx1(i)+g23(i)*vx2(i)+g33(i)*vx3(i)+g43(i)*vx4(i)+g53(i)*vx5(i)+g63(i)*vx6(i)+g73(i)*vx7(i)+g83(i)*vx8(i)
356 hgy3(i)=g13(i)*vy1(i)+g23(i)*vy2(i)+g33(i)*vy3(i)+g43(i)*vy4(i)+g53(i)*vy5(i)+g63(i)*vy6(i)+g73(i)*vy7(i)+g83(i)*vy8(i)
357 hgz3(i)=g13(i)*vz1(i)+g23(i)*vz2(i)+g33(i)*vz3(i)+g43(i)*vz4(i)+g53(i)*vz5(i)+g63(i)*vz6(i)+g73(i)*vz7(i)+g83(i)*vz8(i)
362 hgx4(i)=vx1(i)-vx2(i)+vx3(i)-vx4(i)-vx5(i)+vx6(i)-vx7(i)+vx8(i)
363 hgy4(i)=vy1(i)-vy2(i)+vy3(i)-vy4(i)-vy5(i)+vy6(i)-vy7(i)+vy8(i)
364 hgz4(i)=vz1(i)-vz2(i)+vz3(i)-vz4(i)-vz5(i)+vz6(i)-vz7(i)+vz8(i)
368 hx1(i)=hgx1(i)*(fcl(i)+abs(hgx1(i))*fcq(i))
369 hx2(i)=hgx2(i)*(fcl(i)+abs(hgx2(i))*fcq(i))
370 hx3(i)=hgx3(i)*(fcl(i)+abs(hgx3(i))*fcq(i))
371 hx4(i)=hgx4(i)*(fcl(i)+abs(hgx4(i))*fcq(i))
373 hy1(i)=hgy1(i)*(fcl(i)+abs(hgy1(i))*fcq(i))
374 hy2(i)=hgy2(i)*(fcl(i)+abs(hgy2(i))*fcq(i))
376 hy4(i)=hgy4(i)*(fcl(i)+abs(hgy4(i))*fcq(i))
378 hz1(i)=hgz1(i)*(fcl(i)+abs(hgz1(i))*fcq(i))
379 hz2(i)=hgz2(i)*(fcl(i)+abs(hgz2(i))*fcq(i))
380 hz3(i)=hgz3(i)*(fcl(i)+abs(hgz3(i))*fcq(i))
381 hz4(i)=hgz4(i)*(fcl(i)+abs(hgz4(i))*fcq(i))
385 f11(i) =-g11(i)*hx1(i)-g12(i)*hx2(i)-g13(i)*hx3(i)-hx4(i)
386 f12(i) =-g21(i)*hx1(i)-g22(i)*hx2(i)-g23(i)*hx3(i)+hx4(i)
387 f13(i) =-g31(i)*hx1(i)-g32(i)*hx2(i)-g33(i)*hx3(i)-hx4(i)
388 f14(i) =-g41(i)*hx1(i)-g42(i)*hx2(i)-g43(i)*hx3(i)+hx4(i)
389 f15(i) =-g51(i)*hx1(i)-g52(i)*hx2(i)-g53(i)*hx3(i)+hx4(i)
390 f16(i) =-g61(i)*hx1(i)-g62(i)*hx2(i)-g63(i)*hx3(i)-hx4(i)
391 f17(i) =-g71(i)*hx1(i)-g72(i)*hx2(i)-g73(i)*hx3(i)+hx4(i)
392 f18(i) =-g81(i)*hx1(i)-g82(i)*hx2(i)-g83(i)*hx3(i)-hx4(i)
394 f21(i) =-g11(i)*hy1(i)-g12(i)*hy2(i)-g13(i)*hy3(i)-hy4(i)
395 f22(i) =-g21(i)*hy1(i)-g22(i)*hy2(i)-g23(i)*hy3(i)+hy4(i)
396 f23(i) =-g31(i)*hy1(i)-g32(i)*hy2(i)-g33(i)*hy3(i)-hy4(i)
397 f24(i) =-g41(i)*hy1(i)-g42(i)*hy2(i)-g43(i)*hy3(i)+hy4(i)
398 f25(i) =-g51(i)*hy1(i)-g52(i)*hy2(i)-g53(i)*hy3(i)+hy4(i)
399 f26(i) =-g61(i)*hy1(i)-g62(i)*hy2
400 f27(i) =-g71(i)*hy1(i)-g72(i)*hy2(i)-g73(i)*hy3(i)+hy4(i)
401 f28(i) =-g81(i)*hy1(i)-g82(i)*hy2(i)-g83(i)*hy3(i)-hy4(i)
403 f31(i) =-g11(i)*hz1(i)-g12
404 f32(i) =-g21(i)*hz1(i)-g22(i)*hz2(i)-g23(i)*hz3(i)+hz4(i)
405 f33(i) =-g31(i)*hz1(i)-g32(i)*hz2(i)-g33(i)*hz3(i)-hz4(i)
406 f34(i) =-g41(i)*hz1(i)-g42(i)*hz2(i)-g43(i)*hz3(i)+hz4(i)
407 f35(i) =-g51(i)*hz1(i)-g52(i)*hz2(i)-g53(i)*hz3(i)+hz4(i)
408 f36(i) =-g61(i)*hz1(i)-g62(i)*hz2(i)-g63(i)*hz3(i)-hz4(i)
409 f37(i) =-g71(i)*hz1(i)-g72(i)*hz2(i)-g73(i)*hz3(i)+hz4(i)
410 f38(i) =-g81(i)*hz1(i)-g82(i)*hz2(i)-g83(i)*hz3(i)-hz4(i)
416 & hz1(i)*hgz1(i) + hz2(i)*hgz2(i) +
417 & hz3(i)*hgz3(i) + hz4(i)*hgz4(i) +
418 & hx1(i)*hgx1(i) + hx2(i)*hgx2(i) +
420 & hy1(i)*hgy1(i) + hy2(i)*hgy2(i) +
421 & hy3(i)*hgy3(i) + hy4(i)*hgy4(i) )
426 ehourt= ehourt+ehou(i)
436 partsav(8,mx)=partsav(8,mx) + ehou(i)
442 IF (iparts(j)/=iparts(j-1))
THEN
450 IF (jst(ii+1)-jst(ii)>15)
THEN
451#include "vectorize.inc"
452 DO j=jst(ii),jst(ii+1)-1
453 partsav(8,mx)=partsav(8,mx) + ehou(j)
456 DO j=jst(ii),jst(ii+1)-1
457 partsav(8,mx)=partsav(8,mx) + ehou(j)
463 ehour = ehour + ehourt
466#include "vectorize.inc"
468 eani(nft+i) = eani(nft+i)+ehou(i)/
max(em30,rho(i)*vol(i))
subroutine shvis3(pm, rho, off, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, px1h1, px1h2, px1h3, px2h1, px2h2, px2h3, px3h1, px3h2, px3h3, px4h1, px4h2, px4h3, vol, mat, cxx, vis, vd2, deltax, eani, pid, geo, partsav, iparts, offg, vol0, iparg1, ifvm_skip, nel, nft, mtn, ismstr, jlag, jhbe)