12 use blockpointers,
only: flowdoms,
dw,
il,
jl,
kl,
ie,
je,
ke,
w, &
13 p1,
p,
rev,
w1,
mgifine,
mgjfine,
mgkfine, ndom,
wr,
mgiweight, &
30 integer(kind=intType) :: nn, sps, i, j, k, l
31 integer(kind=intType) :: ii, jj, kk, ii1, jj1, kk1
32 integer(kind=intType) :: fineLevel
34 integer(kind=intType),
dimension(:, :, :),
pointer :: iiblank
36 real(kind=realtype) :: vola, tmp, weigth, blankfact
38 real(kind=realtype),
dimension(:, :, :, :),
pointer :: ww
39 real(kind=realtype),
dimension(:, :, :),
pointer :: pp, vvol, rrev
41 logical :: correctForK
72 domains1:
do nn = 1, ndom
80 ww => flowdoms(nn, finelevel, sps)%w
81 pp => flowdoms(nn, finelevel, sps)%p
82 vvol => flowdoms(nn, finelevel, sps)%vol
83 rrev => flowdoms(nn, finelevel, sps)%rev
84 iiblank => flowdoms(nn, finelevel, sps)%iblank
112 vola = vvol(ii, jj, kk) + vvol(ii1, jj, kk) &
113 + vvol(ii, jj1, kk) + vvol(ii1, jj1, kk) &
114 + vvol(ii, jj, kk1) + vvol(ii1, jj, kk1) &
115 + vvol(ii, jj1, kk1) + vvol(ii1, jj1, kk1)
125 wr(i, j, k, l) = (
dw(ii, jj, kk, l) +
dw(ii, jj1, kk, l) &
126 +
dw(ii1, jj, kk, l) +
dw(ii1, jj1, kk, l) &
127 +
dw(ii, jj, kk1, l) +
dw(ii, jj1, kk1, l) &
128 +
dw(ii1, jj, kk1, l) +
dw(ii1, jj1, kk1, l)) &
136 w(i, j, k,
irho) = (vvol(ii, jj, kk) * ww(ii, jj, kk,
irho) &
137 + vvol(ii, jj1, kk) * ww(ii, jj1, kk,
irho) &
138 + vvol(ii1, jj, kk) * ww(ii1, jj, kk,
irho) &
139 + vvol(ii1, jj1, kk) * ww(ii1, jj1, kk,
irho) &
140 + vvol(ii, jj, kk1) * ww(ii, jj, kk1,
irho) &
141 + vvol(ii, jj1, kk1) * ww(ii, jj1, kk1,
irho) &
142 + vvol(ii1, jj, kk1) * ww(ii1, jj, kk1,
irho) &
143 + vvol(ii1, jj1, kk1) * ww(ii1, jj1, kk1,
irho)) &
148 w(i, j, k,
ivx) = (vvol(ii, jj, kk) * ww(ii, jj, kk,
ivx) &
149 + vvol(ii, jj1, kk) * ww(ii, jj1, kk,
ivx) &
150 + vvol(ii1, jj, kk) * ww(ii1, jj, kk,
ivx) &
151 + vvol(ii1, jj1, kk) * ww(ii1, jj1, kk,
ivx) &
152 + vvol(ii, jj, kk1) * ww(ii, jj, kk1,
ivx) &
153 + vvol(ii, jj1, kk1) * ww(ii, jj1, kk1,
ivx) &
154 + vvol(ii1, jj, kk1) * ww(ii1, jj, kk1,
ivx) &
155 + vvol(ii1, jj1, kk1) * ww(ii1, jj1, kk1,
ivx)) &
160 w(i, j, k,
ivy) = (vvol(ii, jj, kk) * ww(ii, jj, kk,
ivy) &
161 + vvol(ii, jj1, kk) * ww(ii, jj1, kk,
ivy) &
162 + vvol(ii1, jj, kk) * ww(ii1, jj, kk,
ivy) &
163 + vvol(ii1, jj1, kk) * ww(ii1, jj1, kk,
ivy) &
164 + vvol(ii, jj, kk1) * ww(ii, jj, kk1,
ivy) &
165 + vvol(ii, jj1, kk1) * ww(ii, jj1, kk1,
ivy) &
166 + vvol(ii1, jj, kk1) * ww(ii1, jj, kk1,
ivy) &
167 + vvol(ii1, jj1, kk1) * ww(ii1, jj1, kk1,
ivy)) &
172 w(i, j, k,
ivz) = (vvol(ii, jj, kk) * ww(ii, jj, kk,
ivz) &
173 + vvol(ii, jj1, kk) * ww(ii, jj1, kk,
ivz) &
174 + vvol(ii1, jj, kk) * ww(ii1, jj, kk,
ivz) &
175 + vvol(ii1, jj1, kk) * ww(ii1, jj1, kk,
ivz) &
176 + vvol(ii, jj, kk1) * ww(ii, jj, kk1,
ivz) &
177 + vvol(ii, jj1, kk1) * ww(ii, jj1, kk1,
ivz) &
178 + vvol(ii1, jj, kk1) * ww(ii1, jj, kk1,
ivz) &
179 + vvol(ii1, jj1, kk1) * ww(ii1, jj1, kk1,
ivz)) &
184 p(i, j, k) = (vvol(ii, jj, kk) * pp(ii, jj, kk) &
185 + vvol(ii, jj1, kk) * pp(ii, jj1, kk) &
186 + vvol(ii1, jj, kk) * pp(ii1, jj, kk) &
187 + vvol(ii1, jj1, kk) * pp(ii1, jj1, kk) &
188 + vvol(ii, jj, kk1) * pp(ii, jj, kk1) &
189 + vvol(ii, jj1, kk1) * pp(ii, jj1, kk1) &
190 + vvol(ii1, jj, kk1) * pp(ii1, jj, kk1) &
191 + vvol(ii1, jj1, kk1) * pp(ii1, jj1, kk1)) * vola
194 rev(i, j, k) = (vvol(ii, jj, kk) * rrev(ii, jj, kk) &
195 + vvol(ii, jj1, kk) * rrev(ii, jj1, kk) &
196 + vvol(ii1, jj, kk) * rrev(ii1, jj, kk) &
197 + vvol(ii1, jj1, kk) * rrev(ii1, jj1, kk) &
198 + vvol(ii, jj, kk1) * rrev(ii, jj, kk1) &
199 + vvol(ii, jj1, kk1) * rrev(ii, jj1, kk1) &
200 + vvol(ii1, jj, kk1) * rrev(ii1, jj, kk1) &
201 + vvol(ii1, jj1, kk1) * rrev(ii1, jj1, kk1)) * vola
210 2_inttype,
kl, correctfork)
248 domains3:
do nn = 1, ndom
281 p1(i, j, k) =
p(i, j, k)
300 domains4:
do nn = 1, ndom
314 wr(i, j, k, l) = tmp -
dw(i, j, k, l)
333 use blockpointers,
only: flowdoms,
dw,
il,
jl,
kl,
ie,
je,
ke,
w, &
334 p1,
p,
rev,
w1,
mgicoarse,
mgjcoarse,
mgkcoarse, ndom,
wr,
mgiweight, &
351 logical,
intent(in) :: corrections
355 integer(kind=intType) :: sps, nn, i, j, k, l
356 integer(kind=intType) :: ii, jj, kk, ii1, jj1, kk1
357 integer(kind=intType) :: coarseLevel, nVarInt
359 real(kind=realtype) :: fact
360 real(kind=realtype),
dimension(:, :, :, :),
pointer :: ww, ww1, res
361 real(kind=realtype),
dimension(:, :, :),
pointer :: pp, pp1
363 logical :: secondHalo, correctForK
376 if (corrections) nvarint =
nwf
403 domains:
do nn = 1, ndom
410 ww => flowdoms(nn, coarselevel, sps)%w
411 pp => flowdoms(nn, coarselevel, sps)%p
412 ww1 => flowdoms(nn, coarselevel, sps)%w1
413 pp1 => flowdoms(nn, coarselevel, sps)%p1
421 testcorrections1:
if (corrections)
then
429 do k = 1, flowdoms(nn, coarselevel, sps)%ke
430 do j = 1, flowdoms(nn, coarselevel, sps)%je
431 do i = 1, flowdoms(nn, coarselevel, sps)%ie
432 ww(i, j, k,
irho) = ww(i, j, k,
irho) - ww1(i, j, k,
irho)
433 ww(i, j, k,
ivx) = ww(i, j, k,
ivx) - ww1(i, j, k,
ivx)
434 ww(i, j, k,
ivy) = ww(i, j, k,
ivy) - ww1(i, j, k,
ivy)
435 ww(i, j, k,
ivz) = ww(i, j, k,
ivz) - ww1(i, j, k,
ivz)
436 ww(i, j, k,
irhoe) = pp(i, j, k) - pp1(i, j, k)
444 do k = 1, flowdoms(nn, coarselevel, sps)%ke
445 do j = 1, flowdoms(nn, coarselevel, sps)%je
446 do i = 1, flowdoms(nn, coarselevel, sps)%ie
447 ww(i, j, k, l) = ww(i, j, k, l) - ww1(i, j, k, l)
453 else testcorrections1
460 do k = 1, flowdoms(nn, coarselevel, sps)%ke
461 do j = 1, flowdoms(nn, coarselevel, sps)%je
462 do i = 1, flowdoms(nn, coarselevel, sps)%ie
463 ww(i, j, k,
irhoe) = pp(i, j, k)
468 end if testcorrections1
509 res(i, j, k, l) = 0.421875_realtype * ww(ii, jj, kk, l) &
510 + 0.140625_realtype * (ww(ii1, jj, kk, l) &
511 + ww(ii, jj1, kk, l) &
512 + ww(ii, jj, kk1, l)) &
513 + 0.046875_realtype * (ww(ii1, jj1, kk, l) &
514 + ww(ii1, jj, kk1, l) &
515 + ww(ii, jj1, kk1, l)) &
516 + 0.015625_realtype * ww(ii1, jj1, kk1, l)
528 testcorrections2:
if (corrections)
then
541 p(i, j, k) =
p(i, j, k) +
dw(i, j, k,
irhoe)
545 p(i, j, k) = max(
p(i, j, k), &
557 w(i, j, k, l) =
w(i, j, k, l) +
dw(i, j, k, l)
563 else testcorrections2
577 end if testcorrections2
584 2_inttype,
kl, correctfork)
604 .true., .false., .false.)
623 if (.not. corrections)
call applyallbc(secondhalo)
640 if (.not. corrections)
then
671 integer(kind=intType) :: i, j, k, l
679 w(0, j, k, l) =
w(2, j, k, l)
680 w(1, j, k, l) =
w(2, j, k, l)
681 w(
ie, j, k, l) =
w(
il, j, k, l)
682 w(
ib, j, k, l) =
w(
il, j, k, l)
685 p(0, j, k) =
p(2, j, k)
686 p(1, j, k) =
p(2, j, k)
700 w(i, 0, k, l) =
w(i, 2, k, l)
701 w(i, 1, k, l) =
w(i, 2, k, l)
702 w(i,
je, k, l) =
w(i,
jl, k, l)
703 w(i,
jb, k, l) =
w(i,
jl, k, l)
706 p(i, 0, k) =
p(i, 2, k)
707 p(i, 1, k) =
p(i, 2, k)
721 w(i, j, 0, l) =
w(i, j, 2, l)
722 w(i, j, 1, l) =
w(i, j, 2, l)
723 w(i, j,
ke, l) =
w(i, j,
kl, l)
724 w(i, j,
kb, l) =
w(i, j,
kl, l)
727 p(i, j, 0) =
p(i, j, 2)
728 p(i, j, 1) =
p(i, j, 2)
755 integer(kind=intType) :: i, j, k
766 rlv(0, j, k) =
rlv(2, j, k)
767 rlv(1, j, k) =
rlv(2, j, k)
772 rev(0, j, k) =
rev(2, j, k)
773 rev(1, j, k) =
rev(2, j, k)
787 rlv(i, 0, k) =
rlv(i, 2, k)
788 rlv(i, 1, k) =
rlv(i, 2, k)
793 rev(i, 0, k) =
rev(i, 2, k)
794 rev(i, 1, k) =
rev(i, 2, k)
808 rlv(i, j, 0) =
rlv(i, j, 2)
809 rlv(i, j, 1) =
rlv(i, j, 2)
814 rev(i, j, 0) =
rev(i, j, 2)
815 rev(i, j, 1) =
rev(i, j, 2)
843 integer(kind=intType) :: nn
879 if (
cycling(nn - 1) /= 1_inttype)
then
905 "nlLusgs smoother not implemented yet")
908 "nlLusgsLine smoother not implemented &
973 integer(kind=intType) :: i
974 integer(kind=intType) :: thisLevel, maxLevel
987 maxlevel = max(maxlevel, thislevel)
1022 thislevel = thislevel +
cycling(i)
1025 if (thislevel /= 0) &
1026 call returnfail(
"setCyleStrategy",
"Invalid strategy created")
1049 integer(kind=intType),
intent(in) :: nVar
1053 integer(kind=intType) :: i, j, k, l, mm, ll
1059 mm = min(3_inttype,
jl)
1060 ll = max(2_inttype,
ny)
1064 w(1, 2, k, l) =
w(2, 2, k, l)
1065 w(1, mm, k, l) =
w(2, mm, k, l)
1066 w(1,
jl, k, l) =
w(2,
jl, k, l)
1067 w(1, ll, k, l) =
w(2, ll, k, l)
1068 w(
ie, 2, k, l) =
w(
il, 2, k, l)
1069 w(
ie, mm, k, l) =
w(
il, mm, k, l)
1071 w(
ie, ll, k, l) =
w(
il, ll, k, l)
1074 p(1, 2, k) =
p(2, 2, k)
1075 p(1, mm, k) =
p(2, mm, k)
1076 p(1,
jl, k) =
p(2,
jl, k)
1077 p(1, ll, k) =
p(2, ll, k)
1078 p(
ie, 2, k) =
p(
il, 2, k)
1079 p(
ie, mm, k) =
p(
il, mm, k)
1081 p(
ie, ll, k) =
p(
il, ll, k)
1084 rlv(1, 2, k) =
rlv(2, 2, k)
1085 rlv(1, mm, k) =
rlv(2, mm, k)
1087 rlv(1, ll, k) =
rlv(2, ll, k)
1095 rev(1, 2, k) =
rev(2, 2, k)
1096 rev(1, mm, k) =
rev(2, mm, k)
1098 rev(1, ll, k) =
rev(2, ll, k)
1109 mm = min(3_inttype,
kl)
1110 ll = max(2_inttype,
nz)
1114 w(1, j, 2, l) =
w(2, j, 2, l)
1115 w(1, j, mm, l) =
w(2, j, mm, l)
1116 w(1, j,
kl, l) =
w(2, j,
kl, l)
1117 w(1, j, ll, l) =
w(2, j, ll, l)
1118 w(
ie, j, 2, l) =
w(
il, j, 2, l)
1119 w(
ie, j, mm, l) =
w(
il, j, mm, l)
1121 w(
ie, j, ll, l) =
w(
il, j, ll, l)
1124 p(1, j, 2) =
p(2, j, 2)
1125 p(1, j, mm) =
p(2, j, mm)
1126 p(1, j,
kl) =
p(2, j,
kl)
1127 p(1, j, ll) =
p(2, j, ll)
1128 p(
ie, j, 2) =
p(
il, j, 2)
1129 p(
ie, j, mm) =
p(
il, j, mm)
1131 p(
ie, j, ll) =
p(
il, j, ll)
1134 rlv(1, j, 2) =
rlv(2, j, 2)
1135 rlv(1, j, mm) =
rlv(2, j, mm)
1137 rlv(1, j, ll) =
rlv(2, j, ll)
1145 rev(1, j, 2) =
rev(2, j, 2)
1146 rev(1, j, mm) =
rev(2, j, mm)
1148 rev(1, j, ll) =
rev(2, j, ll)
1161 mm = min(3_inttype,
il)
1162 ll = max(2_inttype,
nx)
1166 w(2, 1, k, l) =
w(2, 2, k, l)
1167 w(mm, 1, k, l) =
w(mm, 2, k, l)
1168 w(
il, 1, k, l) =
w(
il, 2, k, l)
1169 w(ll, 1, k, l) =
w(ll, 2, k, l)
1170 w(2,
je, k, l) =
w(2,
jl, k, l)
1171 w(mm,
je, k, l) =
w(mm,
jl, k, l)
1173 w(ll,
je, k, l) =
w(ll,
jl, k, l)
1176 p(2, 1, k) =
p(2, 2, k)
1177 p(mm, 1, k) =
p(mm, 2, k)
1178 p(
il, 1, k) =
p(
il, 2, k)
1179 p(ll, 1, k) =
p(ll, 2, k)
1180 p(2,
je, k) =
p(2,
jl, k)
1181 p(mm,
je, k) =
p(mm,
jl, k)
1183 p(ll,
je, k) =
p(ll,
jl, k)
1186 rlv(2, 1, k) =
rlv(2, 2, k)
1187 rlv(mm, 1, k) =
rlv(mm, 2, k)
1189 rlv(ll, 1, k) =
rlv(ll, 2, k)
1197 rev(2, 1, k) =
rev(2, 2, k)
1198 rev(mm, 1, k) =
rev(mm, 2, k)
1200 rev(ll, 1, k) =
rev(ll, 2, k)
1210 mm = min(3_inttype,
kl)
1211 ll = max(2_inttype,
nz)
1215 w(i, 1, 2, l) =
w(i, 2, 2, l)
1216 w(i, 1, mm, l) =
w(i, 2, mm, l)
1217 w(i, 1,
kl, l) =
w(i, 2,
kl, l)
1218 w(i, 1, ll, l) =
w(i, 2, ll, l)
1219 w(i,
je, 2, l) =
w(i,
jl, 2, l)
1220 w(i,
je, mm, l) =
w(i,
jl, mm, l)
1222 w(i,
je, ll, l) =
w(i,
jl, ll, l)
1225 p(i, 1, 2) =
p(i, 2, 2)
1226 p(i, 1, mm) =
p(i, 2, mm)
1227 p(i, 1,
kl) =
p(i, 2,
kl)
1228 p(i, 1, ll) =
p(i, 2, ll)
1229 p(i,
je, 2) =
p(i,
jl, 2)
1230 p(i,
je, mm) =
p(i,
jl, mm)
1232 p(i,
je, ll) =
p(i,
jl, ll)
1235 rlv(i, 1, 2) =
rlv(i, 2, 2)
1236 rlv(i, 1, mm) =
rlv(i, 2, mm)
1238 rlv(i, 1, ll) =
rlv(i, 2, ll)
1246 rev(i, 1, 2) =
rev(i, 2, 2)
1247 rev(i, 1, mm) =
rev(i, 2, mm)
1249 rev(i, 1, ll) =
rev(i, 2, ll)
1261 mm = min(3_inttype,
il)
1262 ll = max(2_inttype,
nx)
1266 w(2, j, 1, l) =
w(2, j, 2, l)
1267 w(mm, j, 1, l) =
w(mm, j, 2, l)
1268 w(
il, j, 1, l) =
w(
il, j, 2, l)
1269 w(ll, j, 1, l) =
w(ll, j, 2, l)
1270 w(2, j,
ke, l) =
w(2, j,
kl, l)
1271 w(mm, j,
ke, l) =
w(mm, j,
kl, l)
1273 w(ll, j,
ke, l) =
w(ll, j,
kl, l)
1276 p(2, j, 1) =
p(2, j, 2)
1277 p(mm, j, 1) =
p(mm, j, 2)
1278 p(
il, j, 1) =
p(
il, j, 2)
1279 p(ll, j, 1) =
p(ll, j, 2)
1280 p(2, j,
ke) =
p(2, j,
kl)
1281 p(mm, j,
ke) =
p(mm, j,
kl)
1283 p(ll, j,
ke) =
p(ll, j,
kl)
1286 rlv(2, j, 1) =
rlv(2, j, 2)
1287 rlv(mm, j, 1) =
rlv(mm, j, 2)
1289 rlv(ll, j, 1) =
rlv(ll, j, 2)
1297 rev(2, j, 1) =
rev(2, j, 2)
1298 rev(mm, j, 1) =
rev(mm, j, 2)
1300 rev(ll, j, 1) =
rev(ll, j, 2)
1310 mm = min(3_inttype,
jl)
1311 ll = max(2_inttype,
ny)
1315 w(i, 2, 1, l) =
w(i, 2, 2, l)
1316 w(i, mm, 1, l) =
w(i, mm, 2, l)
1317 w(i,
jl, 1, l) =
w(i,
jl, 2, l)
1318 w(i, ll, 1, l) =
w(i, ll, 2, l)
1319 w(i, 2,
ke, l) =
w(i, 2,
kl, l)
1320 w(i, mm,
ke, l) =
w(i, mm,
kl, l)
1322 w(i, ll,
ke, l) =
w(i, ll,
kl, l)
1325 p(i, 2, 1) =
p(i, 2, 2)
1326 p(i, mm, 1) =
p(i, mm, 2)
1327 p(i,
jl, 1) =
p(i,
jl, 2)
1328 p(i, ll, 1) =
p(i, ll, 2)
1329 p(i, 2,
ke) =
p(i, 2,
kl)
1330 p(i, mm,
ke) =
p(i, mm,
kl)
1332 p(i, ll,
ke) =
p(i, ll,
kl)
1335 rlv(i, 2, 1) =
rlv(i, 2, 2)
1336 rlv(i, mm, 1) =
rlv(i, mm, 2)
1338 rlv(i, ll, 1) =
rlv(i, ll, 2)
1346 rev(i, 2, 1) =
rev(i, 2, 2)
1347 rev(i, mm, 1) =
rev(i, mm, 2)
1349 rev(i, ll, 1) =
rev(i, ll, 2)
1375 integer(kind=intType),
intent(in) :: sps, nn, coarseLevel
1376 integer(kind=intType),
intent(in) :: nVarInt
1377 real(kind=realtype),
intent(in) :: fact
1381 integer(kind=intType) :: i, j, l, mm
1382 integer(kind=intType) :: il, jl, kl, ie, je, ke
1384 real(kind=realtype) :: nnx, nny, nnz, vn
1386 real(kind=realtype),
dimension(:, :, :, :),
pointer :: ww
1387 real(kind=realtype),
dimension(:, :, :),
pointer :: ww1, ww2
1398 ww =>
flowdoms(nn, coarselevel, sps)%w
1403 il =
flowdoms(nn, coarselevel, sps)%il
1404 jl =
flowdoms(nn, coarselevel, sps)%jl
1405 kl =
flowdoms(nn, coarselevel, sps)%kl
1407 ie =
flowdoms(nn, coarselevel, sps)%ie
1408 je =
flowdoms(nn, coarselevel, sps)%je
1409 ke =
flowdoms(nn, coarselevel, sps)%ke
1414 subfacescoarse:
do mm = 1,
flowdoms(nn, coarselevel, sps)%nBocos
1421 select case (
flowdoms(nn, coarselevel, 1)%BCFaceID(mm))
1424 ww1 => ww(1, 1:, 1:, :); ww2 => ww(2, 1:, 1:, :)
1426 ww1 => ww(ie, 1:, 1:, :); ww2 => ww(il, 1:, 1:, :)
1428 ww1 => ww(1:, 1, 1:, :); ww2 => ww(1:, 2, 1:, :)
1430 ww1 => ww(1:, je, 1:, :); ww2 => ww(1:, jl, 1:, :)
1432 ww1 => ww(1:, 1:, 1, :); ww2 => ww(1:, 1:, 2, :)
1434 ww1 => ww(1:, 1:, ke, :); ww2 => ww(1:, 1:, kl, :)
1442 select case (
flowdoms(nn, coarselevel, 1)%BCType(mm))
1464 nnx =
bcdata(mm)%norm(i, j, 1)
1465 nny =
bcdata(mm)%norm(i, j, 2)
1466 nnz =
bcdata(mm)%norm(i, j, 3)
1468 vn =
two * (ww2(i, j,
ivx) * nnx + ww2(i, j,
ivy) * nny &
1469 + ww2(i, j,
ivz) * nnz)
1475 ww1(i, j,
ivx) = ww2(i, j,
ivx) - vn * nnx
1476 ww1(i, j,
ivy) = ww2(i, j,
ivy) - vn * nny
1477 ww1(i, j,
ivz) = ww2(i, j,
ivz) - vn * nnz
1481 ww1(i, j, l) = ww2(i, j, l)
1495 ww1(i, j, l) = fact * ww2(i, j, l)
1501 end do subfacescoarse
subroutine applyallbc(secondHalo)
type(blocktype), dimension(:, :, :), allocatable, target flowdoms
real(kind=realtype), dimension(:, :, :, :), pointer w1
integer(kind=inttype), dimension(:, :), pointer mgjcoarse
integer(kind=inttype), dimension(:, :), pointer mgkcoarse
real(kind=realtype), dimension(:, :, :, :), pointer wr
integer(kind=inttype), dimension(:, :), pointer mgifine
real(kind=realtype), dimension(:, :, :), pointer p
real(kind=realtype), dimension(:, :, :, :), pointer w
real(kind=realtype), dimension(:, :, :), pointer p1
integer(kind=inttype), dimension(:, :), pointer mgjfine
integer(kind=inttype), dimension(:, :, :), pointer iblank
integer(kind=inttype), dimension(:, :), pointer mgicoarse
real(kind=realtype), dimension(:, :, :), pointer rlv
integer(kind=inttype), dimension(:, :), pointer mgkfine
real(kind=realtype), dimension(:, :, :), pointer rev
real(kind=realtype), dimension(:, :, :, :), pointer dw
real(kind=realtype), dimension(:), pointer mgkweight
real(kind=realtype), dimension(:), pointer mgiweight
real(kind=realtype), dimension(:), pointer mgjweight
integer(kind=inttype), parameter domaininterfacep
integer(kind=inttype), parameter slidinginterface
integer(kind=inttype), parameter oversetouterbound
real(kind=realtype), parameter zero
integer(kind=inttype), parameter domaininterfacerhouvw
integer(kind=inttype), parameter domaininterfacerho
integer(kind=inttype), parameter imax
integer(kind=inttype), parameter kmin
integer(kind=inttype), parameter jmax
integer(kind=inttype), parameter symm
integer(kind=inttype), parameter bcdirichlet0
real(kind=realtype), parameter one
integer(kind=inttype), parameter imin
integer(kind=inttype), parameter domaininterfacetotal
real(kind=realtype), parameter two
integer(kind=inttype), parameter domaininterfaceall
integer(kind=inttype), parameter kmax
integer(kind=inttype), parameter ransequations
integer(kind=inttype), parameter jmin
subroutine computelamviscosity(includeHalos)
subroutine computeetotblock(iStart, iEnd, jStart, jEnd, kStart, kEnd, correctForK)
integer(kind=inttype) nt1
real(kind=realtype) pinfcorr
integer(kind=inttype) nwf
real(kind=realtype) rhoinf
subroutine whalo2(level, start, end, commPressure, commGamma, commViscous)
subroutine whalo1(level, start, end, commPressure, commGamma, commViscous)
integer(kind=inttype) currentlevel
character(len=maxitertypelen) itertype
integer(kind=inttype), dimension(:), allocatable cycling
integer(kind=inttype) groundlevel
integer(kind=inttype) rkstage
logical exchangepressureearly
integer(kind=inttype) approxtotalits
integer(kind=inttype) nstepscycling
subroutine extrapolatesolution
subroutine transfertocoarsegrid
subroutine setcorrectionscoarsehalos(sps, nn, coarseLevel, fact, nVarInt)
subroutine executemgcycle
subroutine setcornerrowhalos(nVar)
subroutine extrapolateviscosities
subroutine setcyclestrategy
subroutine transfertofinegrid(corrections)
subroutine initres(varStart, varEnd)
subroutine rungekuttasmoother
subroutine timestep(onlyRadii)
subroutine turbsolveddadi
subroutine applyallturbbc(secondHalo)
subroutine computeeddyviscosity(includeHalos)
subroutine returnfail(routineName, errorMessage)
logical function getcorrectfork()
subroutine setpointers(nn, mm, ll)
subroutine terminate(routineName, errorMessage)