25 use blockpointers,
only :
nx,
il,
ie,
ny,
jl,
je,
nz,
kl,
ke, &
26 &
spectralsol,
w,
wd,
si,
sid,
sj,
sjd,
sk,
skd,
dw,
dwd,
pori,
porj, &
37 integer(kind=inttype) :: i, j, k, ind, ii
38 real(kind=realtype) :: qsp, qsm, rqsp, rqsm, porvel, porflux
39 real(kind=realtype) :: qspd, qsmd, rqspd, rqsmd
40 real(kind=realtype) :: pa, fs, sface, vnp, vnm
41 real(kind=realtype) :: pad, fsd, sfaced, vnpd, vnmd
42 real(kind=realtype) :: wwx, wwy, wwz, rvol
43 real(kind=realtype) :: wwxd, wwyd, wwzd, rvold
45 real(kind=realtype) :: temp
46 real(kind=realtype) :: temp0
47 real(kind=realtype) :: temp1
48 real(kind=realtype) :: temp2
49 real(kind=realtype) :: temp3
50 real(kind=realtype) :: temp4
69 temp0 =
w(i+1, j, k,
ivx)
70 temp1 =
si(i, j, k, 2)
71 temp2 =
w(i+1, j, k,
ivy)
72 temp3 =
si(i, j, k, 3)
73 temp4 =
w(i+1, j, k,
ivz)
74 vnpd = temp*
wd(i+1, j, k,
ivx) + temp0*
sid(i, j, k, 1) + temp1&
75 & *
wd(i+1, j, k,
ivy) + temp2*
sid(i, j, k, 2) + temp3*
wd(i+1, &
76 & j, k,
ivz) + temp4*
sid(i, j, k, 3)
77 vnp = temp0*temp + temp2*temp1 + temp4*temp3
78 temp4 =
si(i, j, k, 1)
79 temp3 =
w(i, j, k,
ivx)
80 temp2 =
si(i, j, k, 2)
81 temp1 =
w(i, j, k,
ivy)
82 temp0 =
si(i, j, k, 3)
83 temp =
w(i, j, k,
ivz)
84 vnmd = temp4*
wd(i, j, k,
ivx) + temp3*
sid(i, j, k, 1) + temp2*&
85 &
wd(i, j, k,
ivy) + temp1*
sid(i, j, k, 2) + temp0*
wd(i, j, k&
86 & ,
ivz) + temp*
sid(i, j, k, 3)
87 vnm = temp3*temp4 + temp1*temp2 + temp*temp0
108 porvel = porvel*porflux
111 qspd = porvel*(vnpd-sfaced)
112 qsp = (vnp-sface)*porvel
113 qsmd = porvel*(vnmd-sfaced)
114 qsm = (vnm-sface)*porvel
115 temp4 =
w(i+1, j, k,
irho)
116 rqspd = temp4*qspd + qsp*
wd(i+1, j, k,
irho)
118 temp4 =
w(i, j, k,
irho)
119 rqsmd = temp4*qsmd + qsm*
wd(i, j, k,
irho)
124 pad = porflux*(
pd(i+1, j, k)+
pd(i, j, k))
125 pa = porflux*(
p(i+1, j, k)+
p(i, j, k))
135 temp4 =
w(i+1, j, k,
ivx)
136 temp3 =
w(i, j, k,
ivx)
137 temp2 =
si(i, j, k, 1)
138 fsd = temp4*rqspd + rqsp*
wd(i+1, j, k,
ivx) + temp3*rqsmd + &
139 & rqsm*
wd(i, j, k,
ivx) + temp2*pad + pa*
sid(i, j, k, 1)
140 fs = rqsp*temp4 + rqsm*temp3 + pa*temp2
145 temp4 =
w(i+1, j, k,
ivy)
146 temp3 =
w(i, j, k,
ivy)
147 temp2 =
si(i, j, k, 2)
148 fsd = temp4*rqspd + rqsp*
wd(i+1, j, k,
ivy) + temp3*rqsmd + &
149 & rqsm*
wd(i, j, k,
ivy) + temp2*pad + pa*
sid(i, j, k, 2)
150 fs = rqsp*temp4 + rqsm*temp3 + pa*temp2
155 temp4 =
w(i+1, j, k,
ivz)
156 temp3 =
w(i, j, k,
ivz)
157 temp2 =
si(i, j, k, 3)
158 fsd = temp4*rqspd + rqsp*
wd(i+1, j, k,
ivz) + temp3*rqsmd + &
159 & rqsm*
wd(i, j, k,
ivz) + temp2*pad + pa*
sid(i, j, k, 3)
160 fs = rqsp*temp4 + rqsm*temp3 + pa*temp2
165 temp4 =
w(i+1, j, k,
irhoe)
168 fsd = temp4*qspd + qsp*
wd(i+1, j, k,
irhoe) + temp3*qsmd + qsm&
169 & *
wd(i, j, k,
irhoe) + porflux*(temp2*vnpd+vnp*
pd(i+1, j, k)+&
170 &
p(i, j, k)*vnmd+vnm*
pd(i, j, k))
171 fs = qsp*temp4 + qsm*temp3 + porflux*(vnp*temp2+vnm*
p(i, j, k)&
195 temp4 =
sj(i, j, k, 1)
196 temp3 =
w(i, j+1, k,
ivx)
197 temp2 =
sj(i, j, k, 2)
198 temp1 =
w(i, j+1, k,
ivy)
199 temp0 =
sj(i, j, k, 3)
200 temp =
w(i, j+1, k,
ivz)
201 vnpd = temp4*
wd(i, j+1, k,
ivx) + temp3*
sjd(i, j, k, 1) + &
202 & temp2*
wd(i, j+1, k,
ivy) + temp1*
sjd(i, j, k, 2) + temp0*
wd(&
203 & i, j+1, k,
ivz) + temp*
sjd(i, j, k, 3)
204 vnp = temp3*temp4 + temp1*temp2 + temp*temp0
205 temp4 =
sj(i, j, k, 1)
206 temp3 =
w(i, j, k,
ivx)
207 temp2 =
sj(i, j, k, 2)
208 temp1 =
w(i, j, k,
ivy)
209 temp0 =
sj(i, j, k, 3)
210 temp =
w(i, j, k,
ivz)
211 vnmd = temp4*
wd(i, j, k,
ivx) + temp3*
sjd(i, j, k, 1) + temp2*&
212 &
wd(i, j, k,
ivy) + temp1*
sjd(i, j, k, 2) + temp0*
wd(i, j, k&
213 & ,
ivz) + temp*
sjd(i, j, k, 3)
214 vnm = temp3*temp4 + temp1*temp2 + temp*temp0
235 porvel = porvel*porflux
238 qspd = porvel*(vnpd-sfaced)
239 qsp = (vnp-sface)*porvel
240 qsmd = porvel*(vnmd-sfaced)
241 qsm = (vnm-sface)*porvel
242 temp4 =
w(i, j+1, k,
irho)
243 rqspd = temp4*qspd + qsp*
wd(i, j+1, k,
irho)
245 temp4 =
w(i, j, k,
irho)
246 rqsmd = temp4*qsmd + qsm*
wd(i, j, k,
irho)
251 pad = porflux*(
pd(i, j+1, k)+
pd(i, j, k))
252 pa = porflux*(
p(i, j+1, k)+
p(i, j, k))
262 temp4 =
w(i, j+1, k,
ivx)
263 temp3 =
w(i, j, k,
ivx)
264 temp2 =
sj(i, j, k, 1)
265 fsd = temp4*rqspd + rqsp*
wd(i, j+1, k,
ivx) + temp3*rqsmd + &
266 & rqsm*
wd(i, j, k,
ivx) + temp2*pad + pa*
sjd(i, j, k, 1)
267 fs = rqsp*temp4 + rqsm*temp3 + pa*temp2
272 temp4 =
w(i, j+1, k,
ivy)
273 temp3 =
w(i, j, k,
ivy)
274 temp2 =
sj(i, j, k, 2)
275 fsd = temp4*rqspd + rqsp*
wd(i, j+1, k,
ivy) + temp3*rqsmd + &
276 & rqsm*
wd(i, j, k,
ivy) + temp2*pad + pa*
sjd(i, j, k, 2)
277 fs = rqsp*temp4 + rqsm*temp3 + pa*temp2
282 temp4 =
w(i, j+1, k,
ivz)
283 temp3 =
w(i, j, k,
ivz)
284 temp2 =
sj(i, j, k, 3)
285 fsd = temp4*rqspd + rqsp*
wd(i, j+1, k,
ivz) + temp3*rqsmd + &
286 & rqsm*
wd(i, j, k,
ivz) + temp2*pad + pa*
sjd(i, j, k, 3)
287 fs = rqsp*temp4 + rqsm*temp3 + pa*temp2
292 temp4 =
w(i, j+1, k,
irhoe)
295 fsd = temp4*qspd + qsp*
wd(i, j+1, k,
irhoe) + temp3*qsmd + qsm&
296 & *
wd(i, j, k,
irhoe) + porflux*(temp2*vnpd+vnp*
pd(i, j+1, k)+&
297 &
p(i, j, k)*vnmd+vnm*
pd(i, j, k))
298 fs = qsp*temp4 + qsm*temp3 + porflux*(vnp*temp2+vnm*
p(i, j, k)&
321 temp4 =
sk(i, j, k, 1)
322 temp3 =
w(i, j, k+1,
ivx)
323 temp2 =
sk(i, j, k, 2)
324 temp1 =
w(i, j, k+1,
ivy)
325 temp0 =
sk(i, j, k, 3)
326 temp =
w(i, j, k+1,
ivz)
327 vnpd = temp4*
wd(i, j, k+1,
ivx) + temp3*
skd(i, j, k, 1) + &
328 & temp2*
wd(i, j, k+1,
ivy) + temp1*
skd(i, j, k, 2) + temp0*
wd(&
329 & i, j, k+1,
ivz) + temp*
skd(i, j, k, 3)
330 vnp = temp3*temp4 + temp1*temp2 + temp*temp0
331 temp4 =
sk(i, j, k, 1)
332 temp3 =
w(i, j, k,
ivx)
333 temp2 =
sk(i, j, k, 2)
334 temp1 =
w(i, j, k,
ivy)
335 temp0 =
sk(i, j, k, 3)
336 temp =
w(i, j, k,
ivz)
337 vnmd = temp4*
wd(i, j, k,
ivx) + temp3*
skd(i, j, k, 1) + temp2*&
338 &
wd(i, j, k,
ivy) + temp1*
skd(i, j, k, 2) + temp0*
wd(i, j, k&
339 & ,
ivz) + temp*
skd(i, j, k, 3)
340 vnm = temp3*temp4 + temp1*temp2 + temp*temp0
361 porvel = porvel*porflux
364 qspd = porvel*(vnpd-sfaced)
365 qsp = (vnp-sface)*porvel
366 qsmd = porvel*(vnmd-sfaced)
367 qsm = (vnm-sface)*porvel
368 temp4 =
w(i, j, k+1,
irho)
369 rqspd = temp4*qspd + qsp*
wd(i, j, k+1,
irho)
371 temp4 =
w(i, j, k,
irho)
372 rqsmd = temp4*qsmd + qsm*
wd(i, j, k,
irho)
377 pad = porflux*(
pd(i, j, k+1)+
pd(i, j, k))
378 pa = porflux*(
p(i, j, k+1)+
p(i, j, k))
388 temp4 =
w(i, j, k+1,
ivx)
389 temp3 =
w(i, j, k,
ivx)
390 temp2 =
sk(i, j, k, 1)
391 fsd = temp4*rqspd + rqsp*
wd(i, j, k+1,
ivx) + temp3*rqsmd + &
392 & rqsm*
wd(i, j, k,
ivx) + temp2*pad + pa*
skd(i, j, k, 1)
393 fs = rqsp*temp4 + rqsm*temp3 + pa*temp2
398 temp4 =
w(i, j, k+1,
ivy)
399 temp3 =
w(i, j, k,
ivy)
400 temp2 =
sk(i, j, k, 2)
401 fsd = temp4*rqspd + rqsp*
wd(i, j, k+1,
ivy) + temp3*rqsmd + &
402 & rqsm*
wd(i, j, k,
ivy) + temp2*pad + pa*
skd(i, j, k, 2)
403 fs = rqsp*temp4 + rqsm*temp3 + pa*temp2
408 temp4 =
w(i, j, k+1,
ivz)
409 temp3 =
w(i, j, k,
ivz)
410 temp2 =
sk(i, j, k, 3)
411 fsd = temp4*rqspd + rqsp*
wd(i, j, k+1,
ivz) + temp3*rqsmd + &
412 & rqsm*
wd(i, j, k,
ivz) + temp2*pad + pa*
skd(i, j, k, 3)
413 fs = rqsp*temp4 + rqsm*temp3 + pa*temp2
418 temp4 =
w(i, j, k+1,
irhoe)
421 fsd = temp4*qspd + qsp*
wd(i, j, k+1,
irhoe) + temp3*qsmd + qsm&
422 & *
wd(i, j, k,
irhoe) + porflux*(temp2*vnpd+vnp*
pd(i, j, k+1)+&
423 &
p(i, j, k)*vnmd+vnm*
pd(i, j, k))
424 fs = qsp*temp4 + qsm*temp3 + porflux*(vnp*temp2+vnm*
p(i, j, k)&
451 j = mod(ii/
nx,
ny) + 2
453 temp4 =
w(i, j, k,
irho)
455 rvol = temp4*
vol(i, j, k)
456 temp4 =
w(i, j, k,
ivy)
457 temp3 =
w(i, j, k,
ivz)
458 temp2 = wwy*temp3 - wwz*temp4
459 dwd(i, j, k,
imx) =
dwd(i, j, k,
imx) + temp2*rvold + rvol*(&
460 & temp3*wwyd+wwy*
wd(i, j, k,
ivz)-temp4*wwzd-wwz*
wd(i, j, k,
ivy&
462 dw(i, j, k,
imx) =
dw(i, j, k,
imx) + rvol*temp2
463 temp4 =
w(i, j, k,
ivz)
464 temp3 =
w(i, j, k,
ivx)
465 temp2 = wwz*temp3 - wwx*temp4
466 dwd(i, j, k,
imy) =
dwd(i, j, k,
imy) + temp2*rvold + rvol*(&
467 & temp3*wwzd+wwz*
wd(i, j, k,
ivx)-temp4*wwxd-wwx*
wd(i, j, k,
ivz&
469 dw(i, j, k,
imy) =
dw(i, j, k,
imy) + rvol*temp2
470 temp4 =
w(i, j, k,
ivx)
471 temp3 =
w(i, j, k,
ivy)
472 temp2 = wwx*temp3 - wwy*temp4
473 dwd(i, j, k,
imz) =
dwd(i, j, k,
imz) + temp2*rvold + rvol*(&
474 & temp3*wwxd+wwx*
wd(i, j, k,
ivy)-temp4*wwyd-wwy*
wd(i, j, k,
ivx&
476 dw(i, j, k,
imz) =
dw(i, j, k,
imz) + rvol*temp2
489 use blockpointers,
only :
nx,
il,
ie,
ny,
jl,
je,
nz,
kl,
ke, &
490 &
spectralsol,
w,
si,
sj,
sk,
dw,
pori,
porj,
pork,
indfamilyi, &
501 integer(kind=inttype) :: i, j, k, ind, ii
502 real(kind=realtype) :: qsp, qsm, rqsp, rqsm, porvel, porflux
503 real(kind=realtype) :: pa, fs, sface, vnp, vnm
504 real(kind=realtype) :: wwx, wwy, wwz, rvol
520 vnp =
w(i+1, j, k,
ivx)*
si(i, j, k, 1) +
w(i+1, j, k,
ivy)*
si(&
521 & i, j, k, 2) +
w(i+1, j, k,
ivz)*
si(i, j, k, 3)
522 vnm =
w(i, j, k,
ivx)*
si(i, j, k, 1) +
w(i, j, k,
ivy)*
si(i, j&
523 & , k, 2) +
w(i, j, k,
ivz)*
si(i, j, k, 3)
542 porvel = porvel*porflux
545 qsp = (vnp-sface)*porvel
546 qsm = (vnm-sface)*porvel
547 rqsp = qsp*
w(i+1, j, k,
irho)
548 rqsm = qsm*
w(i, j, k,
irho)
552 pa = porflux*(
p(i+1, j, k)+
p(i, j, k))
559 fs = rqsp*
w(i+1, j, k,
ivx) + rqsm*
w(i, j, k,
ivx) + pa*
si(i, &
563 fs = rqsp*
w(i+1, j, k,
ivy) + rqsm*
w(i, j, k,
ivy) + pa*
si(i, &
567 fs = rqsp*
w(i+1, j, k,
ivz) + rqsm*
w(i, j, k,
ivz) + pa*
si(i, &
571 fs = qsp*
w(i+1, j, k,
irhoe) + qsm*
w(i, j, k,
irhoe) + porflux&
572 & *(vnp*
p(i+1, j, k)+vnm*
p(i, j, k))
592 vnp =
w(i, j+1, k,
ivx)*
sj(i, j, k, 1) +
w(i, j+1, k,
ivy)*
sj(&
593 & i, j, k, 2) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 3)
594 vnm =
w(i, j, k,
ivx)*
sj(i, j, k, 1) +
w(i, j, k,
ivy)*
sj(i, j&
595 & , k, 2) +
w(i, j, k,
ivz)*
sj(i, j, k, 3)
614 porvel = porvel*porflux
617 qsp = (vnp-sface)*porvel
618 qsm = (vnm-sface)*porvel
619 rqsp = qsp*
w(i, j+1, k,
irho)
620 rqsm = qsm*
w(i, j, k,
irho)
624 pa = porflux*(
p(i, j+1, k)+
p(i, j, k))
631 fs = rqsp*
w(i, j+1, k,
ivx) + rqsm*
w(i, j, k,
ivx) + pa*
sj(i, &
635 fs = rqsp*
w(i, j+1, k,
ivy) + rqsm*
w(i, j, k,
ivy) + pa*
sj(i, &
639 fs = rqsp*
w(i, j+1, k,
ivz) + rqsm*
w(i, j, k,
ivz) + pa*
sj(i, &
643 fs = qsp*
w(i, j+1, k,
irhoe) + qsm*
w(i, j, k,
irhoe) + porflux&
644 & *(vnp*
p(i, j+1, k)+vnm*
p(i, j, k))
663 vnp =
w(i, j, k+1,
ivx)*
sk(i, j, k, 1) +
w(i, j, k+1,
ivy)*
sk(&
664 & i, j, k, 2) +
w(i, j, k+1,
ivz)*
sk(i, j, k, 3)
665 vnm =
w(i, j, k,
ivx)*
sk(i, j, k, 1) +
w(i, j, k,
ivy)*
sk(i, j&
666 & , k, 2) +
w(i, j, k,
ivz)*
sk(i, j, k, 3)
685 porvel = porvel*porflux
688 qsp = (vnp-sface)*porvel
689 qsm = (vnm-sface)*porvel
690 rqsp = qsp*
w(i, j, k+1,
irho)
691 rqsm = qsm*
w(i, j, k,
irho)
695 pa = porflux*(
p(i, j, k+1)+
p(i, j, k))
702 fs = rqsp*
w(i, j, k+1,
ivx) + rqsm*
w(i, j, k,
ivx) + pa*
sk(i, &
706 fs = rqsp*
w(i, j, k+1,
ivy) + rqsm*
w(i, j, k,
ivy) + pa*
sk(i, &
710 fs = rqsp*
w(i, j, k+1,
ivz) + rqsm*
w(i, j, k,
ivz) + pa*
sk(i, &
714 fs = qsp*
w(i, j, k+1,
irhoe) + qsm*
w(i, j, k,
irhoe) + porflux&
715 & *(vnp*
p(i, j, k+1)+vnm*
p(i, j, k))
740 j = mod(ii/
nx,
ny) + 2
742 rvol =
w(i, j, k,
irho)*
vol(i, j, k)
744 & wwz*
w(i, j, k,
ivy))
746 & wwx*
w(i, j, k,
ivz))
748 & wwy*
w(i, j, k,
ivx))
773 use blockpointers,
only :
nx,
ny,
nz,
il,
jl,
kl,
ie,
je,
ke,
ib, &
774 &
jb,
kb,
w,
wd,
p,
pd,
pori,
porj,
pork,
fw,
fwd,
gamma,
si,
sid,
sj,&
788 real(kind=realtype),
parameter :: dpmax=0.25_realtype
789 real(kind=realtype),
parameter :: epsacoustic=0.25_realtype
790 real(kind=realtype),
parameter :: epsshear=0.025_realtype
791 real(kind=realtype),
parameter :: omega=0.5_realtype
792 real(kind=realtype),
parameter :: oneminomega=
one-omega
796 integer(kind=inttype) :: i, j, k, ind, ii
797 real(kind=realtype) :: plim, sface
798 real(kind=realtype) :: plimd, sfaced
799 real(kind=realtype) :: sfil, fis2, fis4
800 real(kind=realtype) :: gammaavg, gm1, ovgm1, gm53
801 real(kind=realtype) :: ppor, rrad, dis2, dis4
802 real(kind=realtype) :: rradd, dis2d, dis4d
803 real(kind=realtype) :: dp1, dp2, tmp, fs
804 real(kind=realtype) :: tmpd, fsd
805 real(kind=realtype) :: ddw1, ddw2, ddw3, ddw4, ddw5, ddw6
806 real(kind=realtype) :: ddw1d, ddw2d, ddw3d, ddw4d, ddw5d, ddw6d
807 real(kind=realtype) :: dr, dru, drv, drw, dre, drk, sx, sy, sz
808 real(kind=realtype) :: drd, drud, drvd, drwd, dred, drkd, sxd, syd, &
810 real(kind=realtype) :: uavg, vavg, wavg, a2avg, aavg, havg
811 real(kind=realtype) :: uavgd, vavgd, wavgd, a2avgd, aavgd, havgd
812 real(kind=realtype) :: alphaavg, unavg, ovaavg, ova2avg
813 real(kind=realtype) :: alphaavgd, unavgd, ovaavgd, ova2avgd
814 real(kind=realtype) :: kavg, lam1, lam2, lam3, area
815 real(kind=realtype) :: kavgd, lam1d, lam2d, lam3d, aread
816 real(kind=realtype) :: abv1, abv2, abv3, abv4, abv5, abv6, abv7
817 real(kind=realtype) :: abv1d, abv2d, abv3d, abv4d, abv5d, abv6d, &
819 real(kind=realtype),
dimension(ie, je, ke, 3) :: dss
820 real(kind=realtype),
dimension(ie, je, ke, 3) :: dssd
821 logical :: correctfork
826 real(kind=realtype) :: x1
827 real(kind=realtype) :: x1d
828 real(kind=realtype) :: x2
829 real(kind=realtype) :: x2d
830 real(kind=realtype) :: x3
831 real(kind=realtype) :: x3d
832 real(kind=realtype) :: y1
833 real(kind=realtype) :: y1d
834 real(kind=realtype) :: y2
835 real(kind=realtype) :: y2d
836 real(kind=realtype) :: y3
837 real(kind=realtype) :: y3d
838 real(kind=realtype) :: abs0
839 real(kind=realtype) :: min1
840 real(kind=realtype) :: min1d
841 real(realtype) :: max1
842 real(realtype) :: max1d
843 real(kind=realtype) :: max2
844 real(kind=realtype) :: max2d
845 real(kind=realtype) :: max3
846 real(kind=realtype) :: max3d
847 real(kind=realtype) :: max4
848 real(kind=realtype) :: max4d
849 real(kind=realtype) :: min2
850 real(kind=realtype) :: min2d
851 real(realtype) :: max5
852 real(realtype) :: max5d
853 real(kind=realtype) :: max6
854 real(kind=realtype) :: max6d
855 real(kind=realtype) :: max7
856 real(kind=realtype) :: max7d
857 real(kind=realtype) :: max8
858 real(kind=realtype) :: max8d
859 real(kind=realtype) :: min3
860 real(kind=realtype) :: min3d
861 real(realtype) :: max9
862 real(realtype) :: max9d
863 real(kind=realtype) :: max10
864 real(kind=realtype) :: max10d
865 real(kind=realtype) :: max11
866 real(kind=realtype) :: max11d
867 real(kind=realtype) :: max12
868 real(kind=realtype) :: max12d
869 real(kind=realtype) :: abs1
870 real(kind=realtype) :: abs1d
871 real(kind=realtype) :: abs2
872 real(kind=realtype) :: abs2d
873 real(kind=realtype) :: abs3
874 real(kind=realtype) :: abs3d
875 real(kind=realtype) :: abs4
876 real(kind=realtype) :: abs4d
877 real(kind=realtype) :: abs5
878 real(kind=realtype) :: abs5d
879 real(kind=realtype) :: abs6
880 real(kind=realtype) :: abs6d
881 real(kind=realtype) :: arg1
882 real(kind=realtype) :: arg1d
883 real(kind=realtype) :: temp
884 real(kind=realtype) :: temp0
885 real(kind=realtype) :: temp1
886 real(kind=realtype) :: temp2
887 real(kind=realtype) :: temp3
888 if (
rfil .ge. 0.)
then
922 if (
p(i+1, j, k) -
p(i, j, k) .ge. 0.)
then
923 abs1d =
pd(i+1, j, k) -
pd(i, j, k)
924 abs1 =
p(i+1, j, k) -
p(i, j, k)
926 abs1d =
pd(i, j, k) -
pd(i+1, j, k)
927 abs1 = -(
p(i+1, j, k)-
p(i, j, k))
929 if (
p(i, j, k) -
p(i-1, j, k) .ge. 0.)
then
930 abs4d =
pd(i, j, k) -
pd(i-1, j, k)
931 abs4 =
p(i, j, k) -
p(i-1, j, k)
933 abs4d =
pd(i-1, j, k) -
pd(i, j, k)
934 abs4 = -(
p(i, j, k)-
p(i-1, j, k))
936 temp = omega*(
p(i+1, j, k)+
two*
p(i, j, k)+
p(i-1, j, k)) + &
937 & oneminomega*(abs1+abs4) + plim
938 temp0 = (
p(i+1, j, k)-
two*
p(i, j, k)+
p(i-1, j, k))/temp
939 x1d = (
pd(i+1, j, k)-
two*
pd(i, j, k)+
pd(i-1, j, k)-temp0*(&
940 & omega*(
pd(i+1, j, k)+
two*
pd(i, j, k)+
pd(i-1, j, k))+&
941 & oneminomega*(abs1d+abs4d)+plimd))/temp
944 dssd(i, j, k, 1) = x1d
947 dssd(i, j, k, 1) = -x1d
948 dss(i, j, k, 1) = -x1
950 if (
p(i, j+1, k) -
p(i, j, k) .ge. 0.)
then
951 abs2d =
pd(i, j+1, k) -
pd(i, j, k)
952 abs2 =
p(i, j+1, k) -
p(i, j, k)
954 abs2d =
pd(i, j, k) -
pd(i, j+1, k)
955 abs2 = -(
p(i, j+1, k)-
p(i, j, k))
957 if (
p(i, j, k) -
p(i, j-1, k) .ge. 0.)
then
958 abs5d =
pd(i, j, k) -
pd(i, j-1, k)
959 abs5 =
p(i, j, k) -
p(i, j-1, k)
961 abs5d =
pd(i, j-1, k) -
pd(i, j, k)
962 abs5 = -(
p(i, j, k)-
p(i, j-1, k))
964 temp0 = omega*(
p(i, j+1, k)+
two*
p(i, j, k)+
p(i, j-1, k)) + &
965 & oneminomega*(abs2+abs5) + plim
966 temp = (
p(i, j+1, k)-
two*
p(i, j, k)+
p(i, j-1, k))/temp0
967 x2d = (
pd(i, j+1, k)-
two*
pd(i, j, k)+
pd(i, j-1, k)-temp*(&
968 & omega*(
pd(i, j+1, k)+
two*
pd(i, j, k)+
pd(i, j-1, k))+&
969 & oneminomega*(abs2d+abs5d)+plimd))/temp0
972 dssd(i, j, k, 2) = x2d
975 dssd(i, j, k, 2) = -x2d
976 dss(i, j, k, 2) = -x2
978 if (
p(i, j, k+1) -
p(i, j, k) .ge. 0.)
then
979 abs3d =
pd(i, j, k+1) -
pd(i, j, k)
980 abs3 =
p(i, j, k+1) -
p(i, j, k)
982 abs3d =
pd(i, j, k) -
pd(i, j, k+1)
983 abs3 = -(
p(i, j, k+1)-
p(i, j, k))
985 if (
p(i, j, k) -
p(i, j, k-1) .ge. 0.)
then
986 abs6d =
pd(i, j, k) -
pd(i, j, k-1)
987 abs6 =
p(i, j, k) -
p(i, j, k-1)
989 abs6d =
pd(i, j, k-1) -
pd(i, j, k)
990 abs6 = -(
p(i, j, k)-
p(i, j, k-1))
992 temp0 = omega*(
p(i, j, k+1)+
two*
p(i, j, k)+
p(i, j, k-1)) + &
993 & oneminomega*(abs3+abs6) + plim
994 temp = (
p(i, j, k+1)-
two*
p(i, j, k)+
p(i, j, k-1))/temp0
995 x3d = (
pd(i, j, k+1)-
two*
pd(i, j, k)+
pd(i, j, k-1)-temp*(&
996 & omega*(
pd(i, j, k+1)+
two*
pd(i, j, k)+
pd(i, j, k-1))+&
997 & oneminomega*(abs3d+abs6d)+plimd))/temp0
1000 dssd(i, j, k, 3) = x3d
1001 dss(i, j, k, 3) = x3
1003 dssd(i, j, k, 3) = -x3d
1004 dss(i, j, k, 3) = -x3
1019 if (dss(i, j, k, 1) .lt. dss(i+1, j, k, 1))
then
1020 y1d = dssd(i+1, j, k, 1)
1021 y1 = dss(i+1, j, k, 1)
1023 y1d = dssd(i, j, k, 1)
1024 y1 = dss(i, j, k, 1)
1026 if (dpmax .gt. y1)
then
1033 dis2d = ppor*fis2*min1d
1034 dis2 = ppor*fis2*min1
1035 dis4d =
mydim_d(ppor*fis4, 0.0_8, dis2, dis2d, dis4)
1041 drd = ddw1*dis2d + dis2*ddw1d - temp0*dis4d - dis4*(
wd(i+2, &
1043 dr = dis2*ddw1 - dis4*temp0
1044 temp0 =
w(i+1, j, k,
ivx)
1045 temp =
w(i+1, j, k,
irho)
1046 temp1 =
w(i, j, k,
ivx)
1047 temp2 =
w(i, j, k,
irho)
1048 ddw2d = temp0*
wd(i+1, j, k,
irho) + temp*
wd(i+1, j, k,
ivx) &
1049 & - temp1*
wd(i, j, k,
irho) - temp2*
wd(i, j, k,
ivx)
1050 ddw2 = temp*temp0 - temp2*temp1
1051 temp2 =
w(i-1, j, k,
ivx)
1052 temp1 =
w(i-1, j, k,
irho)
1053 temp0 =
w(i+2, j, k,
ivx)
1054 temp =
w(i+2, j, k,
irho)
1055 temp3 = temp*temp0 - temp1*temp2 -
three*ddw2
1056 drud = ddw2*dis2d + dis2*ddw2d - temp3*dis4d - dis4*(temp0*&
1057 &
wd(i+2, j, k,
irho)+temp*
wd(i+2, j, k,
ivx)-temp2*
wd(i-1, &
1059 dru = dis2*ddw2 - dis4*temp3
1060 temp3 =
w(i+1, j, k,
ivy)
1061 temp2 =
w(i+1, j, k,
irho)
1062 temp1 =
w(i, j, k,
ivy)
1063 temp0 =
w(i, j, k,
irho)
1064 ddw3d = temp3*
wd(i+1, j, k,
irho) + temp2*
wd(i+1, j, k,
ivy)&
1065 & - temp1*
wd(i, j, k,
irho) - temp0*
wd(i, j, k,
ivy)
1066 ddw3 = temp2*temp3 - temp0*temp1
1067 temp3 =
w(i-1, j, k,
ivy)
1068 temp2 =
w(i-1, j, k,
irho)
1069 temp1 =
w(i+2, j, k,
ivy)
1070 temp0 =
w(i+2, j, k,
irho)
1071 temp = temp0*temp1 - temp2*temp3 -
three*ddw3
1072 drvd = ddw3*dis2d + dis2*ddw3d - temp*dis4d - dis4*(temp1*
wd&
1073 & (i+2, j, k,
irho)+temp0*
wd(i+2, j, k,
ivy)-temp3*
wd(i-1, j&
1075 drv = dis2*ddw3 - dis4*temp
1076 temp3 =
w(i+1, j, k,
ivz)
1077 temp2 =
w(i+1, j, k,
irho)
1078 temp1 =
w(i, j, k,
ivz)
1079 temp0 =
w(i, j, k,
irho)
1080 ddw4d = temp3*
wd(i+1, j, k,
irho) + temp2*
wd(i+1, j, k,
ivz)&
1081 & - temp1*
wd(i, j, k,
irho) - temp0*
wd(i, j, k,
ivz)
1082 ddw4 = temp2*temp3 - temp0*temp1
1083 temp3 =
w(i-1, j, k,
ivz)
1084 temp2 =
w(i-1, j, k,
irho)
1085 temp1 =
w(i+2, j, k,
ivz)
1086 temp0 =
w(i+2, j, k,
irho)
1087 temp = temp0*temp1 - temp2*temp3 -
three*ddw4
1088 drwd = ddw4*dis2d + dis2*ddw4d - temp*dis4d - dis4*(temp1*
wd&
1089 & (i+2, j, k,
irho)+temp0*
wd(i+2, j, k,
ivz)-temp3*
wd(i-1, j&
1091 drw = dis2*ddw4 - dis4*temp
1096 dred = ddw5*dis2d + dis2*ddw5d - temp3*dis4d - dis4*(
wd(i+2&
1098 dre = dis2*ddw5 - dis4*temp3
1103 if (correctfork)
then
1104 temp3 =
w(i+1, j, k,
itu1)
1105 temp2 =
w(i+1, j, k,
irho)
1106 temp1 =
w(i, j, k,
itu1)
1107 temp0 =
w(i, j, k,
irho)
1108 ddw6d = temp3*
wd(i+1, j, k,
irho) + temp2*
wd(i+1, j, k, &
1111 ddw6 = temp2*temp3 - temp0*temp1
1112 temp3 =
w(i-1, j, k,
itu1)
1113 temp2 =
w(i-1, j, k,
irho)
1114 temp1 =
w(i+2, j, k,
itu1)
1115 temp0 =
w(i+2, j, k,
irho)
1116 temp = temp0*temp1 - temp2*temp3 -
three*ddw6
1117 drkd = ddw6*dis2d + dis2*ddw6d - temp*dis4d - dis4*(temp1*&
1120 drk = dis2*ddw6 - dis4*temp
1132 gm1 = gammaavg -
one
1142 temp3 =
gamma(i+1, j, k)
1143 temp2 =
w(i+1, j, k,
irho)
1144 temp1 =
p(i+1, j, k)/temp2
1145 temp0 =
w(i, j, k,
irho)
1146 temp =
p(i, j, k)/temp0
1147 a2avgd =
half*(temp3*(
pd(i+1, j, k)-temp1*
wd(i+1, j, k,
irho&
1148 & ))/temp2+
gamma(i, j, k)*(
pd(i, j, k)-temp*
wd(i, j, k,
irho&
1150 a2avg =
half*(temp3*temp1+
gamma(i, j, k)*temp)
1151 temp3 =
si(i, j, k, 1)
1152 temp2 =
si(i, j, k, 2)
1153 temp1 =
si(i, j, k, 3)
1154 arg1d = 2*temp3*
sid(i, j, k, 1) + 2*temp2*
sid(i, j, k, 2) + &
1155 & 2*temp1*
sid(i, j, k, 3)
1156 arg1 = temp3*temp3 + temp2*temp2 + temp1*temp1
1158 if (arg1 .eq. 0.0_8)
then
1161 aread = arg1d/(2.0*temp3)
1164 if (1.e-25_realtype .lt. area)
then
1168 max1 = 1.e-25_realtype
1171 tmpd = -(
one*max1d/max1**2)
1173 temp3 =
si(i, j, k, 1)
1174 sxd = tmp*
sid(i, j, k, 1) + temp3*tmpd
1176 temp3 =
si(i, j, k, 2)
1177 syd = tmp*
sid(i, j, k, 2) + temp3*tmpd
1179 temp3 =
si(i, j, k, 3)
1180 szd = tmp*
sid(i, j, k, 3) + temp3*tmpd
1182 alphaavgd =
half*(2*uavg*uavgd+2*vavg*vavgd+2*wavg*wavgd)
1183 alphaavg =
half*(uavg**2+vavg**2+wavg**2)
1184 havgd = alphaavgd + ovgm1*(a2avgd-gm53*kavgd)
1185 havg = alphaavg + ovgm1*(a2avg-gm53*kavg)
1187 if (a2avg .eq. 0.0_8)
then
1190 aavgd = a2avgd/(2.0*temp3)
1193 unavgd = sx*uavgd + uavg*sxd + sy*vavgd + vavg*syd + sz*&
1195 unavg = uavg*sx + vavg*sy + wavg*sz
1196 ovaavgd = -(
one*aavgd/aavg**2)
1198 ova2avgd = -(
one*a2avgd/a2avg**2)
1204 sface =
sfacei(i, j, k)*tmp
1206 if (unavg - sface + aavg .ge. 0.)
then
1207 lam1d = unavgd - sfaced + aavgd
1208 lam1 = unavg - sface + aavg
1210 lam1d = sfaced - unavgd - aavgd
1211 lam1 = -(unavg-sface+aavg)
1213 if (unavg - sface - aavg .ge. 0.)
then
1214 lam2d = unavgd - sfaced - aavgd
1215 lam2 = unavg - sface - aavg
1217 lam2d = sfaced - unavgd + aavgd
1218 lam2 = -(unavg-sface-aavg)
1220 if (unavg - sface .ge. 0.)
then
1221 lam3d = unavgd - sfaced
1222 lam3 = unavg - sface
1224 lam3d = sfaced - unavgd
1225 lam3 = -(unavg-sface)
1227 rradd = lam3d + aavgd
1229 if (lam1 .lt. epsacoustic*rrad)
then
1230 max2d = epsacoustic*rradd
1231 max2 = epsacoustic*rrad
1238 lam1d = area*max2d + max2*aread
1240 if (lam2 .lt. epsacoustic*rrad)
then
1241 max3d = epsacoustic*rradd
1242 max3 = epsacoustic*rrad
1247 lam2d = area*max3d + max3*aread
1249 if (lam3 .lt. epsshear*rrad)
then
1250 max4d = epsshear*rradd
1251 max4 = epsshear*rrad
1256 lam3d = area*max4d + max4*aread
1260 abv1d =
half*(lam1d+lam2d)
1261 abv1 =
half*(lam1+lam2)
1262 abv2d =
half*(lam1d-lam2d)
1263 abv2 =
half*(lam1-lam2)
1264 abv3d = abv1d - lam3d
1266 abv4d = gm1*(dr*alphaavgd+alphaavg*drd-dru*uavgd-uavg*drud-&
1267 & drv*vavgd-vavg*drvd+dred-drw*wavgd-wavg*drwd) - gm53*drkd
1268 abv4 = gm1*(alphaavg*dr-uavg*dru-vavg*drv-wavg*drw+dre) - &
1270 abv5d = dru*sxd + sx*drud + drv*syd + sy*drvd + drw*szd + sz&
1271 & *drwd - dr*unavgd - unavg*drd
1272 abv5 = sx*dru + sy*drv + sz*drw - unavg*dr
1273 abv6d = ova2avg*(abv4*abv3d+abv3*abv4d) + abv3*abv4*ova2avgd&
1274 & + ovaavg*(abv5*abv2d+abv2*abv5d) + abv2*abv5*ovaavgd
1275 abv6 = abv3*abv4*ova2avg + abv2*abv5*ovaavg
1276 abv7d = ovaavg*(abv4*abv2d+abv2*abv4d) + abv2*abv4*ovaavgd +&
1277 & abv5*abv3d + abv3*abv5d
1278 abv7 = abv2*abv4*ovaavg + abv3*abv5
1281 fsd = dr*lam3d + lam3*drd + abv6d
1288 fsd = dru*lam3d + lam3*drud + abv6*uavgd + uavg*abv6d + abv7&
1290 fs = lam3*dru + uavg*abv6 + sx*abv7
1296 fsd = drv*lam3d + lam3*drvd + abv6*vavgd + vavg*abv6d + abv7&
1298 fs = lam3*drv + vavg*abv6 + sy*abv7
1304 fsd = drw*lam3d + lam3*drwd + abv6*wavgd + wavg*abv6d + abv7&
1306 fs = lam3*drw + wavg*abv6 + sz*abv7
1312 fsd = dre*lam3d + lam3*dred + abv6*havgd + havg*abv6d + abv7&
1313 & *unavgd + unavg*abv7d
1314 fs = lam3*dre + havg*abv6 + unavg*abv7
1331 if (dss(i, j, k, 2) .lt. dss(i, j+1, k, 2))
then
1332 y2d = dssd(i, j+1, k, 2)
1333 y2 = dss(i, j+1, k, 2)
1335 y2d = dssd(i, j, k, 2)
1336 y2 = dss(i, j, k, 2)
1338 if (dpmax .gt. y2)
then
1345 dis2d = ppor*fis2*min2d
1346 dis2 = ppor*fis2*min2
1347 dis4d =
mydim_d(ppor*fis4, 0.0_8, dis2, dis2d, dis4)
1353 drd = ddw1*dis2d + dis2*ddw1d - temp3*dis4d - dis4*(
wd(i, j+&
1355 dr = dis2*ddw1 - dis4*temp3
1356 temp3 =
w(i, j+1, k,
ivx)
1357 temp2 =
w(i, j+1, k,
irho)
1358 temp1 =
w(i, j, k,
ivx)
1359 temp0 =
w(i, j, k,
irho)
1360 ddw2d = temp3*
wd(i, j+1, k,
irho) + temp2*
wd(i, j+1, k,
ivx)&
1361 & - temp1*
wd(i, j, k,
irho) - temp0*
wd(i, j, k,
ivx)
1362 ddw2 = temp2*temp3 - temp0*temp1
1363 temp3 =
w(i, j-1, k,
ivx)
1364 temp2 =
w(i, j-1, k,
irho)
1365 temp1 =
w(i, j+2, k,
ivx)
1366 temp0 =
w(i, j+2, k,
irho)
1367 temp = temp0*temp1 - temp2*temp3 -
three*ddw2
1368 drud = ddw2*dis2d + dis2*ddw2d - temp*dis4d - dis4*(temp1*
wd&
1369 & (i, j+2, k,
irho)+temp0*
wd(i, j+2, k,
ivx)-temp3*
wd(i, j-1&
1371 dru = dis2*ddw2 - dis4*temp
1372 temp3 =
w(i, j+1, k,
ivy)
1373 temp2 =
w(i, j+1, k,
irho)
1374 temp1 =
w(i, j, k,
ivy)
1375 temp0 =
w(i, j, k,
irho)
1376 ddw3d = temp3*
wd(i, j+1, k,
irho) + temp2*
wd(i, j+1, k,
ivy)&
1377 & - temp1*
wd(i, j, k,
irho) - temp0*
wd(i, j, k,
ivy)
1378 ddw3 = temp2*temp3 - temp0*temp1
1379 temp3 =
w(i, j-1, k,
ivy)
1380 temp2 =
w(i, j-1, k,
irho)
1381 temp1 =
w(i, j+2, k,
ivy)
1382 temp0 =
w(i, j+2, k,
irho)
1383 temp = temp0*temp1 - temp2*temp3 -
three*ddw3
1384 drvd = ddw3*dis2d + dis2*ddw3d - temp*dis4d - dis4*(temp1*
wd&
1385 & (i, j+2, k,
irho)+temp0*
wd(i, j+2, k,
ivy)-temp3*
wd(i, j-1&
1387 drv = dis2*ddw3 - dis4*temp
1388 temp3 =
w(i, j+1, k,
ivz)
1389 temp2 =
w(i, j+1, k,
irho)
1390 temp1 =
w(i, j, k,
ivz)
1391 temp0 =
w(i, j, k,
irho)
1392 ddw4d = temp3*
wd(i, j+1, k,
irho) + temp2*
wd(i, j+1, k,
ivz)&
1393 & - temp1*
wd(i, j, k,
irho) - temp0*
wd(i, j, k,
ivz)
1394 ddw4 = temp2*temp3 - temp0*temp1
1395 temp3 =
w(i, j-1, k,
ivz)
1396 temp2 =
w(i, j-1, k,
irho)
1397 temp1 =
w(i, j+2, k,
ivz)
1398 temp0 =
w(i, j+2, k,
irho)
1399 temp = temp0*temp1 - temp2*temp3 -
three*ddw4
1400 drwd = ddw4*dis2d + dis2*ddw4d - temp*dis4d - dis4*(temp1*
wd&
1401 & (i, j+2, k,
irho)+temp0*
wd(i, j+2, k,
ivz)-temp3*
wd(i, j-1&
1403 drw = dis2*ddw4 - dis4*temp
1408 dred = ddw5*dis2d + dis2*ddw5d - temp3*dis4d - dis4*(
wd(i, j&
1410 dre = dis2*ddw5 - dis4*temp3
1415 if (correctfork)
then
1416 temp3 =
w(i, j+1, k,
itu1)
1417 temp2 =
w(i, j+1, k,
irho)
1418 temp1 =
w(i, j, k,
itu1)
1419 temp0 =
w(i, j, k,
irho)
1420 ddw6d = temp3*
wd(i, j+1, k,
irho) + temp2*
wd(i, j+1, k, &
1423 ddw6 = temp2*temp3 - temp0*temp1
1424 temp3 =
w(i, j-1, k,
itu1)
1425 temp2 =
w(i, j-1, k,
irho)
1426 temp1 =
w(i, j+2, k,
itu1)
1427 temp0 =
w(i, j+2, k,
irho)
1428 temp = temp0*temp1 - temp2*temp3 -
three*ddw6
1429 drkd = ddw6*dis2d + dis2*ddw6d - temp*dis4d - dis4*(temp1*&
1432 drk = dis2*ddw6 - dis4*temp
1444 gm1 = gammaavg -
one
1454 temp3 =
gamma(i, j+1, k)
1455 temp2 =
w(i, j+1, k,
irho)
1456 temp1 =
p(i, j+1, k)/temp2
1457 temp0 =
w(i, j, k,
irho)
1458 temp =
p(i, j, k)/temp0
1459 a2avgd =
half*(temp3*(
pd(i, j+1, k)-temp1*
wd(i, j+1, k,
irho&
1460 & ))/temp2+
gamma(i, j, k)*(
pd(i, j, k)-temp*
wd(i, j, k,
irho&
1462 a2avg =
half*(temp3*temp1+
gamma(i, j, k)*temp)
1463 temp3 =
sj(i, j, k, 1)
1464 temp2 =
sj(i, j, k, 2)
1465 temp1 =
sj(i, j, k, 3)
1466 arg1d = 2*temp3*
sjd(i, j, k, 1) + 2*temp2*
sjd(i, j, k, 2) + &
1467 & 2*temp1*
sjd(i, j, k, 3)
1468 arg1 = temp3*temp3 + temp2*temp2 + temp1*temp1
1470 if (arg1 .eq. 0.0_8)
then
1473 aread = arg1d/(2.0*temp3)
1476 if (1.e-25_realtype .lt. area)
then
1480 max5 = 1.e-25_realtype
1483 tmpd = -(
one*max5d/max5**2)
1485 temp3 =
sj(i, j, k, 1)
1486 sxd = tmp*
sjd(i, j, k, 1) + temp3*tmpd
1488 temp3 =
sj(i, j, k, 2)
1489 syd = tmp*
sjd(i, j, k, 2) + temp3*tmpd
1491 temp3 =
sj(i, j, k, 3)
1492 szd = tmp*
sjd(i, j, k, 3) + temp3*tmpd
1494 alphaavgd =
half*(2*uavg*uavgd+2*vavg*vavgd+2*wavg*wavgd)
1495 alphaavg =
half*(uavg**2+vavg**2+wavg**2)
1496 havgd = alphaavgd + ovgm1*(a2avgd-gm53*kavgd)
1497 havg = alphaavg + ovgm1*(a2avg-gm53*kavg)
1499 if (a2avg .eq. 0.0_8)
then
1502 aavgd = a2avgd/(2.0*temp3)
1505 unavgd = sx*uavgd + uavg*sxd + sy*vavgd + vavg*syd + sz*&
1507 unavg = uavg*sx + vavg*sy + wavg*sz
1508 ovaavgd = -(
one*aavgd/aavg**2)
1510 ova2avgd = -(
one*a2avgd/a2avg**2)
1516 sface =
sfacej(i, j, k)*tmp
1518 if (unavg - sface + aavg .ge. 0.)
then
1519 lam1d = unavgd - sfaced + aavgd
1520 lam1 = unavg - sface + aavg
1522 lam1d = sfaced - unavgd - aavgd
1523 lam1 = -(unavg-sface+aavg)
1525 if (unavg - sface - aavg .ge. 0.)
then
1526 lam2d = unavgd - sfaced - aavgd
1527 lam2 = unavg - sface - aavg
1529 lam2d = sfaced - unavgd + aavgd
1530 lam2 = -(unavg-sface-aavg)
1532 if (unavg - sface .ge. 0.)
then
1533 lam3d = unavgd - sfaced
1534 lam3 = unavg - sface
1536 lam3d = sfaced - unavgd
1537 lam3 = -(unavg-sface)
1539 rradd = lam3d + aavgd
1541 if (lam1 .lt. epsacoustic*rrad)
then
1542 max6d = epsacoustic*rradd
1543 max6 = epsacoustic*rrad
1550 lam1d = area*max6d + max6*aread
1552 if (lam2 .lt. epsacoustic*rrad)
then
1553 max7d = epsacoustic*rradd
1554 max7 = epsacoustic*rrad
1559 lam2d = area*max7d + max7*aread
1561 if (lam3 .lt. epsshear*rrad)
then
1562 max8d = epsshear*rradd
1563 max8 = epsshear*rrad
1568 lam3d = area*max8d + max8*aread
1572 abv1d =
half*(lam1d+lam2d)
1573 abv1 =
half*(lam1+lam2)
1574 abv2d =
half*(lam1d-lam2d)
1575 abv2 =
half*(lam1-lam2)
1576 abv3d = abv1d - lam3d
1578 abv4d = gm1*(dr*alphaavgd+alphaavg*drd-dru*uavgd-uavg*drud-&
1579 & drv*vavgd-vavg*drvd+dred-drw*wavgd-wavg*drwd) - gm53*drkd
1580 abv4 = gm1*(alphaavg*dr-uavg*dru-vavg*drv-wavg*drw+dre) - &
1582 abv5d = dru*sxd + sx*drud + drv*syd + sy*drvd + drw*szd + sz&
1583 & *drwd - dr*unavgd - unavg*drd
1584 abv5 = sx*dru + sy*drv + sz*drw - unavg*dr
1585 abv6d = ova2avg*(abv4*abv3d+abv3*abv4d) + abv3*abv4*ova2avgd&
1586 & + ovaavg*(abv5*abv2d+abv2*abv5d) + abv2*abv5*ovaavgd
1587 abv6 = abv3*abv4*ova2avg + abv2*abv5*ovaavg
1588 abv7d = ovaavg*(abv4*abv2d+abv2*abv4d) + abv2*abv4*ovaavgd +&
1589 & abv5*abv3d + abv3*abv5d
1590 abv7 = abv2*abv4*ovaavg + abv3*abv5
1593 fsd = dr*lam3d + lam3*drd + abv6d
1600 fsd = dru*lam3d + lam3*drud + abv6*uavgd + uavg*abv6d + abv7&
1602 fs = lam3*dru + uavg*abv6 + sx*abv7
1608 fsd = drv*lam3d + lam3*drvd + abv6*vavgd + vavg*abv6d + abv7&
1610 fs = lam3*drv + vavg*abv6 + sy*abv7
1616 fsd = drw*lam3d + lam3*drwd + abv6*wavgd + wavg*abv6d + abv7&
1618 fs = lam3*drw + wavg*abv6 + sz*abv7
1624 fsd = dre*lam3d + lam3*dred + abv6*havgd + havg*abv6d + abv7&
1625 & *unavgd + unavg*abv7d
1626 fs = lam3*dre + havg*abv6 + unavg*abv7
1643 if (dss(i, j, k, 3) .lt. dss(i, j, k+1, 3))
then
1644 y3d = dssd(i, j, k+1, 3)
1645 y3 = dss(i, j, k+1, 3)
1647 y3d = dssd(i, j, k, 3)
1648 y3 = dss(i, j, k, 3)
1650 if (dpmax .gt. y3)
then
1657 dis2d = ppor*fis2*min3d
1658 dis2 = ppor*fis2*min3
1659 dis4d =
mydim_d(ppor*fis4, 0.0_8, dis2, dis2d, dis4)
1665 drd = ddw1*dis2d + dis2*ddw1d - temp3*dis4d - dis4*(
wd(i, j&
1667 dr = dis2*ddw1 - dis4*temp3
1668 temp3 =
w(i, j, k+1,
ivx)
1669 temp2 =
w(i, j, k+1,
irho)
1670 temp1 =
w(i, j, k,
ivx)
1671 temp0 =
w(i, j, k,
irho)
1672 ddw2d = temp3*
wd(i, j, k+1,
irho) + temp2*
wd(i, j, k+1,
ivx)&
1673 & - temp1*
wd(i, j, k,
irho) - temp0*
wd(i, j, k,
ivx)
1674 ddw2 = temp2*temp3 - temp0*temp1
1675 temp3 =
w(i, j, k-1,
ivx)
1676 temp2 =
w(i, j, k-1,
irho)
1677 temp1 =
w(i, j, k+2,
ivx)
1678 temp0 =
w(i, j, k+2,
irho)
1679 temp = temp0*temp1 - temp2*temp3 -
three*ddw2
1680 drud = ddw2*dis2d + dis2*ddw2d - temp*dis4d - dis4*(temp1*
wd&
1681 & (i, j, k+2,
irho)+temp0*
wd(i, j, k+2,
ivx)-temp3*
wd(i, j, &
1683 dru = dis2*ddw2 - dis4*temp
1684 temp3 =
w(i, j, k+1,
ivy)
1685 temp2 =
w(i, j, k+1,
irho)
1686 temp1 =
w(i, j, k,
ivy)
1687 temp0 =
w(i, j, k,
irho)
1688 ddw3d = temp3*
wd(i, j, k+1,
irho) + temp2*
wd(i, j, k+1,
ivy)&
1689 & - temp1*
wd(i, j, k,
irho) - temp0*
wd(i, j, k,
ivy)
1690 ddw3 = temp2*temp3 - temp0*temp1
1691 temp3 =
w(i, j, k-1,
ivy)
1692 temp2 =
w(i, j, k-1,
irho)
1693 temp1 =
w(i, j, k+2,
ivy)
1694 temp0 =
w(i, j, k+2,
irho)
1695 temp = temp0*temp1 - temp2*temp3 -
three*ddw3
1696 drvd = ddw3*dis2d + dis2*ddw3d - temp*dis4d - dis4*(temp1*
wd&
1697 & (i, j, k+2,
irho)+temp0*
wd(i, j, k+2,
ivy)-temp3*
wd(i, j, &
1699 drv = dis2*ddw3 - dis4*temp
1700 temp3 =
w(i, j, k+1,
ivz)
1701 temp2 =
w(i, j, k+1,
irho)
1702 temp1 =
w(i, j, k,
ivz)
1703 temp0 =
w(i, j, k,
irho)
1704 ddw4d = temp3*
wd(i, j, k+1,
irho) + temp2*
wd(i, j, k+1,
ivz)&
1705 & - temp1*
wd(i, j, k,
irho) - temp0*
wd(i, j, k,
ivz)
1706 ddw4 = temp2*temp3 - temp0*temp1
1707 temp3 =
w(i, j, k-1,
ivz)
1708 temp2 =
w(i, j, k-1,
irho)
1709 temp1 =
w(i, j, k+2,
ivz)
1710 temp0 =
w(i, j, k+2,
irho)
1711 temp = temp0*temp1 - temp2*temp3 -
three*ddw4
1712 drwd = ddw4*dis2d + dis2*ddw4d - temp*dis4d - dis4*(temp1*
wd&
1713 & (i, j, k+2,
irho)+temp0*
wd(i, j, k+2,
ivz)-temp3*
wd(i, j, &
1715 drw = dis2*ddw4 - dis4*temp
1720 dred = ddw5*dis2d + dis2*ddw5d - temp3*dis4d - dis4*(
wd(i, j&
1722 dre = dis2*ddw5 - dis4*temp3
1727 if (correctfork)
then
1728 temp3 =
w(i, j, k+1,
itu1)
1729 temp2 =
w(i, j, k+1,
irho)
1730 temp1 =
w(i, j, k,
itu1)
1731 temp0 =
w(i, j, k,
irho)
1732 ddw6d = temp3*
wd(i, j, k+1,
irho) + temp2*
wd(i, j, k+1, &
1735 ddw6 = temp2*temp3 - temp0*temp1
1736 temp3 =
w(i, j, k-1,
itu1)
1737 temp2 =
w(i, j, k-1,
irho)
1738 temp1 =
w(i, j, k+2,
itu1)
1739 temp0 =
w(i, j, k+2,
irho)
1740 temp = temp0*temp1 - temp2*temp3 -
three*ddw6
1741 drkd = ddw6*dis2d + dis2*ddw6d - temp*dis4d - dis4*(temp1*&
1744 drk = dis2*ddw6 - dis4*temp
1756 gm1 = gammaavg -
one
1766 temp3 =
gamma(i, j, k+1)
1767 temp2 =
w(i, j, k+1,
irho)
1768 temp1 =
p(i, j, k+1)/temp2
1769 temp0 =
w(i, j, k,
irho)
1770 temp =
p(i, j, k)/temp0
1771 a2avgd =
half*(temp3*(
pd(i, j, k+1)-temp1*
wd(i, j, k+1,
irho&
1772 & ))/temp2+
gamma(i, j, k)*(
pd(i, j, k)-temp*
wd(i, j, k,
irho&
1774 a2avg =
half*(temp3*temp1+
gamma(i, j, k)*temp)
1775 temp3 =
sk(i, j, k, 1)
1776 temp2 =
sk(i, j, k, 2)
1777 temp1 =
sk(i, j, k, 3)
1778 arg1d = 2*temp3*
skd(i, j, k, 1) + 2*temp2*
skd(i, j, k, 2) + &
1779 & 2*temp1*
skd(i, j, k, 3)
1780 arg1 = temp3*temp3 + temp2*temp2 + temp1*temp1
1782 if (arg1 .eq. 0.0_8)
then
1785 aread = arg1d/(2.0*temp3)
1788 if (1.e-25_realtype .lt. area)
then
1792 max9 = 1.e-25_realtype
1795 tmpd = -(
one*max9d/max9**2)
1797 temp3 =
sk(i, j, k, 1)
1798 sxd = tmp*
skd(i, j, k, 1) + temp3*tmpd
1800 temp3 =
sk(i, j, k, 2)
1801 syd = tmp*
skd(i, j, k, 2) + temp3*tmpd
1803 temp3 =
sk(i, j, k, 3)
1804 szd = tmp*
skd(i, j, k, 3) + temp3*tmpd
1806 alphaavgd =
half*(2*uavg*uavgd+2*vavg*vavgd+2*wavg*wavgd)
1807 alphaavg =
half*(uavg**2+vavg**2+wavg**2)
1808 havgd = alphaavgd + ovgm1*(a2avgd-gm53*kavgd)
1809 havg = alphaavg + ovgm1*(a2avg-gm53*kavg)
1811 if (a2avg .eq. 0.0_8)
then
1814 aavgd = a2avgd/(2.0*temp3)
1817 unavgd = sx*uavgd + uavg*sxd + sy*vavgd + vavg*syd + sz*&
1819 unavg = uavg*sx + vavg*sy + wavg*sz
1820 ovaavgd = -(
one*aavgd/aavg**2)
1822 ova2avgd = -(
one*a2avgd/a2avg**2)
1828 sface =
sfacek(i, j, k)*tmp
1830 if (unavg - sface + aavg .ge. 0.)
then
1831 lam1d = unavgd - sfaced + aavgd
1832 lam1 = unavg - sface + aavg
1834 lam1d = sfaced - unavgd - aavgd
1835 lam1 = -(unavg-sface+aavg)
1837 if (unavg - sface - aavg .ge. 0.)
then
1838 lam2d = unavgd - sfaced - aavgd
1839 lam2 = unavg - sface - aavg
1841 lam2d = sfaced - unavgd + aavgd
1842 lam2 = -(unavg-sface-aavg)
1844 if (unavg - sface .ge. 0.)
then
1845 lam3d = unavgd - sfaced
1846 lam3 = unavg - sface
1848 lam3d = sfaced - unavgd
1849 lam3 = -(unavg-sface)
1851 rradd = lam3d + aavgd
1853 if (lam1 .lt. epsacoustic*rrad)
then
1854 max10d = epsacoustic*rradd
1855 max10 = epsacoustic*rrad
1862 lam1d = area*max10d + max10*aread
1864 if (lam2 .lt. epsacoustic*rrad)
then
1865 max11d = epsacoustic*rradd
1866 max11 = epsacoustic*rrad
1871 lam2d = area*max11d + max11*aread
1873 if (lam3 .lt. epsshear*rrad)
then
1874 max12d = epsshear*rradd
1875 max12 = epsshear*rrad
1880 lam3d = area*max12d + max12*aread
1884 abv1d =
half*(lam1d+lam2d)
1885 abv1 =
half*(lam1+lam2)
1886 abv2d =
half*(lam1d-lam2d)
1887 abv2 =
half*(lam1-lam2)
1888 abv3d = abv1d - lam3d
1890 abv4d = gm1*(dr*alphaavgd+alphaavg*drd-dru*uavgd-uavg*drud-&
1891 & drv*vavgd-vavg*drvd+dred-drw*wavgd-wavg*drwd) - gm53*drkd
1892 abv4 = gm1*(alphaavg*dr-uavg*dru-vavg*drv-wavg*drw+dre) - &
1894 abv5d = dru*sxd + sx*drud + drv*syd + sy*drvd + drw*szd + sz&
1895 & *drwd - dr*unavgd - unavg*drd
1896 abv5 = sx*dru + sy*drv + sz*drw - unavg*dr
1897 abv6d = ova2avg*(abv4*abv3d+abv3*abv4d) + abv3*abv4*ova2avgd&
1898 & + ovaavg*(abv5*abv2d+abv2*abv5d) + abv2*abv5*ovaavgd
1899 abv6 = abv3*abv4*ova2avg + abv2*abv5*ovaavg
1900 abv7d = ovaavg*(abv4*abv2d+abv2*abv4d) + abv2*abv4*ovaavgd +&
1901 & abv5*abv3d + abv3*abv5d
1902 abv7 = abv2*abv4*ovaavg + abv3*abv5
1905 fsd = dr*lam3d + lam3*drd + abv6d
1912 fsd = dru*lam3d + lam3*drud + abv6*uavgd + uavg*abv6d + abv7&
1914 fs = lam3*dru + uavg*abv6 + sx*abv7
1920 fsd = drv*lam3d + lam3*drvd + abv6*vavgd + vavg*abv6d + abv7&
1922 fs = lam3*drv + vavg*abv6 + sy*abv7
1928 fsd = drw*lam3d + lam3*drwd + abv6*wavgd + wavg*abv6d + abv7&
1930 fs = lam3*drw + wavg*abv6 + sz*abv7
1936 fsd = dre*lam3d + lam3*dred + abv6*havgd + havg*abv6d + abv7&
1937 & *unavgd + unavg*abv7d
1938 fs = lam3*dre + havg*abv6 + unavg*abv7
1959 use blockpointers,
only :
nx,
ny,
nz,
il,
jl,
kl,
ie,
je,
ke,
ib, &
1960 &
jb,
kb,
w,
p,
pori,
porj,
pork,
fw,
gamma,
si,
sj,
sk,
indfamilyi, &
1973 real(kind=realtype),
parameter :: dpmax=0.25_realtype
1974 real(kind=realtype),
parameter :: epsacoustic=0.25_realtype
1975 real(kind=realtype),
parameter :: epsshear=0.025_realtype
1976 real(kind=realtype),
parameter :: omega=0.5_realtype
1977 real(kind=realtype),
parameter :: oneminomega=
one-omega
1981 integer(kind=inttype) :: i, j, k, ind, ii
1982 real(kind=realtype) :: plim, sface
1983 real(kind=realtype) :: sfil, fis2, fis4
1984 real(kind=realtype) :: gammaavg, gm1, ovgm1, gm53
1985 real(kind=realtype) :: ppor, rrad, dis2, dis4
1986 real(kind=realtype) :: dp1, dp2, tmp, fs
1987 real(kind=realtype) :: ddw1, ddw2, ddw3, ddw4, ddw5, ddw6
1988 real(kind=realtype) :: dr, dru, drv, drw, dre, drk, sx, sy, sz
1989 real(kind=realtype) :: uavg, vavg, wavg, a2avg, aavg, havg
1990 real(kind=realtype) :: alphaavg, unavg, ovaavg, ova2avg
1991 real(kind=realtype) :: kavg, lam1, lam2, lam3, area
1992 real(kind=realtype) :: abv1, abv2, abv3, abv4, abv5, abv6, abv7
1993 real(kind=realtype),
dimension(ie, je, ke, 3) :: dss
1994 logical :: correctfork
1999 real(kind=realtype) :: x1
2000 real(kind=realtype) :: x2
2001 real(kind=realtype) :: x3
2002 real(kind=realtype) :: y1
2003 real(kind=realtype) :: y2
2004 real(kind=realtype) :: y3
2005 real(kind=realtype) :: abs0
2006 real(kind=realtype) :: min1
2007 real(realtype) :: max1
2008 real(kind=realtype) :: max2
2009 real(kind=realtype) :: max3
2010 real(kind=realtype) :: max4
2011 real(kind=realtype) :: min2
2012 real(realtype) :: max5
2013 real(kind=realtype) :: max6
2014 real(kind=realtype) :: max7
2015 real(kind=realtype) :: max8
2016 real(kind=realtype) :: min3
2017 real(realtype) :: max9
2018 real(kind=realtype) :: max10
2019 real(kind=realtype) :: max11
2020 real(kind=realtype) :: max12
2021 real(kind=realtype) :: abs1
2022 real(kind=realtype) :: abs2
2023 real(kind=realtype) :: abs3
2024 real(kind=realtype) :: abs4
2025 real(kind=realtype) :: abs5
2026 real(kind=realtype) :: abs6
2027 real(kind=realtype) :: arg1
2028 if (
rfil .ge. 0.)
then
2059 if (
p(i+1, j, k) -
p(i, j, k) .ge. 0.)
then
2060 abs1 =
p(i+1, j, k) -
p(i, j, k)
2062 abs1 = -(
p(i+1, j, k)-
p(i, j, k))
2064 if (
p(i, j, k) -
p(i-1, j, k) .ge. 0.)
then
2065 abs4 =
p(i, j, k) -
p(i-1, j, k)
2067 abs4 = -(
p(i, j, k)-
p(i-1, j, k))
2069 x1 = (
p(i+1, j, k)-
two*
p(i, j, k)+
p(i-1, j, k))/(omega*(
p(i+&
2070 & 1, j, k)+
two*
p(i, j, k)+
p(i-1, j, k))+oneminomega*(abs1+&
2072 if (x1 .ge. 0.)
then
2073 dss(i, j, k, 1) = x1
2075 dss(i, j, k, 1) = -x1
2077 if (
p(i, j+1, k) -
p(i, j, k) .ge. 0.)
then
2078 abs2 =
p(i, j+1, k) -
p(i, j, k)
2080 abs2 = -(
p(i, j+1, k)-
p(i, j, k))
2082 if (
p(i, j, k) -
p(i, j-1, k) .ge. 0.)
then
2083 abs5 =
p(i, j, k) -
p(i, j-1, k)
2085 abs5 = -(
p(i, j, k)-
p(i, j-1, k))
2087 x2 = (
p(i, j+1, k)-
two*
p(i, j, k)+
p(i, j-1, k))/(omega*(
p(i&
2088 & , j+1, k)+
two*
p(i, j, k)+
p(i, j-1, k))+oneminomega*(abs2+&
2090 if (x2 .ge. 0.)
then
2091 dss(i, j, k, 2) = x2
2093 dss(i, j, k, 2) = -x2
2095 if (
p(i, j, k+1) -
p(i, j, k) .ge. 0.)
then
2096 abs3 =
p(i, j, k+1) -
p(i, j, k)
2098 abs3 = -(
p(i, j, k+1)-
p(i, j, k))
2100 if (
p(i, j, k) -
p(i, j, k-1) .ge. 0.)
then
2101 abs6 =
p(i, j, k) -
p(i, j, k-1)
2103 abs6 = -(
p(i, j, k)-
p(i, j, k-1))
2105 x3 = (
p(i, j, k+1)-
two*
p(i, j, k)+
p(i, j, k-1))/(omega*(
p(i&
2106 & , j, k+1)+
two*
p(i, j, k)+
p(i, j, k-1))+oneminomega*(abs3+&
2108 if (x3 .ge. 0.)
then
2109 dss(i, j, k, 3) = x3
2111 dss(i, j, k, 3) = -x3
2125 if (dss(i, j, k, 1) .lt. dss(i+1, j, k, 1))
then
2126 y1 = dss(i+1, j, k, 1)
2128 y1 = dss(i, j, k, 1)
2130 if (dpmax .gt. y1)
then
2135 dis2 = ppor*fis2*min1
2136 dis4 =
mydim(ppor*fis4, dis2)
2140 dr = dis2*ddw1 - dis4*(
w(i+2, j, k,
irho)-
w(i-1, j, k,
irho)&
2142 ddw2 =
w(i+1, j, k,
irho)*
w(i+1, j, k,
ivx) -
w(i, j, k, &
2144 dru = dis2*ddw2 - dis4*(
w(i+2, j, k,
irho)*
w(i+2, j, k,
ivx)&
2146 ddw3 =
w(i+1, j, k,
irho)*
w(i+1, j, k,
ivy) -
w(i, j, k, &
2148 drv = dis2*ddw3 - dis4*(
w(i+2, j, k,
irho)*
w(i+2, j, k,
ivy)&
2150 ddw4 =
w(i+1, j, k,
irho)*
w(i+1, j, k,
ivz) -
w(i, j, k, &
2152 drw = dis2*ddw4 - dis4*(
w(i+2, j, k,
irho)*
w(i+2, j, k,
ivz)&
2155 dre = dis2*ddw5 - dis4*(
w(i+2, j, k,
irhoe)-
w(i-1, j, k, &
2161 if (correctfork)
then
2162 ddw6 =
w(i+1, j, k,
irho)*
w(i+1, j, k,
itu1) -
w(i, j, k, &
2164 drk = dis2*ddw6 - dis4*(
w(i+2, j, k,
irho)*
w(i+2, j, k, &
2174 gm1 = gammaavg -
one
2181 a2avg =
half*(
gamma(i+1, j, k)*
p(i+1, j, k)/
w(i+1, j, k, &
2183 arg1 =
si(i, j, k, 1)**2 +
si(i, j, k, 2)**2 +
si(i, j, k, 3&
2186 if (1.e-25_realtype .lt. area)
then
2189 max1 = 1.e-25_realtype
2192 sx =
si(i, j, k, 1)*tmp
2193 sy =
si(i, j, k, 2)*tmp
2194 sz =
si(i, j, k, 3)*tmp
2195 alphaavg =
half*(uavg**2+vavg**2+wavg**2)
2196 havg = alphaavg + ovgm1*(a2avg-gm53*kavg)
2198 unavg = uavg*sx + vavg*sy + wavg*sz
2204 if (unavg - sface + aavg .ge. 0.)
then
2205 lam1 = unavg - sface + aavg
2207 lam1 = -(unavg-sface+aavg)
2209 if (unavg - sface - aavg .ge. 0.)
then
2210 lam2 = unavg - sface - aavg
2212 lam2 = -(unavg-sface-aavg)
2214 if (unavg - sface .ge. 0.)
then
2215 lam3 = unavg - sface
2217 lam3 = -(unavg-sface)
2220 if (lam1 .lt. epsacoustic*rrad)
then
2221 max2 = epsacoustic*rrad
2228 if (lam2 .lt. epsacoustic*rrad)
then
2229 max3 = epsacoustic*rrad
2234 if (lam3 .lt. epsshear*rrad)
then
2235 max4 = epsshear*rrad
2242 abv1 =
half*(lam1+lam2)
2243 abv2 =
half*(lam1-lam2)
2245 abv4 = gm1*(alphaavg*dr-uavg*dru-vavg*drv-wavg*drw+dre) - &
2247 abv5 = sx*dru + sy*drv + sz*drw - unavg*dr
2248 abv6 = abv3*abv4*ova2avg + abv2*abv5*ovaavg
2249 abv7 = abv2*abv4*ovaavg + abv3*abv5
2256 fs = lam3*dru + uavg*abv6 + sx*abv7
2260 fs = lam3*drv + vavg*abv6 + sy*abv7
2264 fs = lam3*drw + wavg*abv6 + sz*abv7
2268 fs = lam3*dre + havg*abv6 + unavg*abv7
2283 if (dss(i, j, k, 2) .lt. dss(i, j+1, k, 2))
then
2284 y2 = dss(i, j+1, k, 2)
2286 y2 = dss(i, j, k, 2)
2288 if (dpmax .gt. y2)
then
2293 dis2 = ppor*fis2*min2
2294 dis4 =
mydim(ppor*fis4, dis2)
2298 dr = dis2*ddw1 - dis4*(
w(i, j+2, k,
irho)-
w(i, j-1, k,
irho)&
2300 ddw2 =
w(i, j+1, k,
irho)*
w(i, j+1, k,
ivx) -
w(i, j, k, &
2302 dru = dis2*ddw2 - dis4*(
w(i, j+2, k,
irho)*
w(i, j+2, k,
ivx)&
2304 ddw3 =
w(i, j+1, k,
irho)*
w(i, j+1, k,
ivy) -
w(i, j, k, &
2306 drv = dis2*ddw3 - dis4*(
w(i, j+2, k,
irho)*
w(i, j+2, k,
ivy)&
2308 ddw4 =
w(i, j+1, k,
irho)*
w(i, j+1, k,
ivz) -
w(i, j, k, &
2310 drw = dis2*ddw4 - dis4*(
w(i, j+2, k,
irho)*
w(i, j+2, k,
ivz)&
2313 dre = dis2*ddw5 - dis4*(
w(i, j+2, k,
irhoe)-
w(i, j-1, k, &
2319 if (correctfork)
then
2320 ddw6 =
w(i, j+1, k,
irho)*
w(i, j+1, k,
itu1) -
w(i, j, k, &
2322 drk = dis2*ddw6 - dis4*(
w(i, j+2, k,
irho)*
w(i, j+2, k, &
2332 gm1 = gammaavg -
one
2339 a2avg =
half*(
gamma(i, j+1, k)*
p(i, j+1, k)/
w(i, j+1, k, &
2341 arg1 =
sj(i, j, k, 1)**2 +
sj(i, j, k, 2)**2 +
sj(i, j, k, 3&
2344 if (1.e-25_realtype .lt. area)
then
2347 max5 = 1.e-25_realtype
2350 sx =
sj(i, j, k, 1)*tmp
2351 sy =
sj(i, j, k, 2)*tmp
2352 sz =
sj(i, j, k, 3)*tmp
2353 alphaavg =
half*(uavg**2+vavg**2+wavg**2)
2354 havg = alphaavg + ovgm1*(a2avg-gm53*kavg)
2356 unavg = uavg*sx + vavg*sy + wavg*sz
2362 if (unavg - sface + aavg .ge. 0.)
then
2363 lam1 = unavg - sface + aavg
2365 lam1 = -(unavg-sface+aavg)
2367 if (unavg - sface - aavg .ge. 0.)
then
2368 lam2 = unavg - sface - aavg
2370 lam2 = -(unavg-sface-aavg)
2372 if (unavg - sface .ge. 0.)
then
2373 lam3 = unavg - sface
2375 lam3 = -(unavg-sface)
2378 if (lam1 .lt. epsacoustic*rrad)
then
2379 max6 = epsacoustic*rrad
2386 if (lam2 .lt. epsacoustic*rrad)
then
2387 max7 = epsacoustic*rrad
2392 if (lam3 .lt. epsshear*rrad)
then
2393 max8 = epsshear*rrad
2400 abv1 =
half*(lam1+lam2)
2401 abv2 =
half*(lam1-lam2)
2403 abv4 = gm1*(alphaavg*dr-uavg*dru-vavg*drv-wavg*drw+dre) - &
2405 abv5 = sx*dru + sy*drv + sz*drw - unavg*dr
2406 abv6 = abv3*abv4*ova2avg + abv2*abv5*ovaavg
2407 abv7 = abv2*abv4*ovaavg + abv3*abv5
2414 fs = lam3*dru + uavg*abv6 + sx*abv7
2418 fs = lam3*drv + vavg*abv6 + sy*abv7
2422 fs = lam3*drw + wavg*abv6 + sz*abv7
2426 fs = lam3*dre + havg*abv6 + unavg*abv7
2441 if (dss(i, j, k, 3) .lt. dss(i, j, k+1, 3))
then
2442 y3 = dss(i, j, k+1, 3)
2444 y3 = dss(i, j, k, 3)
2446 if (dpmax .gt. y3)
then
2451 dis2 = ppor*fis2*min3
2452 dis4 =
mydim(ppor*fis4, dis2)
2456 dr = dis2*ddw1 - dis4*(
w(i, j, k+2,
irho)-
w(i, j, k-1,
irho)&
2458 ddw2 =
w(i, j, k+1,
irho)*
w(i, j, k+1,
ivx) -
w(i, j, k, &
2460 dru = dis2*ddw2 - dis4*(
w(i, j, k+2,
irho)*
w(i, j, k+2,
ivx)&
2462 ddw3 =
w(i, j, k+1,
irho)*
w(i, j, k+1,
ivy) -
w(i, j, k, &
2464 drv = dis2*ddw3 - dis4*(
w(i, j, k+2,
irho)*
w(i, j, k+2,
ivy)&
2466 ddw4 =
w(i, j, k+1,
irho)*
w(i, j, k+1,
ivz) -
w(i, j, k, &
2468 drw = dis2*ddw4 - dis4*(
w(i, j, k+2,
irho)*
w(i, j, k+2,
ivz)&
2471 dre = dis2*ddw5 - dis4*(
w(i, j, k+2,
irhoe)-
w(i, j, k-1, &
2477 if (correctfork)
then
2478 ddw6 =
w(i, j, k+1,
irho)*
w(i, j, k+1,
itu1) -
w(i, j, k, &
2480 drk = dis2*ddw6 - dis4*(
w(i, j, k+2,
irho)*
w(i, j, k+2, &
2490 gm1 = gammaavg -
one
2497 a2avg =
half*(
gamma(i, j, k+1)*
p(i, j, k+1)/
w(i, j, k+1, &
2499 arg1 =
sk(i, j, k, 1)**2 +
sk(i, j, k, 2)**2 +
sk(i, j, k, 3&
2502 if (1.e-25_realtype .lt. area)
then
2505 max9 = 1.e-25_realtype
2508 sx =
sk(i, j, k, 1)*tmp
2509 sy =
sk(i, j, k, 2)*tmp
2510 sz =
sk(i, j, k, 3)*tmp
2511 alphaavg =
half*(uavg**2+vavg**2+wavg**2)
2512 havg = alphaavg + ovgm1*(a2avg-gm53*kavg)
2514 unavg = uavg*sx + vavg*sy + wavg*sz
2520 if (unavg - sface + aavg .ge. 0.)
then
2521 lam1 = unavg - sface + aavg
2523 lam1 = -(unavg-sface+aavg)
2525 if (unavg - sface - aavg .ge. 0.)
then
2526 lam2 = unavg - sface - aavg
2528 lam2 = -(unavg-sface-aavg)
2530 if (unavg - sface .ge. 0.)
then
2531 lam3 = unavg - sface
2533 lam3 = -(unavg-sface)
2536 if (lam1 .lt. epsacoustic*rrad)
then
2537 max10 = epsacoustic*rrad
2544 if (lam2 .lt. epsacoustic*rrad)
then
2545 max11 = epsacoustic*rrad
2550 if (lam3 .lt. epsshear*rrad)
then
2551 max12 = epsshear*rrad
2558 abv1 =
half*(lam1+lam2)
2559 abv2 =
half*(lam1-lam2)
2561 abv4 = gm1*(alphaavg*dr-uavg*dru-vavg*drv-wavg*drw+dre) - &
2563 abv5 = sx*dru + sy*drv + sz*drw - unavg*dr
2564 abv6 = abv3*abv4*ova2avg + abv2*abv5*ovaavg
2565 abv7 = abv2*abv4*ovaavg + abv3*abv5
2572 fs = lam3*dru + uavg*abv6 + sx*abv7
2576 fs = lam3*drv + vavg*abv6 + sy*abv7
2580 fs = lam3*drw + wavg*abv6 + sz*abv7
2584 fs = lam3*dre + havg*abv6 + unavg*abv7
2609 use blockpointers,
only :
nx,
ny,
nz,
il,
jl,
kl,
ie,
je,
ke,
ib, &
2610 &
jb,
kb,
w,
wd,
p,
pd,
pori,
porj,
pork,
fw,
fwd,
radi,
radid,
radj, &
2624 real(kind=realtype),
parameter :: dssmax=0.25_realtype
2628 integer(kind=inttype) :: i, j, k, ind, ii
2629 real(kind=realtype) :: sslim, rhoi
2630 real(kind=realtype) :: sslimd
2631 real(kind=realtype) :: sfil, fis2, fis4
2632 real(kind=realtype) :: ppor, rrad, dis2, dis4
2633 real(kind=realtype) :: rradd, dis2d, dis4d
2634 real(kind=realtype) :: ddw1, ddw2, ddw3, ddw4, ddw5, fs
2635 real(kind=realtype) :: ddw1d, ddw2d, ddw3d, ddw4d, ddw5d, fsd
2636 real(kind=realtype),
dimension(ie, je, ke, 3) :: dss
2637 real(kind=realtype),
dimension(ie, je, ke, 3) :: dssd
2638 real(kind=realtype),
dimension(0:ib, 0:jb, 0:kb) :: ss
2639 real(kind=realtype),
dimension(0:ib, 0:jb, 0:kb) :: ssd
2645 real(kind=realtype) :: x1
2646 real(kind=realtype) :: x1d
2647 real(kind=realtype) :: x2
2648 real(kind=realtype) :: x2d
2649 real(kind=realtype) :: x3
2650 real(kind=realtype) :: x3d
2651 real(kind=realtype) :: y1
2652 real(kind=realtype) :: y1d
2653 real(kind=realtype) :: y2
2654 real(kind=realtype) :: y2d
2655 real(kind=realtype) :: y3
2656 real(kind=realtype) :: y3d
2657 real(kind=realtype) :: abs0
2658 real(kind=realtype) :: min1
2659 real(kind=realtype) :: min1d
2660 real(kind=realtype) :: min2
2661 real(kind=realtype) :: min2d
2662 real(kind=realtype) :: min3
2663 real(kind=realtype) :: min3d
2664 real(kind=realtype) :: arg1
2665 real(kind=realtype) :: temp
2666 real(kind=realtype) :: tempd
2667 real(kind=realtype) :: temp0
2668 real(kind=realtype) :: temp1
2669 real(kind=realtype) :: temp2
2670 real(kind=realtype) :: tempd0
2671 real(kind=realtype) :: temp3
2672 if (
rfil .ge. 0.)
then
2713 sslim = 0.001_realtype*(
pinfcorr/temp)
2719 temp =
gamma(i, j, k)
2720 temp0 =
w(i, j, k,
irho)
2722 temp2 =
p(i, j, k)/temp1
2723 if (temp0 .le. 0.0_8 .and. (temp .eq. 0.0_8 .or. temp .ne.&
2727 tempd0 = temp*temp0**(temp-1)*
wd(i, j, k,
irho)
2729 ssd(i, j, k) = (
pd(i, j, k)-temp2*tempd0)/temp1
2744 temp2 = ss(i+1, j, k) +
two*ss(i, j, k) + ss(i-1, j, k) + &
2746 temp1 = (ss(i+1, j, k)-
two*ss(i, j, k)+ss(i-1, j, k))/temp2
2747 x1d = (ssd(i+1, j, k)-
two*ssd(i, j, k)+ssd(i-1, j, k)-temp1*&
2748 & (ssd(i+1, j, k)+
two*ssd(i, j, k)+ssd(i-1, j, k)+sslimd))/&
2751 if (x1 .ge. 0.)
then
2752 dssd(i, j, k, 1) = x1d
2753 dss(i, j, k, 1) = x1
2755 dssd(i, j, k, 1) = -x1d
2756 dss(i, j, k, 1) = -x1
2758 temp2 = ss(i, j+1, k) +
two*ss(i, j, k) + ss(i, j-1, k) + &
2760 temp1 = (ss(i, j+1, k)-
two*ss(i, j, k)+ss(i, j-1, k))/temp2
2761 x2d = (ssd(i, j+1, k)-
two*ssd(i, j, k)+ssd(i, j-1, k)-temp1*&
2762 & (ssd(i, j+1, k)+
two*ssd(i, j, k)+ssd(i, j-1, k)+sslimd))/&
2765 if (x2 .ge. 0.)
then
2766 dssd(i, j, k, 2) = x2d
2767 dss(i, j, k, 2) = x2
2769 dssd(i, j, k, 2) = -x2d
2770 dss(i, j, k, 2) = -x2
2772 temp2 = ss(i, j, k+1) +
two*ss(i, j, k) + ss(i, j, k-1) + &
2774 temp1 = (ss(i, j, k+1)-
two*ss(i, j, k)+ss(i, j, k-1))/temp2
2775 x3d = (ssd(i, j, k+1)-
two*ssd(i, j, k)+ssd(i, j, k-1)-temp1*&
2776 & (ssd(i, j, k+1)+
two*ssd(i, j, k)+ssd(i, j, k-1)+sslimd))/&
2779 if (x3 .ge. 0.)
then
2780 dssd(i, j, k, 3) = x3d
2781 dss(i, j, k, 3) = x3
2783 dssd(i, j, k, 3) = -x3d
2784 dss(i, j, k, 3) = -x3
2824 rradd = ppor*(
radid(i, j, k)+
radid(i+1, j, k))
2825 rrad = ppor*(
radi(i, j, k)+
radi(i+1, j, k))
2826 if (dss(i, j, k, 1) .lt. dss(i+1, j, k, 1))
then
2827 y1d = dssd(i+1, j, k, 1)
2828 y1 = dss(i+1, j, k, 1)
2830 y1d = dssd(i, j, k, 1)
2831 y1 = dss(i, j, k, 1)
2833 if (dssmax .gt. y1)
then
2840 dis2d = fis2*(min1*rradd+rrad*min1d)
2841 dis2 = fis2*rrad*min1
2842 dis4d =
mydim_d(fis4*rrad, fis4*rradd, dis2, dis2d, dis4)
2849 fsd = ddw1*dis2d + dis2*ddw1d - temp2*dis4d - dis4*(
wd(i+2, &
2851 fs = dis2*ddw1 - dis4*temp2
2857 temp2 =
w(i+1, j, k,
irho)
2858 temp1 =
w(i+1, j, k,
ivx)
2859 temp0 =
w(i, j, k,
irho)
2860 temp =
w(i, j, k,
ivx)
2861 ddw2d = temp2*
wd(i+1, j, k,
ivx) + temp1*
wd(i+1, j, k,
irho)&
2862 & - temp0*
wd(i, j, k,
ivx) - temp*
wd(i, j, k,
irho)
2863 ddw2 = temp1*temp2 - temp*temp0
2864 temp2 =
w(i-1, j, k,
irho)
2865 temp1 =
w(i-1, j, k,
ivx)
2866 temp0 =
w(i+2, j, k,
irho)
2867 temp =
w(i+2, j, k,
ivx)
2868 temp3 = temp*temp0 - temp1*temp2 -
three*ddw2
2869 fsd = ddw2*dis2d + dis2*ddw2d - temp3*dis4d - dis4*(temp0*
wd&
2870 & (i+2, j, k,
ivx)+temp*
wd(i+2, j, k,
irho)-temp2*
wd(i-1, j&
2872 fs = dis2*ddw2 - dis4*temp3
2878 temp3 =
w(i+1, j, k,
irho)
2879 temp2 =
w(i+1, j, k,
ivy)
2880 temp1 =
w(i, j, k,
irho)
2881 temp0 =
w(i, j, k,
ivy)
2882 ddw3d = temp3*
wd(i+1, j, k,
ivy) + temp2*
wd(i+1, j, k,
irho)&
2883 & - temp1*
wd(i, j, k,
ivy) - temp0*
wd(i, j, k,
irho)
2884 ddw3 = temp2*temp3 - temp0*temp1
2885 temp3 =
w(i-1, j, k,
irho)
2886 temp2 =
w(i-1, j, k,
ivy)
2887 temp1 =
w(i+2, j, k,
irho)
2888 temp0 =
w(i+2, j, k,
ivy)
2889 temp = temp0*temp1 - temp2*temp3 -
three*ddw3
2890 fsd = ddw3*dis2d + dis2*ddw3d - temp*dis4d - dis4*(temp1*
wd(&
2891 & i+2, j, k,
ivy)+temp0*
wd(i+2, j, k,
irho)-temp3*
wd(i-1, j&
2893 fs = dis2*ddw3 - dis4*temp
2899 temp3 =
w(i+1, j, k,
irho)
2900 temp2 =
w(i+1, j, k,
ivz)
2901 temp1 =
w(i, j, k,
irho)
2902 temp0 =
w(i, j, k,
ivz)
2903 ddw4d = temp3*
wd(i+1, j, k,
ivz) + temp2*
wd(i+1, j, k,
irho)&
2904 & - temp1*
wd(i, j, k,
ivz) - temp0*
wd(i, j, k,
irho)
2905 ddw4 = temp2*temp3 - temp0*temp1
2906 temp3 =
w(i-1, j, k,
irho)
2907 temp2 =
w(i-1, j, k,
ivz)
2908 temp1 =
w(i+2, j, k,
irho)
2909 temp0 =
w(i+2, j, k,
ivz)
2910 temp = temp0*temp1 - temp2*temp3 -
three*ddw4
2911 fsd = ddw4*dis2d + dis2*ddw4d - temp*dis4d - dis4*(temp1*
wd(&
2912 & i+2, j, k,
ivz)+temp0*
wd(i+2, j, k,
irho)-temp3*
wd(i-1, j&
2914 fs = dis2*ddw4 - dis4*temp
2920 ddw5d =
wd(i+1, j, k,
irhoe) +
pd(i+1, j, k) -
wd(i, j, k, &
2922 ddw5 =
w(i+1, j, k,
irhoe) +
p(i+1, j, k) - (
w(i, j, k, &
2924 temp3 =
w(i+2, j, k,
irhoe) +
p(i+2, j, k) -
w(i-1, j, k, &
2926 fsd = ddw5*dis2d + dis2*ddw5d - temp3*dis4d - dis4*(
wd(i+2, &
2929 fs = dis2*ddw5 - dis4*temp3
2946 rradd = ppor*(
radjd(i, j, k)+
radjd(i, j+1, k))
2947 rrad = ppor*(
radj(i, j, k)+
radj(i, j+1, k))
2948 if (dss(i, j, k, 2) .lt. dss(i, j+1, k, 2))
then
2949 y2d = dssd(i, j+1, k, 2)
2950 y2 = dss(i, j+1, k, 2)
2952 y2d = dssd(i, j, k, 2)
2953 y2 = dss(i, j, k, 2)
2955 if (dssmax .gt. y2)
then
2962 dis2d = fis2*(min2*rradd+rrad*min2d)
2963 dis2 = fis2*rrad*min2
2964 dis4d =
mydim_d(fis4*rrad, fis4*rradd, dis2, dis2d, dis4)
2971 fsd = ddw1*dis2d + dis2*ddw1d - temp3*dis4d - dis4*(
wd(i, j+&
2973 fs = dis2*ddw1 - dis4*temp3
2979 temp3 =
w(i, j+1, k,
irho)
2980 temp2 =
w(i, j+1, k,
ivx)
2981 temp1 =
w(i, j, k,
irho)
2982 temp0 =
w(i, j, k,
ivx)
2983 ddw2d = temp3*
wd(i, j+1, k,
ivx) + temp2*
wd(i, j+1, k,
irho)&
2984 & - temp1*
wd(i, j, k,
ivx) - temp0*
wd(i, j, k,
irho)
2985 ddw2 = temp2*temp3 - temp0*temp1
2986 temp3 =
w(i, j-1, k,
irho)
2987 temp2 =
w(i, j-1, k,
ivx)
2988 temp1 =
w(i, j+2, k,
irho)
2989 temp0 =
w(i, j+2, k,
ivx)
2990 temp = temp0*temp1 - temp2*temp3 -
three*ddw2
2991 fsd = ddw2*dis2d + dis2*ddw2d - temp*dis4d - dis4*(temp1*
wd(&
2992 & i, j+2, k,
ivx)+temp0*
wd(i, j+2, k,
irho)-temp3*
wd(i, j-1&
2994 fs = dis2*ddw2 - dis4*temp
3000 temp3 =
w(i, j+1, k,
irho)
3001 temp2 =
w(i, j+1, k,
ivy)
3002 temp1 =
w(i, j, k,
irho)
3003 temp0 =
w(i, j, k,
ivy)
3004 ddw3d = temp3*
wd(i, j+1, k,
ivy) + temp2*
wd(i, j+1, k,
irho)&
3005 & - temp1*
wd(i, j, k,
ivy) - temp0*
wd(i, j, k,
irho)
3006 ddw3 = temp2*temp3 - temp0*temp1
3007 temp3 =
w(i, j-1, k,
irho)
3008 temp2 =
w(i, j-1, k,
ivy)
3009 temp1 =
w(i, j+2, k,
irho)
3010 temp0 =
w(i, j+2, k,
ivy)
3011 temp = temp0*temp1 - temp2*temp3 -
three*ddw3
3012 fsd = ddw3*dis2d + dis2*ddw3d - temp*dis4d - dis4*(temp1*
wd(&
3013 & i, j+2, k,
ivy)+temp0*
wd(i, j+2, k,
irho)-temp3*
wd(i, j-1&
3015 fs = dis2*ddw3 - dis4*temp
3021 temp3 =
w(i, j+1, k,
irho)
3022 temp2 =
w(i, j+1, k,
ivz)
3023 temp1 =
w(i, j, k,
irho)
3024 temp0 =
w(i, j, k,
ivz)
3025 ddw4d = temp3*
wd(i, j+1, k,
ivz) + temp2*
wd(i, j+1, k,
irho)&
3026 & - temp1*
wd(i, j, k,
ivz) - temp0*
wd(i, j, k,
irho)
3027 ddw4 = temp2*temp3 - temp0*temp1
3028 temp3 =
w(i, j-1, k,
irho)
3029 temp2 =
w(i, j-1, k,
ivz)
3030 temp1 =
w(i, j+2, k,
irho)
3031 temp0 =
w(i, j+2, k,
ivz)
3032 temp = temp0*temp1 - temp2*temp3 -
three*ddw4
3033 fsd = ddw4*dis2d + dis2*ddw4d - temp*dis4d - dis4*(temp1*
wd(&
3034 & i, j+2, k,
ivz)+temp0*
wd(i, j+2, k,
irho)-temp3*
wd(i, j-1&
3036 fs = dis2*ddw4 - dis4*temp
3042 ddw5d =
wd(i, j+1, k,
irhoe) +
pd(i, j+1, k) -
wd(i, j, k, &
3044 ddw5 =
w(i, j+1, k,
irhoe) +
p(i, j+1, k) - (
w(i, j, k, &
3046 temp3 =
w(i, j+2, k,
irhoe) +
p(i, j+2, k) -
w(i, j-1, k, &
3048 fsd = ddw5*dis2d + dis2*ddw5d - temp3*dis4d - dis4*(
wd(i, j+&
3051 fs = dis2*ddw5 - dis4*temp3
3068 rradd = ppor*(
radkd(i, j, k)+
radkd(i, j, k+1))
3069 rrad = ppor*(
radk(i, j, k)+
radk(i, j, k+1))
3070 if (dss(i, j, k, 3) .lt. dss(i, j, k+1, 3))
then
3071 y3d = dssd(i, j, k+1, 3)
3072 y3 = dss(i, j, k+1, 3)
3074 y3d = dssd(i, j, k, 3)
3075 y3 = dss(i, j, k, 3)
3077 if (dssmax .gt. y3)
then
3084 dis2d = fis2*(min3*rradd+rrad*min3d)
3085 dis2 = fis2*rrad*min3
3086 dis4d =
mydim_d(fis4*rrad, fis4*rradd, dis2, dis2d, dis4)
3093 fsd = ddw1*dis2d + dis2*ddw1d - temp3*dis4d - dis4*(
wd(i, j&
3095 fs = dis2*ddw1 - dis4*temp3
3101 temp3 =
w(i, j, k+1,
irho)
3102 temp2 =
w(i, j, k+1,
ivx)
3103 temp1 =
w(i, j, k,
irho)
3104 temp0 =
w(i, j, k,
ivx)
3105 ddw2d = temp3*
wd(i, j, k+1,
ivx) + temp2*
wd(i, j, k+1,
irho)&
3106 & - temp1*
wd(i, j, k,
ivx) - temp0*
wd(i, j, k,
irho)
3107 ddw2 = temp2*temp3 - temp0*temp1
3108 temp3 =
w(i, j, k-1,
irho)
3109 temp2 =
w(i, j, k-1,
ivx)
3110 temp1 =
w(i, j, k+2,
irho)
3111 temp0 =
w(i, j, k+2,
ivx)
3112 temp = temp0*temp1 - temp2*temp3 -
three*ddw2
3113 fsd = ddw2*dis2d + dis2*ddw2d - temp*dis4d - dis4*(temp1*
wd(&
3114 & i, j, k+2,
ivx)+temp0*
wd(i, j, k+2,
irho)-temp3*
wd(i, j, k&
3116 fs = dis2*ddw2 - dis4*temp
3122 temp3 =
w(i, j, k+1,
irho)
3123 temp2 =
w(i, j, k+1,
ivy)
3124 temp1 =
w(i, j, k,
irho)
3125 temp0 =
w(i, j, k,
ivy)
3126 ddw3d = temp3*
wd(i, j, k+1,
ivy) + temp2*
wd(i, j, k+1,
irho)&
3127 & - temp1*
wd(i, j, k,
ivy) - temp0*
wd(i, j, k,
irho)
3128 ddw3 = temp2*temp3 - temp0*temp1
3129 temp3 =
w(i, j, k-1,
irho)
3130 temp2 =
w(i, j, k-1,
ivy)
3131 temp1 =
w(i, j, k+2,
irho)
3132 temp0 =
w(i, j, k+2,
ivy)
3133 temp = temp0*temp1 - temp2*temp3 -
three*ddw3
3134 fsd = ddw3*dis2d + dis2*ddw3d - temp*dis4d - dis4*(temp1*
wd(&
3135 & i, j, k+2,
ivy)+temp0*
wd(i, j, k+2,
irho)-temp3*
wd(i, j, k&
3137 fs = dis2*ddw3 - dis4*temp
3143 temp3 =
w(i, j, k+1,
irho)
3144 temp2 =
w(i, j, k+1,
ivz)
3145 temp1 =
w(i, j, k,
irho)
3146 temp0 =
w(i, j, k,
ivz)
3147 ddw4d = temp3*
wd(i, j, k+1,
ivz) + temp2*
wd(i, j, k+1,
irho)&
3148 & - temp1*
wd(i, j, k,
ivz) - temp0*
wd(i, j, k,
irho)
3149 ddw4 = temp2*temp3 - temp0*temp1
3150 temp3 =
w(i, j, k-1,
irho)
3151 temp2 =
w(i, j, k-1,
ivz)
3152 temp1 =
w(i, j, k+2,
irho)
3153 temp0 =
w(i, j, k+2,
ivz)
3154 temp = temp0*temp1 - temp2*temp3 -
three*ddw4
3155 fsd = ddw4*dis2d + dis2*ddw4d - temp*dis4d - dis4*(temp1*
wd(&
3156 & i, j, k+2,
ivz)+temp0*
wd(i, j, k+2,
irho)-temp3*
wd(i, j, k&
3158 fs = dis2*ddw4 - dis4*temp
3164 ddw5d =
wd(i, j, k+1,
irhoe) +
pd(i, j, k+1) -
wd(i, j, k, &
3166 ddw5 =
w(i, j, k+1,
irhoe) +
p(i, j, k+1) - (
w(i, j, k, &
3168 temp3 =
w(i, j, k+2,
irhoe) +
p(i, j, k+2) -
w(i, j, k-1, &
3170 fsd = ddw5*dis2d + dis2*ddw5d - temp3*dis4d - dis4*(
wd(i, j&
3173 fs = dis2*ddw5 - dis4*temp3
3192 use blockpointers,
only :
nx,
ny,
nz,
il,
jl,
kl,
ie,
je,
ke,
ib, &
3193 &
jb,
kb,
w,
p,
pori,
porj,
pork,
fw,
radi,
radj,
radk,
gamma
3205 real(kind=realtype),
parameter :: dssmax=0.25_realtype
3209 integer(kind=inttype) :: i, j, k, ind, ii
3210 real(kind=realtype) :: sslim, rhoi
3211 real(kind=realtype) :: sfil, fis2, fis4
3212 real(kind=realtype) :: ppor, rrad, dis2, dis4
3213 real(kind=realtype) :: ddw1, ddw2, ddw3, ddw4, ddw5, fs
3214 real(kind=realtype),
dimension(ie, je, ke, 3) :: dss
3215 real(kind=realtype),
dimension(0:ib, 0:jb, 0:kb) :: ss
3221 real(kind=realtype) :: x1
3222 real(kind=realtype) :: x2
3223 real(kind=realtype) :: x3
3224 real(kind=realtype) :: y1
3225 real(kind=realtype) :: y2
3226 real(kind=realtype) :: y3
3227 real(kind=realtype) :: abs0
3228 real(kind=realtype) :: min1
3229 real(kind=realtype) :: min2
3230 real(kind=realtype) :: min3
3231 real(kind=realtype) :: arg1
3232 if (
rfil .ge. 0.)
then
3267 ss(i, j, k) =
p(i, j, k)/
w(i, j, k,
irho)**
gamma(i, j, k)
3276 x1 = (ss(i+1, j, k)-
two*ss(i, j, k)+ss(i-1, j, k))/(ss(i+1, &
3277 & j, k)+
two*ss(i, j, k)+ss(i-1, j, k)+sslim)
3278 if (x1 .ge. 0.)
then
3279 dss(i, j, k, 1) = x1
3281 dss(i, j, k, 1) = -x1
3283 x2 = (ss(i, j+1, k)-
two*ss(i, j, k)+ss(i, j-1, k))/(ss(i, j+&
3284 & 1, k)+
two*ss(i, j, k)+ss(i, j-1, k)+sslim)
3285 if (x2 .ge. 0.)
then
3286 dss(i, j, k, 2) = x2
3288 dss(i, j, k, 2) = -x2
3290 x3 = (ss(i, j, k+1)-
two*ss(i, j, k)+ss(i, j, k-1))/(ss(i, j&
3291 & , k+1)+
two*ss(i, j, k)+ss(i, j, k-1)+sslim)
3292 if (x3 .ge. 0.)
then
3293 dss(i, j, k, 3) = x3
3295 dss(i, j, k, 3) = -x3
3334 rrad = ppor*(
radi(i, j, k)+
radi(i+1, j, k))
3335 if (dss(i, j, k, 1) .lt. dss(i+1, j, k, 1))
then
3336 y1 = dss(i+1, j, k, 1)
3338 y1 = dss(i, j, k, 1)
3340 if (dssmax .gt. y1)
then
3345 dis2 = fis2*rrad*min1
3346 dis4 =
mydim(fis4*rrad, dis2)
3351 fs = dis2*ddw1 - dis4*(
w(i+2, j, k,
irho)-
w(i-1, j, k,
irho)&
3356 ddw2 =
w(i+1, j, k,
ivx)*
w(i+1, j, k,
irho) -
w(i, j, k,
ivx&
3357 & )*
w(i, j, k,
irho)
3358 fs = dis2*ddw2 - dis4*(
w(i+2, j, k,
ivx)*
w(i+2, j, k,
irho)-&
3363 ddw3 =
w(i+1, j, k,
ivy)*
w(i+1, j, k,
irho) -
w(i, j, k,
ivy&
3364 & )*
w(i, j, k,
irho)
3365 fs = dis2*ddw3 - dis4*(
w(i+2, j, k,
ivy)*
w(i+2, j, k,
irho)-&
3370 ddw4 =
w(i+1, j, k,
ivz)*
w(i+1, j, k,
irho) -
w(i, j, k,
ivz&
3371 & )*
w(i, j, k,
irho)
3372 fs = dis2*ddw4 - dis4*(
w(i+2, j, k,
ivz)*
w(i+2, j, k,
irho)-&
3377 ddw5 =
w(i+1, j, k,
irhoe) +
p(i+1, j, k) - (
w(i, j, k, &
3379 fs = dis2*ddw5 - dis4*(
w(i+2, j, k,
irhoe)+
p(i+2, j, k)-(
w(i&
3395 rrad = ppor*(
radj(i, j, k)+
radj(i, j+1, k))
3396 if (dss(i, j, k, 2) .lt. dss(i, j+1, k, 2))
then
3397 y2 = dss(i, j+1, k, 2)
3399 y2 = dss(i, j, k, 2)
3401 if (dssmax .gt. y2)
then
3406 dis2 = fis2*rrad*min2
3407 dis4 =
mydim(fis4*rrad, dis2)
3412 fs = dis2*ddw1 - dis4*(
w(i, j+2, k,
irho)-
w(i, j-1, k,
irho)&
3417 ddw2 =
w(i, j+1, k,
ivx)*
w(i, j+1, k,
irho) -
w(i, j, k,
ivx&
3418 & )*
w(i, j, k,
irho)
3419 fs = dis2*ddw2 - dis4*(
w(i, j+2, k,
ivx)*
w(i, j+2, k,
irho)-&
3424 ddw3 =
w(i, j+1, k,
ivy)*
w(i, j+1, k,
irho) -
w(i, j, k,
ivy&
3425 & )*
w(i, j, k,
irho)
3426 fs = dis2*ddw3 - dis4*(
w(i, j+2, k,
ivy)*
w(i, j+2, k,
irho)-&
3431 ddw4 =
w(i, j+1, k,
ivz)*
w(i, j+1, k,
irho) -
w(i, j, k,
ivz&
3432 & )*
w(i, j, k,
irho)
3433 fs = dis2*ddw4 - dis4*(
w(i, j+2, k,
ivz)*
w(i, j+2, k,
irho)-&
3438 ddw5 =
w(i, j+1, k,
irhoe) +
p(i, j+1, k) - (
w(i, j, k, &
3440 fs = dis2*ddw5 - dis4*(
w(i, j+2, k,
irhoe)+
p(i, j+2, k)-(
w(i&
3456 rrad = ppor*(
radk(i, j, k)+
radk(i, j, k+1))
3457 if (dss(i, j, k, 3) .lt. dss(i, j, k+1, 3))
then
3458 y3 = dss(i, j, k+1, 3)
3460 y3 = dss(i, j, k, 3)
3462 if (dssmax .gt. y3)
then
3467 dis2 = fis2*rrad*min3
3468 dis4 =
mydim(fis4*rrad, dis2)
3473 fs = dis2*ddw1 - dis4*(
w(i, j, k+2,
irho)-
w(i, j, k-1,
irho)&
3478 ddw2 =
w(i, j, k+1,
ivx)*
w(i, j, k+1,
irho) -
w(i, j, k,
ivx&
3479 & )*
w(i, j, k,
irho)
3480 fs = dis2*ddw2 - dis4*(
w(i, j, k+2,
ivx)*
w(i, j, k+2,
irho)-&
3485 ddw3 =
w(i, j, k+1,
ivy)*
w(i, j, k+1,
irho) -
w(i, j, k,
ivy&
3486 & )*
w(i, j, k,
irho)
3487 fs = dis2*ddw3 - dis4*(
w(i, j, k+2,
ivy)*
w(i, j, k+2,
irho)-&
3492 ddw4 =
w(i, j, k+1,
ivz)*
w(i, j, k+1,
irho) -
w(i, j, k,
ivz&
3493 & )*
w(i, j, k,
irho)
3494 fs = dis2*ddw4 - dis4*(
w(i, j, k+2,
ivz)*
w(i, j, k+2,
irho)-&
3499 ddw5 =
w(i, j, k+1,
irhoe) +
p(i, j, k+1) - (
w(i, j, k, &
3501 fs = dis2*ddw5 - dis4*(
w(i, j, k+2,
irhoe)+
p(i, j, k+2)-(
w(i&
3532 use blockpointers,
only :
il,
jl,
kl,
ie,
je,
ke,
ib,
jb,
kb,
w, &
3533 &
wd,
p,
pd,
pori,
porj,
pork,
fw,
fwd,
gamma,
si,
sid,
sj,
sjd,
sk, &
3551 logical,
intent(in) :: finegrid
3555 integer(kind=portype) :: por
3556 integer(kind=inttype) :: nwint
3557 integer(kind=inttype) :: i, j, k, ind
3558 integer(kind=inttype) :: limused, riemannused
3559 real(kind=realtype) :: sx, sy, sz, omk, opk, sfil, gammaface
3560 real(kind=realtype) :: sxd, syd, szd
3561 real(kind=realtype) :: factminmod, sface
3562 real(kind=realtype) :: sfaced
3563 real(kind=realtype),
dimension(nw) :: left, right
3564 real(kind=realtype),
dimension(nw) :: leftd, rightd
3565 real(kind=realtype),
dimension(nw) :: du1, du2, du3
3566 real(kind=realtype),
dimension(nw) :: du1d, du2d, du3d
3567 real(kind=realtype),
dimension(nwf) :: flux
3568 real(kind=realtype),
dimension(nwf) :: fluxd
3569 logical :: firstorderk, correctfork, rotationalperiodic
3571 intrinsic associated
3573 real(kind=realtype) :: abs0
3574 real(realtype) :: max1
3575 if (
rfil .ge. 0.)
then
3589 rotationalperiodic = .true.
3591 rotationalperiodic = .false.
3619 max1 = 1.e-10_realtype
3627 if (finegrid) limused =
limiter
3632 if (finegrid) riemannused =
riemann
3644 if (correctfork)
then
3647 firstorderk = .true.
3650 firstorderk = .false.
3654 firstorderk = .false.
3676 sxd =
sid(i, j, k, 1)
3678 syd =
sid(i, j, k, 2)
3680 szd =
sid(i, j, k, 3)
3698 if (correctfork)
then
3705 right(
ivx) =
w(i+1, j, k,
ivx)
3707 right(
ivy) =
w(i+1, j, k,
ivy)
3709 right(
ivz) =
w(i+1, j, k,
ivz)
3711 right(
irhoe) =
p(i+1, j, k)
3712 if (correctfork)
then
3755 sxd =
sjd(i, j, k, 1)
3757 syd =
sjd(i, j, k, 2)
3759 szd =
sjd(i, j, k, 3)
3777 if (correctfork)
then
3784 right(
ivx) =
w(i, j+1, k,
ivx)
3786 right(
ivy) =
w(i, j+1, k,
ivy)
3788 right(
ivz) =
w(i, j+1, k,
ivz)
3790 right(
irhoe) =
p(i, j+1, k)
3791 if (correctfork)
then
3834 sxd =
skd(i, j, k, 1)
3836 syd =
skd(i, j, k, 2)
3838 szd =
skd(i, j, k, 3)
3856 if (correctfork)
then
3863 right(
ivx) =
w(i, j, k+1,
ivx)
3865 right(
ivy) =
w(i, j, k+1,
ivy)
3867 right(
ivz) =
w(i, j, k+1,
ivz)
3869 right(
irhoe) =
p(i, j, k+1)
3870 if (correctfork)
then
3955 du1d(
irhoe) =
pd(i, j, k) -
pd(i-1, j, k)
3956 du1(
irhoe) =
p(i, j, k) -
p(i-1, j, k)
3957 du2d(
irhoe) =
pd(i+1, j, k) -
pd(i, j, k)
3958 du2(
irhoe) =
p(i+1, j, k) -
p(i, j, k)
3959 du3d(
irhoe) =
pd(i+2, j, k) -
pd(i+1, j, k)
3960 du3(
irhoe) =
p(i+2, j, k) -
p(i+1, j, k)
3961 if (correctfork)
then
3995 if (correctfork)
then
4003 sxd =
sid(i, j, k, 1)
4005 syd =
sid(i, j, k, 2)
4007 szd =
sid(i, j, k, 3)
4077 du1d(
irhoe) =
pd(i, j, k) -
pd(i, j-1, k)
4078 du1(
irhoe) =
p(i, j, k) -
p(i, j-1, k)
4079 du2d(
irhoe) =
pd(i, j+1, k) -
pd(i, j, k)
4080 du2(
irhoe) =
p(i, j+1, k) -
p(i, j, k)
4081 du3d(
irhoe) =
pd(i, j+2, k) -
pd(i, j+1, k)
4082 du3(
irhoe) =
p(i, j+2, k) -
p(i, j+1, k)
4083 if (correctfork)
then
4117 if (correctfork)
then
4125 sxd =
sjd(i, j, k, 1)
4127 syd =
sjd(i, j, k, 2)
4129 szd =
sjd(i, j, k, 3)
4199 du1d(
irhoe) =
pd(i, j, k) -
pd(i, j, k-1)
4200 du1(
irhoe) =
p(i, j, k) -
p(i, j, k-1)
4201 du2d(
irhoe) =
pd(i, j, k+1) -
pd(i, j, k)
4202 du2(
irhoe) =
p(i, j, k+1) -
p(i, j, k)
4203 du3d(
irhoe) =
pd(i, j, k+2) -
pd(i, j, k+1)
4204 du3(
irhoe) =
p(i, j, k+2) -
p(i, j, k+1)
4205 if (correctfork)
then
4239 if (correctfork)
then
4247 sxd =
skd(i, j, k, 1)
4249 syd =
skd(i, j, k, 2)
4251 szd =
skd(i, j, k, 3)
4300 & rotmatrix, left, leftd, right, rightd)
4305 real(kind=realtype),
parameter :: epslim=1.e-10_realtype
4309 real(kind=realtype),
dimension(:),
intent(inout) :: du1, du2, du3
4310 real(kind=realtype),
dimension(:),
intent(inout) :: du1d, du2d, &
4312 real(kind=realtype),
dimension(:),
intent(out) :: left, right
4313 real(kind=realtype),
dimension(:),
intent(out) :: leftd, rightd
4314 real(kind=realtype),
dimension(:, :, :, :, :),
pointer :: &
4319 integer(kind=inttype) :: l
4320 real(kind=realtype) :: rl1, rl2, rr1, rr2, tmp, dvx, dvy, dvz
4321 real(kind=realtype) :: rl1d, rl2d, rr1d, rr2d, tmpd, dvxd, dvyd, &
4323 real(kind=realtype),
dimension(3, 3) :: rot
4328 real(kind=realtype) :: x1
4329 real(kind=realtype) :: x1d
4330 real(kind=realtype) :: y1
4331 real(kind=realtype) :: y1d
4332 real(kind=realtype) :: y2
4333 real(kind=realtype) :: y2d
4334 real(kind=realtype) :: x2
4335 real(kind=realtype) :: x2d
4336 real(kind=realtype) :: y3
4337 real(kind=realtype) :: y3d
4338 real(kind=realtype) :: y4
4339 real(kind=realtype) :: y4d
4340 real(kind=realtype) :: x3
4341 real(kind=realtype) :: x3d
4342 real(kind=realtype) :: x4
4343 real(kind=realtype) :: x4d
4344 real(kind=realtype) :: x5
4345 real(kind=realtype) :: x5d
4346 real(kind=realtype) :: x6
4347 real(kind=realtype) :: x6d
4348 real(kind=realtype) :: max2
4349 real(kind=realtype) :: max2d
4350 real(kind=realtype) :: max3
4351 real(kind=realtype) :: max3d
4352 real(kind=realtype) :: max4
4353 real(kind=realtype) :: max4d
4354 real(kind=realtype) :: max5
4355 real(kind=realtype) :: max5d
4356 real(kind=realtype) :: max6
4357 real(kind=realtype) :: max6d
4358 real(kind=realtype) :: max7
4359 real(kind=realtype) :: max7d
4360 real(kind=realtype) :: temp
4361 real(kind=realtype) :: temp0
4364 if (rotationalperiodic)
then
4367 rot(1, 1) = rotmatrix(i, j, k, 1, 1)
4368 rot(1, 2) = rotmatrix(i, j, k, 1, 2)
4369 rot(1, 3) = rotmatrix(i, j, k, 1, 3)
4370 rot(2, 1) = rotmatrix(i, j, k, 2, 1)
4371 rot(2, 2) = rotmatrix(i, j, k, 2, 2)
4372 rot(2, 3) = rotmatrix(i, j, k, 2, 3)
4373 rot(3, 1) = rotmatrix(i, j, k, 3, 1)
4374 rot(3, 2) = rotmatrix(i, j, k, 3, 2)
4375 rot(3, 3) = rotmatrix(i, j, k, 3, 3)
4384 du1d(
ivx) = rot(1, 1)*dvxd + rot(1, 2)*dvyd + rot(1, 3)*dvzd
4385 du1(
ivx) = rot(1, 1)*dvx + rot(1, 2)*dvy + rot(1, 3)*dvz
4386 du1d(
ivy) = rot(2, 1)*dvxd + rot(2, 2)*dvyd + rot(2, 3)*dvzd
4387 du1(
ivy) = rot(2, 1)*dvx + rot(2, 2)*dvy + rot(2, 3)*dvz
4388 du1d(
ivz) = rot(3, 1)*dvxd + rot(3, 2)*dvyd + rot(3, 3)*dvzd
4389 du1(
ivz) = rot(3, 1)*dvx + rot(3, 2)*dvy + rot(3, 3)*dvz
4396 du2d(
ivx) = rot(1, 1)*dvxd + rot(1, 2)*dvyd + rot(1, 3)*dvzd
4397 du2(
ivx) = rot(1, 1)*dvx + rot(1, 2)*dvy + rot(1, 3)*dvz
4398 du2d(
ivy) = rot(2, 1)*dvxd + rot(2, 2)*dvyd + rot(2, 3)*dvzd
4399 du2(
ivy) = rot(2, 1)*dvx + rot(2, 2)*dvy + rot(2, 3)*dvz
4400 du2d(
ivz) = rot(3, 1)*dvxd + rot(3, 2)*dvyd + rot(3, 3)*dvzd
4401 du2(
ivz) = rot(3, 1)*dvx + rot(3, 2)*dvy + rot(3, 3)*dvz
4408 du3d(
ivx) = rot(1, 1)*dvxd + rot(1, 2)*dvyd + rot(1, 3)*dvzd
4409 du3(
ivx) = rot(1, 1)*dvx + rot(1, 2)*dvy + rot(1, 3)*dvz
4410 du3d(
ivy) = rot(2, 1)*dvxd + rot(2, 2)*dvyd + rot(2, 3)*dvzd
4411 du3(
ivy) = rot(2, 1)*dvx + rot(2, 2)*dvy + rot(2, 3)*dvz
4412 du3d(
ivz) = rot(3, 1)*dvxd + rot(3, 2)*dvyd + rot(3, 3)*dvzd
4413 du3(
ivz) = rot(3, 1)*dvx + rot(3, 2)*dvy + rot(3, 3)*dvz
4416 select case (limused)
4421 leftd(l) = omk*du1d(l) + opk*du2d(l)
4422 left(l) = omk*du1(l) + opk*du2(l)
4423 rightd(l) = -(omk*du3d(l)) - opk*du2d(l)
4424 right(l) = -(omk*du3(l)) - opk*du2(l)
4431 if (du2(l) .ge. 0.)
then
4438 if (x1 .lt. epslim)
then
4447 temp =
one/sign(max2, du2(l))
4448 tmpd = -(temp*sign(1.d0, max2*du2(l))*max2d/sign(max2, du2(l))&
4451 if (du1(l) .ge. 0.)
then
4458 if (x3 .lt. epslim)
then
4465 temp = sign(max4, du1(l))
4467 y1d = (du2d(l)-temp0*sign(1.d0, max4*du1(l))*max4d)/temp
4469 if (
zero .lt. y1)
then
4476 if (
zero .lt. du1(l)*tmp)
then
4477 rl2d = tmp*du1d(l) + du1(l)*tmpd
4483 if (
zero .lt. du3(l)*tmp)
then
4484 rr1d = tmp*du3d(l) + du3(l)*tmpd
4490 if (du3(l) .ge. 0.)
then
4497 if (x4 .lt. epslim)
then
4504 temp0 = sign(max5, du3(l))
4506 y2d = (du2d(l)-temp*sign(1.d0, max5*du3(l))*max5d)/temp0
4508 if (
zero .lt. y2)
then
4516 temp0 = rl1*(
one+rl1)/(
one+rl1*rl1)
4517 rl1d = (
one+2*rl1-temp0*2*rl1)*rl1d/(
one+rl1**2)
4519 temp0 = rl2*(
one+rl2)/(
one+rl2*rl2)
4520 rl2d = (
one+2*rl2-temp0*2*rl2)*rl2d/(
one+rl2**2)
4522 temp0 = rr1*(
one+rr1)/(
one+rr1*rr1)
4523 rr1d = (
one+2*rr1-temp0*2*rr1)*rr1d/(
one+rr1**2)
4525 temp0 = rr2*(
one+rr2)/(
one+rr2*rr2)
4526 rr2d = (
one+2*rr2-temp0*2*rr2)*rr2d/(
one+rr2**2)
4530 leftd(l) = omk*(du1(l)*rl1d+rl1*du1d(l)) + opk*(du2(l)*rl2d+&
4532 left(l) = omk*rl1*du1(l) + opk*rl2*du2(l)
4533 rightd(l) = -(opk*(du2(l)*rr1d+rr1*du2d(l))) - omk*(du3(l)*&
4535 right(l) = -(opk*rr1*du2(l)) - omk*rr2*du3(l)
4542 if (du2(l) .ge. 0.)
then
4549 if (x2 .lt. epslim)
then
4558 temp0 =
one/sign(max3, du2(l))
4559 tmpd = -(temp0*sign(1.d0, max3*du2(l))*max3d/sign(max3, du2(l)&
4562 if (du1(l) .ge. 0.)
then
4569 if (x5 .lt. epslim)
then
4576 temp0 = sign(max6, du1(l))
4578 y3d = (du2d(l)-temp*sign(1.d0, max6*du1(l))*max6d)/temp0
4580 if (
zero .lt. y3)
then
4587 if (
zero .lt. du1(l)*tmp)
then
4588 rl2d = tmp*du1d(l) + du1(l)*tmpd
4594 if (
zero .lt. du3(l)*tmp)
then
4595 rr1d = tmp*du3d(l) + du3(l)*tmpd
4601 if (du3(l) .ge. 0.)
then
4608 if (x6 .lt. epslim)
then
4615 temp0 = sign(max7, du3(l))
4617 y4d = (du2d(l)-temp*sign(1.d0, max7*du3(l))*max7d)/temp0
4619 if (
zero .lt. y4)
then
4626 if (
one .gt. factminmod*rl1)
then
4627 rl1d = factminmod*rl1d
4628 rl1 = factminmod*rl1
4633 if (
one .gt. factminmod*rl2)
then
4634 rl2d = factminmod*rl2d
4635 rl2 = factminmod*rl2
4640 if (
one .gt. factminmod*rr1)
then
4641 rr1d = factminmod*rr1d
4642 rr1 = factminmod*rr1
4647 if (
one .gt. factminmod*rr2)
then
4648 rr2d = factminmod*rr2d
4649 rr2 = factminmod*rr2
4656 leftd(l) = omk*(du1(l)*rl1d+rl1*du1d(l)) + opk*(du2(l)*rl2d+&
4658 left(l) = omk*rl1*du1(l) + opk*rl2*du2(l)
4659 rightd(l) = -(opk*(du2(l)*rr1d+rr1*du2d(l))) - omk*(du3(l)*&
4661 right(l) = -(opk*rr1*du2(l)) - omk*rr2*du3(l)
4667 if (firstorderk)
then
4670 rightd(
itu1) = 0.0_8
4676 if (rotationalperiodic)
then
4684 leftd(
ivx) = rot(1, 1)*dvxd + rot(2, 1)*dvyd + rot(3, 1)*dvzd
4685 left(
ivx) = rot(1, 1)*dvx + rot(2, 1)*dvy + rot(3, 1)*dvz
4686 leftd(
ivy) = rot(1, 2)*dvxd + rot(2, 2)*dvyd + rot(3, 2)*dvzd
4687 left(
ivy) = rot(1, 2)*dvx + rot(2, 2)*dvy + rot(3, 2)*dvz
4688 leftd(
ivz) = rot(1, 3)*dvxd + rot(2, 3)*dvyd + rot(3, 3)*dvzd
4689 left(
ivz) = rot(1, 3)*dvx + rot(2, 3)*dvy + rot(3, 3)*dvz
4697 rightd(
ivx) = rot(1, 1)*dvxd + rot(2, 1)*dvyd + rot(3, 1)*dvzd
4698 right(
ivx) = rot(1, 1)*dvx + rot(2, 1)*dvy + rot(3, 1)*dvz
4699 rightd(
ivy) = rot(1, 2)*dvxd + rot(2, 2)*dvyd + rot(3, 2)*dvzd
4700 right(
ivy) = rot(1, 2)*dvx + rot(2, 2)*dvy + rot(3, 2)*dvz
4701 rightd(
ivz) = rot(1, 3)*dvxd + rot(2, 3)*dvyd + rot(3, 3)*dvzd
4702 right(
ivz) = rot(1, 3)*dvx + rot(2, 3)*dvy + rot(3, 3)*dvz
4712 real(kind=realtype),
parameter :: epslim=1.e-10_realtype
4716 real(kind=realtype),
dimension(:),
intent(inout) :: du1, du2, du3
4717 real(kind=realtype),
dimension(:),
intent(out) :: left, right
4718 real(kind=realtype),
dimension(:, :, :, :, :),
pointer :: &
4723 integer(kind=inttype) :: l
4724 real(kind=realtype) :: rl1, rl2, rr1, rr2, tmp, dvx, dvy, dvz
4725 real(kind=realtype),
dimension(3, 3) :: rot
4730 real(kind=realtype) :: x1
4731 real(kind=realtype) :: y1
4732 real(kind=realtype) :: y2
4733 real(kind=realtype) :: x2
4734 real(kind=realtype) :: y3
4735 real(kind=realtype) :: y4
4736 real(kind=realtype) :: x3
4737 real(kind=realtype) :: x4
4738 real(kind=realtype) :: x5
4739 real(kind=realtype) :: x6
4740 real(kind=realtype) :: max2
4741 real(kind=realtype) :: max3
4742 real(kind=realtype) :: max4
4743 real(kind=realtype) :: max5
4744 real(kind=realtype) :: max6
4745 real(kind=realtype) :: max7
4748 if (rotationalperiodic)
then
4751 rot(1, 1) = rotmatrix(i, j, k, 1, 1)
4752 rot(1, 2) = rotmatrix(i, j, k, 1, 2)
4753 rot(1, 3) = rotmatrix(i, j, k, 1, 3)
4754 rot(2, 1) = rotmatrix(i, j, k, 2, 1)
4755 rot(2, 2) = rotmatrix(i, j, k, 2, 2)
4756 rot(2, 3) = rotmatrix(i, j, k, 2, 3)
4757 rot(3, 1) = rotmatrix(i, j, k, 3, 1)
4758 rot(3, 2) = rotmatrix(i, j, k, 3, 2)
4759 rot(3, 3) = rotmatrix(i, j, k, 3, 3)
4765 du1(
ivx) = rot(1, 1)*dvx + rot(1, 2)*dvy + rot(1, 3)*dvz
4766 du1(
ivy) = rot(2, 1)*dvx + rot(2, 2)*dvy + rot(2, 3)*dvz
4767 du1(
ivz) = rot(3, 1)*dvx + rot(3, 2)*dvy + rot(3, 3)*dvz
4771 du2(
ivx) = rot(1, 1)*dvx + rot(1, 2)*dvy + rot(1, 3)*dvz
4772 du2(
ivy) = rot(2, 1)*dvx + rot(2, 2)*dvy + rot(2, 3)*dvz
4773 du2(
ivz) = rot(3, 1)*dvx + rot(3, 2)*dvy + rot(3, 3)*dvz
4777 du3(
ivx) = rot(1, 1)*dvx + rot(1, 2)*dvy + rot(1, 3)*dvz
4778 du3(
ivy) = rot(2, 1)*dvx + rot(2, 2)*dvy + rot(2, 3)*dvz
4779 du3(
ivz) = rot(3, 1)*dvx + rot(3, 2)*dvy + rot(3, 3)*dvz
4782 select case (limused)
4787 left(l) = omk*du1(l) + opk*du2(l)
4788 right(l) = -(omk*du3(l)) - opk*du2(l)
4795 if (du2(l) .ge. 0.)
then
4800 if (x1 .lt. epslim)
then
4807 tmp =
one/sign(max2, du2(l))
4808 if (du1(l) .ge. 0.)
then
4813 if (x3 .lt. epslim)
then
4818 y1 = du2(l)/sign(max4, du1(l))
4819 if (
zero .lt. y1)
then
4824 if (
zero .lt. du1(l)*tmp)
then
4829 if (
zero .lt. du3(l)*tmp)
then
4834 if (du3(l) .ge. 0.)
then
4839 if (x4 .lt. epslim)
then
4844 y2 = du2(l)/sign(max5, du3(l))
4845 if (
zero .lt. y2)
then
4851 rl1 = rl1*(rl1+
one)/(rl1*rl1+
one)
4852 rl2 = rl2*(rl2+
one)/(rl2*rl2+
one)
4853 rr1 = rr1*(rr1+
one)/(rr1*rr1+
one)
4854 rr2 = rr2*(rr2+
one)/(rr2*rr2+
one)
4857 left(l) = omk*rl1*du1(l) + opk*rl2*du2(l)
4858 right(l) = -(opk*rr1*du2(l)) - omk*rr2*du3(l)
4865 if (du2(l) .ge. 0.)
then
4870 if (x2 .lt. epslim)
then
4877 tmp =
one/sign(max3, du2(l))
4878 if (du1(l) .ge. 0.)
then
4883 if (x5 .lt. epslim)
then
4888 y3 = du2(l)/sign(max6, du1(l))
4889 if (
zero .lt. y3)
then
4894 if (
zero .lt. du1(l)*tmp)
then
4899 if (
zero .lt. du3(l)*tmp)
then
4904 if (du3(l) .ge. 0.)
then
4909 if (x6 .lt. epslim)
then
4914 y4 = du2(l)/sign(max7, du3(l))
4915 if (
zero .lt. y4)
then
4920 if (
one .gt. factminmod*rl1)
then
4921 rl1 = factminmod*rl1
4925 if (
one .gt. factminmod*rl2)
then
4926 rl2 = factminmod*rl2
4930 if (
one .gt. factminmod*rr1)
then
4931 rr1 = factminmod*rr1
4935 if (
one .gt. factminmod*rr2)
then
4936 rr2 = factminmod*rr2
4942 left(l) = omk*rl1*du1(l) + opk*rl2*du2(l)
4943 right(l) = -(opk*rr1*du2(l)) - omk*rr2*du3(l)
4949 if (firstorderk)
then
4956 if (rotationalperiodic)
then
4961 left(
ivx) = rot(1, 1)*dvx + rot(2, 1)*dvy + rot(3, 1)*dvz
4962 left(
ivy) = rot(1, 2)*dvx + rot(2, 2)*dvy + rot(3, 2)*dvz
4963 left(
ivz) = rot(1, 3)*dvx + rot(2, 3)*dvy + rot(3, 3)*dvz
4968 right(
ivx) = rot(1, 1)*dvx + rot(2, 1)*dvy + rot(3, 1)*dvz
4969 right(
ivy) = rot(1, 2)*dvx + rot(2, 2)*dvy + rot(3, 2)*dvz
4970 right(
ivz) = rot(1, 3)*dvx + rot(2, 3)*dvy + rot(3, 3)*dvz
4983 real(kind=realtype),
dimension(*),
intent(in) :: left, right
4984 real(kind=realtype),
dimension(*),
intent(in) :: leftd, rightd
4985 real(kind=realtype),
dimension(*),
intent(out) :: flux
4986 real(kind=realtype),
dimension(*),
intent(out) :: fluxd
4990 real(kind=realtype) :: porflux, rface
4991 real(kind=realtype) :: rfaced
4992 real(kind=realtype) :: etl, etr, z1l, z1r, tmp
4993 real(kind=realtype) :: etld, etrd, z1ld, z1rd, tmpd
4994 real(kind=realtype) :: dr, dru, drv, drw, dre, drk
4995 real(kind=realtype) :: drd, drud, drvd, drwd, dred, drkd
4996 real(kind=realtype) :: ravg, uavg, vavg, wavg, havg, kavg
4997 real(kind=realtype) :: uavgd, vavgd, wavgd, havgd, kavgd
4998 real(kind=realtype) :: alphaavg, a2avg, aavg, unavg
4999 real(kind=realtype) :: alphaavgd, a2avgd, aavgd, unavgd
5000 real(kind=realtype) :: ovaavg, ova2avg, area, eta
5001 real(kind=realtype) :: ovaavgd, ova2avgd, aread, etad
5002 real(kind=realtype) :: gm1, gm53
5003 real(kind=realtype) :: lam1, lam2, lam3
5004 real(kind=realtype) :: lam1d, lam2d, lam3d
5005 real(kind=realtype) :: abv1, abv2, abv3, abv4, abv5, abv6, abv7
5006 real(kind=realtype) :: abv1d, abv2d, abv3d, abv4d, abv5d, abv6d, &
5008 real(kind=realtype),
dimension(2) :: ktmp
5009 real(kind=realtype),
dimension(2) :: ktmpd
5013 real(kind=realtype) :: x1
5014 real(kind=realtype) :: x1d
5015 real(kind=realtype) :: x2
5016 real(kind=realtype) :: x2d
5017 real(realtype) :: max2
5018 real(realtype) :: max2d
5019 real(kind=realtype) :: abs1
5020 real(kind=realtype) :: abs1d
5021 real(kind=realtype) :: abs2
5022 real(kind=realtype) :: abs2d
5023 real(kind=realtype) :: arg1
5024 real(kind=realtype) :: arg1d
5025 real(kind=realtype) :: result1
5026 real(kind=realtype) :: result1d
5027 real(kind=realtype) :: arg2
5028 real(kind=realtype) :: arg2d
5029 real(kind=realtype) :: result2
5030 real(kind=realtype) :: result2d
5031 real(kind=realtype) :: temp
5032 real(kind=realtype) :: temp0
5033 real(kind=realtype) :: temp1
5039 gm1 = gammaface -
one
5042 select case (riemannused)
5051 temp = sqrt(left(
irho))
5052 if (left(
irho) .eq. 0.0_8)
then
5055 z1ld = leftd(
irho)/(2.0*temp)
5058 temp = sqrt(right(
irho))
5059 if (right(
irho) .eq. 0.0_8)
then
5062 z1rd = rightd(
irho)/(2.0*temp)
5065 temp =
one/(z1l+z1r)
5066 tmpd = -(temp*(z1ld+z1rd)/(z1l+z1r))
5070 if (correctfork)
then
5074 ktmpd(1) = leftd(
itu1)
5075 ktmp(1) = left(
itu1)
5076 ktmpd(2) = rightd(
itu1)
5077 ktmp(2) = right(
itu1)
5085 temp = z1l*left(
itu1) + z1r*right(
itu1)
5086 kavgd = temp*tmpd + tmp*(left(
itu1)*z1ld+z1l*leftd(
itu1)+&
5087 & right(
itu1)*z1rd+z1r*rightd(
itu1))
5103 & ), leftd(
irhoe), ktmp(1), ktmpd(1), etl, etld, &
5107 & , right(
ivy), rightd(
ivy), right(
ivz), rightd(
ivz), &
5108 & right(
irhoe), rightd(
irhoe), ktmp(2), ktmpd(2), etr, &
5109 & etrd, correctfork)
5127 ravg =
fourth*(z1r+z1l)**2
5128 temp = z1l*left(
ivx) + z1r*right(
ivx)
5129 uavgd = temp*tmpd + tmp*(left(
ivx)*z1ld+z1l*leftd(
ivx)+right(&
5130 &
ivx)*z1rd+z1r*rightd(
ivx))
5132 temp = z1l*left(
ivy) + z1r*right(
ivy)
5133 vavgd = temp*tmpd + tmp*(left(
ivy)*z1ld+z1l*leftd(
ivy)+right(&
5134 &
ivy)*z1rd+z1r*rightd(
ivy))
5136 temp = z1l*left(
ivz) + z1r*right(
ivz)
5137 wavgd = temp*tmpd + tmp*(left(
ivz)*z1ld+z1l*leftd(
ivz)+right(&
5138 &
ivz)*z1rd+z1r*rightd(
ivz))
5140 temp = (etr+right(
irhoe))/z1r
5141 temp0 = (etl+left(
irhoe))/z1l
5142 temp1 = temp0 + temp
5143 havgd = temp1*tmpd + tmp*((etld+leftd(
irhoe)-temp0*z1ld)/z1l+(&
5144 & etrd+rightd(
irhoe)-temp*z1rd)/z1r)
5148 arg1d = 2*sx*sxd + 2*sy*syd + 2*sz*szd
5149 arg1 = sx**2 + sy**2 + sz**2
5151 if (arg1 .eq. 0.0_8)
then
5154 aread = arg1d/(2.0*temp1)
5157 if (1.e-25_realtype .lt. area)
then
5161 max2 = 1.e-25_realtype
5164 tmpd = -(
one*max2d/max2**2)
5166 sxd = tmp*sxd + sx*tmpd
5168 syd = tmp*syd + sy*tmpd
5170 szd = tmp*szd + sz*tmpd
5172 rfaced = tmp*sfaced + sface*tmpd
5176 alphaavgd =
half*(2*uavg*uavgd+2*vavg*vavgd+2*wavg*wavgd)
5177 alphaavg =
half*(uavg**2+vavg**2+wavg**2)
5178 if (gm1*(havg-alphaavg) - gm53*kavg .ge. 0.)
then
5179 a2avgd = gm1*(havgd-alphaavgd) - gm53*kavgd
5180 a2avg = gm1*(havg-alphaavg) - gm53*kavg
5182 a2avgd = gm53*kavgd - gm1*(havgd-alphaavgd)
5183 a2avg = -(gm1*(havg-alphaavg)-gm53*kavg)
5186 if (a2avg .eq. 0.0_8)
then
5189 aavgd = a2avgd/(2.0*temp1)
5192 unavgd = sx*uavgd + uavg*sxd + sy*vavgd + vavg*syd + sz*wavgd &
5194 unavg = uavg*sx + vavg*sy + wavg*sz
5195 ovaavgd = -(
one*aavgd/aavg**2)
5197 ova2avgd = -(
one*a2avgd/a2avg**2)
5205 x1d = sx*(leftd(
ivx)-rightd(
ivx)) + (left(
ivx)-right(
ivx))*sxd&
5206 & + sy*(leftd(
ivy)-rightd(
ivy)) + (left(
ivy)-right(
ivy))*syd +&
5207 & sz*(leftd(
ivz)-rightd(
ivz)) + (left(
ivz)-right(
ivz))*szd
5208 x1 = (left(
ivx)-right(
ivx))*sx + (left(
ivy)-right(
ivy))*sy + (&
5209 & left(
ivz)-right(
ivz))*sz
5210 if (x1 .ge. 0.)
then
5218 arg1d = gammaface*(leftd(
irhoe)-temp1*leftd(
irho))/left(
irho)
5219 arg1 = gammaface*temp1
5221 if (arg1 .eq. 0.0_8)
then
5224 result1d = arg1d/(2.0*temp1)
5228 arg2d = gammaface*(rightd(
irhoe)-temp1*rightd(
irho))/right(&
5230 arg2 = gammaface*temp1
5232 if (arg2 .eq. 0.0_8)
then
5235 result2d = arg2d/(2.0*temp1)
5238 x2d = result1d - result2d
5239 x2 = result1 - result2
5240 if (x2 .ge. 0.)
then
5257 etad =
half*(abs1d+abs2d)
5258 eta =
half*(abs1+abs2)
5259 if (unavg - rface + aavg .ge. 0.)
then
5260 lam1d = unavgd - rfaced + aavgd
5261 lam1 = unavg - rface + aavg
5263 lam1d = rfaced - unavgd - aavgd
5264 lam1 = -(unavg-rface+aavg)
5266 if (unavg - rface - aavg .ge. 0.)
then
5267 lam2d = unavgd - rfaced - aavgd
5268 lam2 = unavg - rface - aavg
5270 lam2d = rfaced - unavgd + aavgd
5271 lam2 = -(unavg-rface-aavg)
5273 if (unavg - rface .ge. 0.)
then
5274 lam3d = unavgd - rfaced
5275 lam3 = unavg - rface
5277 lam3d = rfaced - unavgd
5278 lam3 = -(unavg-rface)
5282 if (lam1 .lt. tmp)
then
5283 temp1 = lam1*lam1/eta
5284 lam1d = etad +
fourth*(2*lam1*lam1d-temp1*etad)/eta
5285 lam1 = eta +
fourth*temp1
5287 if (lam2 .lt. tmp)
then
5288 temp1 = lam2*lam2/eta
5289 lam2d = etad +
fourth*(2*lam2*lam2d-temp1*etad)/eta
5290 lam2 = eta +
fourth*temp1
5292 if (lam3 .lt. tmp)
then
5293 temp1 = lam3*lam3/eta
5294 lam3d = etad +
fourth*(2*lam3*lam3d-temp1*etad)/eta
5295 lam3 = eta +
fourth*temp1
5299 lam1d = area*lam1d + lam1*aread
5301 lam2d = area*lam2d + lam2*aread
5303 lam3d = area*lam3d + lam3*aread
5307 abv1d =
half*(lam1d+lam2d)
5308 abv1 =
half*(lam1+lam2)
5309 abv2d =
half*(lam1d-lam2d)
5310 abv2 =
half*(lam1-lam2)
5311 abv3d = abv1d - lam3d
5313 abv4d = gm1*(dr*alphaavgd+alphaavg*drd-dru*uavgd-uavg*drud-drv&
5314 & *vavgd-vavg*drvd+dred-drw*wavgd-wavg*drwd) - gm53*drkd
5315 abv4 = gm1*(alphaavg*dr-uavg*dru-vavg*drv-wavg*drw+dre) - gm53&
5317 abv5d = dru*sxd + sx*drud + drv*syd + sy*drvd + drw*szd + sz*&
5318 & drwd - dr*unavgd - unavg*drd
5319 abv5 = sx*dru + sy*drv + sz*drw - unavg*dr
5320 abv6d = ova2avg*(abv4*abv3d+abv3*abv4d) + abv3*abv4*ova2avgd +&
5321 & ovaavg*(abv5*abv2d+abv2*abv5d) + abv2*abv5*ovaavgd
5322 abv6 = abv3*abv4*ova2avg + abv2*abv5*ovaavg
5323 abv7d = ovaavg*(abv4*abv2d+abv2*abv4d) + abv2*abv4*ovaavgd + &
5324 & abv5*abv3d + abv3*abv5d
5325 abv7 = abv2*abv4*ovaavg + abv3*abv5
5329 fluxd(
irho) = -(porflux*(dr*lam3d+lam3*drd+abv6d))
5330 flux(
irho) = -(porflux*(lam3*dr+abv6))
5331 fluxd(
imx) = -(porflux*(dru*lam3d+lam3*drud+abv6*uavgd+uavg*&
5332 & abv6d+abv7*sxd+sx*abv7d))
5333 flux(
imx) = -(porflux*(lam3*dru+uavg*abv6+sx*abv7))
5334 fluxd(
imy) = -(porflux*(drv*lam3d+lam3*drvd+abv6*vavgd+vavg*&
5335 & abv6d+abv7*syd+sy*abv7d))
5336 flux(
imy) = -(porflux*(lam3*drv+vavg*abv6+sy*abv7))
5337 fluxd(
imz) = -(porflux*(drw*lam3d+lam3*drwd+abv6*wavgd+wavg*&
5338 & abv6d+abv7*szd+sz*abv7d))
5339 flux(
imz) = -(porflux*(lam3*drw+wavg*abv6+sz*abv7))
5340 fluxd(
irhoe) = -(porflux*(dre*lam3d+lam3*dred+abv6*havgd+havg*&
5341 & abv6d+abv7*unavgd+unavg*abv7d))
5342 flux(
irhoe) = -(porflux*(lam3*dre+havg*abv6+unavg*abv7))
5351 &
'turkel preconditioner not implemented yet')
5354 &
'choi merkle preconditioner not implemented yet')
5357 call terminate(
'riemannflux',
'van leer fvs not implemented yet'&
5360 call terminate(
'riemannflux',
'ausmdv fvs not implemented yet')
5370 real(kind=realtype),
dimension(*),
intent(in) :: left, right
5371 real(kind=realtype),
dimension(*),
intent(out) :: flux
5375 real(kind=realtype) :: porflux, rface
5376 real(kind=realtype) :: etl, etr, z1l, z1r, tmp
5377 real(kind=realtype) :: dr, dru, drv, drw, dre, drk
5378 real(kind=realtype) :: ravg, uavg, vavg, wavg, havg, kavg
5379 real(kind=realtype) :: alphaavg, a2avg, aavg, unavg
5380 real(kind=realtype) :: ovaavg, ova2avg, area, eta
5381 real(kind=realtype) :: gm1, gm53
5382 real(kind=realtype) :: lam1, lam2, lam3
5383 real(kind=realtype) :: abv1, abv2, abv3, abv4, abv5, abv6, abv7
5384 real(kind=realtype),
dimension(2) :: ktmp
5388 real(kind=realtype) :: x1
5389 real(kind=realtype) :: x2
5390 real(realtype) :: max2
5391 real(kind=realtype) :: abs1
5392 real(kind=realtype) :: abs2
5393 real(kind=realtype) :: arg1
5394 real(kind=realtype) :: result1
5395 real(kind=realtype) :: arg2
5396 real(kind=realtype) :: result2
5402 gm1 = gammaface -
one
5405 select case (riemannused)
5414 z1l = sqrt(left(
irho))
5415 z1r = sqrt(right(
irho))
5419 if (correctfork)
then
5422 ktmp(1) = left(
itu1)
5423 ktmp(2) = right(
itu1)
5429 kavg = tmp*(z1l*left(
itu1)+z1r*right(
itu1))
5439 &
irhoe), ktmp(1), etl, correctfork)
5441 & right(
irhoe), ktmp(2), etr, correctfork)
5451 ravg =
fourth*(z1r+z1l)**2
5452 uavg = tmp*(z1l*left(
ivx)+z1r*right(
ivx))
5453 vavg = tmp*(z1l*left(
ivy)+z1r*right(
ivy))
5454 wavg = tmp*(z1l*left(
ivz)+z1r*right(
ivz))
5455 havg = tmp*((etl+left(
irhoe))/z1l+(etr+right(
irhoe))/z1r)
5458 arg1 = sx**2 + sy**2 + sz**2
5460 if (1.e-25_realtype .lt. area)
then
5463 max2 = 1.e-25_realtype
5472 alphaavg =
half*(uavg**2+vavg**2+wavg**2)
5473 if (gm1*(havg-alphaavg) - gm53*kavg .ge. 0.)
then
5474 a2avg = gm1*(havg-alphaavg) - gm53*kavg
5476 a2avg = -(gm1*(havg-alphaavg)-gm53*kavg)
5479 unavg = uavg*sx + vavg*sy + wavg*sz
5485 x1 = (left(
ivx)-right(
ivx))*sx + (left(
ivy)-right(
ivy))*sy + (&
5486 & left(
ivz)-right(
ivz))*sz
5487 if (x1 .ge. 0.)
then
5493 result1 = sqrt(arg1)
5494 arg2 = gammaface*right(
irhoe)/right(
irho)
5495 result2 = sqrt(arg2)
5496 x2 = result1 - result2
5497 if (x2 .ge. 0.)
then
5512 eta =
half*(abs1+abs2)
5513 if (unavg - rface + aavg .ge. 0.)
then
5514 lam1 = unavg - rface + aavg
5516 lam1 = -(unavg-rface+aavg)
5518 if (unavg - rface - aavg .ge. 0.)
then
5519 lam2 = unavg - rface - aavg
5521 lam2 = -(unavg-rface-aavg)
5523 if (unavg - rface .ge. 0.)
then
5524 lam3 = unavg - rface
5526 lam3 = -(unavg-rface)
5530 if (lam1 .lt. tmp) lam1 = eta +
fourth*lam1*lam1/eta
5531 if (lam2 .lt. tmp) lam2 = eta +
fourth*lam2*lam2/eta
5532 if (lam3 .lt. tmp) lam3 = eta +
fourth*lam3*lam3/eta
5540 abv1 =
half*(lam1+lam2)
5541 abv2 =
half*(lam1-lam2)
5543 abv4 = gm1*(alphaavg*dr-uavg*dru-vavg*drv-wavg*drw+dre) - gm53&
5545 abv5 = sx*dru + sy*drv + sz*drw - unavg*dr
5546 abv6 = abv3*abv4*ova2avg + abv2*abv5*ovaavg
5547 abv7 = abv2*abv4*ovaavg + abv3*abv5
5551 flux(
irho) = -(porflux*(lam3*dr+abv6))
5552 flux(
imx) = -(porflux*(lam3*dru+uavg*abv6+sx*abv7))
5553 flux(
imy) = -(porflux*(lam3*drv+vavg*abv6+sy*abv7))
5554 flux(
imz) = -(porflux*(lam3*drw+wavg*abv6+sz*abv7))
5555 flux(
irhoe) = -(porflux*(lam3*dre+havg*abv6+unavg*abv7))
5564 &
'turkel preconditioner not implemented yet')
5567 &
'choi merkle preconditioner not implemented yet')
5570 call terminate(
'riemannflux',
'van leer fvs not implemented yet'&
5573 call terminate(
'riemannflux',
'ausmdv fvs not implemented yet')
5592 use blockpointers,
only :
il,
jl,
kl,
ie,
je,
ke,
ib,
jb,
kb,
w,
p&
5593 & ,
pori,
porj,
pork,
fw,
gamma,
si,
sj,
sk,
indfamilyi,
indfamilyj, &
5609 logical,
intent(in) :: finegrid
5613 integer(kind=portype) :: por
5614 integer(kind=inttype) :: nwint
5615 integer(kind=inttype) :: i, j, k, ind
5616 integer(kind=inttype) :: limused, riemannused
5617 real(kind=realtype) :: sx, sy, sz, omk, opk, sfil, gammaface
5618 real(kind=realtype) :: factminmod, sface
5619 real(kind=realtype),
dimension(nw) :: left, right
5620 real(kind=realtype),
dimension(nw) :: du1, du2, du3
5621 real(kind=realtype),
dimension(nwf) :: flux
5622 logical :: firstorderk, correctfork, rotationalperiodic
5624 intrinsic associated
5626 real(kind=realtype) :: abs0
5627 real(realtype) :: max1
5628 if (
rfil .ge. 0.)
then
5642 rotationalperiodic = .true.
5644 rotationalperiodic = .false.
5667 max1 = 1.e-10_realtype
5675 if (finegrid) limused =
limiter
5680 if (finegrid) riemannused =
riemann
5692 if (correctfork)
then
5695 firstorderk = .true.
5698 firstorderk = .false.
5702 firstorderk = .false.
5731 if (correctfork) left(
itu1) =
w(i, j, k,
itu1)
5733 right(
ivx) =
w(i+1, j, k,
ivx)
5734 right(
ivy) =
w(i+1, j, k,
ivy)
5735 right(
ivz) =
w(i+1, j, k,
ivz)
5736 right(
irhoe) =
p(i+1, j, k)
5737 if (correctfork) right(
itu1) =
w(i+1, j, k,
itu1)
5776 if (correctfork) left(
itu1) =
w(i, j, k,
itu1)
5778 right(
ivx) =
w(i, j+1, k,
ivx)
5779 right(
ivy) =
w(i, j+1, k,
ivy)
5780 right(
ivz) =
w(i, j+1, k,
ivz)
5781 right(
irhoe) =
p(i, j+1, k)
5782 if (correctfork) right(
itu1) =
w(i, j+1, k,
itu1)
5821 if (correctfork) left(
itu1) =
w(i, j, k,
itu1)
5823 right(
ivx) =
w(i, j, k+1,
ivx)
5824 right(
ivy) =
w(i, j, k+1,
ivy)
5825 right(
ivz) =
w(i, j, k+1,
ivz)
5826 right(
irhoe) =
p(i, j, k+1)
5827 if (correctfork) right(
itu1) =
w(i, j, k+1,
itu1)
5878 du1(
irhoe) =
p(i, j, k) -
p(i-1, j, k)
5879 du2(
irhoe) =
p(i+1, j, k) -
p(i, j, k)
5880 du3(
irhoe) =
p(i+2, j, k) -
p(i+1, j, k)
5881 if (correctfork)
then
5902 if (correctfork)
then
5952 du1(
irhoe) =
p(i, j, k) -
p(i, j-1, k)
5953 du2(
irhoe) =
p(i, j+1, k) -
p(i, j, k)
5954 du3(
irhoe) =
p(i, j+2, k) -
p(i, j+1, k)
5955 if (correctfork)
then
5976 if (correctfork)
then
6026 du1(
irhoe) =
p(i, j, k) -
p(i, j, k-1)
6027 du2(
irhoe) =
p(i, j, k+1) -
p(i, j, k)
6028 du3(
irhoe) =
p(i, j, k+2) -
p(i, j, k+1)
6029 if (correctfork)
then
6050 if (correctfork)
then
6092 real(kind=realtype),
parameter :: epslim=1.e-10_realtype
6096 real(kind=realtype),
dimension(:),
intent(inout) :: du1, du2, du3
6097 real(kind=realtype),
dimension(:),
intent(out) :: left, right
6098 real(kind=realtype),
dimension(:, :, :, :, :),
pointer :: &
6103 integer(kind=inttype) :: l
6104 real(kind=realtype) :: rl1, rl2, rr1, rr2, tmp, dvx, dvy, dvz
6105 real(kind=realtype),
dimension(3, 3) :: rot
6110 real(kind=realtype) :: x1
6111 real(kind=realtype) :: y1
6112 real(kind=realtype) :: y2
6113 real(kind=realtype) :: x2
6114 real(kind=realtype) :: y3
6115 real(kind=realtype) :: y4
6116 real(kind=realtype) :: x3
6117 real(kind=realtype) :: x4
6118 real(kind=realtype) :: x5
6119 real(kind=realtype) :: x6
6120 real(kind=realtype) :: max2
6121 real(kind=realtype) :: max3
6122 real(kind=realtype) :: max4
6123 real(kind=realtype) :: max5
6124 real(kind=realtype) :: max6
6125 real(kind=realtype) :: max7
6128 if (rotationalperiodic)
then
6131 rot(1, 1) = rotmatrix(i, j, k, 1, 1)
6132 rot(1, 2) = rotmatrix(i, j, k, 1, 2)
6133 rot(1, 3) = rotmatrix(i, j, k, 1, 3)
6134 rot(2, 1) = rotmatrix(i, j, k, 2, 1)
6135 rot(2, 2) = rotmatrix(i, j, k, 2, 2)
6136 rot(2, 3) = rotmatrix(i, j, k, 2, 3)
6137 rot(3, 1) = rotmatrix(i, j, k, 3, 1)
6138 rot(3, 2) = rotmatrix(i, j, k, 3, 2)
6139 rot(3, 3) = rotmatrix(i, j, k, 3, 3)
6145 du1(
ivx) = rot(1, 1)*dvx + rot(1, 2)*dvy + rot(1, 3)*dvz
6146 du1(
ivy) = rot(2, 1)*dvx + rot(2, 2)*dvy + rot(2, 3)*dvz
6147 du1(
ivz) = rot(3, 1)*dvx + rot(3, 2)*dvy + rot(3, 3)*dvz
6151 du2(
ivx) = rot(1, 1)*dvx + rot(1, 2)*dvy + rot(1, 3)*dvz
6152 du2(
ivy) = rot(2, 1)*dvx + rot(2, 2)*dvy + rot(2, 3)*dvz
6153 du2(
ivz) = rot(3, 1)*dvx + rot(3, 2)*dvy + rot(3, 3)*dvz
6157 du3(
ivx) = rot(1, 1)*dvx + rot(1, 2)*dvy + rot(1, 3)*dvz
6158 du3(
ivy) = rot(2, 1)*dvx + rot(2, 2)*dvy + rot(2, 3)*dvz
6159 du3(
ivz) = rot(3, 1)*dvx + rot(3, 2)*dvy + rot(3, 3)*dvz
6162 select case (limused)
6167 left(l) = omk*du1(l) + opk*du2(l)
6168 right(l) = -(omk*du3(l)) - opk*du2(l)
6175 if (du2(l) .ge. 0.)
then
6180 if (x1 .lt. epslim)
then
6187 tmp =
one/sign(max2, du2(l))
6188 if (du1(l) .ge. 0.)
then
6193 if (x3 .lt. epslim)
then
6198 y1 = du2(l)/sign(max4, du1(l))
6199 if (
zero .lt. y1)
then
6204 if (
zero .lt. du1(l)*tmp)
then
6209 if (
zero .lt. du3(l)*tmp)
then
6214 if (du3(l) .ge. 0.)
then
6219 if (x4 .lt. epslim)
then
6224 y2 = du2(l)/sign(max5, du3(l))
6225 if (
zero .lt. y2)
then
6231 rl1 = rl1*(rl1+
one)/(rl1*rl1+
one)
6232 rl2 = rl2*(rl2+
one)/(rl2*rl2+
one)
6233 rr1 = rr1*(rr1+
one)/(rr1*rr1+
one)
6234 rr2 = rr2*(rr2+
one)/(rr2*rr2+
one)
6237 left(l) = omk*rl1*du1(l) + opk*rl2*du2(l)
6238 right(l) = -(opk*rr1*du2(l)) - omk*rr2*du3(l)
6245 if (du2(l) .ge. 0.)
then
6250 if (x2 .lt. epslim)
then
6257 tmp =
one/sign(max3, du2(l))
6258 if (du1(l) .ge. 0.)
then
6263 if (x5 .lt. epslim)
then
6268 y3 = du2(l)/sign(max6, du1(l))
6269 if (
zero .lt. y3)
then
6274 if (
zero .lt. du1(l)*tmp)
then
6279 if (
zero .lt. du3(l)*tmp)
then
6284 if (du3(l) .ge. 0.)
then
6289 if (x6 .lt. epslim)
then
6294 y4 = du2(l)/sign(max7, du3(l))
6295 if (
zero .lt. y4)
then
6300 if (
one .gt. factminmod*rl1)
then
6301 rl1 = factminmod*rl1
6305 if (
one .gt. factminmod*rl2)
then
6306 rl2 = factminmod*rl2
6310 if (
one .gt. factminmod*rr1)
then
6311 rr1 = factminmod*rr1
6315 if (
one .gt. factminmod*rr2)
then
6316 rr2 = factminmod*rr2
6322 left(l) = omk*rl1*du1(l) + opk*rl2*du2(l)
6323 right(l) = -(opk*rr1*du2(l)) - omk*rr2*du3(l)
6329 if (firstorderk)
then
6336 if (rotationalperiodic)
then
6341 left(
ivx) = rot(1, 1)*dvx + rot(2, 1)*dvy + rot(3, 1)*dvz
6342 left(
ivy) = rot(1, 2)*dvx + rot(2, 2)*dvy + rot(3, 2)*dvz
6343 left(
ivz) = rot(1, 3)*dvx + rot(2, 3)*dvy + rot(3, 3)*dvz
6348 right(
ivx) = rot(1, 1)*dvx + rot(2, 1)*dvy + rot(3, 1)*dvz
6349 right(
ivy) = rot(1, 2)*dvx + rot(2, 2)*dvy + rot(3, 2)*dvz
6350 right(
ivz) = rot(1, 3)*dvx + rot(2, 3)*dvy + rot(3, 3)*dvz
6360 real(kind=realtype),
dimension(*),
intent(in) :: left, right
6361 real(kind=realtype),
dimension(*),
intent(out) :: flux
6365 real(kind=realtype) :: porflux, rface
6366 real(kind=realtype) :: etl, etr, z1l, z1r, tmp
6367 real(kind=realtype) :: dr, dru, drv, drw, dre, drk
6368 real(kind=realtype) :: ravg, uavg, vavg, wavg, havg, kavg
6369 real(kind=realtype) :: alphaavg, a2avg, aavg, unavg
6370 real(kind=realtype) :: ovaavg, ova2avg, area, eta
6371 real(kind=realtype) :: gm1, gm53
6372 real(kind=realtype) :: lam1, lam2, lam3
6373 real(kind=realtype) :: abv1, abv2, abv3, abv4, abv5, abv6, abv7
6374 real(kind=realtype),
dimension(2) :: ktmp
6378 real(kind=realtype) :: x1
6379 real(kind=realtype) :: x2
6380 real(realtype) :: max2
6381 real(kind=realtype) :: abs1
6382 real(kind=realtype) :: abs2
6383 real(kind=realtype) :: arg1
6384 real(kind=realtype) :: result1
6385 real(kind=realtype) :: arg2
6386 real(kind=realtype) :: result2
6392 gm1 = gammaface -
one
6395 select case (riemannused)
6404 z1l = sqrt(left(
irho))
6405 z1r = sqrt(right(
irho))
6409 if (correctfork)
then
6412 ktmp(1) = left(
itu1)
6413 ktmp(2) = right(
itu1)
6419 kavg = tmp*(z1l*left(
itu1)+z1r*right(
itu1))
6429 &
irhoe), ktmp(1), etl, correctfork)
6431 & right(
irhoe), ktmp(2), etr, correctfork)
6441 ravg =
fourth*(z1r+z1l)**2
6442 uavg = tmp*(z1l*left(
ivx)+z1r*right(
ivx))
6443 vavg = tmp*(z1l*left(
ivy)+z1r*right(
ivy))
6444 wavg = tmp*(z1l*left(
ivz)+z1r*right(
ivz))
6445 havg = tmp*((etl+left(
irhoe))/z1l+(etr+right(
irhoe))/z1r)
6448 arg1 = sx**2 + sy**2 + sz**2
6450 if (1.e-25_realtype .lt. area)
then
6453 max2 = 1.e-25_realtype
6462 alphaavg =
half*(uavg**2+vavg**2+wavg**2)
6463 if (gm1*(havg-alphaavg) - gm53*kavg .ge. 0.)
then
6464 a2avg = gm1*(havg-alphaavg) - gm53*kavg
6466 a2avg = -(gm1*(havg-alphaavg)-gm53*kavg)
6469 unavg = uavg*sx + vavg*sy + wavg*sz
6475 x1 = (left(
ivx)-right(
ivx))*sx + (left(
ivy)-right(
ivy))*sy + (&
6476 & left(
ivz)-right(
ivz))*sz
6477 if (x1 .ge. 0.)
then
6483 result1 = sqrt(arg1)
6484 arg2 = gammaface*right(
irhoe)/right(
irho)
6485 result2 = sqrt(arg2)
6486 x2 = result1 - result2
6487 if (x2 .ge. 0.)
then
6502 eta =
half*(abs1+abs2)
6503 if (unavg - rface + aavg .ge. 0.)
then
6504 lam1 = unavg - rface + aavg
6506 lam1 = -(unavg-rface+aavg)
6508 if (unavg - rface - aavg .ge. 0.)
then
6509 lam2 = unavg - rface - aavg
6511 lam2 = -(unavg-rface-aavg)
6513 if (unavg - rface .ge. 0.)
then
6514 lam3 = unavg - rface
6516 lam3 = -(unavg-rface)
6520 if (lam1 .lt. tmp) lam1 = eta +
fourth*lam1*lam1/eta
6521 if (lam2 .lt. tmp) lam2 = eta +
fourth*lam2*lam2/eta
6522 if (lam3 .lt. tmp) lam3 = eta +
fourth*lam3*lam3/eta
6530 abv1 =
half*(lam1+lam2)
6531 abv2 =
half*(lam1-lam2)
6533 abv4 = gm1*(alphaavg*dr-uavg*dru-vavg*drv-wavg*drw+dre) - gm53&
6535 abv5 = sx*dru + sy*drv + sz*drw - unavg*dr
6536 abv6 = abv3*abv4*ova2avg + abv2*abv5*ovaavg
6537 abv7 = abv2*abv4*ovaavg + abv3*abv5
6541 flux(
irho) = -(porflux*(lam3*dr+abv6))
6542 flux(
imx) = -(porflux*(lam3*dru+uavg*abv6+sx*abv7))
6543 flux(
imy) = -(porflux*(lam3*drv+vavg*abv6+sy*abv7))
6544 flux(
imz) = -(porflux*(lam3*drw+wavg*abv6+sz*abv7))
6545 flux(
irhoe) = -(porflux*(lam3*dre+havg*abv6+unavg*abv7))
6554 &
'turkel preconditioner not implemented yet')
6557 &
'choi merkle preconditioner not implemented yet')
6560 call terminate(
'riemannflux',
'van leer fvs not implemented yet'&
6563 call terminate(
'riemannflux',
'ausmdv fvs not implemented yet')
6598 real(kind=realtype),
parameter :: twothird=
two*
third
6599 real(kind=realtype),
parameter :: xminn=1.e-14_realtype
6603 integer(kind=inttype) :: i, j, k, ii
6604 real(kind=realtype) :: rfilv, por, mul, mue, mut, heatcoef
6605 real(kind=realtype) :: muld, mued, mutd, heatcoefd
6606 real(kind=realtype) :: gm1, factlamheat, factturbheat
6607 real(kind=realtype) :: u_x, u_y, u_z, v_x, v_y, v_z, w_x, w_y, w_z
6608 real(kind=realtype) :: u_xd, u_yd, u_zd, v_xd, v_yd, v_zd, w_xd, &
6610 real(kind=realtype) :: q_x, q_y, q_z, ubar, vbar, wbar
6611 real(kind=realtype) :: q_xd, q_yd, q_zd, ubard, vbard, wbard
6612 real(kind=realtype) :: corr, ssx, ssy, ssz, ss, fracdiv
6613 real(kind=realtype) :: corrd, ssxd, ssyd, sszd, ssd, fracdivd
6614 real(kind=realtype) :: tauxx, tauyy, tauzz
6615 real(kind=realtype) :: tauxxd, tauyyd, tauzzd
6616 real(kind=realtype) :: tauxy, tauxz, tauyz
6617 real(kind=realtype) :: tauxyd, tauxzd, tauyzd
6618 real(kind=realtype) :: tauxxs, tauyys, tauzzs
6619 real(kind=realtype) :: tauxxsd, tauyysd, tauzzsd
6620 real(kind=realtype) :: tauxys, tauxzs, tauyzs
6621 real(kind=realtype) :: tauxysd, tauxzsd, tauyzsd
6622 real(kind=realtype) :: exx, eyy, ezz
6623 real(kind=realtype) :: exxd, eyyd, ezzd
6624 real(kind=realtype) :: exy, exz, eyz
6625 real(kind=realtype) :: exyd, exzd, eyzd
6626 real(kind=realtype) :: wxy, wxz, wyz, wyx, wzx, wzy
6627 real(kind=realtype) :: wxyd, wxzd, wyzd, wyxd, wzxd, wzyd
6628 real(kind=realtype) :: den, ccr1, fact
6629 real(kind=realtype) :: dend, factd
6630 real(kind=realtype) :: fmx, fmy, fmz, frhoe
6631 real(kind=realtype) :: fmxd, fmyd, fmzd, frhoed
6632 logical :: correctfork, storewalltensor
6636 real(kind=realtype) :: abs0
6637 real(kind=realtype) :: arg1
6638 real(kind=realtype) :: arg1d
6639 real(kind=realtype) :: result1
6640 real(kind=realtype) :: result1d
6641 real(kind=realtype) :: temp
6642 real(kind=realtype) :: temp0
6643 real(kind=realtype) :: temp1
6644 real(kind=realtype) :: temp2
6645 real(kind=realtype) :: temp3
6646 real(kind=realtype) :: temp4
6647 real(kind=realtype) :: temp5
6648 real(kind=realtype) :: temp6
6649 real(kind=realtype) :: temp7
6656 if (rfilv .ge. 0.)
then
6666 storewalltensor = .false.
6668 storewalltensor = .true.
6670 storewalltensor = .true.
6689 muld = por*(
rlvd(i, j, k)+
rlvd(i, j, k+1))
6690 mul = por*(
rlv(i, j, k)+
rlv(i, j, k+1))
6692 mued = por*(
revd(i, j, k)+
revd(i, j, k+1))
6693 mue = por*(
rev(i, j, k)+
rev(i, j, k+1))
6700 heatcoefd = factlamheat*muld + factturbheat*mued
6701 heatcoef = mul*factlamheat + mue*factturbheat
6756 ssxd =
eighth*(
xd(i-1, j-1, k+1, 1)-
xd(i-1, j-1, k-1, 1)+
xd(&
6757 & i-1, j, k+1, 1)-
xd(i-1, j, k-1, 1)+
xd(i, j-1, k+1, 1)-
xd(i&
6758 & , j-1, k-1, 1)+
xd(i, j, k+1, 1)-
xd(i, j, k-1, 1))
6759 ssx =
eighth*(
x(i-1, j-1, k+1, 1)-
x(i-1, j-1, k-1, 1)+
x(i-1&
6760 & , j, k+1, 1)-
x(i-1, j, k-1, 1)+
x(i, j-1, k+1, 1)-
x(i, j-1&
6761 & , k-1, 1)+
x(i, j, k+1, 1)-
x(i, j, k-1, 1))
6762 ssyd =
eighth*(
xd(i-1, j-1, k+1, 2)-
xd(i-1, j-1, k-1, 2)+
xd(&
6763 & i-1, j, k+1, 2)-
xd(i-1, j, k-1, 2)+
xd(i, j-1, k+1, 2)-
xd(i&
6764 & , j-1, k-1, 2)+
xd(i, j, k+1, 2)-
xd(i, j, k-1, 2))
6765 ssy =
eighth*(
x(i-1, j-1, k+1, 2)-
x(i-1, j-1, k-1, 2)+
x(i-1&
6766 & , j, k+1, 2)-
x(i-1, j, k-1, 2)+
x(i, j-1, k+1, 2)-
x(i, j-1&
6767 & , k-1, 2)+
x(i, j, k+1, 2)-
x(i, j, k-1, 2))
6768 sszd =
eighth*(
xd(i-1, j-1, k+1, 3)-
xd(i-1, j-1, k-1, 3)+
xd(&
6769 & i-1, j, k+1, 3)-
xd(i-1, j, k-1, 3)+
xd(i, j-1, k+1, 3)-
xd(i&
6770 & , j-1, k-1, 3)+
xd(i, j, k+1, 3)-
xd(i, j, k-1, 3))
6771 ssz =
eighth*(
x(i-1, j-1, k+1, 3)-
x(i-1, j-1, k-1, 3)+
x(i-1&
6772 & , j, k+1, 3)-
x(i-1, j, k-1, 3)+
x(i, j-1, k+1, 3)-
x(i, j-1&
6773 & , k-1, 3)+
x(i, j, k+1, 3)-
x(i, j, k-1, 3))
6776 arg1d = 2*ssx*ssxd + 2*ssy*ssyd + 2*ssz*sszd
6777 arg1 = ssx*ssx + ssy*ssy + ssz*ssz
6779 if (arg1 .eq. 0.0_8)
then
6782 result1d = arg1d/(2.0*temp)
6785 ssd = -(
one*result1d/result1**2)
6787 ssxd = ssx*ssd + ss*ssxd
6789 ssyd = ssy*ssd + ss*ssyd
6791 sszd = ssz*ssd + ss*sszd
6794 temp =
w(i, j, k+1,
ivx) -
w(i, j, k,
ivx)
6795 corrd = ssx*u_xd + u_x*ssxd + ssy*u_yd + u_y*ssyd + ssz*u_zd&
6796 & + u_z*sszd - ss*(
wd(i, j, k+1,
ivx)-
wd(i, j, k,
ivx)) - &
6798 corr = u_x*ssx + u_y*ssy + u_z*ssz - temp*ss
6799 u_xd = u_xd - ssx*corrd - corr*ssxd
6800 u_x = u_x - corr*ssx
6801 u_yd = u_yd - ssy*corrd - corr*ssyd
6802 u_y = u_y - corr*ssy
6803 u_zd = u_zd - ssz*corrd - corr*sszd
6804 u_z = u_z - corr*ssz
6805 temp =
w(i, j, k+1,
ivy) -
w(i, j, k,
ivy)
6806 corrd = ssx*v_xd + v_x*ssxd + ssy*v_yd + v_y*ssyd + ssz*v_zd&
6807 & + v_z*sszd - ss*(
wd(i, j, k+1,
ivy)-
wd(i, j, k,
ivy)) - &
6809 corr = v_x*ssx + v_y*ssy + v_z*ssz - temp*ss
6810 v_xd = v_xd - ssx*corrd - corr*ssxd
6811 v_x = v_x - corr*ssx
6812 v_yd = v_yd - ssy*corrd - corr*ssyd
6813 v_y = v_y - corr*ssy
6814 v_zd = v_zd - ssz*corrd - corr*sszd
6815 v_z = v_z - corr*ssz
6816 temp =
w(i, j, k+1,
ivz) -
w(i, j, k,
ivz)
6817 corrd = ssx*w_xd + w_x*ssxd + ssy*w_yd + w_y*ssyd + ssz*w_zd&
6818 & + w_z*sszd - ss*(
wd(i, j, k+1,
ivz)-
wd(i, j, k,
ivz)) - &
6820 corr = w_x*ssx + w_y*ssy + w_z*ssz - temp*ss
6821 w_xd = w_xd - ssx*corrd - corr*ssxd
6822 w_x = w_x - corr*ssx
6823 w_yd = w_yd - ssy*corrd - corr*ssyd
6824 w_y = w_y - corr*ssy
6825 w_zd = w_zd - ssz*corrd - corr*sszd
6826 w_z = w_z - corr*ssz
6827 temp =
aa(i, j, k+1) -
aa(i, j, k)
6828 corrd = ssx*q_xd + q_x*ssxd + ssy*q_yd + q_y*ssyd + ssz*q_zd&
6829 & + q_z*sszd + ss*(
aad(i, j, k+1)-
aad(i, j, k)) + temp*ssd
6830 corr = q_x*ssx + q_y*ssy + q_z*ssz + temp*ss
6831 q_xd = q_xd - ssx*corrd - corr*ssxd
6832 q_x = q_x - corr*ssx
6833 q_yd = q_yd - ssy*corrd - corr*ssyd
6834 q_y = q_y - corr*ssy
6835 q_zd = q_zd - ssz*corrd - corr*sszd
6836 q_z = q_z - corr*ssz
6843 fracdivd = twothird*(u_xd+v_yd+w_zd)
6844 fracdiv = twothird*(u_x+v_y+w_z)
6845 tauxxsd =
two*u_xd - fracdivd
6846 tauxxs =
two*u_x - fracdiv
6847 tauyysd =
two*v_yd - fracdivd
6848 tauyys =
two*v_y - fracdiv
6849 tauzzsd =
two*w_zd - fracdivd
6850 tauzzs =
two*w_z - fracdiv
6851 tauxysd = u_yd + v_xd
6853 tauxzsd = u_zd + w_xd
6855 tauyzsd = v_zd + w_yd
6857 q_xd = q_x*heatcoefd + heatcoef*q_xd
6859 q_yd = q_y*heatcoefd + heatcoef*q_yd
6861 q_zd = q_z*heatcoefd + heatcoef*q_zd
6879 arg1d = 2*u_x*u_xd + 2*u_y*u_yd + 2*u_z*u_zd + 2*v_x*v_xd &
6880 & + 2*v_y*v_yd + 2*v_z*v_zd + 2*w_x*w_xd + 2*w_y*w_yd + 2*&
6882 arg1 = u_x*u_x + u_y*u_y + u_z*u_z + v_x*v_x + v_y*v_y + &
6883 & v_z*v_z + w_x*w_x + w_y*w_y + w_z*w_z
6885 if (arg1 .eq. 0.0_8)
then
6888 dend = arg1d/(2.0*temp)
6891 if (den .lt. xminn)
then
6900 factd = ccr1*(mued-mue*dend/den)/den
6917 temp = wxy*tauxys + wxz*tauxzs
6918 exxd =
two*(temp*factd+fact*(tauxys*wxyd+wxy*tauxysd+&
6919 & tauxzs*wxzd+wxz*tauxzsd))
6920 exx =
two*(fact*temp)
6921 temp = wyx*tauxys + wyz*tauyzs
6922 eyyd =
two*(temp*factd+fact*(tauxys*wyxd+wyx*tauxysd+&
6923 & tauyzs*wyzd+wyz*tauyzsd))
6924 eyy =
two*(fact*temp)
6925 temp = wzx*tauxzs + wzy*tauyzs
6926 ezzd =
two*(temp*factd+fact*(tauxzs*wzxd+wzx*tauxzsd+&
6927 & tauyzs*wzyd+wzy*tauyzsd))
6928 ezz =
two*(fact*temp)
6929 temp = wxy*tauyys + wxz*tauyzs + wyx*tauxxs + wyz*tauxzs
6930 exyd = temp*factd + fact*(tauyys*wxyd+wxy*tauyysd+tauyzs*&
6931 & wxzd+wxz*tauyzsd+tauxxs*wyxd+wyx*tauxxsd+tauxzs*wyzd+wyz&
6934 temp = wxy*tauyzs + wxz*tauzzs + wzx*tauxxs + wzy*tauxys
6935 exzd = temp*factd + fact*(tauyzs*wxyd+wxy*tauyzsd+tauzzs*&
6936 & wxzd+wxz*tauzzsd+tauxxs*wzxd+wzx*tauxxsd+tauxys*wzyd+wzy&
6939 temp = wyx*tauxzs + wyz*tauzzs + wzx*tauxys + wzy*tauyys
6940 eyzd = temp*factd + fact*(tauxzs*wyxd+wyx*tauxzsd+tauzzs*&
6941 & wyzd+wyz*tauzzsd+tauxys*wzxd+wzx*tauxysd+tauyys*wzyd+wzy&
6945 tauxxd = tauxxs*mutd + mut*tauxxsd - exxd
6946 tauxx = mut*tauxxs - exx
6947 tauyyd = tauyys*mutd + mut*tauyysd - eyyd
6948 tauyy = mut*tauyys - eyy
6949 tauzzd = tauzzs*mutd + mut*tauzzsd - ezzd
6950 tauzz = mut*tauzzs - ezz
6951 tauxyd = tauxys*mutd + mut*tauxysd - exyd
6952 tauxy = mut*tauxys - exy
6953 tauxzd = tauxzs*mutd + mut*tauxzsd - exzd
6954 tauxz = mut*tauxzs - exz
6955 tauyzd = tauyzs*mutd + mut*tauyzsd - eyzd
6956 tauyz = mut*tauyzs - eyz
6959 tauxxd = tauxxs*mutd + mut*tauxxsd
6961 tauyyd = tauyys*mutd + mut*tauyysd
6963 tauzzd = tauzzs*mutd + mut*tauzzsd
6965 tauxyd = tauxys*mutd + mut*tauxysd
6967 tauxzd = tauxzs*mutd + mut*tauxzsd
6969 tauyzd = tauyzs*mutd + mut*tauyzsd
6981 temp =
sk(i, j, k, 1)
6982 temp0 =
sk(i, j, k, 2)
6983 temp1 =
sk(i, j, k, 3)
6984 fmxd = temp*tauxxd + tauxx*
skd(i, j, k, 1) + temp0*tauxyd + &
6985 & tauxy*
skd(i, j, k, 2) + temp1*tauxzd + tauxz*
skd(i, j, k, &
6987 fmx = tauxx*temp + tauxy*temp0 + tauxz*temp1
6988 temp1 =
sk(i, j, k, 1)
6989 temp0 =
sk(i, j, k, 2)
6990 temp =
sk(i, j, k, 3)
6991 fmyd = temp1*tauxyd + tauxy*
skd(i, j, k, 1) + temp0*tauyyd +&
6992 & tauyy*
skd(i, j, k, 2) + temp*tauyzd + tauyz*
skd(i, j, k, 3&
6994 fmy = tauxy*temp1 + tauyy*temp0 + tauyz*temp
6995 temp1 =
sk(i, j, k, 1)
6996 temp0 =
sk(i, j, k, 2)
6997 temp =
sk(i, j, k, 3)
6998 fmzd = temp1*tauxzd + tauxz*
skd(i, j, k, 1) + temp0*tauyzd +&
6999 & tauyz*
skd(i, j, k, 2) + temp*tauzzd + tauzz*
skd(i, j, k, 3&
7001 fmz = tauxz*temp1 + tauyz*temp0 + tauzz*temp
7002 temp1 =
sk(i, j, k, 1)
7003 temp0 = ubar*tauxx + vbar*tauxy + wbar*tauxz
7004 frhoed = temp1*(tauxx*ubard+ubar*tauxxd+tauxy*vbard+vbar*&
7005 & tauxyd+tauxz*wbard+wbar*tauxzd) + temp0*
skd(i, j, k, 1)
7007 temp1 =
sk(i, j, k, 2)
7008 temp0 = ubar*tauxy + vbar*tauyy + wbar*tauyz
7009 frhoed = frhoed + temp1*(tauxy*ubard+ubar*tauxyd+tauyy*vbard&
7010 & +vbar*tauyyd+tauyz*wbard+wbar*tauyzd) + temp0*
skd(i, j, k&
7012 frhoe = frhoe + temp0*temp1
7013 temp1 =
sk(i, j, k, 3)
7014 temp0 = ubar*tauxz + vbar*tauyz + wbar*tauzz
7015 frhoed = frhoed + temp1*(tauxz*ubard+ubar*tauxzd+tauyz*vbard&
7016 & +vbar*tauyzd+tauzz*wbard+wbar*tauzzd) + temp0*
skd(i, j, k&
7018 frhoe = frhoe + temp0*temp1
7019 temp1 =
sk(i, j, k, 1)
7020 temp0 =
sk(i, j, k, 2)
7021 temp =
sk(i, j, k, 3)
7022 frhoed = frhoed - temp1*q_xd - q_x*
skd(i, j, k, 1) - temp0*&
7023 & q_yd - q_y*
skd(i, j, k, 2) - temp*q_zd - q_z*
skd(i, j, k, &
7025 frhoe = frhoe - q_x*temp1 - q_y*temp0 - q_z*temp
7036 fw(i, j, k+1,
imx) =
fw(i, j, k+1,
imx) + fmx
7038 fw(i, j, k+1,
imy) =
fw(i, j, k+1,
imy) + fmy
7040 fw(i, j, k+1,
imz) =
fw(i, j, k+1,
imz) + fmz
7111 muld = por*(
rlvd(i, j, k)+
rlvd(i, j+1, k))
7112 mul = por*(
rlv(i, j, k)+
rlv(i, j+1, k))
7114 mued = por*(
revd(i, j, k)+
revd(i, j+1, k))
7115 mue = por*(
rev(i, j, k)+
rev(i, j+1, k))
7122 heatcoefd = factlamheat*muld + factturbheat*mued
7123 heatcoef = mul*factlamheat + mue*factturbheat
7178 ssxd =
eighth*(
xd(i-1, j+1, k-1, 1)-
xd(i-1, j-1, k-1, 1)+
xd(&
7179 & i-1, j+1, k, 1)-
xd(i-1, j-1, k, 1)+
xd(i, j+1, k-1, 1)-
xd(i&
7180 & , j-1, k-1, 1)+
xd(i, j+1, k, 1)-
xd(i, j-1, k, 1))
7181 ssx =
eighth*(
x(i-1, j+1, k-1, 1)-
x(i-1, j-1, k-1, 1)+
x(i-1&
7182 & , j+1, k, 1)-
x(i-1, j-1, k, 1)+
x(i, j+1, k-1, 1)-
x(i, j-1&
7183 & , k-1, 1)+
x(i, j+1, k, 1)-
x(i, j-1, k, 1))
7184 ssyd =
eighth*(
xd(i-1, j+1, k-1, 2)-
xd(i-1, j-1, k-1, 2)+
xd(&
7185 & i-1, j+1, k, 2)-
xd(i-1, j-1, k, 2)+
xd(i, j+1, k-1, 2)-
xd(i&
7186 & , j-1, k-1, 2)+
xd(i, j+1, k, 2)-
xd(i, j-1, k, 2))
7187 ssy =
eighth*(
x(i-1, j+1, k-1, 2)-
x(i-1, j-1, k-1, 2)+
x(i-1&
7188 & , j+1, k, 2)-
x(i-1, j-1, k, 2)+
x(i, j+1, k-1, 2)-
x(i, j-1&
7189 & , k-1, 2)+
x(i, j+1, k, 2)-
x(i, j-1, k, 2))
7190 sszd =
eighth*(
xd(i-1, j+1, k-1, 3)-
xd(i-1, j-1, k-1, 3)+
xd(&
7191 & i-1, j+1, k, 3)-
xd(i-1, j-1, k, 3)+
xd(i, j+1, k-1, 3)-
xd(i&
7192 & , j-1, k-1, 3)+
xd(i, j+1, k, 3)-
xd(i, j-1, k, 3))
7193 ssz =
eighth*(
x(i-1, j+1, k-1, 3)-
x(i-1, j-1, k-1, 3)+
x(i-1&
7194 & , j+1, k, 3)-
x(i-1, j-1, k, 3)+
x(i, j+1, k-1, 3)-
x(i, j-1&
7195 & , k-1, 3)+
x(i, j+1, k, 3)-
x(i, j-1, k, 3))
7198 arg1d = 2*ssx*ssxd + 2*ssy*ssyd + 2*ssz*sszd
7199 arg1 = ssx*ssx + ssy*ssy + ssz*ssz
7201 if (arg1 .eq. 0.0_8)
then
7204 result1d = arg1d/(2.0*temp1)
7207 ssd = -(
one*result1d/result1**2)
7209 ssxd = ssx*ssd + ss*ssxd
7211 ssyd = ssy*ssd + ss*ssyd
7213 sszd = ssz*ssd + ss*sszd
7216 temp1 =
w(i, j+1, k,
ivx) -
w(i, j, k,
ivx)
7217 corrd = ssx*u_xd + u_x*ssxd + ssy*u_yd + u_y*ssyd + ssz*u_zd&
7218 & + u_z*sszd - ss*(
wd(i, j+1, k,
ivx)-
wd(i, j, k,
ivx)) - &
7220 corr = u_x*ssx + u_y*ssy + u_z*ssz - temp1*ss
7221 u_xd = u_xd - ssx*corrd - corr*ssxd
7222 u_x = u_x - corr*ssx
7223 u_yd = u_yd - ssy*corrd - corr*ssyd
7224 u_y = u_y - corr*ssy
7225 u_zd = u_zd - ssz*corrd - corr*sszd
7226 u_z = u_z - corr*ssz
7227 temp1 =
w(i, j+1, k,
ivy) -
w(i, j, k,
ivy)
7228 corrd = ssx*v_xd + v_x*ssxd + ssy*v_yd + v_y*ssyd + ssz*v_zd&
7229 & + v_z*sszd - ss*(
wd(i, j+1, k,
ivy)-
wd(i, j, k,
ivy)) - &
7231 corr = v_x*ssx + v_y*ssy + v_z*ssz - temp1*ss
7232 v_xd = v_xd - ssx*corrd - corr*ssxd
7233 v_x = v_x - corr*ssx
7234 v_yd = v_yd - ssy*corrd - corr*ssyd
7235 v_y = v_y - corr*ssy
7236 v_zd = v_zd - ssz*corrd - corr*sszd
7237 v_z = v_z - corr*ssz
7238 temp1 =
w(i, j+1, k,
ivz) -
w(i, j, k,
ivz)
7239 corrd = ssx*w_xd + w_x*ssxd + ssy*w_yd + w_y*ssyd + ssz*w_zd&
7240 & + w_z*sszd - ss*(
wd(i, j+1, k,
ivz)-
wd(i, j, k,
ivz)) - &
7242 corr = w_x*ssx + w_y*ssy + w_z*ssz - temp1*ss
7243 w_xd = w_xd - ssx*corrd - corr*ssxd
7244 w_x = w_x - corr*ssx
7245 w_yd = w_yd - ssy*corrd - corr*ssyd
7246 w_y = w_y - corr*ssy
7247 w_zd = w_zd - ssz*corrd - corr*sszd
7248 w_z = w_z - corr*ssz
7249 temp1 =
aa(i, j+1, k) -
aa(i, j, k)
7250 corrd = ssx*q_xd + q_x*ssxd + ssy*q_yd + q_y*ssyd + ssz*q_zd&
7251 & + q_z*sszd + ss*(
aad(i, j+1, k)-
aad(i, j, k)) + temp1*ssd
7252 corr = q_x*ssx + q_y*ssy + q_z*ssz + temp1*ss
7253 q_xd = q_xd - ssx*corrd - corr*ssxd
7254 q_x = q_x - corr*ssx
7255 q_yd = q_yd - ssy*corrd - corr*ssyd
7256 q_y = q_y - corr*ssy
7257 q_zd = q_zd - ssz*corrd - corr*sszd
7258 q_z = q_z - corr*ssz
7265 fracdivd = twothird*(u_xd+v_yd+w_zd)
7266 fracdiv = twothird*(u_x+v_y+w_z)
7267 tauxxsd =
two*u_xd - fracdivd
7268 tauxxs =
two*u_x - fracdiv
7269 tauyysd =
two*v_yd - fracdivd
7270 tauyys =
two*v_y - fracdiv
7271 tauzzsd =
two*w_zd - fracdivd
7272 tauzzs =
two*w_z - fracdiv
7273 tauxysd = u_yd + v_xd
7275 tauxzsd = u_zd + w_xd
7277 tauyzsd = v_zd + w_yd
7279 q_xd = q_x*heatcoefd + heatcoef*q_xd
7281 q_yd = q_y*heatcoefd + heatcoef*q_yd
7283 q_zd = q_z*heatcoefd + heatcoef*q_zd
7301 arg1d = 2*u_x*u_xd + 2*u_y*u_yd + 2*u_z*u_zd + 2*v_x*v_xd &
7302 & + 2*v_y*v_yd + 2*v_z*v_zd + 2*w_x*w_xd + 2*w_y*w_yd + 2*&
7304 arg1 = u_x*u_x + u_y*u_y + u_z*u_z + v_x*v_x + v_y*v_y + &
7305 & v_z*v_z + w_x*w_x + w_y*w_y + w_z*w_z
7307 if (arg1 .eq. 0.0_8)
then
7310 dend = arg1d/(2.0*temp1)
7313 if (den .lt. xminn)
then
7322 factd = ccr1*(mued-mue*dend/den)/den
7339 temp1 = wxy*tauxys + wxz*tauxzs
7340 exxd =
two*(temp1*factd+fact*(tauxys*wxyd+wxy*tauxysd+&
7341 & tauxzs*wxzd+wxz*tauxzsd))
7342 exx =
two*(fact*temp1)
7343 temp1 = wyx*tauxys + wyz*tauyzs
7344 eyyd =
two*(temp1*factd+fact*(tauxys*wyxd+wyx*tauxysd+&
7345 & tauyzs*wyzd+wyz*tauyzsd))
7346 eyy =
two*(fact*temp1)
7347 temp1 = wzx*tauxzs + wzy*tauyzs
7348 ezzd =
two*(temp1*factd+fact*(tauxzs*wzxd+wzx*tauxzsd+&
7349 & tauyzs*wzyd+wzy*tauyzsd))
7350 ezz =
two*(fact*temp1)
7351 temp1 = wxy*tauyys + wxz*tauyzs + wyx*tauxxs + wyz*tauxzs
7352 exyd = temp1*factd + fact*(tauyys*wxyd+wxy*tauyysd+tauyzs*&
7353 & wxzd+wxz*tauyzsd+tauxxs*wyxd+wyx*tauxxsd+tauxzs*wyzd+wyz&
7356 temp1 = wxy*tauyzs + wxz*tauzzs + wzx*tauxxs + wzy*tauxys
7357 exzd = temp1*factd + fact*(tauyzs*wxyd+wxy*tauyzsd+tauzzs*&
7358 & wxzd+wxz*tauzzsd+tauxxs*wzxd+wzx*tauxxsd+tauxys*wzyd+wzy&
7361 temp1 = wyx*tauxzs + wyz*tauzzs + wzx*tauxys + wzy*tauyys
7362 eyzd = temp1*factd + fact*(tauxzs*wyxd+wyx*tauxzsd+tauzzs*&
7363 & wyzd+wyz*tauzzsd+tauxys*wzxd+wzx*tauxysd+tauyys*wzyd+wzy&
7367 tauxxd = tauxxs*mutd + mut*tauxxsd - exxd
7368 tauxx = mut*tauxxs - exx
7369 tauyyd = tauyys*mutd + mut*tauyysd - eyyd
7370 tauyy = mut*tauyys - eyy
7371 tauzzd = tauzzs*mutd + mut*tauzzsd - ezzd
7372 tauzz = mut*tauzzs - ezz
7373 tauxyd = tauxys*mutd + mut*tauxysd - exyd
7374 tauxy = mut*tauxys - exy
7375 tauxzd = tauxzs*mutd + mut*tauxzsd - exzd
7376 tauxz = mut*tauxzs - exz
7377 tauyzd = tauyzs*mutd + mut*tauyzsd - eyzd
7378 tauyz = mut*tauyzs - eyz
7381 tauxxd = tauxxs*mutd + mut*tauxxsd
7383 tauyyd = tauyys*mutd + mut*tauyysd
7385 tauzzd = tauzzs*mutd + mut*tauzzsd
7387 tauxyd = tauxys*mutd + mut*tauxysd
7389 tauxzd = tauxzs*mutd + mut*tauxzsd
7391 tauyzd = tauyzs*mutd + mut*tauyzsd
7403 temp1 =
sj(i, j, k, 1)
7404 temp0 =
sj(i, j, k, 2)
7405 temp =
sj(i, j, k, 3)
7406 fmxd = temp1*tauxxd + tauxx*
sjd(i, j, k, 1) + temp0*tauxyd +&
7407 & tauxy*
sjd(i, j, k, 2) + temp*tauxzd + tauxz*
sjd(i, j, k, 3&
7409 fmx = tauxx*temp1 + tauxy*temp0 + tauxz*temp
7410 temp1 =
sj(i, j, k, 1)
7411 temp0 =
sj(i, j, k, 2)
7412 temp =
sj(i, j, k, 3)
7413 fmyd = temp1*tauxyd + tauxy*
sjd(i, j, k, 1) + temp0*tauyyd +&
7414 & tauyy*
sjd(i, j, k, 2) + temp*tauyzd + tauyz*
sjd(i, j, k, 3&
7416 fmy = tauxy*temp1 + tauyy*temp0 + tauyz*temp
7417 temp1 =
sj(i, j, k, 1)
7418 temp0 =
sj(i, j, k, 2)
7419 temp =
sj(i, j, k, 3)
7420 fmzd = temp1*tauxzd + tauxz*
sjd(i, j, k, 1) + temp0*tauyzd +&
7421 & tauyz*
sjd(i, j, k, 2) + temp*tauzzd + tauzz*
sjd(i, j, k, 3&
7423 fmz = tauxz*temp1 + tauyz*temp0 + tauzz*temp
7424 temp1 =
sj(i, j, k, 1)
7425 temp0 = ubar*tauxx + vbar*tauxy + wbar*tauxz
7426 temp =
sj(i, j, k, 2)
7427 temp2 = ubar*tauxy + vbar*tauyy + wbar*tauyz
7428 temp3 =
sj(i, j, k, 3)
7429 temp4 = ubar*tauxz + vbar*tauyz + wbar*tauzz
7430 temp5 =
sj(i, j, k, 1)
7431 temp6 =
sj(i, j, k, 2)
7432 temp7 =
sj(i, j, k, 3)
7433 frhoed = temp1*(tauxx*ubard+ubar*tauxxd+tauxy*vbard+vbar*&
7434 & tauxyd+tauxz*wbard+wbar*tauxzd) + (temp0-q_x)*
sjd(i, j, k&
7435 & , 1) + temp*(tauxy*ubard+ubar*tauxyd+tauyy*vbard+vbar*&
7436 & tauyyd+tauyz*wbard+wbar*tauyzd) + (temp2-q_y)*
sjd(i, j, k&
7437 & , 2) + temp3*(tauxz*ubard+ubar*tauxzd+tauyz*vbard+vbar*&
7438 & tauyzd+tauzz*wbard+wbar*tauzzd) + (temp4-q_z)*
sjd(i, j, k&
7439 & , 3) - temp5*q_xd - temp6*q_yd - temp7*q_zd
7440 frhoe = temp0*temp1 + temp2*temp + temp4*temp3 - q_x*temp5 -&
7441 & q_y*temp6 - q_z*temp7
7452 fw(i, j+1, k,
imx) =
fw(i, j+1, k,
imx) + fmx
7454 fw(i, j+1, k,
imy) =
fw(i, j+1, k,
imy) + fmy
7456 fw(i, j+1, k,
imz) =
fw(i, j+1, k,
imz) + fmz
7527 muld = por*(
rlvd(i, j, k)+
rlvd(i+1, j, k))
7528 mul = por*(
rlv(i, j, k)+
rlv(i+1, j, k))
7530 mued = por*(
revd(i, j, k)+
revd(i+1, j, k))
7531 mue = por*(
rev(i, j, k)+
rev(i+1, j, k))
7538 heatcoefd = factlamheat*muld + factturbheat*mued
7539 heatcoef = mul*factlamheat + mue*factturbheat
7594 ssxd =
eighth*(
xd(i+1, j-1, k-1, 1)-
xd(i-1, j-1, k-1, 1)+
xd(&
7595 & i+1, j-1, k, 1)-
xd(i-1, j-1, k, 1)+
xd(i+1, j, k-1, 1)-
xd(i&
7596 & -1, j, k-1, 1)+
xd(i+1, j, k, 1)-
xd(i-1, j, k, 1))
7597 ssx =
eighth*(
x(i+1, j-1, k-1, 1)-
x(i-1, j-1, k-1, 1)+
x(i+1&
7598 & , j-1, k, 1)-
x(i-1, j-1, k, 1)+
x(i+1, j, k-1, 1)-
x(i-1, j&
7599 & , k-1, 1)+
x(i+1, j, k, 1)-
x(i-1, j, k, 1))
7600 ssyd =
eighth*(
xd(i+1, j-1, k-1, 2)-
xd(i-1, j-1, k-1, 2)+
xd(&
7601 & i+1, j-1, k, 2)-
xd(i-1, j-1, k, 2)+
xd(i+1, j, k-1, 2)-
xd(i&
7602 & -1, j, k-1, 2)+
xd(i+1, j, k, 2)-
xd(i-1, j, k, 2))
7603 ssy =
eighth*(
x(i+1, j-1, k-1, 2)-
x(i-1, j-1, k-1, 2)+
x(i+1&
7604 & , j-1, k, 2)-
x(i-1, j-1, k, 2)+
x(i+1, j, k-1, 2)-
x(i-1, j&
7605 & , k-1, 2)+
x(i+1, j, k, 2)-
x(i-1, j, k, 2))
7606 sszd =
eighth*(
xd(i+1, j-1, k-1, 3)-
xd(i-1, j-1, k-1, 3)+
xd(&
7607 & i+1, j-1, k, 3)-
xd(i-1, j-1, k, 3)+
xd(i+1, j, k-1, 3)-
xd(i&
7608 & -1, j, k-1, 3)+
xd(i+1, j, k, 3)-
xd(i-1, j, k, 3))
7609 ssz =
eighth*(
x(i+1, j-1, k-1, 3)-
x(i-1, j-1, k-1, 3)+
x(i+1&
7610 & , j-1, k, 3)-
x(i-1, j-1, k, 3)+
x(i+1, j, k-1, 3)-
x(i-1, j&
7611 & , k-1, 3)+
x(i+1, j, k, 3)-
x(i-1, j, k, 3))
7614 arg1d = 2*ssx*ssxd + 2*ssy*ssyd + 2*ssz*sszd
7615 arg1 = ssx*ssx + ssy*ssy + ssz*ssz
7617 if (arg1 .eq. 0.0_8)
then
7620 result1d = arg1d/(2.0*temp7)
7623 ssd = -(
one*result1d/result1**2)
7625 ssxd = ssx*ssd + ss*ssxd
7627 ssyd = ssy*ssd + ss*ssyd
7629 sszd = ssz*ssd + ss*sszd
7632 temp7 =
w(i+1, j, k,
ivx) -
w(i, j, k,
ivx)
7633 corrd = ssx*u_xd + u_x*ssxd + ssy*u_yd + u_y*ssyd + ssz*u_zd&
7634 & + u_z*sszd - ss*(
wd(i+1, j, k,
ivx)-
wd(i, j, k,
ivx)) - &
7636 corr = u_x*ssx + u_y*ssy + u_z*ssz - temp7*ss
7637 u_xd = u_xd - ssx*corrd - corr*ssxd
7638 u_x = u_x - corr*ssx
7639 u_yd = u_yd - ssy*corrd - corr*ssyd
7640 u_y = u_y - corr*ssy
7641 u_zd = u_zd - ssz*corrd - corr*sszd
7642 u_z = u_z - corr*ssz
7643 temp7 =
w(i+1, j, k,
ivy) -
w(i, j, k,
ivy)
7644 corrd = ssx*v_xd + v_x*ssxd + ssy*v_yd + v_y*ssyd + ssz*v_zd&
7645 & + v_z*sszd - ss*(
wd(i+1, j, k,
ivy)-
wd(i, j, k,
ivy)) - &
7647 corr = v_x*ssx + v_y*ssy + v_z*ssz - temp7*ss
7648 v_xd = v_xd - ssx*corrd - corr*ssxd
7649 v_x = v_x - corr*ssx
7650 v_yd = v_yd - ssy*corrd - corr*ssyd
7651 v_y = v_y - corr*ssy
7652 v_zd = v_zd - ssz*corrd - corr*sszd
7653 v_z = v_z - corr*ssz
7654 temp7 =
w(i+1, j, k,
ivz) -
w(i, j, k,
ivz)
7655 corrd = ssx*w_xd + w_x*ssxd + ssy*w_yd + w_y*ssyd + ssz*w_zd&
7656 & + w_z*sszd - ss*(
wd(i+1, j, k,
ivz)-
wd(i, j, k,
ivz)) - &
7658 corr = w_x*ssx + w_y*ssy + w_z*ssz - temp7*ss
7659 w_xd = w_xd - ssx*corrd - corr*ssxd
7660 w_x = w_x - corr*ssx
7661 w_yd = w_yd - ssy*corrd - corr*ssyd
7662 w_y = w_y - corr*ssy
7663 w_zd = w_zd - ssz*corrd - corr*sszd
7664 w_z = w_z - corr*ssz
7665 temp7 =
aa(i+1, j, k) -
aa(i, j, k)
7666 corrd = ssx*q_xd + q_x*ssxd + ssy*q_yd + q_y*ssyd + ssz*q_zd&
7667 & + q_z*sszd + ss*(
aad(i+1, j, k)-
aad(i, j, k)) + temp7*ssd
7668 corr = q_x*ssx + q_y*ssy + q_z*ssz + temp7*ss
7669 q_xd = q_xd - ssx*corrd - corr*ssxd
7670 q_x = q_x - corr*ssx
7671 q_yd = q_yd - ssy*corrd - corr*ssyd
7672 q_y = q_y - corr*ssy
7673 q_zd = q_zd - ssz*corrd - corr*sszd
7674 q_z = q_z - corr*ssz
7681 fracdivd = twothird*(u_xd+v_yd+w_zd)
7682 fracdiv = twothird*(u_x+v_y+w_z)
7683 tauxxsd =
two*u_xd - fracdivd
7684 tauxxs =
two*u_x - fracdiv
7685 tauyysd =
two*v_yd - fracdivd
7686 tauyys =
two*v_y - fracdiv
7687 tauzzsd =
two*w_zd - fracdivd
7688 tauzzs =
two*w_z - fracdiv
7689 tauxysd = u_yd + v_xd
7691 tauxzsd = u_zd + w_xd
7693 tauyzsd = v_zd + w_yd
7695 q_xd = q_x*heatcoefd + heatcoef*q_xd
7697 q_yd = q_y*heatcoefd + heatcoef*q_yd
7699 q_zd = q_z*heatcoefd + heatcoef*q_zd
7717 arg1d = 2*u_x*u_xd + 2*u_y*u_yd + 2*u_z*u_zd + 2*v_x*v_xd &
7718 & + 2*v_y*v_yd + 2*v_z*v_zd + 2*w_x*w_xd + 2*w_y*w_yd + 2*&
7720 arg1 = u_x*u_x + u_y*u_y + u_z*u_z + v_x*v_x + v_y*v_y + &
7721 & v_z*v_z + w_x*w_x + w_y*w_y + w_z*w_z
7723 if (arg1 .eq. 0.0_8)
then
7726 dend = arg1d/(2.0*temp7)
7729 if (den .lt. xminn)
then
7738 factd = ccr1*(mued-mue*dend/den)/den
7755 temp7 = wxy*tauxys + wxz*tauxzs
7756 exxd =
two*(temp7*factd+fact*(tauxys*wxyd+wxy*tauxysd+&
7757 & tauxzs*wxzd+wxz*tauxzsd))
7758 exx =
two*(fact*temp7)
7759 temp7 = wyx*tauxys + wyz*tauyzs
7760 eyyd =
two*(temp7*factd+fact*(tauxys*wyxd+wyx*tauxysd+&
7761 & tauyzs*wyzd+wyz*tauyzsd))
7762 eyy =
two*(fact*temp7)
7763 temp7 = wzx*tauxzs + wzy*tauyzs
7764 ezzd =
two*(temp7*factd+fact*(tauxzs*wzxd+wzx*tauxzsd+&
7765 & tauyzs*wzyd+wzy*tauyzsd))
7766 ezz =
two*(fact*temp7)
7767 temp7 = wxy*tauyys + wxz*tauyzs + wyx*tauxxs + wyz*tauxzs
7768 exyd = temp7*factd + fact*(tauyys*wxyd+wxy*tauyysd+tauyzs*&
7769 & wxzd+wxz*tauyzsd+tauxxs*wyxd+wyx*tauxxsd+tauxzs*wyzd+wyz&
7772 temp7 = wxy*tauyzs + wxz*tauzzs + wzx*tauxxs + wzy*tauxys
7773 exzd = temp7*factd + fact*(tauyzs*wxyd+wxy*tauyzsd+tauzzs*&
7774 & wxzd+wxz*tauzzsd+tauxxs*wzxd+wzx*tauxxsd+tauxys*wzyd+wzy&
7777 temp7 = wyx*tauxzs + wyz*tauzzs + wzx*tauxys + wzy*tauyys
7778 eyzd = temp7*factd + fact*(tauxzs*wyxd+wyx*tauxzsd+tauzzs*&
7779 & wyzd+wyz*tauzzsd+tauxys*wzxd+wzx*tauxysd+tauyys*wzyd+wzy&
7783 tauxxd = tauxxs*mutd + mut*tauxxsd - exxd
7784 tauxx = mut*tauxxs - exx
7785 tauyyd = tauyys*mutd + mut*tauyysd - eyyd
7786 tauyy = mut*tauyys - eyy
7787 tauzzd = tauzzs*mutd + mut*tauzzsd - ezzd
7788 tauzz = mut*tauzzs - ezz
7789 tauxyd = tauxys*mutd + mut*tauxysd - exyd
7790 tauxy = mut*tauxys - exy
7791 tauxzd = tauxzs*mutd + mut*tauxzsd - exzd
7792 tauxz = mut*tauxzs - exz
7793 tauyzd = tauyzs*mutd + mut*tauyzsd - eyzd
7794 tauyz = mut*tauyzs - eyz
7797 tauxxd = tauxxs*mutd + mut*tauxxsd
7799 tauyyd = tauyys*mutd + mut*tauyysd
7801 tauzzd = tauzzs*mutd + mut*tauzzsd
7803 tauxyd = tauxys*mutd + mut*tauxysd
7805 tauxzd = tauxzs*mutd + mut*tauxzsd
7807 tauyzd = tauyzs*mutd + mut*tauyzsd
7819 temp7 =
si(i, j, k, 1)
7820 temp6 =
si(i, j, k, 2)
7821 temp5 =
si(i, j, k, 3)
7822 fmxd = temp7*tauxxd + tauxx*
sid(i, j, k, 1) + temp6*tauxyd +&
7823 & tauxy*
sid(i, j, k, 2) + temp5*tauxzd + tauxz*
sid(i, j, k, &
7825 fmx = tauxx*temp7 + tauxy*temp6 + tauxz*temp5
7826 temp7 =
si(i, j, k, 1)
7827 temp6 =
si(i, j, k, 2)
7828 temp5 =
si(i, j, k, 3)
7829 fmyd = temp7*tauxyd + tauxy*
sid(i, j, k, 1) + temp6*tauyyd +&
7830 & tauyy*
sid(i, j, k, 2) + temp5*tauyzd + tauyz*
sid(i, j, k, &
7832 fmy = tauxy*temp7 + tauyy*temp6 + tauyz*temp5
7833 temp7 =
si(i, j, k, 1)
7834 temp6 =
si(i, j, k, 2)
7835 temp5 =
si(i, j, k, 3)
7836 fmzd = temp7*tauxzd + tauxz*
sid(i, j, k, 1) + temp6*tauyzd +&
7837 & tauyz*
sid(i, j, k, 2) + temp5*tauzzd + tauzz*
sid(i, j, k, &
7839 fmz = tauxz*temp7 + tauyz*temp6 + tauzz*temp5
7840 temp7 =
si(i, j, k, 1)
7841 temp6 = ubar*tauxx + vbar*tauxy + wbar*tauxz
7842 temp5 =
si(i, j, k, 2)
7843 temp4 = ubar*tauxy + vbar*tauyy + wbar*tauyz
7844 temp3 =
si(i, j, k, 3)
7845 temp2 = ubar*tauxz + vbar*tauyz + wbar*tauzz
7846 temp1 =
si(i, j, k, 1)
7847 temp0 =
si(i, j, k, 2)
7848 temp =
si(i, j, k, 3)
7849 frhoed = temp7*(tauxx*ubard+ubar*tauxxd+tauxy*vbard+vbar*&
7850 & tauxyd+tauxz*wbard+wbar*tauxzd) + (temp6-q_x)*
sid(i, j, k&
7851 & , 1) + temp5*(tauxy*ubard+ubar*tauxyd+tauyy*vbard+vbar*&
7852 & tauyyd+tauyz*wbard+wbar*tauyzd) + (temp4-q_y)*
sid(i, j, k&
7853 & , 2) + temp3*(tauxz*ubard+ubar*tauxzd+tauyz*vbard+vbar*&
7854 & tauyzd+tauzz*wbard+wbar*tauzzd) + (temp2-q_z)*
sid(i, j, k&
7855 & , 3) - temp1*q_xd - temp0*q_yd - temp*q_zd
7856 frhoe = temp6*temp7 + temp4*temp5 + temp2*temp3 - q_x*temp1 &
7857 & - q_y*temp0 - q_z*temp
7868 fw(i+1, j, k,
imx) =
fw(i+1, j, k,
imx) + fmx
7870 fw(i+1, j, k,
imy) =
fw(i+1, j, k,
imy) + fmy
7872 fw(i+1, j, k,
imz) =
fw(i+1, j, k,
imz) + fmz
7950 real(kind=realtype),
parameter :: twothird=
two*
third
7951 real(kind=realtype),
parameter :: xminn=1.e-14_realtype
7955 integer(kind=inttype) :: i, j, k, ii
7956 real(kind=realtype) :: rfilv, por, mul, mue, mut, heatcoef
7957 real(kind=realtype) :: gm1, factlamheat, factturbheat
7958 real(kind=realtype) :: u_x, u_y, u_z, v_x, v_y, v_z, w_x, w_y, w_z
7959 real(kind=realtype) :: q_x, q_y, q_z, ubar, vbar, wbar
7960 real(kind=realtype) :: corr, ssx, ssy, ssz, ss, fracdiv
7961 real(kind=realtype) :: tauxx, tauyy, tauzz
7962 real(kind=realtype) :: tauxy, tauxz, tauyz
7963 real(kind=realtype) :: tauxxs, tauyys, tauzzs
7964 real(kind=realtype) :: tauxys, tauxzs, tauyzs
7965 real(kind=realtype) :: exx, eyy, ezz
7966 real(kind=realtype) :: exy, exz, eyz
7967 real(kind=realtype) :: wxy, wxz, wyz, wyx, wzx, wzy
7968 real(kind=realtype) :: den, ccr1, fact
7969 real(kind=realtype) :: fmx, fmy, fmz, frhoe
7970 logical :: correctfork, storewalltensor
7974 real(kind=realtype) :: abs0
7975 real(kind=realtype) :: arg1
7976 real(kind=realtype) :: result1
7983 if (rfilv .ge. 0.)
then
7993 storewalltensor = .false.
7995 storewalltensor = .true.
7997 storewalltensor = .true.
8016 mul = por*(
rlv(i, j, k)+
rlv(i, j, k+1))
8022 heatcoef = mul*factlamheat + mue*factturbheat
8053 ssx =
eighth*(
x(i-1, j-1, k+1, 1)-
x(i-1, j-1, k-1, 1)+
x(i-1&
8054 & , j, k+1, 1)-
x(i-1, j, k-1, 1)+
x(i, j-1, k+1, 1)-
x(i, j-1&
8055 & , k-1, 1)+
x(i, j, k+1, 1)-
x(i, j, k-1, 1))
8056 ssy =
eighth*(
x(i-1, j-1, k+1, 2)-
x(i-1, j-1, k-1, 2)+
x(i-1&
8057 & , j, k+1, 2)-
x(i-1, j, k-1, 2)+
x(i, j-1, k+1, 2)-
x(i, j-1&
8058 & , k-1, 2)+
x(i, j, k+1, 2)-
x(i, j, k-1, 2))
8059 ssz =
eighth*(
x(i-1, j-1, k+1, 3)-
x(i-1, j-1, k-1, 3)+
x(i-1&
8060 & , j, k+1, 3)-
x(i-1, j, k-1, 3)+
x(i, j-1, k+1, 3)-
x(i, j-1&
8061 & , k-1, 3)+
x(i, j, k+1, 3)-
x(i, j, k-1, 3))
8064 arg1 = ssx*ssx + ssy*ssy + ssz*ssz
8065 result1 = sqrt(arg1)
8071 corr = u_x*ssx + u_y*ssy + u_z*ssz - (
w(i, j, k+1,
ivx)-
w(i&
8073 u_x = u_x - corr*ssx
8074 u_y = u_y - corr*ssy
8075 u_z = u_z - corr*ssz
8076 corr = v_x*ssx + v_y*ssy + v_z*ssz - (
w(i, j, k+1,
ivy)-
w(i&
8078 v_x = v_x - corr*ssx
8079 v_y = v_y - corr*ssy
8080 v_z = v_z - corr*ssz
8081 corr = w_x*ssx + w_y*ssy + w_z*ssz - (
w(i, j, k+1,
ivz)-
w(i&
8083 w_x = w_x - corr*ssx
8084 w_y = w_y - corr*ssy
8085 w_z = w_z - corr*ssz
8086 corr = q_x*ssx + q_y*ssy + q_z*ssz + (
aa(i, j, k+1)-
aa(i, j&
8088 q_x = q_x - corr*ssx
8089 q_y = q_y - corr*ssy
8090 q_z = q_z - corr*ssz
8097 fracdiv = twothird*(u_x+v_y+w_z)
8098 tauxxs =
two*u_x - fracdiv
8099 tauyys =
two*v_y - fracdiv
8100 tauzzs =
two*w_z - fracdiv
8123 arg1 = u_x*u_x + u_y*u_y + u_z*u_z + v_x*v_x + v_y*v_y + &
8124 & v_z*v_z + w_x*w_x + w_y*w_y + w_z*w_z
8126 if (den .lt. xminn)
then
8144 exx = fact*(wxy*tauxys+wxz*tauxzs)*
two
8145 eyy = fact*(wyx*tauxys+wyz*tauyzs)*
two
8146 ezz = fact*(wzx*tauxzs+wzy*tauyzs)*
two
8147 exy = fact*(wxy*tauyys+wxz*tauyzs+wyx*tauxxs+wyz*tauxzs)
8148 exz = fact*(wxy*tauyzs+wxz*tauzzs+wzx*tauxxs+wzy*tauxys)
8149 eyz = fact*(wyx*tauxzs+wyz*tauzzs+wzx*tauxys+wzy*tauyys)
8151 tauxx = mut*tauxxs - exx
8152 tauyy = mut*tauyys - eyy
8153 tauzz = mut*tauzzs - ezz
8154 tauxy = mut*tauxys - exy
8155 tauxz = mut*tauxzs - exz
8156 tauyz = mut*tauyzs - eyz
8172 fmx = tauxx*
sk(i, j, k, 1) + tauxy*
sk(i, j, k, 2) + tauxz*
sk&
8174 fmy = tauxy*
sk(i, j, k, 1) + tauyy*
sk(i, j, k, 2) + tauyz*
sk&
8176 fmz = tauxz*
sk(i, j, k, 1) + tauyz*
sk(i, j, k, 2) + tauzz*
sk&
8178 frhoe = (ubar*tauxx+vbar*tauxy+wbar*tauxz)*
sk(i, j, k, 1)
8179 frhoe = frhoe + (ubar*tauxy+vbar*tauyy+wbar*tauyz)*
sk(i, j, &
8181 frhoe = frhoe + (ubar*tauxz+vbar*tauyz+wbar*tauzz)*
sk(i, j, &
8183 frhoe = frhoe - q_x*
sk(i, j, k, 1) - q_y*
sk(i, j, k, 2) - &
8184 & q_z*
sk(i, j, k, 3)
8190 fw(i, j, k+1,
imx) =
fw(i, j, k+1,
imx) + fmx
8191 fw(i, j, k+1,
imy) =
fw(i, j, k+1,
imy) + fmy
8192 fw(i, j, k+1,
imz) =
fw(i, j, k+1,
imz) + fmz
8246 mul = por*(
rlv(i, j, k)+
rlv(i, j+1, k))
8252 heatcoef = mul*factlamheat + mue*factturbheat
8283 ssx =
eighth*(
x(i-1, j+1, k-1, 1)-
x(i-1, j-1, k-1, 1)+
x(i-1&
8284 & , j+1, k, 1)-
x(i-1, j-1, k, 1)+
x(i, j+1, k-1, 1)-
x(i, j-1&
8285 & , k-1, 1)+
x(i, j+1, k, 1)-
x(i, j-1, k, 1))
8286 ssy =
eighth*(
x(i-1, j+1, k-1, 2)-
x(i-1, j-1, k-1, 2)+
x(i-1&
8287 & , j+1, k, 2)-
x(i-1, j-1, k, 2)+
x(i, j+1, k-1, 2)-
x(i, j-1&
8288 & , k-1, 2)+
x(i, j+1, k, 2)-
x(i, j-1, k, 2))
8289 ssz =
eighth*(
x(i-1, j+1, k-1, 3)-
x(i-1, j-1, k-1, 3)+
x(i-1&
8290 & , j+1, k, 3)-
x(i-1, j-1, k, 3)+
x(i, j+1, k-1, 3)-
x(i, j-1&
8291 & , k-1, 3)+
x(i, j+1, k, 3)-
x(i, j-1, k, 3))
8294 arg1 = ssx*ssx + ssy*ssy + ssz*ssz
8295 result1 = sqrt(arg1)
8301 corr = u_x*ssx + u_y*ssy + u_z*ssz - (
w(i, j+1, k,
ivx)-
w(i&
8303 u_x = u_x - corr*ssx
8304 u_y = u_y - corr*ssy
8305 u_z = u_z - corr*ssz
8306 corr = v_x*ssx + v_y*ssy + v_z*ssz - (
w(i, j+1, k,
ivy)-
w(i&
8308 v_x = v_x - corr*ssx
8309 v_y = v_y - corr*ssy
8310 v_z = v_z - corr*ssz
8311 corr = w_x*ssx + w_y*ssy + w_z*ssz - (
w(i, j+1, k,
ivz)-
w(i&
8313 w_x = w_x - corr*ssx
8314 w_y = w_y - corr*ssy
8315 w_z = w_z - corr*ssz
8316 corr = q_x*ssx + q_y*ssy + q_z*ssz + (
aa(i, j+1, k)-
aa(i, j&
8318 q_x = q_x - corr*ssx
8319 q_y = q_y - corr*ssy
8320 q_z = q_z - corr*ssz
8327 fracdiv = twothird*(u_x+v_y+w_z)
8328 tauxxs =
two*u_x - fracdiv
8329 tauyys =
two*v_y - fracdiv
8330 tauzzs =
two*w_z - fracdiv
8353 arg1 = u_x*u_x + u_y*u_y + u_z*u_z + v_x*v_x + v_y*v_y + &
8354 & v_z*v_z + w_x*w_x + w_y*w_y + w_z*w_z
8356 if (den .lt. xminn)
then
8374 exx = fact*(wxy*tauxys+wxz*tauxzs)*
two
8375 eyy = fact*(wyx*tauxys+wyz*tauyzs)*
two
8376 ezz = fact*(wzx*tauxzs+wzy*tauyzs)*
two
8377 exy = fact*(wxy*tauyys+wxz*tauyzs+wyx*tauxxs+wyz*tauxzs)
8378 exz = fact*(wxy*tauyzs+wxz*tauzzs+wzx*tauxxs+wzy*tauxys)
8379 eyz = fact*(wyx*tauxzs+wyz*tauzzs+wzx*tauxys+wzy*tauyys)
8381 tauxx = mut*tauxxs - exx
8382 tauyy = mut*tauyys - eyy
8383 tauzz = mut*tauzzs - ezz
8384 tauxy = mut*tauxys - exy
8385 tauxz = mut*tauxzs - exz
8386 tauyz = mut*tauyzs - eyz
8402 fmx = tauxx*
sj(i, j, k, 1) + tauxy*
sj(i, j, k, 2) + tauxz*
sj&
8404 fmy = tauxy*
sj(i, j, k, 1) + tauyy*
sj(i, j, k, 2) + tauyz*
sj&
8406 fmz = tauxz*
sj(i, j, k, 1) + tauyz*
sj(i, j, k, 2) + tauzz*
sj&
8408 frhoe = (ubar*tauxx+vbar*tauxy+wbar*tauxz)*
sj(i, j, k, 1) + &
8409 & (ubar*tauxy+vbar*tauyy+wbar*tauyz)*
sj(i, j, k, 2) + (ubar*&
8410 & tauxz+vbar*tauyz+wbar*tauzz)*
sj(i, j, k, 3) - q_x*
sj(i, j&
8411 & , k, 1) - q_y*
sj(i, j, k, 2) - q_z*
sj(i, j, k, 3)
8417 fw(i, j+1, k,
imx) =
fw(i, j+1, k,
imx) + fmx
8418 fw(i, j+1, k,
imy) =
fw(i, j+1, k,
imy) + fmy
8419 fw(i, j+1, k,
imz) =
fw(i, j+1, k,
imz) + fmz
8473 mul = por*(
rlv(i, j, k)+
rlv(i+1, j, k))
8479 heatcoef = mul*factlamheat + mue*factturbheat
8510 ssx =
eighth*(
x(i+1, j-1, k-1, 1)-
x(i-1, j-1, k-1, 1)+
x(i+1&
8511 & , j-1, k, 1)-
x(i-1, j-1, k, 1)+
x(i+1, j, k-1, 1)-
x(i-1, j&
8512 & , k-1, 1)+
x(i+1, j, k, 1)-
x(i-1, j, k, 1))
8513 ssy =
eighth*(
x(i+1, j-1, k-1, 2)-
x(i-1, j-1, k-1, 2)+
x(i+1&
8514 & , j-1, k, 2)-
x(i-1, j-1, k, 2)+
x(i+1, j, k-1, 2)-
x(i-1, j&
8515 & , k-1, 2)+
x(i+1, j, k, 2)-
x(i-1, j, k, 2))
8516 ssz =
eighth*(
x(i+1, j-1, k-1, 3)-
x(i-1, j-1, k-1, 3)+
x(i+1&
8517 & , j-1, k, 3)-
x(i-1, j-1, k, 3)+
x(i+1, j, k-1, 3)-
x(i-1, j&
8518 & , k-1, 3)+
x(i+1, j, k, 3)-
x(i-1, j, k, 3))
8521 arg1 = ssx*ssx + ssy*ssy + ssz*ssz
8522 result1 = sqrt(arg1)
8528 corr = u_x*ssx + u_y*ssy + u_z*ssz - (
w(i+1, j, k,
ivx)-
w(i&
8530 u_x = u_x - corr*ssx
8531 u_y = u_y - corr*ssy
8532 u_z = u_z - corr*ssz
8533 corr = v_x*ssx + v_y*ssy + v_z*ssz - (
w(i+1, j, k,
ivy)-
w(i&
8535 v_x = v_x - corr*ssx
8536 v_y = v_y - corr*ssy
8537 v_z = v_z - corr*ssz
8538 corr = w_x*ssx + w_y*ssy + w_z*ssz - (
w(i+1, j, k,
ivz)-
w(i&
8540 w_x = w_x - corr*ssx
8541 w_y = w_y - corr*ssy
8542 w_z = w_z - corr*ssz
8543 corr = q_x*ssx + q_y*ssy + q_z*ssz + (
aa(i+1, j, k)-
aa(i, j&
8545 q_x = q_x - corr*ssx
8546 q_y = q_y - corr*ssy
8547 q_z = q_z - corr*ssz
8554 fracdiv = twothird*(u_x+v_y+w_z)
8555 tauxxs =
two*u_x - fracdiv
8556 tauyys =
two*v_y - fracdiv
8557 tauzzs =
two*w_z - fracdiv
8580 arg1 = u_x*u_x + u_y*u_y + u_z*u_z + v_x*v_x + v_y*v_y + &
8581 & v_z*v_z + w_x*w_x + w_y*w_y + w_z*w_z
8583 if (den .lt. xminn)
then
8601 exx = fact*(wxy*tauxys+wxz*tauxzs)*
two
8602 eyy = fact*(wyx*tauxys+wyz*tauyzs)*
two
8603 ezz = fact*(wzx*tauxzs+wzy*tauyzs)*
two
8604 exy = fact*(wxy*tauyys+wxz*tauyzs+wyx*tauxxs+wyz*tauxzs)
8605 exz = fact*(wxy*tauyzs+wxz*tauzzs+wzx*tauxxs+wzy*tauxys)
8606 eyz = fact*(wyx*tauxzs+wyz*tauzzs+wzx*tauxys+wzy*tauyys)
8608 tauxx = mut*tauxxs - exx
8609 tauyy = mut*tauyys - eyy
8610 tauzz = mut*tauzzs - ezz
8611 tauxy = mut*tauxys - exy
8612 tauxz = mut*tauxzs - exz
8613 tauyz = mut*tauyzs - eyz
8629 fmx = tauxx*
si(i, j, k, 1) + tauxy*
si(i, j, k, 2) + tauxz*
si&
8631 fmy = tauxy*
si(i, j, k, 1) + tauyy*
si(i, j, k, 2) + tauyz*
si&
8633 fmz = tauxz*
si(i, j, k, 1) + tauyz*
si(i, j, k, 2) + tauzz*
si&
8635 frhoe = (ubar*tauxx+vbar*tauxy+wbar*tauxz)*
si(i, j, k, 1) + &
8636 & (ubar*tauxy+vbar*tauyy+wbar*tauyz)*
si(i, j, k, 2) + (ubar*&
8637 & tauxz+vbar*tauyz+wbar*tauzz)*
si(i, j, k, 3) - q_x*
si(i, j&
8638 & , k, 1) - q_y*
si(i, j, k, 2) - q_z*
si(i, j, k, 3)
8644 fw(i+1, j, k,
imx) =
fw(i+1, j, k,
imx) + fmx
8645 fw(i+1, j, k,
imy) =
fw(i+1, j, k,
imy) + fmy
8646 fw(i+1, j, k,
imz) =
fw(i+1, j, k,
imz) + fmz
8708 real(kind=realtype),
parameter :: twothird=
two*
third
8712 integer(kind=inttype) :: i, j, k
8713 integer(kind=inttype) :: ii, jj, kk
8714 real(kind=realtype) :: rfilv, por, mul, mue, mut, heatcoef
8715 real(kind=realtype) :: muld, mued, mutd, heatcoefd
8716 real(kind=realtype) :: gm1, factlamheat, factturbheat
8717 real(kind=realtype) :: u_x, u_y, u_z, v_x, v_y, v_z, w_x, w_y, w_z
8718 real(kind=realtype) :: u_xd, u_yd, u_zd, v_xd, v_yd, v_zd, w_xd, &
8720 real(kind=realtype) :: q_x, q_y, q_z, ubar, vbar, wbar
8721 real(kind=realtype) :: q_xd, q_yd, q_zd, ubard, vbard, wbard
8722 real(kind=realtype) :: corr, ssx, ssy, ssz, ss, fracdiv
8723 real(kind=realtype) :: ssxd, ssyd, sszd, ssd, fracdivd
8724 real(kind=realtype) :: tauxx, tauyy, tauzz
8725 real(kind=realtype) :: tauxxd, tauyyd, tauzzd
8726 real(kind=realtype) :: tauxy, tauxz, tauyz
8727 real(kind=realtype) :: tauxyd, tauxzd, tauyzd
8728 real(kind=realtype) :: fmx, fmy, fmz, frhoe
8729 real(kind=realtype) :: fmxd, fmyd, fmzd, frhoed
8730 real(kind=realtype) :: dd
8731 real(kind=realtype) :: ddd
8732 logical :: correctfork
8733 real(kind=realtype) :: temp
8734 real(kind=realtype) :: temp0
8735 real(kind=realtype) :: temp1
8736 real(kind=realtype) :: temp2
8737 real(kind=realtype) :: temp3
8738 real(kind=realtype) :: temp4
8739 real(kind=realtype) :: temp5
8740 real(kind=realtype) :: temp6
8741 real(kind=realtype) :: temp7
8750 ssxd =
eighth*(
xd(i+1, j-1, k-1, 1)-
xd(i-1, j-1, k-1, 1)+
xd(i+&
8751 & 1, j-1, k, 1)-
xd(i-1, j-1, k, 1)+
xd(i+1, j, k-1, 1)-
xd(i-1, &
8752 & j, k-1, 1)+
xd(i+1, j, k, 1)-
xd(i-1, j, k, 1))
8753 ssx =
eighth*(
x(i+1, j-1, k-1, 1)-
x(i-1, j-1, k-1, 1)+
x(i+1, j&
8754 & -1, k, 1)-
x(i-1, j-1, k, 1)+
x(i+1, j, k-1, 1)-
x(i-1, j, k-1&
8755 & , 1)+
x(i+1, j, k, 1)-
x(i-1, j, k, 1))
8756 ssyd =
eighth*(
xd(i+1, j-1, k-1, 2)-
xd(i-1, j-1, k-1, 2)+
xd(i+&
8757 & 1, j-1, k, 2)-
xd(i-1, j-1, k, 2)+
xd(i+1, j, k-1, 2)-
xd(i-1, &
8758 & j, k-1, 2)+
xd(i+1, j, k, 2)-
xd(i-1, j, k, 2))
8759 ssy =
eighth*(
x(i+1, j-1, k-1, 2)-
x(i-1, j-1, k-1, 2)+
x(i+1, j&
8760 & -1, k, 2)-
x(i-1, j-1, k, 2)+
x(i+1, j, k-1, 2)-
x(i-1, j, k-1&
8761 & , 2)+
x(i+1, j, k, 2)-
x(i-1, j, k, 2))
8762 sszd =
eighth*(
xd(i+1, j-1, k-1, 3)-
xd(i-1, j-1, k-1, 3)+
xd(i+&
8763 & 1, j-1, k, 3)-
xd(i-1, j-1, k, 3)+
xd(i+1, j, k-1, 3)-
xd(i-1, &
8764 & j, k-1, 3)+
xd(i+1, j, k, 3)-
xd(i-1, j, k, 3))
8765 ssz =
eighth*(
x(i+1, j-1, k-1, 3)-
x(i-1, j-1, k-1, 3)+
x(i+1, j&
8766 & -1, k, 3)-
x(i-1, j-1, k, 3)+
x(i+1, j, k-1, 3)-
x(i-1, j, k-1&
8767 & , 3)+
x(i+1, j, k, 3)-
x(i-1, j, k, 3))
8769 temp =
one/(ssx*ssx+ssy*ssy+ssz*ssz)
8770 ssd = -(temp*(2*ssx*ssxd+2*ssy*ssyd+2*ssz*sszd)/(ssx**2+ssy**2&
8773 ssxd = ssx*ssd + ss*ssxd
8775 ssyd = ssy*ssd + ss*ssyd
8777 sszd = ssz*ssd + ss*sszd
8781 dd =
w(i+1, j, k,
ivx) -
w(i, j, k,
ivx)
8782 u_xd = ssx*ddd + dd*ssxd
8784 u_yd = ssy*ddd + dd*ssyd
8786 u_zd = ssz*ddd + dd*sszd
8789 dd =
w(i+1, j, k,
ivy) -
w(i, j, k,
ivy)
8790 v_xd = ssx*ddd + dd*ssxd
8792 v_yd = ssy*ddd + dd*ssyd
8794 v_zd = ssz*ddd + dd*sszd
8797 dd =
w(i+1, j, k,
ivz) -
w(i, j, k,
ivz)
8798 w_xd = ssx*ddd + dd*ssxd
8800 w_yd = ssy*ddd + dd*ssyd
8802 w_zd = ssz*ddd + dd*sszd
8804 ddd =
aad(i+1, j, k) -
aad(i, j, k)
8805 dd =
aa(i+1, j, k) -
aa(i, j, k)
8806 q_xd = -(ssx*ddd+dd*ssxd)
8808 q_yd = -(ssy*ddd+dd*ssyd)
8810 q_zd = -(ssz*ddd+dd*sszd)
8818 muld = por*(
rlvd(i, j, k)+
rlvd(i+1, j, k))
8819 mul = por*(
rlv(i, j, k)+
rlv(i+1, j, k))
8821 mued = por*(
revd(i, j, k)+
revd(i+1, j, k))
8822 mue = por*(
rev(i, j, k)+
rev(i+1, j, k))
8829 heatcoefd = factlamheat*muld + factturbheat*mued
8830 heatcoef = mul*factlamheat + mue*factturbheat
8832 fracdivd = twothird*(u_xd+v_yd+w_zd)
8833 fracdiv = twothird*(u_x+v_y+w_z)
8834 tauxxd = (
two*u_x-fracdiv)*mutd + mut*(
two*u_xd-fracdivd)
8835 tauxx = mut*(
two*u_x-fracdiv)
8836 tauyyd = (
two*v_y-fracdiv)*mutd + mut*(
two*v_yd-fracdivd)
8837 tauyy = mut*(
two*v_y-fracdiv)
8838 tauzzd = (
two*w_z-fracdiv)*mutd + mut*(
two*w_zd-fracdivd)
8839 tauzz = mut*(
two*w_z-fracdiv)
8840 tauxyd = (u_y+v_x)*mutd + mut*(u_yd+v_xd)
8841 tauxy = mut*(u_y+v_x)
8842 tauxzd = (u_z+w_x)*mutd + mut*(u_zd+w_xd)
8843 tauxz = mut*(u_z+w_x)
8844 tauyzd = (v_z+w_y)*mutd + mut*(v_zd+w_yd)
8845 tauyz = mut*(v_z+w_y)
8846 q_xd = q_x*heatcoefd + heatcoef*q_xd
8848 q_yd = q_y*heatcoefd + heatcoef*q_yd
8850 q_zd = q_z*heatcoefd + heatcoef*q_zd
8861 temp =
si(i, j, k, 1)
8862 temp0 =
si(i, j, k, 2)
8863 temp1 =
si(i, j, k, 3)
8864 fmxd = temp*tauxxd + tauxx*
sid(i, j, k, 1) + temp0*tauxyd + &
8865 & tauxy*
sid(i, j, k, 2) + temp1*tauxzd + tauxz*
sid(i, j, k, 3)
8866 fmx = tauxx*temp + tauxy*temp0 + tauxz*temp1
8867 temp1 =
si(i, j, k, 1)
8868 temp0 =
si(i, j, k, 2)
8869 temp =
si(i, j, k, 3)
8870 fmyd = temp1*tauxyd + tauxy*
sid(i, j, k, 1) + temp0*tauyyd + &
8871 & tauyy*
sid(i, j, k, 2) + temp*tauyzd + tauyz*
sid(i, j, k, 3)
8872 fmy = tauxy*temp1 + tauyy*temp0 + tauyz*temp
8873 temp1 =
si(i, j, k, 1)
8874 temp0 =
si(i, j, k, 2)
8875 temp =
si(i, j, k, 3)
8876 fmzd = temp1*tauxzd + tauxz*
sid(i, j, k, 1) + temp0*tauyzd + &
8877 & tauyz*
sid(i, j, k, 2) + temp*tauzzd + tauzz*
sid(i, j, k, 3)
8878 fmz = tauxz*temp1 + tauyz*temp0 + tauzz*temp
8879 temp1 =
si(i, j, k, 1)
8880 temp0 = ubar*tauxx + vbar*tauxy + wbar*tauxz
8881 temp =
si(i, j, k, 2)
8882 temp2 = ubar*tauxy + vbar*tauyy + wbar*tauyz
8883 temp3 =
si(i, j, k, 3)
8884 temp4 = ubar*tauxz + vbar*tauyz + wbar*tauzz
8885 temp5 =
si(i, j, k, 1)
8886 temp6 =
si(i, j, k, 2)
8887 temp7 =
si(i, j, k, 3)
8888 frhoed = temp1*(tauxx*ubard+ubar*tauxxd+tauxy*vbard+vbar*&
8889 & tauxyd+tauxz*wbard+wbar*tauxzd) + (temp0-q_x)*
sid(i, j, k, 1&
8890 & ) + temp*(tauxy*ubard+ubar*tauxyd+tauyy*vbard+vbar*tauyyd+&
8891 & tauyz*wbard+wbar*tauyzd) + (temp2-q_y)*
sid(i, j, k, 2) + &
8892 & temp3*(tauxz*ubard+ubar*tauxzd+tauyz*vbard+vbar*tauyzd+tauzz&
8893 & *wbard+wbar*tauzzd) + (temp4-q_z)*
sid(i, j, k, 3) - temp5*&
8894 & q_xd - temp6*q_yd - temp7*q_zd
8895 frhoe = temp0*temp1 + temp2*temp + temp4*temp3 - q_x*temp5 - &
8896 & q_y*temp6 - q_z*temp7
8907 fw(i+1, j, k,
imx) =
fw(i+1, j, k,
imx) + fmx
8909 fw(i+1, j, k,
imy) =
fw(i+1, j, k,
imy) + fmy
8911 fw(i+1, j, k,
imz) =
fw(i+1, j, k,
imz) + fmz
8922 ssxd =
eighth*(
xd(i-1, j+1, k-1, 1)-
xd(i-1, j-1, k-1, 1)+
xd(i-&
8923 & 1, j+1, k, 1)-
xd(i-1, j-1, k, 1)+
xd(i, j+1, k-1, 1)-
xd(i, j-&
8924 & 1, k-1, 1)+
xd(i, j+1, k, 1)-
xd(i, j-1, k, 1))
8925 ssx =
eighth*(
x(i-1, j+1, k-1, 1)-
x(i-1, j-1, k-1, 1)+
x(i-1, j&
8926 & +1, k, 1)-
x(i-1, j-1, k, 1)+
x(i, j+1, k-1, 1)-
x(i, j-1, k-1&
8927 & , 1)+
x(i, j+1, k, 1)-
x(i, j-1, k, 1))
8928 ssyd =
eighth*(
xd(i-1, j+1, k-1, 2)-
xd(i-1, j-1, k-1, 2)+
xd(i-&
8929 & 1, j+1, k, 2)-
xd(i-1, j-1, k, 2)+
xd(i, j+1, k-1, 2)-
xd(i, j-&
8930 & 1, k-1, 2)+
xd(i, j+1, k, 2)-
xd(i, j-1, k, 2))
8931 ssy =
eighth*(
x(i-1, j+1, k-1, 2)-
x(i-1, j-1, k-1, 2)+
x(i-1, j&
8932 & +1, k, 2)-
x(i-1, j-1, k, 2)+
x(i, j+1, k-1, 2)-
x(i, j-1, k-1&
8933 & , 2)+
x(i, j+1, k, 2)-
x(i, j-1, k, 2))
8934 sszd =
eighth*(
xd(i-1, j+1, k-1, 3)-
xd(i-1, j-1, k-1, 3)+
xd(i-&
8935 & 1, j+1, k, 3)-
xd(i-1, j-1, k, 3)+
xd(i, j+1, k-1, 3)-
xd(i, j-&
8936 & 1, k-1, 3)+
xd(i, j+1, k, 3)-
xd(i, j-1, k, 3))
8937 ssz =
eighth*(
x(i-1, j+1, k-1, 3)-
x(i-1, j-1, k-1, 3)+
x(i-1, j&
8938 & +1, k, 3)-
x(i-1, j-1, k, 3)+
x(i, j+1, k-1, 3)-
x(i, j-1, k-1&
8939 & , 3)+
x(i, j+1, k, 3)-
x(i, j-1, k, 3))
8941 temp7 =
one/(ssx*ssx+ssy*ssy+ssz*ssz)
8942 ssd = -(temp7*(2*ssx*ssxd+2*ssy*ssyd+2*ssz*sszd)/(ssx**2+ssy**&
8945 ssxd = ssx*ssd + ss*ssxd
8947 ssyd = ssy*ssd + ss*ssyd
8949 sszd = ssz*ssd + ss*sszd
8953 dd =
w(i, j+1, k,
ivx) -
w(i, j, k,
ivx)
8954 u_xd = ssx*ddd + dd*ssxd
8956 u_yd = ssy*ddd + dd*ssyd
8958 u_zd = ssz*ddd + dd*sszd
8961 dd =
w(i, j+1, k,
ivy) -
w(i, j, k,
ivy)
8962 v_xd = ssx*ddd + dd*ssxd
8964 v_yd = ssy*ddd + dd*ssyd
8966 v_zd = ssz*ddd + dd*sszd
8969 dd =
w(i, j+1, k,
ivz) -
w(i, j, k,
ivz)
8970 w_xd = ssx*ddd + dd*ssxd
8972 w_yd = ssy*ddd + dd*ssyd
8974 w_zd = ssz*ddd + dd*sszd
8976 ddd =
aad(i, j+1, k) -
aad(i, j, k)
8977 dd =
aa(i, j+1, k) -
aa(i, j, k)
8978 q_xd = -(ssx*ddd+dd*ssxd)
8980 q_yd = -(ssy*ddd+dd*ssyd)
8982 q_zd = -(ssz*ddd+dd*sszd)
8990 muld = por*(
rlvd(i, j, k)+
rlvd(i, j+1, k))
8991 mul = por*(
rlv(i, j, k)+
rlv(i, j+1, k))
8993 mued = por*(
revd(i, j, k)+
revd(i, j+1, k))
8994 mue = por*(
rev(i, j, k)+
rev(i, j+1, k))
9001 heatcoefd = factlamheat*muld + factturbheat*mued
9002 heatcoef = mul*factlamheat + mue*factturbheat
9004 fracdivd = twothird*(u_xd+v_yd+w_zd)
9005 fracdiv = twothird*(u_x+v_y+w_z)
9006 tauxxd = (
two*u_x-fracdiv)*mutd + mut*(
two*u_xd-fracdivd)
9007 tauxx = mut*(
two*u_x-fracdiv)
9008 tauyyd = (
two*v_y-fracdiv)*mutd + mut*(
two*v_yd-fracdivd)
9009 tauyy = mut*(
two*v_y-fracdiv)
9010 tauzzd = (
two*w_z-fracdiv)*mutd + mut*(
two*w_zd-fracdivd)
9011 tauzz = mut*(
two*w_z-fracdiv)
9012 tauxyd = (u_y+v_x)*mutd + mut*(u_yd+v_xd)
9013 tauxy = mut*(u_y+v_x)
9014 tauxzd = (u_z+w_x)*mutd + mut*(u_zd+w_xd)
9015 tauxz = mut*(u_z+w_x)
9016 tauyzd = (v_z+w_y)*mutd + mut*(v_zd+w_yd)
9017 tauyz = mut*(v_z+w_y)
9018 q_xd = q_x*heatcoefd + heatcoef*q_xd
9020 q_yd = q_y*heatcoefd + heatcoef*q_yd
9022 q_zd = q_z*heatcoefd + heatcoef*q_zd
9033 temp7 =
sj(i, j, k, 1)
9034 temp6 =
sj(i, j, k, 2)
9035 temp5 =
sj(i, j, k, 3)
9036 fmxd = temp7*tauxxd + tauxx*
sjd(i, j, k, 1) + temp6*tauxyd + &
9037 & tauxy*
sjd(i, j, k, 2) + temp5*tauxzd + tauxz*
sjd(i, j, k, 3)
9038 fmx = tauxx*temp7 + tauxy*temp6 + tauxz*temp5
9039 temp7 =
sj(i, j, k, 1)
9040 temp6 =
sj(i, j, k, 2)
9041 temp5 =
sj(i, j, k, 3)
9042 fmyd = temp7*tauxyd + tauxy*
sjd(i, j, k, 1) + temp6*tauyyd + &
9043 & tauyy*
sjd(i, j, k, 2) + temp5*tauyzd + tauyz*
sjd(i, j, k, 3)
9044 fmy = tauxy*temp7 + tauyy*temp6 + tauyz*temp5
9045 temp7 =
sj(i, j, k, 1)
9046 temp6 =
sj(i, j, k, 2)
9047 temp5 =
sj(i, j, k, 3)
9048 fmzd = temp7*tauxzd + tauxz*
sjd(i, j, k, 1) + temp6*tauyzd + &
9049 & tauyz*
sjd(i, j, k, 2) + temp5*tauzzd + tauzz*
sjd(i, j, k, 3)
9050 fmz = tauxz*temp7 + tauyz*temp6 + tauzz*temp5
9051 temp7 =
sj(i, j, k, 1)
9052 temp6 = ubar*tauxx + vbar*tauxy + wbar*tauxz
9053 temp5 =
sj(i, j, k, 2)
9054 temp4 = ubar*tauxy + vbar*tauyy + wbar*tauyz
9055 temp3 =
sj(i, j, k, 3)
9056 temp2 = ubar*tauxz + vbar*tauyz + wbar*tauzz
9057 temp1 =
sj(i, j, k, 1)
9058 temp0 =
sj(i, j, k, 2)
9059 temp =
sj(i, j, k, 3)
9060 frhoed = temp7*(tauxx*ubard+ubar*tauxxd+tauxy*vbard+vbar*&
9061 & tauxyd+tauxz*wbard+wbar*tauxzd) + (temp6-q_x)*
sjd(i, j, k, 1&
9062 & ) + temp5*(tauxy*ubard+ubar*tauxyd+tauyy*vbard+vbar*tauyyd+&
9063 & tauyz*wbard+wbar*tauyzd) + (temp4-q_y)*
sjd(i, j, k, 2) + &
9064 & temp3*(tauxz*ubard+ubar*tauxzd+tauyz*vbard+vbar*tauyzd+tauzz&
9065 & *wbard+wbar*tauzzd) + (temp2-q_z)*
sjd(i, j, k, 3) - temp1*&
9066 & q_xd - temp0*q_yd - temp*q_zd
9067 frhoe = temp6*temp7 + temp4*temp5 + temp2*temp3 - q_x*temp1 - &
9068 & q_y*temp0 - q_z*temp
9079 fw(i, j+1, k,
imx) =
fw(i, j+1, k,
imx) + fmx
9081 fw(i, j+1, k,
imy) =
fw(i, j+1, k,
imy) + fmy
9083 fw(i, j+1, k,
imz) =
fw(i, j+1, k,
imz) + fmz
9094 ssxd =
eighth*(
xd(i-1, j-1, k+1, 1)-
xd(i-1, j-1, k-1, 1)+
xd(i-&
9095 & 1, j, k+1, 1)-
xd(i-1, j, k-1, 1)+
xd(i, j-1, k+1, 1)-
xd(i, j-&
9096 & 1, k-1, 1)+
xd(i, j, k+1, 1)-
xd(i, j, k-1, 1))
9097 ssx =
eighth*(
x(i-1, j-1, k+1, 1)-
x(i-1, j-1, k-1, 1)+
x(i-1, j&
9098 & , k+1, 1)-
x(i-1, j, k-1, 1)+
x(i, j-1, k+1, 1)-
x(i, j-1, k-1&
9099 & , 1)+
x(i, j, k+1, 1)-
x(i, j, k-1, 1))
9100 ssyd =
eighth*(
xd(i-1, j-1, k+1, 2)-
xd(i-1, j-1, k-1, 2)+
xd(i-&
9101 & 1, j, k+1, 2)-
xd(i-1, j, k-1, 2)+
xd(i, j-1, k+1, 2)-
xd(i, j-&
9102 & 1, k-1, 2)+
xd(i, j, k+1, 2)-
xd(i, j, k-1, 2))
9103 ssy =
eighth*(
x(i-1, j-1, k+1, 2)-
x(i-1, j-1, k-1, 2)+
x(i-1, j&
9104 & , k+1, 2)-
x(i-1, j, k-1, 2)+
x(i, j-1, k+1, 2)-
x(i, j-1, k-1&
9105 & , 2)+
x(i, j, k+1, 2)-
x(i, j, k-1, 2))
9106 sszd =
eighth*(
xd(i-1, j-1, k+1, 3)-
xd(i-1, j-1, k-1, 3)+
xd(i-&
9107 & 1, j, k+1, 3)-
xd(i-1, j, k-1, 3)+
xd(i, j-1, k+1, 3)-
xd(i, j-&
9108 & 1, k-1, 3)+
xd(i, j, k+1, 3)-
xd(i, j, k-1, 3))
9109 ssz =
eighth*(
x(i-1, j-1, k+1, 3)-
x(i-1, j-1, k-1, 3)+
x(i-1, j&
9110 & , k+1, 3)-
x(i-1, j, k-1, 3)+
x(i, j-1, k+1, 3)-
x(i, j-1, k-1&
9111 & , 3)+
x(i, j, k+1, 3)-
x(i, j, k-1, 3))
9113 temp7 =
one/(ssx*ssx+ssy*ssy+ssz*ssz)
9114 ssd = -(temp7*(2*ssx*ssxd+2*ssy*ssyd+2*ssz*sszd)/(ssx**2+ssy**&
9117 ssxd = ssx*ssd + ss*ssxd
9119 ssyd = ssy*ssd + ss*ssyd
9121 sszd = ssz*ssd + ss*sszd
9125 dd =
w(i, j, k+1,
ivx) -
w(i, j, k,
ivx)
9126 u_xd = ssx*ddd + dd*ssxd
9128 u_yd = ssy*ddd + dd*ssyd
9130 u_zd = ssz*ddd + dd*sszd
9133 dd =
w(i, j, k+1,
ivy) -
w(i, j, k,
ivy)
9134 v_xd = ssx*ddd + dd*ssxd
9136 v_yd = ssy*ddd + dd*ssyd
9138 v_zd = ssz*ddd + dd*sszd
9141 dd =
w(i, j, k+1,
ivz) -
w(i, j, k,
ivz)
9142 w_xd = ssx*ddd + dd*ssxd
9144 w_yd = ssy*ddd + dd*ssyd
9146 w_zd = ssz*ddd + dd*sszd
9148 ddd =
aad(i, j, k+1) -
aad(i, j, k)
9149 dd =
aa(i, j, k+1) -
aa(i, j, k)
9150 q_xd = -(ssx*ddd+dd*ssxd)
9152 q_yd = -(ssy*ddd+dd*ssyd)
9154 q_zd = -(ssz*ddd+dd*sszd)
9162 muld = por*(
rlvd(i, j, k)+
rlvd(i, j, k+1))
9163 mul = por*(
rlv(i, j, k)+
rlv(i, j, k+1))
9165 mued = por*(
revd(i, j, k)+
revd(i, j, k+1))
9166 mue = por*(
rev(i, j, k)+
rev(i, j, k+1))
9173 heatcoefd = factlamheat*muld + factturbheat*mued
9174 heatcoef = mul*factlamheat + mue*factturbheat
9176 fracdivd = twothird*(u_xd+v_yd+w_zd)
9177 fracdiv = twothird*(u_x+v_y+w_z)
9178 tauxxd = (
two*u_x-fracdiv)*mutd + mut*(
two*u_xd-fracdivd)
9179 tauxx = mut*(
two*u_x-fracdiv)
9180 tauyyd = (
two*v_y-fracdiv)*mutd + mut*(
two*v_yd-fracdivd)
9181 tauyy = mut*(
two*v_y-fracdiv)
9182 tauzzd = (
two*w_z-fracdiv)*mutd + mut*(
two*w_zd-fracdivd)
9183 tauzz = mut*(
two*w_z-fracdiv)
9184 tauxyd = (u_y+v_x)*mutd + mut*(u_yd+v_xd)
9185 tauxy = mut*(u_y+v_x)
9186 tauxzd = (u_z+w_x)*mutd + mut*(u_zd+w_xd)
9187 tauxz = mut*(u_z+w_x)
9188 tauyzd = (v_z+w_y)*mutd + mut*(v_zd+w_yd)
9189 tauyz = mut*(v_z+w_y)
9190 q_xd = q_x*heatcoefd + heatcoef*q_xd
9192 q_yd = q_y*heatcoefd + heatcoef*q_yd
9194 q_zd = q_z*heatcoefd + heatcoef*q_zd
9205 temp7 =
sk(i, j, k, 1)
9206 temp6 =
sk(i, j, k, 2)
9207 temp5 =
sk(i, j, k, 3)
9208 fmxd = temp7*tauxxd + tauxx*
skd(i, j, k, 1) + temp6*tauxyd + &
9209 & tauxy*
skd(i, j, k, 2) + temp5*tauxzd + tauxz*
skd(i, j, k, 3)
9210 fmx = tauxx*temp7 + tauxy*temp6 + tauxz*temp5
9211 temp7 =
sk(i, j, k, 1)
9212 temp6 =
sk(i, j, k, 2)
9213 temp5 =
sk(i, j, k, 3)
9214 fmyd = temp7*tauxyd + tauxy*
skd(i, j, k, 1) + temp6*tauyyd + &
9215 & tauyy*
skd(i, j, k, 2) + temp5*tauyzd + tauyz*
skd(i, j, k, 3)
9216 fmy = tauxy*temp7 + tauyy*temp6 + tauyz*temp5
9217 temp7 =
sk(i, j, k, 1)
9218 temp6 =
sk(i, j, k, 2)
9219 temp5 =
sk(i, j, k, 3)
9220 fmzd = temp7*tauxzd + tauxz*
skd(i, j, k, 1) + temp6*tauyzd + &
9221 & tauyz*
skd(i, j, k, 2) + temp5*tauzzd + tauzz*
skd(i, j, k, 3)
9222 fmz = tauxz*temp7 + tauyz*temp6 + tauzz*temp5
9223 temp7 =
sk(i, j, k, 1)
9224 temp6 = ubar*tauxx + vbar*tauxy + wbar*tauxz
9225 temp5 =
sk(i, j, k, 2)
9226 temp4 = ubar*tauxy + vbar*tauyy + wbar*tauyz
9227 temp3 =
sk(i, j, k, 3)
9228 temp2 = ubar*tauxz + vbar*tauyz + wbar*tauzz
9229 temp1 =
sk(i, j, k, 1)
9230 temp0 =
sk(i, j, k, 2)
9231 temp =
sk(i, j, k, 3)
9232 frhoed = temp7*(tauxx*ubard+ubar*tauxxd+tauxy*vbard+vbar*&
9233 & tauxyd+tauxz*wbard+wbar*tauxzd) + (temp6-q_x)*
skd(i, j, k, 1&
9234 & ) + temp5*(tauxy*ubard+ubar*tauxyd+tauyy*vbard+vbar*tauyyd+&
9235 & tauyz*wbard+wbar*tauyzd) + (temp4-q_y)*
skd(i, j, k, 2) + &
9236 & temp3*(tauxz*ubard+ubar*tauxzd+tauyz*vbard+vbar*tauyzd+tauzz&
9237 & *wbard+wbar*tauzzd) + (temp2-q_z)*
skd(i, j, k, 3) - temp1*&
9238 & q_xd - temp0*q_yd - temp*q_zd
9239 frhoe = temp6*temp7 + temp4*temp5 + temp2*temp3 - q_x*temp1 - &
9240 & q_y*temp0 - q_z*temp
9251 fw(i, j, k+1,
imx) =
fw(i, j, k+1,
imx) + fmx
9253 fw(i, j, k+1,
imy) =
fw(i, j, k+1,
imy) + fmy
9255 fw(i, j, k+1,
imz) =
fw(i, j, k+1,
imz) + fmz
9273 real(kind=realtype),
parameter :: twothird=
two*
third
9277 integer(kind=inttype) :: i, j, k
9278 integer(kind=inttype) :: ii, jj, kk
9279 real(kind=realtype) :: rfilv, por, mul, mue, mut, heatcoef
9280 real(kind=realtype) :: gm1, factlamheat, factturbheat
9281 real(kind=realtype) :: u_x, u_y, u_z, v_x, v_y, v_z, w_x, w_y, w_z
9282 real(kind=realtype) :: q_x, q_y, q_z, ubar, vbar, wbar
9283 real(kind=realtype) :: corr, ssx, ssy, ssz, ss, fracdiv
9284 real(kind=realtype) :: tauxx, tauyy, tauzz
9285 real(kind=realtype) :: tauxy, tauxz, tauyz
9286 real(kind=realtype) :: fmx, fmy, fmz, frhoe
9287 real(kind=realtype) :: dd
9288 logical :: correctfork
9296 ssx =
eighth*(
x(i+1, j-1, k-1, 1)-
x(i-1, j-1, k-1, 1)+
x(i+1, j&
9297 & -1, k, 1)-
x(i-1, j-1, k, 1)+
x(i+1, j, k-1, 1)-
x(i-1, j, k-1&
9298 & , 1)+
x(i+1, j, k, 1)-
x(i-1, j, k, 1))
9299 ssy =
eighth*(
x(i+1, j-1, k-1, 2)-
x(i-1, j-1, k-1, 2)+
x(i+1, j&
9300 & -1, k, 2)-
x(i-1, j-1, k, 2)+
x(i+1, j, k-1, 2)-
x(i-1, j, k-1&
9301 & , 2)+
x(i+1, j, k, 2)-
x(i-1, j, k, 2))
9302 ssz =
eighth*(
x(i+1, j-1, k-1, 3)-
x(i-1, j-1, k-1, 3)+
x(i+1, j&
9303 & -1, k, 3)-
x(i-1, j-1, k, 3)+
x(i+1, j, k-1, 3)-
x(i-1, j, k-1&
9304 & , 3)+
x(i+1, j, k, 3)-
x(i-1, j, k, 3))
9306 ss =
one/(ssx*ssx+ssy*ssy+ssz*ssz)
9311 dd =
w(i+1, j, k,
ivx) -
w(i, j, k,
ivx)
9315 dd =
w(i+1, j, k,
ivy) -
w(i, j, k,
ivy)
9319 dd =
w(i+1, j, k,
ivz) -
w(i, j, k,
ivz)
9323 dd =
aa(i+1, j, k) -
aa(i, j, k)
9333 mul = por*(
rlv(i, j, k)+
rlv(i+1, j, k))
9339 heatcoef = mul*factlamheat + mue*factturbheat
9341 fracdiv = twothird*(u_x+v_y+w_z)
9342 tauxx = mut*(
two*u_x-fracdiv)
9343 tauyy = mut*(
two*v_y-fracdiv)
9344 tauzz = mut*(
two*w_z-fracdiv)
9345 tauxy = mut*(u_y+v_x)
9346 tauxz = mut*(u_z+w_x)
9347 tauyz = mut*(v_z+w_y)
9357 fmx = tauxx*
si(i, j, k, 1) + tauxy*
si(i, j, k, 2) + tauxz*
si(i&
9359 fmy = tauxy*
si(i, j, k, 1) + tauyy*
si(i, j, k, 2) + tauyz*
si(i&
9361 fmz = tauxz*
si(i, j, k, 1) + tauyz*
si(i, j, k, 2) + tauzz*
si(i&
9363 frhoe = (ubar*tauxx+vbar*tauxy+wbar*tauxz)*
si(i, j, k, 1) + (&
9364 & ubar*tauxy+vbar*tauyy+wbar*tauyz)*
si(i, j, k, 2) + (ubar*&
9365 & tauxz+vbar*tauyz+wbar*tauzz)*
si(i, j, k, 3) - q_x*
si(i, j, k&
9366 & , 1) - q_y*
si(i, j, k, 2) - q_z*
si(i, j, k, 3)
9372 fw(i+1, j, k,
imx) =
fw(i+1, j, k,
imx) + fmx
9373 fw(i+1, j, k,
imy) =
fw(i+1, j, k,
imy) + fmy
9374 fw(i+1, j, k,
imz) =
fw(i+1, j, k,
imz) + fmz
9384 ssx =
eighth*(
x(i-1, j+1, k-1, 1)-
x(i-1, j-1, k-1, 1)+
x(i-1, j&
9385 & +1, k, 1)-
x(i-1, j-1, k, 1)+
x(i, j+1, k-1, 1)-
x(i, j-1, k-1&
9386 & , 1)+
x(i, j+1, k, 1)-
x(i, j-1, k, 1))
9387 ssy =
eighth*(
x(i-1, j+1, k-1, 2)-
x(i-1, j-1, k-1, 2)+
x(i-1, j&
9388 & +1, k, 2)-
x(i-1, j-1, k, 2)+
x(i, j+1, k-1, 2)-
x(i, j-1, k-1&
9389 & , 2)+
x(i, j+1, k, 2)-
x(i, j-1, k, 2))
9390 ssz =
eighth*(
x(i-1, j+1, k-1, 3)-
x(i-1, j-1, k-1, 3)+
x(i-1, j&
9391 & +1, k, 3)-
x(i-1, j-1, k, 3)+
x(i, j+1, k-1, 3)-
x(i, j-1, k-1&
9392 & , 3)+
x(i, j+1, k, 3)-
x(i, j-1, k, 3))
9394 ss =
one/(ssx*ssx+ssy*ssy+ssz*ssz)
9399 dd =
w(i, j+1, k,
ivx) -
w(i, j, k,
ivx)
9403 dd =
w(i, j+1, k,
ivy) -
w(i, j, k,
ivy)
9407 dd =
w(i, j+1, k,
ivz) -
w(i, j, k,
ivz)
9411 dd =
aa(i, j+1, k) -
aa(i, j, k)
9421 mul = por*(
rlv(i, j, k)+
rlv(i, j+1, k))
9427 heatcoef = mul*factlamheat + mue*factturbheat
9429 fracdiv = twothird*(u_x+v_y+w_z)
9430 tauxx = mut*(
two*u_x-fracdiv)
9431 tauyy = mut*(
two*v_y-fracdiv)
9432 tauzz = mut*(
two*w_z-fracdiv)
9433 tauxy = mut*(u_y+v_x)
9434 tauxz = mut*(u_z+w_x)
9435 tauyz = mut*(v_z+w_y)
9445 fmx = tauxx*
sj(i, j, k, 1) + tauxy*
sj(i, j, k, 2) + tauxz*
sj(i&
9447 fmy = tauxy*
sj(i, j, k, 1) + tauyy*
sj(i, j, k, 2) + tauyz*
sj(i&
9449 fmz = tauxz*
sj(i, j, k, 1) + tauyz*
sj(i, j, k, 2) + tauzz*
sj(i&
9451 frhoe = (ubar*tauxx+vbar*tauxy+wbar*tauxz)*
sj(i, j, k, 1) + (&
9452 & ubar*tauxy+vbar*tauyy+wbar*tauyz)*
sj(i, j, k, 2) + (ubar*&
9453 & tauxz+vbar*tauyz+wbar*tauzz)*
sj(i, j, k, 3) - q_x*
sj(i, j, k&
9454 & , 1) - q_y*
sj(i, j, k, 2) - q_z*
sj(i, j, k, 3)
9460 fw(i, j+1, k,
imx) =
fw(i, j+1, k,
imx) + fmx
9461 fw(i, j+1, k,
imy) =
fw(i, j+1, k,
imy) + fmy
9462 fw(i, j+1, k,
imz) =
fw(i, j+1, k,
imz) + fmz
9472 ssx =
eighth*(
x(i-1, j-1, k+1, 1)-
x(i-1, j-1, k-1, 1)+
x(i-1, j&
9473 & , k+1, 1)-
x(i-1, j, k-1, 1)+
x(i, j-1, k+1, 1)-
x(i, j-1, k-1&
9474 & , 1)+
x(i, j, k+1, 1)-
x(i, j, k-1, 1))
9475 ssy =
eighth*(
x(i-1, j-1, k+1, 2)-
x(i-1, j-1, k-1, 2)+
x(i-1, j&
9476 & , k+1, 2)-
x(i-1, j, k-1, 2)+
x(i, j-1, k+1, 2)-
x(i, j-1, k-1&
9477 & , 2)+
x(i, j, k+1, 2)-
x(i, j, k-1, 2))
9478 ssz =
eighth*(
x(i-1, j-1, k+1, 3)-
x(i-1, j-1, k-1, 3)+
x(i-1, j&
9479 & , k+1, 3)-
x(i-1, j, k-1, 3)+
x(i, j-1, k+1, 3)-
x(i, j-1, k-1&
9480 & , 3)+
x(i, j, k+1, 3)-
x(i, j, k-1, 3))
9482 ss =
one/(ssx*ssx+ssy*ssy+ssz*ssz)
9487 dd =
w(i, j, k+1,
ivx) -
w(i, j, k,
ivx)
9491 dd =
w(i, j, k+1,
ivy) -
w(i, j, k,
ivy)
9495 dd =
w(i, j, k+1,
ivz) -
w(i, j, k,
ivz)
9499 dd =
aa(i, j, k+1) -
aa(i, j, k)
9509 mul = por*(
rlv(i, j, k)+
rlv(i, j, k+1))
9515 heatcoef = mul*factlamheat + mue*factturbheat
9517 fracdiv = twothird*(u_x+v_y+w_z)
9518 tauxx = mut*(
two*u_x-fracdiv)
9519 tauyy = mut*(
two*v_y-fracdiv)
9520 tauzz = mut*(
two*w_z-fracdiv)
9521 tauxy = mut*(u_y+v_x)
9522 tauxz = mut*(u_z+w_x)
9523 tauyz = mut*(v_z+w_y)
9533 fmx = tauxx*
sk(i, j, k, 1) + tauxy*
sk(i, j, k, 2) + tauxz*
sk(i&
9535 fmy = tauxy*
sk(i, j, k, 1) + tauyy*
sk(i, j, k, 2) + tauyz*
sk(i&
9537 fmz = tauxz*
sk(i, j, k, 1) + tauyz*
sk(i, j, k, 2) + tauzz*
sk(i&
9539 frhoe = (ubar*tauxx+vbar*tauxy+wbar*tauxz)*
sk(i, j, k, 1) + (&
9540 & ubar*tauxy+vbar*tauyy+wbar*tauyz)*
sk(i, j, k, 2) + (ubar*&
9541 & tauxz+vbar*tauyz+wbar*tauzz)*
sk(i, j, k, 3) - q_x*
sk(i, j, k&
9542 & , 1) - q_y*
sk(i, j, k, 2) - q_z*
sk(i, j, k, 3)
9548 fw(i, j, k+1,
imx) =
fw(i, j, k+1,
imx) + fmx
9549 fw(i, j, k+1,
imy) =
fw(i, j, k+1,
imy) + fmy
9550 fw(i, j, k+1,
imz) =
fw(i, j, k+1,
imz) + fmz
9585 real(kind=realtype),
parameter :: dssmax=0.25_realtype
9589 integer(kind=inttype) :: i, j, k, ind
9590 real(kind=realtype) :: sslim, rhoi
9591 real(kind=realtype) :: sslimd, rhoid
9592 real(kind=realtype) :: sfil, fis2, fis4
9593 real(kind=realtype) :: ppor, rrad, dis2
9594 real(kind=realtype) :: rradd, dis2d
9595 real(kind=realtype) :: dss1, dss2, ddw, fs
9596 real(kind=realtype) :: dss1d, dss2d, ddwd, fsd
9602 real(kind=realtype) :: x1
9603 real(kind=realtype) :: x1d
9604 real(kind=realtype) :: x2
9605 real(kind=realtype) :: x2d
9606 real(kind=realtype) :: y1
9607 real(kind=realtype) :: y1d
9608 real(kind=realtype) :: x3
9609 real(kind=realtype) :: x3d
9610 real(kind=realtype) :: x4
9611 real(kind=realtype) :: x4d
9612 real(kind=realtype) :: y2
9613 real(kind=realtype) :: y2d
9614 real(kind=realtype) :: x5
9615 real(kind=realtype) :: x5d
9616 real(kind=realtype) :: x6
9617 real(kind=realtype) :: x6d
9618 real(kind=realtype) :: y3
9619 real(kind=realtype) :: y3d
9620 real(kind=realtype) :: abs0
9621 real(kind=realtype) :: min1
9622 real(kind=realtype) :: min1d
9623 real(kind=realtype) :: min2
9624 real(kind=realtype) :: min2d
9625 real(kind=realtype) :: min3
9626 real(kind=realtype) :: min3d
9627 real(kind=realtype) :: arg1
9628 real(kind=realtype) :: temp
9629 real(kind=realtype) :: tempd
9630 real(kind=realtype) :: temp0
9631 if (
rfil .ge. 0.)
then
9666 sslim = 0.001_realtype*(
pinfcorr/temp)
9694 temp =
w(i, j, k,
ivx)
9695 temp0 =
w(i, j, k,
irho)
9696 wd(i, j, k,
ivx) = temp*
wd(i, j, k,
irho) + temp0*
wd(i, j, k&
9698 w(i, j, k,
ivx) = temp0*temp
9699 temp0 =
w(i, j, k,
ivy)
9700 temp =
w(i, j, k,
irho)
9701 wd(i, j, k,
ivy) = temp0*
wd(i, j, k,
irho) + temp*
wd(i, j, k&
9703 w(i, j, k,
ivy) = temp*temp0
9704 temp0 =
w(i, j, k,
ivz)
9705 temp =
w(i, j, k,
irho)
9706 wd(i, j, k,
ivz) = temp0*
wd(i, j, k,
irho) + temp*
wd(i, j, k&
9708 w(i, j, k,
ivz) = temp*temp0
9716 temp0 =
w(0, j, k,
ivx)
9717 temp =
w(0, j, k,
irho)
9718 wd(0, j, k,
ivx) = temp0*
wd(0, j, k,
irho) + temp*
wd(0, j, k, &
9720 w(0, j, k,
ivx) = temp*temp0
9721 temp0 =
w(0, j, k,
ivy)
9722 temp =
w(0, j, k,
irho)
9723 wd(0, j, k,
ivy) = temp0*
wd(0, j, k,
irho) + temp*
wd(0, j, k, &
9725 w(0, j, k,
ivy) = temp*temp0
9726 temp0 =
w(0, j, k,
ivz)
9727 temp =
w(0, j, k,
irho)
9728 wd(0, j, k,
ivz) = temp0*
wd(0, j, k,
irho) + temp*
wd(0, j, k, &
9730 w(0, j, k,
ivz) = temp*temp0
9733 temp0 =
w(1, j, k,
ivx)
9734 temp =
w(1, j, k,
irho)
9735 wd(1, j, k,
ivx) = temp0*
wd(1, j, k,
irho) + temp*
wd(1, j, k, &
9737 w(1, j, k,
ivx) = temp*temp0
9738 temp0 =
w(1, j, k,
ivy)
9739 temp =
w(1, j, k,
irho)
9740 wd(1, j, k,
ivy) = temp0*
wd(1, j, k,
irho) + temp*
wd(1, j, k, &
9742 w(1, j, k,
ivy) = temp*temp0
9743 temp0 =
w(1, j, k,
ivz)
9744 temp =
w(1, j, k,
irho)
9745 wd(1, j, k,
ivz) = temp0*
wd(1, j, k,
irho) + temp*
wd(1, j, k, &
9747 w(1, j, k,
ivz) = temp*temp0
9754 w(
ie, j, k,
ivx) = temp*temp0
9759 w(
ie, j, k,
ivy) = temp*temp0
9764 w(
ie, j, k,
ivz) = temp*temp0
9771 w(
ib, j, k,
ivx) = temp*temp0
9776 w(
ib, j, k,
ivy) = temp*temp0
9781 w(
ib, j, k,
ivz) = temp*temp0
9788 temp0 =
w(i, 0, k,
ivx)
9789 temp =
w(i, 0, k,
irho)
9790 wd(i, 0, k,
ivx) = temp0*
wd(i, 0, k,
irho) + temp*
wd(i, 0, k, &
9792 w(i, 0, k,
ivx) = temp*temp0
9793 temp0 =
w(i, 0, k,
ivy)
9794 temp =
w(i, 0, k,
irho)
9795 wd(i, 0, k,
ivy) = temp0*
wd(i, 0, k,
irho) + temp*
wd(i, 0, k, &
9797 w(i, 0, k,
ivy) = temp*temp0
9798 temp0 =
w(i, 0, k,
ivz)
9799 temp =
w(i, 0, k,
irho)
9800 wd(i, 0, k,
ivz) = temp0*
wd(i, 0, k,
irho) + temp*
wd(i, 0, k, &
9802 w(i, 0, k,
ivz) = temp*temp0
9805 temp0 =
w(i, 1, k,
ivx)
9806 temp =
w(i, 1, k,
irho)
9807 wd(i, 1, k,
ivx) = temp0*
wd(i, 1, k,
irho) + temp*
wd(i, 1, k, &
9809 w(i, 1, k,
ivx) = temp*temp0
9810 temp0 =
w(i, 1, k,
ivy)
9811 temp =
w(i, 1, k,
irho)
9812 wd(i, 1, k,
ivy) = temp0*
wd(i, 1, k,
irho) + temp*
wd(i, 1, k, &
9814 w(i, 1, k,
ivy) = temp*temp0
9815 temp0 =
w(i, 1, k,
ivz)
9816 temp =
w(i, 1, k,
irho)
9817 wd(i, 1, k,
ivz) = temp0*
wd(i, 1, k,
irho) + temp*
wd(i, 1, k, &
9819 w(i, 1, k,
ivz) = temp*temp0
9826 w(i,
je, k,
ivx) = temp*temp0
9831 w(i,
je, k,
ivy) = temp*temp0
9836 w(i,
je, k,
ivz) = temp*temp0
9843 w(i,
jb, k,
ivx) = temp*temp0
9848 w(i,
jb, k,
ivy) = temp*temp0
9853 w(i,
jb, k,
ivz) = temp*temp0
9888 if (x1 .ge. 0.)
then
9903 if (x2 .ge. 0.)
then
9913 rradd = ppor*(
radid(i, j, k)+
radid(i+1, j, k))
9914 rrad = ppor*(
radi(i, j, k)+
radi(i+1, j, k))
9915 if (dss1 .lt. dss2)
then
9922 if (dssmax .gt. y1)
then
9934 dis2d = fis2*(min1*rradd+rrad*min1d) +
sigma*fis4*rradd
9935 dis2 = fis2*rrad*min1 +
sigma*fis4*rrad
9941 fsd = ddw*dis2d + dis2*ddwd
9949 ddw =
w(i+1, j, k,
ivx) -
w(i, j, k,
ivx)
9950 fsd = ddw*dis2d + dis2*ddwd
9958 ddw =
w(i+1, j, k,
ivy) -
w(i, j, k,
ivy)
9959 fsd = ddw*dis2d + dis2*ddwd
9967 ddw =
w(i+1, j, k,
ivz) -
w(i, j, k,
ivz)
9968 fsd = ddw*dis2d + dis2*ddwd
9977 fsd = ddw*dis2d + dis2*ddwd
10000 if (x3 .ge. 0.)
then
10015 if (x4 .ge. 0.)
then
10025 rradd = ppor*(
radjd(i, j, k)+
radjd(i, j+1, k))
10026 rrad = ppor*(
radj(i, j, k)+
radj(i, j+1, k))
10027 if (dss1 .lt. dss2)
then
10034 if (dssmax .gt. y2)
then
10042 dis2d = fis2*(min2*rradd+rrad*min2d) +
sigma*fis4*rradd
10043 dis2 = fis2*rrad*min2 +
sigma*fis4*rrad
10049 fsd = ddw*dis2d + dis2*ddwd
10056 ddwd =
wd(i, j+1, k,
ivx) -
wd(i, j, k,
ivx)
10057 ddw =
w(i, j+1, k,
ivx) -
w(i, j, k,
ivx)
10058 fsd = ddw*dis2d + dis2*ddwd
10061 fw(i, j+1, k,
imx) =
fw(i, j+1, k,
imx) + fs
10065 ddwd =
wd(i, j+1, k,
ivy) -
wd(i, j, k,
ivy)
10066 ddw =
w(i, j+1, k,
ivy) -
w(i, j, k,
ivy)
10067 fsd = ddw*dis2d + dis2*ddwd
10070 fw(i, j+1, k,
imy) =
fw(i, j+1, k,
imy) + fs
10074 ddwd =
wd(i, j+1, k,
ivz) -
wd(i, j, k,
ivz)
10075 ddw =
w(i, j+1, k,
ivz) -
w(i, j, k,
ivz)
10076 fsd = ddw*dis2d + dis2*ddwd
10079 fw(i, j+1, k,
imz) =
fw(i, j+1, k,
imz) + fs
10085 fsd = ddw*dis2d + dis2*ddwd
10108 if (x5 .ge. 0.)
then
10123 if (x6 .ge. 0.)
then
10133 rradd = ppor*(
radkd(i, j, k)+
radkd(i, j, k+1))
10134 rrad = ppor*(
radk(i, j, k)+
radk(i, j, k+1))
10135 if (dss1 .lt. dss2)
then
10142 if (dssmax .gt. y3)
then
10150 dis2d = fis2*(min3*rradd+rrad*min3d) +
sigma*fis4*rradd
10151 dis2 = fis2*rrad*min3 +
sigma*fis4*rrad
10157 fsd = ddw*dis2d + dis2*ddwd
10164 ddwd =
wd(i, j, k+1,
ivx) -
wd(i, j, k,
ivx)
10165 ddw =
w(i, j, k+1,
ivx) -
w(i, j, k,
ivx)
10166 fsd = ddw*dis2d + dis2*ddwd
10169 fw(i, j, k+1,
imx) =
fw(i, j, k+1,
imx) + fs
10173 ddwd =
wd(i, j, k+1,
ivy) -
wd(i, j, k,
ivy)
10174 ddw =
w(i, j, k+1,
ivy) -
w(i, j, k,
ivy)
10175 fsd = ddw*dis2d + dis2*ddwd
10178 fw(i, j, k+1,
imy) =
fw(i, j, k+1,
imy) + fs
10182 ddwd =
wd(i, j, k+1,
ivz) -
wd(i, j, k,
ivz)
10183 ddw =
w(i, j, k+1,
ivz) -
w(i, j, k,
ivz)
10184 fsd = ddw*dis2d + dis2*ddwd
10187 fw(i, j, k+1,
imz) =
fw(i, j, k+1,
imz) + fs
10193 fsd = ddw*dis2d + dis2*ddwd
10213 rhoid = -(temp0*
wd(i, j, k,
irho)/
w(i, j, k,
irho))
10215 temp0 =
w(i, j, k,
ivx)
10216 wd(i, j, k,
ivx) = rhoi*
wd(i, j, k,
ivx) + temp0*rhoid
10217 w(i, j, k,
ivx) = temp0*rhoi
10218 temp0 =
w(i, j, k,
ivy)
10219 wd(i, j, k,
ivy) = rhoi*
wd(i, j, k,
ivy) + temp0*rhoid
10220 w(i, j, k,
ivy) = temp0*rhoi
10221 temp0 =
w(i, j, k,
ivz)
10222 wd(i, j, k,
ivz) = rhoi*
wd(i, j, k,
ivz) + temp0*rhoid
10223 w(i, j, k,
ivz) = temp0*rhoi
10232 rhoid = -(temp0*
wd(0, j, k,
irho)/
w(0, j, k,
irho))
10234 temp0 =
w(0, j, k,
ivx)
10235 wd(0, j, k,
ivx) = rhoi*
wd(0, j, k,
ivx) + temp0*rhoid
10236 w(0, j, k,
ivx) = temp0*rhoi
10237 temp0 =
w(0, j, k,
ivy)
10238 wd(0, j, k,
ivy) = rhoi*
wd(0, j, k,
ivy) + temp0*rhoid
10239 w(0, j, k,
ivy) = temp0*rhoi
10240 temp0 =
w(0, j, k,
ivz)
10241 wd(0, j, k,
ivz) = rhoi*
wd(0, j, k,
ivz) + temp0*rhoid
10242 w(0, j, k,
ivz) = temp0*rhoi
10246 rhoid = -(temp0*
wd(1, j, k,
irho)/
w(1, j, k,
irho))
10248 temp0 =
w(1, j, k,
ivx)
10249 wd(1, j, k,
ivx) = rhoi*
wd(1, j, k,
ivx) + temp0*rhoid
10250 w(1, j, k,
ivx) = temp0*rhoi
10251 temp0 =
w(1, j, k,
ivy)
10252 wd(1, j, k,
ivy) = rhoi*
wd(1, j, k,
ivy) + temp0*rhoid
10253 w(1, j, k,
ivy) = temp0*rhoi
10254 temp0 =
w(1, j, k,
ivz)
10255 wd(1, j, k,
ivz) = rhoi*
wd(1, j, k,
ivz) + temp0*rhoid
10256 w(1, j, k,
ivz) = temp0*rhoi
10262 temp0 =
w(
ie, j, k,
ivx)
10264 w(
ie, j, k,
ivx) = temp0*rhoi
10265 temp0 =
w(
ie, j, k,
ivy)
10267 w(
ie, j, k,
ivy) = temp0*rhoi
10268 temp0 =
w(
ie, j, k,
ivz)
10270 w(
ie, j, k,
ivz) = temp0*rhoi
10276 temp0 =
w(
ib, j, k,
ivx)
10278 w(
ib, j, k,
ivx) = temp0*rhoi
10279 temp0 =
w(
ib, j, k,
ivy)
10281 w(
ib, j, k,
ivy) = temp0*rhoi
10282 temp0 =
w(
ib, j, k,
ivz)
10284 w(
ib, j, k,
ivz) = temp0*rhoi
10292 rhoid = -(temp0*
wd(i, 0, k,
irho)/
w(i, 0, k,
irho))
10294 temp0 =
w(i, 0, k,
ivx)
10295 wd(i, 0, k,
ivx) = rhoi*
wd(i, 0, k,
ivx) + temp0*rhoid
10296 w(i, 0, k,
ivx) = temp0*rhoi
10297 temp0 =
w(i, 0, k,
ivy)
10298 wd(i, 0, k,
ivy) = rhoi*
wd(i, 0, k,
ivy) + temp0*rhoid
10299 w(i, 0, k,
ivy) = temp0*rhoi
10300 temp0 =
w(i, 0, k,
ivz)
10301 wd(i, 0, k,
ivz) = rhoi*
wd(i, 0, k,
ivz) + temp0*rhoid
10302 w(i, 0, k,
ivz) = temp0*rhoi
10306 rhoid = -(temp0*
wd(i, 1, k,
irho)/
w(i, 1, k,
irho))
10308 temp0 =
w(i, 1, k,
ivx)
10309 wd(i, 1, k,
ivx) = rhoi*
wd(i, 1, k,
ivx) + temp0*rhoid
10310 w(i, 1, k,
ivx) = temp0*rhoi
10311 temp0 =
w(i, 1, k,
ivy)
10312 wd(i, 1, k,
ivy) = rhoi*
wd(i, 1, k,
ivy) + temp0*rhoid
10313 w(i, 1, k,
ivy) = temp0*rhoi
10314 temp0 =
w(i, 1, k,
ivz)
10315 wd(i, 1, k,
ivz) = rhoi*
wd(i, 1, k,
ivz) + temp0*rhoid
10316 w(i, 1, k,
ivz) = temp0*rhoi
10322 temp0 =
w(i,
je, k,
ivx)
10324 w(i,
je, k,
ivx) = temp0*rhoi
10325 temp0 =
w(i,
je, k,
ivy)
10327 w(i,
je, k,
ivy) = temp0*rhoi
10328 temp0 =
w(i,
je, k,
ivz)
10330 w(i,
je, k,
ivz) = temp0*rhoi
10336 temp0 =
w(i,
jb, k,
ivx)
10338 w(i,
jb, k,
ivx) = temp0*rhoi
10339 temp0 =
w(i,
jb, k,
ivy)
10341 w(i,
jb, k,
ivy) = temp0*rhoi
10342 temp0 =
w(i,
jb, k,
ivz)
10344 w(i,
jb, k,
ivz) = temp0*rhoi
10372 real(kind=realtype),
parameter :: dssmax=0.25_realtype
10376 integer(kind=inttype) :: i, j, k, ind
10377 real(kind=realtype) :: sslim, rhoi
10378 real(kind=realtype) :: sfil, fis2, fis4
10379 real(kind=realtype) :: ppor, rrad, dis2
10380 real(kind=realtype) :: dss1, dss2, ddw, fs
10386 real(kind=realtype) :: x1
10387 real(kind=realtype) :: x2
10388 real(kind=realtype) :: y1
10389 real(kind=realtype) :: x3
10390 real(kind=realtype) :: x4
10391 real(kind=realtype) :: y2
10392 real(kind=realtype) :: x5
10393 real(kind=realtype) :: x6
10394 real(kind=realtype) :: y3
10395 real(kind=realtype) :: abs0
10396 real(kind=realtype) :: min1
10397 real(kind=realtype) :: min2
10398 real(kind=realtype) :: min3
10399 real(kind=realtype) :: arg1
10400 if (
rfil .ge. 0.)
then
10521 if (x1 .ge. 0.)
then
10531 if (x2 .ge. 0.)
then
10539 rrad = ppor*(
radi(i, j, k)+
radi(i+1, j, k))
10540 if (dss1 .lt. dss2)
then
10545 if (dssmax .gt. y1)
then
10555 dis2 = fis2*rrad*min1 +
sigma*fis4*rrad
10564 ddw =
w(i+1, j, k,
ivx) -
w(i, j, k,
ivx)
10566 fw(i+1, j, k,
imx) =
fw(i+1, j, k,
imx) + fs
10569 ddw =
w(i+1, j, k,
ivy) -
w(i, j, k,
ivy)
10571 fw(i+1, j, k,
imy) =
fw(i+1, j, k,
imy) + fs
10574 ddw =
w(i+1, j, k,
ivz) -
w(i, j, k,
ivz)
10576 fw(i+1, j, k,
imz) =
fw(i+1, j, k,
imz) + fs
10596 if (x3 .ge. 0.)
then
10606 if (x4 .ge. 0.)
then
10614 rrad = ppor*(
radj(i, j, k)+
radj(i, j+1, k))
10615 if (dss1 .lt. dss2)
then
10620 if (dssmax .gt. y2)
then
10626 dis2 = fis2*rrad*min2 +
sigma*fis4*rrad
10635 ddw =
w(i, j+1, k,
ivx) -
w(i, j, k,
ivx)
10637 fw(i, j+1, k,
imx) =
fw(i, j+1, k,
imx) + fs
10640 ddw =
w(i, j+1, k,
ivy) -
w(i, j, k,
ivy)
10642 fw(i, j+1, k,
imy) =
fw(i, j+1, k,
imy) + fs
10645 ddw =
w(i, j+1, k,
ivz) -
w(i, j, k,
ivz)
10647 fw(i, j+1, k,
imz) =
fw(i, j+1, k,
imz) + fs
10667 if (x5 .ge. 0.)
then
10677 if (x6 .ge. 0.)
then
10685 rrad = ppor*(
radk(i, j, k)+
radk(i, j, k+1))
10686 if (dss1 .lt. dss2)
then
10691 if (dssmax .gt. y3)
then
10697 dis2 = fis2*rrad*min3 +
sigma*fis4*rrad
10706 ddw =
w(i, j, k+1,
ivx) -
w(i, j, k,
ivx)
10708 fw(i, j, k+1,
imx) =
fw(i, j, k+1,
imx) + fs
10711 ddw =
w(i, j, k+1,
ivy) -
w(i, j, k,
ivy)
10713 fw(i, j, k+1,
imy) =
fw(i, j, k+1,
imy) + fs
10716 ddw =
w(i, j, k+1,
ivz) -
w(i, j, k,
ivz)
10718 fw(i, j, k+1,
imz) =
fw(i, j, k+1,
imz) + fs
10738 w(i, j, k,
ivx) =
w(i, j, k,
ivx)*rhoi
10739 w(i, j, k,
ivy) =
w(i, j, k,
ivy)*rhoi
10740 w(i, j, k,
ivz) =
w(i, j, k,
ivz)*rhoi
10748 w(0, j, k,
ivx) =
w(0, j, k,
ivx)*rhoi
10749 w(0, j, k,
ivy) =
w(0, j, k,
ivy)*rhoi
10750 w(0, j, k,
ivz) =
w(0, j, k,
ivz)*rhoi
10753 w(1, j, k,
ivx) =
w(1, j, k,
ivx)*rhoi
10754 w(1, j, k,
ivy) =
w(1, j, k,
ivy)*rhoi
10755 w(1, j, k,
ivz) =
w(1, j, k,
ivz)*rhoi
10772 w(i, 0, k,
ivx) =
w(i, 0, k,
ivx)*rhoi
10773 w(i, 0, k,
ivy) =
w(i, 0, k,
ivy)*rhoi
10774 w(i, 0, k,
ivz) =
w(i, 0, k,
ivz)*rhoi
10777 w(i, 1, k,
ivx) =
w(i, 1, k,
ivx)*rhoi
10778 w(i, 1, k,
ivy) =
w(i, 1, k,
ivy)*rhoi
10779 w(i, 1, k,
ivz) =
w(i, 1, k,
ivz)*rhoi
10825 real(kind=realtype),
parameter :: dpmax=0.25_realtype
10826 real(kind=realtype),
parameter :: epsacoustic=0.25_realtype
10827 real(kind=realtype),
parameter :: epsshear=0.025_realtype
10828 real(kind=realtype),
parameter :: omega=0.5_realtype
10829 real(kind=realtype),
parameter :: oneminomega=
one-omega
10833 integer(kind=inttype) :: i, j, k, ind
10834 real(kind=realtype) :: plim, sface
10835 real(kind=realtype) :: plimd, sfaced
10836 real(kind=realtype) :: sfil, fis2, fis4
10837 real(kind=realtype) :: gammaavg, gm1, ovgm1, gm53
10838 real(kind=realtype) :: ppor, rrad, dis2
10839 real(kind=realtype) :: rradd, dis2d
10840 real(kind=realtype) :: dp1, dp2, ddw, tmp, fs
10841 real(kind=realtype) :: dp1d, dp2d, ddwd, tmpd, fsd
10842 real(kind=realtype) :: dr, dru, drv, drw, dre, drk, sx, sy, sz
10843 real(kind=realtype) :: drd, drud, drvd, drwd, dred, drkd, sxd, syd, &
10845 real(kind=realtype) :: uavg, vavg, wavg, a2avg, aavg, havg
10846 real(kind=realtype) :: uavgd, vavgd, wavgd, a2avgd, aavgd, havgd
10847 real(kind=realtype) :: alphaavg, unavg, ovaavg, ova2avg
10848 real(kind=realtype) :: alphaavgd, unavgd, ovaavgd, ova2avgd
10849 real(kind=realtype) :: kavg, lam1, lam2, lam3, area
10850 real(kind=realtype) :: kavgd, lam1d, lam2d, lam3d, aread
10851 real(kind=realtype) :: abv1, abv2, abv3, abv4, abv5, abv6, abv7
10852 real(kind=realtype) :: abv1d, abv2d, abv3d, abv4d, abv5d, abv6d, &
10854 logical :: correctfork
10859 real(kind=realtype) :: x1
10860 real(kind=realtype) :: x1d
10861 real(kind=realtype) :: x2
10862 real(kind=realtype) :: x2d
10863 real(kind=realtype) :: y1
10864 real(kind=realtype) :: y1d
10865 real(kind=realtype) :: x3
10866 real(kind=realtype) :: x3d
10867 real(kind=realtype) :: x4
10868 real(kind=realtype) :: x4d
10869 real(kind=realtype) :: y2
10870 real(kind=realtype) :: y2d
10871 real(kind=realtype) :: x5
10872 real(kind=realtype) :: x5d
10873 real(kind=realtype) :: x6
10874 real(kind=realtype) :: x6d
10875 real(kind=realtype) :: y3
10876 real(kind=realtype) :: y3d
10877 real(kind=realtype) :: abs0
10878 real(kind=realtype) :: min1
10879 real(kind=realtype) :: min1d
10880 real(realtype) :: max1
10881 real(realtype) :: max1d
10882 real(kind=realtype) :: min2
10883 real(kind=realtype) :: min2d
10884 real(realtype) :: max2
10885 real(realtype) :: max2d
10886 real(kind=realtype) :: min3
10887 real(kind=realtype) :: min3d
10888 real(realtype) :: max3
10889 real(realtype) :: max3d
10890 real(kind=realtype) :: abs1
10891 real(kind=realtype) :: abs2
10892 real(kind=realtype) :: abs3
10893 real(kind=realtype) :: abs4
10894 real(kind=realtype) :: abs5
10895 real(kind=realtype) :: abs6
10896 real(kind=realtype) :: abs7
10897 real(kind=realtype) :: abs8
10898 real(kind=realtype) :: abs9
10899 real(kind=realtype) :: abs10
10900 real(kind=realtype) :: abs11
10901 real(kind=realtype) :: abs12
10902 real(kind=realtype) :: arg1
10903 real(kind=realtype) :: arg1d
10904 real(kind=realtype) :: temp
10905 real(kind=realtype) :: temp0
10906 real(kind=realtype) :: temp1
10907 real(kind=realtype) :: temp2
10908 real(kind=realtype) :: temp3
10909 if (
rfil .ge. 0.)
then
10977 if (x1 .ge. 0.)
then
11004 & abs2+abs8)+plim))
11006 if (x2 .ge. 0.)
then
11016 if (dp1 .lt. dp2)
then
11023 if (dpmax .gt. y1)
then
11030 dis2d = fis2*ppor*min1d
11031 dis2 = fis2*ppor*min1 +
sigma*fis4*ppor
11036 drd = ddw*dis2d + dis2*ddwd
11038 temp =
w(i+1, j, k,
ivx)
11039 temp0 =
w(i+1, j, k,
irho)
11040 temp1 =
w(i, j, k,
ivx)
11041 temp2 =
w(i, j, k,
irho)
11042 ddwd = temp*
wd(i+1, j, k,
irho) + temp0*
wd(i+1, j, k,
ivx) -&
11043 & temp1*
wd(i, j, k,
irho) - temp2*
wd(i, j, k,
ivx)
11044 ddw = temp0*temp - temp2*temp1
11045 drud = ddw*dis2d + dis2*ddwd
11047 temp2 =
w(i+1, j, k,
ivy)
11048 temp1 =
w(i+1, j, k,
irho)
11049 temp0 =
w(i, j, k,
ivy)
11050 temp =
w(i, j, k,
irho)
11051 ddwd = temp2*
wd(i+1, j, k,
irho) + temp1*
wd(i+1, j, k,
ivy) &
11052 & - temp0*
wd(i, j, k,
irho) - temp*
wd(i, j, k,
ivy)
11053 ddw = temp1*temp2 - temp*temp0
11054 drvd = ddw*dis2d + dis2*ddwd
11056 temp2 =
w(i+1, j, k,
ivz)
11057 temp1 =
w(i+1, j, k,
irho)
11058 temp0 =
w(i, j, k,
ivz)
11059 temp =
w(i, j, k,
irho)
11060 ddwd = temp2*
wd(i+1, j, k,
irho) + temp1*
wd(i+1, j, k,
ivz) &
11061 & - temp0*
wd(i, j, k,
irho) - temp*
wd(i, j, k,
ivz)
11062 ddw = temp1*temp2 - temp*temp0
11063 drwd = ddw*dis2d + dis2*ddwd
11067 dred = ddw*dis2d + dis2*ddwd
11073 if (correctfork)
then
11074 temp2 =
w(i+1, j, k,
itu1)
11075 temp1 =
w(i+1, j, k,
irho)
11076 temp0 =
w(i, j, k,
itu1)
11077 temp =
w(i, j, k,
irho)
11078 ddwd = temp2*
wd(i+1, j, k,
irho) + temp1*
wd(i+1, j, k, &
11080 ddw = temp1*temp2 - temp*temp0
11081 drkd = ddw*dis2d + dis2*ddwd
11094 gm1 = gammaavg -
one
11104 temp2 =
gamma(i+1, j, k)
11105 temp1 =
w(i+1, j, k,
irho)
11106 temp0 =
p(i+1, j, k)/temp1
11107 temp =
w(i, j, k,
irho)
11108 temp3 =
p(i, j, k)/temp
11109 a2avgd =
half*(temp2*(
pd(i+1, j, k)-temp0*
wd(i+1, j, k,
irho&
11110 & ))/temp1+
gamma(i, j, k)*(
pd(i, j, k)-temp3*
wd(i, j, k, &
11112 a2avg =
half*(temp2*temp0+
gamma(i, j, k)*temp3)
11113 sxd =
sid(i, j, k, 1)
11114 sx =
si(i, j, k, 1)
11115 syd =
sid(i, j, k, 2)
11116 sy =
si(i, j, k, 2)
11117 szd =
sid(i, j, k, 3)
11118 sz =
si(i, j, k, 3)
11119 arg1d = 2*sx*sxd + 2*sy*syd + 2*sz*szd
11120 arg1 = sx**2 + sy**2 + sz**2
11122 if (arg1 .eq. 0.0_8)
then
11125 aread = arg1d/(2.0*temp3)
11128 if (1.e-25_realtype .lt. area)
then
11132 max1 = 1.e-25_realtype
11135 tmpd = -(
one*max1d/max1**2)
11137 sxd = tmp*sxd + sx*tmpd
11139 syd = tmp*syd + sy*tmpd
11141 szd = tmp*szd + sz*tmpd
11143 alphaavgd =
half*(2*uavg*uavgd+2*vavg*vavgd+2*wavg*wavgd)
11144 alphaavg =
half*(uavg**2+vavg**2+wavg**2)
11145 havgd = alphaavgd + ovgm1*(a2avgd-gm53*kavgd)
11146 havg = alphaavg + ovgm1*(a2avg-gm53*kavg)
11147 temp3 = sqrt(a2avg)
11148 if (a2avg .eq. 0.0_8)
then
11151 aavgd = a2avgd/(2.0*temp3)
11154 unavgd = sx*uavgd + uavg*sxd + sy*vavgd + vavg*syd + sz*&
11156 unavg = uavg*sx + vavg*sy + wavg*sz
11157 ovaavgd = -(
one*aavgd/aavg**2)
11159 ova2avgd = -(
one*a2avgd/a2avg**2)
11160 ova2avg =
one/a2avg
11165 sface =
sfacei(i, j, k)*tmp
11167 if (unavg - sface + aavg .ge. 0.)
then
11168 lam1d = unavgd - sfaced + aavgd
11169 lam1 = unavg - sface + aavg
11171 lam1d = sfaced - unavgd - aavgd
11172 lam1 = -(unavg-sface+aavg)
11174 if (unavg - sface - aavg .ge. 0.)
then
11175 lam2d = unavgd - sfaced - aavgd
11176 lam2 = unavg - sface - aavg
11178 lam2d = sfaced - unavgd + aavgd
11179 lam2 = -(unavg-sface-aavg)
11181 if (unavg - sface .ge. 0.)
then
11182 lam3d = unavgd - sfaced
11183 lam3 = unavg - sface
11185 lam3d = sfaced - unavgd
11186 lam3 = -(unavg-sface)
11188 rradd = lam3d + aavgd
11190 if (lam1 .lt. epsacoustic*rrad)
then
11191 lam1d = epsacoustic*rradd
11192 lam1 = epsacoustic*rrad
11196 if (lam2 .lt. epsacoustic*rrad)
then
11197 lam2d = epsacoustic*rradd
11198 lam2 = epsacoustic*rrad
11202 if (lam3 .lt. epsshear*rrad)
then
11203 lam3d = epsshear*rradd
11204 lam3 = epsshear*rrad
11210 lam1d = area*lam1d + lam1*aread
11212 lam2d = area*lam2d + lam2*aread
11214 lam3d = area*lam3d + lam3*aread
11218 abv1d =
half*(lam1d+lam2d)
11219 abv1 =
half*(lam1+lam2)
11220 abv2d =
half*(lam1d-lam2d)
11221 abv2 =
half*(lam1-lam2)
11222 abv3d = abv1d - lam3d
11224 abv4d = gm1*(dr*alphaavgd+alphaavg*drd-dru*uavgd-uavg*drud-&
11225 & drv*vavgd-vavg*drvd+dred-drw*wavgd-wavg*drwd) - gm53*drkd
11226 abv4 = gm1*(alphaavg*dr-uavg*dru-vavg*drv-wavg*drw+dre) - &
11228 abv5d = dru*sxd + sx*drud + drv*syd + sy*drvd + drw*szd + sz&
11229 & *drwd - dr*unavgd - unavg*drd
11230 abv5 = sx*dru + sy*drv + sz*drw - unavg*dr
11231 abv6d = ova2avg*(abv4*abv3d+abv3*abv4d) + abv3*abv4*ova2avgd&
11232 & + ovaavg*(abv5*abv2d+abv2*abv5d) + abv2*abv5*ovaavgd
11233 abv6 = abv3*abv4*ova2avg + abv2*abv5*ovaavg
11234 abv7d = ovaavg*(abv4*abv2d+abv2*abv4d) + abv2*abv4*ovaavgd +&
11235 & abv5*abv3d + abv3*abv5d
11236 abv7 = abv2*abv4*ovaavg + abv3*abv5
11239 fsd = dr*lam3d + lam3*drd + abv6d
11240 fs = lam3*dr + abv6
11246 fsd = dru*lam3d + lam3*drud + abv6*uavgd + uavg*abv6d + abv7&
11248 fs = lam3*dru + uavg*abv6 + sx*abv7
11250 fw(i+1, j, k,
imx) =
fw(i+1, j, k,
imx) + fs
11254 fsd = drv*lam3d + lam3*drvd + abv6*vavgd + vavg*abv6d + abv7&
11256 fs = lam3*drv + vavg*abv6 + sy*abv7
11258 fw(i+1, j, k,
imy) =
fw(i+1, j, k,
imy) + fs
11262 fsd = drw*lam3d + lam3*drwd + abv6*wavgd + wavg*abv6d + abv7&
11264 fs = lam3*drw + wavg*abv6 + sz*abv7
11266 fw(i+1, j, k,
imz) =
fw(i+1, j, k,
imz) + fs
11270 fsd = dre*lam3d + lam3*dred + abv6*havgd + havg*abv6d + abv7&
11271 & *unavgd + unavg*abv7d
11272 fs = lam3*dre + havg*abv6 + unavg*abv7
11306 if (x3 .ge. 0.)
then
11330 & abs4+abs10)+plim)
11333 & abs4+abs10)+plim))
11335 if (x4 .ge. 0.)
then
11345 if (dp1 .lt. dp2)
then
11352 if (dpmax .gt. y2)
then
11359 dis2d = fis2*ppor*min2d
11360 dis2 = fis2*ppor*min2 +
sigma*fis4*ppor
11365 drd = ddw*dis2d + dis2*ddwd
11367 temp3 =
w(i, j+1, k,
ivx)
11368 temp2 =
w(i, j+1, k,
irho)
11369 temp1 =
w(i, j, k,
ivx)
11370 temp0 =
w(i, j, k,
irho)
11371 ddwd = temp3*
wd(i, j+1, k,
irho) + temp2*
wd(i, j+1, k,
ivx) &
11372 & - temp1*
wd(i, j, k,
irho) - temp0*
wd(i, j, k,
ivx)
11373 ddw = temp2*temp3 - temp0*temp1
11374 drud = ddw*dis2d + dis2*ddwd
11376 temp3 =
w(i, j+1, k,
ivy)
11377 temp2 =
w(i, j+1, k,
irho)
11378 temp1 =
w(i, j, k,
ivy)
11379 temp0 =
w(i, j, k,
irho)
11380 ddwd = temp3*
wd(i, j+1, k,
irho) + temp2*
wd(i, j+1, k,
ivy) &
11381 & - temp1*
wd(i, j, k,
irho) - temp0*
wd(i, j, k,
ivy)
11382 ddw = temp2*temp3 - temp0*temp1
11383 drvd = ddw*dis2d + dis2*ddwd
11385 temp3 =
w(i, j+1, k,
ivz)
11386 temp2 =
w(i, j+1, k,
irho)
11387 temp1 =
w(i, j, k,
ivz)
11388 temp0 =
w(i, j, k,
irho)
11389 ddwd = temp3*
wd(i, j+1, k,
irho) + temp2*
wd(i, j+1, k,
ivz) &
11390 & - temp1*
wd(i, j, k,
irho) - temp0*
wd(i, j, k,
ivz)
11391 ddw = temp2*temp3 - temp0*temp1
11392 drwd = ddw*dis2d + dis2*ddwd
11396 dred = ddw*dis2d + dis2*ddwd
11402 if (correctfork)
then
11403 temp3 =
w(i, j+1, k,
itu1)
11404 temp2 =
w(i, j+1, k,
irho)
11405 temp1 =
w(i, j, k,
itu1)
11406 temp0 =
w(i, j, k,
irho)
11407 ddwd = temp3*
wd(i, j+1, k,
irho) + temp2*
wd(i, j+1, k, &
11410 ddw = temp2*temp3 - temp0*temp1
11411 drkd = ddw*dis2d + dis2*ddwd
11424 gm1 = gammaavg -
one
11434 temp3 =
gamma(i, j+1, k)
11435 temp2 =
w(i, j+1, k,
irho)
11436 temp1 =
p(i, j+1, k)/temp2
11437 temp0 =
w(i, j, k,
irho)
11438 temp =
p(i, j, k)/temp0
11439 a2avgd =
half*(temp3*(
pd(i, j+1, k)-temp1*
wd(i, j+1, k,
irho&
11440 & ))/temp2+
gamma(i, j, k)*(
pd(i, j, k)-temp*
wd(i, j, k,
irho&
11442 a2avg =
half*(temp3*temp1+
gamma(i, j, k)*temp)
11443 sxd =
sjd(i, j, k, 1)
11444 sx =
sj(i, j, k, 1)
11445 syd =
sjd(i, j, k, 2)
11446 sy =
sj(i, j, k, 2)
11447 szd =
sjd(i, j, k, 3)
11448 sz =
sj(i, j, k, 3)
11449 arg1d = 2*sx*sxd + 2*sy*syd + 2*sz*szd
11450 arg1 = sx**2 + sy**2 + sz**2
11452 if (arg1 .eq. 0.0_8)
then
11455 aread = arg1d/(2.0*temp3)
11458 if (1.e-25_realtype .lt. area)
then
11462 max2 = 1.e-25_realtype
11465 tmpd = -(
one*max2d/max2**2)
11467 sxd = tmp*sxd + sx*tmpd
11469 syd = tmp*syd + sy*tmpd
11471 szd = tmp*szd + sz*tmpd
11473 alphaavgd =
half*(2*uavg*uavgd+2*vavg*vavgd+2*wavg*wavgd)
11474 alphaavg =
half*(uavg**2+vavg**2+wavg**2)
11475 havgd = alphaavgd + ovgm1*(a2avgd-gm53*kavgd)
11476 havg = alphaavg + ovgm1*(a2avg-gm53*kavg)
11477 temp3 = sqrt(a2avg)
11478 if (a2avg .eq. 0.0_8)
then
11481 aavgd = a2avgd/(2.0*temp3)
11484 unavgd = sx*uavgd + uavg*sxd + sy*vavgd + vavg*syd + sz*&
11486 unavg = uavg*sx + vavg*sy + wavg*sz
11487 ovaavgd = -(
one*aavgd/aavg**2)
11489 ova2avgd = -(
one*a2avgd/a2avg**2)
11490 ova2avg =
one/a2avg
11495 sface =
sfacej(i, j, k)*tmp
11497 if (unavg - sface + aavg .ge. 0.)
then
11498 lam1d = unavgd - sfaced + aavgd
11499 lam1 = unavg - sface + aavg
11501 lam1d = sfaced - unavgd - aavgd
11502 lam1 = -(unavg-sface+aavg)
11504 if (unavg - sface - aavg .ge. 0.)
then
11505 lam2d = unavgd - sfaced - aavgd
11506 lam2 = unavg - sface - aavg
11508 lam2d = sfaced - unavgd + aavgd
11509 lam2 = -(unavg-sface-aavg)
11511 if (unavg - sface .ge. 0.)
then
11512 lam3d = unavgd - sfaced
11513 lam3 = unavg - sface
11515 lam3d = sfaced - unavgd
11516 lam3 = -(unavg-sface)
11518 rradd = lam3d + aavgd
11520 if (lam1 .lt. epsacoustic*rrad)
then
11521 lam1d = epsacoustic*rradd
11522 lam1 = epsacoustic*rrad
11526 if (lam2 .lt. epsacoustic*rrad)
then
11527 lam2d = epsacoustic*rradd
11528 lam2 = epsacoustic*rrad
11532 if (lam3 .lt. epsshear*rrad)
then
11533 lam3d = epsshear*rradd
11534 lam3 = epsshear*rrad
11540 lam1d = area*lam1d + lam1*aread
11542 lam2d = area*lam2d + lam2*aread
11544 lam3d = area*lam3d + lam3*aread
11548 abv1d =
half*(lam1d+lam2d)
11549 abv1 =
half*(lam1+lam2)
11550 abv2d =
half*(lam1d-lam2d)
11551 abv2 =
half*(lam1-lam2)
11552 abv3d = abv1d - lam3d
11554 abv4d = gm1*(dr*alphaavgd+alphaavg*drd-dru*uavgd-uavg*drud-&
11555 & drv*vavgd-vavg*drvd+dred-drw*wavgd-wavg*drwd) - gm53*drkd
11556 abv4 = gm1*(alphaavg*dr-uavg*dru-vavg*drv-wavg*drw+dre) - &
11558 abv5d = dru*sxd + sx*drud + drv*syd + sy*drvd + drw*szd + sz&
11559 & *drwd - dr*unavgd - unavg*drd
11560 abv5 = sx*dru + sy*drv + sz*drw - unavg*dr
11561 abv6d = ova2avg*(abv4*abv3d+abv3*abv4d) + abv3*abv4*ova2avgd&
11562 & + ovaavg*(abv5*abv2d+abv2*abv5d) + abv2*abv5*ovaavgd
11563 abv6 = abv3*abv4*ova2avg + abv2*abv5*ovaavg
11564 abv7d = ovaavg*(abv4*abv2d+abv2*abv4d) + abv2*abv4*ovaavgd +&
11565 & abv5*abv3d + abv3*abv5d
11566 abv7 = abv2*abv4*ovaavg + abv3*abv5
11569 fsd = dr*lam3d + lam3*drd + abv6d
11570 fs = lam3*dr + abv6
11576 fsd = dru*lam3d + lam3*drud + abv6*uavgd + uavg*abv6d + abv7&
11578 fs = lam3*dru + uavg*abv6 + sx*abv7
11580 fw(i, j+1, k,
imx) =
fw(i, j+1, k,
imx) + fs
11584 fsd = drv*lam3d + lam3*drvd + abv6*vavgd + vavg*abv6d + abv7&
11586 fs = lam3*drv + vavg*abv6 + sy*abv7
11588 fw(i, j+1, k,
imy) =
fw(i, j+1, k,
imy) + fs
11592 fsd = drw*lam3d + lam3*drwd + abv6*wavgd + wavg*abv6d + abv7&
11594 fs = lam3*drw + wavg*abv6 + sz*abv7
11596 fw(i, j+1, k,
imz) =
fw(i, j+1, k,
imz) + fs
11600 fsd = dre*lam3d + lam3*dred + abv6*havgd + havg*abv6d + abv7&
11601 & *unavgd + unavg*abv7d
11602 fs = lam3*dre + havg*abv6 + unavg*abv7
11636 if (x5 .ge. 0.)
then
11660 & abs6+abs12)+plim)
11663 & abs6+abs12)+plim))
11665 if (x6 .ge. 0.)
then
11675 if (dp1 .lt. dp2)
then
11682 if (dpmax .gt. y3)
then
11689 dis2d = fis2*ppor*min3d
11690 dis2 = fis2*ppor*min3 +
sigma*fis4*ppor
11695 drd = ddw*dis2d + dis2*ddwd
11697 temp3 =
w(i, j, k+1,
ivx)
11698 temp2 =
w(i, j, k+1,
irho)
11699 temp1 =
w(i, j, k,
ivx)
11700 temp0 =
w(i, j, k,
irho)
11701 ddwd = temp3*
wd(i, j, k+1,
irho) + temp2*
wd(i, j, k+1,
ivx) &
11702 & - temp1*
wd(i, j, k,
irho) - temp0*
wd(i, j, k,
ivx)
11703 ddw = temp2*temp3 - temp0*temp1
11704 drud = ddw*dis2d + dis2*ddwd
11706 temp3 =
w(i, j, k+1,
ivy)
11707 temp2 =
w(i, j, k+1,
irho)
11708 temp1 =
w(i, j, k,
ivy)
11709 temp0 =
w(i, j, k,
irho)
11710 ddwd = temp3*
wd(i, j, k+1,
irho) + temp2*
wd(i, j, k+1,
ivy) &
11711 & - temp1*
wd(i, j, k,
irho) - temp0*
wd(i, j, k,
ivy)
11712 ddw = temp2*temp3 - temp0*temp1
11713 drvd = ddw*dis2d + dis2*ddwd
11715 temp3 =
w(i, j, k+1,
ivz)
11716 temp2 =
w(i, j, k+1,
irho)
11717 temp1 =
w(i, j, k,
ivz)
11718 temp0 =
w(i, j, k,
irho)
11719 ddwd = temp3*
wd(i, j, k+1,
irho) + temp2*
wd(i, j, k+1,
ivz) &
11720 & - temp1*
wd(i, j, k,
irho) - temp0*
wd(i, j, k,
ivz)
11721 ddw = temp2*temp3 - temp0*temp1
11722 drwd = ddw*dis2d + dis2*ddwd
11726 dred = ddw*dis2d + dis2*ddwd
11732 if (correctfork)
then
11733 temp3 =
w(i, j, k+1,
itu1)
11734 temp2 =
w(i, j, k+1,
irho)
11735 temp1 =
w(i, j, k,
itu1)
11736 temp0 =
w(i, j, k,
irho)
11737 ddwd = temp3*
wd(i, j, k+1,
irho) + temp2*
wd(i, j, k+1, &
11740 ddw = temp2*temp3 - temp0*temp1
11741 drkd = ddw*dis2d + dis2*ddwd
11754 gm1 = gammaavg -
one
11764 temp3 =
gamma(i, j, k+1)
11765 temp2 =
w(i, j, k+1,
irho)
11766 temp1 =
p(i, j, k+1)/temp2
11767 temp0 =
w(i, j, k,
irho)
11768 temp =
p(i, j, k)/temp0
11769 a2avgd =
half*(temp3*(
pd(i, j, k+1)-temp1*
wd(i, j, k+1,
irho&
11770 & ))/temp2+
gamma(i, j, k)*(
pd(i, j, k)-temp*
wd(i, j, k,
irho&
11772 a2avg =
half*(temp3*temp1+
gamma(i, j, k)*temp)
11773 sxd =
skd(i, j, k, 1)
11774 sx =
sk(i, j, k, 1)
11775 syd =
skd(i, j, k, 2)
11776 sy =
sk(i, j, k, 2)
11777 szd =
skd(i, j, k, 3)
11778 sz =
sk(i, j, k, 3)
11779 arg1d = 2*sx*sxd + 2*sy*syd + 2*sz*szd
11780 arg1 = sx**2 + sy**2 + sz**2
11782 if (arg1 .eq. 0.0_8)
then
11785 aread = arg1d/(2.0*temp3)
11788 if (1.e-25_realtype .lt. area)
then
11792 max3 = 1.e-25_realtype
11795 tmpd = -(
one*max3d/max3**2)
11797 sxd = tmp*sxd + sx*tmpd
11799 syd = tmp*syd + sy*tmpd
11801 szd = tmp*szd + sz*tmpd
11803 alphaavgd =
half*(2*uavg*uavgd+2*vavg*vavgd+2*wavg*wavgd)
11804 alphaavg =
half*(uavg**2+vavg**2+wavg**2)
11805 havgd = alphaavgd + ovgm1*(a2avgd-gm53*kavgd)
11806 havg = alphaavg + ovgm1*(a2avg-gm53*kavg)
11807 temp3 = sqrt(a2avg)
11808 if (a2avg .eq. 0.0_8)
then
11811 aavgd = a2avgd/(2.0*temp3)
11814 unavgd = sx*uavgd + uavg*sxd + sy*vavgd + vavg*syd + sz*&
11816 unavg = uavg*sx + vavg*sy + wavg*sz
11817 ovaavgd = -(
one*aavgd/aavg**2)
11819 ova2avgd = -(
one*a2avgd/a2avg**2)
11820 ova2avg =
one/a2avg
11825 sface =
sfacek(i, j, k)*tmp
11827 if (unavg - sface + aavg .ge. 0.)
then
11828 lam1d = unavgd - sfaced + aavgd
11829 lam1 = unavg - sface + aavg
11831 lam1d = sfaced - unavgd - aavgd
11832 lam1 = -(unavg-sface+aavg)
11834 if (unavg - sface - aavg .ge. 0.)
then
11835 lam2d = unavgd - sfaced - aavgd
11836 lam2 = unavg - sface - aavg
11838 lam2d = sfaced - unavgd + aavgd
11839 lam2 = -(unavg-sface-aavg)
11841 if (unavg - sface .ge. 0.)
then
11842 lam3d = unavgd - sfaced
11843 lam3 = unavg - sface
11845 lam3d = sfaced - unavgd
11846 lam3 = -(unavg-sface)
11848 rradd = lam3d + aavgd
11850 if (lam1 .lt. epsacoustic*rrad)
then
11851 lam1d = epsacoustic*rradd
11852 lam1 = epsacoustic*rrad
11856 if (lam2 .lt. epsacoustic*rrad)
then
11857 lam2d = epsacoustic*rradd
11858 lam2 = epsacoustic*rrad
11862 if (lam3 .lt. epsshear*rrad)
then
11863 lam3d = epsshear*rradd
11864 lam3 = epsshear*rrad
11870 lam1d = area*lam1d + lam1*aread
11872 lam2d = area*lam2d + lam2*aread
11874 lam3d = area*lam3d + lam3*aread
11878 abv1d =
half*(lam1d+lam2d)
11879 abv1 =
half*(lam1+lam2)
11880 abv2d =
half*(lam1d-lam2d)
11881 abv2 =
half*(lam1-lam2)
11882 abv3d = abv1d - lam3d
11884 abv4d = gm1*(dr*alphaavgd+alphaavg*drd-dru*uavgd-uavg*drud-&
11885 & drv*vavgd-vavg*drvd+dred-drw*wavgd-wavg*drwd) - gm53*drkd
11886 abv4 = gm1*(alphaavg*dr-uavg*dru-vavg*drv-wavg*drw+dre) - &
11888 abv5d = dru*sxd + sx*drud + drv*syd + sy*drvd + drw*szd + sz&
11889 & *drwd - dr*unavgd - unavg*drd
11890 abv5 = sx*dru + sy*drv + sz*drw - unavg*dr
11891 abv6d = ova2avg*(abv4*abv3d+abv3*abv4d) + abv3*abv4*ova2avgd&
11892 & + ovaavg*(abv5*abv2d+abv2*abv5d) + abv2*abv5*ovaavgd
11893 abv6 = abv3*abv4*ova2avg + abv2*abv5*ovaavg
11894 abv7d = ovaavg*(abv4*abv2d+abv2*abv4d) + abv2*abv4*ovaavgd +&
11895 & abv5*abv3d + abv3*abv5d
11896 abv7 = abv2*abv4*ovaavg + abv3*abv5
11899 fsd = dr*lam3d + lam3*drd + abv6d
11900 fs = lam3*dr + abv6
11906 fsd = dru*lam3d + lam3*drud + abv6*uavgd + uavg*abv6d + abv7&
11908 fs = lam3*dru + uavg*abv6 + sx*abv7
11910 fw(i, j, k+1,
imx) =
fw(i, j, k+1,
imx) + fs
11914 fsd = drv*lam3d + lam3*drvd + abv6*vavgd + vavg*abv6d + abv7&
11916 fs = lam3*drv + vavg*abv6 + sy*abv7
11918 fw(i, j, k+1,
imy) =
fw(i, j, k+1,
imy) + fs
11922 fsd = drw*lam3d + lam3*drwd + abv6*wavgd + wavg*abv6d + abv7&
11924 fs = lam3*drw + wavg*abv6 + sz*abv7
11926 fw(i, j, k+1,
imz) =
fw(i, j, k+1,
imz) + fs
11930 fsd = dre*lam3d + lam3*dred + abv6*havgd + havg*abv6d + abv7&
11931 & *unavgd + unavg*abv7d
11932 fs = lam3*dre + havg*abv6 + unavg*abv7
11967 real(kind=realtype),
parameter :: dpmax=0.25_realtype
11968 real(kind=realtype),
parameter :: epsacoustic=0.25_realtype
11969 real(kind=realtype),
parameter :: epsshear=0.025_realtype
11970 real(kind=realtype),
parameter :: omega=0.5_realtype
11971 real(kind=realtype),
parameter :: oneminomega=
one-omega
11975 integer(kind=inttype) :: i, j, k, ind
11976 real(kind=realtype) :: plim, sface
11977 real(kind=realtype) :: sfil, fis2, fis4
11978 real(kind=realtype) :: gammaavg, gm1, ovgm1, gm53
11979 real(kind=realtype) :: ppor, rrad, dis2
11980 real(kind=realtype) :: dp1, dp2, ddw, tmp, fs
11981 real(kind=realtype) :: dr, dru, drv, drw, dre, drk, sx, sy, sz
11982 real(kind=realtype) :: uavg, vavg, wavg, a2avg, aavg, havg
11983 real(kind=realtype) :: alphaavg, unavg, ovaavg, ova2avg
11984 real(kind=realtype) :: kavg, lam1, lam2, lam3, area
11985 real(kind=realtype) :: abv1, abv2, abv3, abv4, abv5, abv6, abv7
11986 logical :: correctfork
11991 real(kind=realtype) :: x1
11992 real(kind=realtype) :: x2
11993 real(kind=realtype) :: y1
11994 real(kind=realtype) :: x3
11995 real(kind=realtype) :: x4
11996 real(kind=realtype) :: y2
11997 real(kind=realtype) :: x5
11998 real(kind=realtype) :: x6
11999 real(kind=realtype) :: y3
12000 real(kind=realtype) :: abs0
12001 real(kind=realtype) :: min1
12002 real(realtype) :: max1
12003 real(kind=realtype) :: min2
12004 real(realtype) :: max2
12005 real(kind=realtype) :: min3
12006 real(realtype) :: max3
12007 real(kind=realtype) :: abs1
12008 real(kind=realtype) :: abs2
12009 real(kind=realtype) :: abs3
12010 real(kind=realtype) :: abs4
12011 real(kind=realtype) :: abs5
12012 real(kind=realtype) :: abs6
12013 real(kind=realtype) :: abs7
12014 real(kind=realtype) :: abs8
12015 real(kind=realtype) :: abs9
12016 real(kind=realtype) :: abs10
12017 real(kind=realtype) :: abs11
12018 real(kind=realtype) :: abs12
12019 real(kind=realtype) :: arg1
12020 if (
rfil .ge. 0.)
then
12077 if (x1 .ge. 0.)
then
12100 if (x2 .ge. 0.)
then
12108 if (dp1 .lt. dp2)
then
12113 if (dpmax .gt. y1)
then
12118 dis2 = fis2*ppor*min1 +
sigma*fis4*ppor
12124 & )*
w(i, j, k,
ivx)
12127 & )*
w(i, j, k,
ivy)
12130 & )*
w(i, j, k,
ivz)
12138 if (correctfork)
then
12139 ddw =
w(i+1, j, k,
irho)*
w(i+1, j, k,
itu1) -
w(i, j, k, &
12150 gm1 = gammaavg -
one
12157 a2avg =
half*(
gamma(i+1, j, k)*
p(i+1, j, k)/
w(i+1, j, k, &
12159 sx =
si(i, j, k, 1)
12160 sy =
si(i, j, k, 2)
12161 sz =
si(i, j, k, 3)
12162 arg1 = sx**2 + sy**2 + sz**2
12164 if (1.e-25_realtype .lt. area)
then
12167 max1 = 1.e-25_realtype
12173 alphaavg =
half*(uavg**2+vavg**2+wavg**2)
12174 havg = alphaavg + ovgm1*(a2avg-gm53*kavg)
12176 unavg = uavg*sx + vavg*sy + wavg*sz
12178 ova2avg =
one/a2avg
12182 if (unavg - sface + aavg .ge. 0.)
then
12183 lam1 = unavg - sface + aavg
12185 lam1 = -(unavg-sface+aavg)
12187 if (unavg - sface - aavg .ge. 0.)
then
12188 lam2 = unavg - sface - aavg
12190 lam2 = -(unavg-sface-aavg)
12192 if (unavg - sface .ge. 0.)
then
12193 lam3 = unavg - sface
12195 lam3 = -(unavg-sface)
12198 if (lam1 .lt. epsacoustic*rrad)
then
12199 lam1 = epsacoustic*rrad
12203 if (lam2 .lt. epsacoustic*rrad)
then
12204 lam2 = epsacoustic*rrad
12208 if (lam3 .lt. epsshear*rrad)
then
12209 lam3 = epsshear*rrad
12220 abv1 =
half*(lam1+lam2)
12221 abv2 =
half*(lam1-lam2)
12223 abv4 = gm1*(alphaavg*dr-uavg*dru-vavg*drv-wavg*drw+dre) - &
12225 abv5 = sx*dru + sy*drv + sz*drw - unavg*dr
12226 abv6 = abv3*abv4*ova2avg + abv2*abv5*ovaavg
12227 abv7 = abv2*abv4*ovaavg + abv3*abv5
12230 fs = lam3*dr + abv6
12234 fs = lam3*dru + uavg*abv6 + sx*abv7
12235 fw(i+1, j, k,
imx) =
fw(i+1, j, k,
imx) + fs
12238 fs = lam3*drv + vavg*abv6 + sy*abv7
12239 fw(i+1, j, k,
imy) =
fw(i+1, j, k,
imy) + fs
12242 fs = lam3*drw + wavg*abv6 + sz*abv7
12243 fw(i+1, j, k,
imz) =
fw(i+1, j, k,
imz) + fs
12246 fs = lam3*dre + havg*abv6 + unavg*abv7
12273 if (x3 .ge. 0.)
then
12295 & abs4+abs10)+plim)
12296 if (x4 .ge. 0.)
then
12304 if (dp1 .lt. dp2)
then
12309 if (dpmax .gt. y2)
then
12314 dis2 = fis2*ppor*min2 +
sigma*fis4*ppor
12320 & )*
w(i, j, k,
ivx)
12323 & )*
w(i, j, k,
ivy)
12326 & )*
w(i, j, k,
ivz)
12334 if (correctfork)
then
12335 ddw =
w(i, j+1, k,
irho)*
w(i, j+1, k,
itu1) -
w(i, j, k, &
12346 gm1 = gammaavg -
one
12353 a2avg =
half*(
gamma(i, j+1, k)*
p(i, j+1, k)/
w(i, j+1, k, &
12355 sx =
sj(i, j, k, 1)
12356 sy =
sj(i, j, k, 2)
12357 sz =
sj(i, j, k, 3)
12358 arg1 = sx**2 + sy**2 + sz**2
12360 if (1.e-25_realtype .lt. area)
then
12363 max2 = 1.e-25_realtype
12369 alphaavg =
half*(uavg**2+vavg**2+wavg**2)
12370 havg = alphaavg + ovgm1*(a2avg-gm53*kavg)
12372 unavg = uavg*sx + vavg*sy + wavg*sz
12374 ova2avg =
one/a2avg
12378 if (unavg - sface + aavg .ge. 0.)
then
12379 lam1 = unavg - sface + aavg
12381 lam1 = -(unavg-sface+aavg)
12383 if (unavg - sface - aavg .ge. 0.)
then
12384 lam2 = unavg - sface - aavg
12386 lam2 = -(unavg-sface-aavg)
12388 if (unavg - sface .ge. 0.)
then
12389 lam3 = unavg - sface
12391 lam3 = -(unavg-sface)
12394 if (lam1 .lt. epsacoustic*rrad)
then
12395 lam1 = epsacoustic*rrad
12399 if (lam2 .lt. epsacoustic*rrad)
then
12400 lam2 = epsacoustic*rrad
12404 if (lam3 .lt. epsshear*rrad)
then
12405 lam3 = epsshear*rrad
12416 abv1 =
half*(lam1+lam2)
12417 abv2 =
half*(lam1-lam2)
12419 abv4 = gm1*(alphaavg*dr-uavg*dru-vavg*drv-wavg*drw+dre) - &
12421 abv5 = sx*dru + sy*drv + sz*drw - unavg*dr
12422 abv6 = abv3*abv4*ova2avg + abv2*abv5*ovaavg
12423 abv7 = abv2*abv4*ovaavg + abv3*abv5
12426 fs = lam3*dr + abv6
12430 fs = lam3*dru + uavg*abv6 + sx*abv7
12431 fw(i, j+1, k,
imx) =
fw(i, j+1, k,
imx) + fs
12434 fs = lam3*drv + vavg*abv6 + sy*abv7
12435 fw(i, j+1, k,
imy) =
fw(i, j+1, k,
imy) + fs
12438 fs = lam3*drw + wavg*abv6 + sz*abv7
12439 fw(i, j+1, k,
imz) =
fw(i, j+1, k,
imz) + fs
12442 fs = lam3*dre + havg*abv6 + unavg*abv7
12469 if (x5 .ge. 0.)
then
12491 & abs6+abs12)+plim)
12492 if (x6 .ge. 0.)
then
12500 if (dp1 .lt. dp2)
then
12505 if (dpmax .gt. y3)
then
12510 dis2 = fis2*ppor*min3 +
sigma*fis4*ppor
12516 & )*
w(i, j, k,
ivx)
12519 & )*
w(i, j, k,
ivy)
12522 & )*
w(i, j, k,
ivz)
12530 if (correctfork)
then
12531 ddw =
w(i, j, k+1,
irho)*
w(i, j, k+1,
itu1) -
w(i, j, k, &
12542 gm1 = gammaavg -
one
12549 a2avg =
half*(
gamma(i, j, k+1)*
p(i, j, k+1)/
w(i, j, k+1, &
12551 sx =
sk(i, j, k, 1)
12552 sy =
sk(i, j, k, 2)
12553 sz =
sk(i, j, k, 3)
12554 arg1 = sx**2 + sy**2 + sz**2
12556 if (1.e-25_realtype .lt. area)
then
12559 max3 = 1.e-25_realtype
12565 alphaavg =
half*(uavg**2+vavg**2+wavg**2)
12566 havg = alphaavg + ovgm1*(a2avg-gm53*kavg)
12568 unavg = uavg*sx + vavg*sy + wavg*sz
12570 ova2avg =
one/a2avg
12574 if (unavg - sface + aavg .ge. 0.)
then
12575 lam1 = unavg - sface + aavg
12577 lam1 = -(unavg-sface+aavg)
12579 if (unavg - sface - aavg .ge. 0.)
then
12580 lam2 = unavg - sface - aavg
12582 lam2 = -(unavg-sface-aavg)
12584 if (unavg - sface .ge. 0.)
then
12585 lam3 = unavg - sface
12587 lam3 = -(unavg-sface)
12590 if (lam1 .lt. epsacoustic*rrad)
then
12591 lam1 = epsacoustic*rrad
12595 if (lam2 .lt. epsacoustic*rrad)
then
12596 lam2 = epsacoustic*rrad
12600 if (lam3 .lt. epsshear*rrad)
then
12601 lam3 = epsshear*rrad
12612 abv1 =
half*(lam1+lam2)
12613 abv2 =
half*(lam1-lam2)
12615 abv4 = gm1*(alphaavg*dr-uavg*dru-vavg*drv-wavg*drw+dre) - &
12617 abv5 = sx*dru + sy*drv + sz*drw - unavg*dr
12618 abv6 = abv3*abv4*ova2avg + abv2*abv5*ovaavg
12619 abv7 = abv2*abv4*ovaavg + abv3*abv5
12622 fs = lam3*dr + abv6
12626 fs = lam3*dru + uavg*abv6 + sx*abv7
12627 fw(i, j, k+1,
imx) =
fw(i, j, k+1,
imx) + fs
12630 fs = lam3*drv + vavg*abv6 + sy*abv7
12631 fw(i, j, k+1,
imy) =
fw(i, j, k+1,
imy) + fs
12634 fs = lam3*drw + wavg*abv6 + sz*abv7
12635 fw(i, j, k+1,
imz) =
fw(i, j, k+1,
imz) + fs
12638 fs = lam3*dre + havg*abv6 + unavg*abv7
subroutine riemannflux_d(left, leftd, right, rightd, flux, fluxd)
subroutine riemannflux(left, right, flux)
subroutine leftrightstate(du1, du2, du3, rotmatrix, left, right)
subroutine leftrightstate_d(du1, du1d, du2, du2d, du3, du3d, rotmatrix, left, leftd, right, rightd)
real(kind=realtype), dimension(:, :, :), pointer sfacek
integer(kind=inttype), dimension(:, :), pointer viscjminpointer
real(kind=realtype), dimension(:, :, :), pointer gamma
real(kind=realtype), dimension(:, :, :), pointer qz
real(kind=realtype), dimension(:, :, :, :), pointer fwd
real(kind=realtype), dimension(:, :, :), pointer radid
logical addgridvelocities
real(kind=realtype), dimension(:, :, :), pointer wzd
real(kind=realtype), dimension(:, :, :), pointer aad
real(kind=realtype), dimension(:, :, :), pointer radk
integer(kind=portype), dimension(:, :, :), pointer pork
integer(kind=inttype), dimension(:, :, :), pointer indfamilyj
integer(kind=inttype), dimension(:, :), pointer viscjmaxpointer
real(kind=realtype), dimension(:, :, :, :), pointer sjd
real(kind=realtype), dimension(:, :, :), pointer vxd
real(kind=realtype), dimension(:, :, :), pointer qy
real(kind=realtype), dimension(:, :, :), pointer aa
real(kind=realtype), dimension(:, :, :), pointer uz
real(kind=realtype), dimension(:, :, :, :), pointer wd
real(kind=realtype), dimension(:, :, :), pointer uzd
integer(kind=inttype), dimension(:, :, :), pointer factfamilyj
real(kind=realtype), dimension(:, :, :), pointer vold
real(kind=realtype), dimension(:, :, :), pointer qxd
integer(kind=inttype) spectralsol
real(kind=realtype), dimension(:, :, :), pointer p
real(kind=realtype), dimension(:, :, :), pointer radj
real(kind=realtype), dimension(:, :, :, :), pointer w
real(kind=realtype), dimension(:, :, :), pointer uy
integer(kind=inttype), dimension(:, :, :), pointer indfamilyk
real(kind=realtype), dimension(:, :, :), pointer sfacei
type(viscsubfacetype), dimension(:), pointer viscsubface
integer(kind=portype), dimension(:, :, :), pointer porj
real(kind=realtype), dimension(:, :, :), pointer wyd
real(kind=realtype), dimension(:, :, :), pointer revd
integer(kind=portype), dimension(:, :, :), pointer pori
real(kind=realtype), dimension(:, :, :), pointer wx
real(kind=realtype), dimension(:, :, :), pointer radjd
integer(kind=inttype) nbkglobal
integer(kind=inttype), dimension(:, :), pointer viscimaxpointer
real(kind=realtype), dimension(:, :, :, :), pointer skd
real(kind=realtype), dimension(:, :, :), pointer sfacejd
real(kind=realtype), dimension(:, :, :), pointer rlv
real(kind=realtype), dimension(:, :, :, :), pointer si
real(kind=realtype), dimension(:, :, :, :), pointer sid
real(kind=realtype), dimension(:, :, :), pointer radkd
real(kind=realtype), dimension(:, :, :, :), pointer sj
integer(kind=inttype), dimension(:, :), pointer visckminpointer
integer(kind=inttype), dimension(:, :, :), pointer factfamilyi
real(kind=realtype), dimension(:, :, :), pointer uyd
real(kind=realtype), dimension(:, :, :), pointer qx
integer(kind=inttype), dimension(:, :, :), pointer factfamilyk
real(kind=realtype), dimension(:, :, :), pointer uxd
real(kind=realtype), dimension(:, :, :), pointer vz
real(kind=realtype), dimension(:, :, :, :, :), pointer rotmatrixj
real(kind=realtype), dimension(:, :, :), pointer rev
real(kind=realtype), dimension(:, :, :), pointer qyd
real(kind=realtype), dimension(:, :, :, :), pointer dw
real(kind=realtype), dimension(:, :, :, :), pointer sk
real(kind=realtype), dimension(:, :, :), pointer ux
real(kind=realtype), dimension(:, :, :), pointer shocksensor
type(viscsubfacetype), dimension(:), pointer viscsubfaced
real(kind=realtype), dimension(:, :, :), pointer wy
real(kind=realtype), dimension(:, :, :), pointer rlvd
real(kind=realtype), dimension(:, :, :), pointer wz
real(kind=realtype), dimension(:, :, :), pointer vol
real(kind=realtype), dimension(:, :, :), pointer wxd
real(kind=realtype), dimension(:, :, :, :), pointer xd
real(kind=realtype), dimension(:, :, :), pointer sfacej
real(kind=realtype), dimension(:, :, :), pointer vy
real(kind=realtype), dimension(:, :, :, :), pointer fw
real(kind=realtype), dimension(:, :, :), pointer vx
real(kind=realtype), dimension(:, :, :), pointer radi
real(kind=realtype), dimension(:, :, :), pointer sfacekd
integer(kind=inttype), dimension(:, :, :), pointer indfamilyi
real(kind=realtype), dimension(:, :, :, :), pointer x
integer(kind=inttype), dimension(:, :), pointer visckmaxpointer
real(kind=realtype), dimension(:, :, :), pointer qzd
real(kind=realtype), dimension(:, :, :), pointer sfaceid
integer(kind=inttype), dimension(:, :), pointer visciminpointer
real(kind=realtype), dimension(:, :, :), pointer vzd
real(kind=realtype), dimension(:, :, :), pointer pd
real(kind=realtype), dimension(:, :, :), pointer vyd
real(kind=realtype), dimension(:, :, :, :, :), pointer rotmatrixi
real(kind=realtype), dimension(:, :, :, :), pointer dwd
real(kind=realtype), dimension(:, :, :, :, :), pointer rotmatrixk
type(cgnsblockinfotype), dimension(:), allocatable cgnsdoms
real(kind=realtype), dimension(:, :), allocatable massflowfamilydiss
real(kind=realtype), dimension(:, :), allocatable massflowfamilyinv
integer(kind=inttype), parameter roe
integer(kind=inttype), parameter vanleer
integer(kind=inttype), parameter firstorder
real(kind=realtype), parameter zero
real(kind=realtype), parameter three
real(kind=realtype), parameter third
real(kind=realtype), parameter thresholdreal
integer(kind=inttype), parameter ausmdv
real(kind=realtype), parameter eighth
integer(kind=inttype), parameter turkel
integer(kind=inttype), parameter choimerkle
integer(kind=inttype), parameter vanalbeda
integer(kind=portype), parameter boundflux
integer(kind=portype), parameter noflux
integer(kind=inttype), parameter eulerequations
integer(kind=portype), parameter normalflux
real(kind=realtype), parameter five
integer(kind=inttype), parameter noprecond
real(kind=realtype), parameter one
real(kind=realtype), parameter half
integer(kind=inttype), parameter steady
real(kind=realtype), parameter two
integer(kind=inttype), parameter minmod
real(kind=realtype), parameter fourth
integer(kind=inttype), parameter nolimiter
integer(kind=inttype), parameter nsequations
integer(kind=inttype), parameter ransequations
subroutine etot(rho, u, v, w, p, k, etotal, correctfork)
subroutine etot_d(rho, rhod, u, ud, v, vd, w, wd, p, pd, k, kd, etotal, etotald, correctfork)
real(kind=realtype) gammainf
real(kind=realtype) rhoinfd
real(kind=realtype) pinfcorr
real(kind=realtype) pinfcorrd
real(kind=realtype) trefd
real(kind=realtype) rgasd
integer(kind=inttype) nwf
real(kind=realtype) rhoinf
real(kind=realtype) timeref
real(kind=realtype) timerefd
subroutine viscousfluxapprox_d()
subroutine viscousfluxapprox()
subroutine inviscidcentralflux()
subroutine invisciddissfluxmatrixapprox_d()
subroutine invisciddissfluxscalar()
subroutine viscousflux_d()
subroutine invisciddissfluxmatrix()
subroutine invisciddissfluxscalarapprox_d()
subroutine invisciddissfluxmatrixapprox()
subroutine invisciddissfluxscalarapprox()
subroutine inviscidupwindflux_d(finegrid)
subroutine inviscidupwindflux(finegrid)
subroutine invisciddissfluxscalar_d()
subroutine invisciddissfluxmatrix_d()
subroutine inviscidcentralflux_d()
real(kind=realtype) totalr0
integer(kind=inttype) currentlevel
real(kind=realtype) totalr
integer(kind=inttype) groundlevel
integer(kind=inttype) rkstage
real(kind=realtype) function mydim_d(x, xd, y, yd, mydim)
real(kind=realtype) function mydim(x, y)
logical function getcorrectfork()
subroutine terminate(routinename, errormessage)