39 module subroutine opr_sx_opgrad(ux, uy, uz, u, coef)
40 type(coef_t),
intent(in) :: coef
41 real(kind=rp),
intent(inout) :: ux(coef%Xh%lxyz, coef%msh%nelv)
42 real(kind=rp),
intent(inout) :: uy(coef%Xh%lxyz, coef%msh%nelv)
43 real(kind=rp),
intent(inout) :: uz(coef%Xh%lxyz, coef%msh%nelv)
44 real(kind=rp),
intent(in) :: u(coef%Xh%lxyz, coef%msh%nelv)
46 associate(xh => coef%Xh, msh => coef%msh)
49 call sx_opgrad_lx18(ux, uy, uz, u, &
50 xh%dx, xh%dy, xh%dz, &
51 coef%drdx, coef%dsdx, coef%dtdx, &
52 coef%drdy, coef%dsdy, coef%dtdy, &
53 coef%drdz, coef%dsdz, coef%dtdz, &
56 call sx_opgrad_lx17(ux, uy, uz, u, &
57 xh%dx, xh%dy, xh%dz, &
58 coef%drdx, coef%dsdx, coef%dtdx, &
59 coef%drdy, coef%dsdy, coef%dtdy, &
60 coef%drdz, coef%dsdz, coef%dtdz, &
63 call sx_opgrad_lx16(ux, uy, uz, u, &
64 xh%dx, xh%dy, xh%dz, &
65 coef%drdx, coef%dsdx, coef%dtdx, &
66 coef%drdy, coef%dsdy, coef%dtdy, &
67 coef%drdz, coef%dsdz, coef%dtdz, &
70 call sx_opgrad_lx15(ux, uy, uz, u, &
71 xh%dx, xh%dy, xh%dz, &
72 coef%drdx, coef%dsdx, coef%dtdx, &
73 coef%drdy, coef%dsdy, coef%dtdy, &
74 coef%drdz, coef%dsdz, coef%dtdz, &
77 call sx_opgrad_lx14(ux, uy, uz, u, &
78 xh%dx, xh%dy, xh%dz, &
79 coef%drdx, coef%dsdx, coef%dtdx, &
80 coef%drdy, coef%dsdy, coef%dtdy, &
81 coef%drdz, coef%dsdz, coef%dtdz, &
84 call sx_opgrad_lx13(ux, uy, uz, u, &
85 xh%dx, xh%dy, xh%dz, &
86 coef%drdx, coef%dsdx, coef%dtdx, &
87 coef%drdy, coef%dsdy, coef%dtdy, &
88 coef%drdz, coef%dsdz, coef%dtdz, &
91 call sx_opgrad_lx12(ux, uy, uz, u, &
92 xh%dx, xh%dy, xh%dz, &
93 coef%drdx, coef%dsdx, coef%dtdx, &
94 coef%drdy, coef%dsdy, coef%dtdy, &
95 coef%drdz, coef%dsdz, coef%dtdz, &
98 call sx_opgrad_lx11(ux, uy, uz, u, &
99 xh%dx, xh%dy, xh%dz, &
100 coef%drdx, coef%dsdx, coef%dtdx, &
101 coef%drdy, coef%dsdy, coef%dtdy, &
102 coef%drdz, coef%dsdz, coef%dtdz, &
105 call sx_opgrad_lx10(ux, uy, uz, u, &
106 xh%dx, xh%dy, xh%dz, &
107 coef%drdx, coef%dsdx, coef%dtdx, &
108 coef%drdy, coef%dsdy, coef%dtdy, &
109 coef%drdz, coef%dsdz, coef%dtdz, &
112 call sx_opgrad_lx9(ux, uy, uz, u, &
113 xh%dx, xh%dy, xh%dz, &
114 coef%drdx, coef%dsdx, coef%dtdx, &
115 coef%drdy, coef%dsdy, coef%dtdy, &
116 coef%drdz, coef%dsdz, coef%dtdz, &
119 call sx_opgrad_lx8(ux, uy, uz, u, &
120 xh%dx, xh%dy, xh%dz, &
121 coef%drdx, coef%dsdx, coef%dtdx, &
122 coef%drdy, coef%dsdy, coef%dtdy, &
123 coef%drdz, coef%dsdz, coef%dtdz, &
126 call sx_opgrad_lx7(ux, uy, uz, u, &
127 xh%dx, xh%dy, xh%dz, &
128 coef%drdx, coef%dsdx, coef%dtdx, &
129 coef%drdy, coef%dsdy, coef%dtdy, &
130 coef%drdz, coef%dsdz, coef%dtdz, &
133 call sx_opgrad_lx6(ux, uy, uz, u, &
134 xh%dx, xh%dy, xh%dz, &
135 coef%drdx, coef%dsdx, coef%dtdx, &
136 coef%drdy, coef%dsdy, coef%dtdy, &
137 coef%drdz, coef%dsdz, coef%dtdz, &
140 call sx_opgrad_lx5(ux, uy, uz, u, &
141 xh%dx, xh%dy, xh%dz, &
142 coef%drdx, coef%dsdx, coef%dtdx, &
143 coef%drdy, coef%dsdy, coef%dtdy, &
144 coef%drdz, coef%dsdz, coef%dtdz, &
147 call sx_opgrad_lx4(ux, uy, uz, u, &
148 xh%dx, xh%dy, xh%dz, &
149 coef%drdx, coef%dsdx, coef%dtdx, &
150 coef%drdy, coef%dsdy, coef%dtdy, &
151 coef%drdz, coef%dsdz, coef%dtdz, &
154 call sx_opgrad_lx3(ux, uy, uz, u, &
155 xh%dx, xh%dy, xh%dz, &
156 coef%drdx, coef%dsdx, coef%dtdx, &
157 coef%drdy, coef%dsdy, coef%dtdy, &
158 coef%drdz, coef%dsdz, coef%dtdz, &
161 call sx_opgrad_lx2(ux, uy, uz, u, &
162 xh%dx, xh%dy, xh%dz, &
163 coef%drdx, coef%dsdx, coef%dtdx, &
164 coef%drdy, coef%dsdy, coef%dtdy, &
165 coef%drdz, coef%dsdz, coef%dtdz, &
168 call sx_opgrad_lx(ux, uy, uz, u, &
169 xh%dx, xh%dy, xh%dz, &
170 coef%drdx, coef%dsdx, coef%dtdx, &
171 coef%drdy, coef%dsdy, coef%dtdy, &
172 coef%drdz, coef%dsdz, coef%dtdz, &
173 xh%w3, msh%nelv, xh%lx)
177 end subroutine opr_sx_opgrad
179 subroutine sx_opgrad_lx(ux, uy, uz, u, dx, dy, dz, &
180 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n, lx)
181 integer,
intent(in) :: n, lx
182 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: ux, uy, uz
183 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: u
184 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
185 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
186 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
187 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
188 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
189 real(kind=rp) :: ur(lx, lx, lx, n)
190 real(kind=rp) :: us(lx, lx, lx, n)
191 real(kind=rp) :: ut(lx, lx, lx, n)
192 real(kind=rp) :: wr, ws, wt
193 integer :: e, i, j, k, jj, kk
196 do jj = 1, lx * lx * n
199 wr = wr + dx(i, kk) * u(kk, jj,1,1)
212 ws = ws + dy(j, kk) * u(i, kk, k,e)
227 wt = wt + dz(k, kk) * u(i, j, kk, e)
235 do i = 1, lx * lx * lx
237 ux(i,1,1,e) = w3(i,1,1) * &
238 ( drdx(i,1,1,e) * ur(i,1,1,e) &
239 + dsdx(i,1,1,e) * us(i,1,1,e) &
240 + dtdx(i,1,1,e) * ut(i,1,1,e))
242 uy(i,1,1,e) = w3(i,1,1) * &
243 ( dsdy(i,1,1,e) * us(i,1,1,e) &
244 + drdy(i,1,1,e) * ur(i,1,1,e) &
245 + dtdy(i,1,1,e) * ut(i,1,1,e) )
247 uz(i,1,1,e) = w3(i,1,1) * &
248 ( dtdz(i,1,1,e) * ut(i,1,1,e) &
249 + drdz(i,1,1,e) * ur(i,1,1,e) &
250 + dsdz(i,1,1,e) * us(i,1,1,e))
253 end subroutine sx_opgrad_lx
255 subroutine sx_opgrad_lx18(ux, uy, uz, u, dx, dy, dz, &
256 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
257 integer,
parameter :: lx = 18
258 integer,
intent(in) :: n
259 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: ux, uy, uz
260 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: u
261 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
262 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
263 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
264 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
265 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
266 real(kind=rp) :: ur(lx, lx, lx, n)
267 real(kind=rp) :: us(lx, lx, lx, n)
268 real(kind=rp) :: ut(lx, lx, lx, n)
269 real(kind=rp) :: wr, ws, wt
270 integer :: e, i, j, k, jj, kk
273 do jj = 1, lx * lx * n
276 wr = wr + dx(i, kk) * u(kk, jj,1,1)
289 ws = ws + dy(j, kk) * u(i, kk, k,e)
304 wt = wt + dz(k, kk) * u(i, j, kk,e)
312 do i = 1, lx * lx * lx
314 ux(i,1,1,e) = w3(i,1,1) * &
315 ( drdx(i,1,1,e) * ur(i,1,1,e) &
316 + dsdx(i,1,1,e) * us(i,1,1,e) &
317 + dtdx(i,1,1,e) * ut(i,1,1,e))
319 uy(i,1,1,e) = w3(i,1,1) * &
320 ( dsdy(i,1,1,e) * us(i,1,1,e) &
321 + drdy(i,1,1,e) * ur(i,1,1,e) &
322 + dtdy(i,1,1,e) * ut(i,1,1,e) )
324 uz(i,1,1,e) = w3(i,1,1) * &
325 ( dtdz(i,1,1,e) * ut(i,1,1,e) &
326 + drdz(i,1,1,e) * ur(i,1,1,e) &
327 + dsdz(i,1,1,e) * us(i,1,1,e))
330 end subroutine sx_opgrad_lx18
332 subroutine sx_opgrad_lx17(ux, uy, uz, u, dx, dy, dz, &
333 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
334 integer,
parameter :: lx = 17
335 integer,
intent(in) :: n
336 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: ux, uy, uz
337 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: u
338 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
339 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
340 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
341 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
342 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
343 real(kind=rp) :: ur(lx, lx, lx, n)
344 real(kind=rp) :: us(lx, lx, lx, n)
345 real(kind=rp) :: ut(lx, lx, lx, n)
346 real(kind=rp) :: wr, ws, wt
347 integer :: e, i, j, k, jj, kk
350 do jj = 1, lx * lx * n
353 wr = wr + dx(i, kk) * u(kk, jj, 1, 1)
366 ws = ws + dy(j, kk) * u(i, kk, k,e)
381 wt = wt + dz(k, kk) * u(i, j, kk, e)
389 do i = 1, lx * lx * lx
391 ux(i,1,1,e) = w3(i,1,1) * &
392 ( drdx(i,1,1,e) * ur(i,1,1,e) &
393 + dsdx(i,1,1,e) * us(i,1,1,e) &
394 + dtdx(i,1,1,e) * ut(i,1,1,e))
396 uy(i,1,1,e) = w3(i,1,1) * &
397 ( dsdy(i,1,1,e) * us(i,1,1,e) &
398 + drdy(i,1,1,e) * ur(i,1,1,e) &
399 + dtdy(i,1,1,e) * ut(i,1,1,e) )
401 uz(i,1,1,e) = w3(i,1,1) * &
402 ( dtdz(i,1,1,e) * ut(i,1,1,e) &
403 + drdz(i,1,1,e) * ur(i,1,1,e) &
404 + dsdz(i,1,1,e) * us(i,1,1,e))
407 end subroutine sx_opgrad_lx17
409 subroutine sx_opgrad_lx16(ux, uy, uz, u, dx, dy, dz, &
410 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
411 integer,
parameter :: lx = 16
412 integer,
intent(in) :: n
413 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: ux, uy, uz
414 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: u
415 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
416 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
417 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
418 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
419 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
420 real(kind=rp) :: ur(lx, lx, lx, n)
421 real(kind=rp) :: us(lx, lx, lx, n)
422 real(kind=rp) :: ut(lx, lx, lx, n)
423 real(kind=rp) :: wr, ws, wt
424 integer :: e, i, j, k, jj, kk
427 do jj = 1, lx * lx * n
430 wr = wr + dx(i, kk) * u(kk, jj,1,1)
443 ws = ws + dy(j, kk) * u(i, kk, k,e)
458 wt = wt + dz(k, kk) * u(i, j, kk,e)
466 do i = 1, lx * lx * lx
468 ux(i,1,1,e) = w3(i,1,1) * &
469 ( drdx(i,1,1,e) * ur(i,1,1,e) &
470 + dsdx(i,1,1,e) * us(i,1,1,e) &
471 + dtdx(i,1,1,e) * ut(i,1,1,e))
473 uy(i,1,1,e) = w3(i,1,1) * &
474 ( dsdy(i,1,1,e) * us(i,1,1,e) &
475 + drdy(i,1,1,e) * ur(i,1,1,e) &
476 + dtdy(i,1,1,e) * ut(i,1,1,e) )
478 uz(i,1,1,e) = w3(i,1,1) * &
479 ( dtdz(i,1,1,e) * ut(i,1,1,e) &
480 + drdz(i,1,1,e) * ur(i,1,1,e) &
481 + dsdz(i,1,1,e) * us(i,1,1,e))
484 end subroutine sx_opgrad_lx16
486 subroutine sx_opgrad_lx15(ux, uy, uz, u, dx, dy, dz, &
487 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
488 integer,
parameter :: lx = 15
489 integer,
intent(in) :: n
490 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: ux, uy, uz
491 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: u
492 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
493 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
494 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
495 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
496 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
497 real(kind=rp) :: ur(lx, lx, lx, n)
498 real(kind=rp) :: us(lx, lx, lx, n)
499 real(kind=rp) :: ut(lx, lx, lx, n)
500 real(kind=rp) :: wr, ws, wt
501 integer :: e, i, j, k, jj, kk
504 do jj = 1, lx * lx * n
507 wr = wr + dx(i, kk) * u(kk, jj, 1, 1)
520 ws = ws + dy(j, kk) * u(i, kk, k, e)
535 wt = wt + dz(k, kk) * u(i, j, kk, e)
543 do i = 1, lx * lx * lx
545 ux(i,1,1,e) = w3(i,1,1) * &
546 ( drdx(i,1,1,e) * ur(i,1,1,e) &
547 + dsdx(i,1,1,e) * us(i,1,1,e) &
548 + dtdx(i,1,1,e) * ut(i,1,1,e))
550 uy(i,1,1,e) = w3(i,1,1) * &
551 ( dsdy(i,1,1,e) * us(i,1,1,e) &
552 + drdy(i,1,1,e) * ur(i,1,1,e) &
553 + dtdy(i,1,1,e) * ut(i,1,1,e) )
555 uz(i,1,1,e) = w3(i,1,1) * &
556 ( dtdz(i,1,1,e) * ut(i,1,1,e) &
557 + drdz(i,1,1,e) * ur(i,1,1,e) &
558 + dsdz(i,1,1,e) * us(i,1,1,e))
561 end subroutine sx_opgrad_lx15
563 subroutine sx_opgrad_lx14(ux, uy, uz, u, dx, dy, dz, &
564 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
565 integer,
parameter :: lx = 14
566 integer,
intent(in) :: n
567 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: ux, uy, uz
568 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: u
569 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
570 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
571 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
572 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
573 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
574 real(kind=rp) :: ur(lx, lx, lx, n)
575 real(kind=rp) :: us(lx, lx, lx, n)
576 real(kind=rp) :: ut(lx, lx, lx, n)
577 real(kind=rp) :: wr, ws, wt
578 integer :: e, i, j, k, jj, kk
581 do jj = 1, lx * lx * n
584 wr = wr + dx(i, kk) * u(kk, jj,1,1)
597 ws = ws + dy(j, kk) * u(i, kk, k, e)
612 wt = wt + dz(k, kk) * u(i, j, kk,e)
620 do i = 1, lx * lx * lx
622 ux(i,1,1,e) = w3(i,1,1) * &
623 ( drdx(i,1,1,e) * ur(i,1,1,e) &
624 + dsdx(i,1,1,e) * us(i,1,1,e) &
625 + dtdx(i,1,1,e) * ut(i,1,1,e))
627 uy(i,1,1,e) = w3(i,1,1) * &
628 ( dsdy(i,1,1,e) * us(i,1,1,e) &
629 + drdy(i,1,1,e) * ur(i,1,1,e) &
630 + dtdy(i,1,1,e) * ut(i,1,1,e) )
632 uz(i,1,1,e) = w3(i,1,1) * &
633 ( dtdz(i,1,1,e) * ut(i,1,1,e) &
634 + drdz(i,1,1,e) * ur(i,1,1,e) &
635 + dsdz(i,1,1,e) * us(i,1,1,e))
638 end subroutine sx_opgrad_lx14
640 subroutine sx_opgrad_lx13(ux, uy, uz, u, dx, dy, dz, &
641 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
642 integer,
parameter :: lx = 13
643 integer,
intent(in) :: n
644 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: ux, uy, uz
645 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: u
646 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
647 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
648 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
649 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
650 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
651 real(kind=rp) :: ur(lx, lx, lx, n)
652 real(kind=rp) :: us(lx, lx, lx, n)
653 real(kind=rp) :: ut(lx, lx, lx, n)
654 real(kind=rp) :: wr, ws, wt
655 integer :: e, i, j, k, jj, kk
658 do jj = 1, lx * lx * n
661 wr = wr + dx(i, kk) * u(kk, jj,1,1)
674 ws = ws + dy(j, kk) * u(i, kk, k,e)
689 wt = wt + dz(k, kk) * u(i, j, kk,e)
697 do i = 1, lx * lx * lx
699 ux(i,1,1,e) = w3(i,1,1) * &
700 ( drdx(i,1,1,e) * ur(i,1,1,e) &
701 + dsdx(i,1,1,e) * us(i,1,1,e) &
702 + dtdx(i,1,1,e) * ut(i,1,1,e))
704 uy(i,1,1,e) = w3(i,1,1) * &
705 ( dsdy(i,1,1,e) * us(i,1,1,e) &
706 + drdy(i,1,1,e) * ur(i,1,1,e) &
707 + dtdy(i,1,1,e) * ut(i,1,1,e) )
709 uz(i,1,1,e) = w3(i,1,1) * &
710 ( dtdz(i,1,1,e) * ut(i,1,1,e) &
711 + drdz(i,1,1,e) * ur(i,1,1,e) &
712 + dsdz(i,1,1,e) * us(i,1,1,e))
715 end subroutine sx_opgrad_lx13
717 subroutine sx_opgrad_lx12(ux, uy, uz, u, dx, dy, dz, &
718 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
719 integer,
parameter :: lx = 12
720 integer,
intent(in) :: n
721 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: ux, uy, uz
722 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: u
723 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
724 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
725 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
726 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
727 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
728 real(kind=rp) :: ur(lx, lx, lx, n)
729 real(kind=rp) :: us(lx, lx, lx, n)
730 real(kind=rp) :: ut(lx, lx, lx, n)
731 real(kind=rp) :: wr, ws, wt
732 integer :: e, i, j, k, jj, kk
735 do jj = 1, lx * lx * n
738 wr = wr + dx(i, kk) * u(kk, jj,1,1)
751 ws = ws + dy(j, kk) * u(i, kk, k,e)
766 wt = wt + dz(k, kk) * u(i, j, kk,e)
774 do i = 1, lx * lx * lx
776 ux(i,1,1,e) = w3(i,1,1) * &
777 ( drdx(i,1,1,e) * ur(i,1,1,e) &
778 + dsdx(i,1,1,e) * us(i,1,1,e) &
779 + dtdx(i,1,1,e) * ut(i,1,1,e))
781 uy(i,1,1,e) = w3(i,1,1) * &
782 ( dsdy(i,1,1,e) * us(i,1,1,e) &
783 + drdy(i,1,1,e) * ur(i,1,1,e) &
784 + dtdy(i,1,1,e) * ut(i,1,1,e) )
786 uz(i,1,1,e) = w3(i,1,1) * &
787 ( dtdz(i,1,1,e) * ut(i,1,1,e) &
788 + drdz(i,1,1,e) * ur(i,1,1,e) &
789 + dsdz(i,1,1,e) * us(i,1,1,e))
792 end subroutine sx_opgrad_lx12
794 subroutine sx_opgrad_lx11(ux, uy, uz, u, dx, dy, dz, &
795 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
796 integer,
parameter :: lx = 11
797 integer,
intent(in) :: n
798 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: ux, uy, uz
799 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: u
800 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
801 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
802 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
803 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
804 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
805 real(kind=rp) :: ur(lx, lx, lx, n)
806 real(kind=rp) :: us(lx, lx, lx, n)
807 real(kind=rp) :: ut(lx, lx, lx, n)
808 real(kind=rp) :: wr, ws, wt
809 integer :: e, i, j, k, jj, kk
812 do jj = 1, lx * lx * n
815 wr = wr + dx(i, kk) * u(kk, jj,1,1)
828 ws = ws + dy(j, kk) * u(i, kk, k,e)
843 wt = wt + dz(k, kk) * u(i, j, kk,e)
851 do i = 1, lx * lx * lx
853 ux(i,1,1,e) = w3(i,1,1) * &
854 ( drdx(i,1,1,e) * ur(i,1,1,e) &
855 + dsdx(i,1,1,e) * us(i,1,1,e) &
856 + dtdx(i,1,1,e) * ut(i,1,1,e))
858 uy(i,1,1,e) = w3(i,1,1) * &
859 ( dsdy(i,1,1,e) * us(i,1,1,e) &
860 + drdy(i,1,1,e) * ur(i,1,1,e) &
861 + dtdy(i,1,1,e) * ut(i,1,1,e) )
863 uz(i,1,1,e) = w3(i,1,1) * &
864 ( dtdz(i,1,1,e) * ut(i,1,1,e) &
865 + drdz(i,1,1,e) * ur(i,1,1,e) &
866 + dsdz(i,1,1,e) * us(i,1,1,e))
869 end subroutine sx_opgrad_lx11
871 subroutine sx_opgrad_lx10(ux, uy, uz, u, dx, dy, dz, &
872 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
873 integer,
parameter :: lx = 10
874 integer,
intent(in) :: n
875 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: ux, uy, uz
876 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: u
877 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
878 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
879 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
880 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
881 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
882 real(kind=rp) :: ur(lx, lx, lx, n)
883 real(kind=rp) :: us(lx, lx, lx, n)
884 real(kind=rp) :: ut(lx, lx, lx, n)
885 real(kind=rp) :: wr, ws, wt
886 integer :: e, i, j, k, jj, kk
889 do jj = 1, lx * lx * n
892 wr = wr + dx(i, kk) * u(kk, jj,1,1)
905 ws = ws + dy(j, kk) * u(i, kk, k,e)
920 wt = wt + dz(k, kk) * u(i, j, kk,e)
928 do i = 1, lx * lx * lx
930 ux(i,1,1,e) = w3(i,1,1) * &
931 ( drdx(i,1,1,e) * ur(i,1,1,e) &
932 + dsdx(i,1,1,e) * us(i,1,1,e) &
933 + dtdx(i,1,1,e) * ut(i,1,1,e))
935 uy(i,1,1,e) = w3(i,1,1) * &
936 ( dsdy(i,1,1,e) * us(i,1,1,e) &
937 + drdy(i,1,1,e) * ur(i,1,1,e) &
938 + dtdy(i,1,1,e) * ut(i,1,1,e) )
940 uz(i,1,1,e) = w3(i,1,1) * &
941 ( dtdz(i,1,1,e) * ut(i,1,1,e) &
942 + drdz(i,1,1,e) * ur(i,1,1,e) &
943 + dsdz(i,1,1,e) * us(i,1,1,e))
946 end subroutine sx_opgrad_lx10
948 subroutine sx_opgrad_lx9(ux, uy, uz, u, dx, dy, dz, &
949 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
950 integer,
parameter :: lx = 9
951 integer,
intent(in) :: n
952 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: ux, uy, uz
953 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: u
954 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
955 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
956 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
957 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
958 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
959 real(kind=rp) :: ur(lx, lx, lx, n)
960 real(kind=rp) :: us(lx, lx, lx, n)
961 real(kind=rp) :: ut(lx, lx, lx, n)
962 real(kind=rp) :: wr, ws, wt
963 integer :: e, i, j, k, jj, kk
966 do jj = 1, lx * lx * n
969 wr = wr + dx(i, kk) * u(kk, jj,1,1)
982 ws = ws + dy(j, kk) * u(i, kk, k,e)
997 wt = wt + dz(k, kk) * u(i, j, kk,e)
1005 do i = 1, lx * lx * lx
1007 ux(i,1,1,e) = w3(i,1,1) * &
1008 ( drdx(i,1,1,e) * ur(i,1,1,e) &
1009 + dsdx(i,1,1,e) * us(i,1,1,e) &
1010 + dtdx(i,1,1,e) * ut(i,1,1,e))
1012 uy(i,1,1,e) = w3(i,1,1) * &
1013 ( dsdy(i,1,1,e) * us(i,1,1,e) &
1014 + drdy(i,1,1,e) * ur(i,1,1,e) &
1015 + dtdy(i,1,1,e) * ut(i,1,1,e) )
1017 uz(i,1,1,e) = w3(i,1,1) * &
1018 ( dtdz(i,1,1,e) * ut(i,1,1,e) &
1019 + drdz(i,1,1,e) * ur(i,1,1,e) &
1020 + dsdz(i,1,1,e) * us(i,1,1,e))
1023 end subroutine sx_opgrad_lx9
1025 subroutine sx_opgrad_lx8(ux, uy, uz, u, dx, dy, dz, &
1026 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
1027 integer,
parameter :: lx = 8
1028 integer,
intent(in) :: n
1029 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: ux, uy, uz
1030 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: u
1031 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
1032 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
1033 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
1034 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
1035 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1036 real(kind=rp) :: ur(lx, lx, lx, n)
1037 real(kind=rp) :: us(lx, lx, lx, n)
1038 real(kind=rp) :: ut(lx, lx, lx, n)
1039 real(kind=rp) :: wr, ws, wt
1040 integer :: e, i, j, k, jj, kk
1043 do jj = 1, lx * lx * n
1046 wr = wr + dx(i, kk) * u(kk, jj,1,1)
1059 ws = ws + dy(j, kk) * u(i, kk, k,e)
1074 wt = wt + dz(k, kk) * u(i, j, kk,e)
1082 do i = 1, lx * lx * lx
1084 ux(i,1,1,e) = w3(i,1,1) * &
1085 ( drdx(i,1,1,e) * ur(i,1,1,e) &
1086 + dsdx(i,1,1,e) * us(i,1,1,e) &
1087 + dtdx(i,1,1,e) * ut(i,1,1,e))
1089 uy(i,1,1,e) = w3(i,1,1) * &
1090 ( dsdy(i,1,1,e) * us(i,1,1,e) &
1091 + drdy(i,1,1,e) * ur(i,1,1,e) &
1092 + dtdy(i,1,1,e) * ut(i,1,1,e) )
1094 uz(i,1,1,e) = w3(i,1,1) * &
1095 ( dtdz(i,1,1,e) * ut(i,1,1,e) &
1096 + drdz(i,1,1,e) * ur(i,1,1,e) &
1097 + dsdz(i,1,1,e) * us(i,1,1,e))
1100 end subroutine sx_opgrad_lx8
1102 subroutine sx_opgrad_lx7(ux, uy, uz, u, dx, dy, dz, &
1103 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
1104 integer,
parameter :: lx = 7
1105 integer,
intent(in) :: n
1106 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: ux, uy, uz
1107 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: u
1108 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
1109 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
1110 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
1111 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
1112 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1113 real(kind=rp) :: ur(lx, lx, lx, n)
1114 real(kind=rp) :: us(lx, lx, lx, n)
1115 real(kind=rp) :: ut(lx, lx, lx, n)
1116 real(kind=rp) :: wr, ws, wt
1117 integer :: e, i, j, k, jj, kk
1120 do jj = 1, lx * lx * n
1123 wr = wr + dx(i, kk) * u(kk, jj,1,1)
1136 ws = ws + dy(j, kk) * u(i, kk, k,e)
1151 wt = wt + dz(k, kk) * u(i, j, kk,e)
1159 do i = 1, lx * lx * lx
1161 ux(i,1,1,e) = w3(i,1,1) * &
1162 ( drdx(i,1,1,e) * ur(i,1,1,e) &
1163 + dsdx(i,1,1,e) * us(i,1,1,e) &
1164 + dtdx(i,1,1,e) * ut(i,1,1,e))
1166 uy(i,1,1,e) = w3(i,1,1) * &
1167 ( dsdy(i,1,1,e) * us(i,1,1,e) &
1168 + drdy(i,1,1,e) * ur(i,1,1,e) &
1169 + dtdy(i,1,1,e) * ut(i,1,1,e) )
1171 uz(i,1,1,e) = w3(i,1,1) * &
1172 ( dtdz(i,1,1,e) * ut(i,1,1,e) &
1173 + drdz(i,1,1,e) * ur(i,1,1,e) &
1174 + dsdz(i,1,1,e) * us(i,1,1,e))
1177 end subroutine sx_opgrad_lx7
1179 subroutine sx_opgrad_lx6(ux, uy, uz, u, dx, dy, dz, &
1180 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
1181 integer,
parameter :: lx = 6
1182 integer,
intent(in) :: n
1183 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: ux, uy, uz
1184 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: u
1185 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
1186 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
1187 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
1188 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
1189 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1190 real(kind=rp) :: ur(lx, lx, lx, n)
1191 real(kind=rp) :: us(lx, lx, lx, n)
1192 real(kind=rp) :: ut(lx, lx, lx, n)
1193 real(kind=rp) :: wr, ws, wt
1194 integer :: e, i, j, k, jj, kk
1197 do jj = 1, lx * lx * n
1200 wr = wr + dx(i, kk) * u(kk, jj,1,1)
1213 ws = ws + dy(j, kk) * u(i, kk, k,e)
1228 wt = wt + dz(k, kk) * u(i, j, kk,e)
1236 do i = 1, lx * lx * lx
1238 ux(i,1,1,e) = w3(i,1,1) * &
1239 ( drdx(i,1,1,e) * ur(i,1,1,e) &
1240 + dsdx(i,1,1,e) * us(i,1,1,e) &
1241 + dtdx(i,1,1,e) * ut(i,1,1,e))
1243 uy(i,1,1,e) = w3(i,1,1) * &
1244 ( dsdy(i,1,1,e) * us(i,1,1,e) &
1245 + drdy(i,1,1,e) * ur(i,1,1,e) &
1246 + dtdy(i,1,1,e) * ut(i,1,1,e) )
1248 uz(i,1,1,e) = w3(i,1,1) * &
1249 ( dtdz(i,1,1,e) * ut(i,1,1,e) &
1250 + drdz(i,1,1,e) * ur(i,1,1,e) &
1251 + dsdz(i,1,1,e) * us(i,1,1,e))
1254 end subroutine sx_opgrad_lx6
1256 subroutine sx_opgrad_lx5(ux, uy, uz, u, dx, dy, dz, &
1257 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
1258 integer,
parameter :: lx = 5
1259 integer,
intent(in) :: n
1260 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: ux, uy, uz
1261 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: u
1262 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
1263 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
1264 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
1265 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
1266 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1267 real(kind=rp) :: ur(lx, lx, lx, n)
1268 real(kind=rp) :: us(lx, lx, lx, n)
1269 real(kind=rp) :: ut(lx, lx, lx, n)
1270 real(kind=rp) :: wr, ws, wt
1271 integer :: e, i, j, k, jj, kk
1274 do jj = 1, lx * lx * n
1277 wr = wr + dx(i, kk) * u(kk, jj,1,1)
1290 ws = ws + dy(j, kk) * u(i, kk, k,e)
1305 wt = wt + dz(k, kk) * u(i, j, kk,e)
1313 do i = 1, lx * lx * lx
1315 ux(i,1,1,e) = w3(i,1,1) * &
1316 ( drdx(i,1,1,e) * ur(i,1,1,e) &
1317 + dsdx(i,1,1,e) * us(i,1,1,e) &
1318 + dtdx(i,1,1,e) * ut(i,1,1,e))
1320 uy(i,1,1,e) = w3(i,1,1) * &
1321 ( dsdy(i,1,1,e) * us(i,1,1,e) &
1322 + drdy(i,1,1,e) * ur(i,1,1,e) &
1323 + dtdy(i,1,1,e) * ut(i,1,1,e) )
1325 uz(i,1,1,e) = w3(i,1,1) * &
1326 ( dtdz(i,1,1,e) * ut(i,1,1,e) &
1327 + drdz(i,1,1,e) * ur(i,1,1,e) &
1328 + dsdz(i,1,1,e) * us(i,1,1,e))
1331 end subroutine sx_opgrad_lx5
1333 subroutine sx_opgrad_lx4(ux, uy, uz, u, dx, dy, dz, &
1334 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
1335 integer,
parameter :: lx = 4
1336 integer,
intent(in) :: n
1337 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: ux, uy, uz
1338 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: u
1339 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
1340 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
1341 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
1342 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
1343 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1344 real(kind=rp) :: ur(lx, lx, lx, n)
1345 real(kind=rp) :: us(lx, lx, lx, n)
1346 real(kind=rp) :: ut(lx, lx, lx, n)
1347 real(kind=rp) :: wr, ws, wt
1348 integer :: e, i, j, k, jj, kk
1351 do jj = 1, lx * lx * n
1354 wr = wr + dx(i, kk) * u(kk, jj,1,1)
1367 ws = ws + dy(j, kk) * u(i, kk, k,e)
1382 wt = wt + dz(k, kk) * u(i, j, kk,e)
1390 do i = 1, lx * lx * lx
1392 ux(i,1,1,e) = w3(i,1,1) * &
1393 ( drdx(i,1,1,e) * ur(i,1,1,e) &
1394 + dsdx(i,1,1,e) * us(i,1,1,e) &
1395 + dtdx(i,1,1,e) * ut(i,1,1,e))
1397 uy(i,1,1,e) = w3(i,1,1) * &
1398 ( dsdy(i,1,1,e) * us(i,1,1,e) &
1399 + drdy(i,1,1,e) * ur(i,1,1,e) &
1400 + dtdy(i,1,1,e) * ut(i,1,1,e) )
1402 uz(i,1,1,e) = w3(i,1,1) * &
1403 ( dtdz(i,1,1,e) * ut(i,1,1,e) &
1404 + drdz(i,1,1,e) * ur(i,1,1,e) &
1405 + dsdz(i,1,1,e) * us(i,1,1,e))
1408 end subroutine sx_opgrad_lx4
1410 subroutine sx_opgrad_lx3(ux, uy, uz, u, dx, dy, dz, &
1411 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
1412 integer,
parameter :: lx = 3
1413 integer,
intent(in) :: n
1414 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: ux, uy, uz
1415 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: u
1416 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
1417 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
1418 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
1419 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
1420 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1421 real(kind=rp) :: ur(lx, lx, lx, n)
1422 real(kind=rp) :: us(lx, lx, lx, n)
1423 real(kind=rp) :: ut(lx, lx, lx, n)
1424 real(kind=rp) :: wr, ws, wt
1425 integer :: e, i, j, k, jj, kk
1428 do jj = 1, lx * lx * n
1431 wr = wr + dx(i, kk) * u(kk, jj,1,1)
1444 ws = ws + dy(j, kk) * u(i, kk, k,e)
1459 wt = wt + dz(k, kk) * u(i, j, kk,e)
1467 do i = 1, lx * lx * lx
1469 ux(i,1,1,e) = w3(i,1,1) * &
1470 ( drdx(i,1,1,e) * ur(i,1,1,e) &
1471 + dsdx(i,1,1,e) * us(i,1,1,e) &
1472 + dtdx(i,1,1,e) * ut(i,1,1,e))
1474 uy(i,1,1,e) = w3(i,1,1) * &
1475 ( dsdy(i,1,1,e) * us(i,1,1,e) &
1476 + drdy(i,1,1,e) * ur(i,1,1,e) &
1477 + dtdy(i,1,1,e) * ut(i,1,1,e) )
1479 uz(i,1,1,e) = w3(i,1,1) * &
1480 ( dtdz(i,1,1,e) * ut(i,1,1,e) &
1481 + drdz(i,1,1,e) * ur(i,1,1,e) &
1482 + dsdz(i,1,1,e) * us(i,1,1,e))
1485 end subroutine sx_opgrad_lx3
1487 subroutine sx_opgrad_lx2(ux, uy, uz, u, dx, dy, dz, &
1488 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, w3, n)
1489 integer,
parameter :: lx = 2
1490 integer,
intent(in) :: n
1491 real(kind=rp),
dimension(lx, lx, lx, n),
intent(inout) :: ux, uy, uz
1492 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: u
1493 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
1494 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdx, dsdx, dtdx
1495 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdy, dsdy, dtdy
1496 real(kind=rp),
dimension(lx, lx, lx, n),
intent(in) :: drdz, dsdz, dtdz
1497 real(kind=rp),
dimension(lx, lx, lx),
intent(in) :: w3
1498 real(kind=rp) :: ur(lx, lx, lx, n)
1499 real(kind=rp) :: us(lx, lx, lx, n)
1500 real(kind=rp) :: ut(lx, lx, lx, n)
1501 real(kind=rp) :: wr, ws, wt
1502 integer :: e, i, j, k, jj, kk
1505 do jj = 1, lx * lx * n
1508 wr = wr + dx(i, kk) * u(kk, jj,1,1)
1521 ws = ws + dy(j, kk) * u(i, kk, k,e)
1536 wt = wt + dz(k, kk) * u(i, j, kk,e)
1544 do i = 1, lx * lx * lx
1546 ux(i,1,1,e) = w3(i,1,1) * &
1547 ( drdx(i,1,1,e) * ur(i,1,1,e) &
1548 + dsdx(i,1,1,e) * us(i,1,1,e) &
1549 + dtdx(i,1,1,e) * ut(i,1,1,e))
1551 uy(i,1,1,e) = w3(i,1,1) * &
1552 ( dsdy(i,1,1,e) * us(i,1,1,e) &
1553 + drdy(i,1,1,e) * ur(i,1,1,e) &
1554 + dtdy(i,1,1,e) * ut(i,1,1,e) )
1556 uz(i,1,1,e) = w3(i,1,1) * &
1557 ( dtdz(i,1,1,e) * ut(i,1,1,e) &
1558 + drdz(i,1,1,e) * ur(i,1,1,e) &
1559 + dsdz(i,1,1,e) * us(i,1,1,e))
1562 end subroutine sx_opgrad_lx2
1564end submodule sx_opgrad
Operators SX-Aurora backend.