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
47 j = mod(ii/
nx,
ny) + 2
53 uux =
w(i+1, j, k,
ivx)*
si(i, j, k, 1) -
w(i-1, j, k,
ivx)*
si(i-1&
54 & , j, k, 1) +
w(i, j+1, k,
ivx)*
sj(i, j, k, 1) -
w(i, j-1, k,
ivx&
55 & )*
sj(i, j-1, k, 1) +
w(i, j, k+1,
ivx)*
sk(i, j, k, 1) -
w(i, j, &
56 & k-1,
ivx)*
sk(i, j, k-1, 1)
57 uuy =
w(i+1, j, k,
ivx)*
si(i, j, k, 2) -
w(i-1, j, k,
ivx)*
si(i-1&
58 & , j, k, 2) +
w(i, j+1, k,
ivx)*
sj(i, j, k, 2) -
w(i, j-1, k,
ivx&
59 & )*
sj(i, j-1, k, 2) +
w(i, j, k+1,
ivx)*
sk(i, j, k, 2) -
w(i, j, &
60 & k-1,
ivx)*
sk(i, j, k-1, 2)
61 uuz =
w(i+1, j, k,
ivx)*
si(i, j, k, 3) -
w(i-1, j, k,
ivx)*
si(i-1&
62 & , j, k, 3) +
w(i, j+1, k,
ivx)*
sj(i, j, k, 3) -
w(i, j-1, k,
ivx&
63 & )*
sj(i, j-1, k, 3) +
w(i, j, k+1,
ivx)*
sk(i, j, k, 3) -
w(i, j, &
64 & k-1,
ivx)*
sk(i, j, k-1, 3)
66 vvx =
w(i+1, j, k,
ivy)*
si(i, j, k, 1) -
w(i-1, j, k,
ivy)*
si(i-1&
67 & , j, k, 1) +
w(i, j+1, k,
ivy)*
sj(i, j, k, 1) -
w(i, j-1, k,
ivy&
68 & )*
sj(i, j-1, k, 1) +
w(i, j, k+1,
ivy)*
sk(i, j, k, 1) -
w(i, j, &
69 & k-1,
ivy)*
sk(i, j, k-1, 1)
70 vvy =
w(i+1, j, k,
ivy)*
si(i, j, k, 2) -
w(i-1, j, k,
ivy)*
si(i-1&
71 & , j, k, 2) +
w(i, j+1, k,
ivy)*
sj(i, j, k, 2) -
w(i, j-1, k,
ivy&
72 & )*
sj(i, j-1, k, 2) +
w(i, j, k+1,
ivy)*
sk(i, j, k, 2) -
w(i, j, &
73 & k-1,
ivy)*
sk(i, j, k-1, 2)
74 vvz =
w(i+1, j, k,
ivy)*
si(i, j, k, 3) -
w(i-1, j, k,
ivy)*
si(i-1&
75 & , j, k, 3) +
w(i, j+1, k,
ivy)*
sj(i, j, k, 3) -
w(i, j-1, k,
ivy&
76 & )*
sj(i, j-1, k, 3) +
w(i, j, k+1,
ivy)*
sk(i, j, k, 3) -
w(i, j, &
77 & k-1,
ivy)*
sk(i, j, k-1, 3)
79 wwx =
w(i+1, j, k,
ivz)*
si(i, j, k, 1) -
w(i-1, j, k,
ivz)*
si(i-1&
80 & , j, k, 1) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 1) -
w(i, j-1, k,
ivz&
81 & )*
sj(i, j-1, k, 1) +
w(i, j, k+1,
ivz)*
sk(i, j, k, 1) -
w(i, j, &
82 & k-1,
ivz)*
sk(i, j, k-1, 1)
83 wwy =
w(i+1, j, k,
ivz)*
si(i, j, k, 2) -
w(i-1, j, k,
ivz)*
si(i-1&
84 & , j, k, 2) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 2) -
w(i, j-1, k,
ivz&
85 & )*
sj(i, j-1, k, 2) +
w(i, j, k+1,
ivz)*
sk(i, j, k, 2) -
w(i, j, &
86 & k-1,
ivz)*
sk(i, j, k-1, 2)
87 wwz =
w(i+1, j, k,
ivz)*
si(i, j, k, 3) -
w(i-1, j, k,
ivz)*
si(i-1&
88 & , j, k, 3) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 3) -
w(i, j-1, k,
ivz&
89 & )*
sj(i, j-1, k, 3) +
w(i, j, k+1,
ivz)*
sk(i, j, k, 3) -
w(i, j, &
90 & k-1,
ivz)*
sk(i, j, k-1, 3)
98 qxy = fact*
half*(uuy+vvx)
99 qxz = fact*
half*(uuz+wwx)
100 qyz = fact*
half*(vvz+wwy)
101 oxy = fact*
half*(vvx-uuy) - omegaz
102 oxz = fact*
half*(uuz-wwx) - omegay
103 oyz = fact*
half*(wwy-vvz) - omegax
105 sijsij =
two*(qxy**2+qxz**2+qyz**2) + qxx**2 + qyy**2 + qzz**2
106 oijoij =
two*(oxy**2+oxz**2+oyz**2)
121 use blockpointers,
only :
nx,
ny,
nz,
il,
jl,
kl,
w,
si,
sj,
sk, &
127 real(kind=realtype),
parameter :: f23=
two*
third
131 integer(kind=inttype) :: i, j, k, ii
132 real(kind=realtype) :: uux, uuy, uuz, vvx, vvy, vvz, wwx, wwy, wwz
133 real(kind=realtype) :: div2, fact, sxx, syy, szz, sxy, sxz, syz
142 j = mod(ii/
nx,
ny) + 2
148 uux =
w(i+1, j, k,
ivx)*
si(i, j, k, 1) -
w(i-1, j, k,
ivx)*
si(i-1&
149 & , j, k, 1) +
w(i, j+1, k,
ivx)*
sj(i, j, k, 1) -
w(i, j-1, k,
ivx&
150 & )*
sj(i, j-1, k, 1) +
w(i, j, k+1,
ivx)*
sk(i, j, k, 1) -
w(i, j, &
151 & 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(i-1&
153 & , j, k, 2) +
w(i, j+1, k,
ivx)*
sj(i, j, k, 2) -
w(i, j-1, k,
ivx&
154 & )*
sj(i, j-1, k, 2) +
w(i, j, k+1,
ivx)*
sk(i, j, k, 2) -
w(i, j, &
155 & 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(i-1&
157 & , j, k, 3) +
w(i, j+1, k,
ivx)*
sj(i, j, k, 3) -
w(i, j-1, k,
ivx&
158 & )*
sj(i, j-1, k, 3) +
w(i, j, k+1,
ivx)*
sk(i, j, k, 3) -
w(i, j, &
159 & 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(i-1&
162 & , j, k, 1) +
w(i, j+1, k,
ivy)*
sj(i, j, k, 1) -
w(i, j-1, k,
ivy&
163 & )*
sj(i, j-1, k, 1) +
w(i, j, k+1,
ivy)*
sk(i, j, k, 1) -
w(i, j, &
164 & 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(i-1&
166 & , j, k, 2) +
w(i, j+1, k,
ivy)*
sj(i, j, k, 2) -
w(i, j-1, k,
ivy&
167 & )*
sj(i, j-1, k, 2) +
w(i, j, k+1,
ivy)*
sk(i, j, k, 2) -
w(i, j, &
168 & 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(i-1&
170 & , j, k, 3) +
w(i, j+1, k,
ivy)*
sj(i, j, k, 3) -
w(i, j-1, k,
ivy&
171 & )*
sj(i, j-1, k, 3) +
w(i, j, k+1,
ivy)*
sk(i, j, k, 3) -
w(i, j, &
172 & 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(i-1&
175 & , j, k, 1) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 1) -
w(i, j-1, k,
ivz&
176 & )*
sj(i, j-1, k, 1) +
w(i, j, k+1,
ivz)*
sk(i, j, k, 1) -
w(i, j, &
177 & 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(i-1&
179 & , j, k, 2) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 2) -
w(i, j-1, k,
ivz&
180 & )*
sj(i, j-1, k, 2) +
w(i, j, k+1,
ivz)*
sk(i, j, k, 2) -
w(i, j, &
181 & 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(i-1&
183 & , j, k, 3) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 3) -
w(i, j-1, k,
ivz&
184 & )*
sj(i, j-1, k, 3) +
w(i, j, k+1,
ivz)*
sk(i, j, k, 3) -
w(i, j, &
185 & k-1,
ivz)*
sk(i, j, k-1, 3)
198 div2 = f23*(sxx+syy+szz)**2
201 & syy**2+szz**2) - div2
214 use blockpointers,
only :
nx,
ny,
nz,
il,
jl,
kl,
w,
si,
sj,
sk, &
222 integer :: i, j, k, ii
223 real(kind=realtype) :: uuy, uuz, vvx, vvz, wwx, wwy
224 real(kind=realtype) :: fact, vortx, vorty, vortz
225 real(kind=realtype) :: omegax, omegay, omegaz
238 j = mod(ii/
nx,
ny) + 2
244 uuy =
w(i+1, j, k,
ivx)*
si(i, j, k, 2) -
w(i-1, j, k,
ivx)*
si(i-1&
245 & , j, k, 2) +
w(i, j+1, k,
ivx)*
sj(i, j, k, 2) -
w(i, j-1, k,
ivx&
246 & )*
sj(i, j-1, k, 2) +
w(i, j, k+1,
ivx)*
sk(i, j, k, 2) -
w(i, j, &
247 & k-1,
ivx)*
sk(i, j, k-1, 2)
248 uuz =
w(i+1, j, k,
ivx)*
si(i, j, k, 3) -
w(i-1, j, k,
ivx)*
si(i-1&
249 & , j, k, 3) +
w(i, j+1, k,
ivx)*
sj(i, j, k, 3) -
w(i, j-1, k,
ivx&
250 & )*
sj(i, j-1, k, 3) +
w(i, j, k+1,
ivx)*
sk(i, j, k, 3) -
w(i, j, &
251 & k-1,
ivx)*
sk(i, j, k-1, 3)
253 vvx =
w(i+1, j, k,
ivy)*
si(i, j, k, 1) -
w(i-1, j, k,
ivy)*
si(i-1&
254 & , j, k, 1) +
w(i, j+1, k,
ivy)*
sj(i, j, k, 1) -
w(i, j-1, k,
ivy&
255 & )*
sj(i, j-1, k, 1) +
w(i, j, k+1,
ivy)*
sk(i, j, k, 1) -
w(i, j, &
256 & k-1,
ivy)*
sk(i, j, k-1, 1)
257 vvz =
w(i+1, j, k,
ivy)*
si(i, j, k, 3) -
w(i-1, j, k,
ivy)*
si(i-1&
258 & , j, k, 3) +
w(i, j+1, k,
ivy)*
sj(i, j, k, 3) -
w(i, j-1, k,
ivy&
259 & )*
sj(i, j-1, k, 3) +
w(i, j, k+1,
ivy)*
sk(i, j, k, 3) -
w(i, j, &
260 & k-1,
ivy)*
sk(i, j, k-1, 3)
262 wwx =
w(i+1, j, k,
ivz)*
si(i, j, k, 1) -
w(i-1, j, k,
ivz)*
si(i-1&
263 & , j, k, 1) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 1) -
w(i, j-1, k,
ivz&
264 & )*
sj(i, j-1, k, 1) +
w(i, j, k+1,
ivz)*
sk(i, j, k, 1) -
w(i, j, &
265 & k-1,
ivz)*
sk(i, j, k-1, 1)
266 wwy =
w(i+1, j, k,
ivz)*
si(i, j, k, 2) -
w(i-1, j, k,
ivz)*
si(i-1&
267 & , j, k, 2) +
w(i, j+1, k,
ivz)*
sj(i, j, k, 2) -
w(i, j-1, k,
ivz&
268 & )*
sj(i, j-1, k, 2) +
w(i, j, k+1,
ivz)*
sk(i, j, k, 2) -
w(i, j, &
269 & k-1,
ivz)*
sk(i, j, k-1, 2)
273 vortx = fact*(wwy-vvz) -
two*omegax
274 vorty = fact*(uuz-wwx) -
two*omegay
275 vortz = fact*(vvx-uuy) -
two*omegaz
277 scratch(i, j, k,
ivort) = vortx**2 + vorty**2 + vortz**2
285 & sanuknowneddyratiod)
297 real(kind=realtype) :: sanuknowneddyratiod
301 real(kind=realtype),
intent(in) :: eddyratio, nulam
302 real(kind=realtype) :: nulamd
306 real(kind=realtype) :: cv13, chi, chi2, chi3, chi4, f, df, dchi
308 real(kind=realtype) :: abs0
313 if (eddyratio .le.
zero)
then
322 if (eddyratio .lt. 1.e-4_realtype)
then
323 call pushcontrol2b(2)
325 else if (eddyratio .lt. 1.0_realtype)
then
326 call pushcontrol2b(1)
328 else if (eddyratio .lt. 10.0_realtype)
then
329 call pushcontrol2b(0)
332 call pushcontrol2b(0)
342 f = chi4 - eddyratio*(chi3+cv13)
347 if (dchi/chi .ge. 0.)
then
356 ad_count = ad_count + 1
359 call pushinteger4(ad_count)
360 nulamd = chi*sanuknowneddyratiod
361 call popinteger4(ad_count)
363 call popcontrol2b(branch)
382 real(kind=realtype),
intent(in) :: eddyratio, nulam
386 real(kind=realtype) :: cv13, chi, chi2, chi3, chi4, f, df, dchi
388 real(kind=realtype) :: abs0
390 if (eddyratio .le.
zero)
then
400 if (eddyratio .lt. 1.e-4_realtype)
then
402 else if (eddyratio .lt. 1.0_realtype)
then
404 else if (eddyratio .lt. 10.0_realtype)
then
415 f = chi4 - eddyratio*(chi3+cv13)
420 if (dchi/chi .ge. 0.)
then
467 integer(kind=inttype),
intent(in) :: madv, nadv, offset
468 real(kind=realtype),
dimension(2:il, 2:jl, 2:kl, madv, madv), &
469 &
intent(inout) :: qq
473 integer(kind=inttype) :: i, j, k, ii, jj, nn
474 real(kind=realtype) :: oneoverdt, tmp
492 nadvloopunsteady:
do ii=1,nadv
517 qq(i, j, k, ii, ii) = qq(i, j, k, ii, ii) +
coeftime(0)*&
522 end do nadvloopunsteady
533 nadvloopspectral:
do ii=1,nadv
553 qq(i, j, k, ii, ii) = qq(i, j, k, ii, ii) + tmp
557 end do nadvloopspectral
580 logical,
intent(in) :: includehalos
584 logical :: returnimmediately
585 integer(kind=inttype) :: ibeg, iend, jbeg, jend, kbeg, kend
590 call pushcontrol1b(0)
591 returnimmediately = .false.
593 call pushcontrol1b(0)
594 returnimmediately = .true.
597 call pushcontrol1b(1)
598 returnimmediately = .true.
600 if (.not.returnimmediately)
then
603 if (includehalos)
then
623 call popcontrol1b(branch)
640 logical,
intent(in) :: includehalos
644 logical :: returnimmediately
645 integer(kind=inttype) :: ibeg, iend, jbeg, jend, kbeg, kend
649 returnimmediately = .false.
651 returnimmediately = .true.
654 returnimmediately = .true.
656 if (returnimmediately)
then
661 if (includehalos)
then
700 integer(kind=inttype) :: ibeg, iend, jbeg, jend, kbeg, kend
704 integer(kind=inttype) :: i, j, k, ii, isize, jsize, ksize
705 real(kind=realtype) :: chi, chi3, fv1, rnusa, cv13
706 real(kind=realtype) :: chid, chi3d, fv1d, rnusad
708 real(kind=realtype) :: tempd
713 isize = iend - ibeg + 1
714 jsize = jend - jbeg + 1
715 ksize = kend - kbeg + 1
717 do ii=0,isize*jsize*ksize-1
718 i = mod(ii, isize) + ibeg
719 j = mod(ii/isize, jsize) + jbeg
720 k = ii/(isize*jsize) + kbeg
722 chi = rnusa/
rlv(i, j, k)
724 fv1 = chi3/(chi3+cv13)
725 fv1d = rnusa*
revd(i, j, k)
726 tempd = fv1d/(cv13+chi3)
727 chi3d = (1.0-chi3/(cv13+chi3))*tempd
728 chid = 3*chi**2*chi3d
729 tempd = chid/
rlv(i, j, k)
730 rnusad = fv1*
revd(i, j, k) + tempd
731 revd(i, j, k) = 0.0_8
732 rlvd(i, j, k) =
rlvd(i, j, k) - rnusa*tempd/
rlv(i, j, k)
751 integer(kind=inttype) :: ibeg, iend, jbeg, jend, kbeg, kend
755 integer(kind=inttype) :: i, j, k, ii, isize, jsize, ksize
756 real(kind=realtype) :: chi, chi3, fv1, rnusa, cv13
762 isize = iend - ibeg + 1
763 jsize = jend - jbeg + 1
764 ksize = kend - kbeg + 1
766 do ii=0,isize*jsize*ksize-1
767 i = mod(ii, isize) + ibeg
768 j = mod(ii/isize, jsize) + jbeg
769 k = ii/(isize*jsize) + kbeg
771 chi = rnusa/
rlv(i, j, k)
773 fv1 = chi3/(chi3+cv13)
774 rev(i, j, k) = fv1*rnusa
788 integer(kind=inttype) :: ibeg, iend, jbeg, jend, kbeg, kend
792 integer(kind=inttype) :: i, j, k, ii, isize, jsize, ksize
795 real(kind=realtype) :: x1
798 isize = iend - ibeg + 1
799 jsize = jend - jbeg + 1
800 ksize = kend - kbeg + 1
802 do ii=0,isize*jsize*ksize-1
803 i = mod(ii, isize) + ibeg
804 j = mod(ii/isize, jsize) + jbeg
805 k = ii/(isize*jsize) + kbeg
827 integer(kind=inttype) :: ibeg, iend, jbeg, jend, kbeg, kend
831 integer(kind=inttype) :: i, j, k, ii, isize, jsize, ksize
832 real(kind=realtype) :: t1, t2, arg2, f2, vortmag
837 real(kind=realtype) :: max1
845 isize = iend - ibeg + 1
846 jsize = jend - jbeg + 1
847 ksize = kend - kbeg + 1
849 do ii=0,isize*jsize*ksize-1
850 i = mod(ii, isize) + ibeg
851 j = mod(ii/isize, jsize) + jbeg
852 k = ii/(isize*jsize) + kbeg
855 t1 =
two*sqrt(
w(i, j, k,
itu1))/(0.09_realtype*
w(i, j, k,
itu2)*&
857 t2 = 500.0_realtype*
rlv(i, j, k)/(
w(i, j, k,
irho)*
w(i, j, k,
itu2&
908 &
sfacei,
sfaceid,
sfacej,
sfacejd,
sfacek,
sfacekd,
w,
wd,
si,
sid, &
918 integer(kind=inttype),
intent(in) :: nadv, madv, offset
919 real(kind=realtype),
dimension(2:il, 2:jl, 2:kl, madv, madv), &
920 &
intent(inout) :: qq
924 integer(kind=inttype) :: i, j, k, ii, jj, kk, iii
925 real(kind=realtype) :: qs, voli, xa, ya, za
926 real(kind=realtype) :: qsd, volid, xad, yad, zad
927 real(kind=realtype) :: uu, dwt, dwtm1, dwtp1, dwti, dwtj, dwtk
928 real(kind=realtype) :: uud, dwtd, dwtm1d, dwtp1d, dwtid, dwtjd, &
930 real(kind=realtype),
dimension(madv) :: impl
933 real(kind=realtype) :: abs0
934 real(kind=realtype) :: abs1
935 real(kind=realtype) :: abs2
936 real(kind=realtype) :: abs3
937 real(kind=realtype) :: abs4
938 real(kind=realtype) :: abs5
939 real(kind=realtype) :: abs6
940 real(kind=realtype) :: abs7
941 real(kind=realtype) :: abs8
942 real(kind=realtype) :: abs9
943 real(kind=realtype) :: abs10
944 real(kind=realtype) :: abs11
945 real(kind=realtype) :: abs12
946 real(kind=realtype) :: abs13
947 real(kind=realtype) :: abs14
948 real(kind=realtype) :: abs15
949 real(kind=realtype) :: abs16
950 real(kind=realtype) :: abs17
951 real(kind=realtype) :: abs18
952 real(kind=realtype) :: abs19
953 real(kind=realtype) :: abs20
954 real(kind=realtype) :: abs21
955 real(kind=realtype) :: abs22
956 real(kind=realtype) :: abs23
969 j = mod(iii/
nx,
ny) + 2
976 call pushcontrol1b(0)
978 call pushcontrol1b(1)
982 xa = (
si(i, j, k, 1)+
si(i-1, j, k, 1))*voli
983 ya = (
si(i, j, k, 2)+
si(i-1, j, k, 2))*voli
984 za = (
si(i, j, k, 3)+
si(i-1, j, k, 3))*voli
985 uu = xa*
w(i, j, k,
ivx) + ya*
w(i, j, k,
ivy) + za*
w(i, j, k,
ivz) &
989 if (uu .gt.
zero)
then
1001 dwtm1 =
w(i-1, j, k, jj) -
w(i-2, j, k, jj)
1002 dwt =
w(i, j, k, jj) -
w(i-1, j, k, jj)
1003 dwtp1 =
w(i+1, j, k, jj) -
w(i, j, k, jj)
1008 if (dwt*dwtp1 .gt.
zero)
then
1009 if (dwt .ge. 0.)
then
1014 if (dwtp1 .ge. 0.)
then
1019 if (abs8 .lt. abs20)
then
1020 dwti = dwti +
half*dwt
1021 call pushcontrol2b(0)
1023 dwti = dwti +
half*dwtp1
1024 call pushcontrol2b(1)
1027 call pushcontrol2b(2)
1029 if (dwt*dwtm1 .gt.
zero)
then
1030 if (dwt .ge. 0.)
then
1035 if (dwtm1 .ge. 0.)
then
1040 if (abs9 .lt. abs21)
then
1041 dwti = dwti -
half*dwt
1042 call pushcontrol2b(0)
1044 dwti = dwti -
half*dwtm1
1045 call pushcontrol2b(1)
1048 call pushcontrol2b(2)
1052 dwti =
w(i, j, k, jj) -
w(i-1, j, k, jj)
1053 call pushcontrol2b(3)
1057 call popcontrol2b(branch)
1058 if (branch .lt. 2)
then
1059 if (branch .eq. 0)
then
1060 dwtd = -(
half*dwtid)
1063 dwtm1d = -(
half*dwtid)
1066 else if (branch .eq. 2)
then
1070 wd(i, j, k, jj) =
wd(i, j, k, jj) + dwtid
1071 wd(i-1, j, k, jj) =
wd(i-1, j, k, jj) - dwtid
1074 call popcontrol2b(branch)
1075 if (branch .eq. 0)
then
1076 dwtd = dwtd +
half*dwtid
1078 else if (branch .eq. 1)
then
1084 wd(i+1, j, k, jj) =
wd(i+1, j, k, jj) + dwtp1d
1085 wd(i, j, k, jj) =
wd(i, j, k, jj) + dwtd - dwtp1d
1086 wd(i-1, j, k, jj) =
wd(i-1, j, k, jj) + dwtm1d - dwtd
1087 wd(i-2, j, k, jj) =
wd(i-2, j, k, jj) - dwtm1d
1101 dwtm1 =
w(i, j, k, jj) -
w(i-1, j, k, jj)
1102 dwt =
w(i+1, j, k, jj) -
w(i, j, k, jj)
1103 dwtp1 =
w(i+2, j, k, jj) -
w(i+1, j, k, jj)
1108 if (dwt*dwtp1 .gt.
zero)
then
1109 if (dwt .ge. 0.)
then
1114 if (dwtp1 .ge. 0.)
then
1119 if (abs10 .lt. abs22)
then
1120 dwti = dwti -
half*dwt
1121 call pushcontrol2b(0)
1123 dwti = dwti -
half*dwtp1
1124 call pushcontrol2b(1)
1127 call pushcontrol2b(2)
1129 if (dwt*dwtm1 .gt.
zero)
then
1130 if (dwt .ge. 0.)
then
1135 if (dwtm1 .ge. 0.)
then
1140 if (abs11 .lt. abs23)
then
1141 dwti = dwti +
half*dwt
1142 call pushcontrol2b(0)
1144 dwti = dwti +
half*dwtm1
1145 call pushcontrol2b(1)
1148 call pushcontrol2b(2)
1152 dwti =
w(i+1, j, k, jj) -
w(i, j, k, jj)
1153 call pushcontrol2b(3)
1157 call popcontrol2b(branch)
1158 if (branch .lt. 2)
then
1159 if (branch .eq. 0)
then
1166 else if (branch .eq. 2)
then
1170 wd(i+1, j, k, jj) =
wd(i+1, j, k, jj) + dwtid
1171 wd(i, j, k, jj) =
wd(i, j, k, jj) - dwtid
1174 call popcontrol2b(branch)
1175 if (branch .eq. 0)
then
1176 dwtd = dwtd -
half*dwtid
1178 else if (branch .eq. 1)
then
1179 dwtp1d = -(
half*dwtid)
1184 wd(i+2, j, k, jj) =
wd(i+2, j, k, jj) + dwtp1d
1185 wd(i+1, j, k, jj) =
wd(i+1, j, k, jj) + dwtd - dwtp1d
1186 wd(i, j, k, jj) =
wd(i, j, k, jj) + dwtm1d - dwtd
1187 wd(i-1, j, k, jj) =
wd(i-1, j, k, jj) - dwtm1d
1190 xad =
w(i, j, k,
ivx)*uud
1192 yad =
w(i, j, k,
ivy)*uud
1194 zad =
w(i, j, k,
ivz)*uud
1197 sid(i, j, k, 3) =
sid(i, j, k, 3) + voli*zad
1198 sid(i-1, j, k, 3) =
sid(i-1, j, k, 3) + voli*zad
1199 volid = (
si(i, j, k, 3)+
si(i-1, j, k, 3))*zad + (
si(i, j, k, 2)+
si&
1200 & (i-1, j, k, 2))*yad + (
si(i, j, k, 1)+
si(i-1, j, k, 1))*xad
1201 sid(i, j, k, 2) =
sid(i, j, k, 2) + voli*yad
1202 sid(i-1, j, k, 2) =
sid(i-1, j, k, 2) + voli*yad
1203 sid(i, j, k, 1) =
sid(i, j, k, 1) + voli*xad
1204 sid(i-1, j, k, 1) =
sid(i-1, j, k, 1) + voli*xad
1205 call popcontrol1b(branch)
1206 if (branch .eq. 0)
then
1209 volid = volid + (
sfacei(i, j, k)+
sfacei(i-1, j, k))*qsd
1219 i = mod(iii,
nx) + 2
1220 j = mod(iii/
nx,
ny) + 2
1227 call pushcontrol1b(0)
1229 call pushcontrol1b(1)
1233 xa = (
sj(i, j, k, 1)+
sj(i, j-1, k, 1))*voli
1234 ya = (
sj(i, j, k, 2)+
sj(i, j-1, k, 2))*voli
1235 za = (
sj(i, j, k, 3)+
sj(i, j-1, k, 3))*voli
1236 uu = xa*
w(i, j, k,
ivx) + ya*
w(i, j, k,
ivy) + za*
w(i, j, k,
ivz) &
1240 if (uu .gt.
zero)
then
1252 dwtm1 =
w(i, j-1, k, jj) -
w(i, j-2, k, jj)
1253 dwt =
w(i, j, k, jj) -
w(i, j-1, k, jj)
1254 dwtp1 =
w(i, j+1, k, jj) -
w(i, j, k, jj)
1259 if (dwt*dwtp1 .gt.
zero)
then
1260 if (dwt .ge. 0.)
then
1265 if (dwtp1 .ge. 0.)
then
1270 if (abs4 .lt. abs16)
then
1271 dwtj = dwtj +
half*dwt
1272 call pushcontrol2b(0)
1274 dwtj = dwtj +
half*dwtp1
1275 call pushcontrol2b(1)
1278 call pushcontrol2b(2)
1280 if (dwt*dwtm1 .gt.
zero)
then
1281 if (dwt .ge. 0.)
then
1286 if (dwtm1 .ge. 0.)
then
1291 if (abs5 .lt. abs17)
then
1292 dwtj = dwtj -
half*dwt
1293 call pushcontrol2b(0)
1295 dwtj = dwtj -
half*dwtm1
1296 call pushcontrol2b(1)
1299 call pushcontrol2b(2)
1303 dwtj =
w(i, j, k, jj) -
w(i, j-1, k, jj)
1304 call pushcontrol2b(3)
1308 call popcontrol2b(branch)
1309 if (branch .lt. 2)
then
1310 if (branch .eq. 0)
then
1311 dwtd = -(
half*dwtjd)
1314 dwtm1d = -(
half*dwtjd)
1317 else if (branch .eq. 2)
then
1321 wd(i, j, k, jj) =
wd(i, j, k, jj) + dwtjd
1322 wd(i, j-1, k, jj) =
wd(i, j-1, k, jj) - dwtjd
1325 call popcontrol2b(branch)
1326 if (branch .eq. 0)
then
1327 dwtd = dwtd +
half*dwtjd
1329 else if (branch .eq. 1)
then
1335 wd(i, j+1, k, jj) =
wd(i, j+1, k, jj) + dwtp1d
1336 wd(i, j, k, jj) =
wd(i, j, k, jj) + dwtd - dwtp1d
1337 wd(i, j-1, k, jj) =
wd(i, j-1, k, jj) + dwtm1d - dwtd
1338 wd(i, j-2, k, jj) =
wd(i, j-2, k, jj) - dwtm1d
1352 dwtm1 =
w(i, j, k, jj) -
w(i, j-1, k, jj)
1353 dwt =
w(i, j+1, k, jj) -
w(i, j, k, jj)
1354 dwtp1 =
w(i, j+2, k, jj) -
w(i, j+1, k, jj)
1359 if (dwt*dwtp1 .gt.
zero)
then
1360 if (dwt .ge. 0.)
then
1365 if (dwtp1 .ge. 0.)
then
1370 if (abs6 .lt. abs18)
then
1371 dwtj = dwtj -
half*dwt
1372 call pushcontrol2b(0)
1374 dwtj = dwtj -
half*dwtp1
1375 call pushcontrol2b(1)
1378 call pushcontrol2b(2)
1380 if (dwt*dwtm1 .gt.
zero)
then
1381 if (dwt .ge. 0.)
then
1386 if (dwtm1 .ge. 0.)
then
1391 if (abs7 .lt. abs19)
then
1392 dwtj = dwtj +
half*dwt
1393 call pushcontrol2b(0)
1395 dwtj = dwtj +
half*dwtm1
1396 call pushcontrol2b(1)
1399 call pushcontrol2b(2)
1403 dwtj =
w(i, j+1, k, jj) -
w(i, j, k, jj)
1404 call pushcontrol2b(3)
1408 call popcontrol2b(branch)
1409 if (branch .lt. 2)
then
1410 if (branch .eq. 0)
then
1417 else if (branch .eq. 2)
then
1421 wd(i, j+1, k, jj) =
wd(i, j+1, k, jj) + dwtjd
1422 wd(i, j, k, jj) =
wd(i, j, k, jj) - dwtjd
1425 call popcontrol2b(branch)
1426 if (branch .eq. 0)
then
1427 dwtd = dwtd -
half*dwtjd
1429 else if (branch .eq. 1)
then
1430 dwtp1d = -(
half*dwtjd)
1435 wd(i, j+2, k, jj) =
wd(i, j+2, k, jj) + dwtp1d
1436 wd(i, j+1, k, jj) =
wd(i, j+1, k, jj) + dwtd - dwtp1d
1437 wd(i, j, k, jj) =
wd(i, j, k, jj) + dwtm1d - dwtd
1438 wd(i, j-1, k, jj) =
wd(i, j-1, k, jj) - dwtm1d
1441 xad =
w(i, j, k,
ivx)*uud
1443 yad =
w(i, j, k,
ivy)*uud
1445 zad =
w(i, j, k,
ivz)*uud
1448 sjd(i, j, k, 3) =
sjd(i, j, k, 3) + voli*zad
1449 sjd(i, j-1, k, 3) =
sjd(i, j-1, k, 3) + voli*zad
1450 volid = (
sj(i, j, k, 3)+
sj(i, j-1, k, 3))*zad + (
sj(i, j, k, 2)+
sj&
1451 & (i, j-1, k, 2))*yad + (
sj(i, j, k, 1)+
sj(i, j-1, k, 1))*xad
1452 sjd(i, j, k, 2) =
sjd(i, j, k, 2) + voli*yad
1453 sjd(i, j-1, k, 2) =
sjd(i, j-1, k, 2) + voli*yad
1454 sjd(i, j, k, 1) =
sjd(i, j, k, 1) + voli*xad
1455 sjd(i, j-1, k, 1) =
sjd(i, j-1, k, 1) + voli*xad
1456 call popcontrol1b(branch)
1457 if (branch .eq. 0)
then
1460 volid = volid + (
sfacej(i, j, k)+
sfacej(i, j-1, k))*qsd
1472 i = mod(iii,
nx) + 2
1473 j = mod(iii/
nx,
ny) + 2
1480 call pushcontrol1b(0)
1482 call pushcontrol1b(1)
1486 xa = (
sk(i, j, k, 1)+
sk(i, j, k-1, 1))*voli
1487 ya = (
sk(i, j, k, 2)+
sk(i, j, k-1, 2))*voli
1488 za = (
sk(i, j, k, 3)+
sk(i, j, k-1, 3))*voli
1489 uu = xa*
w(i, j, k,
ivx) + ya*
w(i, j, k,
ivy) + za*
w(i, j, k,
ivz) &
1494 if (uu .gt.
zero)
then
1506 dwtm1 =
w(i, j, k-1, jj) -
w(i, j, k-2, jj)
1507 dwt =
w(i, j, k, jj) -
w(i, j, k-1, jj)
1508 dwtp1 =
w(i, j, k+1, jj) -
w(i, j, k, jj)
1513 if (dwt*dwtp1 .gt.
zero)
then
1514 if (dwt .ge. 0.)
then
1519 if (dwtp1 .ge. 0.)
then
1524 if (abs0 .lt. abs12)
then
1525 dwtk = dwtk +
half*dwt
1526 call pushcontrol2b(0)
1528 dwtk = dwtk +
half*dwtp1
1529 call pushcontrol2b(1)
1532 call pushcontrol2b(2)
1534 if (dwt*dwtm1 .gt.
zero)
then
1535 if (dwt .ge. 0.)
then
1540 if (dwtm1 .ge. 0.)
then
1545 if (abs1 .lt. abs13)
then
1546 dwtk = dwtk -
half*dwt
1547 call pushcontrol2b(0)
1549 dwtk = dwtk -
half*dwtm1
1550 call pushcontrol2b(1)
1553 call pushcontrol2b(2)
1557 dwtk =
w(i, j, k, jj) -
w(i, j, k-1, jj)
1558 call pushcontrol2b(3)
1562 call popcontrol2b(branch)
1563 if (branch .lt. 2)
then
1564 if (branch .eq. 0)
then
1565 dwtd = -(
half*dwtkd)
1568 dwtm1d = -(
half*dwtkd)
1571 else if (branch .eq. 2)
then
1575 wd(i, j, k, jj) =
wd(i, j, k, jj) + dwtkd
1576 wd(i, j, k-1, jj) =
wd(i, j, k-1, jj) - dwtkd
1579 call popcontrol2b(branch)
1580 if (branch .eq. 0)
then
1581 dwtd = dwtd +
half*dwtkd
1583 else if (branch .eq. 1)
then
1589 wd(i, j, k+1, jj) =
wd(i, j, k+1, jj) + dwtp1d
1590 wd(i, j, k, jj) =
wd(i, j, k, jj) + dwtd - dwtp1d
1591 wd(i, j, k-1, jj) =
wd(i, j, k-1, jj) + dwtm1d - dwtd
1592 wd(i, j, k-2, jj) =
wd(i, j, k-2, jj) - dwtm1d
1606 dwtm1 =
w(i, j, k, jj) -
w(i, j, k-1, jj)
1607 dwt =
w(i, j, k+1, jj) -
w(i, j, k, jj)
1608 dwtp1 =
w(i, j, k+2, jj) -
w(i, j, k+1, jj)
1613 if (dwt*dwtp1 .gt.
zero)
then
1614 if (dwt .ge. 0.)
then
1619 if (dwtp1 .ge. 0.)
then
1624 if (abs2 .lt. abs14)
then
1625 dwtk = dwtk -
half*dwt
1626 call pushcontrol2b(0)
1628 dwtk = dwtk -
half*dwtp1
1629 call pushcontrol2b(1)
1632 call pushcontrol2b(2)
1634 if (dwt*dwtm1 .gt.
zero)
then
1635 if (dwt .ge. 0.)
then
1640 if (dwtm1 .ge. 0.)
then
1645 if (abs3 .lt. abs15)
then
1646 dwtk = dwtk +
half*dwt
1647 call pushcontrol2b(0)
1649 dwtk = dwtk +
half*dwtm1
1650 call pushcontrol2b(1)
1653 call pushcontrol2b(2)
1657 dwtk =
w(i, j, k+1, jj) -
w(i, j, k, jj)
1658 call pushcontrol2b(3)
1662 call popcontrol2b(branch)
1663 if (branch .lt. 2)
then
1664 if (branch .eq. 0)
then
1671 else if (branch .eq. 2)
then
1675 wd(i, j, k+1, jj) =
wd(i, j, k+1, jj) + dwtkd
1676 wd(i, j, k, jj) =
wd(i, j, k, jj) - dwtkd
1679 call popcontrol2b(branch)
1680 if (branch .eq. 0)
then
1681 dwtd = dwtd -
half*dwtkd
1683 else if (branch .eq. 1)
then
1684 dwtp1d = -(
half*dwtkd)
1689 wd(i, j, k+2, jj) =
wd(i, j, k+2, jj) + dwtp1d
1690 wd(i, j, k+1, jj) =
wd(i, j, k+1, jj) + dwtd - dwtp1d
1691 wd(i, j, k, jj) =
wd(i, j, k, jj) + dwtm1d - dwtd
1692 wd(i, j, k-1, jj) =
wd(i, j, k-1, jj) - dwtm1d
1695 xad =
w(i, j, k,
ivx)*uud
1697 yad =
w(i, j, k,
ivy)*uud
1699 zad =
w(i, j, k,
ivz)*uud
1702 skd(i, j, k, 3) =
skd(i, j, k, 3) + voli*zad
1703 skd(i, j, k-1, 3) =
skd(i, j, k-1, 3) + voli*zad
1704 volid = (
sk(i, j, k, 3)+
sk(i, j, k-1, 3))*zad + (
sk(i, j, k, 2)+
sk&
1705 & (i, j, k-1, 2))*yad + (
sk(i, j, k, 1)+
sk(i, j, k-1, 1))*xad
1706 skd(i, j, k, 2) =
skd(i, j, k, 2) + voli*yad
1707 skd(i, j, k-1, 2) =
skd(i, j, k-1, 2) + voli*yad
1708 skd(i, j, k, 1) =
skd(i, j, k, 1) + voli*xad
1709 skd(i, j, k-1, 1) =
skd(i, j, k-1, 1) + voli*xad
1710 call popcontrol1b(branch)
1711 if (branch .eq. 0)
then
1714 volid = volid + (
sfacek(i, j, k)+
sfacek(i, j, k-1))*qsd
1752 integer(kind=inttype),
intent(in) :: nadv, madv, offset
1753 real(kind=realtype),
dimension(2:il, 2:jl, 2:kl, madv, madv), &
1754 &
intent(inout) :: qq
1758 integer(kind=inttype) :: i, j, k, ii, jj, kk, iii
1759 real(kind=realtype) :: qs, voli, xa, ya, za
1760 real(kind=realtype) :: uu, dwt, dwtm1, dwtp1, dwti, dwtj, dwtk
1761 real(kind=realtype),
dimension(madv) :: impl
1764 real(kind=realtype) :: abs0
1765 real(kind=realtype) :: abs1
1766 real(kind=realtype) :: abs2
1767 real(kind=realtype) :: abs3
1768 real(kind=realtype) :: abs4
1769 real(kind=realtype) :: abs5
1770 real(kind=realtype) :: abs6
1771 real(kind=realtype) :: abs7
1772 real(kind=realtype) :: abs8
1773 real(kind=realtype) :: abs9
1774 real(kind=realtype) :: abs10
1775 real(kind=realtype) :: abs11
1776 real(kind=realtype) :: abs12
1777 real(kind=realtype) :: abs13
1778 real(kind=realtype) :: abs14
1779 real(kind=realtype) :: abs15
1780 real(kind=realtype) :: abs16
1781 real(kind=realtype) :: abs17
1782 real(kind=realtype) :: abs18
1783 real(kind=realtype) :: abs19
1784 real(kind=realtype) :: abs20
1785 real(kind=realtype) :: abs21
1786 real(kind=realtype) :: abs22
1787 real(kind=realtype) :: abs23
1806 i = mod(iii,
nx) + 2
1807 j = mod(iii/
nx,
ny) + 2
1816 xa = (
sk(i, j, k, 1)+
sk(i, j, k-1, 1))*voli
1817 ya = (
sk(i, j, k, 2)+
sk(i, j, k-1, 2))*voli
1818 za = (
sk(i, j, k, 3)+
sk(i, j, k-1, 3))*voli
1819 uu = xa*
w(i, j, k,
ivx) + ya*
w(i, j, k,
ivy) + za*
w(i, j, k,
ivz) &
1824 if (uu .gt.
zero)
then
1837 dwtm1 =
w(i, j, k-1, jj) -
w(i, j, k-2, jj)
1838 dwt =
w(i, j, k, jj) -
w(i, j, k-1, jj)
1839 dwtp1 =
w(i, j, k+1, jj) -
w(i, j, k, jj)
1844 if (dwt*dwtp1 .gt.
zero)
then
1845 if (dwt .ge. 0.)
then
1850 if (dwtp1 .ge. 0.)
then
1855 if (abs0 .lt. abs12)
then
1856 dwtk = dwtk +
half*dwt
1858 dwtk = dwtk +
half*dwtp1
1861 if (dwt*dwtm1 .gt.
zero)
then
1862 if (dwt .ge. 0.)
then
1867 if (dwtm1 .ge. 0.)
then
1872 if (abs1 .lt. abs13)
then
1873 dwtk = dwtk -
half*dwt
1875 dwtk = dwtk -
half*dwtm1
1880 dwtk =
w(i, j, k, jj) -
w(i, j, k-1, jj)
1902 dwtm1 =
w(i, j, k, jj) -
w(i, j, k-1, jj)
1903 dwt =
w(i, j, k+1, jj) -
w(i, j, k, jj)
1904 dwtp1 =
w(i, j, k+2, jj) -
w(i, j, k+1, jj)
1909 if (dwt*dwtp1 .gt.
zero)
then
1910 if (dwt .ge. 0.)
then
1915 if (dwtp1 .ge. 0.)
then
1920 if (abs2 .lt. abs14)
then
1921 dwtk = dwtk -
half*dwt
1923 dwtk = dwtk -
half*dwtp1
1926 if (dwt*dwtm1 .gt.
zero)
then
1927 if (dwt .ge. 0.)
then
1932 if (dwtm1 .ge. 0.)
then
1937 if (abs3 .lt. abs15)
then
1938 dwtk = dwtk +
half*dwt
1940 dwtk = dwtk +
half*dwtm1
1945 dwtk =
w(i, j, k+1, jj) -
w(i, j, k, jj)
1970 i = mod(iii,
nx) + 2
1971 j = mod(iii/
nx,
ny) + 2
1980 xa = (
sj(i, j, k, 1)+
sj(i, j-1, k, 1))*voli
1981 ya = (
sj(i, j, k, 2)+
sj(i, j-1, k, 2))*voli
1982 za = (
sj(i, j, k, 3)+
sj(i, j-1, k, 3))*voli
1983 uu = xa*
w(i, j, k,
ivx) + ya*
w(i, j, k,
ivy) + za*
w(i, j, k,
ivz) &
1987 if (uu .gt.
zero)
then
2000 dwtm1 =
w(i, j-1, k, jj) -
w(i, j-2, k, jj)
2001 dwt =
w(i, j, k, jj) -
w(i, j-1, k, jj)
2002 dwtp1 =
w(i, j+1, k, jj) -
w(i, j, k, jj)
2007 if (dwt*dwtp1 .gt.
zero)
then
2008 if (dwt .ge. 0.)
then
2013 if (dwtp1 .ge. 0.)
then
2018 if (abs4 .lt. abs16)
then
2019 dwtj = dwtj +
half*dwt
2021 dwtj = dwtj +
half*dwtp1
2024 if (dwt*dwtm1 .gt.
zero)
then
2025 if (dwt .ge. 0.)
then
2030 if (dwtm1 .ge. 0.)
then
2035 if (abs5 .lt. abs17)
then
2036 dwtj = dwtj -
half*dwt
2038 dwtj = dwtj -
half*dwtm1
2043 dwtj =
w(i, j, k, jj) -
w(i, j-1, k, jj)
2066 dwtm1 =
w(i, j, k, jj) -
w(i, j-1, k, jj)
2067 dwt =
w(i, j+1, k, jj) -
w(i, j, k, jj)
2068 dwtp1 =
w(i, j+2, k, jj) -
w(i, j+1, k, jj)
2073 if (dwt*dwtp1 .gt.
zero)
then
2074 if (dwt .ge. 0.)
then
2079 if (dwtp1 .ge. 0.)
then
2084 if (abs6 .lt. abs18)
then
2085 dwtj = dwtj -
half*dwt
2087 dwtj = dwtj -
half*dwtp1
2090 if (dwt*dwtm1 .gt.
zero)
then
2091 if (dwt .ge. 0.)
then
2096 if (dwtm1 .ge. 0.)
then
2101 if (abs7 .lt. abs19)
then
2102 dwtj = dwtj +
half*dwt
2104 dwtj = dwtj +
half*dwtm1
2109 dwtj =
w(i, j+1, k, jj) -
w(i, j, k, jj)
2134 i = mod(iii,
nx) + 2
2135 j = mod(iii/
nx,
ny) + 2
2144 xa = (
si(i, j, k, 1)+
si(i-1, j, k, 1))*voli
2145 ya = (
si(i, j, k, 2)+
si(i-1, j, k, 2))*voli
2146 za = (
si(i, j, k, 3)+
si(i-1, j, k, 3))*voli
2147 uu = xa*
w(i, j, k,
ivx) + ya*
w(i, j, k,
ivy) + za*
w(i, j, k,
ivz) &
2151 if (uu .gt.
zero)
then
2164 dwtm1 =
w(i-1, j, k, jj) -
w(i-2, j, k, jj)
2165 dwt =
w(i, j, k, jj) -
w(i-1, j, k, jj)
2166 dwtp1 =
w(i+1, j, k, jj) -
w(i, j, k, jj)
2171 if (dwt*dwtp1 .gt.
zero)
then
2172 if (dwt .ge. 0.)
then
2177 if (dwtp1 .ge. 0.)
then
2182 if (abs8 .lt. abs20)
then
2183 dwti = dwti +
half*dwt
2185 dwti = dwti +
half*dwtp1
2188 if (dwt*dwtm1 .gt.
zero)
then
2189 if (dwt .ge. 0.)
then
2194 if (dwtm1 .ge. 0.)
then
2199 if (abs9 .lt. abs21)
then
2200 dwti = dwti -
half*dwt
2202 dwti = dwti -
half*dwtm1
2207 dwti =
w(i, j, k, jj) -
w(i-1, j, k, jj)
2230 dwtm1 =
w(i, j, k, jj) -
w(i-1, j, k, jj)
2231 dwt =
w(i+1, j, k, jj) -
w(i, j, k, jj)
2232 dwtp1 =
w(i+2, j, k, jj) -
w(i+1, j, k, jj)
2237 if (dwt*dwtp1 .gt.
zero)
then
2238 if (dwt .ge. 0.)
then
2243 if (dwtp1 .ge. 0.)
then
2248 if (abs10 .lt. abs22)
then
2249 dwti = dwti -
half*dwt
2251 dwti = dwti -
half*dwtp1
2254 if (dwt*dwtm1 .gt.
zero)
then
2255 if (dwt .ge. 0.)
then
2260 if (dwtm1 .ge. 0.)
then
2265 if (abs11 .lt. abs23)
then
2266 dwti = dwti +
half*dwt
2268 dwti = dwti +
half*dwtm1
2273 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 prodkatolaunder()
subroutine computeeddyviscosity_b(includehalos)
subroutine turbadvection(madv, nadv, offset, qq)
subroutine turbadvection_b(madv, nadv, offset, qq)
subroutine computeeddyviscosity(includehalos)
subroutine ssteddyviscosity(ibeg, iend, jbeg, jend, kbeg, kend)
subroutine saeddyviscosity_b(ibeg, iend, jbeg, jend, kbeg, kend)
subroutine unsteadyturbterm(madv, nadv, offset, qq)
subroutine saeddyviscosity(ibeg, iend, jbeg, jend, kbeg, kend)
subroutine sanuknowneddyratio_b(eddyratio, nulam, nulamd, sanuknowneddyratiod)
real(kind=realtype) function sanuknowneddyratio(eddyratio, nulam)
subroutine kweddyviscosity(ibeg, iend, jbeg, jend, kbeg, kend)