14 use blockpointers,
only :
nx,
ny,
nz,
il,
jl,
kl,
w,
si,
sj,
sk, &
23 integer(kind=inttype) :: i, j, k, ii
24 real(kind=realtype) :: uux, uuy, uuz, vvx, vvy, vvz, wwx, wwy, wwz
25 real(kind=realtype) :: qxx, qyy, qzz, qxy, qxz, qyz, sijsij
26 real(kind=realtype) :: oxy, oxz, oyz, oijoij
27 real(kind=realtype) :: fact, omegax, omegay, omegaz
29 real(kind=realtype) :: arg1
30 real(kind=realtype) :: result1
52 uux =
w(i+1, j, k,
ivx)*
si(i, j, k, 1) -
w(i-1, j, k,
ivx)*
si(&
53 & i-1, j, k, 1) +
w(i, j+1, k,
ivx)*
sj(i, j, k, 1) -
w(i, j-1&
54 & , k,
ivx)*
sj(i, j-1, k, 1) +
w(i, j, k+1,
ivx)*
sk(i, j, k, 1&
55 & ) -
w(i, j, k-1,
ivx)*
sk(i, j, k-1, 1)
56 uuy =
w(i+1, j, k,
ivx)*
si(i, j, k, 2) -
w(i-1, j, k,
ivx)*
si(&
57 & i-1, j, k, 2) +
w(i, j+1, k,
ivx)*
sj(i, j, k, 2) -
w(i, j-1&
58 & , k,
ivx)*
sj(i, j-1, k, 2) +
w(i, j, k+1,
ivx)*
sk(i, j, k, 2&
59 & ) -
w(i, j, k-1,
ivx)*
sk(i, j, k-1, 2)
60 uuz =
w(i+1, j, k,
ivx)*
si(i, j, k, 3) -
w(i-1, j, k,
ivx)*
si(&
61 & i-1, j, k, 3) +
w(i, j+1, k,
ivx)*
sj(i, j, k, 3) -
w(i, j-1&
62 & , k,
ivx)*
sj(i, j-1, k, 3) +
w(i, j, k+1,
ivx)*
sk(i, j, k, 3&
63 & ) -
w(i, j, k-1,
ivx)*
sk(i, j, k-1, 3)
65 vvx =
w(i+1, j, k,
ivy)*
si(i, j, k, 1) -
w(i-1, j, k,
ivy)*
si(&
66 & i-1, j, k, 1) +
w(i, j+1, k,
ivy)*
sj(i, j, k, 1) -
w(i, j-1&
67 & , k,
ivy)*
sj(i, j-1, k, 1) +
w(i, j, k+1,
ivy)*
sk(i, j, k, 1&
68 & ) -
w(i, j, k-1,
ivy)*
sk(i, j, k-1, 1)
69 vvy =
w(i+1, j, k,
ivy)*
si(i, j, k, 2) -
w(i-1, j, k,
ivy)*
si(&
70 & i-1, j, k, 2) +
w(i, j+1, k,
ivy)*
sj(i, j, k, 2) -
w(i, j-1&
71 & , k,
ivy)*
sj(i, j-1, k, 2) +
w(i, j, k+1,
ivy)*
sk(i, j, k, 2&
72 & ) -
w(i, j, k-1,
ivy)*
sk(i, j, k-1, 2)
73 vvz =
w(i+1, j, k,
ivy)*
si(i, j, k, 3) -
w(i-1, j, k,
ivy)*
si(&
74 & i-1, j, k, 3) +
w(i, j+1, k,
ivy)*
sj(i, j, k, 3) -
w(i, j-1&
75 & , k,
ivy)*
sj(i, j-1, k, 3) +
w(i, j, k+1,
ivy)*
sk(i, j, k, 3&
76 & ) -
w(i, j, k-1,
ivy)*
sk(i, j, k-1, 3)
78 wwx =
w(i+1, j, k,
ivz)*
si(i, j, k, 1) -
w(i-1, j, k,
ivz)*
si(&
79 & i-1, j, k, 1) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 1) -
w(i, j-1&
80 & , k,
ivz)*
sj(i, j-1, k, 1) +
w(i, j, k+1,
ivz)*
sk(i, j, k, 1&
81 & ) -
w(i, j, k-1,
ivz)*
sk(i, j, k-1, 1)
82 wwy =
w(i+1, j, k,
ivz)*
si(i, j, k, 2) -
w(i-1, j, k,
ivz)*
si(&
83 & i-1, j, k, 2) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 2) -
w(i, j-1&
84 & , k,
ivz)*
sj(i, j-1, k, 2) +
w(i, j, k+1,
ivz)*
sk(i, j, k, 2&
85 & ) -
w(i, j, k-1,
ivz)*
sk(i, j, k-1, 2)
86 wwz =
w(i+1, j, k,
ivz)*
si(i, j, k, 3) -
w(i-1, j, k,
ivz)*
si(&
87 & i-1, j, k, 3) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 3) -
w(i, j-1&
88 & , k,
ivz)*
sj(i, j-1, k, 3) +
w(i, j, k+1,
ivz)*
sk(i, j, k, 3&
89 & ) -
w(i, j, k-1,
ivz)*
sk(i, j, k-1, 3)
97 qxy = fact*
half*(uuy+vvx)
98 qxz = fact*
half*(uuz+wwx)
99 qyz = fact*
half*(vvz+wwy)
100 oxy = fact*
half*(vvx-uuy) - omegaz
101 oxz = fact*
half*(uuz-wwx) - omegay
102 oyz = fact*
half*(wwy-vvz) - omegax
104 sijsij =
two*(qxy**2+qxz**2+qyz**2) + qxx**2 + qyy**2 + qzz**2
105 oijoij =
two*(oxy**2+oxz**2+oyz**2)
124 use blockpointers,
only :
nx,
ny,
nz,
il,
jl,
kl,
w,
si,
sj,
sk, &
130 real(kind=realtype),
parameter :: f23=
two*
third
134 integer(kind=inttype) :: i, j, k, ii
135 real(kind=realtype) :: uux, uuy, uuz, vvx, vvy, vvz, wwx, wwy, wwz
136 real(kind=realtype) :: div2, fact, sxx, syy, szz, sxy, sxz, syz
148 uux =
w(i+1, j, k,
ivx)*
si(i, j, k, 1) -
w(i-1, j, k,
ivx)*
si(&
149 & i-1, j, k, 1) +
w(i, j+1, k,
ivx)*
sj(i, j, k, 1) -
w(i, j-1&
150 & , k,
ivx)*
sj(i, j-1, k, 1) +
w(i, j, k+1,
ivx)*
sk(i, j, k, 1&
151 & ) -
w(i, j, k-1,
ivx)*
sk(i, j, k-1, 1)
152 uuy =
w(i+1, j, k,
ivx)*
si(i, j, k, 2) -
w(i-1, j, k,
ivx)*
si(&
153 & i-1, j, k, 2) +
w(i, j+1, k,
ivx)*
sj(i, j, k, 2) -
w(i, j-1&
154 & , k,
ivx)*
sj(i, j-1, k, 2) +
w(i, j, k+1,
ivx)*
sk(i, j, k, 2&
155 & ) -
w(i, j, k-1,
ivx)*
sk(i, j, k-1, 2)
156 uuz =
w(i+1, j, k,
ivx)*
si(i, j, k, 3) -
w(i-1, j, k,
ivx)*
si(&
157 & i-1, j, k, 3) +
w(i, j+1, k,
ivx)*
sj(i, j, k, 3) -
w(i, j-1&
158 & , k,
ivx)*
sj(i, j-1, k, 3) +
w(i, j, k+1,
ivx)*
sk(i, j, k, 3&
159 & ) -
w(i, j, k-1,
ivx)*
sk(i, j, k-1, 3)
161 vvx =
w(i+1, j, k,
ivy)*
si(i, j, k, 1) -
w(i-1, j, k,
ivy)*
si(&
162 & i-1, j, k, 1) +
w(i, j+1, k,
ivy)*
sj(i, j, k, 1) -
w(i, j-1&
163 & , k,
ivy)*
sj(i, j-1, k, 1) +
w(i, j, k+1,
ivy)*
sk(i, j, k, 1&
164 & ) -
w(i, j, k-1,
ivy)*
sk(i, j, k-1, 1)
165 vvy =
w(i+1, j, k,
ivy)*
si(i, j, k, 2) -
w(i-1, j, k,
ivy)*
si(&
166 & i-1, j, k, 2) +
w(i, j+1, k,
ivy)*
sj(i, j, k, 2) -
w(i, j-1&
167 & , k,
ivy)*
sj(i, j-1, k, 2) +
w(i, j, k+1,
ivy)*
sk(i, j, k, 2&
168 & ) -
w(i, j, k-1,
ivy)*
sk(i, j, k-1, 2)
169 vvz =
w(i+1, j, k,
ivy)*
si(i, j, k, 3) -
w(i-1, j, k,
ivy)*
si(&
170 & i-1, j, k, 3) +
w(i, j+1, k,
ivy)*
sj(i, j, k, 3) -
w(i, j-1&
171 & , k,
ivy)*
sj(i, j-1, k, 3) +
w(i, j, k+1,
ivy)*
sk(i, j, k, 3&
172 & ) -
w(i, j, k-1,
ivy)*
sk(i, j, k-1, 3)
174 wwx =
w(i+1, j, k,
ivz)*
si(i, j, k, 1) -
w(i-1, j, k,
ivz)*
si(&
175 & i-1, j, k, 1) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 1) -
w(i, j-1&
176 & , k,
ivz)*
sj(i, j-1, k, 1) +
w(i, j, k+1,
ivz)*
sk(i, j, k, 1&
177 & ) -
w(i, j, k-1,
ivz)*
sk(i, j, k-1, 1)
178 wwy =
w(i+1, j, k,
ivz)*
si(i, j, k, 2) -
w(i-1, j, k,
ivz)*
si(&
179 & i-1, j, k, 2) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 2) -
w(i, j-1&
180 & , k,
ivz)*
sj(i, j-1, k, 2) +
w(i, j, k+1,
ivz)*
sk(i, j, k, 2&
181 & ) -
w(i, j, k-1,
ivz)*
sk(i, j, k-1, 2)
182 wwz =
w(i+1, j, k,
ivz)*
si(i, j, k, 3) -
w(i-1, j, k,
ivz)*
si(&
183 & i-1, j, k, 3) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 3) -
w(i, j-1&
184 & , k,
ivz)*
sj(i, j-1, k, 3) +
w(i, j, k+1,
ivz)*
sk(i, j, k, 3&
185 & ) -
w(i, j, k-1,
ivz)*
sk(i, j, k-1, 3)
198 div2 = f23*(sxx+syy+szz)**2
201 & **2+syy**2+szz**2) - div2
216 use blockpointers,
only :
nx,
ny,
nz,
il,
jl,
kl,
w,
si,
sj,
sk, &
224 integer :: i, j, k, ii
225 real(kind=realtype) :: uuy, uuz, vvx, vvz, wwx, wwy
226 real(kind=realtype) :: fact, vortx, vorty, vortz
227 real(kind=realtype) :: omegax, omegay, omegaz
243 uuy =
w(i+1, j, k,
ivx)*
si(i, j, k, 2) -
w(i-1, j, k,
ivx)*
si(&
244 & i-1, j, k, 2) +
w(i, j+1, k,
ivx)*
sj(i, j, k, 2) -
w(i, j-1&
245 & , k,
ivx)*
sj(i, j-1, k, 2) +
w(i, j, k+1,
ivx)*
sk(i, j, k, 2&
246 & ) -
w(i, j, k-1,
ivx)*
sk(i, j, k-1, 2)
247 uuz =
w(i+1, j, k,
ivx)*
si(i, j, k, 3) -
w(i-1, j, k,
ivx)*
si(&
248 & i-1, j, k, 3) +
w(i, j+1, k,
ivx)*
sj(i, j, k, 3) -
w(i, j-1&
249 & , k,
ivx)*
sj(i, j-1, k, 3) +
w(i, j, k+1,
ivx)*
sk(i, j, k, 3&
250 & ) -
w(i, j, k-1,
ivx)*
sk(i, j, k-1, 3)
252 vvx =
w(i+1, j, k,
ivy)*
si(i, j, k, 1) -
w(i-1, j, k,
ivy)*
si(&
253 & i-1, j, k, 1) +
w(i, j+1, k,
ivy)*
sj(i, j, k, 1) -
w(i, j-1&
254 & , k,
ivy)*
sj(i, j-1, k, 1) +
w(i, j, k+1,
ivy)*
sk(i, j, k, 1&
255 & ) -
w(i, j, k-1,
ivy)*
sk(i, j, k-1, 1)
256 vvz =
w(i+1, j, k,
ivy)*
si(i, j, k, 3) -
w(i-1, j, k,
ivy)*
si(&
257 & i-1, j, k, 3) +
w(i, j+1, k,
ivy)*
sj(i, j, k, 3) -
w(i, j-1&
258 & , k,
ivy)*
sj(i, j-1, k, 3) +
w(i, j, k+1,
ivy)*
sk(i, j, k, 3&
259 & ) -
w(i, j, k-1,
ivy)*
sk(i, j, k-1, 3)
261 wwx =
w(i+1, j, k,
ivz)*
si(i, j, k, 1) -
w(i-1, j, k,
ivz)*
si(&
262 & i-1, j, k, 1) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 1) -
w(i, j-1&
263 & , k,
ivz)*
sj(i, j-1, k, 1) +
w(i, j, k+1,
ivz)*
sk(i, j, k, 1&
264 & ) -
w(i, j, k-1,
ivz)*
sk(i, j, k-1, 1)
265 wwy =
w(i+1, j, k,
ivz)*
si(i, j, k, 2) -
w(i-1, j, k,
ivz)*
si(&
266 & i-1, j, k, 2) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 2) -
w(i, j-1&
267 & , k,
ivz)*
sj(i, j-1, k, 2) +
w(i, j, k+1,
ivz)*
sk(i, j, k, 2&
268 & ) -
w(i, j, k-1,
ivz)*
sk(i, j, k-1, 2)
272 vortx = fact*(wwy-vvz) -
two*omegax
273 vorty = fact*(uuz-wwx) -
two*omegay
274 vortz = fact*(vvx-uuy) -
two*omegaz
276 scratch(i, j, k,
ivort) = vortx**2 + vorty**2 + vortz**2
286 & nulamd, sanuknowneddyratio)
301 real(kind=realtype),
intent(in) :: eddyratio, nulam
302 real(kind=realtype),
intent(in) :: nulamd
306 real(kind=realtype) :: cv13, chi, chi2, chi3, chi4, f, df, dchi
308 real(kind=realtype) :: abs0
310 if (eddyratio .le.
zero)
then
321 if (eddyratio .lt. 1.e-4_realtype)
then
323 else if (eddyratio .lt. 1.0_realtype)
then
325 else if (eddyratio .lt. 10.0_realtype)
then
336 f = chi4 - eddyratio*(chi3+cv13)
341 if (dchi/chi .ge. 0.)
then
372 real(kind=realtype),
intent(in) :: eddyratio, nulam
376 real(kind=realtype) :: cv13, chi, chi2, chi3, chi4, f, df, dchi
378 real(kind=realtype) :: abs0
380 if (eddyratio .le.
zero)
then
390 if (eddyratio .lt. 1.e-4_realtype)
then
392 else if (eddyratio .lt. 1.0_realtype)
then
394 else if (eddyratio .lt. 10.0_realtype)
then
405 f = chi4 - eddyratio*(chi3+cv13)
410 if (dchi/chi .ge. 0.)
then
457 integer(kind=inttype),
intent(in) :: madv, nadv, offset
458 real(kind=realtype),
dimension(2:il, 2:jl, 2:kl, madv, madv), &
459 &
intent(inout) :: qq
463 integer(kind=inttype) :: i, j, k, ii, jj, nn
464 real(kind=realtype) :: oneoverdt, tmp
482 nadvloopunsteady:
do ii=1,nadv
507 qq(i, j, k, ii, ii) = qq(i, j, k, ii, ii) +
coeftime(0)*&
512 end do nadvloopunsteady
523 nadvloopspectral:
do ii=1,nadv
543 qq(i, j, k, ii, ii) = qq(i, j, k, ii, ii) + tmp
547 end do nadvloopspectral
570 logical,
intent(in) :: includehalos
574 logical :: returnimmediately
575 integer(kind=inttype) :: ibeg, iend, jbeg, jend, kbeg, kend
579 returnimmediately = .false.
581 returnimmediately = .true.
584 returnimmediately = .true.
586 if (returnimmediately)
then
592 if (includehalos)
then
630 logical,
intent(in) :: includehalos
634 logical :: returnimmediately
635 integer(kind=inttype) :: ibeg, iend, jbeg, jend, kbeg, kend
639 returnimmediately = .false.
641 returnimmediately = .true.
644 returnimmediately = .true.
646 if (returnimmediately)
then
651 if (includehalos)
then
690 integer(kind=inttype) :: ibeg, iend, jbeg, jend, kbeg, kend
694 integer(kind=inttype) :: i, j, k, ii, isize, jsize, ksize
695 real(kind=realtype) :: chi, chi3, fv1, rnusa, cv13
696 real(kind=realtype) :: chid, chi3d, fv1d, rnusad
697 real(kind=realtype) :: temp
698 real(kind=realtype) :: temp0
707 temp =
w(i, j, k,
irho)
708 temp0 =
w(i, j, k,
itu1)
709 rnusad = temp*
wd(i, j, k,
itu1) + temp0*
wd(i, j, k,
irho)
711 temp0 = rnusa/
rlv(i, j, k)
712 chid = (rnusad-temp0*
rlvd(i, j, k))/
rlv(i, j, k)
714 chi3d = 3*chi**2*chid
716 temp0 = chi3/(cv13+chi3)
717 fv1d = (1.0-temp0)*chi3d/(cv13+chi3)
719 revd(i, j, k) = rnusa*fv1d + fv1*rnusad
720 rev(i, j, k) = fv1*rnusa
739 integer(kind=inttype) :: ibeg, iend, jbeg, jend, kbeg, kend
743 integer(kind=inttype) :: i, j, k, ii, isize, jsize, ksize
744 real(kind=realtype) :: chi, chi3, fv1, rnusa, cv13
753 chi = rnusa/
rlv(i, j, k)
755 fv1 = chi3/(chi3+cv13)
756 rev(i, j, k) = fv1*rnusa
772 integer(kind=inttype) :: ibeg, iend, jbeg, jend, kbeg, kend
776 integer(kind=inttype) :: i, j, k, ii, isize, jsize, ksize
778 real(kind=realtype) :: x1
807 integer(kind=inttype) :: ibeg, iend, jbeg, jend, kbeg, kend
811 integer(kind=inttype) :: i, j, k, ii, isize, jsize, ksize
812 real(kind=realtype) :: t1, t2, arg2, f2, vortmag
816 real(kind=realtype) :: max1
817 real(kind=realtype) :: result1
818 real(kind=realtype) :: arg1
831 result1 = sqrt(
w(i, j, k,
itu1))
834 t2 = 500.0_realtype*
rlv(i, j, k)/(
w(i, j, k,
irho)*
w(i, j, k, &
886 &
sfacei,
sfaceid,
sfacej,
sfacejd,
sfacek,
sfacekd,
w,
wd,
si,
sid, &
896 integer(kind=inttype),
intent(in) :: nadv, madv, offset
897 real(kind=realtype),
dimension(2:il, 2:jl, 2:kl, madv, madv), &
898 &
intent(inout) :: qq
902 integer(kind=inttype) :: i, j, k, ii, jj, kk, iii
903 real(kind=realtype) :: qs, voli, xa, ya, za
904 real(kind=realtype) :: qsd, volid, xad, yad, zad
905 real(kind=realtype) :: uu, dwt, dwtm1, dwtp1, dwti, dwtj, dwtk
906 real(kind=realtype) :: uud, dwtd, dwtm1d, dwtp1d, dwtid, dwtjd, &
908 real(kind=realtype),
dimension(madv) :: impl
910 real(kind=realtype) :: abs0
911 real(kind=realtype) :: abs1
912 real(kind=realtype) :: abs2
913 real(kind=realtype) :: abs3
914 real(kind=realtype) :: abs4
915 real(kind=realtype) :: abs5
916 real(kind=realtype) :: abs6
917 real(kind=realtype) :: abs7
918 real(kind=realtype) :: abs8
919 real(kind=realtype) :: abs9
920 real(kind=realtype) :: abs10
921 real(kind=realtype) :: abs11
922 real(kind=realtype) :: abs12
923 real(kind=realtype) :: abs13
924 real(kind=realtype) :: abs14
925 real(kind=realtype) :: abs15
926 real(kind=realtype) :: abs16
927 real(kind=realtype) :: abs17
928 real(kind=realtype) :: abs18
929 real(kind=realtype) :: abs19
930 real(kind=realtype) :: abs20
931 real(kind=realtype) :: abs21
932 real(kind=realtype) :: abs22
933 real(kind=realtype) :: abs23
934 real(kind=realtype) :: temp
935 real(kind=realtype) :: temp0
936 real(kind=realtype) :: temp1
959 volid = -(temp*
vold(i, j, k)/
vol(i, j, k))
969 temp =
sk(i, j, k, 1) +
sk(i, j, k-1, 1)
970 xad = voli*(
skd(i, j, k, 1)+
skd(i, j, k-1, 1)) + temp*volid
972 temp =
sk(i, j, k, 2) +
sk(i, j, k-1, 2)
973 yad = voli*(
skd(i, j, k, 2)+
skd(i, j, k-1, 2)) + temp*volid
975 temp =
sk(i, j, k, 3) +
sk(i, j, k-1, 3)
976 zad = voli*(
skd(i, j, k, 3)+
skd(i, j, k-1, 3)) + temp*volid
978 temp =
w(i, j, k,
ivx)
979 temp0 =
w(i, j, k,
ivy)
980 temp1 =
w(i, j, k,
ivz)
981 uud = temp*xad + xa*
wd(i, j, k,
ivx) + temp0*yad + ya*
wd(i, j&
982 & , k,
ivy) + temp1*zad + za*
wd(i, j, k,
ivz) - qsd
983 uu = xa*temp + ya*temp0 + za*temp1 - qs
987 if (uu .gt.
zero)
then
999 dwtm1d =
wd(i, j, k-1, jj) -
wd(i, j, k-2, jj)
1000 dwtm1 =
w(i, j, k-1, jj) -
w(i, j, k-2, jj)
1001 dwtd =
wd(i, j, k, jj) -
wd(i, j, k-1, jj)
1002 dwt =
w(i, j, k, jj) -
w(i, j, k-1, jj)
1003 dwtp1d =
wd(i, j, k+1, jj) -
wd(i, j, k, jj)
1004 dwtp1 =
w(i, j, k+1, jj) -
w(i, j, k, jj)
1010 if (dwt*dwtp1 .gt.
zero)
then
1011 if (dwt .ge. 0.)
then
1016 if (dwtp1 .ge. 0.)
then
1021 if (abs0 .lt. abs12)
then
1022 dwtkd = dwtkd +
half*dwtd
1023 dwtk = dwtk +
half*dwt
1025 dwtkd = dwtkd +
half*dwtp1d
1026 dwtk = dwtk +
half*dwtp1
1029 if (dwt*dwtm1 .gt.
zero)
then
1030 if (dwt .ge. 0.)
then
1035 if (dwtm1 .ge. 0.)
then
1040 if (abs1 .lt. abs13)
then
1041 dwtkd = dwtkd -
half*dwtd
1042 dwtk = dwtk -
half*dwt
1044 dwtkd = dwtkd -
half*dwtm1d
1045 dwtk = dwtk -
half*dwtm1
1050 dwtkd =
wd(i, j, k, jj) -
wd(i, j, k-1, jj)
1051 dwtk =
w(i, j, k, jj) -
w(i, j, k-1, jj)
1058 & ) - dwtk*uud - uu*dwtkd
1074 dwtm1d =
wd(i, j, k, jj) -
wd(i, j, k-1, jj)
1075 dwtm1 =
w(i, j, k, jj) -
w(i, j, k-1, jj)
1076 dwtd =
wd(i, j, k+1, jj) -
wd(i, j, k, jj)
1077 dwt =
w(i, j, k+1, jj) -
w(i, j, k, jj)
1078 dwtp1d =
wd(i, j, k+2, jj) -
wd(i, j, k+1, jj)
1079 dwtp1 =
w(i, j, k+2, jj) -
w(i, j, k+1, jj)
1085 if (dwt*dwtp1 .gt.
zero)
then
1086 if (dwt .ge. 0.)
then
1091 if (dwtp1 .ge. 0.)
then
1096 if (abs2 .lt. abs14)
then
1097 dwtkd = dwtkd -
half*dwtd
1098 dwtk = dwtk -
half*dwt
1100 dwtkd = dwtkd -
half*dwtp1d
1101 dwtk = dwtk -
half*dwtp1
1104 if (dwt*dwtm1 .gt.
zero)
then
1105 if (dwt .ge. 0.)
then
1110 if (dwtm1 .ge. 0.)
then
1115 if (abs3 .lt. abs15)
then
1116 dwtkd = dwtkd +
half*dwtd
1117 dwtk = dwtk +
half*dwt
1119 dwtkd = dwtkd +
half*dwtm1d
1120 dwtk = dwtk +
half*dwtm1
1125 dwtkd =
wd(i, j, k+1, jj) -
wd(i, j, k, jj)
1126 dwtk =
w(i, j, k+1, jj) -
w(i, j, k, jj)
1132 & ) - dwtk*uud - uu*dwtkd
1157 volid = -(temp1*
vold(i, j, k)/
vol(i, j, k))
1167 temp1 =
sj(i, j, k, 1) +
sj(i, j-1, k, 1)
1168 xad = voli*(
sjd(i, j, k, 1)+
sjd(i, j-1, k, 1)) + temp1*volid
1170 temp1 =
sj(i, j, k, 2) +
sj(i, j-1, k, 2)
1171 yad = voli*(
sjd(i, j, k, 2)+
sjd(i, j-1, k, 2)) + temp1*volid
1173 temp1 =
sj(i, j, k, 3) +
sj(i, j-1, k, 3)
1174 zad = voli*(
sjd(i, j, k, 3)+
sjd(i, j-1, k, 3)) + temp1*volid
1176 temp1 =
w(i, j, k,
ivx)
1177 temp0 =
w(i, j, k,
ivy)
1178 temp =
w(i, j, k,
ivz)
1179 uud = temp1*xad + xa*
wd(i, j, k,
ivx) + temp0*yad + ya*
wd(i, j&
1180 & , k,
ivy) + temp*zad + za*
wd(i, j, k,
ivz) - qsd
1181 uu = xa*temp1 + ya*temp0 + za*temp - qs
1184 if (uu .gt.
zero)
then
1196 dwtm1d =
wd(i, j-1, k, jj) -
wd(i, j-2, k, jj)
1197 dwtm1 =
w(i, j-1, k, jj) -
w(i, j-2, k, jj)
1198 dwtd =
wd(i, j, k, jj) -
wd(i, j-1, k, jj)
1199 dwt =
w(i, j, k, jj) -
w(i, j-1, k, jj)
1200 dwtp1d =
wd(i, j+1, k, jj) -
wd(i, j, k, jj)
1201 dwtp1 =
w(i, j+1, k, jj) -
w(i, j, k, jj)
1207 if (dwt*dwtp1 .gt.
zero)
then
1208 if (dwt .ge. 0.)
then
1213 if (dwtp1 .ge. 0.)
then
1218 if (abs4 .lt. abs16)
then
1219 dwtjd = dwtjd +
half*dwtd
1220 dwtj = dwtj +
half*dwt
1222 dwtjd = dwtjd +
half*dwtp1d
1223 dwtj = dwtj +
half*dwtp1
1226 if (dwt*dwtm1 .gt.
zero)
then
1227 if (dwt .ge. 0.)
then
1232 if (dwtm1 .ge. 0.)
then
1237 if (abs5 .lt. abs17)
then
1238 dwtjd = dwtjd -
half*dwtd
1239 dwtj = dwtj -
half*dwt
1241 dwtjd = dwtjd -
half*dwtm1d
1242 dwtj = dwtj -
half*dwtm1
1247 dwtjd =
wd(i, j, k, jj) -
wd(i, j-1, k, jj)
1248 dwtj =
w(i, j, k, jj) -
w(i, j-1, k, jj)
1254 & ) - dwtj*uud - uu*dwtjd
1272 dwtm1d =
wd(i, j, k, jj) -
wd(i, j-1, k, jj)
1273 dwtm1 =
w(i, j, k, jj) -
w(i, j-1, k, jj)
1274 dwtd =
wd(i, j+1, k, jj) -
wd(i, j, k, jj)
1275 dwt =
w(i, j+1, k, jj) -
w(i, j, k, jj)
1276 dwtp1d =
wd(i, j+2, k, jj) -
wd(i, j+1, k, jj)
1277 dwtp1 =
w(i, j+2, k, jj) -
w(i, j+1, k, jj)
1283 if (dwt*dwtp1 .gt.
zero)
then
1284 if (dwt .ge. 0.)
then
1289 if (dwtp1 .ge. 0.)
then
1294 if (abs6 .lt. abs18)
then
1295 dwtjd = dwtjd -
half*dwtd
1296 dwtj = dwtj -
half*dwt
1298 dwtjd = dwtjd -
half*dwtp1d
1299 dwtj = dwtj -
half*dwtp1
1302 if (dwt*dwtm1 .gt.
zero)
then
1303 if (dwt .ge. 0.)
then
1308 if (dwtm1 .ge. 0.)
then
1313 if (abs7 .lt. abs19)
then
1314 dwtjd = dwtjd +
half*dwtd
1315 dwtj = dwtj +
half*dwt
1317 dwtjd = dwtjd +
half*dwtm1d
1318 dwtj = dwtj +
half*dwtm1
1323 dwtjd =
wd(i, j+1, k, jj) -
wd(i, j, k, jj)
1324 dwtj =
w(i, j+1, k, jj) -
w(i, j, k, jj)
1330 & ) - dwtj*uud - uu*dwtjd
1355 volid = -(temp1*
vold(i, j, k)/
vol(i, j, k))
1365 temp1 =
si(i, j, k, 1) +
si(i-1, j, k, 1)
1366 xad = voli*(
sid(i, j, k, 1)+
sid(i-1, j, k, 1)) + temp1*volid
1368 temp1 =
si(i, j, k, 2) +
si(i-1, j, k, 2)
1369 yad = voli*(
sid(i, j, k, 2)+
sid(i-1, j, k, 2)) + temp1*volid
1371 temp1 =
si(i, j, k, 3) +
si(i-1, j, k, 3)
1372 zad = voli*(
sid(i, j, k, 3)+
sid(i-1, j, k, 3)) + temp1*volid
1374 temp1 =
w(i, j, k,
ivx)
1375 temp0 =
w(i, j, k,
ivy)
1376 temp =
w(i, j, k,
ivz)
1377 uud = temp1*xad + xa*
wd(i, j, k,
ivx) + temp0*yad + ya*
wd(i, j&
1378 & , k,
ivy) + temp*zad + za*
wd(i, j, k,
ivz) - qsd
1379 uu = xa*temp1 + ya*temp0 + za*temp - qs
1382 if (uu .gt.
zero)
then
1394 dwtm1d =
wd(i-1, j, k, jj) -
wd(i-2, j, k, jj)
1395 dwtm1 =
w(i-1, j, k, jj) -
w(i-2, j, k, jj)
1396 dwtd =
wd(i, j, k, jj) -
wd(i-1, j, k, jj)
1397 dwt =
w(i, j, k, jj) -
w(i-1, j, k, jj)
1398 dwtp1d =
wd(i+1, j, k, jj) -
wd(i, j, k, jj)
1399 dwtp1 =
w(i+1, j, k, jj) -
w(i, j, k, jj)
1405 if (dwt*dwtp1 .gt.
zero)
then
1406 if (dwt .ge. 0.)
then
1411 if (dwtp1 .ge. 0.)
then
1416 if (abs8 .lt. abs20)
then
1417 dwtid = dwtid +
half*dwtd
1418 dwti = dwti +
half*dwt
1420 dwtid = dwtid +
half*dwtp1d
1421 dwti = dwti +
half*dwtp1
1424 if (dwt*dwtm1 .gt.
zero)
then
1425 if (dwt .ge. 0.)
then
1430 if (dwtm1 .ge. 0.)
then
1435 if (abs9 .lt. abs21)
then
1436 dwtid = dwtid -
half*dwtd
1437 dwti = dwti -
half*dwt
1439 dwtid = dwtid -
half*dwtm1d
1440 dwti = dwti -
half*dwtm1
1445 dwtid =
wd(i, j, k, jj) -
wd(i-1, j, k, jj)
1446 dwti =
w(i, j, k, jj) -
w(i-1, j, k, jj)
1452 & ) - dwti*uud - uu*dwtid
1470 dwtm1d =
wd(i, j, k, jj) -
wd(i-1, j, k, jj)
1471 dwtm1 =
w(i, j, k, jj) -
w(i-1, j, k, jj)
1472 dwtd =
wd(i+1, j, k, jj) -
wd(i, j, k, jj)
1473 dwt =
w(i+1, j, k, jj) -
w(i, j, k, jj)
1474 dwtp1d =
wd(i+2, j, k, jj) -
wd(i+1, j, k, jj)
1475 dwtp1 =
w(i+2, j, k, jj) -
w(i+1, j, k, jj)
1481 if (dwt*dwtp1 .gt.
zero)
then
1482 if (dwt .ge. 0.)
then
1487 if (dwtp1 .ge. 0.)
then
1492 if (abs10 .lt. abs22)
then
1493 dwtid = dwtid -
half*dwtd
1494 dwti = dwti -
half*dwt
1496 dwtid = dwtid -
half*dwtp1d
1497 dwti = dwti -
half*dwtp1
1500 if (dwt*dwtm1 .gt.
zero)
then
1501 if (dwt .ge. 0.)
then
1506 if (dwtm1 .ge. 0.)
then
1511 if (abs11 .lt. abs23)
then
1512 dwtid = dwtid +
half*dwtd
1513 dwti = dwti +
half*dwt
1515 dwtid = dwtid +
half*dwtm1d
1516 dwti = dwti +
half*dwtm1
1521 dwtid =
wd(i+1, j, k, jj) -
wd(i, j, k, jj)
1522 dwti =
w(i+1, j, k, jj) -
w(i, j, k, jj)
1528 & ) - dwti*uud - uu*dwtid
1571 integer(kind=inttype),
intent(in) :: nadv, madv, offset
1572 real(kind=realtype),
dimension(2:il, 2:jl, 2:kl, madv, madv), &
1573 &
intent(inout) :: qq
1577 integer(kind=inttype) :: i, j, k, ii, jj, kk, iii
1578 real(kind=realtype) :: qs, voli, xa, ya, za
1579 real(kind=realtype) :: uu, dwt, dwtm1, dwtp1, dwti, dwtj, dwtk
1580 real(kind=realtype),
dimension(madv) :: impl
1582 real(kind=realtype) :: abs0
1583 real(kind=realtype) :: abs1
1584 real(kind=realtype) :: abs2
1585 real(kind=realtype) :: abs3
1586 real(kind=realtype) :: abs4
1587 real(kind=realtype) :: abs5
1588 real(kind=realtype) :: abs6
1589 real(kind=realtype) :: abs7
1590 real(kind=realtype) :: abs8
1591 real(kind=realtype) :: abs9
1592 real(kind=realtype) :: abs10
1593 real(kind=realtype) :: abs11
1594 real(kind=realtype) :: abs12
1595 real(kind=realtype) :: abs13
1596 real(kind=realtype) :: abs14
1597 real(kind=realtype) :: abs15
1598 real(kind=realtype) :: abs16
1599 real(kind=realtype) :: abs17
1600 real(kind=realtype) :: abs18
1601 real(kind=realtype) :: abs19
1602 real(kind=realtype) :: abs20
1603 real(kind=realtype) :: abs21
1604 real(kind=realtype) :: abs22
1605 real(kind=realtype) :: abs23
1632 xa = (
sk(i, j, k, 1)+
sk(i, j, k-1, 1))*voli
1633 ya = (
sk(i, j, k, 2)+
sk(i, j, k-1, 2))*voli
1634 za = (
sk(i, j, k, 3)+
sk(i, j, k-1, 3))*voli
1635 uu = xa*
w(i, j, k,
ivx) + ya*
w(i, j, k,
ivy) + za*
w(i, j, k, &
1640 if (uu .gt.
zero)
then
1653 dwtm1 =
w(i, j, k-1, jj) -
w(i, j, k-2, jj)
1654 dwt =
w(i, j, k, jj) -
w(i, j, k-1, jj)
1655 dwtp1 =
w(i, j, k+1, jj) -
w(i, j, k, jj)
1660 if (dwt*dwtp1 .gt.
zero)
then
1661 if (dwt .ge. 0.)
then
1666 if (dwtp1 .ge. 0.)
then
1671 if (abs0 .lt. abs12)
then
1672 dwtk = dwtk +
half*dwt
1674 dwtk = dwtk +
half*dwtp1
1677 if (dwt*dwtm1 .gt.
zero)
then
1678 if (dwt .ge. 0.)
then
1683 if (dwtm1 .ge. 0.)
then
1688 if (abs1 .lt. abs13)
then
1689 dwtk = dwtk -
half*dwt
1691 dwtk = dwtk -
half*dwtm1
1696 dwtk =
w(i, j, k, jj) -
w(i, j, k-1, jj)
1718 dwtm1 =
w(i, j, k, jj) -
w(i, j, k-1, jj)
1719 dwt =
w(i, j, k+1, jj) -
w(i, j, k, jj)
1720 dwtp1 =
w(i, j, k+2, jj) -
w(i, j, k+1, jj)
1725 if (dwt*dwtp1 .gt.
zero)
then
1726 if (dwt .ge. 0.)
then
1731 if (dwtp1 .ge. 0.)
then
1736 if (abs2 .lt. abs14)
then
1737 dwtk = dwtk -
half*dwt
1739 dwtk = dwtk -
half*dwtp1
1742 if (dwt*dwtm1 .gt.
zero)
then
1743 if (dwt .ge. 0.)
then
1748 if (dwtm1 .ge. 0.)
then
1753 if (abs3 .lt. abs15)
then
1754 dwtk = dwtk +
half*dwt
1756 dwtk = dwtk +
half*dwtm1
1761 dwtk =
w(i, j, k+1, jj) -
w(i, j, k, jj)
1796 xa = (
sj(i, j, k, 1)+
sj(i, j-1, k, 1))*voli
1797 ya = (
sj(i, j, k, 2)+
sj(i, j-1, k, 2))*voli
1798 za = (
sj(i, j, k, 3)+
sj(i, j-1, k, 3))*voli
1799 uu = xa*
w(i, j, k,
ivx) + ya*
w(i, j, k,
ivy) + za*
w(i, j, k, &
1803 if (uu .gt.
zero)
then
1816 dwtm1 =
w(i, j-1, k, jj) -
w(i, j-2, k, jj)
1817 dwt =
w(i, j, k, jj) -
w(i, j-1, k, jj)
1818 dwtp1 =
w(i, j+1, k, jj) -
w(i, j, k, jj)
1823 if (dwt*dwtp1 .gt.
zero)
then
1824 if (dwt .ge. 0.)
then
1829 if (dwtp1 .ge. 0.)
then
1834 if (abs4 .lt. abs16)
then
1835 dwtj = dwtj +
half*dwt
1837 dwtj = dwtj +
half*dwtp1
1840 if (dwt*dwtm1 .gt.
zero)
then
1841 if (dwt .ge. 0.)
then
1846 if (dwtm1 .ge. 0.)
then
1851 if (abs5 .lt. abs17)
then
1852 dwtj = dwtj -
half*dwt
1854 dwtj = dwtj -
half*dwtm1
1859 dwtj =
w(i, j, k, jj) -
w(i, j-1, k, jj)
1882 dwtm1 =
w(i, j, k, jj) -
w(i, j-1, k, jj)
1883 dwt =
w(i, j+1, k, jj) -
w(i, j, k, jj)
1884 dwtp1 =
w(i, j+2, k, jj) -
w(i, j+1, k, jj)
1889 if (dwt*dwtp1 .gt.
zero)
then
1890 if (dwt .ge. 0.)
then
1895 if (dwtp1 .ge. 0.)
then
1900 if (abs6 .lt. abs18)
then
1901 dwtj = dwtj -
half*dwt
1903 dwtj = dwtj -
half*dwtp1
1906 if (dwt*dwtm1 .gt.
zero)
then
1907 if (dwt .ge. 0.)
then
1912 if (dwtm1 .ge. 0.)
then
1917 if (abs7 .lt. abs19)
then
1918 dwtj = dwtj +
half*dwt
1920 dwtj = dwtj +
half*dwtm1
1925 dwtj =
w(i, j+1, k, jj) -
w(i, j, k, jj)
1960 xa = (
si(i, j, k, 1)+
si(i-1, j, k, 1))*voli
1961 ya = (
si(i, j, k, 2)+
si(i-1, j, k, 2))*voli
1962 za = (
si(i, j, k, 3)+
si(i-1, j, k, 3))*voli
1963 uu = xa*
w(i, j, k,
ivx) + ya*
w(i, j, k,
ivy) + za*
w(i, j, k, &
1967 if (uu .gt.
zero)
then
1980 dwtm1 =
w(i-1, j, k, jj) -
w(i-2, j, k, jj)
1981 dwt =
w(i, j, k, jj) -
w(i-1, j, k, jj)
1982 dwtp1 =
w(i+1, j, k, jj) -
w(i, j, k, jj)
1987 if (dwt*dwtp1 .gt.
zero)
then
1988 if (dwt .ge. 0.)
then
1993 if (dwtp1 .ge. 0.)
then
1998 if (abs8 .lt. abs20)
then
1999 dwti = dwti +
half*dwt
2001 dwti = dwti +
half*dwtp1
2004 if (dwt*dwtm1 .gt.
zero)
then
2005 if (dwt .ge. 0.)
then
2010 if (dwtm1 .ge. 0.)
then
2015 if (abs9 .lt. abs21)
then
2016 dwti = dwti -
half*dwt
2018 dwti = dwti -
half*dwtm1
2023 dwti =
w(i, j, k, jj) -
w(i-1, j, k, jj)
2046 dwtm1 =
w(i, j, k, jj) -
w(i-1, j, k, jj)
2047 dwt =
w(i+1, j, k, jj) -
w(i, j, k, jj)
2048 dwtp1 =
w(i+2, j, k, jj) -
w(i+1, j, k, jj)
2053 if (dwt*dwtp1 .gt.
zero)
then
2054 if (dwt .ge. 0.)
then
2059 if (dwtp1 .ge. 0.)
then
2064 if (abs10 .lt. abs22)
then
2065 dwti = dwti -
half*dwt
2067 dwti = dwti -
half*dwtp1
2070 if (dwt*dwtm1 .gt.
zero)
then
2071 if (dwt .ge. 0.)
then
2076 if (dwtm1 .ge. 0.)
then
2081 if (abs11 .lt. abs23)
then
2082 dwti = dwti +
half*dwt
2084 dwti = dwti +
half*dwtm1
2089 dwti =
w(i+1, j, k, jj) -
w(i, j, k, jj)
real(kind=realtype), dimension(:, :, :, :), pointer bmtk2
real(kind=realtype), dimension(:, :, :), pointer sfacek
logical addgridvelocities
real(kind=realtype), dimension(:, :, :, :), pointer sjd
real(kind=realtype), dimension(:, :, :, :), pointer bmti1
real(kind=realtype), dimension(:, :, :, :), pointer wd
real(kind=realtype), dimension(:, :, :), pointer vold
real(kind=realtype), dimension(:, :, :, :), pointer bmtj1
real(kind=realtype), dimension(:, :, :, :), pointer bmti2
real(kind=realtype), dimension(:, :, :, :), pointer w
real(kind=realtype), dimension(:, :, :, :), pointer scratch
real(kind=realtype), dimension(:, :, :), pointer sfacei
real(kind=realtype), dimension(:, :, :), pointer d2wall
real(kind=realtype), dimension(:, :, :), pointer revd
real(kind=realtype), dimension(:, :, :, :), pointer skd
real(kind=realtype), dimension(:, :, :), pointer sfacejd
real(kind=realtype), dimension(:, :, :), pointer rlv
real(kind=realtype), dimension(:, :, :, :), pointer si
real(kind=realtype), dimension(:, :, :, :), pointer sid
real(kind=realtype), dimension(:, :, :, :), pointer sj
integer(kind=inttype) sectionid
real(kind=realtype), dimension(:, :, :, :), pointer scratchd
real(kind=realtype), dimension(:, :, :), pointer rev
real(kind=realtype), dimension(:, :, :, :), pointer bmtj2
real(kind=realtype), dimension(:, :, :, :), pointer dw
real(kind=realtype), dimension(:, :, :, :), pointer sk
real(kind=realtype), dimension(:, :, :), pointer rlvd
real(kind=realtype), dimension(:, :, :), pointer vol
real(kind=realtype), dimension(:, :, :), pointer sfacej
real(kind=realtype), dimension(:, :, :), pointer sfacekd
real(kind=realtype), dimension(:, :, :), pointer sfaceid
real(kind=realtype), dimension(:, :, :, :), pointer bmtk1
real(kind=realtype), dimension(:, :, :, :, :), pointer wold
integer(kind=inttype), parameter spalartallmarasedwards
integer(kind=inttype), parameter spalartallmaras
real(kind=realtype), parameter zero
real(kind=realtype), parameter three
real(kind=realtype), parameter four
real(kind=realtype), parameter third
real(kind=realtype), parameter thresholdreal
real(kind=realtype), parameter half
real(kind=realtype), parameter two
real(kind=realtype), parameter fourth
integer(kind=inttype), parameter secondorder
real(kind=realtype) timeref
integer(kind=inttype) noldlevels
integer(kind=inttype) currentlevel
integer(kind=inttype) groundlevel
real(kind=realtype), dimension(:), allocatable coeftime
real(kind=realtype), parameter rssta1
real(kind=realtype), parameter rsacv1
type(sectiontype), dimension(:), allocatable sections
real(kind=realtype), dimension(:, :, :), pointer prod
subroutine ssteddyviscosity(ibeg, iend, jbeg, jend, kbeg, kend)
subroutine unsteadyturbterm(madv, nadv, offset, qq)
real(kind=realtype) function sanuknowneddyratio_d(eddyratio, nulam, nulamd, sanuknowneddyratio)
subroutine kweddyviscosity(ibeg, iend, jbeg, jend, kbeg, kend)
subroutine saeddyviscosity(ibeg, iend, jbeg, jend, kbeg, kend)
subroutine prodkatolaunder()
subroutine turbadvection_d(madv, nadv, offset, qq)
subroutine saeddyviscosity_d(ibeg, iend, jbeg, jend, kbeg, kend)
subroutine turbadvection(madv, nadv, offset, qq)
real(kind=realtype) function sanuknowneddyratio(eddyratio, nulam)
subroutine computeeddyviscosity(includehalos)
subroutine computeeddyviscosity_d(includehalos)