9 real(kind=realtype),
dimension(:, :, :),
allocatable ::
qq
10 real(kind=realtype),
dimension(:, :, :),
pointer ::
ddw,
ww,
ddvt
11 real(kind=realtype),
dimension(:, :),
pointer ::
rrlv
12 real(kind=realtype),
dimension(:, :),
pointer ::
dd2wall
37 logical,
intent(in) :: resOnly
41 integer(kind=intType) :: nn, sps
68 if (.not. resonly)
then
105 real(kind=realtype),
parameter :: f23 =
two *
third
108 integer(kind=intType) :: i, j, k, nn, ii
109 real(kind=realtype) :: fv1, fv2, ft2
110 real(kind=realtype) :: ss,
sst, nu, dist2inv, chi, chi2, chi3
111 real(kind=realtype) :: rr, gg, gg6, termfw, fwsa, term1, term2
112 real(kind=realtype) :: dfv1, dfv2, dft2, drr, dgg, dfw
113 real(kind=realtype) :: uux, uuy, uuz, vvx, vvy, vvz, wwx, wwy, wwz
114 real(kind=realtype) :: div2, fact, sxx, syy, szz, sxy, sxz, syz
115 real(kind=realtype) :: vortx, vorty, vortz
116 real(kind=realtype) :: omegax, omegay, omegaz
117 real(kind=realtype) :: strainmag2, strainprod, vortprod
118 real(kind=realtype),
parameter :: xminn = 1.e-10_realtype
135 print *,
'katoLaunder production term not supported for SA'
139 #ifdef TAPENADE_REVERSE
141 do ii = 0,
nx *
ny *
nz - 1
143 j = mod(ii /
nx,
ny) + 2
144 k = ii / (
nx *
ny) + 2
155 uux =
w(i + 1, j, k,
ivx) *
si(i, j, k, 1) -
w(i - 1, j, k,
ivx) *
si(i - 1, j, k, 1) &
156 +
w(i, j + 1, k,
ivx) *
sj(i, j, k, 1) -
w(i, j - 1, k,
ivx) *
sj(i, j - 1, k, 1) &
157 +
w(i, j, k + 1,
ivx) *
sk(i, j, k, 1) -
w(i, j, k - 1,
ivx) *
sk(i, j, k - 1, 1)
158 uuy =
w(i + 1, j, k,
ivx) *
si(i, j, k, 2) -
w(i - 1, j, k,
ivx) *
si(i - 1, j, k, 2) &
159 +
w(i, j + 1, k,
ivx) *
sj(i, j, k, 2) -
w(i, j - 1, k,
ivx) *
sj(i, j - 1, k, 2) &
160 +
w(i, j, k + 1,
ivx) *
sk(i, j, k, 2) -
w(i, j, k - 1,
ivx) *
sk(i, j, k - 1, 2)
161 uuz =
w(i + 1, j, k,
ivx) *
si(i, j, k, 3) -
w(i - 1, j, k,
ivx) *
si(i - 1, j, k, 3) &
162 +
w(i, j + 1, k,
ivx) *
sj(i, j, k, 3) -
w(i, j - 1, k,
ivx) *
sj(i, j - 1, k, 3) &
163 +
w(i, j, k + 1,
ivx) *
sk(i, j, k, 3) -
w(i, j, k - 1,
ivx) *
sk(i, j, k - 1, 3)
167 vvx =
w(i + 1, j, k,
ivy) *
si(i, j, k, 1) -
w(i - 1, j, k,
ivy) *
si(i - 1, j, k, 1) &
168 +
w(i, j + 1, k,
ivy) *
sj(i, j, k, 1) -
w(i, j - 1, k,
ivy) *
sj(i, j - 1, k, 1) &
169 +
w(i, j, k + 1,
ivy) *
sk(i, j, k, 1) -
w(i, j, k - 1,
ivy) *
sk(i, j, k - 1, 1)
170 vvy =
w(i + 1, j, k,
ivy) *
si(i, j, k, 2) -
w(i - 1, j, k,
ivy) *
si(i - 1, j, k, 2) &
171 +
w(i, j + 1, k,
ivy) *
sj(i, j, k, 2) -
w(i, j - 1, k,
ivy) *
sj(i, j - 1, k, 2) &
172 +
w(i, j, k + 1,
ivy) *
sk(i, j, k, 2) -
w(i, j, k - 1,
ivy) *
sk(i, j, k - 1, 2)
173 vvz =
w(i + 1, j, k,
ivy) *
si(i, j, k, 3) -
w(i - 1, j, k,
ivy) *
si(i - 1, j, k, 3) &
174 +
w(i, j + 1, k,
ivy) *
sj(i, j, k, 3) -
w(i, j - 1, k,
ivy) *
sj(i, j - 1, k, 3) &
175 +
w(i, j, k + 1,
ivy) *
sk(i, j, k, 3) -
w(i, j, k - 1,
ivy) *
sk(i, j, k - 1, 3)
179 wwx =
w(i + 1, j, k,
ivz) *
si(i, j, k, 1) -
w(i - 1, j, k,
ivz) *
si(i - 1, j, k, 1) &
180 +
w(i, j + 1, k,
ivz) *
sj(i, j, k, 1) -
w(i, j - 1, k,
ivz) *
sj(i, j - 1, k, 1) &
181 +
w(i, j, k + 1,
ivz) *
sk(i, j, k, 1) -
w(i, j, k - 1,
ivz) *
sk(i, j, k - 1, 1)
182 wwy =
w(i + 1, j, k,
ivz) *
si(i, j, k, 2) -
w(i - 1, j, k,
ivz) *
si(i - 1, j, k, 2) &
183 +
w(i, j + 1, k,
ivz) *
sj(i, j, k, 2) -
w(i, j - 1, k,
ivz) *
sj(i, j - 1, k, 2) &
184 +
w(i, j, k + 1,
ivz) *
sk(i, j, k, 2) -
w(i, j, k - 1,
ivz) *
sk(i, j, k - 1, 2)
185 wwz =
w(i + 1, j, k,
ivz) *
si(i, j, k, 3) -
w(i - 1, j, k,
ivz) *
si(i - 1, j, k, 3) &
186 +
w(i, j + 1, k,
ivz) *
sj(i, j, k, 3) -
w(i, j - 1, k,
ivz) *
sj(i, j - 1, k, 3) &
187 +
w(i, j, k + 1,
ivz) *
sk(i, j, k, 3) -
w(i, j, k - 1,
ivz) *
sk(i, j, k - 1, 3)
198 sxx =
two * fact * uux
199 syy =
two * fact * vvy
200 szz =
two * fact * wwz
202 sxy = fact * (uuy + vvx)
203 sxz = fact * (uuz + wwx)
204 syz = fact * (vvz + wwy)
208 div2 = f23 * (sxx + syy + szz)**2
212 strainmag2 =
two * (sxy**2 + sxz**2 + syz**2) &
213 + sxx**2 + syy**2 + szz**2
215 strainprod =
two * strainmag2 - div2
217 ss = sqrt(strainprod)
224 vortx =
two * fact * (wwy - vvz) -
two * omegax
225 vorty =
two * fact * (uuz - wwx) -
two * omegay
226 vortz =
two * fact * (vvx - uuy) -
two * omegaz
230 vortprod = vortx**2 + vorty**2 + vortz**2
245 nu =
rlv(i, j, k) /
w(i, j, k,
irho)
247 chi =
w(i, j, k,
itu1) / nu
250 fv1 = chi3 / (chi3 +
cv13)
251 fv2 =
one - chi / (
one + chi * fv1)
285 rr = min(rr, 10.0_realtype)
286 gg = rr +
rsacw2 * (rr**6 - rr)
310 dfv2 = (chi2 * dfv1 -
one) / (nu * ((
one + chi * fv1)**2))
313 drr = (
one - rr * (fv2 +
w(i, j, k,
itu1) * dfv2)) &
316 dfw = (
cw36 / (gg6 +
cw36)) * termfw * dgg
325 qq(i, j, k) = -
two * term2 *
w(i, j, k,
itu1) &
326 - dist2inv *
w(i, j, k,
itu1) *
w(i, j, k,
itu1) &
327 * (
rsacb1 *
kar2inv * (dfv2 - ft2 * dfv2 - fv2 * dft2 + dft2) &
333 qq(i, j, k) = max(
qq(i, j, k),
zero)
335 #ifdef TAPENADE_REVERSE
354 integer(kind=intType) :: i, j, k, nn, ii
355 real(kind=realtype) :: nu
356 real(kind=realtype) :: fv1, fv2, ft2
357 real(kind=realtype) :: voli, volmi, volpi, xm, ym, zm, xp, yp, zp
358 real(kind=realtype) :: xa, ya, za, ttm, ttp, cnud, cam, cap
359 real(kind=realtype) :: nutm, nutp, num, nup, cdm, cdp
360 real(kind=realtype) :: c1m, c1p, c10, b1, c1, d1, qs
371 #ifdef TAPENADE_REVERSE
373 do ii = 0,
nx *
ny *
nz - 1
375 j = mod(ii /
nx,
ny) + 2
376 k = ii / (
nx *
ny) + 2
386 volmi =
two / (
vol(i, j, k) +
vol(i, j, k - 1))
387 volpi =
two / (
vol(i, j, k) +
vol(i, j, k + 1))
389 xm =
sk(i, j, k - 1, 1) * volmi
390 ym =
sk(i, j, k - 1, 2) * volmi
391 zm =
sk(i, j, k - 1, 3) * volmi
392 xp =
sk(i, j, k, 1) * volpi
393 yp =
sk(i, j, k, 2) * volpi
394 zp =
sk(i, j, k, 3) * volpi
396 xa =
half * (
sk(i, j, k, 1) +
sk(i, j, k - 1, 1)) * voli
397 ya =
half * (
sk(i, j, k, 2) +
sk(i, j, k - 1, 2)) * voli
398 za =
half * (
sk(i, j, k, 3) +
sk(i, j, k - 1, 3)) * voli
399 ttm = xm * xa + ym * ya + zm * za
400 ttp = xp * xa + yp * ya + zp * za
429 nu =
rlv(i, j, k) /
w(i, j, k,
irho)
430 num =
half * (
rlv(i, j, k - 1) /
w(i, j, k - 1,
irho) + nu)
431 nup =
half * (
rlv(i, j, k + 1) /
w(i, j, k + 1,
irho) + nu)
436 c1m = max(cdm + cam,
zero)
437 c1p = max(cdp + cap,
zero)
444 - c10 *
w(i, j, k,
itu1) + c1p *
w(i, j, k + 1,
itu1)
459 qq(i, j, k) =
qq(i, j, k) + c1 &
461 else if (k ==
kl)
then
462 qq(i, j, k) =
qq(i, j, k) + c1 &
465 qq(i, j, k) =
qq(i, j, k) + c1
468 #ifdef TAPENADE_REVERSE
478 #ifdef TAPENADE_REVERSE
480 do ii = 0,
nx *
ny *
nz - 1
482 j = mod(ii /
nx,
ny) + 2
483 k = ii / (
nx *
ny) + 2
493 volmi =
two / (
vol(i, j, k) +
vol(i, j - 1, k))
494 volpi =
two / (
vol(i, j, k) +
vol(i, j + 1, k))
496 xm =
sj(i, j - 1, k, 1) * volmi
497 ym =
sj(i, j - 1, k, 2) * volmi
498 zm =
sj(i, j - 1, k, 3) * volmi
499 xp =
sj(i, j, k, 1) * volpi
500 yp =
sj(i, j, k, 2) * volpi
501 zp =
sj(i, j, k, 3) * volpi
503 xa =
half * (
sj(i, j, k, 1) +
sj(i, j - 1, k, 1)) * voli
504 ya =
half * (
sj(i, j, k, 2) +
sj(i, j - 1, k, 2)) * voli
505 za =
half * (
sj(i, j, k, 3) +
sj(i, j - 1, k, 3)) * voli
506 ttm = xm * xa + ym * ya + zm * za
507 ttp = xp * xa + yp * ya + zp * za
529 nu =
rlv(i, j, k) /
w(i, j, k,
irho)
530 num =
half * (
rlv(i, j - 1, k) /
w(i, j - 1, k,
irho) + nu)
531 nup =
half * (
rlv(i, j + 1, k) /
w(i, j + 1, k,
irho) + nu)
535 c1m = max(cdm + cam,
zero)
536 c1p = max(cdp + cap,
zero)
543 - c10 *
w(i, j, k,
itu1) + c1p *
w(i, j + 1, k,
itu1)
558 qq(i, j, k) =
qq(i, j, k) + c1 &
560 else if (j ==
jl)
then
561 qq(i, j, k) =
qq(i, j, k) + c1 &
564 qq(i, j, k) =
qq(i, j, k) + c1
567 #ifdef TAPENADE_REVERSE
577 #ifdef TAPENADE_REVERSE
579 do ii = 0,
nx *
ny *
nz - 1
581 j = mod(ii /
nx,
ny) + 2
582 k = ii / (
nx *
ny) + 2
592 volmi =
two / (
vol(i, j, k) +
vol(i - 1, j, k))
593 volpi =
two / (
vol(i, j, k) +
vol(i + 1, j, k))
595 xm =
si(i - 1, j, k, 1) * volmi
596 ym =
si(i - 1, j, k, 2) * volmi
597 zm =
si(i - 1, j, k, 3) * volmi
598 xp =
si(i, j, k, 1) * volpi
599 yp =
si(i, j, k, 2) * volpi
600 zp =
si(i, j, k, 3) * volpi
602 xa =
half * (
si(i, j, k, 1) +
si(i - 1, j, k, 1)) * voli
603 ya =
half * (
si(i, j, k, 2) +
si(i - 1, j, k, 2)) * voli
604 za =
half * (
si(i, j, k, 3) +
si(i - 1, j, k, 3)) * voli
605 ttm = xm * xa + ym * ya + zm * za
606 ttp = xp * xa + yp * ya + zp * za
628 nu =
rlv(i, j, k) /
w(i, j, k,
irho)
629 num =
half * (
rlv(i - 1, j, k) /
w(i - 1, j, k,
irho) + nu)
630 nup =
half * (
rlv(i + 1, j, k) /
w(i + 1, j, k,
irho) + nu)
634 c1m = max(cdm + cam,
zero)
635 c1p = max(cdp + cap,
zero)
642 - c10 *
w(i, j, k,
itu1) + c1p *
w(i + 1, j, k,
itu1)
657 qq(i, j, k) =
qq(i, j, k) + c1 &
659 else if (i ==
il)
then
660 qq(i, j, k) =
qq(i, j, k) + c1 &
663 qq(i, j, k) =
qq(i, j, k) + c1
666 #ifdef TAPENADE_REVERSE
688 integer(kind=intType) :: i, j, k, ii
689 real(kind=realtype) :: rblank
691 #ifdef TAPENADE_REVERSE
693 do ii = 0,
nx *
ny *
nz - 1
695 j = mod(ii /
nx,
ny) + 2
696 k = ii / (
nx *
ny) + 2
702 rblank = max(real(
iblank(i, j, k), realtype),
zero)
704 #ifdef TAPENADE_REVERSE
727 integer(kind=intType) :: i, j, k, nn, ii
728 real(kind=realtype),
dimension(2:max(kl, il, jl)) :: bb, cc, dd, ff
729 real(kind=realtype) :: voli, volmi, volpi, xm, ym, zm, xp, yp, zp
730 real(kind=realtype) :: xa, ya, za, ttm, ttp, cnud, cam, cap
731 real(kind=realtype) :: nutm, nutp, num, nup, cdm, cdp
732 real(kind=realtype) :: c1m, c1p, c10, b1, c1, d1, qs
733 real(kind=realtype) :: uu, um, up, factor, f, tu1p(1), nu, rblank
735 logical,
dimension(2:jl, 2:kl),
target :: flagI2, flagIl
736 logical,
dimension(2:il, 2:kl),
target :: flagJ2, flagJl
737 logical,
dimension(2:il, 2:jl),
target :: flagK2, flagKl
738 logical,
dimension(:, :),
pointer :: flag
765 ww =>
w(2, 1:, 1:, 1:);
rrlv =>
rlv(2, 1:, 1:)
777 ww =>
w(1:, 2, 1:, 1:);
rrlv =>
rlv(1:, 2, 1:)
789 ww =>
w(1:, 1:, 2, 1:);
rrlv =>
rlv(1:, 1:, 2)
833 end if testwallfunctions
853 qq(i, j, k) = factor *
qq(i, j, k)
858 if ((i == 2 .and. flagi2(j, k)) .or. &
859 (i ==
il .and. flagil(j, k)) .or. &
860 (j == 2 .and. flagj2(i, k)) .or. &
861 (j ==
jl .and. flagjl(i, k)) .or. &
862 (k == 2 .and. flagk2(i, j)) .or. &
863 (k ==
kl .and. flagkl(i, j)))
qq(i, j, k) =
one
891 volmi =
two / (
vol(i, j, k) +
vol(i, j - 1, k))
892 volpi =
two / (
vol(i, j, k) +
vol(i, j + 1, k))
894 xm =
sj(i, j - 1, k, 1) * volmi
895 ym =
sj(i, j - 1, k, 2) * volmi
896 zm =
sj(i, j - 1, k, 3) * volmi
897 xp =
sj(i, j, k, 1) * volpi
898 yp =
sj(i, j, k, 2) * volpi
899 zp =
sj(i, j, k, 3) * volpi
901 xa =
half * (
sj(i, j, k, 1) +
sj(i, j - 1, k, 1)) * voli
902 ya =
half * (
sj(i, j, k, 2) +
sj(i, j - 1, k, 2)) * voli
903 za =
half * (
sj(i, j, k, 3) +
sj(i, j - 1, k, 3)) * voli
904 ttm = xm * xa + ym * ya + zm * za
905 ttp = xp * xa + yp * ya + zp * za
916 nu =
rlv(i, j, k) /
w(i, j, k,
irho)
917 num =
half * (
rlv(i, j - 1, k) /
w(i, j - 1, k,
irho) + nu)
918 nup =
half * (
rlv(i, j + 1, k) /
w(i, j + 1, k,
irho) + nu)
922 c1m = max(cdm + cam,
zero)
923 c1p = max(cdp + cap,
zero)
937 uu = xa *
w(i, j, k,
ivx) + ya *
w(i, j, k,
ivy) + za *
w(i, j, k,
ivz) - qs
940 if (uu <
zero) um = uu
941 if (uu >
zero) up = uu
950 rblank = max(real(
iblank(i, j, k), realtype),
zero)
955 bb(j) = bb(j) * rblank
956 dd(j) = dd(j) * rblank
960 if ((i == 2 .and. flagi2(j, k)) .or. &
961 (i ==
il .and. flagil(j, k)) .or. &
962 (j == 2 .and. flagj2(i, k)) .or. &
963 (j ==
jl .and. flagjl(i, k)) .or. &
964 (k == 2 .and. flagk2(i, j)) .or. &
965 (k ==
kl .and. flagkl(i, j)))
then
976 f = dd(j) / cc(j + 1)
977 cc(j) = cc(j) - f * bb(j + 1)
978 ff(j) = ff(j) - f * ff(j + 1)
984 ff(2) = ff(2) / cc(2)
986 ff(j) = ff(j) - bb(j) * ff(j - 1)
987 ff(j) = ff(j) / cc(j)
1014 voli =
one /
vol(i, j, k)
1015 volmi =
two / (
vol(i, j, k) +
vol(i - 1, j, k))
1016 volpi =
two / (
vol(i, j, k) +
vol(i + 1, j, k))
1018 xm =
si(i - 1, j, k, 1) * volmi
1019 ym =
si(i - 1, j, k, 2) * volmi
1020 zm =
si(i - 1, j, k, 3) * volmi
1021 xp =
si(i, j, k, 1) * volpi
1022 yp =
si(i, j, k, 2) * volpi
1023 zp =
si(i, j, k, 3) * volpi
1025 xa =
half * (
si(i, j, k, 1) +
si(i - 1, j, k, 1)) * voli
1026 ya =
half * (
si(i, j, k, 2) +
si(i - 1, j, k, 2)) * voli
1027 za =
half * (
si(i, j, k, 3) +
si(i - 1, j, k, 3)) * voli
1028 ttm = xm * xa + ym * ya + zm * za
1029 ttp = xp * xa + yp * ya + zp * za
1040 nu =
rlv(i, j, k) /
w(i, j, k,
irho)
1041 num =
half * (
rlv(i - 1, j, k) /
w(i - 1, j, k,
irho) + nu)
1042 nup =
half * (
rlv(i + 1, j, k) /
w(i + 1, j, k,
irho) + nu)
1046 c1m = max(cdm + cam,
zero)
1047 c1p = max(cdp + cap,
zero)
1061 uu = xa *
w(i, j, k,
ivx) + ya *
w(i, j, k,
ivy) + za *
w(i, j, k,
ivz) - qs
1064 if (uu <
zero) um = uu
1065 if (uu >
zero) up = uu
1074 rblank = max(real(
iblank(i, j, k), realtype),
zero)
1079 bb(i) = bb(i) * rblank
1080 dd(i) = dd(i) * rblank
1084 if ((i == 2 .and. flagi2(j, k)) .or. &
1085 (i ==
il .and. flagil(j, k)) .or. &
1086 (j == 2 .and. flagj2(i, k)) .or. &
1087 (j ==
jl .and. flagjl(i, k)) .or. &
1088 (k == 2 .and. flagk2(i, j)) .or. &
1089 (k ==
kl .and. flagkl(i, j)))
then
1100 f = dd(i) / cc(i + 1)
1101 cc(i) = cc(i) - f * bb(i + 1)
1102 ff(i) = ff(i) - f * ff(i + 1)
1108 ff(2) = ff(2) / cc(2)
1110 ff(i) = ff(i) - bb(i) * ff(i - 1)
1111 ff(i) = ff(i) / cc(i)
1138 voli =
one /
vol(i, j, k)
1139 volmi =
two / (
vol(i, j, k) +
vol(i, j, k - 1))
1140 volpi =
two / (
vol(i, j, k) +
vol(i, j, k + 1))
1142 xm =
sk(i, j, k - 1, 1) * volmi
1143 ym =
sk(i, j, k - 1, 2) * volmi
1144 zm =
sk(i, j, k - 1, 3) * volmi
1145 xp =
sk(i, j, k, 1) * volpi
1146 yp =
sk(i, j, k, 2) * volpi
1147 zp =
sk(i, j, k, 3) * volpi
1149 xa =
half * (
sk(i, j, k, 1) +
sk(i, j, k - 1, 1)) * voli
1150 ya =
half * (
sk(i, j, k, 2) +
sk(i, j, k - 1, 2)) * voli
1151 za =
half * (
sk(i, j, k, 3) +
sk(i, j, k - 1, 3)) * voli
1152 ttm = xm * xa + ym * ya + zm * za
1153 ttp = xp * xa + yp * ya + zp * za
1164 nu =
rlv(i, j, k) /
w(i, j, k,
irho)
1165 num =
half * (
rlv(i, j, k - 1) /
w(i, j, k - 1,
irho) + nu)
1166 nup =
half * (
rlv(i, j, k + 1) /
w(i, j, k + 1,
irho) + nu)
1170 c1m = max(cdm + cam,
zero)
1171 c1p = max(cdp + cap,
zero)
1185 uu = xa *
w(i, j, k,
ivx) + ya *
w(i, j, k,
ivy) + za *
w(i, j, k,
ivz) - qs
1188 if (uu <
zero) um = uu
1189 if (uu >
zero) up = uu
1198 rblank = max(real(
iblank(i, j, k), realtype),
zero)
1203 bb(k) = bb(k) * rblank
1204 dd(k) = dd(k) * rblank
1208 if ((i == 2 .and. flagi2(j, k)) .or. &
1209 (i ==
il .and. flagil(j, k)) .or. &
1210 (j == 2 .and. flagj2(i, k)) .or. &
1211 (j ==
jl .and. flagjl(i, k)) .or. &
1212 (k == 2 .and. flagk2(i, j)) .or. &
1213 (k ==
kl .and. flagkl(i, j)))
then
1224 f = dd(k) / cc(k + 1)
1225 cc(k) = cc(k) - f * bb(k + 1)
1226 ff(k) = ff(k) - f * ff(k + 1)
1232 ff(2) = ff(2) / cc(2)
1234 ff(k) = ff(k) - bb(k) * ff(k - 1)
1235 ff(k) = ff(k) / cc(k)
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
integer(kind=inttype) sectionid
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
real(kind=realtype), parameter three
integer(kind=inttype), parameter imax
integer(kind=inttype), parameter kmin
real(kind=realtype), parameter third
integer(kind=inttype), parameter jmax
real(kind=realtype), parameter six
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
integer(kind=inttype), parameter kmax
integer(kind=inttype), parameter jmin
real(kind=realtype), parameter sixth
real(kind=realtype) timeref
integer(kind=inttype) currentlevel
real(kind=realtype), parameter rsacw1
real(kind=realtype), parameter rsak
real(kind=realtype), parameter rsact4
real(kind=realtype), parameter rsacrot
real(kind=realtype), parameter rsacb2
real(kind=realtype), parameter rsact3
real(kind=realtype), parameter rsacw3
real(kind=realtype), parameter rsacw2
real(kind=realtype), parameter rsacv1
real(kind=realtype), parameter rsacb3
real(kind=realtype), parameter rsacb1
real(kind=realtype) kar2inv
real(kind=realtype), dimension(:, :), pointer rrlv
real(kind=realtype) cb3inv
real(kind=realtype), dimension(:, :, :), pointer ddvt
real(kind=realtype), dimension(:, :), pointer dd2wall
real(kind=realtype), dimension(:, :, :), pointer ddw
subroutine sa_block(resOnly)
real(kind=realtype), dimension(:, :, :), allocatable qq
real(kind=realtype), dimension(:, :, :), pointer ww
type(sectiontype), dimension(:), allocatable sections
subroutine bcturbtreatment
subroutine applyallturbbcthisblock(secondHalo)
subroutine curvetupyp(tup, yp, ntu1, ntu2)
subroutine unsteadyturbterm(mAdv, nAdv, offset, qq)
subroutine saeddyviscosity(iBeg, iEnd, jBeg, jEnd, kBeg, kEnd)
subroutine turbadvection(mAdv, nAdv, offset, qq)