22 logical,
intent(in) :: resOnly
36 if (.not. resonly)
then
63 integer(kind=intType) :: i, j, k
64 real(kind=realtype) :: kx, ky, kz, tx, ty, tz, cd
80 kx =
w(i + 1, j, k,
itu1) *
si(i, j, k, 1) -
w(i - 1, j, k,
itu1) *
si(i - 1, j, k, 1) &
81 +
w(i, j + 1, k,
itu1) *
sj(i, j, k, 1) -
w(i, j - 1, k,
itu1) *
sj(i, j - 1, k, 1) &
82 +
w(i, j, k + 1,
itu1) *
sk(i, j, k, 1) -
w(i, j, k - 1,
itu1) *
sk(i, j, k - 1, 1)
83 ky =
w(i + 1, j, k,
itu1) *
si(i, j, k, 2) -
w(i - 1, j, k,
itu1) *
si(i - 1, j, k, 2) &
84 +
w(i, j + 1, k,
itu1) *
sj(i, j, k, 2) -
w(i, j - 1, k,
itu1) *
sj(i, j - 1, k, 2) &
85 +
w(i, j, k + 1,
itu1) *
sk(i, j, k, 2) -
w(i, j, k - 1,
itu1) *
sk(i, j, k - 1, 2)
86 kz =
w(i + 1, j, k,
itu1) *
si(i, j, k, 3) -
w(i - 1, j, k,
itu1) *
si(i - 1, j, k, 3) &
87 +
w(i, j + 1, k,
itu1) *
sj(i, j, k, 3) -
w(i, j - 1, k,
itu1) *
sj(i, j - 1, k, 3) &
88 +
w(i, j, k + 1,
itu1) *
sk(i, j, k, 3) -
w(i, j, k - 1,
itu1) *
sk(i, j, k - 1, 3)
92 tx =
w(i + 1, j, k,
itu2) *
si(i, j, k, 1) -
w(i - 1, j, k,
itu2) *
si(i - 1, j, k, 1) &
93 +
w(i, j + 1, k,
itu2) *
sj(i, j, k, 1) -
w(i, j - 1, k,
itu2) *
sj(i, j - 1, k, 1) &
94 +
w(i, j, k + 1,
itu2) *
sk(i, j, k, 1) -
w(i, j, k - 1,
itu2) *
sk(i, j, k - 1, 1)
95 ty =
w(i + 1, j, k,
itu2) *
si(i, j, k, 2) -
w(i - 1, j, k,
itu2) *
si(i - 1, j, k, 2) &
96 +
w(i, j + 1, k,
itu2) *
sj(i, j, k, 2) -
w(i, j - 1, k,
itu2) *
sj(i, j - 1, k, 2) &
97 +
w(i, j, k + 1,
itu2) *
sk(i, j, k, 2) -
w(i, j, k - 1,
itu2) *
sk(i, j, k - 1, 2)
98 tz =
w(i + 1, j, k,
itu2) *
si(i, j, k, 3) -
w(i - 1, j, k,
itu2) *
si(i - 1, j, k, 3) &
99 +
w(i, j + 1, k,
itu2) *
sj(i, j, k, 3) -
w(i, j - 1, k,
itu2) *
sj(i, j - 1, k, 3) &
100 +
w(i, j, k + 1,
itu2) *
sk(i, j, k, 3) -
w(i, j, k - 1,
itu2) *
sk(i, j, k - 1, 3)
105 cd =
fourth * (kx * tx + ky * ty + kz * tz) / (
vol(i, j, k)**2)
137 logical,
intent(in) :: resOnly
141 integer(kind=intType) :: i, j, k, nn
143 real(kind=realtype) :: rktgam1
144 real(kind=realtype) :: rhoi, ss, spk, sdk, tau, tau2, cd
145 real(kind=realtype) :: voli, volmi, volpi
146 real(kind=realtype) :: xm, ym, zm, xp, yp, zp, xa, ya, za
147 real(kind=realtype) :: ttm, ttp, mulm, mulp, muem, muep
148 real(kind=realtype) :: c1m, c1p, c10, c2m, c2p, c20
149 real(kind=realtype) :: nui, voli2, sp2, sm2, spm
150 real(kind=realtype) :: taup, taum, gp, gm
151 real(kind=realtype) :: b1, b2, c1, c2, d1, d2
152 real(kind=realtype) :: qs, uu, um, up, factor, utau, rblank
154 real(kind=realtype),
dimension(itu1:itu2) :: tup
156 real(kind=realtype),
dimension(2:il, 2:jl, 2:kl, 2, 2) :: qq
157 real(kind=realtype),
dimension(2, 2:max(il, jl, kl)) :: bb, dd, ff
158 real(kind=realtype),
dimension(2, 2, 2:max(il, jl, kl)) :: cc
160 real(kind=realtype),
dimension(:, :, :),
pointer :: ddw, ww, ddvt
161 real(kind=realtype),
dimension(:, :),
pointer :: rrlv
162 real(kind=realtype),
dimension(:, :),
pointer :: dd2wall
164 logical,
dimension(2:jl, 2:kl),
target :: flagI2, flagIl
165 logical,
dimension(2:il, 2:kl),
target :: flagJ2, flagJl
166 logical,
dimension(2:il, 2:jl),
target :: flagK2, flagKl
168 logical,
dimension(:, :),
pointer :: flag
217 tau =
w(i, j, k,
itu2)
221 spk =
rev(i, j, k) * ss * rhoi
223 spk = min(spk,
pklim * sdk)
225 dvt(i, j, k, 1) = spk - sdk
226 dvt(i, j, k, 2) =
rktbeta1 - rktgam1 * ss * tau2 + cd * tau
236 qq(i, j, k, 1, 2) =
zero
237 qq(i, j, k, 2, 1) =
zero
238 qq(i, j, k, 2, 2) =
two * rktgam1 * ss * tau - cd
261 volmi =
two / (
vol(i, j, k) +
vol(i, j, k - 1))
262 volpi =
two / (
vol(i, j, k) +
vol(i, j, k + 1))
264 xm =
sk(i, j, k - 1, 1) * volmi
265 ym =
sk(i, j, k - 1, 2) * volmi
266 zm =
sk(i, j, k - 1, 3) * volmi
267 xp =
sk(i, j, k, 1) * volpi
268 yp =
sk(i, j, k, 2) * volpi
269 zp =
sk(i, j, k, 3) * volpi
271 xa =
half * (
sk(i, j, k, 1) +
sk(i, j, k - 1, 1)) * voli
272 ya =
half * (
sk(i, j, k, 2) +
sk(i, j, k - 1, 2)) * voli
273 za =
half * (
sk(i, j, k, 3) +
sk(i, j, k - 1, 3)) * voli
274 ttm = xm * xa + ym * ya + zm * za
275 ttp = xp * xa + yp * ya + zp * za
289 mulm =
half * (
rlv(i, j, k - 1) +
rlv(i, j, k))
290 mulp =
half * (
rlv(i, j, k + 1) +
rlv(i, j, k))
291 muem =
half * (
rev(i, j, k - 1) +
rev(i, j, k))
292 muep =
half * (
rev(i, j, k + 1) +
rev(i, j, k))
294 c1m = ttm * (mulm +
sig1 * muem) * rhoi
295 c1p = ttp * (mulp +
sig1 * muep) * rhoi
298 c2m = ttm * (mulm +
sig2 * muem) * rhoi
299 c2p = ttp * (mulp +
sig2 * muep) * rhoi
313 sp2 = voli2 * (
sk(i, j, k, 1)**2 +
sk(i, j, k, 2)**2 &
315 sm2 = voli2 * (
sk(i, j, k - 1, 1)**2 +
sk(i, j, k - 1, 2)**2 &
316 +
sk(i, j, k - 1, 3)**2)
317 spm = voli2 * (
sk(i, j, k, 1) *
sk(i, j, k - 1, 1) &
318 +
sk(i, j, k, 2) *
sk(i, j, k - 1, 2) &
319 +
sk(i, j, k, 3) *
sk(i, j, k - 1, 3))
323 gp = sqrt(max(
zero, taup))
324 gm = sqrt(max(
zero, taum))
335 dvt(i, j, k, 1) =
dvt(i, j, k, 1) + c1m *
w(i, j, k - 1,
itu1) &
336 - c10 *
w(i, j, k,
itu1) + c1p *
w(i, j, k + 1,
itu1)
337 dvt(i, j, k, 2) =
dvt(i, j, k, 2) + c2m *
w(i, j, k - 1,
itu2) &
338 - c20 *
w(i, j, k,
itu2) + c2p *
w(i, j, k + 1,
itu2) &
339 - nui * (taup * sp2 + taum * sm2 -
two * gp * gm * spm)
345 b2 = -c2m +
half * nui * (sp2 - spm)
346 c2 = c20 +
half * nui * (sp2 + sm2 -
two * spm)
347 d2 = -c2p +
half * nui * (sm2 - spm)
358 qq(i, j, k, 1, 1) = qq(i, j, k, 1, 1) + c1 &
360 qq(i, j, k, 1, 2) = qq(i, j, k, 1, 2) - b1 *
bmtk1(i, j,
itu1,
itu2)
361 qq(i, j, k, 2, 1) = qq(i, j, k, 2, 1) - b2 *
bmtk1(i, j,
itu2,
itu1)
362 qq(i, j, k, 2, 2) = qq(i, j, k, 2, 2) + c2 &
364 else if (k ==
kl)
then
365 qq(i, j, k, 1, 1) = qq(i, j, k, 1, 1) + c1 &
367 qq(i, j, k, 1, 2) = qq(i, j, k, 1, 2) - d1 *
bmtk2(i, j,
itu1,
itu2)
368 qq(i, j, k, 2, 1) = qq(i, j, k, 2, 1) - d2 *
bmtk2(i, j,
itu2,
itu1)
369 qq(i, j, k, 2, 2) = qq(i, j, k, 2, 2) + c2 &
372 qq(i, j, k, 1, 1) = qq(i, j, k, 1, 1) + c1
373 qq(i, j, k, 2, 2) = qq(i, j, k, 2, 2) + c2
390 volmi =
two / (
vol(i, j, k) +
vol(i, j - 1, k))
391 volpi =
two / (
vol(i, j, k) +
vol(i, j + 1, k))
393 xm =
sj(i, j - 1, k, 1) * volmi
394 ym =
sj(i, j - 1, k, 2) * volmi
395 zm =
sj(i, j - 1, k, 3) * volmi
396 xp =
sj(i, j, k, 1) * volpi
397 yp =
sj(i, j, k, 2) * volpi
398 zp =
sj(i, j, k, 3) * volpi
400 xa =
half * (
sj(i, j, k, 1) +
sj(i, j - 1, k, 1)) * voli
401 ya =
half * (
sj(i, j, k, 2) +
sj(i, j - 1, k, 2)) * voli
402 za =
half * (
sj(i, j, k, 3) +
sj(i, j - 1, k, 3)) * voli
403 ttm = xm * xa + ym * ya + zm * za
404 ttp = xp * xa + yp * ya + zp * za
418 mulm =
half * (
rlv(i, j - 1, k) +
rlv(i, j, k))
419 mulp =
half * (
rlv(i, j + 1, k) +
rlv(i, j, k))
420 muem =
half * (
rev(i, j - 1, k) +
rev(i, j, k))
421 muep =
half * (
rev(i, j + 1, k) +
rev(i, j, k))
423 c1m = ttm * (mulm +
sig1 * muem) * rhoi
424 c1p = ttp * (mulp +
sig1 * muep) * rhoi
427 c2m = ttm * (mulm +
sig2 * muem) * rhoi
428 c2p = ttp * (mulp +
sig2 * muep) * rhoi
442 sp2 = voli2 * (
sj(i, j, k, 1)**2 +
sj(i, j, k, 2)**2 &
444 sm2 = voli2 * (
sj(i, j - 1, k, 1)**2 +
sj(i, j - 1, k, 2)**2 &
445 +
sj(i, j - 1, k, 3)**2)
446 spm = voli2 * (
sj(i, j, k, 1) *
sj(i, j - 1, k, 1) &
447 +
sj(i, j, k, 2) *
sj(i, j - 1, k, 2) &
448 +
sj(i, j, k, 3) *
sj(i, j - 1, k, 3))
452 gp = sqrt(max(
zero, taup))
453 gm = sqrt(max(
zero, taum))
464 dvt(i, j, k, 1) =
dvt(i, j, k, 1) + c1m *
w(i, j - 1, k,
itu1) &
465 - c10 *
w(i, j, k,
itu1) + c1p *
w(i, j + 1, k,
itu1)
466 dvt(i, j, k, 2) =
dvt(i, j, k, 2) + c2m *
w(i, j - 1, k,
itu2) &
467 - c20 *
w(i, j, k,
itu2) + c2p *
w(i, j + 1, k,
itu2) &
468 - nui * (taup * sp2 + taum * sm2 -
two * gp * gm * spm)
474 b2 = -c2m +
half * nui * (sp2 - spm)
475 c2 = c20 +
half * nui * (sp2 + sm2 -
two * spm)
476 d2 = -c2p +
half * nui * (sm2 - spm)
487 qq(i, j, k, 1, 1) = qq(i, j, k, 1, 1) + c1 &
489 qq(i, j, k, 1, 2) = qq(i, j, k, 1, 2) - b1 *
bmtj1(i, k,
itu1,
itu2)
490 qq(i, j, k, 2, 1) = qq(i, j, k, 2, 1) - b2 *
bmtj1(i, k,
itu2,
itu1)
491 qq(i, j, k, 2, 2) = qq(i, j, k, 2, 2) + c2 &
493 else if (j ==
jl)
then
494 qq(i, j, k, 1, 1) = qq(i, j, k, 1, 1) + c1 &
496 qq(i, j, k, 1, 2) = qq(i, j, k, 1, 2) - d1 *
bmtj2(i, k,
itu1,
itu2)
497 qq(i, j, k, 2, 1) = qq(i, j, k, 2, 1) - d2 *
bmtj2(i, k,
itu2,
itu1)
498 qq(i, j, k, 2, 2) = qq(i, j, k, 2, 2) + c2 &
501 qq(i, j, k, 1, 1) = qq(i, j, k, 1, 1) + c1
502 qq(i, j, k, 2, 2) = qq(i, j, k, 2, 2) + c2
519 volmi =
two / (
vol(i, j, k) +
vol(i - 1, j, k))
520 volpi =
two / (
vol(i, j, k) +
vol(i + 1, j, k))
522 xm =
si(i - 1, j, k, 1) * volmi
523 ym =
si(i - 1, j, k, 2) * volmi
524 zm =
si(i - 1, j, k, 3) * volmi
525 xp =
si(i, j, k, 1) * volpi
526 yp =
si(i, j, k, 2) * volpi
527 zp =
si(i, j, k, 3) * volpi
529 xa =
half * (
si(i, j, k, 1) +
si(i - 1, j, k, 1)) * voli
530 ya =
half * (
si(i, j, k, 2) +
si(i - 1, j, k, 2)) * voli
531 za =
half * (
si(i, j, k, 3) +
si(i - 1, j, k, 3)) * voli
532 ttm = xm * xa + ym * ya + zm * za
533 ttp = xp * xa + yp * ya + zp * za
547 mulm =
half * (
rlv(i - 1, j, k) +
rlv(i, j, k))
548 mulp =
half * (
rlv(i + 1, j, k) +
rlv(i, j, k))
549 muem =
half * (
rev(i - 1, j, k) +
rev(i, j, k))
550 muep =
half * (
rev(i + 1, j, k) +
rev(i, j, k))
552 c1m = ttm * (mulm +
sig1 * muem) * rhoi
553 c1p = ttp * (mulp +
sig1 * muep) * rhoi
556 c2m = ttm * (mulm +
sig2 * muem) * rhoi
557 c2p = ttp * (mulp +
sig2 * muep) * rhoi
571 sp2 = voli2 * (
si(i, j, k, 1)**2 +
si(i, j, k, 2)**2 &
573 sm2 = voli2 * (
si(i - 1, j, k, 1)**2 +
si(i - 1, j, k, 2)**2 &
574 +
si(i - 1, j, k, 3)**2)
575 spm = voli2 * (
si(i, j, k, 1) *
si(i - 1, j, k, 1) &
576 +
si(i, j, k, 2) *
si(i - 1, j, k, 2) &
577 +
si(i, j, k, 3) *
si(i - 1, j, k, 3))
581 gp = sqrt(max(
zero, taup))
582 gm = sqrt(max(
zero, taum))
593 dvt(i, j, k, 1) =
dvt(i, j, k, 1) + c1m *
w(i - 1, j, k,
itu1) &
594 - c10 *
w(i, j, k,
itu1) + c1p *
w(i + 1, j, k,
itu1)
595 dvt(i, j, k, 2) =
dvt(i, j, k, 2) + c2m *
w(i - 1, j, k,
itu2) &
596 - c20 *
w(i, j, k,
itu2) + c2p *
w(i + 1, j, k,
itu2) &
597 - nui * (taup * sp2 + taum * sm2 -
two * gp * gm * spm)
603 b2 = -c2m +
half * nui * (sp2 - spm)
604 c2 = c20 +
half * nui * (sp2 + sm2 -
two * spm)
605 d2 = -c2p +
half * nui * (sm2 - spm)
616 qq(i, j, k, 1, 1) = qq(i, j, k, 1, 1) + c1 &
618 qq(i, j, k, 1, 2) = qq(i, j, k, 1, 2) - b1 *
bmti1(j, k,
itu1,
itu2)
619 qq(i, j, k, 2, 1) = qq(i, j, k, 2, 1) - b2 *
bmti1(j, k,
itu2,
itu1)
620 qq(i, j, k, 2, 2) = qq(i, j, k, 2, 2) + c2 &
622 else if (i ==
il)
then
623 qq(i, j, k, 1, 1) = qq(i, j, k, 1, 1) + c1 &
625 qq(i, j, k, 1, 2) = qq(i, j, k, 1, 2) - d1 *
bmti2(j, k,
itu1,
itu2)
626 qq(i, j, k, 2, 1) = qq(i, j, k, 2, 1) - d2 *
bmti2(j, k,
itu2,
itu1)
627 qq(i, j, k, 2, 2) = qq(i, j, k, 2, 2) + c2 &
630 qq(i, j, k, 1, 1) = qq(i, j, k, 1, 1) + c1
631 qq(i, j, k, 2, 2) = qq(i, j, k, 2, 2) + c2
648 rblank = real(
iblank(i, j, k), realtype)
679 ddw =>
dw(2, 1:, 1:, 1:); ddvt =>
dvt(2, 1:, 1:, 1:)
680 ww =>
w(2, 1:, 1:, 1:); rrlv =>
rlv(2, 1:, 1:)
681 dd2wall =>
d2wall(2, :, :)
685 ddw =>
dw(
il, 1:, 1:, 1:); ddvt =>
dvt(
il, 1:, 1:, 1:)
686 ww =>
w(
il, 1:, 1:, 1:); rrlv =>
rlv(
il, 1:, 1:)
691 ddw =>
dw(1:, 2, 1:, 1:); ddvt =>
dvt(1:, 2, 1:, 1:)
692 ww =>
w(1:, 2, 1:, 1:); rrlv =>
rlv(1:, 2, 1:)
693 dd2wall =>
d2wall(:, 2, :)
697 ddw =>
dw(1:,
jl, 1:, 1:); ddvt =>
dvt(1:,
jl, 1:, 1:)
698 ww =>
w(1:,
jl, 1:, 1:); rrlv =>
rlv(1:,
jl, 1:)
703 ddw =>
dw(1:, 1:, 2, 1:); ddvt =>
dvt(1:, 1:, 2, 1:)
704 ww =>
w(1:, 1:, 2, 1:); rrlv =>
rlv(1:, 1:, 2)
705 dd2wall =>
d2wall(:, :, 2)
709 ddw =>
dw(1:, 1:,
kl, 1:); ddvt =>
dvt(1:, 1:,
kl, 1:)
710 ww =>
w(1:, 1:,
kl, 1:); rrlv =>
rlv(1:, 1:,
kl)
735 yp = ww(i, j,
irho) * dd2wall(i - 1, j - 1) * utau / rrlv(i, j)
740 tup(
itu2) = tup(
itu2) * rrlv(i, j) / (ww(i, j,
irho) * utau**2)
742 ddvt(i, j, 1) = tup(
itu1) - ww(i, j,
itu1)
743 ddvt(i, j, 2) = tup(
itu2) - ww(i, j,
itu2)
753 end if testwallfunctions
776 qq(i, j, k, 1, 1) = factor * qq(i, j, k, 1, 1)
777 qq(i, j, k, 1, 2) = factor * qq(i, j, k, 1, 2)
778 qq(i, j, k, 2, 1) = factor * qq(i, j, k, 2, 1)
779 qq(i, j, k, 2, 2) = factor * qq(i, j, k, 2, 2)
783 if ((i == 2 .and. flagi2(j, k)) .or. &
784 (i ==
il .and. flagil(j, k)) .or. &
785 (j == 2 .and. flagj2(i, k)) .or. &
786 (j ==
jl .and. flagjl(i, k)) .or. &
787 (k == 2 .and. flagk2(i, j)) .or. &
788 (k ==
kl .and. flagkl(i, j)))
then
789 qq(i, j, k, 1, 1) =
one
790 qq(i, j, k, 2, 2) =
one
791 qq(i, j, k, 1, 2) =
zero
792 qq(i, j, k, 2, 1) =
zero
820 volmi =
two / (
vol(i, j, k) +
vol(i, j - 1, k))
821 volpi =
two / (
vol(i, j, k) +
vol(i, j + 1, k))
823 xm =
sj(i, j - 1, k, 1) * volmi
824 ym =
sj(i, j - 1, k, 2) * volmi
825 zm =
sj(i, j - 1, k, 3) * volmi
826 xp =
sj(i, j, k, 1) * volpi
827 yp =
sj(i, j, k, 2) * volpi
828 zp =
sj(i, j, k, 3) * volpi
830 xa =
half * (
sj(i, j, k, 1) +
sj(i, j - 1, k, 1)) * voli
831 ya =
half * (
sj(i, j, k, 2) +
sj(i, j - 1, k, 2)) * voli
832 za =
half * (
sj(i, j, k, 3) +
sj(i, j - 1, k, 3)) * voli
833 ttm = xm * xa + ym * ya + zm * za
834 ttp = xp * xa + yp * ya + zp * za
840 mulm =
half * (
rlv(i, j - 1, k) +
rlv(i, j, k))
841 mulp =
half * (
rlv(i, j + 1, k) +
rlv(i, j, k))
842 muem =
half * (
rev(i, j - 1, k) +
rev(i, j, k))
843 muep =
half * (
rev(i, j + 1, k) +
rev(i, j, k))
845 c1m = ttm * (mulm +
sig1 * muem) * rhoi
846 c1p = ttp * (mulp +
sig1 * muep) * rhoi
848 c2m = ttm * (mulm +
sig2 * muem) * rhoi
849 c2p = ttp * (mulp +
sig2 * muep) * rhoi
856 sp2 = voli2 * (
sj(i, j, k, 1)**2 +
sj(i, j, k, 2)**2 &
858 sm2 = voli2 * (
sj(i, j - 1, k, 1)**2 +
sj(i, j - 1, k, 2)**2 &
859 +
sj(i, j - 1, k, 3)**2)
860 spm = voli2 * (
sj(i, j, k, 1) *
sj(i, j - 1, k, 1) &
861 +
sj(i, j, k, 2) *
sj(i, j - 1, k, 2) &
862 +
sj(i, j, k, 3) *
sj(i, j - 1, k, 3))
868 bb(2, j) = -c2m +
half * nui * (sp2 - spm)
869 dd(2, j) = -c2p +
half * nui * (sm2 - spm)
880 uu = xa *
w(i, j, k,
ivx) + ya *
w(i, j, k,
ivy) + za *
w(i, j, k,
ivz) - qs
883 if (uu <
zero) um = uu
884 if (uu >
zero) up = uu
886 bb(1, j) = bb(1, j) - up
887 dd(1, j) = dd(1, j) + um
888 bb(2, j) = bb(2, j) - up
889 dd(2, j) = dd(2, j) + um
895 rblank = real(
iblank(i, j, k), realtype)
897 cc(1, 1, j) = qq(i, j, k, 1, 1)
898 cc(1, 2, j) = qq(i, j, k, 1, 2) * rblank
899 cc(2, 1, j) = qq(i, j, k, 2, 1) * rblank
900 cc(2, 2, j) = qq(i, j, k, 2, 2)
902 ff(1, j) =
dvt(i, j, k, 1) * rblank
903 ff(2, j) =
dvt(i, j, k, 2) * rblank
905 bb(:, j) = bb(:, j) * rblank
906 dd(:, j) = dd(:, j) * rblank
910 if ((i == 2 .and. flagi2(j, k)) .or. &
911 (i ==
il .and. flagil(j, k)) .or. &
912 (j == 2 .and. flagj2(i, k)) .or. &
913 (j ==
jl .and. flagjl(i, k)) .or. &
914 (k == 2 .and. flagk2(i, j)) .or. &
915 (k ==
kl .and. flagkl(i, j)))
then
926 call tdia3(2_inttype,
jl, bb, cc, dd, ff)
931 dvt(i, j, k, 1) = qq(i, j, k, 1, 1) * ff(1, j) + qq(i, j, k, 1, 2) * ff(2, j)
932 dvt(i, j, k, 2) = qq(i, j, k, 2, 1) * ff(1, j) + qq(i, j, k, 2, 2) * ff(2, j)
954 volmi =
two / (
vol(i, j, k) +
vol(i - 1, j, k))
955 volpi =
two / (
vol(i, j, k) +
vol(i + 1, j, k))
957 xm =
si(i - 1, j, k, 1) * volmi
958 ym =
si(i - 1, j, k, 2) * volmi
959 zm =
si(i - 1, j, k, 3) * volmi
960 xp =
si(i, j, k, 1) * volpi
961 yp =
si(i, j, k, 2) * volpi
962 zp =
si(i, j, k, 3) * volpi
964 xa =
half * (
si(i, j, k, 1) +
si(i - 1, j, k, 1)) * voli
965 ya =
half * (
si(i, j, k, 2) +
si(i - 1, j, k, 2)) * voli
966 za =
half * (
si(i, j, k, 3) +
si(i - 1, j, k, 3)) * voli
967 ttm = xm * xa + ym * ya + zm * za
968 ttp = xp * xa + yp * ya + zp * za
974 mulm =
half * (
rlv(i - 1, j, k) +
rlv(i, j, k))
975 mulp =
half * (
rlv(i + 1, j, k) +
rlv(i, j, k))
976 muem =
half * (
rev(i - 1, j, k) +
rev(i, j, k))
977 muep =
half * (
rev(i + 1, j, k) +
rev(i, j, k))
979 c1m = ttm * (mulm +
sig1 * muem) * rhoi
980 c1p = ttp * (mulp +
sig1 * muep) * rhoi
982 c2m = ttm * (mulm +
sig2 * muem) * rhoi
983 c2p = ttp * (mulp +
sig2 * muep) * rhoi
990 sp2 = voli2 * (
si(i, j, k, 1)**2 +
si(i, j, k, 2)**2 &
992 sm2 = voli2 * (
si(i - 1, j, k, 1)**2 +
si(i - 1, j, k, 2)**2 &
993 +
si(i - 1, j, k, 3)**2)
994 spm = voli2 * (
si(i, j, k, 1) *
si(i - 1, j, k, 1) &
995 +
si(i, j, k, 2) *
si(i - 1, j, k, 2) &
996 +
si(i, j, k, 3) *
si(i - 1, j, k, 3))
1002 bb(2, i) = -c2m +
half * nui * (sp2 - spm)
1003 dd(2, i) = -c2p +
half * nui * (sm2 - spm)
1014 uu = xa *
w(i, j, k,
ivx) + ya *
w(i, j, k,
ivy) + za *
w(i, j, k,
ivz) - qs
1017 if (uu <
zero) um = uu
1018 if (uu >
zero) up = uu
1020 bb(1, i) = bb(1, i) - up
1021 dd(1, i) = dd(1, i) + um
1022 bb(2, i) = bb(2, i) - up
1023 dd(2, i) = dd(2, i) + um
1029 rblank = real(
iblank(i, j, k), realtype)
1031 cc(1, 1, i) = qq(i, j, k, 1, 1)
1032 cc(1, 2, i) = qq(i, j, k, 1, 2) * rblank
1033 cc(2, 1, i) = qq(i, j, k, 2, 1) * rblank
1034 cc(2, 2, i) = qq(i, j, k, 2, 2)
1036 ff(1, i) =
dvt(i, j, k, 1) * rblank
1037 ff(2, i) =
dvt(i, j, k, 2) * rblank
1039 bb(:, i) = bb(:, i) * rblank
1040 dd(:, i) = dd(:, i) * rblank
1044 if ((i == 2 .and. flagi2(j, k)) .or. &
1045 (i ==
il .and. flagil(j, k)) .or. &
1046 (j == 2 .and. flagj2(i, k)) .or. &
1047 (j ==
jl .and. flagjl(i, k)) .or. &
1048 (k == 2 .and. flagk2(i, j)) .or. &
1049 (k ==
kl .and. flagkl(i, j)))
then
1060 call tdia3(2_inttype,
il, bb, cc, dd, ff)
1065 dvt(i, j, k, 1) = qq(i, j, k, 1, 1) * ff(1, i) + qq(i, j, k, 1, 2) * ff(2, i)
1066 dvt(i, j, k, 2) = qq(i, j, k, 2, 1) * ff(1, i) + qq(i, j, k, 2, 2) * ff(2, i)
1087 voli =
one /
vol(i, j, k)
1088 volmi =
two / (
vol(i, j, k) +
vol(i, j, k - 1))
1089 volpi =
two / (
vol(i, j, k) +
vol(i, j, k + 1))
1091 xm =
sk(i, j, k - 1, 1) * volmi
1092 ym =
sk(i, j, k - 1, 2) * volmi
1093 zm =
sk(i, j, k - 1, 3) * volmi
1094 xp =
sk(i, j, k, 1) * volpi
1095 yp =
sk(i, j, k, 2) * volpi
1096 zp =
sk(i, j, k, 3) * volpi
1098 xa =
half * (
sk(i, j, k, 1) +
sk(i, j, k - 1, 1)) * voli
1099 ya =
half * (
sk(i, j, k, 2) +
sk(i, j, k - 1, 2)) * voli
1100 za =
half * (
sk(i, j, k, 3) +
sk(i, j, k - 1, 3)) * voli
1101 ttm = xm * xa + ym * ya + zm * za
1102 ttp = xp * xa + yp * ya + zp * za
1108 mulm =
half * (
rlv(i, j, k - 1) +
rlv(i, j, k))
1109 mulp =
half * (
rlv(i, j, k + 1) +
rlv(i, j, k))
1110 muem =
half * (
rev(i, j, k - 1) +
rev(i, j, k))
1111 muep =
half * (
rev(i, j, k + 1) +
rev(i, j, k))
1113 c1m = ttm * (mulm +
sig1 * muem) * rhoi
1114 c1p = ttp * (mulp +
sig1 * muep) * rhoi
1116 c2m = ttm * (mulm +
sig2 * muem) * rhoi
1117 c2p = ttp * (mulp +
sig2 * muep) * rhoi
1124 sp2 = voli2 * (
sk(i, j, k, 1)**2 +
sk(i, j, k, 2)**2 &
1125 +
sk(i, j, k, 3)**2)
1126 sm2 = voli2 * (
sk(i, j, k - 1, 1)**2 +
sk(i, j, k - 1, 2)**2 &
1127 +
sk(i, j, k - 1, 3)**2)
1128 spm = voli2 * (
sk(i, j, k, 1) *
sk(i, j, k - 1, 1) &
1129 +
sk(i, j, k, 2) *
sk(i, j, k - 1, 2) &
1130 +
sk(i, j, k, 3) *
sk(i, j, k - 1, 3))
1136 bb(2, k) = -c2m +
half * nui * (sp2 - spm)
1137 dd(2, k) = -c2p +
half * nui * (sm2 - spm)
1148 uu = xa *
w(i, j, k,
ivx) + ya *
w(i, j, k,
ivy) + za *
w(i, j, k,
ivz) - qs
1151 if (uu <
zero) um = uu
1152 if (uu >
zero) up = uu
1154 bb(1, k) = bb(1, k) - up
1155 dd(1, k) = dd(1, k) + um
1156 bb(2, k) = bb(2, k) - up
1157 dd(2, k) = dd(2, k) + um
1163 rblank = real(
iblank(i, j, k), realtype)
1165 cc(1, 1, k) = qq(i, j, k, 1, 1)
1166 cc(1, 2, k) = qq(i, j, k, 1, 2) * rblank
1167 cc(2, 1, k) = qq(i, j, k, 2, 1) * rblank
1168 cc(2, 2, k) = qq(i, j, k, 2, 2)
1170 ff(1, k) =
dvt(i, j, k, 1) * rblank
1171 ff(2, k) =
dvt(i, j, k, 2) * rblank
1173 bb(:, k) = bb(:, k) * rblank
1174 dd(:, k) = dd(:, k) * rblank
1178 if ((i == 2 .and. flagi2(j, k)) .or. &
1179 (i ==
il .and. flagil(j, k)) .or. &
1180 (j == 2 .and. flagj2(i, k)) .or. &
1181 (j ==
jl .and. flagjl(i, k)) .or. &
1182 (k == 2 .and. flagk2(i, j)) .or. &
1183 (k ==
kl .and. flagkl(i, j)))
then
1194 call tdia3(2_inttype,
kl, bb, cc, dd, ff)
1199 dvt(i, j, k, 1) = ff(1, k)
1200 dvt(i, j, k, 2) = ff(2, k)
1216 w(i, j, k,
itu1) =
w(i, j, k,
itu1) + factor *
dvt(i, j, k, 1)
1219 w(i, j, k,
itu2) =
w(i, j, k,
itu2) + factor *
dvt(i, j, k, 2)
real(kind=realtype), dimension(:, :, :, :), pointer bmtk2
real(kind=realtype), dimension(:, :, :), pointer sfacek
logical addgridvelocities
real(kind=realtype), dimension(:, :, :, :), pointer bmti1
integer(kind=inttype) nviscbocos
real(kind=realtype), dimension(:, :, :, :), pointer bmtj1
real(kind=realtype), dimension(:, :, :, :), pointer bmti2
real(kind=realtype), dimension(:, :, :, :), pointer w
real(kind=realtype), dimension(:, :, :, :), pointer scratch
real(kind=realtype), dimension(:, :, :), pointer sfacei
type(viscsubfacetype), dimension(:), pointer viscsubface
real(kind=realtype), dimension(:, :, :), pointer d2wall
integer(kind=inttype), dimension(:, :, :), pointer iblank
real(kind=realtype), dimension(:, :, :), pointer rlv
integer(kind=inttype), dimension(:), pointer bcfaceid
real(kind=realtype), dimension(:, :, :, :), pointer si
real(kind=realtype), dimension(:, :, :), pointer volref
real(kind=realtype), dimension(:, :, :, :), pointer sj
real(kind=realtype), dimension(:, :, :), pointer rev
real(kind=realtype), dimension(:, :, :, :), pointer bmtj2
real(kind=realtype), dimension(:, :, :, :), pointer dw
real(kind=realtype), dimension(:, :, :, :), pointer sk
real(kind=realtype), dimension(:, :, :), pointer vol
real(kind=realtype), dimension(:, :, :), pointer sfacej
real(kind=realtype), dimension(:, :, :, :), pointer bmtk1
integer(kind=inttype), parameter strain
real(kind=realtype), parameter zero
integer(kind=inttype), parameter imax
integer(kind=inttype), parameter kmin
integer(kind=inttype), parameter jmax
integer(kind=inttype), parameter vorticity
real(kind=realtype), parameter one
real(kind=realtype), parameter half
integer(kind=inttype), parameter turbrelaximplicit
integer(kind=inttype), parameter turbrelaxexplicit
integer(kind=inttype), parameter katolaunder
integer(kind=inttype), parameter imin
real(kind=realtype), parameter two
real(kind=realtype), parameter fourth
real(kind=realtype), parameter eight
integer(kind=inttype), parameter kmax
integer(kind=inttype), parameter jmin
real(kind=realtype), dimension(:), allocatable winf
subroutine ktsolve(resOnly)
subroutine kt_block(resOnly)
real(kind=realtype), parameter rktbeta1
real(kind=realtype), parameter rktsigk1
real(kind=realtype), parameter rktsigt1
real(kind=realtype), parameter rktbetas
real(kind=realtype), parameter rktk
real(kind=realtype), parameter rktsigd1
subroutine bcturbtreatment
subroutine applyallturbbcthisblock(secondHalo)
subroutine curvetupyp(tup, yp, ntu1, ntu2)
real(kind=realtype), dimension(:, :, :), pointer vort
real(kind=realtype), dimension(:, :, :), pointer prod
real(kind=realtype), dimension(:, :, :), pointer ktcd
real(kind=realtype), dimension(:, :, :, :), pointer dvt
real(kind=realtype), dimension(:, :, :), pointer sct
subroutine unsteadyturbterm(mAdv, nAdv, offset, qq)
subroutine tdia3(nb, ne, l, c, u, r)
subroutine turbadvection(mAdv, nAdv, offset, qq)
subroutine prodkatolaunder
subroutine kteddyviscosity(iBeg, iEnd, jBeg, jEnd, kBeg, kEnd)
subroutine setpointers(nn, mm, ll)