21 real(kind=realtype),
intent(in) :: rho, p, u, v, w
22 real(kind=realtype),
intent(out) :: ttot
26 integer(kind=inttype) :: i
27 real(kind=realtype) :: govgm1, t, kin
35 kin =
half*(u*u+v*v+w*w)
36 ttot = t*(
one+rho*kin/(govgm1*p))
43 &
'variable cp formulation not implemented yet')
59 integer(kind=inttype),
intent(in) :: mm
60 real(kind=realtype),
dimension(mm),
intent(in) :: t
61 real(kind=realtype),
dimension(mm),
intent(out) :: gamma
65 integer(kind=inttype) :: i, ii, nn, start
66 real(kind=realtype) :: cp, t2
89 real(kind=realtype),
intent(in) :: rho, p, u, v, w
90 real(kind=realtype),
intent(out) :: ptot
94 real(kind=realtype),
parameter :: dtstop=0.01_realtype
98 integer(kind=inttype) :: i, ii, mm, nn, nnt, start
99 real(kind=realtype) :: govgm1, kin
100 real(kind=realtype) :: t, t2, tt, dt, h, htot, cp, scale, alp
101 real(kind=realtype) :: intcport, intcportt, intcporttt
109 kin =
half*(u*u+v*v+w*w)
110 ptot = p*(
one+rho*kin/(govgm1*p))**govgm1
126 real(kind=realtype),
parameter :: twothird=
two*
third
127 integer(kind=inttype) :: i, j, k, ii
128 real(kind=realtype) :: pp
129 logical :: correctfork
133 if (correctfork)
then
137 j = mod(ii/
ie,
je) + 1
139 pp =
p(i, j, k) - twothird*
w(i, j, k,
irho)*
w(i, j, k,
itu1)
146 j = mod(ii/
ie,
je) + 1
172 integer(kind=inttype),
intent(in) :: istart, iend, jstart, jend
173 integer(kind=inttype),
intent(in) :: kstart, kend
174 logical,
intent(in) :: correctfork
178 integer(kind=inttype) :: i, j, k, ii, isize, jsize, ksize
179 real(kind=realtype) :: ovgm1, factk, scale
190 isize = iend - istart + 1
191 jsize = jend - jstart + 1
192 ksize = kend - kstart + 1
194 if (correctfork)
then
196 do ii=0,isize*jsize*ksize-1
197 i = mod(ii, isize) + istart
198 j = mod(ii/isize, jsize) + jstart
199 k = ii/(isize*jsize) + kstart
201 &
w(i, j, k,
ivx)**2+
w(i, j, k,
ivy)**2+
w(i, j, k,
ivz)**2) - &
206 do ii=0,isize*jsize*ksize-1
207 i = mod(ii, isize) + istart
208 j = mod(ii/isize, jsize) + jstart
209 k = ii/(isize*jsize) + kstart
211 &
w(i, j, k,
ivx)**2+
w(i, j, k,
ivy)**2+
w(i, j, k,
ivz)**2)
220 subroutine etot_fast_b(rho, rhod, u, ud, v, vd, w, wd, p, pd, k, kd, &
221 & etotal, etotald, correctfork)
234 real(kind=realtype),
intent(in) :: rho, p, k
235 real(kind=realtype) :: rhod, pd, kd
236 real(kind=realtype),
intent(in) :: u, v, w
237 real(kind=realtype) :: ud, vd, wd
238 real(kind=realtype) :: etotal
239 real(kind=realtype) :: etotald
240 logical,
intent(in) :: correctfork
244 integer(kind=inttype) :: i
245 real(kind=realtype) :: tempd
247 call eint(rho, p, k, etotal, correctfork)
248 rhod = rhod + (etotal+
half*(u**2+v**2+w**2))*etotald
249 tempd =
half*rho*etotald
250 etotald = rho*etotald
254 call eint_fast_b(rho, rhod, p, pd, k, kd, etotal, etotald, &
258 subroutine etot(rho, u, v, w, p, k, etotal, correctfork)
271 real(kind=realtype),
intent(in) :: rho, p, k
272 real(kind=realtype),
intent(in) :: u, v, w
273 real(kind=realtype),
intent(out) :: etotal
274 logical,
intent(in) :: correctfork
278 integer(kind=inttype) :: i
280 call eint(rho, p, k, etotal, correctfork)
281 etotal = rho*(etotal+
half*(u*u+v*v+w*w))
288 subroutine eint_fast_b(rho, rhod, p, pd, k, kd, einternal, einternald&
306 real(kind=realtype),
intent(in) :: rho, p, k
307 real(kind=realtype) :: rhod, pd, kd
308 real(kind=realtype) :: einternal
309 real(kind=realtype) :: einternald
310 logical,
intent(in) :: correctfork
314 real(kind=realtype),
parameter :: twothird=
two*
third
318 integer(kind=inttype) :: i, nn, mm, ii, start
319 real(kind=realtype) :: ovgm1, factk, pp, t, t2, scale
320 real(kind=realtype) :: tempd
330 if (correctfork)
then
332 kd = kd - factk*einternald
334 tempd = ovgm1*einternald/rho
336 rhod = rhod - p*tempd/rho
341 subroutine eint(rho, p, k, einternal, correctfork)
358 real(kind=realtype),
intent(in) :: rho, p, k
359 real(kind=realtype),
intent(out) :: einternal
360 logical,
intent(in) :: correctfork
364 real(kind=realtype),
parameter :: twothird=
two*
third
368 integer(kind=inttype) :: i, nn, mm, ii, start
369 real(kind=realtype) :: ovgm1, factk, pp, t, t2, scale
377 einternal = ovgm1*p/rho
380 if (correctfork)
then
382 einternal = einternal - factk*k
396 logical,
intent(in) :: includehalos
398 integer(kind=inttype) :: i, j, k, ii
399 real(kind=realtype) :: gm1, v2
400 integer(kind=inttype) :: ibeg, iend, isize, jbeg, jend, jsize, kbeg&
406 if (includehalos)
then
421 isize = iend - ibeg + 1
422 jsize = jend - jbeg + 1
423 ksize = kend - kbeg + 1
425 do ii=0,isize*jsize*ksize-1
426 i = mod(ii, isize) + ibeg
427 j = mod(ii/isize, jsize) + jbeg
428 k = ii/(isize*jsize) + kbeg
429 v2 =
w(i, j, k,
ivx)**2 +
w(i, j, k,
ivy)**2 +
w(i, j, k,
ivz)**2
431 if (
p(i, j, k) .lt. 1.e-4_realtype*
pinfcorr)
then
434 p(i, j, k) =
p(i, j, k)
457 integer(kind=inttype),
intent(in) :: ibeg, iend, jbeg, jend, kbeg, &
459 integer(kind=inttype),
intent(in) :: pointeroffset
463 real(kind=realtype),
parameter :: dtstop=0.01_realtype
464 real(kind=realtype),
parameter :: twothird=
two*
third
468 integer(kind=inttype) :: i, j, k, ip, jp, kp, nn, ii, start
469 real(kind=realtype) :: gm1, factk, v2, scale, e0, e
470 real(kind=realtype) :: trefinv, t, dt, t2, alp, cv
474 real(kind=realtype) :: abs0
489 kp = k + pointeroffset
491 jp = j + pointeroffset
493 ip = i + pointeroffset
494 v2 =
w(ip, jp, kp,
ivx)**2 +
w(ip, jp, kp,
ivy)**2 +
w(ip, &
498 if (
w(i, j, k,
irhoe) .lt. 1.e-5_realtype*
pinf)
then
509 kp = k + pointeroffset
511 jp = j + pointeroffset
513 ip = i + pointeroffset
530 kp = k + pointeroffset
532 jp = j + pointeroffset
534 ip = i + pointeroffset
538 v2 =
w(ip, jp, kp,
ivx)**2 +
w(ip, jp, kp,
ivy)**2 +
w(ip, &
547 kp = k + pointeroffset
549 jp = j + pointeroffset
551 ip = i + pointeroffset
554 e0 = scale*
w(i, j, k,
irhoe)
556 if (e0 .le.
cpeint(0))
then
574 if (e0 .gt.
cpeint(nn))
then
580 else if (e0 .ge.
cpeint(nn-1))
then
603 if (
cptempfit(nn)%exponents(ii) .eq. -1_inttype) &
605 e = e +
cptempfit(nn)%constants(ii)*log(t)
607 e = e +
cptempfit(nn)%constants(ii)*t2*t/(&
621 if (abs0 .lt. dtstop)
then
637 if (
w(i, j, k,
irhoe) .lt. 1.e-5_realtype*
pinf)
then
643 & twothird*
w(ip, jp, kp,
irho)*
w(ip, jp, kp,
itu1)
665 logical,
intent(in) :: includehalos
669 real(kind=realtype),
parameter :: twothird=
two*
third
673 integer(kind=inttype) :: i, j, k, ii
674 real(kind=realtype) :: musuth, tsuth, ssuth, t, pp
675 logical :: correctfork
676 integer(kind=inttype) :: ibeg, iend, isize, jbeg, jend, jsize, kbeg&
690 if (includehalos)
then
707 if (correctfork)
then
708 isize = iend - ibeg + 1
709 jsize = jend - jbeg + 1
710 ksize = kend - kbeg + 1
712 do ii=0,isize*jsize*ksize-1
713 i = mod(ii, isize) + ibeg
714 j = mod(ii/isize, jsize) + jbeg
715 k = ii/(isize*jsize) + kbeg
716 pp =
p(i, j, k) - twothird*
w(i, j, k,
irho)*
w(i, j, k,
itu1)
718 rlv(i, j, k) = musuth*((tsuth+ssuth)/(t+ssuth))*(t/tsuth)**&
724 isize = iend - ibeg + 1
725 jsize = jend - jbeg + 1
726 ksize = kend - kbeg + 1
728 do ii=0,isize*jsize*ksize-1
729 i = mod(ii, isize) + ibeg
730 j = mod(ii/isize, jsize) + jbeg
731 k = ii/(isize*jsize) + kbeg
735 rlv(i, j, k) = musuth*((tsuth+ssuth)/(t+ssuth))*(t/tsuth)**&
748 real(kind=realtype),
dimension(3) :: refdir1, refdir2
788 real(kind=realtype),
intent(in) :: t
789 real(kind=realtype),
dimension(3),
intent(out) :: rotationpoint
790 real(kind=realtype),
dimension(3, 3),
intent(out) :: rotationmatrix
794 integer(kind=inttype) :: i, j
795 real(kind=realtype) :: phi, dphix, dphiy, dphiz
796 real(kind=realtype) :: cosx, cosy, cosz, sinx, siny, sinz
797 real(kind=realtype),
dimension(3, 3) :: dm, m
831 dm(1, 1) = -(cosy*sinz*dphiz)
832 dm(1, 2) = (-(cosx*cosz)-sinx*siny*sinz)*dphiz
833 dm(1, 3) = (sinx*cosz-cosx*siny*sinz)*dphiz
834 dm(2, 1) = cosy*cosz*dphiz
835 dm(2, 2) = (sinx*siny*cosz-cosx*sinz)*dphiz
836 dm(2, 3) = (cosx*siny*cosz+sinx*sinz)*dphiz
841 dm(1, 1) = dm(1, 1) - siny*cosz*dphiy
842 dm(1, 2) = dm(1, 2) + sinx*cosy*cosz*dphiy
843 dm(1, 3) = dm(1, 3) + cosx*cosy*cosz*dphiy
844 dm(2, 1) = dm(2, 1) - siny*sinz*dphiy
845 dm(2, 2) = dm(2, 2) + sinx*cosy*sinz*dphiy
846 dm(2, 3) = dm(2, 3) + cosx*cosy*sinz*dphiy
847 dm(3, 1) = dm(3, 1) - cosy*dphiy
848 dm(3, 2) = dm(3, 2) - sinx*siny*dphiy
849 dm(3, 3) = dm(3, 3) - cosx*siny*dphiy
851 dm(1, 2) = dm(1, 2) + (sinx*sinz+cosx*siny*cosz)*dphix
852 dm(1, 3) = dm(1, 3) + (cosx*sinz-sinx*siny*cosz)*dphix
853 dm(2, 2) = dm(2, 2) + (cosx*siny*sinz-sinx*cosz)*dphix
854 dm(2, 3) = dm(2, 3) - (sinx*siny*sinz+cosx*cosz)*dphix
855 dm(3, 2) = dm(3, 2) + cosx*cosy*dphix
856 dm(3, 3) = dm(3, 3) - sinx*cosy*dphix
861 m(1, 2) = sinx*siny*cosz - cosx*sinz
862 m(2, 2) = sinx*siny*sinz + cosx*cosz
864 m(1, 3) = cosx*siny*cosz + sinx*sinz
865 m(2, 3) = cosx*siny*sinz - sinx*cosz
872 rotationmatrix(i, j) = dm(i, 1)*m(j, 1) + dm(i, 2)*m(j, 2) + dm(&
916 real(kind=realtype),
dimension(3),
intent(in) :: refdirection
917 real(kind=realtype) :: alpha, beta
918 real(kind=realtype),
dimension(3),
intent(out) :: winddirection
919 integer(kind=inttype) :: liftindex
923 real(kind=realtype) :: rnorm, x1, y1, z1, xbn, ybn, zbn, xw, yw, zw
924 real(kind=realtype) :: tmp
927 rnorm = sqrt(refdirection(1)**2 + refdirection(2)**2 + refdirection(&
929 xbn = refdirection(1)/rnorm
930 ybn = refdirection(2)/rnorm
931 zbn = refdirection(3)/rnorm
943 if (liftindex .eq. 2)
then
953 else if (liftindex .eq. 3)
then
962 call terminate(
'getdirvector',
'invalid lift direction')
964 winddirection(1) = xw
965 winddirection(2) = yw
966 winddirection(3) = zw
985 integer(kind=inttype),
intent(in) :: iaxis
986 real(kind=
realtype),
intent(in) :: angle, x, y, z
987 real(kind=
realtype),
intent(out) :: xp, yp, zp
994 xp = 1.*x + 0.*y + 0.*z
995 yp = 0.*x + cos(angle)*y + sin(angle)*z
996 zp = 0.*x - sin(angle)*y + cos(angle)*z
999 xp = cos(angle)*x + 0.*y - sin(angle)*z
1000 yp = 0.*x + 1.*y + 0.*z
1001 zp = sin(angle)*x + 0.*y + cos(angle)*z
1004 xp = cos(angle)*x + sin(angle)*y + 0.*z
1005 yp = -(sin(angle)*x) + cos(angle)*y + 0.*z
1006 zp = 0.*x + 0.*y + 1.*z
1008 write(*, *)
'vectorrotation called with invalid arguments'
1035 integer(kind=inttype) :: i, j, k
1036 integer(kind=inttype) :: k1, kk
1037 integer(kind=inttype) :: istart, iend, isize, ii
1038 integer(kind=inttype) :: jstart, jend, jsize
1039 integer(kind=inttype) :: kstart, kend, ksize
1040 real(kind=realtype) :: oneoverv, ubar, vbar, wbar, a2
1041 real(kind=realtype) :: ubard, vbard, wbard, a2d
1042 real(kind=realtype) :: sx, sx1, sy, sy1, sz, sz1
1045 real(kind=realtype) :: tempd
1050 j = mod(ii/
il,
jl) + 1
1054 & , j, k+1)+
vol(i, j+1, k)+
vol(i, j+1, k+1)+
vol(i+1, j+1, k)+
vol(i&
1058 qzd(i, j, k) = oneoverv*
qzd(i, j, k)
1059 qyd(i, j, k) = oneoverv*
qyd(i, j, k)
1060 qxd(i, j, k) = oneoverv*
qxd(i, j, k)
1061 wzd(i, j, k) = oneoverv*
wzd(i, j, k)
1062 wyd(i, j, k) = oneoverv*
wyd(i, j, k)
1063 wxd(i, j, k) = oneoverv*
wxd(i, j, k)
1064 vzd(i, j, k) = oneoverv*
vzd(i, j, k)
1065 vyd(i, j, k) = oneoverv*
vyd(i, j, k)
1066 vxd(i, j, k) = oneoverv*
vxd(i, j, k)
1067 uzd(i, j, k) = oneoverv*
uzd(i, j, k)
1068 uyd(i, j, k) = oneoverv*
uyd(i, j, k)
1069 uxd(i, j, k) = oneoverv*
uxd(i, j, k)
1074 j = mod(ii/
ie,
jl) + 1
1079 sx =
si(i-1, j, k, 1) +
si(i-1, j+1, k, 1) +
si(i-1, j, k+1, 1) + &
1080 &
si(i-1, j+1, k+1, 1) +
si(i, j, k, 1) +
si(i, j+1, k, 1) +
si(i&
1081 & , j, k+1, 1) +
si(i, j+1, k+1, 1)
1082 sy =
si(i-1, j, k, 2) +
si(i-1, j+1, k, 2) +
si(i-1, j, k+1, 2) + &
1083 &
si(i-1, j+1, k+1, 2) +
si(i, j, k, 2) +
si(i, j+1, k, 2) +
si(i&
1084 & , j, k+1, 2) +
si(i, j+1, k+1, 2)
1085 sz =
si(i-1, j, k, 3) +
si(i-1, j+1, k, 3) +
si(i-1, j, k+1, 3) + &
1086 &
si(i-1, j+1, k+1, 3) +
si(i, j, k, 3) +
si(i, j+1, k, 3) +
si(i&
1087 & , j, k+1, 3) +
si(i, j+1, k+1, 3)
1103 a2d = sz*
qzd(i, j, k) + sy*
qyd(i, j, k) + sx*
qxd(i, j, k)
1104 wbard = -(sz*
wzd(i, j, k)) - sy*
wyd(i, j, k) - sx*
wxd(i, j, k)
1105 vbard = -(sz*
vzd(i, j, k)) - sy*
vyd(i, j, k) - sx*
vxd(i, j, k)
1106 ubard = -(sz*
uzd(i, j, k)) - sy*
uyd(i, j, k) - sx*
uxd(i, j, k)
1115 if (branch .eq. 0)
then
1116 a2d = a2d - sz*
qzd(i-1, j, k) - sy*
qyd(i-1, j, k) - sx*
qxd(i-1, &
1118 wbard = wbard + sz*
wzd(i-1, j, k) + sy*
wyd(i-1, j, k) + sx*
wxd(i&
1120 vbard = vbard + sz*
vzd(i-1, j, k) + sy*
vyd(i-1, j, k) + sx*
vxd(i&
1122 ubard = ubard + sz*
uzd(i-1, j, k) + sy*
uyd(i-1, j, k) + sx*
uxd(i&
1126 aad(i, j, k) =
aad(i, j, k) + tempd
1127 aad(i, j+1, k) =
aad(i, j+1, k) + tempd
1128 aad(i, j, k+1) =
aad(i, j, k+1) + tempd
1129 aad(i, j+1, k+1) =
aad(i, j+1, k+1) + tempd
1132 wd(i, j+1, k,
ivz) =
wd(i, j+1, k,
ivz) + tempd
1133 wd(i, j, k+1,
ivz) =
wd(i, j, k+1,
ivz) + tempd
1134 wd(i, j+1, k+1,
ivz) =
wd(i, j+1, k+1,
ivz) + tempd
1137 wd(i, j+1, k,
ivy) =
wd(i, j+1, k,
ivy) + tempd
1138 wd(i, j, k+1,
ivy) =
wd(i, j, k+1,
ivy) + tempd
1139 wd(i, j+1, k+1,
ivy) =
wd(i, j+1, k+1,
ivy) + tempd
1142 wd(i, j+1, k,
ivx) =
wd(i, j+1, k,
ivx) + tempd
1143 wd(i, j, k+1,
ivx) =
wd(i, j, k+1,
ivx) + tempd
1144 wd(i, j+1, k+1,
ivx) =
wd(i, j+1, k+1,
ivx) + tempd
1149 j = mod(ii/
il,
je) + 1
1154 sx =
sj(i, j-1, k, 1) +
sj(i+1, j-1, k, 1) +
sj(i, j-1, k+1, 1) + &
1155 &
sj(i+1, j-1, k+1, 1) +
sj(i, j, k, 1) +
sj(i+1, j, k, 1) +
sj(i&
1156 & , j, k+1, 1) +
sj(i+1, j, k+1, 1)
1157 sy =
sj(i, j-1, k, 2) +
sj(i+1, j-1, k, 2) +
sj(i, j-1, k+1, 2) + &
1158 &
sj(i+1, j-1, k+1, 2) +
sj(i, j, k, 2) +
sj(i+1, j, k, 2) +
sj(i&
1159 & , j, k+1, 2) +
sj(i+1, j, k+1, 2)
1160 sz =
sj(i, j-1, k, 3) +
sj(i+1, j-1, k, 3) +
sj(i, j-1, k+1, 3) + &
1161 &
sj(i+1, j-1, k+1, 3) +
sj(i, j, k, 3) +
sj(i+1, j, k, 3) +
sj(i&
1162 & , j, k+1, 3) +
sj(i+1, j, k+1, 3)
1178 a2d = sz*
qzd(i, j, k) + sy*
qyd(i, j, k) + sx*
qxd(i, j, k)
1179 wbard = -(sz*
wzd(i, j, k)) - sy*
wyd(i, j, k) - sx*
wxd(i, j, k)
1180 vbard = -(sz*
vzd(i, j, k)) - sy*
vyd(i, j, k) - sx*
vxd(i, j, k)
1181 ubard = -(sz*
uzd(i, j, k)) - sy*
uyd(i, j, k) - sx*
uxd(i, j, k)
1190 if (branch .eq. 0)
then
1191 a2d = a2d - sz*
qzd(i, j-1, k) - sy*
qyd(i, j-1, k) - sx*
qxd(i, j-&
1193 wbard = wbard + sz*
wzd(i, j-1, k) + sy*
wyd(i, j-1, k) + sx*
wxd(i&
1195 vbard = vbard + sz*
vzd(i, j-1, k) + sy*
vyd(i, j-1, k) + sx*
vxd(i&
1197 ubard = ubard + sz*
uzd(i, j-1, k) + sy*
uyd(i, j-1, k) + sx*
uxd(i&
1201 aad(i, j, k) =
aad(i, j, k) + tempd
1202 aad(i+1, j, k) =
aad(i+1, j, k) + tempd
1203 aad(i, j, k+1) =
aad(i, j, k+1) + tempd
1204 aad(i+1, j, k+1) =
aad(i+1, j, k+1) + tempd
1207 wd(i+1, j, k,
ivz) =
wd(i+1, j, k,
ivz) + tempd
1208 wd(i, j, k+1,
ivz) =
wd(i, j, k+1,
ivz) + tempd
1209 wd(i+1, j, k+1,
ivz) =
wd(i+1, j, k+1,
ivz) + tempd
1212 wd(i+1, j, k,
ivy) =
wd(i+1, j, k,
ivy) + tempd
1213 wd(i, j, k+1,
ivy) =
wd(i, j, k+1,
ivy) + tempd
1214 wd(i+1, j, k+1,
ivy) =
wd(i+1, j, k+1,
ivy) + tempd
1217 wd(i+1, j, k,
ivx) =
wd(i+1, j, k,
ivx) + tempd
1218 wd(i, j, k+1,
ivx) =
wd(i, j, k+1,
ivx) + tempd
1219 wd(i+1, j, k+1,
ivx) =
wd(i+1, j, k+1,
ivx) + tempd
1224 j = mod(ii/
il,
jl) + 1
1229 sx =
sk(i, j, k-1, 1) +
sk(i+1, j, k-1, 1) +
sk(i, j+1, k-1, 1) + &
1230 &
sk(i+1, j+1, k-1, 1) +
sk(i, j, k, 1) +
sk(i+1, j, k, 1) +
sk(i&
1231 & , j+1, k, 1) +
sk(i+1, j+1, k, 1)
1232 sy =
sk(i, j, k-1, 2) +
sk(i+1, j, k-1, 2) +
sk(i, j+1, k-1, 2) + &
1233 &
sk(i+1, j+1, k-1, 2) +
sk(i, j, k, 2) +
sk(i+1, j, k, 2) +
sk(i&
1234 & , j+1, k, 2) +
sk(i+1, j+1, k, 2)
1235 sz =
sk(i, j, k-1, 3) +
sk(i+1, j, k-1, 3) +
sk(i, j+1, k-1, 3) + &
1236 &
sk(i+1, j+1, k-1, 3) +
sk(i, j, k, 3) +
sk(i+1, j, k, 3) +
sk(i&
1237 & , j+1, k, 3) +
sk(i+1, j+1, k, 3)
1253 a2d = sz*
qzd(i, j, k) + sy*
qyd(i, j, k) + sx*
qxd(i, j, k)
1254 wbard = -(sz*
wzd(i, j, k)) - sy*
wyd(i, j, k) - sx*
wxd(i, j, k)
1255 vbard = -(sz*
vzd(i, j, k)) - sy*
vyd(i, j, k) - sx*
vxd(i, j, k)
1256 ubard = -(sz*
uzd(i, j, k)) - sy*
uyd(i, j, k) - sx*
uxd(i, j, k)
1265 if (branch .eq. 0)
then
1266 a2d = a2d - sz*
qzd(i, j, k-1) - sy*
qyd(i, j, k-1) - sx*
qxd(i, j&
1268 wbard = wbard + sz*
wzd(i, j, k-1) + sy*
wyd(i, j, k-1) + sx*
wxd(i&
1270 vbard = vbard + sz*
vzd(i, j, k-1) + sy*
vyd(i, j, k-1) + sx*
vxd(i&
1272 ubard = ubard + sz*
uzd(i, j, k-1) + sy*
uyd(i, j, k-1) + sx*
uxd(i&
1276 aad(i, j, k) =
aad(i, j, k) + tempd
1277 aad(i+1, j, k) =
aad(i+1, j, k) + tempd
1278 aad(i, j+1, k) =
aad(i, j+1, k) + tempd
1279 aad(i+1, j+1, k) =
aad(i+1, j+1, k) + tempd
1282 wd(i+1, j, k,
ivz) =
wd(i+1, j, k,
ivz) + tempd
1283 wd(i, j+1, k,
ivz) =
wd(i, j+1, k,
ivz) + tempd
1284 wd(i+1, j+1, k,
ivz) =
wd(i+1, j+1, k,
ivz) + tempd
1287 wd(i+1, j, k,
ivy) =
wd(i+1, j, k,
ivy) + tempd
1288 wd(i, j+1, k,
ivy) =
wd(i, j+1, k,
ivy) + tempd
1289 wd(i+1, j+1, k,
ivy) =
wd(i+1, j+1, k,
ivy) + tempd
1292 wd(i+1, j, k,
ivx) =
wd(i+1, j, k,
ivx) + tempd
1293 wd(i, j+1, k,
ivx) =
wd(i, j+1, k,
ivx) + tempd
1294 wd(i+1, j+1, k,
ivx) =
wd(i+1, j+1, k,
ivx) + tempd
1321 integer(kind=inttype) :: i, j, k
1322 integer(kind=inttype) :: k1, kk
1323 integer(kind=inttype) :: istart, iend, isize, ii
1324 integer(kind=inttype) :: jstart, jend, jsize
1325 integer(kind=inttype) :: kstart, kend, ksize
1326 real(kind=realtype) :: oneoverv, ubar, vbar, wbar, a2
1327 real(kind=realtype) :: sx, sx1, sy, sy1, sz, sz1
1348 j = mod(ii/
il,
jl) + 1
1353 sx =
sk(i, j, k-1, 1) +
sk(i+1, j, k-1, 1) +
sk(i, j+1, k-1, 1) + &
1354 &
sk(i+1, j+1, k-1, 1) +
sk(i, j, k, 1) +
sk(i+1, j, k, 1) +
sk(i&
1355 & , j+1, k, 1) +
sk(i+1, j+1, k, 1)
1356 sy =
sk(i, j, k-1, 2) +
sk(i+1, j, k-1, 2) +
sk(i, j+1, k-1, 2) + &
1357 &
sk(i+1, j+1, k-1, 2) +
sk(i, j, k, 2) +
sk(i+1, j, k, 2) +
sk(i&
1358 & , j+1, k, 2) +
sk(i+1, j+1, k, 2)
1359 sz =
sk(i, j, k-1, 3) +
sk(i+1, j, k-1, 3) +
sk(i, j+1, k-1, 3) + &
1360 &
sk(i+1, j+1, k-1, 3) +
sk(i, j, k, 3) +
sk(i+1, j, k, 3) +
sk(i&
1361 & , j+1, k, 3) +
sk(i+1, j+1, k, 3)
1366 & +
w(i+1, j+1, k,
ivx))
1368 & +
w(i+1, j+1, k,
ivy))
1370 & +
w(i+1, j+1, k,
ivz))
1371 a2 =
fourth*(
aa(i, j, k)+
aa(i+1, j, k)+
aa(i, j+1, k)+
aa(i+1, j+1, &
1378 ux(i, j, k-1) =
ux(i, j, k-1) + ubar*sx
1379 uy(i, j, k-1) =
uy(i, j, k-1) + ubar*sy
1380 uz(i, j, k-1) =
uz(i, j, k-1) + ubar*sz
1381 vx(i, j, k-1) =
vx(i, j, k-1) + vbar*sx
1382 vy(i, j, k-1) =
vy(i, j, k-1) + vbar*sy
1383 vz(i, j, k-1) =
vz(i, j, k-1) + vbar*sz
1384 wx(i, j, k-1) =
wx(i, j, k-1) + wbar*sx
1385 wy(i, j, k-1) =
wy(i, j, k-1) + wbar*sy
1386 wz(i, j, k-1) =
wz(i, j, k-1) + wbar*sz
1387 qx(i, j, k-1) =
qx(i, j, k-1) - a2*sx
1388 qy(i, j, k-1) =
qy(i, j, k-1) - a2*sy
1389 qz(i, j, k-1) =
qz(i, j, k-1) - a2*sz
1392 ux(i, j, k) =
ux(i, j, k) - ubar*sx
1393 uy(i, j, k) =
uy(i, j, k) - ubar*sy
1394 uz(i, j, k) =
uz(i, j, k) - ubar*sz
1395 vx(i, j, k) =
vx(i, j, k) - vbar*sx
1396 vy(i, j, k) =
vy(i, j, k) - vbar*sy
1397 vz(i, j, k) =
vz(i, j, k) - vbar*sz
1398 wx(i, j, k) =
wx(i, j, k) - wbar*sx
1399 wy(i, j, k) =
wy(i, j, k) - wbar*sy
1400 wz(i, j, k) =
wz(i, j, k) - wbar*sz
1401 qx(i, j, k) =
qx(i, j, k) + a2*sx
1402 qy(i, j, k) =
qy(i, j, k) + a2*sy
1403 qz(i, j, k) =
qz(i, j, k) + a2*sz
1412 j = mod(ii/
il,
je) + 1
1417 sx =
sj(i, j-1, k, 1) +
sj(i+1, j-1, k, 1) +
sj(i, j-1, k+1, 1) + &
1418 &
sj(i+1, j-1, k+1, 1) +
sj(i, j, k, 1) +
sj(i+1, j, k, 1) +
sj(i&
1419 & , j, k+1, 1) +
sj(i+1, j, k+1, 1)
1420 sy =
sj(i, j-1, k, 2) +
sj(i+1, j-1, k, 2) +
sj(i, j-1, k+1, 2) + &
1421 &
sj(i+1, j-1, k+1, 2) +
sj(i, j, k, 2) +
sj(i+1, j, k, 2) +
sj(i&
1422 & , j, k+1, 2) +
sj(i+1, j, k+1, 2)
1423 sz =
sj(i, j-1, k, 3) +
sj(i+1, j-1, k, 3) +
sj(i, j-1, k+1, 3) + &
1424 &
sj(i+1, j-1, k+1, 3) +
sj(i, j, k, 3) +
sj(i+1, j, k, 3) +
sj(i&
1425 & , j, k+1, 3) +
sj(i+1, j, k+1, 3)
1430 & +
w(i+1, j, k+1,
ivx))
1432 & +
w(i+1, j, k+1,
ivy))
1434 & +
w(i+1, j, k+1,
ivz))
1435 a2 =
fourth*(
aa(i, j, k)+
aa(i+1, j, k)+
aa(i, j, k+1)+
aa(i+1, j, k+&
1442 ux(i, j-1, k) =
ux(i, j-1, k) + ubar*sx
1443 uy(i, j-1, k) =
uy(i, j-1, k) + ubar*sy
1444 uz(i, j-1, k) =
uz(i, j-1, k) + ubar*sz
1445 vx(i, j-1, k) =
vx(i, j-1, k) + vbar*sx
1446 vy(i, j-1, k) =
vy(i, j-1, k) + vbar*sy
1447 vz(i, j-1, k) =
vz(i, j-1, k) + vbar*sz
1448 wx(i, j-1, k) =
wx(i, j-1, k) + wbar*sx
1449 wy(i, j-1, k) =
wy(i, j-1, k) + wbar*sy
1450 wz(i, j-1, k) =
wz(i, j-1, k) + wbar*sz
1451 qx(i, j-1, k) =
qx(i, j-1, k) - a2*sx
1452 qy(i, j-1, k) =
qy(i, j-1, k) - a2*sy
1453 qz(i, j-1, k) =
qz(i, j-1, k) - a2*sz
1456 ux(i, j, k) =
ux(i, j, k) - ubar*sx
1457 uy(i, j, k) =
uy(i, j, k) - ubar*sy
1458 uz(i, j, k) =
uz(i, j, k) - ubar*sz
1459 vx(i, j, k) =
vx(i, j, k) - vbar*sx
1460 vy(i, j, k) =
vy(i, j, k) - vbar*sy
1461 vz(i, j, k) =
vz(i, j, k) - vbar*sz
1462 wx(i, j, k) =
wx(i, j, k) - wbar*sx
1463 wy(i, j, k) =
wy(i, j, k) - wbar*sy
1464 wz(i, j, k) =
wz(i, j, k) - wbar*sz
1465 qx(i, j, k) =
qx(i, j, k) + a2*sx
1466 qy(i, j, k) =
qy(i, j, k) + a2*sy
1467 qz(i, j, k) =
qz(i, j, k) + a2*sz
1476 j = mod(ii/
ie,
jl) + 1
1481 sx =
si(i-1, j, k, 1) +
si(i-1, j+1, k, 1) +
si(i-1, j, k+1, 1) + &
1482 &
si(i-1, j+1, k+1, 1) +
si(i, j, k, 1) +
si(i, j+1, k, 1) +
si(i&
1483 & , j, k+1, 1) +
si(i, j+1, k+1, 1)
1484 sy =
si(i-1, j, k, 2) +
si(i-1, j+1, k, 2) +
si(i-1, j, k+1, 2) + &
1485 &
si(i-1, j+1, k+1, 2) +
si(i, j, k, 2) +
si(i, j+1, k, 2) +
si(i&
1486 & , j, k+1, 2) +
si(i, j+1, k+1, 2)
1487 sz =
si(i-1, j, k, 3) +
si(i-1, j+1, k, 3) +
si(i-1, j, k+1, 3) + &
1488 &
si(i-1, j+1, k+1, 3) +
si(i, j, k, 3) +
si(i, j+1, k, 3) +
si(i&
1489 & , j, k+1, 3) +
si(i, j+1, k+1, 3)
1494 & +
w(i, j+1, k+1,
ivx))
1496 & +
w(i, j+1, k+1,
ivy))
1498 & +
w(i, j+1, k+1,
ivz))
1499 a2 =
fourth*(
aa(i, j, k)+
aa(i, j+1, k)+
aa(i, j, k+1)+
aa(i, j+1, k+&
1506 ux(i-1, j, k) =
ux(i-1, j, k) + ubar*sx
1507 uy(i-1, j, k) =
uy(i-1, j, k) + ubar*sy
1508 uz(i-1, j, k) =
uz(i-1, j, k) + ubar*sz
1509 vx(i-1, j, k) =
vx(i-1, j, k) + vbar*sx
1510 vy(i-1, j, k) =
vy(i-1, j, k) + vbar*sy
1511 vz(i-1, j, k) =
vz(i-1, j, k) + vbar*sz
1512 wx(i-1, j, k) =
wx(i-1, j, k) + wbar*sx
1513 wy(i-1, j, k) =
wy(i-1, j, k) + wbar*sy
1514 wz(i-1, j, k) =
wz(i-1, j, k) + wbar*sz
1515 qx(i-1, j, k) =
qx(i-1, j, k) - a2*sx
1516 qy(i-1, j, k) =
qy(i-1, j, k) - a2*sy
1517 qz(i-1, j, k) =
qz(i-1, j, k) - a2*sz
1520 ux(i, j, k) =
ux(i, j, k) - ubar*sx
1521 uy(i, j, k) =
uy(i, j, k) - ubar*sy
1522 uz(i, j, k) =
uz(i, j, k) - ubar*sz
1523 vx(i, j, k) =
vx(i, j, k) - vbar*sx
1524 vy(i, j, k) =
vy(i, j, k) - vbar*sy
1525 vz(i, j, k) =
vz(i, j, k) - vbar*sz
1526 wx(i, j, k) =
wx(i, j, k) - wbar*sx
1527 wy(i, j, k) =
wy(i, j, k) - wbar*sy
1528 wz(i, j, k) =
wz(i, j, k) - wbar*sz
1529 qx(i, j, k) =
qx(i, j, k) + a2*sx
1530 qy(i, j, k) =
qy(i, j, k) + a2*sy
1531 qz(i, j, k) =
qz(i, j, k) + a2*sz
1538 j = mod(ii/
il,
jl) + 1
1542 & , j, k+1)+
vol(i, j+1, k)+
vol(i, j+1, k+1)+
vol(i+1, j+1, k)+
vol(i&
1546 ux(i, j, k) =
ux(i, j, k)*oneoverv
1547 uy(i, j, k) =
uy(i, j, k)*oneoverv
1548 uz(i, j, k) =
uz(i, j, k)*oneoverv
1549 vx(i, j, k) =
vx(i, j, k)*oneoverv
1550 vy(i, j, k) =
vy(i, j, k)*oneoverv
1551 vz(i, j, k) =
vz(i, j, k)*oneoverv
1552 wx(i, j, k) =
wx(i, j, k)*oneoverv
1553 wy(i, j, k) =
wy(i, j, k)*oneoverv
1554 wz(i, j, k) =
wz(i, j, k)*oneoverv
1555 qx(i, j, k) =
qx(i, j, k)*oneoverv
1556 qy(i, j, k) =
qy(i, j, k)*oneoverv
1557 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 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 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 rlv
real(kind=realtype), dimension(:, :, :, :), pointer si
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 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 vyd
integer(kind=inttype), parameter cptempcurvefits
real(kind=realtype), parameter zero
real(kind=realtype), parameter third
integer(kind=inttype), dimension(32) myintstack
integer(kind=inttype) myintptr
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 computepressure(ibeg, iend, jbeg, jend, kbeg, kend, pointeroffset)
subroutine etot(rho, u, v, w, p, k, etotal, correctfork)
subroutine eint_fast_b(rho, rhod, p, pd, k, kd, einternal, einternald, correctfork)
subroutine computelamviscosity(includehalos)
subroutine allnodalgradients_fast_b()
subroutine computepressuresimple(includehalos)
subroutine computeetotblock(istart, iend, jstart, jend, kstart, kend, correctfork)
subroutine adjustinflowangle()
subroutine computegamma(t, gamma, mm)
subroutine computettot(rho, u, v, w, p, ttot)
subroutine derivativerotmatrixrigid(rotationmatrix, rotationpoint, t)
subroutine computeptot(rho, u, v, w, p, ptot)
subroutine vectorrotation(xp, yp, zp, iaxis, angle, x, y, z)
subroutine allnodalgradients()
subroutine eint(rho, p, k, einternal, correctfork)
subroutine computespeedofsoundsquared()
subroutine etot_fast_b(rho, rhod, u, ud, v, vd, w, wd, p, pd, k, kd, etotal, etotald, correctfork)
subroutine getdirvector(refdirection, alpha, beta, winddirection, liftindex)
real(kind=realtype) gammainf
real(kind=realtype) pinfcorr
real(kind=realtype) muref
integer, parameter realtype
logical function getcorrectfork()
subroutine terminate(routinename, errormessage)
real(kind=realtype) function rigidrotangle(degreepolrot, coefpolrot, degreefourrot, omegafourrot, coscoeffourrot, sincoeffourrot, t)
real(kind=realtype) function derivativerigidrotangle(degreepolrot, coefpolrot, degreefourrot, omegafourrot, coscoeffourrot, sincoeffourrot, t)