130 Dx, Dy, Dz, Dxt, Dyt, Dzt, &
131 h1, drdx, drdy, drdz, dsdx, dsdy, dsdz, dtdx, dtdy, dtdz, &
132 jacinv, weights3, svv_h1, svv_Q, svv_Qt, svv_direction, ident, n, lx)
133 integer,
intent(in) :: n, lx
134 real(kind=
rp),
intent(in) :: u(lx, lx, lx, n)
135 real(kind=
rp),
intent(in) :: v(lx, lx, lx, n)
136 real(kind=
rp),
intent(in) :: w(lx, lx, lx, n)
137 real(kind=
rp),
intent(inout) :: au(lx, lx, lx, n)
138 real(kind=
rp),
intent(inout) :: av(lx, lx, lx, n)
139 real(kind=
rp),
intent(inout) :: aw(lx, lx, lx, n)
140 real(kind=
rp),
intent(in) :: h1(lx, lx, lx, n)
141 real(kind=
rp),
intent(in) :: drdx(lx, lx, lx, n)
142 real(kind=
rp),
intent(in) :: drdy(lx, lx, lx, n)
143 real(kind=
rp),
intent(in) :: drdz(lx, lx, lx, n)
144 real(kind=
rp),
intent(in) :: dsdx(lx, lx, lx, n)
145 real(kind=
rp),
intent(in) :: dsdy(lx, lx, lx, n)
146 real(kind=
rp),
intent(in) :: dsdz(lx, lx, lx, n)
147 real(kind=
rp),
intent(in) :: dtdx(lx, lx, lx, n)
148 real(kind=
rp),
intent(in) :: dtdy(lx, lx, lx, n)
149 real(kind=
rp),
intent(in) :: dtdz(lx, lx, lx, n)
150 real(kind=
rp),
intent(in) :: jacinv(lx, lx, lx, n)
151 real(kind=
rp),
intent(in) :: weights3(lx, lx, lx)
152 real(kind=
rp),
intent(in) :: dx(lx,lx)
153 real(kind=
rp),
intent(in) :: dy(lx,lx)
154 real(kind=
rp),
intent(in) :: dz(lx,lx)
155 real(kind=
rp),
intent(in) :: dxt(lx,lx)
156 real(kind=
rp),
intent(in) :: dyt(lx,lx)
157 real(kind=
rp),
intent(in) :: dzt(lx,lx)
158 real(kind=
rp),
intent(in) :: svv_h1(lx, lx, lx, n)
159 real(kind=
rp),
intent(in) :: svv_q(lx, lx), svv_qt(lx, lx)
160 character(len=*),
intent(in) :: svv_direction
161 real(kind=
rp),
intent(in) :: ident(lx, lx)
163 real(kind=
rp) :: s11_h, s22_h, s33_h, s12_h, s13_h, s23_h
165 real(kind=
rp) :: wur(lx, lx, lx)
166 real(kind=
rp) :: wus(lx, lx, lx)
167 real(kind=
rp) :: wut(lx, lx, lx)
168 real(kind=
rp) :: wvr(lx, lx, lx)
169 real(kind=
rp) :: wvs(lx, lx, lx)
170 real(kind=
rp) :: wvt(lx, lx, lx)
171 real(kind=
rp) :: wwr(lx, lx, lx)
172 real(kind=
rp) :: wws(lx, lx, lx)
173 real(kind=
rp) :: wwt(lx, lx, lx)
175 real(kind=
rp) :: s11_svv(lx, lx, lx)
176 real(kind=
rp) :: s22_svv(lx, lx, lx)
177 real(kind=
rp) :: s33_svv(lx, lx, lx)
178 real(kind=
rp) :: s12_svv(lx, lx, lx)
179 real(kind=
rp) :: s13_svv(lx, lx, lx)
180 real(kind=
rp) :: s23_svv(lx, lx, lx)
181 integer :: e, i, j, k, l
183 real(kind=
rp) :: t1, t2, t3
184 real(kind=
rp) :: s11(lx, lx, lx)
185 real(kind=
rp) :: s22(lx, lx, lx)
186 real(kind=
rp) :: s33(lx, lx, lx)
187 real(kind=
rp) :: s12(lx, lx, lx)
188 real(kind=
rp) :: s13(lx, lx, lx)
189 real(kind=
rp) :: s23(lx, lx, lx)
190 real(kind=
rp) :: u1, u2, u3, v1, v2, v3, w1, w2, w3
191 real(kind=
rp) :: filter_r(lx, lx), filter_s(lx, lx), filter_t(lx, lx)
193 if (index(svv_direction,
"r") > 0)
then
198 if (index(svv_direction,
"s") > 0)
then
203 if (index(svv_direction,
"t") > 0)
then
216 t1 = t1 + dx(i,k) * u(k,j,1,e)
217 t2 = t2 + dx(i,k) * v(k,j,1,e)
218 t3 = t3 + dx(i,k) * w(k,j,1,e)
233 t1 = t1 + dy(j,l) * u(i,l,k,e)
234 t2 = t2 + dy(j,l) * v(i,l,k,e)
235 t3 = t3 + dy(j,l) * w(i,l,k,e)
250 t1 = t1 + dz(k,l) * u(i,1,l,e)
251 t2 = t2 + dz(k,l) * v(i,1,l,e)
252 t3 = t3 + dz(k,l) * w(i,1,l,e)
261 u1 = (drdx(i,1,1,e) * wur(i,1,1) &
262 + dsdx(i,1,1,e) * wus(i,1,1) &
263 + dtdx(i,1,1,e) * wut(i,1,1)) * jacinv(i,1,1,e)
264 u2 = (drdy(i,1,1,e) * wur(i,1,1) &
265 + dsdy(i,1,1,e) * wus(i,1,1) &
266 + dtdy(i,1,1,e) * wut(i,1,1)) * jacinv(i,1,1,e)
267 u3 = (drdz(i,1,1,e) * wur(i,1,1) &
268 + dsdz(i,1,1,e) * wus(i,1,1) &
269 + dtdz(i,1,1,e) * wut(i,1,1)) * jacinv(i,1,1,e)
270 v1 = (drdx(i,1,1,e) * wvr(i,1,1) &
271 + dsdx(i,1,1,e) * wvs(i,1,1) &
272 + dtdx(i,1,1,e) * wvt(i,1,1)) * jacinv(i,1,1,e)
273 v2 = (drdy(i,1,1,e) * wvr(i,1,1) &
274 + dsdy(i,1,1,e) * wvs(i,1,1) &
275 + dtdy(i,1,1,e) * wvt(i,1,1)) * jacinv(i,1,1,e)
276 v3 = (drdz(i,1,1,e) * wvr(i,1,1) &
277 + dsdz(i,1,1,e) * wvs(i,1,1) &
278 + dtdz(i,1,1,e) * wvt(i,1,1)) * jacinv(i,1,1,e)
279 w1 = (drdx(i,1,1,e) * wwr(i,1,1) &
280 + dsdx(i,1,1,e) * wws(i,1,1) &
281 + dtdx(i,1,1,e) * wwt(i,1,1)) * jacinv(i,1,1,e)
282 w2 = (drdy(i,1,1,e) * wwr(i,1,1) &
283 + dsdy(i,1,1,e) * wws(i,1,1) &
284 + dtdy(i,1,1,e) * wwt(i,1,1)) * jacinv(i,1,1,e)
285 w3 = (drdz(i,1,1,e) * wwr(i,1,1) &
286 + dsdz(i,1,1,e) * wws(i,1,1) &
287 + dtdz(i,1,1,e) * wwt(i,1,1)) * jacinv(i,1,1,e)
297 call tnsr3d_el(s11_svv, lx, s11, lx, filter_r, filter_s, filter_t)
298 call tnsr3d_el(s22_svv, lx, s22, lx, filter_r, filter_s, filter_t)
299 call tnsr3d_el(s33_svv, lx, s33, lx, filter_r, filter_s, filter_t)
300 call tnsr3d_el(s12_svv, lx, s12, lx, filter_r, filter_s, filter_t)
301 call tnsr3d_el(s13_svv, lx, s13, lx, filter_r, filter_s, filter_t)
302 call tnsr3d_el(s23_svv, lx, s23, lx, filter_r, filter_s, filter_t)
306 s11_svv(i,1,1) = s11(i,1,1) - s11_svv(i,1,1)
307 s22_svv(i,1,1) = s22(i,1,1) - s22_svv(i,1,1)
308 s33_svv(i,1,1) = s33(i,1,1) - s33_svv(i,1,1)
309 s12_svv(i,1,1) = s12(i,1,1) - s12_svv(i,1,1)
310 s13_svv(i,1,1) = s13(i,1,1) - s13_svv(i,1,1)
311 s23_svv(i,1,1) = s23(i,1,1) - s23_svv(i,1,1)
314 s11_h = (svv_h1(i,1,1,e) * s11_svv(i,1,1) + &
315 h1(i,1,1,e) * s11(i,1,1)) * weights3(i,1,1)
316 s22_h = (svv_h1(i,1,1,e) * s22_svv(i,1,1) + &
317 h1(i,1,1,e) * s22(i,1,1)) * weights3(i,1,1)
318 s33_h = (svv_h1(i,1,1,e) * s33_svv(i,1,1) + &
319 h1(i,1,1,e) * s33(i,1,1)) * weights3(i,1,1)
320 s12_h = (svv_h1(i,1,1,e) * s12_svv(i,1,1) + &
321 h1(i,1,1,e) * s12(i,1,1)) * weights3(i,1,1)
322 s13_h = (svv_h1(i,1,1,e) * s13_svv(i,1,1) + &
323 h1(i,1,1,e) * s13(i,1,1)) * weights3(i,1,1)
324 s23_h = (svv_h1(i,1,1,e) * s23_svv(i,1,1) + &
325 h1(i,1,1,e) * s23(i,1,1)) * weights3(i,1,1)
327 wur(i,1,1) = drdx(i,1,1,e) * s11_h &
328 + drdy(i,1,1,e) * s12_h &
329 + drdz(i,1,1,e) * s13_h
330 wus(i,1,1) = dsdx(i,1,1,e) * s11_h &
331 + dsdy(i,1,1,e) * s12_h &
332 + dsdz(i,1,1,e) * s13_h
333 wut(i,1,1) = dtdx(i,1,1,e) * s11_h &
334 + dtdy(i,1,1,e) * s12_h &
335 + dtdz(i,1,1,e) * s13_h
336 wvr(i,1,1) = drdx(i,1,1,e) * s12_h &
337 + drdy(i,1,1,e) * s22_h &
338 + drdz(i,1,1,e) * s23_h
339 wvs(i,1,1) = dsdx(i,1,1,e) * s12_h &
340 + dsdy(i,1,1,e) * s22_h &
341 + dsdz(i,1,1,e) * s23_h
342 wvt(i,1,1) = dtdx(i,1,1,e) * s12_h &
343 + dtdy(i,1,1,e) * s22_h &
344 + dtdz(i,1,1,e) * s23_h
345 wwr(i,1,1) = drdx(i,1,1,e) * s13_h &
346 + drdy(i,1,1,e) * s23_h &
347 + drdz(i,1,1,e) * s33_h
348 wws(i,1,1) = dsdx(i,1,1,e) * s13_h &
349 + dsdy(i,1,1,e) * s23_h &
350 + dsdz(i,1,1,e) * s33_h
351 wwt(i,1,1) = dtdx(i,1,1,e) * s13_h &
352 + dtdy(i,1,1,e) * s23_h &
353 + dtdz(i,1,1,e) * s33_h
362 t1 = t1 + dxt(i,k) * wur(k,j,1)
363 t2 = t2 + dxt(i,k) * wvr(k,j,1)
364 t3 = t3 + dxt(i,k) * wwr(k,j,1)
379 t1 = t1 + dyt(j,l) * wus(i,l,k)
380 t2 = t2 + dyt(j,l) * wvs(i,l,k)
381 t3 = t3 + dyt(j,l) * wws(i,l,k)
383 au(i,j,k,e) = au(i,j,k,e) + t1
384 av(i,j,k,e) = av(i,j,k,e) + t2
385 aw(i,j,k,e) = aw(i,j,k,e) + t3
396 t1 = t1 + dzt(k,l) * wut(i,1,l)
397 t2 = t2 + dzt(k,l) * wvt(i,1,l)
398 t3 = t3 + dzt(k,l) * wwt(i,1,l)
400 au(i,1,k,e) = au(i,1,k,e) + t1
401 av(i,1,k,e) = av(i,1,k,e) + t2
402 aw(i,1,k,e) = aw(i,1,k,e) + t3