11 real(kind=realtype),
dimension(:, :, :),
allocatable ::
qq
12 real(kind=realtype),
dimension(:, :, :),
pointer ::
ddw,
ww,
ddvt
13 real(kind=realtype),
dimension(:, :),
pointer ::
rrlv
14 real(kind=realtype),
dimension(:, :),
pointer ::
dd2wall
40 real(kind=realtype),
parameter :: f23=
two*
third
42 integer(kind=inttype) :: i, j, k, nn, ii
43 real(kind=realtype) :: fv1, fv2, ft2
44 real(kind=realtype) :: fv1d, fv2d, ft2d
45 real(kind=realtype) :: ss,
sst, nu, dist2inv, chi, chi2, chi3
46 real(kind=realtype) :: ssd, sstd, nud, dist2invd, chid, chi2d, chi3d
47 real(kind=realtype) :: rr, gg, gg6, termfw, fwsa, term1, term2
48 real(kind=realtype) :: rrd, ggd, gg6d, termfwd, fwsad, term1d, &
50 real(kind=realtype) :: dfv1, dfv2, dft2, drr, dgg, dfw
51 real(kind=realtype) :: uux, uuy, uuz, vvx, vvy, vvz, wwx, wwy, wwz
52 real(kind=realtype) :: uuxd, uuyd, uuzd, vvxd, vvyd, vvzd, wwxd, &
54 real(kind=realtype) :: div2, fact, sxx, syy, szz, sxy, sxz, syz
55 real(kind=realtype) :: div2d, factd, sxxd, syyd, szzd, sxyd, sxzd, &
57 real(kind=realtype) :: vortx, vorty, vortz
58 real(kind=realtype) :: vortxd, vortyd, vortzd
59 real(kind=realtype) :: omegax, omegay, omegaz
60 real(kind=realtype) :: omegaxd, omegayd, omegazd
61 real(kind=realtype) :: strainmag2, strainprod, vortprod
62 real(kind=realtype) :: strainmag2d, strainprodd, vortprodd
63 real(kind=realtype),
parameter :: xminn=1.e-10_realtype
68 real(kind=realtype) :: y1
69 real(kind=realtype) :: y1d
70 real(kind=realtype) :: min1
71 real(kind=realtype) :: min1d
72 real(kind=realtype) :: temp
73 real(kind=realtype) :: temp0
74 real(kind=realtype) :: temp1
75 real(kind=realtype) :: temp2
76 real(kind=realtype) :: temp3
77 real(kind=realtype) :: temp4
78 real(kind=realtype) :: temp5
79 real(kind=realtype) :: temp6
80 real(kind=realtype) :: temp7
81 real(kind=realtype) :: temp8
82 real(kind=realtype) :: temp9
83 real(kind=realtype) :: temp10
99 print*,
'katolaunder production term not supported for sa'
112 temp =
si(i, j, k, 1)
113 temp0 =
w(i+1, j, k,
ivx)
114 temp1 =
si(i-1, j, k, 1)
115 temp2 =
w(i-1, j, k,
ivx)
116 temp3 =
sj(i, j, k, 1)
117 temp4 =
w(i, j+1, k,
ivx)
118 temp5 =
sk(i, j, k, 1)
119 temp6 =
w(i, j, k+1,
ivx)
120 temp7 =
sj(i, j-1, k, 1)
121 temp8 =
w(i, j-1, k,
ivx)
122 temp9 =
sk(i, j, k-1, 1)
123 temp10 =
w(i, j, k-1,
ivx)
124 uuxd = temp*
wd(i+1, j, k,
ivx) + temp0*
sid(i, j, k, 1) - &
125 & temp1*
wd(i-1, j, k,
ivx) - temp2*
sid(i-1, j, k, 1) + temp3&
126 & *
wd(i, j+1, k,
ivx) + temp4*
sjd(i, j, k, 1) + temp5*
wd(i, &
127 & j, k+1,
ivx) + temp6*
skd(i, j, k, 1) - temp7*
wd(i, j-1, k&
128 & ,
ivx) - temp8*
sjd(i, j-1, k, 1) - temp9*
wd(i, j, k-1,
ivx&
129 & ) - temp10*
skd(i, j, k-1, 1)
130 uux = temp0*temp - temp2*temp1 + temp4*temp3 + temp6*temp5 -&
131 & temp8*temp7 - temp10*temp9
132 temp10 =
si(i, j, k, 2)
133 temp9 =
w(i+1, j, k,
ivx)
134 temp8 =
si(i-1, j, k, 2)
135 temp7 =
w(i-1, j, k,
ivx)
136 temp6 =
sj(i, j, k, 2)
137 temp5 =
w(i, j+1, k,
ivx)
138 temp4 =
sk(i, j, k, 2)
139 temp3 =
w(i, j, k+1,
ivx)
140 temp2 =
sj(i, j-1, k, 2)
141 temp1 =
w(i, j-1, k,
ivx)
142 temp0 =
sk(i, j, k-1, 2)
143 temp =
w(i, j, k-1,
ivx)
144 uuyd = temp10*
wd(i+1, j, k,
ivx) + temp9*
sid(i, j, k, 2) - &
145 & temp8*
wd(i-1, j, k,
ivx) - temp7*
sid(i-1, j, k, 2) + temp6&
146 & *
wd(i, j+1, k,
ivx) + temp5*
sjd(i, j, k, 2) + temp4*
wd(i, &
147 & j, k+1,
ivx) + temp3*
skd(i, j, k, 2) - temp2*
wd(i, j-1, k&
148 & ,
ivx) - temp1*
sjd(i, j-1, k, 2) - temp0*
wd(i, j, k-1,
ivx&
149 & ) - temp*
skd(i, j, k-1, 2)
150 uuy = temp9*temp10 - temp7*temp8 + temp5*temp6 + temp3*temp4&
151 & - temp1*temp2 - temp*temp0
152 temp10 =
si(i, j, k, 3)
153 temp9 =
w(i+1, j, k,
ivx)
154 temp8 =
si(i-1, j, k, 3)
155 temp7 =
w(i-1, j, k,
ivx)
156 temp6 =
sj(i, j, k, 3)
157 temp5 =
w(i, j+1, k,
ivx)
158 temp4 =
sk(i, j, k, 3)
159 temp3 =
w(i, j, k+1,
ivx)
160 temp2 =
sj(i, j-1, k, 3)
161 temp1 =
w(i, j-1, k,
ivx)
162 temp0 =
sk(i, j, k-1, 3)
163 temp =
w(i, j, k-1,
ivx)
164 uuzd = temp10*
wd(i+1, j, k,
ivx) + temp9*
sid(i, j, k, 3) - &
165 & temp8*
wd(i-1, j, k,
ivx) - temp7*
sid(i-1, j, k, 3) + temp6&
166 & *
wd(i, j+1, k,
ivx) + temp5*
sjd(i, j, k, 3) + temp4*
wd(i, &
167 & j, k+1,
ivx) + temp3*
skd(i, j, k, 3) - temp2*
wd(i, j-1, k&
168 & ,
ivx) - temp1*
sjd(i, j-1, k, 3) - temp0*
wd(i, j, k-1,
ivx&
169 & ) - temp*
skd(i, j, k-1, 3)
170 uuz = temp9*temp10 - temp7*temp8 + temp5*temp6 + temp3*temp4&
171 & - temp1*temp2 - temp*temp0
173 temp10 =
si(i, j, k, 1)
174 temp9 =
w(i+1, j, k,
ivy)
175 temp8 =
si(i-1, j, k, 1)
176 temp7 =
w(i-1, j, k,
ivy)
177 temp6 =
sj(i, j, k, 1)
178 temp5 =
w(i, j+1, k,
ivy)
179 temp4 =
sk(i, j, k, 1)
180 temp3 =
w(i, j, k+1,
ivy)
181 temp2 =
sj(i, j-1, k, 1)
182 temp1 =
w(i, j-1, k,
ivy)
183 temp0 =
sk(i, j, k-1, 1)
184 temp =
w(i, j, k-1,
ivy)
185 vvxd = temp10*
wd(i+1, j, k,
ivy) + temp9*
sid(i, j, k, 1) - &
186 & temp8*
wd(i-1, j, k,
ivy) - temp7*
sid(i-1, j, k, 1) + temp6&
187 & *
wd(i, j+1, k,
ivy) + temp5*
sjd(i, j, k, 1) + temp4*
wd(i, &
188 & j, k+1,
ivy) + temp3*
skd(i, j, k, 1) - temp2*
wd(i, j-1, k&
189 & ,
ivy) - temp1*
sjd(i, j-1, k, 1) - temp0*
wd(i, j, k-1,
ivy&
190 & ) - temp*
skd(i, j, k-1, 1)
191 vvx = temp9*temp10 - temp7*temp8 + temp5*temp6 + temp3*temp4&
192 & - temp1*temp2 - temp*temp0
193 temp10 =
si(i, j, k, 2)
194 temp9 =
w(i+1, j, k,
ivy)
195 temp8 =
si(i-1, j, k, 2)
196 temp7 =
w(i-1, j, k,
ivy)
197 temp6 =
sj(i, j, k, 2)
198 temp5 =
w(i, j+1, k,
ivy)
199 temp4 =
sk(i, j, k, 2)
200 temp3 =
w(i, j, k+1,
ivy)
201 temp2 =
sj(i, j-1, k, 2)
202 temp1 =
w(i, j-1, k,
ivy)
203 temp0 =
sk(i, j, k-1, 2)
204 temp =
w(i, j, k-1,
ivy)
205 vvyd = temp10*
wd(i+1, j, k,
ivy) + temp9*
sid(i, j, k, 2) - &
206 & temp8*
wd(i-1, j, k,
ivy) - temp7*
sid(i-1, j, k, 2) + temp6&
207 & *
wd(i, j+1, k,
ivy) + temp5*
sjd(i, j, k, 2) + temp4*
wd(i, &
208 & j, k+1,
ivy) + temp3*
skd(i, j, k, 2) - temp2*
wd(i, j-1, k&
209 & ,
ivy) - temp1*
sjd(i, j-1, k, 2) - temp0*
wd(i, j, k-1,
ivy&
210 & ) - temp*
skd(i, j, k-1, 2)
211 vvy = temp9*temp10 - temp7*temp8 + temp5*temp6 + temp3*temp4&
212 & - temp1*temp2 - temp*temp0
213 temp10 =
si(i, j, k, 3)
214 temp9 =
w(i+1, j, k,
ivy)
215 temp8 =
si(i-1, j, k, 3)
216 temp7 =
w(i-1, j, k,
ivy)
217 temp6 =
sj(i, j, k, 3)
218 temp5 =
w(i, j+1, k,
ivy)
219 temp4 =
sk(i, j, k, 3)
220 temp3 =
w(i, j, k+1,
ivy)
221 temp2 =
sj(i, j-1, k, 3)
222 temp1 =
w(i, j-1, k,
ivy)
223 temp0 =
sk(i, j, k-1, 3)
224 temp =
w(i, j, k-1,
ivy)
225 vvzd = temp10*
wd(i+1, j, k,
ivy) + temp9*
sid(i, j, k, 3) - &
226 & temp8*
wd(i-1, j, k,
ivy) - temp7*
sid(i-1, j, k, 3) + temp6&
227 & *
wd(i, j+1, k,
ivy) + temp5*
sjd(i, j, k, 3) + temp4*
wd(i, &
228 & j, k+1,
ivy) + temp3*
skd(i, j, k, 3) - temp2*
wd(i, j-1, k&
229 & ,
ivy) - temp1*
sjd(i, j-1, k, 3) - temp0*
wd(i, j, k-1,
ivy&
230 & ) - temp*
skd(i, j, k-1, 3)
231 vvz = temp9*temp10 - temp7*temp8 + temp5*temp6 + temp3*temp4&
232 & - temp1*temp2 - temp*temp0
234 temp10 =
si(i, j, k, 1)
235 temp9 =
w(i+1, j, k,
ivz)
236 temp8 =
si(i-1, j, k, 1)
237 temp7 =
w(i-1, j, k,
ivz)
238 temp6 =
sj(i, j, k, 1)
239 temp5 =
w(i, j+1, k,
ivz)
240 temp4 =
sk(i, j, k, 1)
241 temp3 =
w(i, j, k+1,
ivz)
242 temp2 =
sj(i, j-1, k, 1)
243 temp1 =
w(i, j-1, k,
ivz)
244 temp0 =
sk(i, j, k-1, 1)
245 temp =
w(i, j, k-1,
ivz)
246 wwxd = temp10*
wd(i+1, j, k,
ivz) + temp9*
sid(i, j, k, 1) - &
247 & temp8*
wd(i-1, j, k,
ivz) - temp7*
sid(i-1, j, k, 1) + temp6&
248 & *
wd(i, j+1, k,
ivz) + temp5*
sjd(i, j, k, 1) + temp4*
wd(i, &
249 & j, k+1,
ivz) + temp3*
skd(i, j, k, 1) - temp2*
wd(i, j-1, k&
250 & ,
ivz) - temp1*
sjd(i, j-1, k, 1) - temp0*
wd(i, j, k-1,
ivz&
251 & ) - temp*
skd(i, j, k-1, 1)
252 wwx = temp9*temp10 - temp7*temp8 + temp5*temp6 + temp3*temp4&
253 & - temp1*temp2 - temp*temp0
254 temp10 =
si(i, j, k, 2)
255 temp9 =
w(i+1, j, k,
ivz)
256 temp8 =
si(i-1, j, k, 2)
257 temp7 =
w(i-1, j, k,
ivz)
258 temp6 =
sj(i, j, k, 2)
259 temp5 =
w(i, j+1, k,
ivz)
260 temp4 =
sk(i, j, k, 2)
261 temp3 =
w(i, j, k+1,
ivz)
262 temp2 =
sj(i, j-1, k, 2)
263 temp1 =
w(i, j-1, k,
ivz)
264 temp0 =
sk(i, j, k-1, 2)
265 temp =
w(i, j, k-1,
ivz)
266 wwyd = temp10*
wd(i+1, j, k,
ivz) + temp9*
sid(i, j, k, 2) - &
267 & temp8*
wd(i-1, j, k,
ivz) - temp7*
sid(i-1, j, k, 2) + temp6&
268 & *
wd(i, j+1, k,
ivz) + temp5*
sjd(i, j, k, 2) + temp4*
wd(i, &
269 & j, k+1,
ivz) + temp3*
skd(i, j, k, 2) - temp2*
wd(i, j-1, k&
270 & ,
ivz) - temp1*
sjd(i, j-1, k, 2) - temp0*
wd(i, j, k-1,
ivz&
271 & ) - temp*
skd(i, j, k-1, 2)
272 wwy = temp9*temp10 - temp7*temp8 + temp5*temp6 + temp3*temp4&
273 & - temp1*temp2 - temp*temp0
274 temp10 =
si(i, j, k, 3)
275 temp9 =
w(i+1, j, k,
ivz)
276 temp8 =
si(i-1, j, k, 3)
277 temp7 =
w(i-1, j, k,
ivz)
278 temp6 =
sj(i, j, k, 3)
279 temp5 =
w(i, j+1, k,
ivz)
280 temp4 =
sk(i, j, k, 3)
281 temp3 =
w(i, j, k+1,
ivz)
282 temp2 =
sj(i, j-1, k, 3)
283 temp1 =
w(i, j-1, k,
ivz)
284 temp0 =
sk(i, j, k-1, 3)
285 temp =
w(i, j, k-1,
ivz)
286 wwzd = temp10*
wd(i+1, j, k,
ivz) + temp9*
sid(i, j, k, 3) - &
287 & temp8*
wd(i-1, j, k,
ivz) - temp7*
sid(i-1, j, k, 3) + temp6&
288 & *
wd(i, j+1, k,
ivz) + temp5*
sjd(i, j, k, 3) + temp4*
wd(i, &
289 & j, k+1,
ivz) + temp3*
skd(i, j, k, 3) - temp2*
wd(i, j-1, k&
290 & ,
ivz) - temp1*
sjd(i, j-1, k, 3) - temp0*
wd(i, j, k-1,
ivz&
291 & ) - temp*
skd(i, j, k-1, 3)
292 wwz = temp9*temp10 - temp7*temp8 + temp5*temp6 + temp3*temp4&
293 & - temp1*temp2 - temp*temp0
299 factd = -(temp10*
vold(i, j, k)/
vol(i, j, k))
302 sxxd =
two*(uux*factd+fact*uuxd)
304 syyd =
two*(vvy*factd+fact*vvyd)
306 szzd =
two*(wwz*factd+fact*wwzd)
308 sxyd = (uuy+vvx)*factd + fact*(uuyd+vvxd)
310 sxzd = (uuz+wwx)*factd + fact*(uuzd+wwxd)
312 syzd = (vvz+wwy)*factd + fact*(vvzd+wwyd)
315 div2d = f23*2*(sxx+syy+szz)*(sxxd+syyd+szzd)
316 div2 = f23*(sxx+syy+szz)**2
318 strainmag2d =
two*(2*sxy*sxyd+2*sxz*sxzd+2*syz*syzd) + 2*&
319 & sxx*sxxd + 2*syy*syyd + 2*szz*szzd
320 strainmag2 =
two*(sxy**2+sxz**2+syz**2) + sxx**2 + syy**2 &
322 strainprodd =
two*strainmag2d - div2d
323 strainprod =
two*strainmag2 - div2
324 temp10 = sqrt(strainprod)
325 if (strainprod .eq. 0.0_8)
then
328 ssd = strainprodd/(2.0*temp10)
334 vortxd =
two*((wwy-vvz)*factd+fact*(wwyd-vvzd)) -
two*&
336 vortx =
two*fact*(wwy-vvz) -
two*omegax
337 vortyd =
two*((uuz-wwx)*factd+fact*(uuzd-wwxd)) -
two*&
339 vorty =
two*fact*(uuz-wwx) -
two*omegay
340 vortzd =
two*((vvx-uuy)*factd+fact*(vvxd-uuyd)) -
two*&
342 vortz =
two*fact*(vvx-uuy) -
two*omegaz
344 vortprodd = 2*vortx*vortxd + 2*vorty*vortyd + 2*vortz*&
346 vortprod = vortx**2 + vorty**2 + vortz**2
350 temp10 = sqrt(vortprod)
351 if (vortprod .eq. 0.0_8)
then
354 ssd = vortprodd/(2.0*temp10)
362 temp10 =
w(i, j, k,
irho)
363 temp9 =
rlv(i, j, k)/temp10
364 nud = (
rlvd(i, j, k)-temp9*
wd(i, j, k,
irho))/temp10
369 temp10 =
w(i, j, k,
itu1)/nu
370 chid = (
wd(i, j, k,
itu1)-temp10*nud)/nu
374 chi3d = chi2*chid + chi*chi2d
376 temp10 = chi3/(
cv13+chi3)
377 fv1d = (1.0-temp10)*chi3d/(
cv13+chi3)
379 temp10 = chi/(
one+chi*fv1)
380 fv2d = -((chid-temp10*(fv1*chid+chi*fv1d))/(
one+chi*fv1))
394 temp10 =
w(i, j, k,
itu1)
395 sstd = ssd +
kar2inv*(fv2*dist2inv*
wd(i, j, k,
itu1)+temp10*&
396 & (dist2inv*fv2d+fv2*dist2invd))
400 temp10 = sqrt(
two*strainmag2)
401 if (
two*strainmag2 .eq. 0.0_8)
then
404 y1d =
two*strainmag2d/(2.0*temp10)
407 if (
zero .gt. y1)
then
417 if (
sst .lt. xminn)
then
426 temp10 = dist2inv/
sst
427 temp9 =
w(i, j, k,
itu1)
431 if (rr .gt. 10.0_realtype)
then
437 ggd = (
rsacw2*(6*rr**5-1.0)+1.0)*rrd
438 gg = rr +
rsacw2*(rr**6-rr)
442 if (temp10 .le. 0.0_8 .and. (
sixth .eq. 0.0_8 .or.
sixth &
443 & .ne. int(
sixth)))
then
449 termfw = temp10**
sixth
450 fwsad = termfw*ggd + gg*termfwd
463 & ft2)*fv2d-(fv2-1.0)*ft2d)-
rsacw1*fwsad)
464 term2 = dist2inv*temp10
465 temp10 =
w(i, j, k,
itu1)
466 temp9 =
w(i, j, k,
itu1)
467 scratchd(i, j, k,
idvt) = temp10*(term1d+temp9*term2d+term2*&
468 &
wd(i, j, k,
itu1)) + (term1+term2*temp9)*
wd(i, j, k,
itu1)
469 scratch(i, j, k,
idvt) = (term1+term2*temp9)*temp10
491 real(kind=realtype),
parameter :: f23=
two*
third
493 integer(kind=inttype) :: i, j, k, nn, ii
494 real(kind=realtype) :: fv1, fv2, ft2
495 real(kind=realtype) :: ss,
sst, nu, dist2inv, chi, chi2, chi3
496 real(kind=realtype) :: rr, gg, gg6, termfw, fwsa, term1, term2
497 real(kind=realtype) :: dfv1, dfv2, dft2, drr, dgg, dfw
498 real(kind=realtype) :: uux, uuy, uuz, vvx, vvy, vvz, wwx, wwy, wwz
499 real(kind=realtype) :: div2, fact, sxx, syy, szz, sxy, sxz, syz
500 real(kind=realtype) :: vortx, vorty, vortz
501 real(kind=realtype) :: omegax, omegay, omegaz
502 real(kind=realtype) :: strainmag2, strainprod, vortprod
503 real(kind=realtype),
parameter :: xminn=1.e-10_realtype
508 real(kind=realtype) :: y1
509 real(kind=realtype) :: min1
522 print*,
'katolaunder production term not supported for sa'
532 uux =
w(i+1, j, k,
ivx)*
si(i, j, k, 1) -
w(i-1, j, k,
ivx)*&
533 &
si(i-1, j, k, 1) +
w(i, j+1, k,
ivx)*
sj(i, j, k, 1) -
w(i&
534 & , j-1, k,
ivx)*
sj(i, j-1, k, 1) +
w(i, j, k+1,
ivx)*
sk(i, &
535 & j, k, 1) -
w(i, j, k-1,
ivx)*
sk(i, j, k-1, 1)
536 uuy =
w(i+1, j, k,
ivx)*
si(i, j, k, 2) -
w(i-1, j, k,
ivx)*&
537 &
si(i-1, j, k, 2) +
w(i, j+1, k,
ivx)*
sj(i, j, k, 2) -
w(i&
538 & , j-1, k,
ivx)*
sj(i, j-1, k, 2) +
w(i, j, k+1,
ivx)*
sk(i, &
539 & j, k, 2) -
w(i, j, k-1,
ivx)*
sk(i, j, k-1, 2)
540 uuz =
w(i+1, j, k,
ivx)*
si(i, j, k, 3) -
w(i-1, j, k,
ivx)*&
541 &
si(i-1, j, k, 3) +
w(i, j+1, k,
ivx)*
sj(i, j, k, 3) -
w(i&
542 & , j-1, k,
ivx)*
sj(i, j-1, k, 3) +
w(i, j, k+1,
ivx)*
sk(i, &
543 & j, k, 3) -
w(i, j, k-1,
ivx)*
sk(i, j, k-1, 3)
545 vvx =
w(i+1, j, k,
ivy)*
si(i, j, k, 1) -
w(i-1, j, k,
ivy)*&
546 &
si(i-1, j, k, 1) +
w(i, j+1, k,
ivy)*
sj(i, j, k, 1) -
w(i&
547 & , j-1, k,
ivy)*
sj(i, j-1, k, 1) +
w(i, j, k+1,
ivy)*
sk(i, &
548 & j, k, 1) -
w(i, j, k-1,
ivy)*
sk(i, j, k-1, 1)
549 vvy =
w(i+1, j, k,
ivy)*
si(i, j, k, 2) -
w(i-1, j, k,
ivy)*&
550 &
si(i-1, j, k, 2) +
w(i, j+1, k,
ivy)*
sj(i, j, k, 2) -
w(i&
551 & , j-1, k,
ivy)*
sj(i, j-1, k, 2) +
w(i, j, k+1,
ivy)*
sk(i, &
552 & j, k, 2) -
w(i, j, k-1,
ivy)*
sk(i, j, k-1, 2)
553 vvz =
w(i+1, j, k,
ivy)*
si(i, j, k, 3) -
w(i-1, j, k,
ivy)*&
554 &
si(i-1, j, k, 3) +
w(i, j+1, k,
ivy)*
sj(i, j, k, 3) -
w(i&
555 & , j-1, k,
ivy)*
sj(i, j-1, k, 3) +
w(i, j, k+1,
ivy)*
sk(i, &
556 & j, k, 3) -
w(i, j, k-1,
ivy)*
sk(i, j, k-1, 3)
558 wwx =
w(i+1, j, k,
ivz)*
si(i, j, k, 1) -
w(i-1, j, k,
ivz)*&
559 &
si(i-1, j, k, 1) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 1) -
w(i&
560 & , j-1, k,
ivz)*
sj(i, j-1, k, 1) +
w(i, j, k+1,
ivz)*
sk(i, &
561 & j, k, 1) -
w(i, j, k-1,
ivz)*
sk(i, j, k-1, 1)
562 wwy =
w(i+1, j, k,
ivz)*
si(i, j, k, 2) -
w(i-1, j, k,
ivz)*&
563 &
si(i-1, j, k, 2) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 2) -
w(i&
564 & , j-1, k,
ivz)*
sj(i, j-1, k, 2) +
w(i, j, k+1,
ivz)*
sk(i, &
565 & j, k, 2) -
w(i, j, k-1,
ivz)*
sk(i, j, k-1, 2)
566 wwz =
w(i+1, j, k,
ivz)*
si(i, j, k, 3) -
w(i-1, j, k,
ivz)*&
567 &
si(i-1, j, k, 3) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 3) -
w(i&
568 & , j-1, k,
ivz)*
sj(i, j-1, k, 3) +
w(i, j, k+1,
ivz)*
sk(i, &
569 & j, k, 3) -
w(i, j, k-1,
ivz)*
sk(i, j, k-1, 3)
583 div2 = f23*(sxx+syy+szz)**2
585 strainmag2 =
two*(sxy**2+sxz**2+syz**2) + sxx**2 + syy**2 &
587 strainprod =
two*strainmag2 - div2
588 ss = sqrt(strainprod)
592 vortx =
two*fact*(wwy-vvz) -
two*omegax
593 vorty =
two*fact*(uuz-wwx) -
two*omegay
594 vortz =
two*fact*(vvx-uuy) -
two*omegaz
596 vortprod = vortx**2 + vorty**2 + vortz**2
608 chi =
w(i, j, k,
itu1)/nu
611 fv1 = chi3/(chi3+
cv13)
612 fv2 =
one - chi/(
one+chi*fv1)
626 y1 = sqrt(
two*strainmag2)
627 if (
zero .gt. y1)
then
634 if (
sst .lt. xminn)
then
643 if (rr .gt. 10.0_realtype)
then
648 gg = rr +
rsacw2*(rr**6-rr)
686 integer(kind=inttype) :: i, j, k, nn, ii
687 real(kind=realtype) :: nu
688 real(kind=realtype) :: nud
689 real(kind=realtype) :: fv1, fv2, ft2
690 real(kind=realtype) :: voli, volmi, volpi, xm, ym, zm, xp, yp, zp
691 real(kind=realtype) :: volid, volmid, volpid, xmd, ymd, zmd, xpd, &
693 real(kind=realtype) :: xa, ya, za, ttm, ttp, cnud, cam, cap
694 real(kind=realtype) :: xad, yad, zad, ttmd, ttpd, cnudd, camd, capd
695 real(kind=realtype) :: nutm, nutp, num, nup, cdm, cdp
696 real(kind=realtype) :: nutmd, nutpd, numd, nupd, cdmd, cdpd
697 real(kind=realtype) :: c1m, c1p, c10, b1, c1, d1, qs
698 real(kind=realtype) :: c1md, c1pd, c10d
700 real(kind=realtype) :: temp
701 real(kind=realtype) :: temp0
702 real(kind=realtype) :: temp1
717 volid = -(temp*
vold(i, j, k)/
vol(i, j, k))
720 volmid = -(temp*(
vold(i, j, k)+
vold(i, j, k-1))/(
vol(i, j, k)+&
724 volpid = -(temp*(
vold(i, j, k)+
vold(i, j, k+1))/(
vol(i, j, k)+&
727 temp =
sk(i, j, k-1, 1)
728 xmd = volmi*
skd(i, j, k-1, 1) + temp*volmid
730 temp =
sk(i, j, k-1, 2)
731 ymd = volmi*
skd(i, j, k-1, 2) + temp*volmid
733 temp =
sk(i, j, k-1, 3)
734 zmd = volmi*
skd(i, j, k-1, 3) + temp*volmid
736 temp =
sk(i, j, k, 1)
737 xpd = volpi*
skd(i, j, k, 1) + temp*volpid
739 temp =
sk(i, j, k, 2)
740 ypd = volpi*
skd(i, j, k, 2) + temp*volpid
742 temp =
sk(i, j, k, 3)
743 zpd = volpi*
skd(i, j, k, 3) + temp*volpid
745 temp =
sk(i, j, k, 1) +
sk(i, j, k-1, 1)
746 xad =
half*(voli*(
skd(i, j, k, 1)+
skd(i, j, k-1, 1))+temp*&
748 xa =
half*(temp*voli)
749 temp =
sk(i, j, k, 2) +
sk(i, j, k-1, 2)
750 yad =
half*(voli*(
skd(i, j, k, 2)+
skd(i, j, k-1, 2))+temp*&
752 ya =
half*(temp*voli)
753 temp =
sk(i, j, k, 3) +
sk(i, j, k-1, 3)
754 zad =
half*(voli*(
skd(i, j, k, 3)+
skd(i, j, k-1, 3))+temp*&
756 za =
half*(temp*voli)
757 ttmd = xa*xmd + xm*xad + ya*ymd + ym*yad + za*zmd + zm*zad
758 ttm = xm*xa + ym*ya + zm*za
759 ttpd = xa*xpd + xp*xad + ya*ypd + yp*yad + za*zpd + zp*zad
760 ttp = xp*xa + yp*ya + zp*za
776 camd = cnud*ttmd + ttm*cnudd
778 capd = cnud*ttpd + ttp*cnudd
786 temp =
w(i, j, k,
irho)
787 temp0 =
rlv(i, j, k)/temp
788 nud = (
rlvd(i, j, k)-temp0*
wd(i, j, k,
irho))/temp
790 temp0 =
w(i, j, k-1,
irho)
791 temp =
rlv(i, j, k-1)/temp0
795 temp0 =
w(i, j, k+1,
irho)
796 temp =
rlv(i, j, k+1)/temp0
806 if (cdm + cam .lt.
zero)
then
813 if (cdp + cap .lt.
zero)
then
824 temp0 =
w(i, j, k-1,
itu1)
825 temp =
w(i, j, k+1,
itu1)
826 temp1 =
w(i, j, k,
itu1)
828 & + c1m*
wd(i, j, k-1,
itu1) + temp*c1pd + c1p*
wd(i, j, k+1, &
831 & c1p*temp - c10*temp1
844 volid = -(temp1*
vold(i, j, k)/
vol(i, j, k))
846 temp1 =
two/(
vol(i, j, k)+
vol(i, j-1, k))
847 volmid = -(temp1*(
vold(i, j, k)+
vold(i, j-1, k))/(
vol(i, j, k)&
850 temp1 =
two/(
vol(i, j, k)+
vol(i, j+1, k))
851 volpid = -(temp1*(
vold(i, j, k)+
vold(i, j+1, k))/(
vol(i, j, k)&
854 temp1 =
sj(i, j-1, k, 1)
855 xmd = volmi*
sjd(i, j-1, k, 1) + temp1*volmid
857 temp1 =
sj(i, j-1, k, 2)
858 ymd = volmi*
sjd(i, j-1, k, 2) + temp1*volmid
860 temp1 =
sj(i, j-1, k, 3)
861 zmd = volmi*
sjd(i, j-1, k, 3) + temp1*volmid
863 temp1 =
sj(i, j, k, 1)
864 xpd = volpi*
sjd(i, j, k, 1) + temp1*volpid
866 temp1 =
sj(i, j, k, 2)
867 ypd = volpi*
sjd(i, j, k, 2) + temp1*volpid
869 temp1 =
sj(i, j, k, 3)
870 zpd = volpi*
sjd(i, j, k, 3) + temp1*volpid
872 temp1 =
sj(i, j, k, 1) +
sj(i, j-1, k, 1)
873 xad =
half*(voli*(
sjd(i, j, k, 1)+
sjd(i, j-1, k, 1))+temp1*&
875 xa =
half*(temp1*voli)
876 temp1 =
sj(i, j, k, 2) +
sj(i, j-1, k, 2)
877 yad =
half*(voli*(
sjd(i, j, k, 2)+
sjd(i, j-1, k, 2))+temp1*&
879 ya =
half*(temp1*voli)
880 temp1 =
sj(i, j, k, 3) +
sj(i, j-1, k, 3)
881 zad =
half*(voli*(
sjd(i, j, k, 3)+
sjd(i, j-1, k, 3))+temp1*&
883 za =
half*(temp1*voli)
884 ttmd = xa*xmd + xm*xad + ya*ymd + ym*yad + za*zmd + zm*zad
885 ttm = xm*xa + ym*ya + zm*za
886 ttpd = xa*xpd + xp*xad + ya*ypd + yp*yad + za*zpd + zp*zad
887 ttp = xp*xa + yp*ya + zp*za
902 camd = cnud*ttmd + ttm*cnudd
904 capd = cnud*ttpd + ttp*cnudd
910 temp1 =
w(i, j, k,
irho)
911 temp0 =
rlv(i, j, k)/temp1
912 nud = (
rlvd(i, j, k)-temp0*
wd(i, j, k,
irho))/temp1
914 temp1 =
w(i, j-1, k,
irho)
915 temp0 =
rlv(i, j-1, k)/temp1
918 num =
half*(temp0+nu)
919 temp1 =
w(i, j+1, k,
irho)
920 temp0 =
rlv(i, j+1, k)/temp1
923 nup =
half*(temp0+nu)
930 if (cdm + cam .lt.
zero)
then
937 if (cdp + cap .lt.
zero)
then
948 temp1 =
w(i, j-1, k,
itu1)
949 temp0 =
w(i, j+1, k,
itu1)
950 temp =
w(i, j, k,
itu1)
952 & + c1m*
wd(i, j-1, k,
itu1) + temp0*c1pd + c1p*
wd(i, j+1, k, &
955 & c1p*temp0 - c10*temp
968 volid = -(temp1*
vold(i, j, k)/
vol(i, j, k))
970 temp1 =
two/(
vol(i, j, k)+
vol(i-1, j, k))
971 volmid = -(temp1*(
vold(i, j, k)+
vold(i-1, j, k))/(
vol(i, j, k)&
974 temp1 =
two/(
vol(i, j, k)+
vol(i+1, j, k))
975 volpid = -(temp1*(
vold(i, j, k)+
vold(i+1, j, k))/(
vol(i, j, k)&
978 temp1 =
si(i-1, j, k, 1)
979 xmd = volmi*
sid(i-1, j, k, 1) + temp1*volmid
981 temp1 =
si(i-1, j, k, 2)
982 ymd = volmi*
sid(i-1, j, k, 2) + temp1*volmid
984 temp1 =
si(i-1, j, k, 3)
985 zmd = volmi*
sid(i-1, j, k, 3) + temp1*volmid
987 temp1 =
si(i, j, k, 1)
988 xpd = volpi*
sid(i, j, k, 1) + temp1*volpid
990 temp1 =
si(i, j, k, 2)
991 ypd = volpi*
sid(i, j, k, 2) + temp1*volpid
993 temp1 =
si(i, j, k, 3)
994 zpd = volpi*
sid(i, j, k, 3) + temp1*volpid
996 temp1 =
si(i, j, k, 1) +
si(i-1, j, k, 1)
997 xad =
half*(voli*(
sid(i, j, k, 1)+
sid(i-1, j, k, 1))+temp1*&
999 xa =
half*(temp1*voli)
1000 temp1 =
si(i, j, k, 2) +
si(i-1, j, k, 2)
1001 yad =
half*(voli*(
sid(i, j, k, 2)+
sid(i-1, j, k, 2))+temp1*&
1003 ya =
half*(temp1*voli)
1004 temp1 =
si(i, j, k, 3) +
si(i-1, j, k, 3)
1005 zad =
half*(voli*(
sid(i, j, k, 3)+
sid(i-1, j, k, 3))+temp1*&
1007 za =
half*(temp1*voli)
1008 ttmd = xa*xmd + xm*xad + ya*ymd + ym*yad + za*zmd + zm*zad
1009 ttm = xm*xa + ym*ya + zm*za
1010 ttpd = xa*xpd + xp*xad + ya*ypd + yp*yad + za*zpd + zp*zad
1011 ttp = xp*xa + yp*ya + zp*za
1026 camd = cnud*ttmd + ttm*cnudd
1028 capd = cnud*ttpd + ttp*cnudd
1034 temp1 =
w(i, j, k,
irho)
1035 temp0 =
rlv(i, j, k)/temp1
1036 nud = (
rlvd(i, j, k)-temp0*
wd(i, j, k,
irho))/temp1
1038 temp1 =
w(i-1, j, k,
irho)
1039 temp0 =
rlv(i-1, j, k)/temp1
1042 num =
half*(temp0+nu)
1043 temp1 =
w(i+1, j, k,
irho)
1044 temp0 =
rlv(i+1, j, k)/temp1
1047 nup =
half*(temp0+nu)
1054 if (cdm + cam .lt.
zero)
then
1061 if (cdp + cap .lt.
zero)
then
1072 temp1 =
w(i-1, j, k,
itu1)
1073 temp0 =
w(i+1, j, k,
itu1)
1074 temp =
w(i, j, k,
itu1)
1076 & + c1m*
wd(i-1, j, k,
itu1) + temp0*c1pd + c1p*
wd(i+1, j, k, &
1079 & c1p*temp0 - c10*temp
1094 integer(kind=inttype) :: i, j, k, nn, ii
1095 real(kind=realtype) :: nu
1096 real(kind=realtype) :: fv1, fv2, ft2
1097 real(kind=realtype) :: voli, volmi, volpi, xm, ym, zm, xp, yp, zp
1098 real(kind=realtype) :: xa, ya, za, ttm, ttp, cnud, cam, cap
1099 real(kind=realtype) :: nutm, nutp, num, nup, cdm, cdp
1100 real(kind=realtype) :: c1m, c1p, c10, b1, c1, d1, qs
1116 volmi =
two/(
vol(i, j, k)+
vol(i, j, k-1))
1117 volpi =
two/(
vol(i, j, k)+
vol(i, j, k+1))
1118 xm =
sk(i, j, k-1, 1)*volmi
1119 ym =
sk(i, j, k-1, 2)*volmi
1120 zm =
sk(i, j, k-1, 3)*volmi
1121 xp =
sk(i, j, k, 1)*volpi
1122 yp =
sk(i, j, k, 2)*volpi
1123 zp =
sk(i, j, k, 3)*volpi
1124 xa =
half*(
sk(i, j, k, 1)+
sk(i, j, k-1, 1))*voli
1125 ya =
half*(
sk(i, j, k, 2)+
sk(i, j, k-1, 2))*voli
1126 za =
half*(
sk(i, j, k, 3)+
sk(i, j, k-1, 3))*voli
1127 ttm = xm*xa + ym*ya + zm*za
1128 ttp = xp*xa + yp*ya + zp*za
1154 if (cdm + cam .lt.
zero)
then
1159 if (cdp + cap .lt.
zero)
then
1181 volmi =
two/(
vol(i, j, k)+
vol(i, j-1, k))
1182 volpi =
two/(
vol(i, j, k)+
vol(i, j+1, k))
1183 xm =
sj(i, j-1, k, 1)*volmi
1184 ym =
sj(i, j-1, k, 2)*volmi
1185 zm =
sj(i, j-1, k, 3)*volmi
1186 xp =
sj(i, j, k, 1)*volpi
1187 yp =
sj(i, j, k, 2)*volpi
1188 zp =
sj(i, j, k, 3)*volpi
1189 xa =
half*(
sj(i, j, k, 1)+
sj(i, j-1, k, 1))*voli
1190 ya =
half*(
sj(i, j, k, 2)+
sj(i, j-1, k, 2))*voli
1191 za =
half*(
sj(i, j, k, 3)+
sj(i, j-1, k, 3))*voli
1192 ttm = xm*xa + ym*ya + zm*za
1193 ttp = xp*xa + yp*ya + zp*za
1216 if (cdm + cam .lt.
zero)
then
1221 if (cdp + cap .lt.
zero)
then
1243 volmi =
two/(
vol(i, j, k)+
vol(i-1, j, k))
1244 volpi =
two/(
vol(i, j, k)+
vol(i+1, j, k))
1245 xm =
si(i-1, j, k, 1)*volmi
1246 ym =
si(i-1, j, k, 2)*volmi
1247 zm =
si(i-1, j, k, 3)*volmi
1248 xp =
si(i, j, k, 1)*volpi
1249 yp =
si(i, j, k, 2)*volpi
1250 zp =
si(i, j, k, 3)*volpi
1251 xa =
half*(
si(i, j, k, 1)+
si(i-1, j, k, 1))*voli
1252 ya =
half*(
si(i, j, k, 2)+
si(i-1, j, k, 2))*voli
1253 za =
half*(
si(i, j, k, 3)+
si(i-1, j, k, 3))*voli
1254 ttm = xm*xa + ym*ya + zm*za
1255 ttp = xp*xa + yp*ya + zp*za
1278 if (cdm + cam .lt.
zero)
then
1283 if (cdp + cap .lt.
zero)
then
1314 integer(kind=inttype) :: i, j, k, ii
1315 real(kind=realtype) :: rblank
1318 real(realtype) :: x1
1319 real(kind=realtype) :: temp
1323 x1 = real(
iblank(i, j, k), realtype)
1324 if (x1 .lt.
zero)
then
1329 temp =
volref(i, j, k)*rblank
1348 integer(kind=inttype) :: i, j, k, ii
1349 real(kind=realtype) :: rblank
1352 real(realtype) :: x1
1356 x1 = real(
iblank(i, j, k), realtype)
1357 if (x1 .lt.
zero)
then
real(kind=realtype), dimension(:, :, :, :), pointer sjd
real(kind=realtype), dimension(:, :, :, :), pointer wd
real(kind=realtype), dimension(:, :, :), pointer vold
real(kind=realtype), dimension(:, :, :, :), pointer w
real(kind=realtype), dimension(:, :, :, :), pointer scratch
real(kind=realtype), dimension(:, :, :), pointer d2wall
integer(kind=inttype), dimension(:, :, :), pointer iblank
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 volref
real(kind=realtype), dimension(:, :, :, :), pointer sj
integer(kind=inttype) sectionid
real(kind=realtype), dimension(:, :, :, :), pointer scratchd
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 d2walld
real(kind=realtype), dimension(:, :, :, :), pointer dwd
integer(kind=inttype), parameter strain
real(kind=realtype), parameter zero
real(kind=realtype), parameter third
integer(kind=inttype), parameter vorticity
real(kind=realtype), parameter one
real(kind=realtype), parameter half
integer(kind=inttype), parameter katolaunder
real(kind=realtype), parameter two
real(kind=realtype), parameter fourth
real(kind=realtype), parameter sixth
real(kind=realtype) timeref
real(kind=realtype) timerefd
real(kind=realtype), parameter rsacw1
real(kind=realtype), parameter rsak
real(kind=realtype), parameter rsact4
real(kind=realtype), parameter rsacrot
real(kind=realtype), parameter rsacb2
real(kind=realtype), parameter rsact3
real(kind=realtype), parameter rsacw3
real(kind=realtype), parameter rsacw2
real(kind=realtype), parameter rsacv1
real(kind=realtype), parameter rsacb3
real(kind=realtype), parameter rsacb1
real(kind=realtype), dimension(:, :, :), pointer ddw
real(kind=realtype) cb3inv
subroutine saresscale_d()
real(kind=realtype), dimension(:, :, :), pointer ddvt
real(kind=realtype) kar2inv
real(kind=realtype), dimension(:, :, :), allocatable qq
real(kind=realtype), dimension(:, :), pointer rrlv
real(kind=realtype), dimension(:, :, :), pointer ww
real(kind=realtype), dimension(:, :), pointer dd2wall
type(sectiontype), dimension(:), allocatable sections