39 module subroutine opr_sx_conv1(du, u, vx, vy, vz, xh, coef, nelv)
40 type(space_t),
intent(in) :: Xh
41 type(coef_t),
intent(in) :: coef
42 integer,
intent(in) :: nelv
43 real(kind=rp),
intent(inout) :: du(xh%lxyz, nelv)
44 real(kind=rp),
intent(inout) :: u(xh%lx, xh%ly, xh%lz, nelv)
45 real(kind=rp),
intent(inout) :: vx(xh%lx, xh%ly, xh%lz, nelv)
46 real(kind=rp),
intent(inout) :: vy(xh%lx, xh%ly, xh%lz, nelv)
47 real(kind=rp),
intent(inout) :: vz(xh%lx, xh%ly, xh%lz, nelv)
51 call sx_conv1_lx14(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
52 coef%drdx, coef%dsdx, coef%dtdx, &
53 coef%drdy, coef%dsdy, coef%dtdy, &
54 coef%drdz, coef%dsdz, coef%dtdz, &
57 call sx_conv1_lx13(du, u, vx, vy, vz, 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_conv1_lx12(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
64 coef%drdx, coef%dsdx, coef%dtdx, &
65 coef%drdy, coef%dsdy, coef%dtdy, &
66 coef%drdz, coef%dsdz, coef%dtdz, &
69 call sx_conv1_lx11(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
70 coef%drdx, coef%dsdx, coef%dtdx, &
71 coef%drdy, coef%dsdy, coef%dtdy, &
72 coef%drdz, coef%dsdz, coef%dtdz, &
75 call sx_conv1_lx10(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
76 coef%drdx, coef%dsdx, coef%dtdx, &
77 coef%drdy, coef%dsdy, coef%dtdy, &
78 coef%drdz, coef%dsdz, coef%dtdz, &
81 call sx_conv1_lx9(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
82 coef%drdx, coef%dsdx, coef%dtdx, &
83 coef%drdy, coef%dsdy, coef%dtdy, &
84 coef%drdz, coef%dsdz, coef%dtdz, &
87 call sx_conv1_lx8(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
88 coef%drdx, coef%dsdx, coef%dtdx, &
89 coef%drdy, coef%dsdy, coef%dtdy, &
90 coef%drdz, coef%dsdz, coef%dtdz, &
93 call sx_conv1_lx7(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
94 coef%drdx, coef%dsdx, coef%dtdx, &
95 coef%drdy, coef%dsdy, coef%dtdy, &
96 coef%drdz, coef%dsdz, coef%dtdz, &
99 call sx_conv1_lx6(du, u, vx, vy, vz, 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_conv1_lx5(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
106 coef%drdx, coef%dsdx, coef%dtdx, &
107 coef%drdy, coef%dsdy, coef%dtdy, &
108 coef%drdz, coef%dsdz, coef%dtdz, &
111 call sx_conv1_lx4(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
112 coef%drdx, coef%dsdx, coef%dtdx, &
113 coef%drdy, coef%dsdy, coef%dtdy, &
114 coef%drdz, coef%dsdz, coef%dtdz, &
117 call sx_conv1_lx3(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
118 coef%drdx, coef%dsdx, coef%dtdx, &
119 coef%drdy, coef%dsdy, coef%dtdy, &
120 coef%drdz, coef%dsdz, coef%dtdz, &
123 call sx_conv1_lx2(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
124 coef%drdx, coef%dsdx, coef%dtdx, &
125 coef%drdy, coef%dsdy, coef%dtdy, &
126 coef%drdz, coef%dsdz, coef%dtdz, &
129 call sx_conv1_lx(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
130 coef%drdx, coef%dsdx, coef%dtdx, &
131 coef%drdy, coef%dsdy, coef%dtdy, &
132 coef%drdz, coef%dsdz, coef%dtdz, &
133 coef%jacinv, nelv, xh%lx)
136 end subroutine opr_sx_conv1
138 subroutine sx_conv1_lx(du, u, vx, vy, vz, dx, dy, dz, &
139 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
141 integer,
intent(in) :: nelv, lx
142 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(inout) :: du
143 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: u, vx, vy, vz
144 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdx, dsdx, dtdx
145 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdy, dsdy, dtdy
146 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdz, dsdz, dtdz
147 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: jacinv
148 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
149 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudr
150 real(kind=rp),
dimension(lx, lx, lx, nelv) :: duds
151 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudt
152 real(kind=rp) :: wr, ws, wt
153 integer :: e, i, j, k, jj, kk
156 do jj = 1, lx * lx * nelv
159 wr = wr + dx(i, kk) * u(kk, jj,1,1)
172 ws = ws + dy(j, kk) * u(i, kk,k,e)
187 wt = wt + dz(k, kk) * u(i,j, kk,e)
195 do i = 1, nelv * lx * lx * lx
196 du(i,1,1,1) = jacinv(i,1,1,1) * &
198 drdx(i,1,1,1)*dudr(i,1,1,1) &
199 + dsdx(i,1,1,1)*duds(i,1,1,1) &
200 + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
202 drdy(i,1,1,1)*dudr(i,1,1,1) &
203 + dsdy(i,1,1,1)*duds(i,1,1,1) &
204 + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
206 drdz(i,1,1,1)*dudr(i,1,1,1) &
207 + dsdz(i,1,1,1)*duds(i,1,1,1) &
208 + dtdz(i,1,1,1)*dudt(i,1,1,1)))
211 end subroutine sx_conv1_lx
213 subroutine sx_conv1_lx14(du, u, vx, vy, vz, dx, dy, dz, &
214 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
216 integer,
parameter :: lx = 14
217 integer,
intent(in) :: nelv
218 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(inout) :: du
219 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: u, vx, vy, vz
220 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdx, dsdx, dtdx
221 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdy, dsdy, dtdy
222 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdz, dsdz, dtdz
223 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: jacinv
224 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
225 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudr
226 real(kind=rp),
dimension(lx, lx, lx, nelv) :: duds
227 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudt
228 real(kind=rp) :: wr, ws, wt
229 integer :: e, i, j, k, jj, kk
232 do jj = 1, lx * lx * nelv
235 wr = wr + dx(i, kk) * u(kk, jj,1,1)
248 ws = ws + dy(j, kk) * u(i, kk,k,e)
263 wt = wt + dz(k, kk) * u(i,j, kk,e)
271 do i = 1, nelv * lx * lx * lx
272 du(i,1,1,1) = jacinv(i,1,1,1) * &
274 drdx(i,1,1,1)*dudr(i,1,1,1) &
275 + dsdx(i,1,1,1)*duds(i,1,1,1) &
276 + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
278 drdy(i,1,1,1)*dudr(i,1,1,1) &
279 + dsdy(i,1,1,1)*duds(i,1,1,1) &
280 + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
282 drdz(i,1,1,1)*dudr(i,1,1,1) &
283 + dsdz(i,1,1,1)*duds(i,1,1,1) &
284 + dtdz(i,1,1,1)*dudt(i,1,1,1)))
287 end subroutine sx_conv1_lx14
289 subroutine sx_conv1_lx13(du, u, vx, vy, vz, dx, dy, dz, &
290 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
292 integer,
parameter :: lx = 13
293 integer,
intent(in) :: nelv
294 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(inout) :: du
295 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: u, vx, vy, vz
296 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdx, dsdx, dtdx
297 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdy, dsdy, dtdy
298 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdz, dsdz, dtdz
299 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: jacinv
300 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
301 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudr
302 real(kind=rp),
dimension(lx, lx, lx, nelv) :: duds
303 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudt
304 real(kind=rp) :: wr, ws, wt
305 integer :: e, i, j, k, jj, kk
308 do jj = 1, lx * lx * nelv
311 wr = wr + dx(i, kk) * u(kk, jj,1,1)
324 ws = ws + dy(j, kk) * u(i, kk,k,e)
339 wt = wt + dz(k, kk) * u(i,j, kk,e)
347 do i = 1, nelv * lx * lx * lx
348 du(i,1,1,1) = jacinv(i,1,1,1) * &
350 drdx(i,1,1,1)*dudr(i,1,1,1) &
351 + dsdx(i,1,1,1)*duds(i,1,1,1) &
352 + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
354 drdy(i,1,1,1)*dudr(i,1,1,1) &
355 + dsdy(i,1,1,1)*duds(i,1,1,1) &
356 + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
358 drdz(i,1,1,1)*dudr(i,1,1,1) &
359 + dsdz(i,1,1,1)*duds(i,1,1,1) &
360 + dtdz(i,1,1,1)*dudt(i,1,1,1)))
363 end subroutine sx_conv1_lx13
365 subroutine sx_conv1_lx12(du, u, vx, vy, vz, dx, dy, dz, &
366 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
368 integer,
parameter :: lx = 12
369 integer,
intent(in) :: nelv
370 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(inout) :: du
371 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: u, vx, vy, vz
372 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdx, dsdx, dtdx
373 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdy, dsdy, dtdy
374 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdz, dsdz, dtdz
375 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: jacinv
376 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
377 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudr
378 real(kind=rp),
dimension(lx, lx, lx, nelv) :: duds
379 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudt
380 real(kind=rp) :: wr, ws, wt
381 integer :: e, i, j, k, jj, kk
384 do jj = 1, lx * lx * nelv
387 wr = wr + dx(i, kk) * u(kk, jj,1,1)
400 ws = ws + dy(j, kk) * u(i, kk,k,e)
415 wt = wt + dz(k, kk) * u(i,j, kk,e)
423 do i = 1, nelv * lx * lx * lx
424 du(i,1,1,1) = jacinv(i,1,1,1) * &
426 drdx(i,1,1,1)*dudr(i,1,1,1) &
427 + dsdx(i,1,1,1)*duds(i,1,1,1) &
428 + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
430 drdy(i,1,1,1)*dudr(i,1,1,1) &
431 + dsdy(i,1,1,1)*duds(i,1,1,1) &
432 + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
434 drdz(i,1,1,1)*dudr(i,1,1,1) &
435 + dsdz(i,1,1,1)*duds(i,1,1,1) &
436 + dtdz(i,1,1,1)*dudt(i,1,1,1)))
439 end subroutine sx_conv1_lx12
441 subroutine sx_conv1_lx11(du, u, vx, vy, vz, dx, dy, dz, &
442 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
444 integer,
parameter :: lx = 11
445 integer,
intent(in) :: nelv
446 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(inout) :: du
447 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: u, vx, vy, vz
448 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdx, dsdx, dtdx
449 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdy, dsdy, dtdy
450 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdz, dsdz, dtdz
451 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: jacinv
452 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
453 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudr
454 real(kind=rp),
dimension(lx, lx, lx, nelv) :: duds
455 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudt
456 real(kind=rp) :: wr, ws, wt
457 integer :: e, i, j, k, jj, kk
460 do jj = 1, lx * lx * nelv
463 wr = wr + dx(i, kk) * u(kk, jj,1,1)
476 ws = ws + dy(j, kk) * u(i, kk,k,e)
491 wt = wt + dz(k, kk) * u(i,j, kk,e)
499 do i = 1, nelv * lx * lx * lx
500 du(i,1,1,1) = jacinv(i,1,1,1) * &
502 drdx(i,1,1,1)*dudr(i,1,1,1) &
503 + dsdx(i,1,1,1)*duds(i,1,1,1) &
504 + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
506 drdy(i,1,1,1)*dudr(i,1,1,1) &
507 + dsdy(i,1,1,1)*duds(i,1,1,1) &
508 + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
510 drdz(i,1,1,1)*dudr(i,1,1,1) &
511 + dsdz(i,1,1,1)*duds(i,1,1,1) &
512 + dtdz(i,1,1,1)*dudt(i,1,1,1)))
515 end subroutine sx_conv1_lx11
517 subroutine sx_conv1_lx10(du, u, vx, vy, vz, dx, dy, dz, &
518 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
520 integer,
parameter :: lx = 10
521 integer,
intent(in) :: nelv
522 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(inout) :: du
523 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: u, vx, vy, vz
524 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdx, dsdx, dtdx
525 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdy, dsdy, dtdy
526 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdz, dsdz, dtdz
527 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: jacinv
528 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
529 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudr
530 real(kind=rp),
dimension(lx, lx, lx, nelv) :: duds
531 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudt
532 real(kind=rp) :: wr, ws, wt
533 integer :: e, i, j, k, jj, kk
536 do jj = 1, lx * lx * nelv
539 wr = wr + dx(i, kk) * u(kk, jj,1,1)
552 ws = ws + dy(j, kk) * u(i, kk,k,e)
567 wt = wt + dz(k, kk) * u(i,j, kk,e)
575 do i = 1, nelv * lx * lx * lx
576 du(i,1,1,1) = jacinv(i,1,1,1) * &
578 drdx(i,1,1,1)*dudr(i,1,1,1) &
579 + dsdx(i,1,1,1)*duds(i,1,1,1) &
580 + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
582 drdy(i,1,1,1)*dudr(i,1,1,1) &
583 + dsdy(i,1,1,1)*duds(i,1,1,1) &
584 + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
586 drdz(i,1,1,1)*dudr(i,1,1,1) &
587 + dsdz(i,1,1,1)*duds(i,1,1,1) &
588 + dtdz(i,1,1,1)*dudt(i,1,1,1)))
591 end subroutine sx_conv1_lx10
593 subroutine sx_conv1_lx9(du, u, vx, vy, vz, dx, dy, dz, &
594 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
596 integer,
parameter :: lx = 9
597 integer,
intent(in) :: nelv
598 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(inout) :: du
599 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: u, vx, vy, vz
600 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdx, dsdx, dtdx
601 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdy, dsdy, dtdy
602 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdz, dsdz, dtdz
603 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: jacinv
604 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
605 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudr
606 real(kind=rp),
dimension(lx, lx, lx, nelv) :: duds
607 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudt
608 real(kind=rp) :: wr, ws, wt
609 integer :: e, i, j, k, jj, kk
612 do jj = 1, lx * lx * nelv
615 wr = wr + dx(i, kk) * u(kk, jj,1,1)
628 ws = ws + dy(j, kk) * u(i, kk,k,e)
643 wt = wt + dz(k, kk) * u(i,j, kk,e)
651 do i = 1, nelv * lx * lx * lx
652 du(i,1,1,1) = jacinv(i,1,1,1) * &
654 drdx(i,1,1,1)*dudr(i,1,1,1) &
655 + dsdx(i,1,1,1)*duds(i,1,1,1) &
656 + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
658 drdy(i,1,1,1)*dudr(i,1,1,1) &
659 + dsdy(i,1,1,1)*duds(i,1,1,1) &
660 + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
662 drdz(i,1,1,1)*dudr(i,1,1,1) &
663 + dsdz(i,1,1,1)*duds(i,1,1,1) &
664 + dtdz(i,1,1,1)*dudt(i,1,1,1)))
667 end subroutine sx_conv1_lx9
669 subroutine sx_conv1_lx8(du, u, vx, vy, vz, dx, dy, dz, &
670 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
672 integer,
parameter :: lx = 8
673 integer,
intent(in) :: nelv
674 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(inout) :: du
675 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: u, vx, vy, vz
676 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdx, dsdx, dtdx
677 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdy, dsdy, dtdy
678 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdz, dsdz, dtdz
679 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: jacinv
680 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
681 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudr
682 real(kind=rp),
dimension(lx, lx, lx, nelv) :: duds
683 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudt
684 real(kind=rp) :: wr, ws, wt
685 integer :: e, i, j, k, jj, kk
688 do jj = 1, lx * lx * nelv
691 wr = wr + dx(i, kk) * u(kk, jj,1,1)
704 ws = ws + dy(j, kk) * u(i, kk,k,e)
719 wt = wt + dz(k, kk) * u(i,j, kk,e)
727 do i = 1, nelv * lx * lx * lx
728 du(i,1,1,1) = jacinv(i,1,1,1) * &
730 drdx(i,1,1,1)*dudr(i,1,1,1) &
731 + dsdx(i,1,1,1)*duds(i,1,1,1) &
732 + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
734 drdy(i,1,1,1)*dudr(i,1,1,1) &
735 + dsdy(i,1,1,1)*duds(i,1,1,1) &
736 + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
738 drdz(i,1,1,1)*dudr(i,1,1,1) &
739 + dsdz(i,1,1,1)*duds(i,1,1,1) &
740 + dtdz(i,1,1,1)*dudt(i,1,1,1)))
743 end subroutine sx_conv1_lx8
745 subroutine sx_conv1_lx7(du, u, vx, vy, vz, dx, dy, dz, &
746 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
748 integer,
parameter :: lx = 7
749 integer,
intent(in) :: nelv
750 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(inout) :: du
751 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: u, vx, vy, vz
752 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdx, dsdx, dtdx
753 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdy, dsdy, dtdy
754 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdz, dsdz, dtdz
755 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: jacinv
756 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
757 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudr
758 real(kind=rp),
dimension(lx, lx, lx, nelv) :: duds
759 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudt
760 real(kind=rp) :: wr, ws, wt
761 integer :: e, i, j, k, jj, kk
764 do jj = 1, lx * lx * nelv
767 wr = wr + dx(i, kk) * u(kk, jj,1,1)
780 ws = ws + dy(j, kk) * u(i, kk,k,e)
795 wt = wt + dz(k, kk) * u(i,j, kk,e)
803 do i = 1, nelv * lx * lx * lx
804 du(i,1,1,1) = jacinv(i,1,1,1) * &
806 drdx(i,1,1,1)*dudr(i,1,1,1) &
807 + dsdx(i,1,1,1)*duds(i,1,1,1) &
808 + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
810 drdy(i,1,1,1)*dudr(i,1,1,1) &
811 + dsdy(i,1,1,1)*duds(i,1,1,1) &
812 + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
814 drdz(i,1,1,1)*dudr(i,1,1,1) &
815 + dsdz(i,1,1,1)*duds(i,1,1,1) &
816 + dtdz(i,1,1,1)*dudt(i,1,1,1)))
819 end subroutine sx_conv1_lx7
821 subroutine sx_conv1_lx6(du, u, vx, vy, vz, dx, dy, dz, &
822 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
824 integer,
parameter :: lx = 6
825 integer,
intent(in) :: nelv
826 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(inout) :: du
827 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: u, vx, vy, vz
828 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdx, dsdx, dtdx
829 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdy, dsdy, dtdy
830 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdz, dsdz, dtdz
831 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: jacinv
832 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
833 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudr
834 real(kind=rp),
dimension(lx, lx, lx, nelv) :: duds
835 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudt
836 real(kind=rp) :: wr, ws, wt
837 integer :: e, i, j, k, jj, kk
840 do jj = 1, lx * lx * nelv
843 wr = wr + dx(i, kk) * u(kk, jj,1,1)
856 ws = ws + dy(j, kk) * u(i, kk,k,e)
871 wt = wt + dz(k, kk) * u(i,j, kk,e)
879 do i = 1, nelv * lx * lx * lx
880 du(i,1,1,1) = jacinv(i,1,1,1) * &
882 drdx(i,1,1,1)*dudr(i,1,1,1) &
883 + dsdx(i,1,1,1)*duds(i,1,1,1) &
884 + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
886 drdy(i,1,1,1)*dudr(i,1,1,1) &
887 + dsdy(i,1,1,1)*duds(i,1,1,1) &
888 + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
890 drdz(i,1,1,1)*dudr(i,1,1,1) &
891 + dsdz(i,1,1,1)*duds(i,1,1,1) &
892 + dtdz(i,1,1,1)*dudt(i,1,1,1)))
895 end subroutine sx_conv1_lx6
897 subroutine sx_conv1_lx5(du, u, vx, vy, vz, dx, dy, dz, &
898 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
900 integer,
parameter :: lx = 5
901 integer,
intent(in) :: nelv
902 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(inout) :: du
903 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: u, vx, vy, vz
904 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdx, dsdx, dtdx
905 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdy, dsdy, dtdy
906 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdz, dsdz, dtdz
907 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: jacinv
908 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
909 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudr
910 real(kind=rp),
dimension(lx, lx, lx, nelv) :: duds
911 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudt
912 real(kind=rp) :: wr, ws, wt
913 integer :: e, i, j, k, jj, kk
916 do jj = 1, lx * lx * nelv
919 wr = wr + dx(i, kk) * u(kk, jj,1,1)
932 ws = ws + dy(j, kk) * u(i, kk,k,e)
947 wt = wt + dz(k, kk) * u(i,j, kk,e)
955 do i = 1, nelv * lx * lx * lx
956 du(i,1,1,1) = jacinv(i,1,1,1) * &
958 drdx(i,1,1,1)*dudr(i,1,1,1) &
959 + dsdx(i,1,1,1)*duds(i,1,1,1) &
960 + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
962 drdy(i,1,1,1)*dudr(i,1,1,1) &
963 + dsdy(i,1,1,1)*duds(i,1,1,1) &
964 + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
966 drdz(i,1,1,1)*dudr(i,1,1,1) &
967 + dsdz(i,1,1,1)*duds(i,1,1,1) &
968 + dtdz(i,1,1,1)*dudt(i,1,1,1)))
971 end subroutine sx_conv1_lx5
973 subroutine sx_conv1_lx4(du, u, vx, vy, vz, dx, dy, dz, &
974 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
976 integer,
parameter :: lx = 4
977 integer,
intent(in) :: nelv
978 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(inout) :: du
979 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: u, vx, vy, vz
980 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdx, dsdx, dtdx
981 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdy, dsdy, dtdy
982 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdz, dsdz, dtdz
983 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: jacinv
984 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
985 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudr
986 real(kind=rp),
dimension(lx, lx, lx, nelv) :: duds
987 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudt
988 real(kind=rp) :: wr, ws, wt
989 integer :: e, i, j, k, jj, kk
992 do jj = 1, lx * lx * nelv
995 wr = wr + dx(i, kk) * u(kk, jj,1,1)
1008 ws = ws + dy(j, kk) * u(i, kk,k,e)
1023 wt = wt + dz(k, kk) * u(i,j, kk,e)
1031 do i = 1, nelv * lx * lx * lx
1032 du(i,1,1,1) = jacinv(i,1,1,1) * &
1034 drdx(i,1,1,1)*dudr(i,1,1,1) &
1035 + dsdx(i,1,1,1)*duds(i,1,1,1) &
1036 + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
1038 drdy(i,1,1,1)*dudr(i,1,1,1) &
1039 + dsdy(i,1,1,1)*duds(i,1,1,1) &
1040 + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
1042 drdz(i,1,1,1)*dudr(i,1,1,1) &
1043 + dsdz(i,1,1,1)*duds(i,1,1,1) &
1044 + dtdz(i,1,1,1)*dudt(i,1,1,1)))
1047 end subroutine sx_conv1_lx4
1049 subroutine sx_conv1_lx3(du, u, vx, vy, vz, dx, dy, dz, &
1050 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
1052 integer,
parameter :: lx = 3
1053 integer,
intent(in) :: nelv
1054 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(inout) :: du
1055 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: u, vx, vy, vz
1056 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdx, dsdx, dtdx
1057 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdy, dsdy, dtdy
1058 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdz, dsdz, dtdz
1059 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: jacinv
1060 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
1061 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudr
1062 real(kind=rp),
dimension(lx, lx, lx, nelv) :: duds
1063 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudt
1064 real(kind=rp) :: wr, ws, wt
1065 integer :: e, i, j, k, jj, kk
1068 do jj = 1, lx * lx * nelv
1071 wr = wr + dx(i, kk) * u(kk, jj,1,1)
1073 dudr(i, jj,1,1) = wr
1084 ws = ws + dy(j, kk) * u(i, kk,k,e)
1099 wt = wt + dz(k, kk) * u(i,j, kk,e)
1107 do i = 1, nelv * lx * lx * lx
1108 du(i,1,1,1) = jacinv(i,1,1,1) * &
1110 drdx(i,1,1,1)*dudr(i,1,1,1) &
1111 + dsdx(i,1,1,1)*duds(i,1,1,1) &
1112 + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
1114 drdy(i,1,1,1)*dudr(i,1,1,1) &
1115 + dsdy(i,1,1,1)*duds(i,1,1,1) &
1116 + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
1118 drdz(i,1,1,1)*dudr(i,1,1,1) &
1119 + dsdz(i,1,1,1)*duds(i,1,1,1) &
1120 + dtdz(i,1,1,1)*dudt(i,1,1,1)))
1123 end subroutine sx_conv1_lx3
1125 subroutine sx_conv1_lx2(du, u, vx, vy, vz, dx, dy, dz, &
1126 drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
1128 integer,
parameter :: lx = 2
1129 integer,
intent(in) :: nelv
1130 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(inout) :: du
1131 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: u, vx, vy, vz
1132 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdx, dsdx, dtdx
1133 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdy, dsdy, dtdy
1134 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: drdz, dsdz, dtdz
1135 real(kind=rp),
dimension(lx, lx, lx, nelv),
intent(in) :: jacinv
1136 real(kind=rp),
dimension(lx, lx),
intent(in) :: dx, dy, dz
1137 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudr
1138 real(kind=rp),
dimension(lx, lx, lx, nelv) :: duds
1139 real(kind=rp),
dimension(lx, lx, lx, nelv) :: dudt
1140 real(kind=rp) :: wr, ws, wt
1141 integer :: e, i, j, k, jj, kk
1144 do jj = 1, lx * lx * nelv
1147 wr = wr + dx(i, kk) * u(kk, jj,1,1)
1149 dudr(i, jj,1,1) = wr
1160 ws = ws + dy(j, kk) * u(i, kk,k,e)
1175 wt = wt + dz(k, kk) * u(i,j, kk,e)
1183 do i = 1, nelv * lx * lx * lx
1184 du(i,1,1,1) = jacinv(i,1,1,1) * &
1186 drdx(i,1,1,1)*dudr(i,1,1,1) &
1187 + dsdx(i,1,1,1)*duds(i,1,1,1) &
1188 + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
1190 drdy(i,1,1,1)*dudr(i,1,1,1) &
1191 + dsdy(i,1,1,1)*duds(i,1,1,1) &
1192 + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
1194 drdz(i,1,1,1)*dudr(i,1,1,1) &
1195 + dsdz(i,1,1,1)*duds(i,1,1,1) &
1196 + dtdz(i,1,1,1)*dudt(i,1,1,1)))
1199 end subroutine sx_conv1_lx2
1201end submodule sx_conv1
Operators SX-Aurora backend.