27 integer(kind=intType) :: discr
28 integer(kind=intType) :: i, j, k, l
29 integer(kind=intType) :: iale, jale, kale, lale, male
30 real(kind=realtype),
parameter :: k1 = 1.05_realtype
32 real(kind=realtype),
parameter :: k2 = 0.6_realtype
34 real(kind=realtype),
parameter :: m0 = 0.2_realtype
35 real(kind=realtype),
parameter :: alpha = 0_realtype
36 real(kind=realtype),
parameter :: delta = 0_realtype
38 real(kind=realtype),
parameter :: cpres = 4.18_realtype
39 real(kind=realtype),
parameter :: temp = 297.15_realtype
44 real(kind=realtype) :: k3, h, velxrho, velyrho, velzrho, sos, hinf
45 real(kind=realtype) :: resm, a11, a12, a13, a14, a15, a21, a22, a23, a24, a25, a31, a32, a33, a34, a35
46 real(kind=realtype) :: a41, a42, a43, a44, a45, a51, a52, a53, a54, a55, b11, b12, b13, b14, b15
47 real(kind=realtype) :: b21, b22, b23, b24, b25, b31, b32, b33, b34, b35
48 real(kind=realtype) :: b41, b42, b43, b44, b45, b51, b52, b53, b54, b55
49 real(kind=realtype) :: rhohdash, betamr2
50 real(kind=realtype) :: g, q
51 real(kind=realtype) :: b1, b2, b3, b4, b5
52 real(kind=realtype) :: dwo(
nwf)
145 if (abs(
rfil) > thresholdreal)
then
177 sos = sqrt(
gamma(i, j, k) *
p(i, j, k) /
w(i, j, k, irho))
186 velxrho =
w(i, j, k, ivx)
187 velyrho =
w(i, j, k, ivy)
188 velzrho =
w(i, j, k, ivz)
190 q = (velxrho**2 + velyrho**2 + velzrho**2)
213 k3 = k1 * (1 + ((1 - k1 * m0**2) * resm**2) / (k1 * m0**4))
221 betamr2 = min(max(k3 * (velxrho**2 + velyrho**2 &
222 + velzrho**2), ((k2) * (
winf(ivx)**2 &
223 +
winf(ivy)**2 +
winf(ivz)**2))), sos**2)
229 a11 = (betamr2) * (1 / sos**4)
233 a15 = (-betamr2) / sos**4
235 a21 = one * velxrho / sos**2
236 a22 = one *
w(i, j, k, irho)
239 a25 = one * (-velxrho) / sos**2
241 a31 = one * velyrho / sos**2
243 a33 = one *
w(i, j, k, irho)
245 a35 = one * (-velyrho) / sos**2
247 a41 = one * velzrho / sos**2
250 a44 = one *
w(i, j, k, irho)
251 a45 = zero + one * (-velzrho) / sos**2
255 a51 = one * ((1 / (
gamma(i, j, k) - 1)) + (resm**2) / 2)
256 a52 = one *
w(i, j, k, irho) * velxrho
257 a53 = one *
w(i, j, k, irho) * velyrho
258 a54 = one *
w(i, j, k, irho) * velzrho
259 a55 = one * ((-(resm**2)) / 2)
261 b11 = a11 * (
gamma(i, j, k) - 1) * q / 2 + a12 * (-velxrho) &
262 /
w(i, j, k, irho) + a13 * (-velyrho) /
w(i, j, k, irho) + &
263 a14 * (-velzrho) /
w(i, j, k, irho) &
264 + a15 * (((
gamma(i, j, k) - 1) * q / 2) - sos**2)
265 b12 = a11 * (1 -
gamma(i, j, k)) * velxrho + a12 * 1 /
w(i, j, k, irho) &
266 + a15 * (1 -
gamma(i, j, k)) * velxrho
267 b13 = a11 * (1 -
gamma(i, j, k)) * velyrho + a13 &
268 /
w(i, j, k, irho) + a15 * (1 -
gamma(i, j, k)) * velyrho
269 b14 = a11 * (1 -
gamma(i, j, k)) * velzrho &
270 + a14 /
w(i, j, k, irho) + a15 * (1 -
gamma(i, j, k)) * velzrho
271 b15 = a11 * (
gamma(i, j, k) - 1) + a15 * (
gamma(i, j, k) - 1)
273 b21 = a21 * (
gamma(i, j, k) - 1) * q / 2 + a22 * (-velxrho) &
274 /
w(i, j, k, irho) + a23 * (-velyrho) /
w(i, j, k, irho) + a24 * (-velzrho) &
275 /
w(i, j, k, irho) + a25 * (((
gamma(i, j, k) - 1) * q / 2) - sos**2)
276 b22 = a21 * (1 -
gamma(i, j, k)) * velxrho + a22 &
277 /
w(i, j, k, irho) + a25 * (1 -
gamma(i, j, k)) * velxrho
278 b23 = a21 * (1 -
gamma(i, j, k)) * velyrho &
279 + a23 * 1 /
w(i, j, k, irho) + a25 * (1 -
gamma(i, j, k)) * velyrho
280 b24 = a21 * (1 -
gamma(i, j, k)) * velzrho &
281 + a24 * 1 /
w(i, j, k, irho) + a25 * (1 -
gamma(i, j, k)) * velzrho
282 b25 = a21 * (
gamma(i, j, k) - 1) + a25 * (
gamma(i, j, k) - 1)
284 b31 = a31 * (
gamma(i, j, k) - 1) * q / 2 + a32 * (-velxrho) &
285 /
w(i, j, k, irho) + a33 * (-velyrho) /
w(i, j, k, irho) + &
286 a34 * (-velzrho) /
w(i, j, k, irho) &
287 + a35 * (((
gamma(i, j, k) - 1) * q / 2) - sos**2)
288 b32 = a31 * (1 -
gamma(i, j, k)) * velxrho + a32 &
289 /
w(i, j, k, irho) + a35 * (1 -
gamma(i, j, k)) * velxrho
290 b33 = a31 * (1 -
gamma(i, j, k)) * velyrho &
291 + a33 * 1 /
w(i, j, k, irho) + a35 * (1 -
gamma(i, j, k)) * velyrho
292 b34 = a31 * (1 -
gamma(i, j, k)) * velzrho &
293 + a34 * 1 /
w(i, j, k, irho) + a35 * (1 -
gamma(i, j, k)) * velzrho
294 b35 = a31 * (
gamma(i, j, k) - 1) + a35 * (
gamma(i, j, k) - 1)
296 b41 = a41 * (
gamma(i, j, k) - 1) * q / 2 + a42 * (-velxrho) &
297 /
w(i, j, k, irho) + a43 * (-velyrho) /
w(i, j, k, irho) + a44 * (-velzrho) &
298 /
w(i, j, k, irho) + a45 * (((
gamma(i, j, k) - 1) * q / 2) - sos**2)
299 b42 = a41 * (1 -
gamma(i, j, k)) * velxrho + a42 &
300 /
w(i, j, k, irho) + a45 * (1 -
gamma(i, j, k)) * velxrho
301 b43 = a41 * (1 -
gamma(i, j, k)) * velyrho &
302 + a43 * 1 /
w(i, j, k, irho) + a45 * (1 -
gamma(i, j, k)) * velyrho
303 b44 = a41 * (1 -
gamma(i, j, k)) * velzrho &
304 + a44 * 1 /
w(i, j, k, irho) + a45 * (1 -
gamma(i, j, k)) * velzrho
305 b45 = a41 * (
gamma(i, j, k) - 1) + a45 * (
gamma(i, j, k) - 1)
307 b51 = a51 * (
gamma(i, j, k) - 1) * q / 2 + a52 * (-velxrho) &
308 /
w(i, j, k, irho) + a53 * (-velyrho) /
w(i, j, k, irho) + a54 * (-velzrho) &
309 /
w(i, j, k, irho) + a55 * (((
gamma(i, j, k) - 1) * q / 2) - sos**2)
310 b52 = a51 * (1 -
gamma(i, j, k)) * velxrho + a52 &
311 /
w(i, j, k, irho) + a55 * (1 -
gamma(i, j, k)) * velxrho
312 b53 = a51 * (1 -
gamma(i, j, k)) * velyrho &
313 + a53 * 1 /
w(i, j, k, irho) + a55 * (1 -
gamma(i, j, k)) * velyrho
314 b54 = a51 * (1 -
gamma(i, j, k)) * velzrho &
315 + a54 * 1 /
w(i, j, k, irho) + a55 * (1 -
gamma(i, j, k)) * velzrho
316 b55 = a51 * (
gamma(i, j, k) - 1) + a55 * (
gamma(i, j, k) - 1)
320 dwo(l) = (
dw(i, j, k, l) +
fw(i, j, k, l)) * max(real(
iblank(i, j, k), realtype), zero)
323 dw(i, j, k, 1) = b11 * dwo(1) + b12 * dwo(2) + b13 * dwo(3) + b14 * dwo(4) + b15 * dwo(5)
324 dw(i, j, k, 2) = b21 * dwo(1) + b22 * dwo(2) + b23 * dwo(3) + b24 * dwo(4) + b25 * dwo(5)
325 dw(i, j, k, 3) = b31 * dwo(1) + b32 * dwo(2) + b33 * dwo(3) + b34 * dwo(4) + b35 * dwo(5)
326 dw(i, j, k, 4) = b41 * dwo(1) + b42 * dwo(2) + b43 * dwo(3) + b44 * dwo(4) + b45 * dwo(5)
327 dw(i, j, k, 5) = b51 * dwo(1) + b52 * dwo(2) + b53 * dwo(3) + b54 * dwo(4) + b55 * dwo(5)
338 dw(i, j, k, l) = (
dw(i, j, k, l) +
fw(i, j, k, l)) &
339 * max(real(
iblank(i, j, k), realtype), zero)
361 integer(kind=intType),
intent(in) :: nn, iRegion
362 logical,
intent(in) :: res
363 real(kind=realtype),
intent(inout) :: plocal
366 integer(kind=intType) :: i, j, k, ii, iStart, iEnd
367 real(kind=realtype) :: ftmp(3), vx, vy, vz, f_fact(3), q_fact, qtmp, redim, factor, ostart, oend
403 ftmp =
vol(i, j, k) * f_fact
410 qtmp =
vol(i, j, k) * q_fact
418 ftmp(1) * vx - ftmp(2) * vy - ftmp(3) * vz - qtmp
421 plocal = plocal + (vx * ftmp(1) + vy * ftmp(2) + vz * ftmp(3)) * redim
446 integer(kind=intType),
intent(in) :: varStart, varEnd, nn, sps
450 integer(kind=intType) :: mm, ll, ii, jj, i, j, k, l, m
451 real(kind=realtype) :: oneoverdt, tmp
453 real(kind=realtype),
dimension(:, :, :, :),
pointer :: ww, wsp, wsp1
454 real(kind=realtype),
dimension(:, :, :),
pointer :: volsp
458 if (varend < varstart)
return
473 do l = varstart, varend
477 dw(i, j, k, l) = zero
488 do l = varstart, varend
492 dw(i, j, k, l) =
wr(i, j, k, l)
497 end if steadyleveltest
513 do l = varstart, varend
517 dw(i, j, k, l) = zero
554 do l = varstart, varend
556 if (l == ivx .or. l == ivy .or. l == ivz)
then
564 * ww(i, j, k, l) * ww(i, j, k, irho)
599 do l = varstart, varend
603 dw(i, j, k, l) =
dw(i, j, k, l) &
605 *
wold(m, i, j, k, l)
617 do l = varstart, varend
621 dw(i, j, k, l) =
dw(i, j, k, l) &
623 *
wold(m, i, j, k, l)
638 do l = varstart, varend
642 dw(i, j, k, l) = oneoverdt *
dw(i, j, k, l)
648 else unsteadyleveltest
658 do l = varstart, varend
660 if (l == ivx .or. l == ivy .or. l == ivz)
then
667 dw(i, j, k, l) = tmp *
vol(i, j, k) &
668 * (ww(i, j, k, l) * ww(i, j, k, irho) &
669 -
w1(i, j, k, l) *
w1(i, j, k, irho))
670 dw(i, j, k, l) =
dw(i, j, k, l) +
wr(i, j, k, l)
682 dw(i, j, k, l) = tmp *
vol(i, j, k) &
683 * (ww(i, j, k, l) -
w1(i, j, k, l))
684 dw(i, j, k, l) =
dw(i, j, k, l) +
wr(i, j, k, l)
693 end if unsteadyleveltest
719 do l = varstart, varend
723 dw(i, j, k, l) = zero
745 varloopfine:
do l = varstart, varend
749 if (l == ivx .or. l == ivy .or. l == ivz)
then
757 if (l == ivx) ll = 3 * sps - 2
758 if (l == ivy) ll = 3 * sps - 1
759 if (l == ivz) ll = 3 * sps
771 tmp =
dvector(jj, ll, ii + 1) * wsp(i, j, k, ivx) &
772 +
dvector(jj, ll, ii + 2) * wsp(i, j, k, ivy) &
773 +
dvector(jj, ll, ii + 3) * wsp(i, j, k, ivz)
780 dw(i, j, k, l) =
dw(i, j, k, l) &
781 + tmp * volsp(i, j, k) * wsp(i, j, k, irho)
796 dw(i, j, k, l) =
dw(i, j, k, l) &
798 * volsp(i, j, k) * wsp(i, j, k, l)
809 else spectralleveltest
817 do l = varstart, varend
821 dw(i, j, k, l) =
wr(i, j, k, l)
846 varloopcoarse:
do l = varstart, varend
850 if (l == ivx .or. l == ivy .or. l == ivz)
then
858 if (l == ivx) ll = 3 * sps - 2
859 if (l == ivy) ll = 3 * sps - 1
860 if (l == ivz) ll = 3 * sps
876 tmp =
dvector(jj, ll, ii + 1) &
877 * (wsp(i, j, k, irho) * wsp(i, j, k, ivx) &
878 - wsp1(i, j, k, irho) * wsp1(i, j, k, ivx)) &
880 * (wsp(i, j, k, irho) * wsp(i, j, k, ivy) &
881 - wsp1(i, j, k, irho) * wsp1(i, j, k, ivy)) &
883 * (wsp(i, j, k, irho) * wsp(i, j, k, ivz) &
884 - wsp1(i, j, k, irho) * wsp1(i, j, k, ivz))
891 dw(i, j, k, l) =
dw(i, j, k, l) + tmp * volsp(i, j, k)
906 dw(i, j, k, l) =
dw(i, j, k, l) &
909 * (wsp(i, j, k, l) - wsp1(i, j, k, l))
918 end do timeloopcoarse
919 end if spectralleveltest
926 do l = varstart, varend
929 dw(0, j, k, l) = zero
930 dw(1, j, k, l) = zero
931 dw(
ie, j, k, l) = zero
932 dw(
ib, j, k, l) = zero
938 dw(i, 0, k, l) = zero
939 dw(i, 1, k, l) = zero
940 dw(i,
je, k, l) = zero
941 dw(i,
jb, k, l) = zero
947 dw(i, j, 0, l) = zero
948 dw(i, j, 1, l) = zero
949 dw(i, j,
ke, l) = zero
950 dw(i, j,
kb, l) = zero
977 integer(kind=intType),
intent(in) :: varStart, varEnd
981 integer(kind=intType) :: sps, nn
989 domains:
do nn = 1, ndom
1013 integer(kind=intType) :: nn, iRegion
1014 real(kind=realtype) :: dummy
1017 domains:
do nn = 1, ndom
1041 integer(kind=intType) :: sps, nn
1049 domains:
do nn = 1, ndom
1081 integer(kind=intType) :: i, j, k, n
1082 real(kind=realtype) :: gm1, epsval, fac, eps2
1083 real(kind=realtype) :: uvel, vvel, wvel, cijk, cijkinv, c2inv, uvw
1084 real(kind=realtype) :: ri1, ri2, ri3, rj1, rj2, rj3, rk1, rk2, rk3, uu
1085 real(kind=realtype) :: ri, rj, rk, qsi, qsj, qsk, currentcfl
1086 real(kind=realtype) :: xfact, cinf, cinf2
1087 real(kind=realtype) :: dw1, dw2, dw3, dw4, dw5
1088 real(kind=realtype) :: a1, a2, a3, a4, a5, a6, a7, mut, ge
1089 real(kind=realtype) :: viscterm1, viscterm2, viscterm3
1090 real(kind=realtype) :: metterm
1091 real(kind=realtype) :: unsteadyimpl, mult
1092 real(kind=realtype) :: sqrt2, sqrt2inv, alph, alphinv
1093 real(kind=realtype) :: volhalf, volhalfrho, volfact
1094 real(kind=realtype) :: mutpi, mutmi, mutpj, mutmj, mutpk, mutmk, &
1095 mettermp, mettermm, &
1096 visctermi, visctermj, visctermk
1098 real(kind=realtype),
dimension(:, :, :),
pointer :: qq_i, qq_j, qq_k, &
1099 cc_i, cc_j, cc_k, spectral_i, &
1100 spectral_j, spectral_k, dual_dt
1101 real(kind=realtype),
dimension(ie, 5) :: bbi, cci, ddi, ffi
1102 real(kind=realtype),
dimension(je, 5) :: bbj, ccj, ddj, ffj
1103 real(kind=realtype),
dimension(ke, 5) :: bbk, cck, ddk, ffk
1104 real(kind=realtype),
dimension(ie) :: mettermi
1105 real(kind=realtype),
dimension(je) :: mettermj
1106 real(kind=realtype),
dimension(ke) :: mettermk
1107 real(kind=realtype),
dimension(5) :: diagplus, diagminus
1123 spectral_i =>
scratch(:, :, :, 7)
1124 spectral_j =>
scratch(:, :, :, 8)
1125 spectral_k =>
scratch(:, :, :, 9)
1126 dual_dt =>
scratch(:, :, :, 10)
1145 sqrt2inv =
one / sqrt2
1151 dual_dt(i, j, k) = currentcfl *
dtl(i, j, k) *
vol(i, j, k)
1160 mult = currentcfl *
dtl(i, j, k)
1161 mult = mult / (mult * unsteadyimpl *
vol(i, j, k) +
one)
1162 dual_dt(i, j, k) = mult *
vol(i, j, k)
1173 volhalfrho = volhalf /
w(i, j, k,
irho)
1174 uvel =
w(i, j, k,
ivx)
1175 vvel =
w(i, j, k,
ivy)
1176 wvel =
w(i, j, k,
ivz)
1178 cijk = sqrt(
gamma(i, j, k) *
p(i, j, k) /
w(i, j, k,
irho))
1180 ri1 = volhalf * (
si(i, j, k, 1) +
si(i - 1, j, k, 1))
1181 ri2 = volhalf * (
si(i, j, k, 2) +
si(i - 1, j, k, 2))
1182 ri3 = volhalf * (
si(i, j, k, 3) +
si(i - 1, j, k, 3))
1184 rj1 = volhalf * (
sj(i, j, k, 1) +
sj(i, j - 1, k, 1))
1185 rj2 = volhalf * (
sj(i, j, k, 2) +
sj(i, j - 1, k, 2))
1186 rj3 = volhalf * (
sj(i, j, k, 3) +
sj(i, j - 1, k, 3))
1188 rk1 = volhalf * (
sk(i, j, k, 1) +
sk(i, j, k - 1, 1))
1189 rk2 = volhalf * (
sk(i, j, k, 2) +
sk(i, j, k - 1, 2))
1190 rk3 = volhalf * (
sk(i, j, k, 3) +
sk(i, j, k - 1, 3))
1193 qsi = (
sfacei(i - 1, j, k) +
sfacei(i, j, k)) * volhalf
1194 qsj = (
sfacej(i, j - 1, k) +
sfacej(i, j, k)) * volhalf
1195 qsk = (
sfacek(i, j, k - 1) +
sfacek(i, j, k)) * volhalf
1198 qq_i(i, j, k) = ri1 *
w(i, j, k,
ivx) + ri2 *
w(i, j, k,
ivy) + &
1199 ri3 *
w(i, j, k,
ivz) - qsi
1200 qq_j(i, j, k) = rj1 *
w(i, j, k,
ivx) + rj2 *
w(i, j, k,
ivy) + &
1201 rj3 *
w(i, j, k,
ivz) - qsj
1202 qq_k(i, j, k) = rk1 *
w(i, j, k,
ivx) + rk2 *
w(i, j, k,
ivy) + &
1203 rk3 *
w(i, j, k,
ivz) - qsk
1205 ri = sqrt(ri1 * ri1 + ri2 * ri2 + ri3 * ri3)
1206 rj = sqrt(rj1 * rj1 + rj2 * rj2 + rj3 * rj3)
1207 rk = sqrt(rk1 * rk1 + rk2 * rk2 + rk3 * rk3)
1209 cc_i(i, j, k) = cijk * ri
1210 cc_j(i, j, k) = cijk * rj
1211 cc_k(i, j, k) = cijk * rk
1213 mutpi =
rlv(i, j, k) +
rlv(i + 1, j, k)
1214 mutmi =
rlv(i, j, k) +
rlv(i - 1, j, k)
1215 mutpj =
rlv(i, j, k) +
rlv(i, j + 1, k)
1216 mutmj =
rlv(i, j, k) +
rlv(i, j - 1, k)
1217 mutpk =
rlv(i, j, k) +
rlv(i, j, k + 1)
1218 mutmk =
rlv(i, j, k) +
rlv(i, j, k - 1)
1220 mutpi = mutpi +
rev(i, j, k) +
rev(i + 1, j, k)
1221 mutmi = mutpi +
rev(i, j, k) +
rev(i - 1, j, k)
1222 mutpj = mutpj +
rev(i, j, k) +
rev(i, j + 1, k)
1223 mutmj = mutpj +
rev(i, j, k) +
rev(i, j - 1, k)
1224 mutpk = mutpk +
rev(i, j, k) +
rev(i, j, k + 1)
1225 mutmk = mutpk +
rev(i, j, k) +
rev(i, j, k - 1)
1228 volfact =
two / (
vol(i, j, k) +
vol(i + 1, j, k))
1229 mettermp = (
si(i, j, k, 1) *
si(i, j, k, 1) &
1230 +
si(i, j, k, 2) *
si(i, j, k, 2) &
1231 +
si(i, j, k, 3) *
si(i, j, k, 3)) * mutpi * volfact
1232 volfact =
two / (
vol(i, j, k) +
vol(i - 1, j, k))
1233 mettermm = (
si(i - 1, j, k, 1) *
si(i - 1, j, k, 1) &
1234 +
si(i - 1, j, k, 2) *
si(i - 1, j, k, 2) &
1235 +
si(i - 1, j, k, 3) *
si(i - 1, j, k, 3)) * mutmi * volfact
1236 visctermi = (mettermp + mettermm) * volhalfrho
1238 volfact =
two / (
vol(i, j, k) +
vol(i, j + 1, k))
1239 mettermp = (
sj(i, j, k, 1) *
sj(i, j, k, 1) &
1240 +
sj(i, j, k, 2) *
sj(i, j, k, 2) &
1241 +
sj(i, j, k, 3) *
sj(i, j, k, 3)) * mutpj * volfact
1242 volfact =
two / (
vol(i, j, k) +
vol(i, j - 1, k))
1243 mettermm = (
sj(i, j - 1, k, 1) *
sj(i, j - 1, k, 1) &
1244 +
sj(i, j - 1, k, 2) *
sj(i, j - 1, k, 2) &
1245 +
sj(i, j - 1, k, 3) *
sj(i, j - 1, k, 3)) * mutmj * volfact
1246 visctermj = (mettermp + mettermm) * volhalfrho
1248 volfact =
two / (
vol(i, j, k) +
vol(i, j, k + 1))
1249 mettermp = (
sk(i, j, k, 1) *
sk(i, j, k, 1) &
1250 +
sk(i, j, k, 2) *
sk(i, j, k, 2) &
1251 +
sk(i, j, k, 3) *
sk(i, j, k, 3)) * mutpk * volfact
1252 volfact =
two / (
vol(i, j, k) +
vol(i, j, k - 1))
1253 mettermm = (
sk(i, j, k - 1, 1) *
sk(i, j, k - 1, 1) &
1254 +
sk(i, j, k - 1, 2) *
sk(i, j, k - 1, 2) &
1255 +
sk(i, j, k - 1, 3) *
sk(i, j, k - 1, 3)) * mutmk * volfact
1256 visctermk = (mettermp + mettermm) * volhalfrho
1260 eps2 = ri * cinf * epsval
1261 spectral_i(i, j, k) = (fac * sqrt((abs(qq_i(i, j, k)) + cc_i(i, j, k))**2 &
1262 + eps2**2) + visctermi) * dual_dt(i, j, k)
1263 eps2 = rj * cinf * epsval
1264 spectral_j(i, j, k) = (fac * sqrt((abs(qq_j(i, j, k)) + cc_j(i, j, k))**2 &
1265 + eps2**2) + visctermj) * dual_dt(i, j, k)
1266 eps2 = rk * cinf * epsval
1267 spectral_k(i, j, k) = (fac * sqrt((abs(qq_k(i, j, k)) + cc_k(i, j, k))**2 &
1268 + eps2**2) + visctermk) * dual_dt(i, j, k)
1269 spectral_i(i, j, k) = spectral_i(i, j, k) *
zero
1270 spectral_j(i, j, k) = spectral_j(i, j, k) *
zero
1271 spectral_k(i, j, k) = spectral_k(i, j, k) *
zero
1282 cijk = sqrt(
gamma(i, j, k) *
p(i, j, k) /
w(i, j, k,
irho))
1283 c2inv =
one / (cijk * cijk)
1285 alphinv = sqrt2 * cijk /
w(i, j, k,
irho)
1287 uvel =
w(i, j, k,
ivx)
1288 vvel =
w(i, j, k,
ivy)
1289 wvel =
w(i, j, k,
ivz)
1290 uvw =
half * (uvel * uvel + vvel * vvel + wvel * wvel)
1292 rj1 =
half * (
sj(i, j, k, 1) +
sj(i, j - 1, k, 1))
1293 rj2 =
half * (
sj(i, j, k, 2) +
sj(i, j - 1, k, 2))
1294 rj3 =
half * (
sj(i, j, k, 3) +
sj(i, j - 1, k, 3))
1295 rj = sqrt(rj1 * rj1 + rj2 * rj2 + rj3 * rj3)
1296 uu = uvel * rj1 + vvel * rj2 + wvel * rj3
1301 dw1 =
dw(i, j, k, 1)
1302 dw2 =
dw(i, j, k, 2)
1303 dw3 =
dw(i, j, k, 3)
1304 dw4 =
dw(i, j, k, 4)
1305 dw5 =
dw(i, j, k, 5)
1307 a1 = dw2 * uvel + dw3 * vvel + dw4 * wvel - dw5
1308 a1 = a1 * gm1 * c2inv + dw1 * (
one - uvw * gm1 * c2inv)
1310 a2 = (rj2 * wvel - rj3 * vvel) * dw1 + rj3 * dw3 - rj2 * dw4
1311 a3 = (rj3 * uvel - rj1 * wvel) * dw1 + rj1 * dw4 - rj3 * dw2
1312 a4 = (rj1 * vvel - rj2 * uvel) * dw1 + rj2 * dw2 - rj1 * dw3
1314 a5 = uvw * dw1 - uvel * dw2 - vvel * dw3 - wvel * dw4 + dw5
1315 a5 = a5 * gm1 * c2inv
1317 a6 = uu * dw1 / rj - rj1 * dw2 - rj2 * dw3 - rj3 * dw4
1319 dw(i, j, k, 1) = a1 * rj1 + a2 /
w(i, j, k,
irho)
1320 dw(i, j, k, 2) = a1 * rj2 + a3 /
w(i, j, k,
irho)
1321 dw(i, j, k, 3) = a1 * rj3 + a4 /
w(i, j, k,
irho)
1322 dw(i, j, k, 4) = (
half * a5 - a6 / xfact) * alphinv
1323 dw(i, j, k, 5) = (
half * a5 + a6 / xfact) * alphinv
1339 volfact =
one / (
vol(i, j, k) +
vol(i, j + 1, k))
1340 metterm = (
sj(i, j, k, 1) *
sj(i, j, k, 1) &
1341 +
sj(i, j, k, 2) *
sj(i, j, k, 2) &
1342 +
sj(i, j, k, 3) *
sj(i, j, k, 3))
1343 mettermj(j) = metterm * mut * volfact
1348 viscterm1 = mettermj(j) /
vol(i, j, k) /
w(i, j, k,
irho)
1349 viscterm3 = mettermj(j - 1) /
vol(i, j, k) /
w(i, j, k,
irho)
1350 viscterm2 = viscterm1 + viscterm3
1353 rj1 = volhalf * (
sj(i, j, k, 1) +
sj(i, j - 1, k, 1))
1354 rj2 = volhalf * (
sj(i, j, k, 2) +
sj(i, j - 1, k, 2))
1355 rj3 = volhalf * (
sj(i, j, k, 3) +
sj(i, j - 1, k, 3))
1356 metterm = rj1 * rj1 + rj2 * rj2 + rj3 * rj3
1357 eps2 = epsval * epsval * cinf2 * metterm
1358 diagplus(1) =
half * (qq_j(i, j, k) + fac * sqrt(qq_j(i, j, k)**2 + eps2))
1359 diagplus(2) = diagplus(1)
1360 diagplus(3) = diagplus(1)
1361 diagplus(4) =
half * (qq_j(i, j, k) + cc_j(i, j, k) &
1362 + fac * sqrt((qq_j(i, j, k) + cc_j(i, j, k))**2 + eps2))
1363 diagplus(5) =
half * (qq_j(i, j, k) - cc_j(i, j, k) &
1364 + fac * sqrt((qq_j(i, j, k) - cc_j(i, j, k))**2 + eps2))
1365 diagminus(1) =
half * (qq_j(i, j, k) - fac * sqrt(qq_j(i, j, k)**2 + eps2))
1366 diagminus(2) = diagminus(1)
1367 diagminus(3) = diagminus(1)
1368 diagminus(4) =
half * (qq_j(i, j, k) + cc_j(i, j, k) &
1369 - fac * sqrt((qq_j(i, j, k) + cc_j(i, j, k))**2 + eps2))
1370 diagminus(5) =
half * (qq_j(i, j, k) - cc_j(i, j, k) &
1371 - fac * sqrt((qq_j(i, j, k) - cc_j(i, j, k))**2 + eps2))
1374 bbj(j + 1, n) = -viscterm1 - diagplus(n)
1375 ddj(j - 1, n) = -viscterm3 + diagminus(n)
1376 ccj(j, n) = viscterm2 + diagplus(n) - diagminus(n)
1384 bbj(j, n) = bbj(j, n) * dual_dt(i, j, k) * max(real(
iblank(i, j, k), realtype),
zero)
1385 ddj(j, n) = ddj(j, n) * dual_dt(i, j, k) * max(real(
iblank(i, j, k), realtype),
zero)
1386 ccj(j, n) =
one + ccj(j, n) * dual_dt(i, j, k) * &
1387 max(real(
iblank(i, j, k), realtype),
zero) + &
1388 spectral_i(i, j, k) + spectral_k(i, j, k)
1389 ffj(j, n) =
dw(i, j, k, n)
1397 dw(i, j, k, n) = ffj(j, n)
1410 ri1 =
half * (
si(i, j, k, 1) +
si(i - 1, j, k, 1))
1411 ri2 =
half * (
si(i, j, k, 2) +
si(i - 1, j, k, 2))
1412 ri3 =
half * (
si(i, j, k, 3) +
si(i - 1, j, k, 3))
1413 ri = sqrt(ri1 * ri1 + ri2 * ri2 + ri3 * ri3)
1418 rj1 =
half * (
sj(i, j, k, 1) +
sj(i, j - 1, k, 1))
1419 rj2 =
half * (
sj(i, j, k, 2) +
sj(i, j - 1, k, 2))
1420 rj3 =
half * (
sj(i, j, k, 3) +
sj(i, j - 1, k, 3))
1421 rj = sqrt(rj1 * rj1 + rj2 * rj2 + rj3 * rj3)
1426 dw1 =
dw(i, j, k, 1)
1427 dw2 =
dw(i, j, k, 2)
1428 dw3 =
dw(i, j, k, 3)
1429 dw4 =
dw(i, j, k, 4)
1430 dw5 =
dw(i, j, k, 5)
1432 a1 = (ri1 * rj1 + ri2 * rj2 + ri3 * rj3)
1433 a2 = (ri1 * rj2 - rj1 * ri2)
1434 a3 = (ri3 * rj2 - rj3 * ri2)
1435 a4 = (ri1 * rj3 - rj1 * ri3)
1436 a5 = (dw4 - dw5) * sqrt2inv
1437 a6 = (dw4 + dw5) *
half
1438 a7 = (a3 * dw1 + a4 * dw2 - a2 * dw3 - a5 * a1) * sqrt2inv
1440 dw(i, j, k, 1) = a1 * dw1 + a2 * dw2 + a4 * dw3 + a5 * a3
1441 dw(i, j, k, 2) = -a2 * dw1 + a1 * dw2 - a3 * dw3 + a5 * a4
1442 dw(i, j, k, 3) = -a4 * dw1 + a3 * dw2 + a1 * dw3 - a5 * a2
1443 dw(i, j, k, 4) = -a7 + a6
1444 dw(i, j, k, 5) = a7 + a6
1455 xfact =
one + spectral_i(i, j, k) + spectral_j(i, j, k) &
1456 + spectral_k(i, j, k)
1457 dw(i, j, k, 1) =
dw(i, j, k, 1) * xfact
1458 dw(i, j, k, 2) =
dw(i, j, k, 2) * xfact
1459 dw(i, j, k, 3) =
dw(i, j, k, 3) * xfact
1460 dw(i, j, k, 4) =
dw(i, j, k, 4) * xfact
1461 dw(i, j, k, 5) =
dw(i, j, k, 5) * xfact
1476 volfact =
one / (
vol(i, j, k) +
vol(i + 1, j, k))
1477 metterm = (
si(i, j, k, 1) *
si(i, j, k, 1) &
1478 +
si(i, j, k, 2) *
si(i, j, k, 2) &
1479 +
si(i, j, k, 3) *
si(i, j, k, 3))
1480 mettermi(i) = metterm * mut * volfact
1485 viscterm1 = mettermi(i) /
vol(i, j, k) /
w(i, j, k,
irho)
1486 viscterm3 = mettermi(i - 1) /
vol(i, j, k) /
w(i, j, k,
irho)
1487 viscterm2 = viscterm1 + viscterm3
1490 ri1 = volhalf * (
si(i, j, k, 1) +
si(i - 1, j, k, 1))
1491 ri2 = volhalf * (
si(i, j, k, 2) +
si(i - 1, j, k, 2))
1492 ri3 = volhalf * (
si(i, j, k, 3) +
si(i - 1, j, k, 3))
1493 metterm = ri1 * ri1 + ri2 * ri2 + ri3 * ri3
1494 eps2 = epsval * epsval * cinf2 * metterm
1495 diagplus(1) =
half * (qq_i(i, j, k) + fac * sqrt(qq_i(i, j, k)**2 + eps2))
1496 diagplus(2) = diagplus(1)
1497 diagplus(3) = diagplus(1)
1498 diagplus(4) =
half * (qq_i(i, j, k) + cc_i(i, j, k) &
1499 + fac * sqrt((qq_i(i, j, k) + cc_i(i, j, k))**2 + eps2))
1500 diagplus(5) =
half * (qq_i(i, j, k) - cc_i(i, j, k) &
1501 + fac * sqrt((qq_i(i, j, k) - cc_i(i, j, k))**2 + eps2))
1502 diagminus(1) =
half * (qq_i(i, j, k) - fac * sqrt(qq_i(i, j, k)**2 + eps2))
1503 diagminus(2) = diagminus(1)
1504 diagminus(3) = diagminus(1)
1505 diagminus(4) =
half * (qq_i(i, j, k) + cc_i(i, j, k) &
1506 - fac * sqrt((qq_i(i, j, k) + cc_i(i, j, k))**2 + eps2))
1507 diagminus(5) =
half * (qq_i(i, j, k) - cc_i(i, j, k) &
1508 - fac * sqrt((qq_i(i, j, k) - cc_i(i, j, k))**2 + eps2))
1510 bbi(i + 1, n) = -viscterm1 - diagplus(n)
1511 ddi(i - 1, n) = -viscterm3 + diagminus(n)
1512 cci(i, n) = viscterm2 + diagplus(n) - diagminus(n)
1520 bbi(i, n) = bbi(i, n) * dual_dt(i, j, k) * max(real(
iblank(i, j, k), realtype),
zero)
1521 ddi(i, n) = ddi(i, n) * dual_dt(i, j, k) * max(real(
iblank(i, j, k), realtype),
zero)
1522 cci(i, n) =
one + cci(i, n) * dual_dt(i, j, k) * &
1523 max(real(
iblank(i, j, k), realtype),
zero) + &
1524 spectral_j(i, j, k) + spectral_k(i, j, k)
1525 ffi(i, n) =
dw(i, j, k, n)
1533 dw(i, j, k, n) = ffi(i, n)
1546 ri1 =
half * (
si(i, j, k, 1) +
si(i - 1, j, k, 1))
1547 ri2 =
half * (
si(i, j, k, 2) +
si(i - 1, j, k, 2))
1548 ri3 =
half * (
si(i, j, k, 3) +
si(i - 1, j, k, 3))
1549 ri = sqrt(ri1 * ri1 + ri2 * ri2 + ri3 * ri3)
1554 rk1 =
half * (
sk(i, j, k, 1) +
sk(i, j, k - 1, 1))
1555 rk2 =
half * (
sk(i, j, k, 2) +
sk(i, j, k - 1, 2))
1556 rk3 =
half * (
sk(i, j, k, 3) +
sk(i, j, k - 1, 3))
1557 rk = sqrt(rk1 * rk1 + rk2 * rk2 + rk3 * rk3)
1562 dw1 =
dw(i, j, k, 1)
1563 dw2 =
dw(i, j, k, 2)
1564 dw3 =
dw(i, j, k, 3)
1565 dw4 =
dw(i, j, k, 4)
1566 dw5 =
dw(i, j, k, 5)
1568 a1 = ri1 * rk1 + ri2 * rk2 + ri3 * rk3
1569 a2 = rk1 * ri2 - ri1 * rk2
1570 a3 = rk3 * ri2 - ri3 * rk2
1571 a4 = rk1 * ri3 - ri1 * rk3
1572 a5 = (dw4 - dw5) * sqrt2inv
1573 a6 = (dw4 + dw5) *
half
1574 a7 = (a3 * dw1 + a4 * dw2 - a2 * dw3 - a5 * a1) * sqrt2inv
1576 dw(i, j, k, 1) = a1 * dw1 + a2 * dw2 + a4 * dw3 + a5 * a3
1577 dw(i, j, k, 2) = -a2 * dw1 + a1 * dw2 - a3 * dw3 + a5 * a4
1578 dw(i, j, k, 3) = -a4 * dw1 + a3 * dw2 + a1 * dw3 - a5 * a2
1579 dw(i, j, k, 4) = -a7 + a6
1580 dw(i, j, k, 5) = a7 + a6
1590 xfact =
one + spectral_i(i, j, k) + spectral_j(i, j, k) &
1591 + spectral_k(i, j, k)
1592 dw(i, j, k, 1) =
dw(i, j, k, 1) * xfact
1593 dw(i, j, k, 2) =
dw(i, j, k, 2) * xfact
1594 dw(i, j, k, 3) =
dw(i, j, k, 3) * xfact
1595 dw(i, j, k, 4) =
dw(i, j, k, 4) * xfact
1596 dw(i, j, k, 5) =
dw(i, j, k, 5) * xfact
1611 volfact = 1./(
vol(i, j, k) +
vol(i, j, k + 1))
1612 metterm =
sk(i, j, k, 1) *
sk(i, j, k, 1) &
1613 +
sk(i, j, k, 2) *
sk(i, j, k, 2) &
1614 +
sk(i, j, k, 3) *
sk(i, j, k, 3)
1615 mettermk(k) = metterm * mut * volfact
1620 viscterm1 = mettermk(k) /
vol(i, j, k) /
w(i, j, k,
irho)
1621 viscterm3 = mettermk(k - 1) /
vol(i, j, k) /
w(i, j, k,
irho)
1622 viscterm2 = viscterm1 + viscterm3
1625 rk1 = volhalf * (
sk(i, j, k, 1) +
sj(i, j, k - 1, 1))
1626 rk2 = volhalf * (
sk(i, j, k, 2) +
sj(i, j, k - 1, 2))
1627 rk3 = volhalf * (
sk(i, j, k, 3) +
sj(i, j, k - 1, 3))
1628 metterm = rk1 * rk1 + rk2 * rk2 + rk3 * rk3
1629 eps2 = epsval * epsval * cinf2 * metterm
1630 diagplus(1) =
half * (qq_k(i, j, k) + fac * sqrt(qq_k(i, j, k)**2 + eps2))
1631 diagplus(2) = diagplus(1)
1632 diagplus(3) = diagplus(1)
1633 diagplus(4) =
half * (qq_k(i, j, k) + cc_k(i, j, k) &
1634 + fac * sqrt((qq_k(i, j, k) + cc_k(i, j, k))**2 + eps2))
1635 diagplus(5) =
half * (qq_k(i, j, k) - cc_k(i, j, k) &
1636 + fac * sqrt((qq_k(i, j, k) - cc_k(i, j, k))**2 + eps2))
1637 diagminus(1) =
half * (qq_k(i, j, k) - fac * sqrt(qq_k(i, j, k)**2 + eps2))
1638 diagminus(2) = diagminus(1)
1639 diagminus(3) = diagminus(1)
1640 diagminus(4) =
half * (qq_k(i, j, k) + cc_k(i, j, k) &
1641 - fac * sqrt((qq_k(i, j, k) + cc_k(i, j, k))**2 + eps2))
1642 diagminus(5) =
half * (qq_k(i, j, k) - cc_k(i, j, k) &
1643 - fac * sqrt((qq_k(i, j, k) - cc_k(i, j, k))**2 + eps2))
1646 bbk(k + 1, n) = -viscterm1 - diagplus(n)
1647 ddk(k - 1, n) = -viscterm3 + diagminus(n)
1648 cck(k, n) = viscterm2 + diagplus(n) - diagminus(n)
1656 bbk(k, n) = bbk(k, n) * dual_dt(i, j, k) * max(real(
iblank(i, j, k), realtype),
zero)
1657 ddk(k, n) = ddk(k, n) * dual_dt(i, j, k) * max(real(
iblank(i, j, k), realtype),
zero)
1658 cck(k, n) =
one + cck(k, n) * dual_dt(i, j, k) * &
1659 max(real(
iblank(i, j, k), realtype),
zero) + &
1660 spectral_i(i, j, k) + spectral_j(i, j, k)
1661 ffk(k, n) =
dw(i, j, k, n)
1669 dw(i, j, k, n) = ffk(k, n)
1682 uvel =
w(i, j, k,
ivx)
1683 vvel =
w(i, j, k,
ivy)
1684 wvel =
w(i, j, k,
ivz)
1686 rk1 =
half * (
sk(i, j, k, 1) +
sk(i, j, k - 1, 1))
1687 rk2 =
half * (
sk(i, j, k, 2) +
sk(i, j, k - 1, 2))
1688 rk3 =
half * (
sk(i, j, k, 3) +
sk(i, j, k - 1, 3))
1690 rk = sqrt(rk1 * rk1 + rk2 * rk2 + rk3 * rk3)
1691 uu = uvel * rk1 + vvel * rk2 + wvel * rk3
1697 uvw =
half * (uvel * uvel + vvel * vvel + wvel * wvel)
1698 cijkinv = sqrt(
w(i, j, k,
irho) /
gamma(i, j, k) /
p(i, j, k))
1699 alph =
w(i, j, k,
irho) * cijkinv * sqrt2inv
1700 xfact =
two / cijkinv
1705 dw1 =
dw(i, j, k, 1)
1706 dw2 =
dw(i, j, k, 2)
1707 dw3 =
dw(i, j, k, 3)
1708 dw4 =
dw(i, j, k, 4) * alph
1709 dw5 =
dw(i, j, k, 5) * alph
1711 a1 = dw1 * rk1 + dw2 * rk2 + dw3 * rk3 + dw4 + dw5
1712 a2 =
half * xfact * (dw4 - dw5)
1713 a3 = uvw * (rk1 * dw1 + rk2 * dw2 + rk3 * dw3)
1716 dw(i, j, k, 2) = a1 * uvel -
w(i, j, k,
irho) * (rk3 * dw2 - rk2 * dw3) &
1718 dw(i, j, k, 3) = a1 * vvel -
w(i, j, k,
irho) * (rk1 * dw3 - rk3 * dw1) &
1720 dw(i, j, k, 4) = a1 * wvel -
w(i, j, k,
irho) * (rk2 * dw1 - rk1 * dw2) &
1722 dw(i, j, k, 5) = a3 +
w(i, j, k,
irho) * &
1723 ((vvel * rk3 - wvel * rk2) * dw1 &
1724 + (wvel * rk1 - uvel * rk3) * dw2 &
1725 + (uvel * rk2 - vvel * rk1) * dw3) &
1726 + (ge +
half * xfact * uu / rk) * dw4 &
1727 + (ge -
half * xfact * uu / rk) * dw5
1738 volfact = -
one /
vol(i, j, k)
1739 dw(i, j, k, 1) =
dw(i, j, k, 1) * volfact
1740 dw(i, j, k, 2) =
dw(i, j, k, 2) * volfact
1741 dw(i, j, k, 3) =
dw(i, j, k, 3) * volfact
1742 dw(i, j, k, 4) =
dw(i, j, k, 4) * volfact
1743 dw(i, j, k, 5) =
dw(i, j, k, 5) * volfact
1756 integer(kind=intType) :: nn
1757 real(kind=
realtype),
dimension(nn + 1, 5) :: bb, cc, dd, ff
1761 integer(kind=intType) :: m, n
1767 dd(m, n) = dd(m, n) * d0
1768 ff(m, n) = ff(m, n) * d0
1772 d0 = 1./(cc(m, n) - d2 * dd(m - 1, n))
1773 ff(m, n) = (ff(m, n) - d2 * ff(m - 1, n)) * d0
1774 dd(m, n) = dd(m, n) * d0
1777 do m = nn - 1, 2, -1
1778 ff(m, n) = ff(m, n) - dd(m, n) * ff(m + 1, n)
1848 integer(kind=intType) :: i, j, k, l
1850 real(kind=realtype),
parameter :: b = 2.0_realtype
1852 real(kind=realtype) :: currentcfl, rfl0, plim
1853 real(kind=realtype) :: dpi, dpj, dpk, r
1854 real(kind=realtype),
dimension(il, max(jl, kl)) :: epz, d, t, rfl
1878 dpi = abs(
p(i + 1, j, k) -
two *
p(i, j, k) +
p(i - 1, j, k)) &
1879 / (
p(i + 1, j, k) +
two *
p(i, j, k) +
p(i - 1, j, k) + plim)
1880 dpj = abs(
p(i, j + 1, k) -
two *
p(i, j, k) +
p(i, j - 1, k)) &
1881 / (
p(i, j + 1, k) +
two *
p(i, j, k) +
p(i, j - 1, k) + plim)
1882 dpk = abs(
p(i, j, k + 1) -
two *
p(i, j, k) +
p(i, j, k - 1)) &
1883 / (
p(i, j, k + 1) +
two *
p(i, j, k) +
p(i, j, k - 1) + plim)
1884 rfl(i, j) =
one / (
one + b * (dpi + dpj + dpk))
1890 r = rfl0 * (rfl(i, j) + rfl(i + 1, j))
1908 / (
one + epz(i, j) + epz(i - 1, j) - epz(i - 1, j) * d(i - 1, j))
1909 d(i, j) = t(i, j) * epz(i, j)
1918 dw(i, j, k, l) = t(i, j) &
1919 * (
dw(i, j, k, l) + epz(i - 1, j) *
dw(i - 1, j, k, l))
1930 dw(i, j, k, l) =
dw(i, j, k, l) + d(i, j) *
dw(i + 1, j, k, l)
1949 dpi = abs(
p(i + 1, j, k) -
two *
p(i, j, k) +
p(i - 1, j, k)) &
1950 / (
p(i + 1, j, k) +
two *
p(i, j, k) +
p(i - 1, j, k) + plim)
1951 dpj = abs(
p(i, j + 1, k) -
two *
p(i, j, k) +
p(i, j - 1, k)) &
1952 / (
p(i, j + 1, k) +
two *
p(i, j, k) +
p(i, j - 1, k) + plim)
1953 dpk = abs(
p(i, j, k + 1) -
two *
p(i, j, k) +
p(i, j, k - 1)) &
1954 / (
p(i, j, k + 1) +
two *
p(i, j, k) +
p(i, j, k - 1) + plim)
1955 rfl(i, j) =
one / (
one + b * (dpi + dpj + dpk))
1961 r = rfl0 * (rfl(i, j) + rfl(i, j + 1))
1979 / (
one + epz(i, j) + epz(i, j - 1) - epz(i, j - 1) * d(i, j - 1))
1980 d(i, j) = t(i, j) * epz(i, j)
1989 dw(i, j, k, l) = t(i, j) &
1990 * (
dw(i, j, k, l) + epz(i, j - 1) *
dw(i, j - 1, k, l))
2001 dw(i, j, k, l) =
dw(i, j, k, l) + d(i, j) *
dw(i, j + 1, k, l)
2020 dpi = abs(
p(i + 1, j, k) -
two *
p(i, j, k) +
p(i - 1, j, k)) &
2021 / (
p(i + 1, j, k) +
two *
p(i, j, k) +
p(i - 1, j, k) + plim)
2022 dpj = abs(
p(i, j + 1, k) -
two *
p(i, j, k) +
p(i, j - 1, k)) &
2023 / (
p(i, j + 1, k) +
two *
p(i, j, k) +
p(i, j - 1, k) + plim)
2024 dpk = abs(
p(i, j, k + 1) -
two *
p(i, j, k) +
p(i, j, k - 1)) &
2025 / (
p(i, j, k + 1) +
two *
p(i, j, k) +
p(i, j, k - 1) + plim)
2026 rfl(i, k) =
one / (
one + b * (dpi + dpj + dpk))
2032 r = rfl0 * (rfl(i, k) + rfl(i, k + 1))
2050 / (
one + epz(i, k) + epz(i, k - 1) - epz(i, k - 1) * d(i, k - 1))
2051 d(i, k) = t(i, k) * epz(i, k)
2060 dw(i, j, k, l) = t(i, k) &
2061 * (
dw(i, j, k, l) + epz(i, k - 1) *
dw(i, j, k - 1, l))
2072 dw(i, j, k, l) =
dw(i, j, k, l) + d(i, k) *
dw(i, j, k + 1, l)
type(actuatorregiontype), dimension(nactuatorregionsmax), target actuatorregions
integer(kind=inttype) nactuatorregions
subroutine recoverlevelale_block
subroutine interplevelale_block
real(kind=realtype), dimension(:, :, :), pointer sfacek
real(kind=realtype), dimension(:, :, :, :), pointer w1
real(kind=realtype), dimension(:, :, :), pointer gamma
real(kind=realtype), dimension(:, :, :, :), pointer volold
logical addgridvelocities
real(kind=realtype), dimension(:, :, :, :), pointer wr
real(kind=realtype), dimension(:, :, :), pointer p
real(kind=realtype), dimension(:, :, :, :), pointer w
real(kind=realtype), dimension(:, :, :, :), pointer scratch
real(kind=realtype), dimension(:, :, :), pointer sfacei
integer(kind=inttype), dimension(:, :, :), pointer iblank
real(kind=realtype), dimension(:, :, :, :), pointer wn
real(kind=realtype), dimension(:, :, :), pointer rlv
real(kind=realtype), dimension(:, :, :, :), pointer si
real(kind=realtype), dimension(:, :, :, :), pointer sj
integer(kind=inttype) sectionid
real(kind=realtype), dimension(:, :, :), pointer rev
real(kind=realtype), dimension(:, :, :, :), pointer dw
real(kind=realtype), dimension(:, :, :, :), pointer sk
real(kind=realtype), dimension(:, :, :), pointer vol
real(kind=realtype), dimension(:, :, :), pointer dtl
real(kind=realtype), dimension(:, :, :), pointer sfacej
real(kind=realtype), dimension(:, :, :, :), pointer fw
real(kind=realtype), dimension(:, :, :, :, :), pointer wold
real(kind=realtype), parameter zero
real(kind=realtype), parameter one
real(kind=realtype), parameter half
integer(kind=inttype), parameter steady
real(kind=realtype), parameter two
real(kind=realtype), parameter fourth
subroutine allnodalgradients
subroutine computespeedofsoundsquared
real(kind=realtype) gammainf
real(kind=realtype) pinfcorr
integer(kind=inttype) nwf
real(kind=realtype), dimension(:), allocatable winf
real(kind=realtype) rhoinf
real(kind=realtype) timeref
subroutine invisciddissfluxmatrixcoarse
subroutine invisciddissfluxmatrixapprox
subroutine invisciddissfluxscalarcoarse
subroutine invisciddissfluxscalar
subroutine invisciddissfluxmatrix
subroutine inviscidcentralflux
subroutine viscousfluxapprox
subroutine inviscidupwindflux(fineGrid)
subroutine invisciddissfluxscalarapprox
integer(kind=inttype) noldlevels
integer(kind=inttype) currentlevel
integer(kind=inttype) groundlevel
integer(kind=inttype) rkstage
real(kind=realtype), dimension(:), allocatable coeftime
real(kind=realtype) ordersconverged
integer, parameter realtype
subroutine residualaveraging
subroutine sourceterms_block(nn, res, iRegion, pLocal)
subroutine initres_block(varStart, varEnd, nn, sps)
subroutine initres(varStart, varEnd)
subroutine residual_block
subroutine tridiagsolve(bb, cc, dd, ff, nn)
subroutine setpointers(nn, mm, ll)