11 subroutine computettot_b(rho, rhod, u, ud, v, vd, w, wd, p, pd, ttot, &
25 real(kind=realtype),
intent(in) :: rho, p, u, v, w
26 real(kind=realtype) :: rhod, pd, ud, vd, wd
27 real(kind=realtype) :: ttot
28 real(kind=realtype) :: ttotd
32 integer(kind=inttype) :: i
33 real(kind=realtype) :: govgm1, t, kin
34 real(kind=realtype) :: td, kind0
35 real(kind=realtype) :: tempd
36 real(kind=realtype) :: temp
37 real(kind=realtype) :: tempd0
45 kin =
half*(u*u+v*v+w*w)
47 temp = rho*kin/(govgm1*p)
49 tempd0 = t*ttotd/(govgm1*p)
50 rhod = rhod + kin*tempd0
53 pd = pd + tempd - govgm1*temp*tempd0
58 tempd0 = -(p*tempd/(rho*
rgas))
59 rhod = rhod +
rgas*tempd0
78 real(kind=realtype),
intent(in) :: rho, p, u, v, w
79 real(kind=realtype),
intent(out) :: ttot
83 integer(kind=inttype) :: i
84 real(kind=realtype) :: govgm1, t, kin
92 kin =
half*(u*u+v*v+w*w)
93 ttot = t*(
one+rho*kin/(govgm1*p))
100 &
'variable cp formulation not implemented yet')
116 integer(kind=inttype),
intent(in) :: mm
117 real(kind=realtype),
dimension(mm),
intent(in) :: t
118 real(kind=realtype),
dimension(mm),
intent(out) :: gamma
122 integer(kind=inttype) :: i, ii, nn, start
123 real(kind=realtype) :: cp, t2
139 subroutine computeptot_b(rho, rhod, u, ud, v, vd, w, wd, p, pd, ptot, &
150 real(kind=realtype),
intent(in) :: rho, p, u, v, w
151 real(kind=realtype) :: rhod, pd, ud, vd, wd
152 real(kind=realtype) :: ptot
153 real(kind=realtype) :: ptotd
157 real(kind=realtype),
parameter :: dtstop=0.01_realtype
161 integer(kind=inttype) :: i, ii, mm, nn, nnt, start
162 real(kind=realtype) :: govgm1, kin
163 real(kind=realtype) :: kind0
164 real(kind=realtype) :: t, t2, tt, dt, h, htot, cp, scale, alp
165 real(kind=realtype) :: intcport, intcportt, intcporttt
166 real(kind=realtype) :: temp
167 real(kind=realtype) :: tempd
175 kin =
half*(u*u+v*v+w*w)
177 temp = rho*kin/(govgm1*p)
178 if (
one + temp .le. 0.0_8 .and. (govgm1 .eq. 0.0_8 .or. govgm1 &
179 & .ne. int(govgm1)))
then
182 tempd = (
one+temp)**(govgm1-1)*ptotd
184 pd = pd + (
one+temp)**govgm1*ptotd - govgm1*temp*tempd
185 rhod = rhod + kin*tempd
205 real(kind=realtype),
intent(in) :: rho, p, u, v, w
206 real(kind=realtype),
intent(out) :: ptot
210 real(kind=realtype),
parameter :: dtstop=0.01_realtype
214 integer(kind=inttype) :: i, ii, mm, nn, nnt, start
215 real(kind=realtype) :: govgm1, kin
216 real(kind=realtype) :: t, t2, tt, dt, h, htot, cp, scale, alp
217 real(kind=realtype) :: intcport, intcportt, intcporttt
225 kin =
half*(u*u+v*v+w*w)
226 ptot = p*(
one+rho*kin/(govgm1*p))**govgm1
241 use blockpointers,
only :
ie,
je,
ke,
w,
wd,
p,
pd,
aa,
aad,
gamma
247 real(kind=realtype),
parameter :: twothird=
two*
third
248 integer(kind=inttype) :: i, j, k, ii
249 real(kind=realtype) :: pp
250 real(kind=realtype) :: ppd
251 logical :: correctfork
253 real(kind=realtype) :: temp
254 real(kind=realtype) :: temp0
255 real(kind=realtype) :: tempd
256 real(kind=realtype) :: tempd0
259 if (correctfork)
then
263 j = mod(ii/
ie,
je) + 1
265 pp =
p(i, j, k) - twothird*
w(i, j, k,
irho)*
w(i, j, k,
itu1)
266 temp =
w(i, j, k,
irho)
267 tempd =
gamma(i, j, k)*
aad(i, j, k)/temp
270 wd(i, j, k,
irho) =
wd(i, j, k,
irho) - pp*tempd/temp -
w(i, j, &
271 & k,
itu1)*twothird*ppd
272 pd(i, j, k) =
pd(i, j, k) + ppd
280 j = mod(ii/
ie,
je) + 1
282 temp0 =
w(i, j, k,
irho)
283 tempd0 =
gamma(i, j, k)*
aad(i, j, k)/temp0
285 pd(i, j, k) =
pd(i, j, k) + tempd0
286 wd(i, j, k,
irho) =
wd(i, j, k,
irho) -
p(i, j, k)*tempd0/temp0
302 real(kind=realtype),
parameter :: twothird=
two*
third
303 integer(kind=inttype) :: i, j, k, ii
304 real(kind=realtype) :: pp
305 logical :: correctfork
309 if (correctfork)
then
313 j = mod(ii/
ie,
je) + 1
315 pp =
p(i, j, k) - twothird*
w(i, j, k,
irho)*
w(i, j, k,
itu1)
322 j = mod(ii/
ie,
je) + 1
353 integer(kind=inttype),
intent(in) :: istart, iend, jstart, jend
354 integer(kind=inttype),
intent(in) :: kstart, kend
355 logical,
intent(in) :: correctfork
359 integer(kind=inttype) :: i, j, k, ii, isize, jsize, ksize
360 real(kind=realtype) :: ovgm1, factk, scale
362 real(kind=realtype) :: tmp
363 real(kind=realtype) :: tmpd
364 real(kind=realtype) :: temp
365 real(kind=realtype) :: temp0
366 real(kind=realtype) :: temp1
367 real(kind=realtype) :: temp2
368 real(kind=realtype) :: tempd
369 real(kind=realtype) :: tmp0
370 real(kind=realtype) :: tmpd0
371 real(kind=realtype) :: tempd0
381 isize = iend - istart + 1
382 jsize = jend - jstart + 1
383 ksize = kend - kstart + 1
385 if (correctfork)
then
387 do ii=0,isize*jsize*ksize-1
388 i = mod(ii, isize) + istart
389 j = mod(ii/isize, jsize) + jstart
390 k = ii/(isize*jsize) + kstart
393 temp =
w(i, j, k,
ivz)
394 temp0 =
w(i, j, k,
ivy)
395 temp1 =
w(i, j, k,
ivx)
396 pd(i, j, k) =
pd(i, j, k) + ovgm1*tmpd
397 wd(i, j, k,
irho) =
wd(i, j, k,
irho) + ((temp1**2+temp0**2+&
398 & temp**2)*
half-
w(i, j, k,
itu1)*factk)*tmpd
402 wd(i, j, k,
ivx) =
wd(i, j, k,
ivx) + 2*temp1*tempd
403 wd(i, j, k,
ivy) =
wd(i, j, k,
ivy) + 2*temp0*tempd
404 wd(i, j, k,
ivz) =
wd(i, j, k,
ivz) + 2*temp*tempd
408 do ii=0,isize*jsize*ksize-1
409 i = mod(ii, isize) + istart
410 j = mod(ii/isize, jsize) + jstart
411 k = ii/(isize*jsize) + kstart
414 temp2 =
w(i, j, k,
ivz)
415 temp1 =
w(i, j, k,
ivy)
416 temp0 =
w(i, j, k,
ivx)
417 pd(i, j, k) =
pd(i, j, k) + ovgm1*tmpd0
418 wd(i, j, k,
irho) =
wd(i, j, k,
irho) + (temp0**2+temp1**2+&
419 & temp2**2)*
half*tmpd0
421 wd(i, j, k,
ivx) =
wd(i, j, k,
ivx) + 2*temp0*tempd0
422 wd(i, j, k,
ivy) =
wd(i, j, k,
ivy) + 2*temp1*tempd0
423 wd(i, j, k,
ivz) =
wd(i, j, k,
ivz) + 2*temp2*tempd0
448 integer(kind=inttype),
intent(in) :: istart, iend, jstart, jend
449 integer(kind=inttype),
intent(in) :: kstart, kend
450 logical,
intent(in) :: correctfork
454 integer(kind=inttype) :: i, j, k, ii, isize, jsize, ksize
455 real(kind=realtype) :: ovgm1, factk, scale
466 isize = iend - istart + 1
467 jsize = jend - jstart + 1
468 ksize = kend - kstart + 1
470 if (correctfork)
then
472 do ii=0,isize*jsize*ksize-1
473 i = mod(ii, isize) + istart
474 j = mod(ii/isize, jsize) + jstart
475 k = ii/(isize*jsize) + kstart
477 &
w(i, j, k,
ivx)**2+
w(i, j, k,
ivy)**2+
w(i, j, k,
ivz)**2) - &
482 do ii=0,isize*jsize*ksize-1
483 i = mod(ii, isize) + istart
484 j = mod(ii/isize, jsize) + jstart
485 k = ii/(isize*jsize) + kstart
487 &
w(i, j, k,
ivx)**2+
w(i, j, k,
ivy)**2+
w(i, j, k,
ivz)**2)
496 subroutine etot_b(rho, rhod, u, ud, v, vd, w, wd, p, pd, k, kd, etotal&
497 & , etotald, correctfork)
510 real(kind=realtype),
intent(in) :: rho, p, k
511 real(kind=realtype) :: rhod, pd, kd
512 real(kind=realtype),
intent(in) :: u, v, w
513 real(kind=realtype) :: ud, vd, wd
514 real(kind=realtype) :: etotal
515 real(kind=realtype) :: etotald
516 logical,
intent(in) :: correctfork
520 integer(kind=inttype) :: i
521 real(kind=realtype) :: tempd
523 call pushreal8(etotal)
524 call eint(rho, p, k, etotal, correctfork)
525 rhod = rhod + (etotal+
half*(u**2+v**2+w**2))*etotald
526 tempd =
half*rho*etotald
527 etotald = rho*etotald
531 call popreal8(etotal)
532 call eint_b(rho, rhod, p, pd, k, kd, etotal, etotald, correctfork)
535 subroutine etot(rho, u, v, w, p, k, etotal, correctfork)
548 real(kind=realtype),
intent(in) :: rho, p, k
549 real(kind=realtype),
intent(in) :: u, v, w
550 real(kind=realtype),
intent(out) :: etotal
551 logical,
intent(in) :: correctfork
555 integer(kind=inttype) :: i
557 call eint(rho, p, k, etotal, correctfork)
558 etotal = rho*(etotal+
half*(u*u+v*v+w*w))
565 subroutine eint_b(rho, rhod, p, pd, k, kd, einternal, einternald, &
583 real(kind=realtype),
intent(in) :: rho, p, k
584 real(kind=realtype) :: rhod, pd, kd
585 real(kind=realtype) :: einternal
586 real(kind=realtype) :: einternald
587 logical,
intent(in) :: correctfork
591 real(kind=realtype),
parameter :: twothird=
two*
third
595 integer(kind=inttype) :: i, nn, mm, ii, start
596 real(kind=realtype) :: ovgm1, factk, pp, t, t2, scale
597 real(kind=realtype) :: tempd
607 if (correctfork)
then
609 kd = kd - factk*einternald
611 tempd = ovgm1*einternald/rho
613 rhod = rhod - p*tempd/rho
619 subroutine eint(rho, p, k, einternal, correctfork)
636 real(kind=realtype),
intent(in) :: rho, p, k
637 real(kind=realtype),
intent(out) :: einternal
638 logical,
intent(in) :: correctfork
642 real(kind=realtype),
parameter :: twothird=
two*
third
646 integer(kind=inttype) :: i, nn, mm, ii, start
647 real(kind=realtype) :: ovgm1, factk, pp, t, t2, scale
655 einternal = ovgm1*p/rho
658 if (correctfork)
then
660 einternal = einternal - factk*k
679 logical,
intent(in) :: includehalos
681 integer(kind=inttype) :: i, j, k, ii
682 real(kind=realtype) :: gm1, v2
683 real(kind=realtype) :: v2d
684 integer(kind=inttype) :: ibeg, iend, isize, jbeg, jend, jsize, kbeg&
688 real(kind=realtype) :: tempd
691 if (includehalos)
then
706 isize = iend - ibeg + 1
707 jsize = jend - jbeg + 1
708 ksize = kend - kbeg + 1
710 do ii=0,isize*jsize*ksize-1
711 i = mod(ii, isize) + ibeg
712 j = mod(ii/isize, jsize) + jbeg
713 k = ii/(isize*jsize) + kbeg
714 v2 =
w(i, j, k,
ivx)**2 +
w(i, j, k,
ivy)**2 +
w(i, j, k,
ivz)**2
716 if (
p(i, j, k) .lt. 1.e-4_realtype*
pinfcorr)
then
720 tempd = gm1*
pd(i, j, k)
740 logical,
intent(in) :: includehalos
742 integer(kind=inttype) :: i, j, k, ii
743 real(kind=realtype) :: gm1, v2
744 integer(kind=inttype) :: ibeg, iend, isize, jbeg, jend, jsize, kbeg&
750 if (includehalos)
then
765 isize = iend - ibeg + 1
766 jsize = jend - jbeg + 1
767 ksize = kend - kbeg + 1
769 do ii=0,isize*jsize*ksize-1
770 i = mod(ii, isize) + ibeg
771 j = mod(ii/isize, jsize) + jbeg
772 k = ii/(isize*jsize) + kbeg
773 v2 =
w(i, j, k,
ivx)**2 +
w(i, j, k,
ivy)**2 +
w(i, j, k,
ivz)**2
775 if (
p(i, j, k) .lt. 1.e-4_realtype*
pinfcorr)
then
778 p(i, j, k) =
p(i, j, k)
801 integer(kind=inttype),
intent(in) :: ibeg, iend, jbeg, jend, kbeg, &
803 integer(kind=inttype),
intent(in) :: pointeroffset
807 real(kind=realtype),
parameter :: dtstop=0.01_realtype
808 real(kind=realtype),
parameter :: twothird=
two*
third
812 integer(kind=inttype) :: i, j, k, ip, jp, kp, nn, ii, start
813 real(kind=realtype) :: gm1, factk, v2, scale, e0, e
814 real(kind=realtype) :: trefinv, t, dt, t2, alp, cv
818 real(kind=realtype) :: abs0
833 kp = k + pointeroffset
835 jp = j + pointeroffset
837 ip = i + pointeroffset
838 v2 =
w(ip, jp, kp,
ivx)**2 +
w(ip, jp, kp,
ivy)**2 +
w(ip, &
842 if (
w(i, j, k,
irhoe) .lt. 1.e-5_realtype*
pinf)
then
853 kp = k + pointeroffset
855 jp = j + pointeroffset
857 ip = i + pointeroffset
874 kp = k + pointeroffset
876 jp = j + pointeroffset
878 ip = i + pointeroffset
882 v2 =
w(ip, jp, kp,
ivx)**2 +
w(ip, jp, kp,
ivy)**2 +
w(ip, &
891 kp = k + pointeroffset
893 jp = j + pointeroffset
895 ip = i + pointeroffset
898 e0 = scale*
w(i, j, k,
irhoe)
900 if (e0 .le.
cpeint(0))
then
918 if (e0 .gt.
cpeint(nn))
then
924 else if (e0 .ge.
cpeint(nn-1))
then
947 if (
cptempfit(nn)%exponents(ii) .eq. -1_inttype) &
949 e = e +
cptempfit(nn)%constants(ii)*log(t)
951 e = e +
cptempfit(nn)%constants(ii)*t2*t/(&
965 if (abs0 .lt. dtstop)
then
981 if (
w(i, j, k,
irhoe) .lt. 1.e-5_realtype*
pinf)
then
987 & twothird*
w(ip, jp, kp,
irho)*
w(ip, jp, kp,
itu1)
1015 logical,
intent(in) :: includehalos
1019 real(kind=realtype),
parameter :: twothird=
two*
third
1023 integer(kind=inttype) :: i, j, k, ii
1024 real(kind=realtype) :: musuth, tsuth, ssuth, t, pp
1025 real(kind=realtype) :: musuthd, tsuthd, ssuthd, td, ppd
1026 logical :: correctfork
1027 integer(kind=inttype) :: ibeg, iend, isize, jbeg, jend, jsize, kbeg&
1030 real(kind=realtype) :: temp
1031 real(kind=realtype) :: temp0
1032 real(kind=realtype) :: tempd
1033 real(kind=realtype) :: tempd0
1034 real(kind=realtype) :: temp1
1035 real(kind=realtype) :: tempd1
1045 if (includehalos)
then
1062 if (correctfork)
then
1063 isize = iend - ibeg + 1
1064 jsize = jend - jbeg + 1
1065 ksize = kend - kbeg + 1
1070 do ii=0,isize*jsize*ksize-1
1071 i = mod(ii, isize) + ibeg
1072 j = mod(ii/isize, jsize) + jbeg
1073 k = ii/(isize*jsize) + kbeg
1074 pp =
p(i, j, k) - twothird*
w(i, j, k,
irho)*
w(i, j, k,
itu1)
1077 temp = musuth*(tsuth+ssuth)/(t+ssuth)
1078 tempd0 = temp0**1.5_realtype*
rlvd(i, j, k)/(t+ssuth)
1079 tempd = 1.5_realtype*temp0**0.5*temp*
rlvd(i, j, k)/tsuth
1080 rlvd(i, j, k) = 0.0_8
1081 tsuthd = tsuthd + musuth*tempd0 - temp0*tempd
1082 musuthd = musuthd + (tsuth+ssuth)*tempd0
1083 tempd1 = -(temp*tempd0)
1085 ssuthd = ssuthd + musuth*tempd0 + tempd1
1086 temp =
w(i, j, k,
irho)
1089 tempd = -(pp*td/temp0**2)
1092 & ,
itu1)*twothird*ppd
1093 pd(i, j, k) =
pd(i, j, k) + ppd
1100 isize = iend - ibeg + 1
1101 jsize = jend - jbeg + 1
1102 ksize = kend - kbeg + 1
1107 do ii=0,isize*jsize*ksize-1
1108 i = mod(ii, isize) + ibeg
1109 j = mod(ii/isize, jsize) + jbeg
1110 k = ii/(isize*jsize) + kbeg
1115 temp0 = musuth*(tsuth+ssuth)/(t+ssuth)
1116 tempd = temp1**1.5_realtype*
rlvd(i, j, k)/(t+ssuth)
1117 tempd1 = 1.5_realtype*temp1**0.5*temp0*
rlvd(i, j, k)/tsuth
1118 rlvd(i, j, k) = 0.0_8
1119 tsuthd = tsuthd + musuth*tempd - temp1*tempd1
1120 musuthd = musuthd + (tsuth+ssuth)*tempd
1121 tempd0 = -(temp0*tempd)
1122 td = tempd1 + tempd0
1123 ssuthd = ssuthd + musuth*tempd + tempd0
1124 temp1 =
w(i, j, k,
irho)
1126 pd(i, j, k) =
pd(i, j, k) + td/temp0
1127 tempd = -(
p(i, j, k)*td/temp0**2)
1152 logical,
intent(in) :: includehalos
1156 real(kind=realtype),
parameter :: twothird=
two*
third
1160 integer(kind=inttype) :: i, j, k, ii
1161 real(kind=realtype) :: musuth, tsuth, ssuth, t, pp
1162 logical :: correctfork
1163 integer(kind=inttype) :: ibeg, iend, isize, jbeg, jend, jsize, kbeg&
1177 if (includehalos)
then
1194 if (correctfork)
then
1195 isize = iend - ibeg + 1
1196 jsize = jend - jbeg + 1
1197 ksize = kend - kbeg + 1
1199 do ii=0,isize*jsize*ksize-1
1200 i = mod(ii, isize) + ibeg
1201 j = mod(ii/isize, jsize) + jbeg
1202 k = ii/(isize*jsize) + kbeg
1203 pp =
p(i, j, k) - twothird*
w(i, j, k,
irho)*
w(i, j, k,
itu1)
1205 rlv(i, j, k) = musuth*((tsuth+ssuth)/(t+ssuth))*(t/tsuth)**&
1211 isize = iend - ibeg + 1
1212 jsize = jend - jbeg + 1
1213 ksize = kend - kbeg + 1
1215 do ii=0,isize*jsize*ksize-1
1216 i = mod(ii, isize) + ibeg
1217 j = mod(ii/isize, jsize) + jbeg
1218 k = ii/(isize*jsize) + kbeg
1222 rlv(i, j, k) = musuth*((tsuth+ssuth)/(t+ssuth))*(t/tsuth)**&
1243 real(kind=realtype),
dimension(3) :: refdir1, refdir2
1276 real(kind=realtype),
dimension(3) :: refdir1, refdir2
1302 & , rotationpoint, t)
1321 real(kind=realtype),
intent(in) :: t
1322 real(kind=realtype),
dimension(3) :: rotationpoint
1323 real(kind=realtype),
dimension(3, 3) :: rotationmatrix
1324 real(kind=realtype),
dimension(3, 3) :: rotationmatrixd
1328 integer(kind=inttype) :: i, j
1329 real(kind=realtype) :: phi, dphix, dphiy, dphiz
1330 real(kind=realtype) :: dphixd, dphiyd, dphizd
1331 real(kind=realtype) :: cosx, cosy, cosz, sinx, siny, sinz
1332 real(kind=realtype),
dimension(3, 3) :: dm, m
1333 real(kind=realtype),
dimension(3, 3) :: dmd
1364 m(1, 2) = sinx*siny*cosz - cosx*sinz
1365 m(2, 2) = sinx*siny*sinz + cosx*cosz
1367 m(1, 3) = cosx*siny*cosz + sinx*sinz
1368 m(2, 3) = cosx*siny*sinz - sinx*cosz
1373 dmd(i, 1) = dmd(i, 1) + m(j, 1)*rotationmatrixd(i, j)
1374 dmd(i, 2) = dmd(i, 2) + m(j, 2)*rotationmatrixd(i, j)
1375 dmd(i, 3) = dmd(i, 3) + m(j, 3)*rotationmatrixd(i, j)
1376 rotationmatrixd(i, j) = 0.0_8
1379 dphixd = cosx*cosy*dmd(3, 2) - sinx*cosy*dmd(3, 3) + (cosx*siny*sinz&
1380 & -sinx*cosz)*dmd(2, 2) - (sinx*siny*sinz+cosx*cosz)*dmd(2, 3) + (&
1381 & cosx*sinz-sinx*siny*cosz)*dmd(1, 3) + (sinx*sinz+cosx*siny*cosz)*&
1383 dphiyd = sinz*cosx*cosy*dmd(2, 3) - cosx*siny*dmd(3, 3) - sinx*siny*&
1384 & dmd(3, 2) - cosy*dmd(3, 1) + sinz*sinx*cosy*dmd(2, 2) + cosz*cosx*&
1385 & cosy*dmd(1, 3) - siny*sinz*dmd(2, 1) + cosz*sinx*cosy*dmd(1, 2) - &
1386 & siny*cosz*dmd(1, 1)
1390 dphizd = (cosx*siny*cosz+sinx*sinz)*dmd(2, 3) + (sinx*siny*cosz-cosx&
1391 & *sinz)*dmd(2, 2) + cosy*cosz*dmd(2, 1) + (sinx*cosz-cosx*siny*sinz&
1392 & )*dmd(1, 3) + (-(cosx*cosz)-sinx*siny*sinz)*dmd(1, 2) - cosy*sinz*&
1431 real(kind=realtype),
intent(in) :: t
1432 real(kind=realtype),
dimension(3),
intent(out) :: rotationpoint
1433 real(kind=realtype),
dimension(3, 3),
intent(out) :: rotationmatrix
1437 integer(kind=inttype) :: i, j
1438 real(kind=realtype) :: phi, dphix, dphiy, dphiz
1439 real(kind=realtype) :: cosx, cosy, cosz, sinx, siny, sinz
1440 real(kind=realtype),
dimension(3, 3) :: dm, m
1474 dm(1, 1) = -(cosy*sinz*dphiz)
1475 dm(1, 2) = (-(cosx*cosz)-sinx*siny*sinz)*dphiz
1476 dm(1, 3) = (sinx*cosz-cosx*siny*sinz)*dphiz
1477 dm(2, 1) = cosy*cosz*dphiz
1478 dm(2, 2) = (sinx*siny*cosz-cosx*sinz)*dphiz
1479 dm(2, 3) = (cosx*siny*cosz+sinx*sinz)*dphiz
1484 dm(1, 1) = dm(1, 1) - siny*cosz*dphiy
1485 dm(1, 2) = dm(1, 2) + sinx*cosy*cosz*dphiy
1486 dm(1, 3) = dm(1, 3) + cosx*cosy*cosz*dphiy
1487 dm(2, 1) = dm(2, 1) - siny*sinz*dphiy
1488 dm(2, 2) = dm(2, 2) + sinx*cosy*sinz*dphiy
1489 dm(2, 3) = dm(2, 3) + cosx*cosy*sinz*dphiy
1490 dm(3, 1) = dm(3, 1) - cosy*dphiy
1491 dm(3, 2) = dm(3, 2) - sinx*siny*dphiy
1492 dm(3, 3) = dm(3, 3) - cosx*siny*dphiy
1494 dm(1, 2) = dm(1, 2) + (sinx*sinz+cosx*siny*cosz)*dphix
1495 dm(1, 3) = dm(1, 3) + (cosx*sinz-sinx*siny*cosz)*dphix
1496 dm(2, 2) = dm(2, 2) + (cosx*siny*sinz-sinx*cosz)*dphix
1497 dm(2, 3) = dm(2, 3) - (sinx*siny*sinz+cosx*cosz)*dphix
1498 dm(3, 2) = dm(3, 2) + cosx*cosy*dphix
1499 dm(3, 3) = dm(3, 3) - sinx*cosy*dphix
1504 m(1, 2) = sinx*siny*cosz - cosx*sinz
1505 m(2, 2) = sinx*siny*sinz + cosx*cosz
1507 m(1, 3) = cosx*siny*cosz + sinx*sinz
1508 m(2, 3) = cosx*siny*sinz - sinx*cosz
1515 rotationmatrix(i, j) = dm(i, 1)*m(j, 1) + dm(i, 2)*m(j, 2) + dm(&
1537 & winddirection, winddirectiond, liftindex)
1562 real(kind=realtype),
dimension(3),
intent(in) :: refdirection
1563 real(kind=realtype) :: alpha, beta
1564 real(kind=realtype) :: alphad, betad
1565 real(kind=realtype),
dimension(3) :: winddirection
1566 real(kind=realtype),
dimension(3) :: winddirectiond
1567 integer(kind=inttype) :: liftindex
1571 real(kind=realtype) :: rnorm, x1, y1, z1, xbn, ybn, zbn, xw, yw, zw
1572 real(kind=realtype) :: x1d, y1d, z1d, xbnd, ybnd, zbnd, xwd, ywd, &
1574 real(kind=realtype) :: tmp
1575 real(kind=realtype) :: tmpd
1579 rnorm = sqrt(refdirection(1)**2 + refdirection(2)**2 + refdirection(&
1581 xbn = refdirection(1)/rnorm
1582 ybn = refdirection(2)/rnorm
1583 zbn = refdirection(3)/rnorm
1595 if (liftindex .eq. 2)
then
1604 call pushcontrol2b(0)
1605 else if (liftindex .eq. 3)
then
1612 call pushcontrol2b(1)
1614 call pushcontrol2b(2)
1616 zwd = winddirectiond(3)
1617 winddirectiond(3) = 0.0_8
1618 ywd = winddirectiond(2)
1619 winddirectiond(2) = 0.0_8
1620 xwd = winddirectiond(1)
1621 winddirectiond(1) = 0.0_8
1622 call popcontrol2b(branch)
1623 if (branch .eq. 0)
then
1626 & , x1d, y1, y1d, z1, z1d)
1627 betad = betad - tmpd
1631 & , xbnd, ybn, ybnd, zbn, zbnd)
1632 alphad = alphad - tmpd
1633 else if (branch .eq. 1)
then
1635 & x1, x1d, y1, y1d, z1, z1d)
1637 & , xbn, xbnd, ybn, ybnd, zbn, zbnd)
1667 real(kind=realtype),
dimension(3),
intent(in) :: refdirection
1668 real(kind=realtype) :: alpha, beta
1669 real(kind=realtype),
dimension(3),
intent(out) :: winddirection
1670 integer(kind=inttype) :: liftindex
1674 real(kind=realtype) :: rnorm, x1, y1, z1, xbn, ybn, zbn, xw, yw, zw
1675 real(kind=realtype) :: tmp
1678 rnorm = sqrt(refdirection(1)**2 + refdirection(2)**2 + refdirection(&
1680 xbn = refdirection(1)/rnorm
1681 ybn = refdirection(2)/rnorm
1682 zbn = refdirection(3)/rnorm
1694 if (liftindex .eq. 2)
then
1704 else if (liftindex .eq. 3)
then
1713 call terminate(
'getdirvector',
'invalid lift direction')
1715 winddirection(1) = xw
1716 winddirection(2) = yw
1717 winddirection(3) = zw
1724 & angled, x, xd, y, yd, z, zd)
1740 integer(kind=inttype),
intent(in) :: iaxis
1741 real(kind=
realtype),
intent(in) :: angle, x, y, z
1742 real(kind=
realtype) :: angled, xd, yd, zd
1744 real(kind=
realtype) :: xpd, ypd, zpd
1751 angled = angled + (cos(angle)*z-sin(angle)*y)*ypd - (cos(angle)*y+&
1753 yd = cos(angle)*ypd - sin(angle)*zpd
1754 zd = cos(angle)*zpd + sin(angle)*ypd
1756 angled = angled + (cos(angle)*x-sin(angle)*z)*zpd - (sin(angle)*x+&
1758 xd = sin(angle)*zpd + cos(angle)*xpd
1760 zd = cos(angle)*zpd - sin(angle)*xpd
1762 xd = cos(angle)*xpd - sin(angle)*ypd
1763 yd = cos(angle)*ypd + sin(angle)*xpd
1765 angled = angled + (cos(angle)*y-sin(angle)*x)*xpd - (sin(angle)*y+&
1788 integer(kind=inttype),
intent(in) :: iaxis
1789 real(kind=
realtype),
intent(in) :: angle, x, y, z
1790 real(kind=
realtype),
intent(out) :: xp, yp, zp
1797 xp = 1.*x + 0.*y + 0.*z
1798 yp = 0.*x + cos(angle)*y + sin(angle)*z
1799 zp = 0.*x - sin(angle)*y + cos(angle)*z
1802 xp = cos(angle)*x + 0.*y - sin(angle)*z
1803 yp = 0.*x + 1.*y + 0.*z
1804 zp = sin(angle)*x + 0.*y + cos(angle)*z
1807 xp = cos(angle)*x + sin(angle)*y + 0.*z
1808 yp = -(sin(angle)*x) + cos(angle)*y + 0.*z
1809 zp = 0.*x + 0.*y + 1.*z
1811 write(*, *)
'vectorrotation called with invalid arguments'
1839 integer(kind=inttype) :: i, j, k
1840 integer(kind=inttype) :: k1, kk
1841 integer(kind=inttype) :: istart, iend, isize, ii
1842 integer(kind=inttype) :: jstart, jend, jsize
1843 integer(kind=inttype) :: kstart, kend, ksize
1844 real(kind=realtype) :: oneoverv, ubar, vbar, wbar, a2
1845 real(kind=realtype) :: oneovervd, ubard, vbard, wbard, a2d
1846 real(kind=realtype) :: sx, sx1, sy, sy1, sz, sz1
1847 real(kind=realtype) :: sxd, syd, szd
1849 real(kind=realtype) :: temp
1850 real(kind=realtype) :: tempd
1871 j = mod(ii/
il,
jl) + 1
1876 sx =
sk(i, j, k-1, 1) +
sk(i+1, j, k-1, 1) +
sk(i, j+1, k-1, 1) + &
1877 &
sk(i+1, j+1, k-1, 1) +
sk(i, j, k, 1) +
sk(i+1, j, k, 1) +
sk(i&
1878 & , j+1, k, 1) +
sk(i+1, j+1, k, 1)
1879 sy =
sk(i, j, k-1, 2) +
sk(i+1, j, k-1, 2) +
sk(i, j+1, k-1, 2) + &
1880 &
sk(i+1, j+1, k-1, 2) +
sk(i, j, k, 2) +
sk(i+1, j, k, 2) +
sk(i&
1881 & , j+1, k, 2) +
sk(i+1, j+1, k, 2)
1882 sz =
sk(i, j, k-1, 3) +
sk(i+1, j, k-1, 3) +
sk(i, j+1, k-1, 3) + &
1883 &
sk(i+1, j+1, k-1, 3) +
sk(i, j, k, 3) +
sk(i+1, j, k, 3) +
sk(i&
1884 & , j+1, k, 3) +
sk(i+1, j+1, k, 3)
1889 & +
w(i+1, j+1, k,
ivx))
1891 & +
w(i+1, j+1, k,
ivy))
1893 & +
w(i+1, j+1, k,
ivz))
1894 a2 =
fourth*(
aa(i, j, k)+
aa(i+1, j, k)+
aa(i, j+1, k)+
aa(i+1, j+1, &
1901 ux(i, j, k-1) =
ux(i, j, k-1) + ubar*sx
1902 uy(i, j, k-1) =
uy(i, j, k-1) + ubar*sy
1903 uz(i, j, k-1) =
uz(i, j, k-1) + ubar*sz
1904 vx(i, j, k-1) =
vx(i, j, k-1) + vbar*sx
1905 vy(i, j, k-1) =
vy(i, j, k-1) + vbar*sy
1906 vz(i, j, k-1) =
vz(i, j, k-1) + vbar*sz
1907 wx(i, j, k-1) =
wx(i, j, k-1) + wbar*sx
1908 wy(i, j, k-1) =
wy(i, j, k-1) + wbar*sy
1909 wz(i, j, k-1) =
wz(i, j, k-1) + wbar*sz
1910 qx(i, j, k-1) =
qx(i, j, k-1) - a2*sx
1911 qy(i, j, k-1) =
qy(i, j, k-1) - a2*sy
1912 qz(i, j, k-1) =
qz(i, j, k-1) - a2*sz
1915 ux(i, j, k) =
ux(i, j, k) - ubar*sx
1916 uy(i, j, k) =
uy(i, j, k) - ubar*sy
1917 uz(i, j, k) =
uz(i, j, k) - ubar*sz
1918 vx(i, j, k) =
vx(i, j, k) - vbar*sx
1919 vy(i, j, k) =
vy(i, j, k) - vbar*sy
1920 vz(i, j, k) =
vz(i, j, k) - vbar*sz
1921 wx(i, j, k) =
wx(i, j, k) - wbar*sx
1922 wy(i, j, k) =
wy(i, j, k) - wbar*sy
1923 wz(i, j, k) =
wz(i, j, k) - wbar*sz
1924 qx(i, j, k) =
qx(i, j, k) + a2*sx
1925 qy(i, j, k) =
qy(i, j, k) + a2*sy
1926 qz(i, j, k) =
qz(i, j, k) + a2*sz
1935 j = mod(ii/
il,
je) + 1
1940 sx =
sj(i, j-1, k, 1) +
sj(i+1, j-1, k, 1) +
sj(i, j-1, k+1, 1) + &
1941 &
sj(i+1, j-1, k+1, 1) +
sj(i, j, k, 1) +
sj(i+1, j, k, 1) +
sj(i&
1942 & , j, k+1, 1) +
sj(i+1, j, k+1, 1)
1943 sy =
sj(i, j-1, k, 2) +
sj(i+1, j-1, k, 2) +
sj(i, j-1, k+1, 2) + &
1944 &
sj(i+1, j-1, k+1, 2) +
sj(i, j, k, 2) +
sj(i+1, j, k, 2) +
sj(i&
1945 & , j, k+1, 2) +
sj(i+1, j, k+1, 2)
1946 sz =
sj(i, j-1, k, 3) +
sj(i+1, j-1, k, 3) +
sj(i, j-1, k+1, 3) + &
1947 &
sj(i+1, j-1, k+1, 3) +
sj(i, j, k, 3) +
sj(i+1, j, k, 3) +
sj(i&
1948 & , j, k+1, 3) +
sj(i+1, j, k+1, 3)
1953 & +
w(i+1, j, k+1,
ivx))
1955 & +
w(i+1, j, k+1,
ivy))
1957 & +
w(i+1, j, k+1,
ivz))
1958 a2 =
fourth*(
aa(i, j, k)+
aa(i+1, j, k)+
aa(i, j, k+1)+
aa(i+1, j, k+&
1965 ux(i, j-1, k) =
ux(i, j-1, k) + ubar*sx
1966 uy(i, j-1, k) =
uy(i, j-1, k) + ubar*sy
1967 uz(i, j-1, k) =
uz(i, j-1, k) + ubar*sz
1968 vx(i, j-1, k) =
vx(i, j-1, k) + vbar*sx
1969 vy(i, j-1, k) =
vy(i, j-1, k) + vbar*sy
1970 vz(i, j-1, k) =
vz(i, j-1, k) + vbar*sz
1971 wx(i, j-1, k) =
wx(i, j-1, k) + wbar*sx
1972 wy(i, j-1, k) =
wy(i, j-1, k) + wbar*sy
1973 wz(i, j-1, k) =
wz(i, j-1, k) + wbar*sz
1974 qx(i, j-1, k) =
qx(i, j-1, k) - a2*sx
1975 qy(i, j-1, k) =
qy(i, j-1, k) - a2*sy
1976 qz(i, j-1, k) =
qz(i, j-1, k) - a2*sz
1979 ux(i, j, k) =
ux(i, j, k) - ubar*sx
1980 uy(i, j, k) =
uy(i, j, k) - ubar*sy
1981 uz(i, j, k) =
uz(i, j, k) - ubar*sz
1982 vx(i, j, k) =
vx(i, j, k) - vbar*sx
1983 vy(i, j, k) =
vy(i, j, k) - vbar*sy
1984 vz(i, j, k) =
vz(i, j, k) - vbar*sz
1985 wx(i, j, k) =
wx(i, j, k) - wbar*sx
1986 wy(i, j, k) =
wy(i, j, k) - wbar*sy
1987 wz(i, j, k) =
wz(i, j, k) - wbar*sz
1988 qx(i, j, k) =
qx(i, j, k) + a2*sx
1989 qy(i, j, k) =
qy(i, j, k) + a2*sy
1990 qz(i, j, k) =
qz(i, j, k) + a2*sz
1999 j = mod(ii/
ie,
jl) + 1
2004 sx =
si(i-1, j, k, 1) +
si(i-1, j+1, k, 1) +
si(i-1, j, k+1, 1) + &
2005 &
si(i-1, j+1, k+1, 1) +
si(i, j, k, 1) +
si(i, j+1, k, 1) +
si(i&
2006 & , j, k+1, 1) +
si(i, j+1, k+1, 1)
2007 sy =
si(i-1, j, k, 2) +
si(i-1, j+1, k, 2) +
si(i-1, j, k+1, 2) + &
2008 &
si(i-1, j+1, k+1, 2) +
si(i, j, k, 2) +
si(i, j+1, k, 2) +
si(i&
2009 & , j, k+1, 2) +
si(i, j+1, k+1, 2)
2010 sz =
si(i-1, j, k, 3) +
si(i-1, j+1, k, 3) +
si(i-1, j, k+1, 3) + &
2011 &
si(i-1, j+1, k+1, 3) +
si(i, j, k, 3) +
si(i, j+1, k, 3) +
si(i&
2012 & , j, k+1, 3) +
si(i, j+1, k+1, 3)
2017 & +
w(i, j+1, k+1,
ivx))
2019 & +
w(i, j+1, k+1,
ivy))
2021 & +
w(i, j+1, k+1,
ivz))
2022 a2 =
fourth*(
aa(i, j, k)+
aa(i, j+1, k)+
aa(i, j, k+1)+
aa(i, j+1, k+&
2029 ux(i-1, j, k) =
ux(i-1, j, k) + ubar*sx
2030 uy(i-1, j, k) =
uy(i-1, j, k) + ubar*sy
2031 uz(i-1, j, k) =
uz(i-1, j, k) + ubar*sz
2032 vx(i-1, j, k) =
vx(i-1, j, k) + vbar*sx
2033 vy(i-1, j, k) =
vy(i-1, j, k) + vbar*sy
2034 vz(i-1, j, k) =
vz(i-1, j, k) + vbar*sz
2035 wx(i-1, j, k) =
wx(i-1, j, k) + wbar*sx
2036 wy(i-1, j, k) =
wy(i-1, j, k) + wbar*sy
2037 wz(i-1, j, k) =
wz(i-1, j, k) + wbar*sz
2038 qx(i-1, j, k) =
qx(i-1, j, k) - a2*sx
2039 qy(i-1, j, k) =
qy(i-1, j, k) - a2*sy
2040 qz(i-1, j, k) =
qz(i-1, j, k) - a2*sz
2043 ux(i, j, k) =
ux(i, j, k) - ubar*sx
2044 uy(i, j, k) =
uy(i, j, k) - ubar*sy
2045 uz(i, j, k) =
uz(i, j, k) - ubar*sz
2046 vx(i, j, k) =
vx(i, j, k) - vbar*sx
2047 vy(i, j, k) =
vy(i, j, k) - vbar*sy
2048 vz(i, j, k) =
vz(i, j, k) - vbar*sz
2049 wx(i, j, k) =
wx(i, j, k) - wbar*sx
2050 wy(i, j, k) =
wy(i, j, k) - wbar*sy
2051 wz(i, j, k) =
wz(i, j, k) - wbar*sz
2052 qx(i, j, k) =
qx(i, j, k) + a2*sx
2053 qy(i, j, k) =
qy(i, j, k) + a2*sy
2054 qz(i, j, k) =
qz(i, j, k) + a2*sz
2060 j = mod(ii/
il,
jl) + 1
2064 & , j, k+1)+
vol(i, j+1, k)+
vol(i, j+1, k+1)+
vol(i+1, j+1, k)+
vol(i&
2068 oneovervd =
qz(i, j, k)*
qzd(i, j, k) +
qy(i, j, k)*
qyd(i, j, k) + &
2069 &
qx(i, j, k)*
qxd(i, j, k) +
wz(i, j, k)*
wzd(i, j, k) +
wy(i, j, k&
2070 & )*
wyd(i, j, k) +
wx(i, j, k)*
wxd(i, j, k) +
vz(i, j, k)*
vzd(i, j&
2071 & , k) +
vy(i, j, k)*
vyd(i, j, k) +
vx(i, j, k)*
vxd(i, j, k) +
uz(&
2072 & i, j, k)*
uzd(i, j, k) +
uy(i, j, k)*
uyd(i, j, k) +
ux(i, j, k)*&
2074 qzd(i, j, k) = oneoverv*
qzd(i, j, k)
2075 qyd(i, j, k) = oneoverv*
qyd(i, j, k)
2076 qxd(i, j, k) = oneoverv*
qxd(i, j, k)
2077 wzd(i, j, k) = oneoverv*
wzd(i, j, k)
2078 wyd(i, j, k) = oneoverv*
wyd(i, j, k)
2079 wxd(i, j, k) = oneoverv*
wxd(i, j, k)
2080 vzd(i, j, k) = oneoverv*
vzd(i, j, k)
2081 vyd(i, j, k) = oneoverv*
vyd(i, j, k)
2082 vxd(i, j, k) = oneoverv*
vxd(i, j, k)
2083 uzd(i, j, k) = oneoverv*
uzd(i, j, k)
2084 uyd(i, j, k) = oneoverv*
uyd(i, j, k)
2085 uxd(i, j, k) = oneoverv*
uxd(i, j, k)
2086 temp =
vol(i, j, k) +
vol(i, j, k+1) +
vol(i+1, j, k) +
vol(i+1, j&
2087 & , k+1) +
vol(i, j+1, k) +
vol(i, j+1, k+1) +
vol(i+1, j+1, k) + &
2088 &
vol(i+1, j+1, k+1)
2089 tempd = -(
one*oneovervd/temp**2)
2090 vold(i, j, k) =
vold(i, j, k) + tempd
2091 vold(i, j, k+1) =
vold(i, j, k+1) + tempd
2092 vold(i+1, j, k) =
vold(i+1, j, k) + tempd
2093 vold(i+1, j, k+1) =
vold(i+1, j, k+1) + tempd
2094 vold(i, j+1, k) =
vold(i, j+1, k) + tempd
2095 vold(i, j+1, k+1) =
vold(i, j+1, k+1) + tempd
2096 vold(i+1, j+1, k) =
vold(i+1, j+1, k) + tempd
2097 vold(i+1, j+1, k+1) =
vold(i+1, j+1, k+1) + tempd
2102 j = mod(ii/
ie,
jl) + 1
2107 sx =
si(i-1, j, k, 1) +
si(i-1, j+1, k, 1) +
si(i-1, j, k+1, 1) + &
2108 &
si(i-1, j+1, k+1, 1) +
si(i, j, k, 1) +
si(i, j+1, k, 1) +
si(i&
2109 & , j, k+1, 1) +
si(i, j+1, k+1, 1)
2110 sy =
si(i-1, j, k, 2) +
si(i-1, j+1, k, 2) +
si(i-1, j, k+1, 2) + &
2111 &
si(i-1, j+1, k+1, 2) +
si(i, j, k, 2) +
si(i, j+1, k, 2) +
si(i&
2112 & , j, k+1, 2) +
si(i, j+1, k+1, 2)
2113 sz =
si(i-1, j, k, 3) +
si(i-1, j+1, k, 3) +
si(i-1, j, k+1, 3) + &
2114 &
si(i-1, j+1, k+1, 3) +
si(i, j, k, 3) +
si(i, j+1, k, 3) +
si(i&
2115 & , j, k+1, 3) +
si(i, j+1, k+1, 3)
2120 & +
w(i, j+1, k+1,
ivx))
2122 & +
w(i, j+1, k+1,
ivy))
2124 & +
w(i, j+1, k+1,
ivz))
2125 a2 =
fourth*(
aa(i, j, k)+
aa(i, j+1, k)+
aa(i, j, k+1)+
aa(i, j+1, k+&
2132 call pushcontrol1b(0)
2134 call pushcontrol1b(1)
2137 a2d = sz*
qzd(i, j, k) + sy*
qyd(i, j, k) + sx*
qxd(i, j, k)
2138 szd = a2*
qzd(i, j, k) - wbar*
wzd(i, j, k) - vbar*
vzd(i, j, k) - &
2140 syd = a2*
qyd(i, j, k) - wbar*
wyd(i, j, k) - vbar*
vyd(i, j, k) - &
2142 sxd = a2*
qxd(i, j, k) - wbar*
wxd(i, j, k) - vbar*
vxd(i, j, k) - &
2144 wbard = -(sz*
wzd(i, j, k)) - sy*
wyd(i, j, k) - sx*
wxd(i, j, k)
2145 vbard = -(sz*
vzd(i, j, k)) - sy*
vyd(i, j, k) - sx*
vxd(i, j, k)
2146 ubard = -(sz*
uzd(i, j, k)) - sy*
uyd(i, j, k) - sx*
uxd(i, j, k)
2156 call popcontrol1b(branch)
2157 if (branch .eq. 0)
then
2158 a2d = a2d - sz*
qzd(i-1, j, k) - sy*
qyd(i-1, j, k) - sx*
qxd(i-1, &
2160 szd = szd + wbar*
wzd(i-1, j, k) - a2*
qzd(i-1, j, k) + vbar*
vzd(i&
2161 & -1, j, k) + ubar*
uzd(i-1, j, k)
2162 syd = syd + wbar*
wyd(i-1, j, k) - a2*
qyd(i-1, j, k) + vbar*
vyd(i&
2163 & -1, j, k) + ubar*
uyd(i-1, j, k)
2164 sxd = sxd + wbar*
wxd(i-1, j, k) - a2*
qxd(i-1, j, k) + vbar*
vxd(i&
2165 & -1, j, k) + ubar*
uxd(i-1, j, k)
2166 wbard = wbard + sz*
wzd(i-1, j, k) + sy*
wyd(i-1, j, k) + sx*
wxd(i&
2168 vbard = vbard + sz*
vzd(i-1, j, k) + sy*
vyd(i-1, j, k) + sx*
vxd(i&
2170 ubard = ubard + sz*
uzd(i-1, j, k) + sy*
uyd(i-1, j, k) + sx*
uxd(i&
2174 aad(i, j, k) =
aad(i, j, k) + tempd
2175 aad(i, j+1, k) =
aad(i, j+1, k) + tempd
2176 aad(i, j, k+1) =
aad(i, j, k+1) + tempd
2177 aad(i, j+1, k+1) =
aad(i, j+1, k+1) + tempd
2180 wd(i, j+1, k,
ivz) =
wd(i, j+1, k,
ivz) + tempd
2181 wd(i, j, k+1,
ivz) =
wd(i, j, k+1,
ivz) + tempd
2182 wd(i, j+1, k+1,
ivz) =
wd(i, j+1, k+1,
ivz) + tempd
2185 wd(i, j+1, k,
ivy) =
wd(i, j+1, k,
ivy) + tempd
2186 wd(i, j, k+1,
ivy) =
wd(i, j, k+1,
ivy) + tempd
2187 wd(i, j+1, k+1,
ivy) =
wd(i, j+1, k+1,
ivy) + tempd
2190 wd(i, j+1, k,
ivx) =
wd(i, j+1, k,
ivx) + tempd
2191 wd(i, j, k+1,
ivx) =
wd(i, j, k+1,
ivx) + tempd
2192 wd(i, j+1, k+1,
ivx) =
wd(i, j+1, k+1,
ivx) + tempd
2193 sid(i-1, j, k, 3) =
sid(i-1, j, k, 3) + szd
2194 sid(i-1, j+1, k, 3) =
sid(i-1, j+1, k, 3) + szd
2195 sid(i-1, j, k+1, 3) =
sid(i-1, j, k+1, 3) + szd
2196 sid(i-1, j+1, k+1, 3) =
sid(i-1, j+1, k+1, 3) + szd
2197 sid(i, j, k, 3) =
sid(i, j, k, 3) + szd
2198 sid(i, j+1, k, 3) =
sid(i, j+1, k, 3) + szd
2199 sid(i, j, k+1, 3) =
sid(i, j, k+1, 3) + szd
2200 sid(i, j+1, k+1, 3) =
sid(i, j+1, k+1, 3) + szd
2201 sid(i-1, j, k, 2) =
sid(i-1, j, k, 2) + syd
2202 sid(i-1, j+1, k, 2) =
sid(i-1, j+1, k, 2) + syd
2203 sid(i-1, j, k+1, 2) =
sid(i-1, j, k+1, 2) + syd
2204 sid(i-1, j+1, k+1, 2) =
sid(i-1, j+1, k+1, 2) + syd
2205 sid(i, j, k, 2) =
sid(i, j, k, 2) + syd
2206 sid(i, j+1, k, 2) =
sid(i, j+1, k, 2) + syd
2207 sid(i, j, k+1, 2) =
sid(i, j, k+1, 2) + syd
2208 sid(i, j+1, k+1, 2) =
sid(i, j+1, k+1, 2) + syd
2209 sid(i-1, j, k, 1) =
sid(i-1, j, k, 1) + sxd
2210 sid(i-1, j+1, k, 1) =
sid(i-1, j+1, k, 1) + sxd
2211 sid(i-1, j, k+1, 1) =
sid(i-1, j, k+1, 1) + sxd
2212 sid(i-1, j+1, k+1, 1) =
sid(i-1, j+1, k+1, 1) + sxd
2213 sid(i, j, k, 1) =
sid(i, j, k, 1) + sxd
2214 sid(i, j+1, k, 1) =
sid(i, j+1, k, 1) + sxd
2215 sid(i, j, k+1, 1) =
sid(i, j, k+1, 1) + sxd
2216 sid(i, j+1, k+1, 1) =
sid(i, j+1, k+1, 1) + sxd
2221 j = mod(ii/
il,
je) + 1
2226 sx =
sj(i, j-1, k, 1) +
sj(i+1, j-1, k, 1) +
sj(i, j-1, k+1, 1) + &
2227 &
sj(i+1, j-1, k+1, 1) +
sj(i, j, k, 1) +
sj(i+1, j, k, 1) +
sj(i&
2228 & , j, k+1, 1) +
sj(i+1, j, k+1, 1)
2229 sy =
sj(i, j-1, k, 2) +
sj(i+1, j-1, k, 2) +
sj(i, j-1, k+1, 2) + &
2230 &
sj(i+1, j-1, k+1, 2) +
sj(i, j, k, 2) +
sj(i+1, j, k, 2) +
sj(i&
2231 & , j, k+1, 2) +
sj(i+1, j, k+1, 2)
2232 sz =
sj(i, j-1, k, 3) +
sj(i+1, j-1, k, 3) +
sj(i, j-1, k+1, 3) + &
2233 &
sj(i+1, j-1, k+1, 3) +
sj(i, j, k, 3) +
sj(i+1, j, k, 3) +
sj(i&
2234 & , j, k+1, 3) +
sj(i+1, j, k+1, 3)
2239 & +
w(i+1, j, k+1,
ivx))
2241 & +
w(i+1, j, k+1,
ivy))
2243 & +
w(i+1, j, k+1,
ivz))
2244 a2 =
fourth*(
aa(i, j, k)+
aa(i+1, j, k)+
aa(i, j, k+1)+
aa(i+1, j, k+&
2251 call pushcontrol1b(0)
2253 call pushcontrol1b(1)
2256 a2d = sz*
qzd(i, j, k) + sy*
qyd(i, j, k) + sx*
qxd(i, j, k)
2257 szd = a2*
qzd(i, j, k) - wbar*
wzd(i, j, k) - vbar*
vzd(i, j, k) - &
2259 syd = a2*
qyd(i, j, k) - wbar*
wyd(i, j, k) - vbar*
vyd(i, j, k) - &
2261 sxd = a2*
qxd(i, j, k) - wbar*
wxd(i, j, k) - vbar*
vxd(i, j, k) - &
2263 wbard = -(sz*
wzd(i, j, k)) - sy*
wyd(i, j, k) - sx*
wxd(i, j, k)
2264 vbard = -(sz*
vzd(i, j, k)) - sy*
vyd(i, j, k) - sx*
vxd(i, j, k)
2265 ubard = -(sz*
uzd(i, j, k)) - sy*
uyd(i, j, k) - sx*
uxd(i, j, k)
2275 call popcontrol1b(branch)
2276 if (branch .eq. 0)
then
2277 a2d = a2d - sz*
qzd(i, j-1, k) - sy*
qyd(i, j-1, k) - sx*
qxd(i, j-&
2279 szd = szd + wbar*
wzd(i, j-1, k) - a2*
qzd(i, j-1, k) + vbar*
vzd(i&
2280 & , j-1, k) + ubar*
uzd(i, j-1, k)
2281 syd = syd + wbar*
wyd(i, j-1, k) - a2*
qyd(i, j-1, k) + vbar*
vyd(i&
2282 & , j-1, k) + ubar*
uyd(i, j-1, k)
2283 sxd = sxd + wbar*
wxd(i, j-1, k) - a2*
qxd(i, j-1, k) + vbar*
vxd(i&
2284 & , j-1, k) + ubar*
uxd(i, j-1, k)
2285 wbard = wbard + sz*
wzd(i, j-1, k) + sy*
wyd(i, j-1, k) + sx*
wxd(i&
2287 vbard = vbard + sz*
vzd(i, j-1, k) + sy*
vyd(i, j-1, k) + sx*
vxd(i&
2289 ubard = ubard + sz*
uzd(i, j-1, k) + sy*
uyd(i, j-1, k) + sx*
uxd(i&
2293 aad(i, j, k) =
aad(i, j, k) + tempd
2294 aad(i+1, j, k) =
aad(i+1, j, k) + tempd
2295 aad(i, j, k+1) =
aad(i, j, k+1) + tempd
2296 aad(i+1, j, k+1) =
aad(i+1, j, k+1) + tempd
2299 wd(i+1, j, k,
ivz) =
wd(i+1, j, k,
ivz) + tempd
2300 wd(i, j, k+1,
ivz) =
wd(i, j, k+1,
ivz) + tempd
2301 wd(i+1, j, k+1,
ivz) =
wd(i+1, j, k+1,
ivz) + tempd
2304 wd(i+1, j, k,
ivy) =
wd(i+1, j, k,
ivy) + tempd
2305 wd(i, j, k+1,
ivy) =
wd(i, j, k+1,
ivy) + tempd
2306 wd(i+1, j, k+1,
ivy) =
wd(i+1, j, k+1,
ivy) + tempd
2309 wd(i+1, j, k,
ivx) =
wd(i+1, j, k,
ivx) + tempd
2310 wd(i, j, k+1,
ivx) =
wd(i, j, k+1,
ivx) + tempd
2311 wd(i+1, j, k+1,
ivx) =
wd(i+1, j, k+1,
ivx) + tempd
2312 sjd(i, j-1, k, 3) =
sjd(i, j-1, k, 3) + szd
2313 sjd(i+1, j-1, k, 3) =
sjd(i+1, j-1, k, 3) + szd
2314 sjd(i, j-1, k+1, 3) =
sjd(i, j-1, k+1, 3) + szd
2315 sjd(i+1, j-1, k+1, 3) =
sjd(i+1, j-1, k+1, 3) + szd
2316 sjd(i, j, k, 3) =
sjd(i, j, k, 3) + szd
2317 sjd(i+1, j, k, 3) =
sjd(i+1, j, k, 3) + szd
2318 sjd(i, j, k+1, 3) =
sjd(i, j, k+1, 3) + szd
2319 sjd(i+1, j, k+1, 3) =
sjd(i+1, j, k+1, 3) + szd
2320 sjd(i, j-1, k, 2) =
sjd(i, j-1, k, 2) + syd
2321 sjd(i+1, j-1, k, 2) =
sjd(i+1, j-1, k, 2) + syd
2322 sjd(i, j-1, k+1, 2) =
sjd(i, j-1, k+1, 2) + syd
2323 sjd(i+1, j-1, k+1, 2) =
sjd(i+1, j-1, k+1, 2) + syd
2324 sjd(i, j, k, 2) =
sjd(i, j, k, 2) + syd
2325 sjd(i+1, j, k, 2) =
sjd(i+1, j, k, 2) + syd
2326 sjd(i, j, k+1, 2) =
sjd(i, j, k+1, 2) + syd
2327 sjd(i+1, j, k+1, 2) =
sjd(i+1, j, k+1, 2) + syd
2328 sjd(i, j-1, k, 1) =
sjd(i, j-1, k, 1) + sxd
2329 sjd(i+1, j-1, k, 1) =
sjd(i+1, j-1, k, 1) + sxd
2330 sjd(i, j-1, k+1, 1) =
sjd(i, j-1, k+1, 1) + sxd
2331 sjd(i+1, j-1, k+1, 1) =
sjd(i+1, j-1, k+1, 1) + sxd
2332 sjd(i, j, k, 1) =
sjd(i, j, k, 1) + sxd
2333 sjd(i+1, j, k, 1) =
sjd(i+1, j, k, 1) + sxd
2334 sjd(i, j, k+1, 1) =
sjd(i, j, k+1, 1) + sxd
2335 sjd(i+1, j, k+1, 1) =
sjd(i+1, j, k+1, 1) + sxd
2340 j = mod(ii/
il,
jl) + 1
2345 sx =
sk(i, j, k-1, 1) +
sk(i+1, j, k-1, 1) +
sk(i, j+1, k-1, 1) + &
2346 &
sk(i+1, j+1, k-1, 1) +
sk(i, j, k, 1) +
sk(i+1, j, k, 1) +
sk(i&
2347 & , j+1, k, 1) +
sk(i+1, j+1, k, 1)
2348 sy =
sk(i, j, k-1, 2) +
sk(i+1, j, k-1, 2) +
sk(i, j+1, k-1, 2) + &
2349 &
sk(i+1, j+1, k-1, 2) +
sk(i, j, k, 2) +
sk(i+1, j, k, 2) +
sk(i&
2350 & , j+1, k, 2) +
sk(i+1, j+1, k, 2)
2351 sz =
sk(i, j, k-1, 3) +
sk(i+1, j, k-1, 3) +
sk(i, j+1, k-1, 3) + &
2352 &
sk(i+1, j+1, k-1, 3) +
sk(i, j, k, 3) +
sk(i+1, j, k, 3) +
sk(i&
2353 & , j+1, k, 3) +
sk(i+1, j+1, k, 3)
2358 & +
w(i+1, j+1, k,
ivx))
2360 & +
w(i+1, j+1, k,
ivy))
2362 & +
w(i+1, j+1, k,
ivz))
2363 a2 =
fourth*(
aa(i, j, k)+
aa(i+1, j, k)+
aa(i, j+1, k)+
aa(i+1, j+1, &
2370 call pushcontrol1b(0)
2372 call pushcontrol1b(1)
2375 a2d = sz*
qzd(i, j, k) + sy*
qyd(i, j, k) + sx*
qxd(i, j, k)
2376 szd = a2*
qzd(i, j, k) - wbar*
wzd(i, j, k) - vbar*
vzd(i, j, k) - &
2378 syd = a2*
qyd(i, j, k) - wbar*
wyd(i, j, k) - vbar*
vyd(i, j, k) - &
2380 sxd = a2*
qxd(i, j, k) - wbar*
wxd(i, j, k) - vbar*
vxd(i, j, k) - &
2382 wbard = -(sz*
wzd(i, j, k)) - sy*
wyd(i, j, k) - sx*
wxd(i, j, k)
2383 vbard = -(sz*
vzd(i, j, k)) - sy*
vyd(i, j, k) - sx*
vxd(i, j, k)
2384 ubard = -(sz*
uzd(i, j, k)) - sy*
uyd(i, j, k) - sx*
uxd(i, j, k)
2394 call popcontrol1b(branch)
2395 if (branch .eq. 0)
then
2396 a2d = a2d - sz*
qzd(i, j, k-1) - sy*
qyd(i, j, k-1) - sx*
qxd(i, j&
2398 szd = szd + wbar*
wzd(i, j, k-1) - a2*
qzd(i, j, k-1) + vbar*
vzd(i&
2399 & , j, k-1) + ubar*
uzd(i, j, k-1)
2400 syd = syd + wbar*
wyd(i, j, k-1) - a2*
qyd(i, j, k-1) + vbar*
vyd(i&
2401 & , j, k-1) + ubar*
uyd(i, j, k-1)
2402 sxd = sxd + wbar*
wxd(i, j, k-1) - a2*
qxd(i, j, k-1) + vbar*
vxd(i&
2403 & , j, k-1) + ubar*
uxd(i, j, k-1)
2404 wbard = wbard + sz*
wzd(i, j, k-1) + sy*
wyd(i, j, k-1) + sx*
wxd(i&
2406 vbard = vbard + sz*
vzd(i, j, k-1) + sy*
vyd(i, j, k-1) + sx*
vxd(i&
2408 ubard = ubard + sz*
uzd(i, j, k-1) + sy*
uyd(i, j, k-1) + sx*
uxd(i&
2412 aad(i, j, k) =
aad(i, j, k) + tempd
2413 aad(i+1, j, k) =
aad(i+1, j, k) + tempd
2414 aad(i, j+1, k) =
aad(i, j+1, k) + tempd
2415 aad(i+1, j+1, k) =
aad(i+1, j+1, k) + tempd
2418 wd(i+1, j, k,
ivz) =
wd(i+1, j, k,
ivz) + tempd
2419 wd(i, j+1, k,
ivz) =
wd(i, j+1, k,
ivz) + tempd
2420 wd(i+1, j+1, k,
ivz) =
wd(i+1, j+1, k,
ivz) + tempd
2423 wd(i+1, j, k,
ivy) =
wd(i+1, j, k,
ivy) + tempd
2424 wd(i, j+1, k,
ivy) =
wd(i, j+1, k,
ivy) + tempd
2425 wd(i+1, j+1, k,
ivy) =
wd(i+1, j+1, k,
ivy) + tempd
2428 wd(i+1, j, k,
ivx) =
wd(i+1, j, k,
ivx) + tempd
2429 wd(i, j+1, k,
ivx) =
wd(i, j+1, k,
ivx) + tempd
2430 wd(i+1, j+1, k,
ivx) =
wd(i+1, j+1, k,
ivx) + tempd
2431 skd(i, j, k-1, 3) =
skd(i, j, k-1, 3) + szd
2432 skd(i+1, j, k-1, 3) =
skd(i+1, j, k-1, 3) + szd
2433 skd(i, j+1, k-1, 3) =
skd(i, j+1, k-1, 3) + szd
2434 skd(i+1, j+1, k-1, 3) =
skd(i+1, j+1, k-1, 3) + szd
2435 skd(i, j, k, 3) =
skd(i, j, k, 3) + szd
2436 skd(i+1, j, k, 3) =
skd(i+1, j, k, 3) + szd
2437 skd(i, j+1, k, 3) =
skd(i, j+1, k, 3) + szd
2438 skd(i+1, j+1, k, 3) =
skd(i+1, j+1, k, 3) + szd
2439 skd(i, j, k-1, 2) =
skd(i, j, k-1, 2) + syd
2440 skd(i+1, j, k-1, 2) =
skd(i+1, j, k-1, 2) + syd
2441 skd(i, j+1, k-1, 2) =
skd(i, j+1, k-1, 2) + syd
2442 skd(i+1, j+1, k-1, 2) =
skd(i+1, j+1, k-1, 2) + syd
2443 skd(i, j, k, 2) =
skd(i, j, k, 2) + syd
2444 skd(i+1, j, k, 2) =
skd(i+1, j, k, 2) + syd
2445 skd(i, j+1, k, 2) =
skd(i, j+1, k, 2) + syd
2446 skd(i+1, j+1, k, 2) =
skd(i+1, j+1, k, 2) + syd
2447 skd(i, j, k-1, 1) =
skd(i, j, k-1, 1) + sxd
2448 skd(i+1, j, k-1, 1) =
skd(i+1, j, k-1, 1) + sxd
2449 skd(i, j+1, k-1, 1) =
skd(i, j+1, k-1, 1) + sxd
2450 skd(i+1, j+1, k-1, 1) =
skd(i+1, j+1, k-1, 1) + sxd
2451 skd(i, j, k, 1) =
skd(i, j, k, 1) + sxd
2452 skd(i+1, j, k, 1) =
skd(i+1, j, k, 1) + sxd
2453 skd(i, j+1, k, 1) =
skd(i, j+1, k, 1) + sxd
2454 skd(i+1, j+1, k, 1) =
skd(i+1, j+1, k, 1) + sxd
2481 integer(kind=inttype) :: i, j, k
2482 integer(kind=inttype) :: k1, kk
2483 integer(kind=inttype) :: istart, iend, isize, ii
2484 integer(kind=inttype) :: jstart, jend, jsize
2485 integer(kind=inttype) :: kstart, kend, ksize
2486 real(kind=realtype) :: oneoverv, ubar, vbar, wbar, a2
2487 real(kind=realtype) :: sx, sx1, sy, sy1, sz, sz1
2508 j = mod(ii/
il,
jl) + 1
2513 sx =
sk(i, j, k-1, 1) +
sk(i+1, j, k-1, 1) +
sk(i, j+1, k-1, 1) + &
2514 &
sk(i+1, j+1, k-1, 1) +
sk(i, j, k, 1) +
sk(i+1, j, k, 1) +
sk(i&
2515 & , j+1, k, 1) +
sk(i+1, j+1, k, 1)
2516 sy =
sk(i, j, k-1, 2) +
sk(i+1, j, k-1, 2) +
sk(i, j+1, k-1, 2) + &
2517 &
sk(i+1, j+1, k-1, 2) +
sk(i, j, k, 2) +
sk(i+1, j, k, 2) +
sk(i&
2518 & , j+1, k, 2) +
sk(i+1, j+1, k, 2)
2519 sz =
sk(i, j, k-1, 3) +
sk(i+1, j, k-1, 3) +
sk(i, j+1, k-1, 3) + &
2520 &
sk(i+1, j+1, k-1, 3) +
sk(i, j, k, 3) +
sk(i+1, j, k, 3) +
sk(i&
2521 & , j+1, k, 3) +
sk(i+1, j+1, k, 3)
2526 & +
w(i+1, j+1, k,
ivx))
2528 & +
w(i+1, j+1, k,
ivy))
2530 & +
w(i+1, j+1, k,
ivz))
2531 a2 =
fourth*(
aa(i, j, k)+
aa(i+1, j, k)+
aa(i, j+1, k)+
aa(i+1, j+1, &
2538 ux(i, j, k-1) =
ux(i, j, k-1) + ubar*sx
2539 uy(i, j, k-1) =
uy(i, j, k-1) + ubar*sy
2540 uz(i, j, k-1) =
uz(i, j, k-1) + ubar*sz
2541 vx(i, j, k-1) =
vx(i, j, k-1) + vbar*sx
2542 vy(i, j, k-1) =
vy(i, j, k-1) + vbar*sy
2543 vz(i, j, k-1) =
vz(i, j, k-1) + vbar*sz
2544 wx(i, j, k-1) =
wx(i, j, k-1) + wbar*sx
2545 wy(i, j, k-1) =
wy(i, j, k-1) + wbar*sy
2546 wz(i, j, k-1) =
wz(i, j, k-1) + wbar*sz
2547 qx(i, j, k-1) =
qx(i, j, k-1) - a2*sx
2548 qy(i, j, k-1) =
qy(i, j, k-1) - a2*sy
2549 qz(i, j, k-1) =
qz(i, j, k-1) - a2*sz
2552 ux(i, j, k) =
ux(i, j, k) - ubar*sx
2553 uy(i, j, k) =
uy(i, j, k) - ubar*sy
2554 uz(i, j, k) =
uz(i, j, k) - ubar*sz
2555 vx(i, j, k) =
vx(i, j, k) - vbar*sx
2556 vy(i, j, k) =
vy(i, j, k) - vbar*sy
2557 vz(i, j, k) =
vz(i, j, k) - vbar*sz
2558 wx(i, j, k) =
wx(i, j, k) - wbar*sx
2559 wy(i, j, k) =
wy(i, j, k) - wbar*sy
2560 wz(i, j, k) =
wz(i, j, k) - wbar*sz
2561 qx(i, j, k) =
qx(i, j, k) + a2*sx
2562 qy(i, j, k) =
qy(i, j, k) + a2*sy
2563 qz(i, j, k) =
qz(i, j, k) + a2*sz
2572 j = mod(ii/
il,
je) + 1
2577 sx =
sj(i, j-1, k, 1) +
sj(i+1, j-1, k, 1) +
sj(i, j-1, k+1, 1) + &
2578 &
sj(i+1, j-1, k+1, 1) +
sj(i, j, k, 1) +
sj(i+1, j, k, 1) +
sj(i&
2579 & , j, k+1, 1) +
sj(i+1, j, k+1, 1)
2580 sy =
sj(i, j-1, k, 2) +
sj(i+1, j-1, k, 2) +
sj(i, j-1, k+1, 2) + &
2581 &
sj(i+1, j-1, k+1, 2) +
sj(i, j, k, 2) +
sj(i+1, j, k, 2) +
sj(i&
2582 & , j, k+1, 2) +
sj(i+1, j, k+1, 2)
2583 sz =
sj(i, j-1, k, 3) +
sj(i+1, j-1, k, 3) +
sj(i, j-1, k+1, 3) + &
2584 &
sj(i+1, j-1, k+1, 3) +
sj(i, j, k, 3) +
sj(i+1, j, k, 3) +
sj(i&
2585 & , j, k+1, 3) +
sj(i+1, j, k+1, 3)
2590 & +
w(i+1, j, k+1,
ivx))
2592 & +
w(i+1, j, k+1,
ivy))
2594 & +
w(i+1, j, k+1,
ivz))
2595 a2 =
fourth*(
aa(i, j, k)+
aa(i+1, j, k)+
aa(i, j, k+1)+
aa(i+1, j, k+&
2602 ux(i, j-1, k) =
ux(i, j-1, k) + ubar*sx
2603 uy(i, j-1, k) =
uy(i, j-1, k) + ubar*sy
2604 uz(i, j-1, k) =
uz(i, j-1, k) + ubar*sz
2605 vx(i, j-1, k) =
vx(i, j-1, k) + vbar*sx
2606 vy(i, j-1, k) =
vy(i, j-1, k) + vbar*sy
2607 vz(i, j-1, k) =
vz(i, j-1, k) + vbar*sz
2608 wx(i, j-1, k) =
wx(i, j-1, k) + wbar*sx
2609 wy(i, j-1, k) =
wy(i, j-1, k) + wbar*sy
2610 wz(i, j-1, k) =
wz(i, j-1, k) + wbar*sz
2611 qx(i, j-1, k) =
qx(i, j-1, k) - a2*sx
2612 qy(i, j-1, k) =
qy(i, j-1, k) - a2*sy
2613 qz(i, j-1, k) =
qz(i, j-1, k) - a2*sz
2616 ux(i, j, k) =
ux(i, j, k) - ubar*sx
2617 uy(i, j, k) =
uy(i, j, k) - ubar*sy
2618 uz(i, j, k) =
uz(i, j, k) - ubar*sz
2619 vx(i, j, k) =
vx(i, j, k) - vbar*sx
2620 vy(i, j, k) =
vy(i, j, k) - vbar*sy
2621 vz(i, j, k) =
vz(i, j, k) - vbar*sz
2622 wx(i, j, k) =
wx(i, j, k) - wbar*sx
2623 wy(i, j, k) =
wy(i, j, k) - wbar*sy
2624 wz(i, j, k) =
wz(i, j, k) - wbar*sz
2625 qx(i, j, k) =
qx(i, j, k) + a2*sx
2626 qy(i, j, k) =
qy(i, j, k) + a2*sy
2627 qz(i, j, k) =
qz(i, j, k) + a2*sz
2636 j = mod(ii/
ie,
jl) + 1
2641 sx =
si(i-1, j, k, 1) +
si(i-1, j+1, k, 1) +
si(i-1, j, k+1, 1) + &
2642 &
si(i-1, j+1, k+1, 1) +
si(i, j, k, 1) +
si(i, j+1, k, 1) +
si(i&
2643 & , j, k+1, 1) +
si(i, j+1, k+1, 1)
2644 sy =
si(i-1, j, k, 2) +
si(i-1, j+1, k, 2) +
si(i-1, j, k+1, 2) + &
2645 &
si(i-1, j+1, k+1, 2) +
si(i, j, k, 2) +
si(i, j+1, k, 2) +
si(i&
2646 & , j, k+1, 2) +
si(i, j+1, k+1, 2)
2647 sz =
si(i-1, j, k, 3) +
si(i-1, j+1, k, 3) +
si(i-1, j, k+1, 3) + &
2648 &
si(i-1, j+1, k+1, 3) +
si(i, j, k, 3) +
si(i, j+1, k, 3) +
si(i&
2649 & , j, k+1, 3) +
si(i, j+1, k+1, 3)
2654 & +
w(i, j+1, k+1,
ivx))
2656 & +
w(i, j+1, k+1,
ivy))
2658 & +
w(i, j+1, k+1,
ivz))
2659 a2 =
fourth*(
aa(i, j, k)+
aa(i, j+1, k)+
aa(i, j, k+1)+
aa(i, j+1, k+&
2666 ux(i-1, j, k) =
ux(i-1, j, k) + ubar*sx
2667 uy(i-1, j, k) =
uy(i-1, j, k) + ubar*sy
2668 uz(i-1, j, k) =
uz(i-1, j, k) + ubar*sz
2669 vx(i-1, j, k) =
vx(i-1, j, k) + vbar*sx
2670 vy(i-1, j, k) =
vy(i-1, j, k) + vbar*sy
2671 vz(i-1, j, k) =
vz(i-1, j, k) + vbar*sz
2672 wx(i-1, j, k) =
wx(i-1, j, k) + wbar*sx
2673 wy(i-1, j, k) =
wy(i-1, j, k) + wbar*sy
2674 wz(i-1, j, k) =
wz(i-1, j, k) + wbar*sz
2675 qx(i-1, j, k) =
qx(i-1, j, k) - a2*sx
2676 qy(i-1, j, k) =
qy(i-1, j, k) - a2*sy
2677 qz(i-1, j, k) =
qz(i-1, j, k) - a2*sz
2680 ux(i, j, k) =
ux(i, j, k) - ubar*sx
2681 uy(i, j, k) =
uy(i, j, k) - ubar*sy
2682 uz(i, j, k) =
uz(i, j, k) - ubar*sz
2683 vx(i, j, k) =
vx(i, j, k) - vbar*sx
2684 vy(i, j, k) =
vy(i, j, k) - vbar*sy
2685 vz(i, j, k) =
vz(i, j, k) - vbar*sz
2686 wx(i, j, k) =
wx(i, j, k) - wbar*sx
2687 wy(i, j, k) =
wy(i, j, k) - wbar*sy
2688 wz(i, j, k) =
wz(i, j, k) - wbar*sz
2689 qx(i, j, k) =
qx(i, j, k) + a2*sx
2690 qy(i, j, k) =
qy(i, j, k) + a2*sy
2691 qz(i, j, k) =
qz(i, j, k) + a2*sz
2698 j = mod(ii/
il,
jl) + 1
2702 & , j, k+1)+
vol(i, j+1, k)+
vol(i, j+1, k+1)+
vol(i+1, j+1, k)+
vol(i&
2706 ux(i, j, k) =
ux(i, j, k)*oneoverv
2707 uy(i, j, k) =
uy(i, j, k)*oneoverv
2708 uz(i, j, k) =
uz(i, j, k)*oneoverv
2709 vx(i, j, k) =
vx(i, j, k)*oneoverv
2710 vy(i, j, k) =
vy(i, j, k)*oneoverv
2711 vz(i, j, k) =
vz(i, j, k)*oneoverv
2712 wx(i, j, k) =
wx(i, j, k)*oneoverv
2713 wy(i, j, k) =
wy(i, j, k)*oneoverv
2714 wz(i, j, k) =
wz(i, j, k)*oneoverv
2715 qx(i, j, k) =
qx(i, j, k)*oneoverv
2716 qy(i, j, k) =
qy(i, j, k)*oneoverv
2717 qz(i, j, k) =
qz(i, j, k)*oneoverv
real(kind=realtype), dimension(:, :, :), pointer gamma
real(kind=realtype), dimension(:, :, :), pointer qz
real(kind=realtype), dimension(:, :, :), pointer wzd
real(kind=realtype), dimension(:, :, :), pointer aad
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
real(kind=realtype), dimension(:, :, :), pointer vold
real(kind=realtype), dimension(:, :, :), pointer qxd
real(kind=realtype), dimension(:, :, :), pointer p
real(kind=realtype), dimension(:, :, :, :), pointer w
real(kind=realtype), dimension(:, :, :), pointer uy
real(kind=realtype), dimension(:, :, :), pointer wyd
real(kind=realtype), dimension(:, :, :), pointer wx
real(kind=realtype), dimension(:, :, :, :), pointer skd
real(kind=realtype), dimension(:, :, :), pointer rlv
real(kind=realtype), dimension(:, :, :, :), pointer si
real(kind=realtype), dimension(:, :, :, :), pointer sid
real(kind=realtype), dimension(:, :, :, :), pointer sj
real(kind=realtype), dimension(:, :, :), pointer uyd
real(kind=realtype), dimension(:, :, :), pointer qx
real(kind=realtype), dimension(:, :, :), pointer uxd
real(kind=realtype), dimension(:, :, :), pointer vz
real(kind=realtype), dimension(:, :, :), pointer qyd
real(kind=realtype), dimension(:, :, :, :), pointer sk
real(kind=realtype), dimension(:, :, :), pointer ux
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 vy
real(kind=realtype), dimension(:, :, :), pointer vx
real(kind=realtype), dimension(:, :, :), pointer qzd
real(kind=realtype), dimension(:, :, :), pointer vzd
real(kind=realtype), dimension(:, :, :), pointer pd
real(kind=realtype), dimension(:, :, :), pointer vyd
integer(kind=inttype), parameter cptempcurvefits
real(kind=realtype), parameter zero
real(kind=realtype), parameter third
real(kind=realtype), parameter five
real(kind=realtype), parameter one
real(kind=realtype), parameter half
real(kind=realtype), parameter two
integer(kind=inttype), parameter cpconstant
real(kind=realtype), parameter fourth
real(kind=realtype), dimension(:), allocatable cptrange
integer(kind=inttype) cpnparts
type(cptempfittype), dimension(:), allocatable cptempfit
real(kind=realtype), dimension(:), allocatable cpeint
subroutine computeptot(rho, u, v, w, p, ptot)
subroutine eint_b(rho, rhod, p, pd, k, kd, einternal, einternald, correctfork)
subroutine computeptot_b(rho, rhod, u, ud, v, vd, w, wd, p, pd, ptot, ptotd)
subroutine computelamviscosity(includehalos)
subroutine computelamviscosity_b(includehalos)
subroutine computepressuresimple_b(includehalos)
subroutine etot_b(rho, rhod, u, ud, v, vd, w, wd, p, pd, k, kd, etotal, etotald, correctfork)
subroutine etot(rho, u, v, w, p, k, etotal, correctfork)
subroutine computepressuresimple(includehalos)
subroutine computespeedofsoundsquared()
subroutine vectorrotation(xp, yp, zp, iaxis, angle, x, y, z)
subroutine computepressure(ibeg, iend, jbeg, jend, kbeg, kend, pointeroffset)
subroutine derivativerotmatrixrigid(rotationmatrix, rotationpoint, t)
subroutine getdirvector(refdirection, alpha, beta, winddirection, liftindex)
subroutine adjustinflowangle_b()
subroutine eint(rho, p, k, einternal, correctfork)
subroutine computespeedofsoundsquared_b()
subroutine adjustinflowangle()
subroutine computettot(rho, u, v, w, p, ttot)
subroutine allnodalgradients()
subroutine vectorrotation_b(xp, xpd, yp, ypd, zp, zpd, iaxis, angle, angled, x, xd, y, yd, z, zd)
subroutine allnodalgradients_b()
subroutine derivativerotmatrixrigid_b(rotationmatrix, rotationmatrixd, rotationpoint, t)
subroutine computeetotblock_b(istart, iend, jstart, jend, kstart, kend, correctfork)
subroutine computegamma(t, gamma, mm)
subroutine computeetotblock(istart, iend, jstart, jend, kstart, kend, correctfork)
subroutine getdirvector_b(refdirection, alpha, alphad, beta, betad, winddirection, winddirectiond, liftindex)
subroutine computettot_b(rho, rhod, u, ud, v, vd, w, wd, p, pd, ttot, ttotd)
real(kind=realtype) gammainf
real(kind=realtype) pinfcorr
real(kind=realtype) pinfcorrd
real(kind=realtype) trefd
real(kind=realtype) muref
real(kind=realtype) rgasd
real(kind=realtype) murefd
integer, parameter realtype
real(kind=realtype) function derivativerigidrotangle(degreepolrot, coefpolrot, degreefourrot, omegafourrot, coscoeffourrot, sincoeffourrot, t)
logical function getcorrectfork()
subroutine terminate(routinename, errormessage)
subroutine derivativerigidrotangle_b(degreepolrot, coefpolrot, degreefourrot, omegafourrot, coscoeffourrot, sincoeffourrot, t, derivativerigidrotangled)
real(kind=realtype) function rigidrotangle(degreepolrot, coefpolrot, degreefourrot, omegafourrot, coscoeffourrot, sincoeffourrot, t)