51 module subroutine ax_helm_compute_vector(this, au, av, aw, &
52 u, v, w, coef, msh, xh)
53 class(ax_helm_cpu_t),
intent(in) :: this
54 type(mesh_t),
intent(in) :: msh
55 type(space_t),
intent(in) :: Xh
56 type(coef_t),
intent(in) :: coef
57 real(kind=rp),
intent(inout) :: au(xh%lx, xh%ly, xh%lz, msh%nelv)
58 real(kind=rp),
intent(inout) :: av(xh%lx, xh%ly, xh%lz, msh%nelv)
59 real(kind=rp),
intent(inout) :: aw(xh%lx, xh%ly, xh%lz, msh%nelv)
60 real(kind=rp),
intent(in) :: u(xh%lx, xh%ly, xh%lz, msh%nelv)
61 real(kind=rp),
intent(in) :: v(xh%lx, xh%ly, xh%lz, msh%nelv)
62 real(kind=rp),
intent(in) :: w(xh%lx, xh%ly, xh%lz, msh%nelv)
68 call ax_helm_vector_lx14(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
69 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%G11, coef%G22, coef%G33, &
70 coef%G12, coef%G13, coef%G23, msh%nelv)
72 call ax_helm_vector_lx13(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
73 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%G11, coef%G22, coef%G33, &
74 coef%G12, coef%G13, coef%G23, msh%nelv)
76 call ax_helm_vector_lx12(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
77 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%G11, coef%G22, coef%G33, &
78 coef%G12, coef%G13, coef%G23, msh%nelv)
80 call ax_helm_vector_lx11(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
81 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%G11, coef%G22, coef%G33, &
82 coef%G12, coef%G13, coef%G23, msh%nelv)
84 call ax_helm_vector_lx10(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
85 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%G11, coef%G22, coef%G33, &
86 coef%G12, coef%G13, coef%G23, msh%nelv)
88 call ax_helm_vector_lx9(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
89 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%G11, coef%G22, coef%G33, &
90 coef%G12, coef%G13, coef%G23, msh%nelv)
92 call ax_helm_vector_lx8(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
93 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%G11, coef%G22, coef%G33, &
94 coef%G12, coef%G13, coef%G23, msh%nelv)
96 call ax_helm_vector_lx7(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
97 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%G11, coef%G22, coef%G33, &
98 coef%G12, coef%G13, coef%G23, msh%nelv)
100 call ax_helm_vector_lx6(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
101 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%G11, coef%G22, coef%G33, &
102 coef%G12, coef%G13, coef%G23, msh%nelv)
104 call ax_helm_vector_lx5(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
105 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%G11, coef%G22, coef%G33, &
106 coef%G12, coef%G13, coef%G23, msh%nelv)
108 call ax_helm_vector_lx4(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
109 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%G11, coef%G22, coef%G33, &
110 coef%G12, coef%G13, coef%G23, msh%nelv)
112 call ax_helm_vector_lx3(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
113 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%G11, coef%G22, coef%G33, &
114 coef%G12, coef%G13, coef%G23, msh%nelv)
116 call ax_helm_vector_lx2(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
117 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%G11, coef%G22, coef%G33, &
118 coef%G12, coef%G13, coef%G23, msh%nelv)
120 call ax_helm_vector_lx(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
121 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%G11, coef%G22, coef%G33, &
122 coef%G12, coef%G13, coef%G23, msh%nelv, xh%lx)
127 do i = 1, coef%dof%size()
128 au(i,1,1,1) = au(i,1,1,1) + &
129 coef%h2(i,1,1,1) * coef%B(i,1,1,1) * u(i,1,1,1)
130 av(i,1,1,1) = av(i,1,1,1) + &
131 coef%h2(i,1,1,1) * coef%B(i,1,1,1) * v(i,1,1,1)
132 aw(i,1,1,1) = aw(i,1,1,1) + &
133 coef%h2(i,1,1,1) * coef%B(i,1,1,1) * w(i,1,1,1)
139 end subroutine ax_helm_compute_vector
153 subroutine ax_helm_vector_lx(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
154 h1, G11, G22, G33, G12, G13, G23, n, lx)
155 integer,
intent(in) :: n, lx
156 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
157 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
158 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
159 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
160 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
161 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
162 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
163 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
164 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
165 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
166 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
167 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
168 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
169 real(kind=rp),
intent(in) :: dx(lx, lx)
170 real(kind=rp),
intent(in) :: dy(lx, lx)
171 real(kind=rp),
intent(in) :: dz(lx, lx)
172 real(kind=rp),
intent(in) :: dxt(lx, lx)
173 real(kind=rp),
intent(in) :: dyt(lx, lx)
174 real(kind=rp),
intent(in) :: dzt(lx, lx)
175 real(kind=rp) :: ur(lx, lx, lx)
176 real(kind=rp) :: us(lx, lx, lx)
177 real(kind=rp) :: ut(lx, lx, lx)
178 real(kind=rp) :: vr(lx, lx, lx)
179 real(kind=rp) :: vs(lx, lx, lx)
180 real(kind=rp) :: vt(lx, lx, lx)
181 real(kind=rp) :: wr(lx, lx, lx)
182 real(kind=rp) :: ws(lx, lx, lx)
183 real(kind=rp) :: wt(lx, lx, lx)
184 real(kind=rp) :: wur(lx, lx, lx)
185 real(kind=rp) :: wvr(lx, lx, lx)
186 real(kind=rp) :: wwr(lx, lx, lx)
187 real(kind=rp) :: wus(lx, lx, lx)
188 real(kind=rp) :: wvs(lx, lx, lx)
189 real(kind=rp) :: wws(lx, lx, lx)
190 real(kind=rp) :: wut(lx, lx, lx)
191 real(kind=rp) :: wvt(lx, lx, lx)
192 real(kind=rp) :: wwt(lx, lx, lx)
193 real(kind=rp) :: t1, t2, t3
194 integer :: e, i, j, k, l
204 t1 = t1 + dx(i,k) * u(k,j,1,e)
205 t2 = t2 + dx(i,k) * v(k,j,1,e)
206 t3 = t3 + dx(i,k) * w(k,j,1,e)
221 t1 = t1 + dy(j,l) * u(i,l,k,e)
222 t2 = t2 + dy(j,l) * v(i,l,k,e)
223 t3 = t3 + dy(j,l) * w(i,l,k,e)
238 t1 = t1 + dz(k,l) * u(i,1,l,e)
239 t2 = t2 + dz(k,l) * v(i,1,l,e)
240 t3 = t3 + dz(k,l) * w(i,1,l,e)
249 ur(i,1,1) = h1(i,1,1,e) &
250 * ( g11(i,1,1,e) * wur(i,1,1) &
251 + g12(i,1,1,e) * wus(i,1,1) &
252 + g13(i,1,1,e) * wut(i,1,1) )
253 us(i,1,1) = h1(i,1,1,e) &
254 * ( g12(i,1,1,e) * wur(i,1,1) &
255 + g22(i,1,1,e) * wus(i,1,1) &
256 + g23(i,1,1,e) * wut(i,1,1) )
257 ut(i,1,1) = h1(i,1,1,e) &
258 * ( g13(i,1,1,e) * wur(i,1,1) &
259 + g23(i,1,1,e) * wus(i,1,1) &
260 + g33(i,1,1,e) * wut(i,1,1) )
262 vr(i,1,1) = h1(i,1,1,e) &
263 * ( g11(i,1,1,e) * wvr(i,1,1) &
264 + g12(i,1,1,e) * wvs(i,1,1) &
265 + g13(i,1,1,e) * wvt(i,1,1) )
266 vs(i,1,1) = h1(i,1,1,e) &
267 * ( g12(i,1,1,e) * wvr(i,1,1) &
268 + g22(i,1,1,e) * wvs(i,1,1) &
269 + g23(i,1,1,e) * wvt(i,1,1) )
270 vt(i,1,1) = h1(i,1,1,e) &
271 * ( g13(i,1,1,e) * wvr(i,1,1) &
272 + g23(i,1,1,e) * wvs(i,1,1) &
273 + g33(i,1,1,e) * wvt(i,1,1) )
275 wr(i,1,1) = h1(i,1,1,e) &
276 * ( g11(i,1,1,e) * wwr(i,1,1) &
277 + g12(i,1,1,e) * wws(i,1,1) &
278 + g13(i,1,1,e) * wwt(i,1,1) )
279 ws(i,1,1) = h1(i,1,1,e) &
280 * ( g12(i,1,1,e) * wwr(i,1,1) &
281 + g22(i,1,1,e) * wws(i,1,1) &
282 + g23(i,1,1,e) * wwt(i,1,1) )
283 wt(i,1,1) = h1(i,1,1,e) &
284 * ( g13(i,1,1,e) * wwr(i,1,1) &
285 + g23(i,1,1,e) * wws(i,1,1) &
286 + g33(i,1,1,e) * wwt(i,1,1) )
295 t1 = t1 + dxt(i,k) * ur(k,j,1)
296 t2 = t2 + dxt(i,k) * vr(k,j,1)
297 t3 = t3 + dxt(i,k) * wr(k,j,1)
312 t1 = t1 + dyt(j,l) * us(i,l,k)
313 t2 = t2 + dyt(j,l) * vs(i,l,k)
314 t3 = t3 + dyt(j,l) * ws(i,l,k)
316 au(i,j,k,e) = au(i,j,k,e) + t1
317 av(i,j,k,e) = av(i,j,k,e) + t2
318 aw(i,j,k,e) = aw(i,j,k,e) + t3
329 t1 = t1 + dzt(k,l) * ut(i,1,l)
330 t2 = t2 + dzt(k,l) * vt(i,1,l)
331 t3 = t3 + dzt(k,l) * wt(i,1,l)
333 au(i,1,k,e) = au(i,1,k,e) + t1
334 av(i,1,k,e) = av(i,1,k,e) + t2
335 aw(i,1,k,e) = aw(i,1,k,e) + t3
341 end subroutine ax_helm_vector_lx
343 subroutine ax_helm_vector_lx14(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
344 h1, G11, G22, G33, G12, G13, G23, n)
345 integer,
parameter :: lx = 14
346 integer,
intent(in) :: n
347 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
348 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
349 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
350 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
351 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
352 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
353 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
354 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
355 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
356 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
357 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
358 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
359 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
360 real(kind=rp),
intent(in) :: dx(lx, lx)
361 real(kind=rp),
intent(in) :: dy(lx, lx)
362 real(kind=rp),
intent(in) :: dz(lx, lx)
363 real(kind=rp),
intent(in) :: dxt(lx, lx)
364 real(kind=rp),
intent(in) :: dyt(lx, lx)
365 real(kind=rp),
intent(in) :: dzt(lx, lx)
366 real(kind=rp) :: ur(lx, lx, lx)
367 real(kind=rp) :: us(lx, lx, lx)
368 real(kind=rp) :: ut(lx, lx, lx)
369 real(kind=rp) :: vr(lx, lx, lx)
370 real(kind=rp) :: vs(lx, lx, lx)
371 real(kind=rp) :: vt(lx, lx, lx)
372 real(kind=rp) :: wr(lx, lx, lx)
373 real(kind=rp) :: ws(lx, lx, lx)
374 real(kind=rp) :: wt(lx, lx, lx)
375 real(kind=rp) :: wur(lx, lx, lx)
376 real(kind=rp) :: wus(lx, lx, lx)
377 real(kind=rp) :: wut(lx, lx, lx)
378 real(kind=rp) :: wvr(lx, lx, lx)
379 real(kind=rp) :: wvs(lx, lx, lx)
380 real(kind=rp) :: wvt(lx, lx, lx)
381 real(kind=rp) :: wwr(lx, lx, lx)
382 real(kind=rp) :: wws(lx, lx, lx)
383 real(kind=rp) :: wwt(lx, lx, lx)
384 integer :: e, i, j, k
390 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
391 + dx(i,2) * u(2,j,1,e) &
392 + dx(i,3) * u(3,j,1,e) &
393 + dx(i,4) * u(4,j,1,e) &
394 + dx(i,5) * u(5,j,1,e) &
395 + dx(i,6) * u(6,j,1,e) &
396 + dx(i,7) * u(7,j,1,e) &
397 + dx(i,8) * u(8,j,1,e) &
398 + dx(i,9) * u(9,j,1,e) &
399 + dx(i,10) * u(10,j,1,e) &
400 + dx(i,11) * u(11,j,1,e) &
401 + dx(i,12) * u(12,j,1,e) &
402 + dx(i,13) * u(13,j,1,e) &
403 + dx(i,14) * u(14,j,1,e)
405 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
406 + dx(i,2) * v(2,j,1,e) &
407 + dx(i,3) * v(3,j,1,e) &
408 + dx(i,4) * v(4,j,1,e) &
409 + dx(i,5) * v(5,j,1,e) &
410 + dx(i,6) * v(6,j,1,e) &
411 + dx(i,7) * v(7,j,1,e) &
412 + dx(i,8) * v(8,j,1,e) &
413 + dx(i,9) * v(9,j,1,e) &
414 + dx(i,10) * v(10,j,1,e) &
415 + dx(i,11) * v(11,j,1,e) &
416 + dx(i,12) * v(12,j,1,e) &
417 + dx(i,13) * v(13,j,1,e) &
418 + dx(i,14) * v(14,j,1,e)
420 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
421 + dx(i,2) * w(2,j,1,e) &
422 + dx(i,3) * w(3,j,1,e) &
423 + dx(i,4) * w(4,j,1,e) &
424 + dx(i,5) * w(5,j,1,e) &
425 + dx(i,6) * w(6,j,1,e) &
426 + dx(i,7) * w(7,j,1,e) &
427 + dx(i,8) * w(8,j,1,e) &
428 + dx(i,9) * w(9,j,1,e) &
429 + dx(i,10) * w(10,j,1,e) &
430 + dx(i,11) * w(11,j,1,e) &
431 + dx(i,12) * w(12,j,1,e) &
432 + dx(i,13) * w(13,j,1,e) &
433 + dx(i,14) * w(14,j,1,e)
440 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
441 + dy(j,2) * u(i,2,k,e) &
442 + dy(j,3) * u(i,3,k,e) &
443 + dy(j,4) * u(i,4,k,e) &
444 + dy(j,5) * u(i,5,k,e) &
445 + dy(j,6) * u(i,6,k,e) &
446 + dy(j,7) * u(i,7,k,e) &
447 + dy(j,8) * u(i,8,k,e) &
448 + dy(j,9) * u(i,9,k,e) &
449 + dy(j,10) * u(i,10,k,e) &
450 + dy(j,11) * u(i,11,k,e) &
451 + dy(j,12) * u(i,12,k,e) &
452 + dy(j,13) * u(i,13,k,e) &
453 + dy(j,14) * u(i,14,k,e)
455 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
456 + dy(j,2) * v(i,2,k,e) &
457 + dy(j,3) * v(i,3,k,e) &
458 + dy(j,4) * v(i,4,k,e) &
459 + dy(j,5) * v(i,5,k,e) &
460 + dy(j,6) * v(i,6,k,e) &
461 + dy(j,7) * v(i,7,k,e) &
462 + dy(j,8) * v(i,8,k,e) &
463 + dy(j,9) * v(i,9,k,e) &
464 + dy(j,10) * v(i,10,k,e) &
465 + dy(j,11) * v(i,11,k,e) &
466 + dy(j,12) * v(i,12,k,e) &
467 + dy(j,13) * v(i,13,k,e) &
468 + dy(j,14) * v(i,14,k,e)
470 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
471 + dy(j,2) * w(i,2,k,e) &
472 + dy(j,3) * w(i,3,k,e) &
473 + dy(j,4) * w(i,4,k,e) &
474 + dy(j,5) * w(i,5,k,e) &
475 + dy(j,6) * w(i,6,k,e) &
476 + dy(j,7) * w(i,7,k,e) &
477 + dy(j,8) * w(i,8,k,e) &
478 + dy(j,9) * w(i,9,k,e) &
479 + dy(j,10) * w(i,10,k,e) &
480 + dy(j,11) * w(i,11,k,e) &
481 + dy(j,12) * w(i,12,k,e) &
482 + dy(j,13) * w(i,13,k,e) &
483 + dy(j,14) * w(i,14,k,e)
490 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
491 + dz(k,2) * u(i,1,2,e) &
492 + dz(k,3) * u(i,1,3,e) &
493 + dz(k,4) * u(i,1,4,e) &
494 + dz(k,5) * u(i,1,5,e) &
495 + dz(k,6) * u(i,1,6,e) &
496 + dz(k,7) * u(i,1,7,e) &
497 + dz(k,8) * u(i,1,8,e) &
498 + dz(k,9) * u(i,1,9,e) &
499 + dz(k,10) * u(i,1,10,e) &
500 + dz(k,11) * u(i,1,11,e) &
501 + dz(k,12) * u(i,1,12,e) &
502 + dz(k,13) * u(i,1,13,e) &
503 + dz(k,14) * u(i,1,14,e)
505 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
506 + dz(k,2) * v(i,1,2,e) &
507 + dz(k,3) * v(i,1,3,e) &
508 + dz(k,4) * v(i,1,4,e) &
509 + dz(k,5) * v(i,1,5,e) &
510 + dz(k,6) * v(i,1,6,e) &
511 + dz(k,7) * v(i,1,7,e) &
512 + dz(k,8) * v(i,1,8,e) &
513 + dz(k,9) * v(i,1,9,e) &
514 + dz(k,10) * v(i,1,10,e) &
515 + dz(k,11) * v(i,1,11,e) &
516 + dz(k,12) * v(i,1,12,e) &
517 + dz(k,13) * v(i,1,13,e) &
518 + dz(k,14) * v(i,1,14,e)
520 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
521 + dz(k,2) * w(i,1,2,e) &
522 + dz(k,3) * w(i,1,3,e) &
523 + dz(k,4) * w(i,1,4,e) &
524 + dz(k,5) * w(i,1,5,e) &
525 + dz(k,6) * w(i,1,6,e) &
526 + dz(k,7) * w(i,1,7,e) &
527 + dz(k,8) * w(i,1,8,e) &
528 + dz(k,9) * w(i,1,9,e) &
529 + dz(k,10) * w(i,1,10,e) &
530 + dz(k,11) * w(i,1,11,e) &
531 + dz(k,12) * w(i,1,12,e) &
532 + dz(k,13) * w(i,1,13,e) &
533 + dz(k,14) * w(i,1,14,e)
538 ur(i,1,1) = h1(i,1,1,e) &
539 * ( g11(i,1,1,e) * wur(i,1,1) &
540 + g12(i,1,1,e) * wus(i,1,1) &
541 + g13(i,1,1,e) * wut(i,1,1) )
542 us(i,1,1) = h1(i,1,1,e) &
543 * ( g12(i,1,1,e) * wur(i,1,1) &
544 + g22(i,1,1,e) * wus(i,1,1) &
545 + g23(i,1,1,e) * wut(i,1,1) )
546 ut(i,1,1) = h1(i,1,1,e) &
547 * ( g13(i,1,1,e) * wur(i,1,1) &
548 + g23(i,1,1,e) * wus(i,1,1) &
549 + g33(i,1,1,e) * wut(i,1,1) )
551 vr(i,1,1) = h1(i,1,1,e) &
552 * ( g11(i,1,1,e) * wvr(i,1,1) &
553 + g12(i,1,1,e) * wvs(i,1,1) &
554 + g13(i,1,1,e) * wvt(i,1,1) )
555 vs(i,1,1) = h1(i,1,1,e) &
556 * ( g12(i,1,1,e) * wvr(i,1,1) &
557 + g22(i,1,1,e) * wvs(i,1,1) &
558 + g23(i,1,1,e) * wvt(i,1,1) )
559 vt(i,1,1) = h1(i,1,1,e) &
560 * ( g13(i,1,1,e) * wvr(i,1,1) &
561 + g23(i,1,1,e) * wvs(i,1,1) &
562 + g33(i,1,1,e) * wvt(i,1,1) )
564 wr(i,1,1) = h1(i,1,1,e) &
565 * ( g11(i,1,1,e) * wwr(i,1,1) &
566 + g12(i,1,1,e) * wws(i,1,1) &
567 + g13(i,1,1,e) * wwt(i,1,1) )
568 ws(i,1,1) = h1(i,1,1,e) &
569 * ( g12(i,1,1,e) * wwr(i,1,1) &
570 + g22(i,1,1,e) * wws(i,1,1) &
571 + g23(i,1,1,e) * wwt(i,1,1) )
572 wt(i,1,1) = h1(i,1,1,e) &
573 * ( g13(i,1,1,e) * wwr(i,1,1) &
574 + g23(i,1,1,e) * wws(i,1,1) &
575 + g33(i,1,1,e) * wwt(i,1,1) )
580 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
581 + dxt(i,2) * ur(2,j,1) &
582 + dxt(i,3) * ur(3,j,1) &
583 + dxt(i,4) * ur(4,j,1) &
584 + dxt(i,5) * ur(5,j,1) &
585 + dxt(i,6) * ur(6,j,1) &
586 + dxt(i,7) * ur(7,j,1) &
587 + dxt(i,8) * ur(8,j,1) &
588 + dxt(i,9) * ur(9,j,1) &
589 + dxt(i,10) * ur(10,j,1) &
590 + dxt(i,11) * ur(11,j,1) &
591 + dxt(i,12) * ur(12,j,1) &
592 + dxt(i,13) * ur(13,j,1) &
593 + dxt(i,14) * ur(14,j,1)
595 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
596 + dxt(i,2) * vr(2,j,1) &
597 + dxt(i,3) * vr(3,j,1) &
598 + dxt(i,4) * vr(4,j,1) &
599 + dxt(i,5) * vr(5,j,1) &
600 + dxt(i,6) * vr(6,j,1) &
601 + dxt(i,7) * vr(7,j,1) &
602 + dxt(i,8) * vr(8,j,1) &
603 + dxt(i,9) * vr(9,j,1) &
604 + dxt(i,10) * vr(10,j,1) &
605 + dxt(i,11) * vr(11,j,1) &
606 + dxt(i,12) * vr(12,j,1) &
607 + dxt(i,13) * vr(13,j,1) &
608 + dxt(i,14) * vr(14,j,1)
610 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
611 + dxt(i,2) * wr(2,j,1) &
612 + dxt(i,3) * wr(3,j,1) &
613 + dxt(i,4) * wr(4,j,1) &
614 + dxt(i,5) * wr(5,j,1) &
615 + dxt(i,6) * wr(6,j,1) &
616 + dxt(i,7) * wr(7,j,1) &
617 + dxt(i,8) * wr(8,j,1) &
618 + dxt(i,9) * wr(9,j,1) &
619 + dxt(i,10) * wr(10,j,1) &
620 + dxt(i,11) * wr(11,j,1) &
621 + dxt(i,12) * wr(12,j,1) &
622 + dxt(i,13) * wr(13,j,1) &
623 + dxt(i,14) * wr(14,j,1)
630 au(i,j,k,e) = au(i,j,k,e) &
631 + dyt(j,1) * us(i,1,k) &
632 + dyt(j,2) * us(i,2,k) &
633 + dyt(j,3) * us(i,3,k) &
634 + dyt(j,4) * us(i,4,k) &
635 + dyt(j,5) * us(i,5,k) &
636 + dyt(j,6) * us(i,6,k) &
637 + dyt(j,7) * us(i,7,k) &
638 + dyt(j,8) * us(i,8,k) &
639 + dyt(j,9) * us(i,9,k) &
640 + dyt(j,10) * us(i,10,k) &
641 + dyt(j,11) * us(i,11,k) &
642 + dyt(j,12) * us(i,12,k) &
643 + dyt(j,13) * us(i,13,k) &
644 + dyt(j,14) * us(i,14,k)
646 av(i,j,k,e) = av(i,j,k,e) &
647 + dyt(j,1) * vs(i,1,k) &
648 + dyt(j,2) * vs(i,2,k) &
649 + dyt(j,3) * vs(i,3,k) &
650 + dyt(j,4) * vs(i,4,k) &
651 + dyt(j,5) * vs(i,5,k) &
652 + dyt(j,6) * vs(i,6,k) &
653 + dyt(j,7) * vs(i,7,k) &
654 + dyt(j,8) * vs(i,8,k) &
655 + dyt(j,9) * vs(i,9,k) &
656 + dyt(j,10) * vs(i,10,k) &
657 + dyt(j,11) * vs(i,11,k) &
658 + dyt(j,12) * vs(i,12,k) &
659 + dyt(j,13) * vs(i,13,k) &
660 + dyt(j,14) * vs(i,14,k)
662 aw(i,j,k,e) = aw(i,j,k,e) &
663 + dyt(j,1) * ws(i,1,k) &
664 + dyt(j,2) * ws(i,2,k) &
665 + dyt(j,3) * ws(i,3,k) &
666 + dyt(j,4) * ws(i,4,k) &
667 + dyt(j,5) * ws(i,5,k) &
668 + dyt(j,6) * ws(i,6,k) &
669 + dyt(j,7) * ws(i,7,k) &
670 + dyt(j,8) * ws(i,8,k) &
671 + dyt(j,9) * ws(i,9,k) &
672 + dyt(j,10) * ws(i,10,k) &
673 + dyt(j,11) * ws(i,11,k) &
674 + dyt(j,12) * ws(i,12,k) &
675 + dyt(j,13) * ws(i,13,k) &
676 + dyt(j,14) * ws(i,14,k)
683 au(i,1,k,e) = au(i,1,k,e) &
684 + dzt(k,1) * ut(i,1,1) &
685 + dzt(k,2) * ut(i,1,2) &
686 + dzt(k,3) * ut(i,1,3) &
687 + dzt(k,4) * ut(i,1,4) &
688 + dzt(k,5) * ut(i,1,5) &
689 + dzt(k,6) * ut(i,1,6) &
690 + dzt(k,7) * ut(i,1,7) &
691 + dzt(k,8) * ut(i,1,8) &
692 + dzt(k,9) * ut(i,1,9) &
693 + dzt(k,10) * ut(i,1,10) &
694 + dzt(k,11) * ut(i,1,11) &
695 + dzt(k,12) * ut(i,1,12) &
696 + dzt(k,13) * ut(i,1,13) &
697 + dzt(k,14) * ut(i,1,14)
699 av(i,1,k,e) = av(i,1,k,e) &
700 + dzt(k,1) * vt(i,1,1) &
701 + dzt(k,2) * vt(i,1,2) &
702 + dzt(k,3) * vt(i,1,3) &
703 + dzt(k,4) * vt(i,1,4) &
704 + dzt(k,5) * vt(i,1,5) &
705 + dzt(k,6) * vt(i,1,6) &
706 + dzt(k,7) * vt(i,1,7) &
707 + dzt(k,8) * vt(i,1,8) &
708 + dzt(k,9) * vt(i,1,9) &
709 + dzt(k,10) * vt(i,1,10) &
710 + dzt(k,11) * vt(i,1,11) &
711 + dzt(k,12) * vt(i,1,12) &
712 + dzt(k,13) * vt(i,1,13) &
713 + dzt(k,14) * vt(i,1,14)
715 aw(i,1,k,e) = aw(i,1,k,e) &
716 + dzt(k,1) * wt(i,1,1) &
717 + dzt(k,2) * wt(i,1,2) &
718 + dzt(k,3) * wt(i,1,3) &
719 + dzt(k,4) * wt(i,1,4) &
720 + dzt(k,5) * wt(i,1,5) &
721 + dzt(k,6) * wt(i,1,6) &
722 + dzt(k,7) * wt(i,1,7) &
723 + dzt(k,8) * wt(i,1,8) &
724 + dzt(k,9) * wt(i,1,9) &
725 + dzt(k,10) * wt(i,1,10) &
726 + dzt(k,11) * wt(i,1,11) &
727 + dzt(k,12) * wt(i,1,12) &
728 + dzt(k,13) * wt(i,1,13) &
729 + dzt(k,14) * wt(i,1,14)
735 end subroutine ax_helm_vector_lx14
737 subroutine ax_helm_vector_lx13(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
738 h1, G11, G22, G33, G12, G13, G23, n)
739 integer,
parameter :: lx = 13
740 integer,
intent(in) :: n
741 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
742 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
743 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
744 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
745 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
746 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
747 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
748 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
749 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
750 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
751 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
752 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
753 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
754 real(kind=rp),
intent(in) :: dx(lx, lx)
755 real(kind=rp),
intent(in) :: dy(lx, lx)
756 real(kind=rp),
intent(in) :: dz(lx, lx)
757 real(kind=rp),
intent(in) :: dxt(lx, lx)
758 real(kind=rp),
intent(in) :: dyt(lx, lx)
759 real(kind=rp),
intent(in) :: dzt(lx, lx)
760 real(kind=rp) :: ur(lx, lx, lx)
761 real(kind=rp) :: us(lx, lx, lx)
762 real(kind=rp) :: ut(lx, lx, lx)
763 real(kind=rp) :: vr(lx, lx, lx)
764 real(kind=rp) :: vs(lx, lx, lx)
765 real(kind=rp) :: vt(lx, lx, lx)
766 real(kind=rp) :: wr(lx, lx, lx)
767 real(kind=rp) :: ws(lx, lx, lx)
768 real(kind=rp) :: wt(lx, lx, lx)
769 real(kind=rp) :: wur(lx, lx, lx)
770 real(kind=rp) :: wus(lx, lx, lx)
771 real(kind=rp) :: wut(lx, lx, lx)
772 real(kind=rp) :: wvr(lx, lx, lx)
773 real(kind=rp) :: wvs(lx, lx, lx)
774 real(kind=rp) :: wvt(lx, lx, lx)
775 real(kind=rp) :: wwr(lx, lx, lx)
776 real(kind=rp) :: wws(lx, lx, lx)
777 real(kind=rp) :: wwt(lx, lx, lx)
778 integer :: e, i, j, k
784 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
785 + dx(i,2) * u(2,j,1,e) &
786 + dx(i,3) * u(3,j,1,e) &
787 + dx(i,4) * u(4,j,1,e) &
788 + dx(i,5) * u(5,j,1,e) &
789 + dx(i,6) * u(6,j,1,e) &
790 + dx(i,7) * u(7,j,1,e) &
791 + dx(i,8) * u(8,j,1,e) &
792 + dx(i,9) * u(9,j,1,e) &
793 + dx(i,10) * u(10,j,1,e) &
794 + dx(i,11) * u(11,j,1,e) &
795 + dx(i,12) * u(12,j,1,e) &
796 + dx(i,13) * u(13,j,1,e)
798 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
799 + dx(i,2) * v(2,j,1,e) &
800 + dx(i,3) * v(3,j,1,e) &
801 + dx(i,4) * v(4,j,1,e) &
802 + dx(i,5) * v(5,j,1,e) &
803 + dx(i,6) * v(6,j,1,e) &
804 + dx(i,7) * v(7,j,1,e) &
805 + dx(i,8) * v(8,j,1,e) &
806 + dx(i,9) * v(9,j,1,e) &
807 + dx(i,10) * v(10,j,1,e) &
808 + dx(i,11) * v(11,j,1,e) &
809 + dx(i,12) * v(12,j,1,e) &
810 + dx(i,13) * v(13,j,1,e)
812 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
813 + dx(i,2) * w(2,j,1,e) &
814 + dx(i,3) * w(3,j,1,e) &
815 + dx(i,4) * w(4,j,1,e) &
816 + dx(i,5) * w(5,j,1,e) &
817 + dx(i,6) * w(6,j,1,e) &
818 + dx(i,7) * w(7,j,1,e) &
819 + dx(i,8) * w(8,j,1,e) &
820 + dx(i,9) * w(9,j,1,e) &
821 + dx(i,10) * w(10,j,1,e) &
822 + dx(i,11) * w(11,j,1,e) &
823 + dx(i,12) * w(12,j,1,e) &
824 + dx(i,13) * w(13,j,1,e)
831 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
832 + dy(j,2) * u(i,2,k,e) &
833 + dy(j,3) * u(i,3,k,e) &
834 + dy(j,4) * u(i,4,k,e) &
835 + dy(j,5) * u(i,5,k,e) &
836 + dy(j,6) * u(i,6,k,e) &
837 + dy(j,7) * u(i,7,k,e) &
838 + dy(j,8) * u(i,8,k,e) &
839 + dy(j,9) * u(i,9,k,e) &
840 + dy(j,10) * u(i,10,k,e) &
841 + dy(j,11) * u(i,11,k,e) &
842 + dy(j,12) * u(i,12,k,e) &
843 + dy(j,13) * u(i,13,k,e)
845 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
846 + dy(j,2) * v(i,2,k,e) &
847 + dy(j,3) * v(i,3,k,e) &
848 + dy(j,4) * v(i,4,k,e) &
849 + dy(j,5) * v(i,5,k,e) &
850 + dy(j,6) * v(i,6,k,e) &
851 + dy(j,7) * v(i,7,k,e) &
852 + dy(j,8) * v(i,8,k,e) &
853 + dy(j,9) * v(i,9,k,e) &
854 + dy(j,10) * v(i,10,k,e) &
855 + dy(j,11) * v(i,11,k,e) &
856 + dy(j,12) * v(i,12,k,e) &
857 + dy(j,13) * v(i,13,k,e)
859 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
860 + dy(j,2) * w(i,2,k,e) &
861 + dy(j,3) * w(i,3,k,e) &
862 + dy(j,4) * w(i,4,k,e) &
863 + dy(j,5) * w(i,5,k,e) &
864 + dy(j,6) * w(i,6,k,e) &
865 + dy(j,7) * w(i,7,k,e) &
866 + dy(j,8) * w(i,8,k,e) &
867 + dy(j,9) * w(i,9,k,e) &
868 + dy(j,10) * w(i,10,k,e) &
869 + dy(j,11) * w(i,11,k,e) &
870 + dy(j,12) * w(i,12,k,e) &
871 + dy(j,13) * w(i,13,k,e)
878 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
879 + dz(k,2) * u(i,1,2,e) &
880 + dz(k,3) * u(i,1,3,e) &
881 + dz(k,4) * u(i,1,4,e) &
882 + dz(k,5) * u(i,1,5,e) &
883 + dz(k,6) * u(i,1,6,e) &
884 + dz(k,7) * u(i,1,7,e) &
885 + dz(k,8) * u(i,1,8,e) &
886 + dz(k,9) * u(i,1,9,e) &
887 + dz(k,10) * u(i,1,10,e) &
888 + dz(k,11) * u(i,1,11,e) &
889 + dz(k,12) * u(i,1,12,e) &
890 + dz(k,13) * u(i,1,13,e)
892 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
893 + dz(k,2) * v(i,1,2,e) &
894 + dz(k,3) * v(i,1,3,e) &
895 + dz(k,4) * v(i,1,4,e) &
896 + dz(k,5) * v(i,1,5,e) &
897 + dz(k,6) * v(i,1,6,e) &
898 + dz(k,7) * v(i,1,7,e) &
899 + dz(k,8) * v(i,1,8,e) &
900 + dz(k,9) * v(i,1,9,e) &
901 + dz(k,10) * v(i,1,10,e) &
902 + dz(k,11) * v(i,1,11,e) &
903 + dz(k,12) * v(i,1,12,e) &
904 + dz(k,13) * v(i,1,13,e)
906 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
907 + dz(k,2) * w(i,1,2,e) &
908 + dz(k,3) * w(i,1,3,e) &
909 + dz(k,4) * w(i,1,4,e) &
910 + dz(k,5) * w(i,1,5,e) &
911 + dz(k,6) * w(i,1,6,e) &
912 + dz(k,7) * w(i,1,7,e) &
913 + dz(k,8) * w(i,1,8,e) &
914 + dz(k,9) * w(i,1,9,e) &
915 + dz(k,10) * w(i,1,10,e) &
916 + dz(k,11) * w(i,1,11,e) &
917 + dz(k,12) * w(i,1,12,e) &
918 + dz(k,13) * w(i,1,13,e)
923 ur(i,1,1) = h1(i,1,1,e) &
924 * ( g11(i,1,1,e) * wur(i,1,1) &
925 + g12(i,1,1,e) * wus(i,1,1) &
926 + g13(i,1,1,e) * wut(i,1,1) )
927 us(i,1,1) = h1(i,1,1,e) &
928 * ( g12(i,1,1,e) * wur(i,1,1) &
929 + g22(i,1,1,e) * wus(i,1,1) &
930 + g23(i,1,1,e) * wut(i,1,1) )
931 ut(i,1,1) = h1(i,1,1,e) &
932 * ( g13(i,1,1,e) * wur(i,1,1) &
933 + g23(i,1,1,e) * wus(i,1,1) &
934 + g33(i,1,1,e) * wut(i,1,1) )
936 vr(i,1,1) = h1(i,1,1,e) &
937 * ( g11(i,1,1,e) * wvr(i,1,1) &
938 + g12(i,1,1,e) * wvs(i,1,1) &
939 + g13(i,1,1,e) * wvt(i,1,1) )
940 vs(i,1,1) = h1(i,1,1,e) &
941 * ( g12(i,1,1,e) * wvr(i,1,1) &
942 + g22(i,1,1,e) * wvs(i,1,1) &
943 + g23(i,1,1,e) * wvt(i,1,1) )
944 vt(i,1,1) = h1(i,1,1,e) &
945 * ( g13(i,1,1,e) * wvr(i,1,1) &
946 + g23(i,1,1,e) * wvs(i,1,1) &
947 + g33(i,1,1,e) * wvt(i,1,1) )
949 wr(i,1,1) = h1(i,1,1,e) &
950 * ( g11(i,1,1,e) * wwr(i,1,1) &
951 + g12(i,1,1,e) * wws(i,1,1) &
952 + g13(i,1,1,e) * wwt(i,1,1) )
953 ws(i,1,1) = h1(i,1,1,e) &
954 * ( g12(i,1,1,e) * wwr(i,1,1) &
955 + g22(i,1,1,e) * wws(i,1,1) &
956 + g23(i,1,1,e) * wwt(i,1,1) )
957 wt(i,1,1) = h1(i,1,1,e) &
958 * ( g13(i,1,1,e) * wwr(i,1,1) &
959 + g23(i,1,1,e) * wws(i,1,1) &
960 + g33(i,1,1,e) * wwt(i,1,1) )
965 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
966 + dxt(i,2) * ur(2,j,1) &
967 + dxt(i,3) * ur(3,j,1) &
968 + dxt(i,4) * ur(4,j,1) &
969 + dxt(i,5) * ur(5,j,1) &
970 + dxt(i,6) * ur(6,j,1) &
971 + dxt(i,7) * ur(7,j,1) &
972 + dxt(i,8) * ur(8,j,1) &
973 + dxt(i,9) * ur(9,j,1) &
974 + dxt(i,10) * ur(10,j,1) &
975 + dxt(i,11) * ur(11,j,1) &
976 + dxt(i,12) * ur(12,j,1) &
977 + dxt(i,13) * ur(13,j,1)
979 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
980 + dxt(i,2) * vr(2,j,1) &
981 + dxt(i,3) * vr(3,j,1) &
982 + dxt(i,4) * vr(4,j,1) &
983 + dxt(i,5) * vr(5,j,1) &
984 + dxt(i,6) * vr(6,j,1) &
985 + dxt(i,7) * vr(7,j,1) &
986 + dxt(i,8) * vr(8,j,1) &
987 + dxt(i,9) * vr(9,j,1) &
988 + dxt(i,10) * vr(10,j,1) &
989 + dxt(i,11) * vr(11,j,1) &
990 + dxt(i,12) * vr(12,j,1) &
991 + dxt(i,13) * vr(13,j,1)
993 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
994 + dxt(i,2) * wr(2,j,1) &
995 + dxt(i,3) * wr(3,j,1) &
996 + dxt(i,4) * wr(4,j,1) &
997 + dxt(i,5) * wr(5,j,1) &
998 + dxt(i,6) * wr(6,j,1) &
999 + dxt(i,7) * wr(7,j,1) &
1000 + dxt(i,8) * wr(8,j,1) &
1001 + dxt(i,9) * wr(9,j,1) &
1002 + dxt(i,10) * wr(10,j,1) &
1003 + dxt(i,11) * wr(11,j,1) &
1004 + dxt(i,12) * wr(12,j,1) &
1005 + dxt(i,13) * wr(13,j,1)
1012 au(i,j,k,e) = au(i,j,k,e) &
1013 + dyt(j,1) * us(i,1,k) &
1014 + dyt(j,2) * us(i,2,k) &
1015 + dyt(j,3) * us(i,3,k) &
1016 + dyt(j,4) * us(i,4,k) &
1017 + dyt(j,5) * us(i,5,k) &
1018 + dyt(j,6) * us(i,6,k) &
1019 + dyt(j,7) * us(i,7,k) &
1020 + dyt(j,8) * us(i,8,k) &
1021 + dyt(j,9) * us(i,9,k) &
1022 + dyt(j,10) * us(i,10,k) &
1023 + dyt(j,11) * us(i,11,k) &
1024 + dyt(j,12) * us(i,12,k) &
1025 + dyt(j,13) * us(i,13,k)
1027 av(i,j,k,e) = av(i,j,k,e) &
1028 + dyt(j,1) * vs(i,1,k) &
1029 + dyt(j,2) * vs(i,2,k) &
1030 + dyt(j,3) * vs(i,3,k) &
1031 + dyt(j,4) * vs(i,4,k) &
1032 + dyt(j,5) * vs(i,5,k) &
1033 + dyt(j,6) * vs(i,6,k) &
1034 + dyt(j,7) * vs(i,7,k) &
1035 + dyt(j,8) * vs(i,8,k) &
1036 + dyt(j,9) * vs(i,9,k) &
1037 + dyt(j,10) * vs(i,10,k) &
1038 + dyt(j,11) * vs(i,11,k) &
1039 + dyt(j,12) * vs(i,12,k) &
1040 + dyt(j,13) * vs(i,13,k)
1042 aw(i,j,k,e) = aw(i,j,k,e) &
1043 + dyt(j,1) * ws(i,1,k) &
1044 + dyt(j,2) * ws(i,2,k) &
1045 + dyt(j,3) * ws(i,3,k) &
1046 + dyt(j,4) * ws(i,4,k) &
1047 + dyt(j,5) * ws(i,5,k) &
1048 + dyt(j,6) * ws(i,6,k) &
1049 + dyt(j,7) * ws(i,7,k) &
1050 + dyt(j,8) * ws(i,8,k) &
1051 + dyt(j,9) * ws(i,9,k) &
1052 + dyt(j,10) * ws(i,10,k) &
1053 + dyt(j,11) * ws(i,11,k) &
1054 + dyt(j,12) * ws(i,12,k) &
1055 + dyt(j,13) * ws(i,13,k)
1062 au(i,1,k,e) = au(i,1,k,e) &
1063 + dzt(k,1) * ut(i,1,1) &
1064 + dzt(k,2) * ut(i,1,2) &
1065 + dzt(k,3) * ut(i,1,3) &
1066 + dzt(k,4) * ut(i,1,4) &
1067 + dzt(k,5) * ut(i,1,5) &
1068 + dzt(k,6) * ut(i,1,6) &
1069 + dzt(k,7) * ut(i,1,7) &
1070 + dzt(k,8) * ut(i,1,8) &
1071 + dzt(k,9) * ut(i,1,9) &
1072 + dzt(k,10) * ut(i,1,10) &
1073 + dzt(k,11) * ut(i,1,11) &
1074 + dzt(k,12) * ut(i,1,12) &
1075 + dzt(k,13) * ut(i,1,13)
1077 av(i,1,k,e) = av(i,1,k,e) &
1078 + dzt(k,1) * vt(i,1,1) &
1079 + dzt(k,2) * vt(i,1,2) &
1080 + dzt(k,3) * vt(i,1,3) &
1081 + dzt(k,4) * vt(i,1,4) &
1082 + dzt(k,5) * vt(i,1,5) &
1083 + dzt(k,6) * vt(i,1,6) &
1084 + dzt(k,7) * vt(i,1,7) &
1085 + dzt(k,8) * vt(i,1,8) &
1086 + dzt(k,9) * vt(i,1,9) &
1087 + dzt(k,10) * vt(i,1,10) &
1088 + dzt(k,11) * vt(i,1,11) &
1089 + dzt(k,12) * vt(i,1,12) &
1090 + dzt(k,13) * vt(i,1,13)
1092 aw(i,1,k,e) = aw(i,1,k,e) &
1093 + dzt(k,1) * wt(i,1,1) &
1094 + dzt(k,2) * wt(i,1,2) &
1095 + dzt(k,3) * wt(i,1,3) &
1096 + dzt(k,4) * wt(i,1,4) &
1097 + dzt(k,5) * wt(i,1,5) &
1098 + dzt(k,6) * wt(i,1,6) &
1099 + dzt(k,7) * wt(i,1,7) &
1100 + dzt(k,8) * wt(i,1,8) &
1101 + dzt(k,9) * wt(i,1,9) &
1102 + dzt(k,10) * wt(i,1,10) &
1103 + dzt(k,11) * wt(i,1,11) &
1104 + dzt(k,12) * wt(i,1,12) &
1105 + dzt(k,13) * wt(i,1,13)
1111 end subroutine ax_helm_vector_lx13
1113 subroutine ax_helm_vector_lx12(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
1114 h1, G11, G22, G33, G12, G13, G23, n)
1115 integer,
parameter :: lx = 12
1116 integer,
intent(in) :: n
1117 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
1118 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
1119 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
1120 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
1121 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
1122 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
1123 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
1124 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
1125 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
1126 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
1127 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
1128 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
1129 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
1130 real(kind=rp),
intent(in) :: dx(lx, lx)
1131 real(kind=rp),
intent(in) :: dy(lx, lx)
1132 real(kind=rp),
intent(in) :: dz(lx, lx)
1133 real(kind=rp),
intent(in) :: dxt(lx, lx)
1134 real(kind=rp),
intent(in) :: dyt(lx, lx)
1135 real(kind=rp),
intent(in) :: dzt(lx, lx)
1136 real(kind=rp) :: ur(lx, lx, lx)
1137 real(kind=rp) :: us(lx, lx, lx)
1138 real(kind=rp) :: ut(lx, lx, lx)
1139 real(kind=rp) :: vr(lx, lx, lx)
1140 real(kind=rp) :: vs(lx, lx, lx)
1141 real(kind=rp) :: vt(lx, lx, lx)
1142 real(kind=rp) :: wr(lx, lx, lx)
1143 real(kind=rp) :: ws(lx, lx, lx)
1144 real(kind=rp) :: wt(lx, lx, lx)
1145 real(kind=rp) :: wur(lx, lx, lx)
1146 real(kind=rp) :: wus(lx, lx, lx)
1147 real(kind=rp) :: wut(lx, lx, lx)
1148 real(kind=rp) :: wvr(lx, lx, lx)
1149 real(kind=rp) :: wvs(lx, lx, lx)
1150 real(kind=rp) :: wvt(lx, lx, lx)
1151 real(kind=rp) :: wwr(lx, lx, lx)
1152 real(kind=rp) :: wws(lx, lx, lx)
1153 real(kind=rp) :: wwt(lx, lx, lx)
1154 integer :: e, i, j, k
1160 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
1161 + dx(i,2) * u(2,j,1,e) &
1162 + dx(i,3) * u(3,j,1,e) &
1163 + dx(i,4) * u(4,j,1,e) &
1164 + dx(i,5) * u(5,j,1,e) &
1165 + dx(i,6) * u(6,j,1,e) &
1166 + dx(i,7) * u(7,j,1,e) &
1167 + dx(i,8) * u(8,j,1,e) &
1168 + dx(i,9) * u(9,j,1,e) &
1169 + dx(i,10) * u(10,j,1,e) &
1170 + dx(i,11) * u(11,j,1,e) &
1171 + dx(i,12) * u(12,j,1,e)
1173 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
1174 + dx(i,2) * v(2,j,1,e) &
1175 + dx(i,3) * v(3,j,1,e) &
1176 + dx(i,4) * v(4,j,1,e) &
1177 + dx(i,5) * v(5,j,1,e) &
1178 + dx(i,6) * v(6,j,1,e) &
1179 + dx(i,7) * v(7,j,1,e) &
1180 + dx(i,8) * v(8,j,1,e) &
1181 + dx(i,9) * v(9,j,1,e) &
1182 + dx(i,10) * v(10,j,1,e) &
1183 + dx(i,11) * v(11,j,1,e) &
1184 + dx(i,12) * v(12,j,1,e)
1186 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
1187 + dx(i,2) * w(2,j,1,e) &
1188 + dx(i,3) * w(3,j,1,e) &
1189 + dx(i,4) * w(4,j,1,e) &
1190 + dx(i,5) * w(5,j,1,e) &
1191 + dx(i,6) * w(6,j,1,e) &
1192 + dx(i,7) * w(7,j,1,e) &
1193 + dx(i,8) * w(8,j,1,e) &
1194 + dx(i,9) * w(9,j,1,e) &
1195 + dx(i,10) * w(10,j,1,e) &
1196 + dx(i,11) * w(11,j,1,e) &
1197 + dx(i,12) * w(12,j,1,e)
1204 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
1205 + dy(j,2) * u(i,2,k,e) &
1206 + dy(j,3) * u(i,3,k,e) &
1207 + dy(j,4) * u(i,4,k,e) &
1208 + dy(j,5) * u(i,5,k,e) &
1209 + dy(j,6) * u(i,6,k,e) &
1210 + dy(j,7) * u(i,7,k,e) &
1211 + dy(j,8) * u(i,8,k,e) &
1212 + dy(j,9) * u(i,9,k,e) &
1213 + dy(j,10) * u(i,10,k,e) &
1214 + dy(j,11) * u(i,11,k,e) &
1215 + dy(j,12) * u(i,12,k,e)
1217 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
1218 + dy(j,2) * v(i,2,k,e) &
1219 + dy(j,3) * v(i,3,k,e) &
1220 + dy(j,4) * v(i,4,k,e) &
1221 + dy(j,5) * v(i,5,k,e) &
1222 + dy(j,6) * v(i,6,k,e) &
1223 + dy(j,7) * v(i,7,k,e) &
1224 + dy(j,8) * v(i,8,k,e) &
1225 + dy(j,9) * v(i,9,k,e) &
1226 + dy(j,10) * v(i,10,k,e) &
1227 + dy(j,11) * v(i,11,k,e) &
1228 + dy(j,12) * v(i,12,k,e)
1230 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
1231 + dy(j,2) * w(i,2,k,e) &
1232 + dy(j,3) * w(i,3,k,e) &
1233 + dy(j,4) * w(i,4,k,e) &
1234 + dy(j,5) * w(i,5,k,e) &
1235 + dy(j,6) * w(i,6,k,e) &
1236 + dy(j,7) * w(i,7,k,e) &
1237 + dy(j,8) * w(i,8,k,e) &
1238 + dy(j,9) * w(i,9,k,e) &
1239 + dy(j,10) * w(i,10,k,e) &
1240 + dy(j,11) * w(i,11,k,e) &
1241 + dy(j,12) * w(i,12,k,e)
1248 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
1249 + dz(k,2) * u(i,1,2,e) &
1250 + dz(k,3) * u(i,1,3,e) &
1251 + dz(k,4) * u(i,1,4,e) &
1252 + dz(k,5) * u(i,1,5,e) &
1253 + dz(k,6) * u(i,1,6,e) &
1254 + dz(k,7) * u(i,1,7,e) &
1255 + dz(k,8) * u(i,1,8,e) &
1256 + dz(k,9) * u(i,1,9,e) &
1257 + dz(k,10) * u(i,1,10,e) &
1258 + dz(k,11) * u(i,1,11,e) &
1259 + dz(k,12) * u(i,1,12,e)
1261 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
1262 + dz(k,2) * v(i,1,2,e) &
1263 + dz(k,3) * v(i,1,3,e) &
1264 + dz(k,4) * v(i,1,4,e) &
1265 + dz(k,5) * v(i,1,5,e) &
1266 + dz(k,6) * v(i,1,6,e) &
1267 + dz(k,7) * v(i,1,7,e) &
1268 + dz(k,8) * v(i,1,8,e) &
1269 + dz(k,9) * v(i,1,9,e) &
1270 + dz(k,10) * v(i,1,10,e) &
1271 + dz(k,11) * v(i,1,11,e) &
1272 + dz(k,12) * v(i,1,12,e)
1274 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
1275 + dz(k,2) * w(i,1,2,e) &
1276 + dz(k,3) * w(i,1,3,e) &
1277 + dz(k,4) * w(i,1,4,e) &
1278 + dz(k,5) * w(i,1,5,e) &
1279 + dz(k,6) * w(i,1,6,e) &
1280 + dz(k,7) * w(i,1,7,e) &
1281 + dz(k,8) * w(i,1,8,e) &
1282 + dz(k,9) * w(i,1,9,e) &
1283 + dz(k,10) * w(i,1,10,e) &
1284 + dz(k,11) * w(i,1,11,e) &
1285 + dz(k,12) * w(i,1,12,e)
1290 ur(i,1,1) = h1(i,1,1,e) &
1291 * ( g11(i,1,1,e) * wur(i,1,1) &
1292 + g12(i,1,1,e) * wus(i,1,1) &
1293 + g13(i,1,1,e) * wut(i,1,1) )
1294 us(i,1,1) = h1(i,1,1,e) &
1295 * ( g12(i,1,1,e) * wur(i,1,1) &
1296 + g22(i,1,1,e) * wus(i,1,1) &
1297 + g23(i,1,1,e) * wut(i,1,1) )
1298 ut(i,1,1) = h1(i,1,1,e) &
1299 * ( g13(i,1,1,e) * wur(i,1,1) &
1300 + g23(i,1,1,e) * wus(i,1,1) &
1301 + g33(i,1,1,e) * wut(i,1,1) )
1303 vr(i,1,1) = h1(i,1,1,e) &
1304 * ( g11(i,1,1,e) * wvr(i,1,1) &
1305 + g12(i,1,1,e) * wvs(i,1,1) &
1306 + g13(i,1,1,e) * wvt(i,1,1) )
1307 vs(i,1,1) = h1(i,1,1,e) &
1308 * ( g12(i,1,1,e) * wvr(i,1,1) &
1309 + g22(i,1,1,e) * wvs(i,1,1) &
1310 + g23(i,1,1,e) * wvt(i,1,1) )
1311 vt(i,1,1) = h1(i,1,1,e) &
1312 * ( g13(i,1,1,e) * wvr(i,1,1) &
1313 + g23(i,1,1,e) * wvs(i,1,1) &
1314 + g33(i,1,1,e) * wvt(i,1,1) )
1316 wr(i,1,1) = h1(i,1,1,e) &
1317 * ( g11(i,1,1,e) * wwr(i,1,1) &
1318 + g12(i,1,1,e) * wws(i,1,1) &
1319 + g13(i,1,1,e) * wwt(i,1,1) )
1320 ws(i,1,1) = h1(i,1,1,e) &
1321 * ( g12(i,1,1,e) * wwr(i,1,1) &
1322 + g22(i,1,1,e) * wws(i,1,1) &
1323 + g23(i,1,1,e) * wwt(i,1,1) )
1324 wt(i,1,1) = h1(i,1,1,e) &
1325 * ( g13(i,1,1,e) * wwr(i,1,1) &
1326 + g23(i,1,1,e) * wws(i,1,1) &
1327 + g33(i,1,1,e) * wwt(i,1,1) )
1332 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
1333 + dxt(i,2) * ur(2,j,1) &
1334 + dxt(i,3) * ur(3,j,1) &
1335 + dxt(i,4) * ur(4,j,1) &
1336 + dxt(i,5) * ur(5,j,1) &
1337 + dxt(i,6) * ur(6,j,1) &
1338 + dxt(i,7) * ur(7,j,1) &
1339 + dxt(i,8) * ur(8,j,1) &
1340 + dxt(i,9) * ur(9,j,1) &
1341 + dxt(i,10) * ur(10,j,1) &
1342 + dxt(i,11) * ur(11,j,1) &
1343 + dxt(i,12) * ur(12,j,1)
1345 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
1346 + dxt(i,2) * vr(2,j,1) &
1347 + dxt(i,3) * vr(3,j,1) &
1348 + dxt(i,4) * vr(4,j,1) &
1349 + dxt(i,5) * vr(5,j,1) &
1350 + dxt(i,6) * vr(6,j,1) &
1351 + dxt(i,7) * vr(7,j,1) &
1352 + dxt(i,8) * vr(8,j,1) &
1353 + dxt(i,9) * vr(9,j,1) &
1354 + dxt(i,10) * vr(10,j,1) &
1355 + dxt(i,11) * vr(11,j,1) &
1356 + dxt(i,12) * vr(12,j,1)
1358 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
1359 + dxt(i,2) * wr(2,j,1) &
1360 + dxt(i,3) * wr(3,j,1) &
1361 + dxt(i,4) * wr(4,j,1) &
1362 + dxt(i,5) * wr(5,j,1) &
1363 + dxt(i,6) * wr(6,j,1) &
1364 + dxt(i,7) * wr(7,j,1) &
1365 + dxt(i,8) * wr(8,j,1) &
1366 + dxt(i,9) * wr(9,j,1) &
1367 + dxt(i,10) * wr(10,j,1) &
1368 + dxt(i,11) * wr(11,j,1) &
1369 + dxt(i,12) * wr(12,j,1)
1376 au(i,j,k,e) = au(i,j,k,e) &
1377 + dyt(j,1) * us(i,1,k) &
1378 + dyt(j,2) * us(i,2,k) &
1379 + dyt(j,3) * us(i,3,k) &
1380 + dyt(j,4) * us(i,4,k) &
1381 + dyt(j,5) * us(i,5,k) &
1382 + dyt(j,6) * us(i,6,k) &
1383 + dyt(j,7) * us(i,7,k) &
1384 + dyt(j,8) * us(i,8,k) &
1385 + dyt(j,9) * us(i,9,k) &
1386 + dyt(j,10) * us(i,10,k) &
1387 + dyt(j,11) * us(i,11,k) &
1388 + dyt(j,12) * us(i,12,k)
1390 av(i,j,k,e) = av(i,j,k,e) &
1391 + dyt(j,1) * vs(i,1,k) &
1392 + dyt(j,2) * vs(i,2,k) &
1393 + dyt(j,3) * vs(i,3,k) &
1394 + dyt(j,4) * vs(i,4,k) &
1395 + dyt(j,5) * vs(i,5,k) &
1396 + dyt(j,6) * vs(i,6,k) &
1397 + dyt(j,7) * vs(i,7,k) &
1398 + dyt(j,8) * vs(i,8,k) &
1399 + dyt(j,9) * vs(i,9,k) &
1400 + dyt(j,10) * vs(i,10,k) &
1401 + dyt(j,11) * vs(i,11,k) &
1402 + dyt(j,12) * vs(i,12,k)
1404 aw(i,j,k,e) = aw(i,j,k,e) &
1405 + dyt(j,1) * ws(i,1,k) &
1406 + dyt(j,2) * ws(i,2,k) &
1407 + dyt(j,3) * ws(i,3,k) &
1408 + dyt(j,4) * ws(i,4,k) &
1409 + dyt(j,5) * ws(i,5,k) &
1410 + dyt(j,6) * ws(i,6,k) &
1411 + dyt(j,7) * ws(i,7,k) &
1412 + dyt(j,8) * ws(i,8,k) &
1413 + dyt(j,9) * ws(i,9,k) &
1414 + dyt(j,10) * ws(i,10,k) &
1415 + dyt(j,11) * ws(i,11,k) &
1416 + dyt(j,12) * ws(i,12,k)
1423 au(i,1,k,e) = au(i,1,k,e) &
1424 + dzt(k,1) * ut(i,1,1) &
1425 + dzt(k,2) * ut(i,1,2) &
1426 + dzt(k,3) * ut(i,1,3) &
1427 + dzt(k,4) * ut(i,1,4) &
1428 + dzt(k,5) * ut(i,1,5) &
1429 + dzt(k,6) * ut(i,1,6) &
1430 + dzt(k,7) * ut(i,1,7) &
1431 + dzt(k,8) * ut(i,1,8) &
1432 + dzt(k,9) * ut(i,1,9) &
1433 + dzt(k,10) * ut(i,1,10) &
1434 + dzt(k,11) * ut(i,1,11) &
1435 + dzt(k,12) * ut(i,1,12)
1437 av(i,1,k,e) = av(i,1,k,e) &
1438 + dzt(k,1) * vt(i,1,1) &
1439 + dzt(k,2) * vt(i,1,2) &
1440 + dzt(k,3) * vt(i,1,3) &
1441 + dzt(k,4) * vt(i,1,4) &
1442 + dzt(k,5) * vt(i,1,5) &
1443 + dzt(k,6) * vt(i,1,6) &
1444 + dzt(k,7) * vt(i,1,7) &
1445 + dzt(k,8) * vt(i,1,8) &
1446 + dzt(k,9) * vt(i,1,9) &
1447 + dzt(k,10) * vt(i,1,10) &
1448 + dzt(k,11) * vt(i,1,11) &
1449 + dzt(k,12) * vt(i,1,12)
1451 aw(i,1,k,e) = aw(i,1,k,e) &
1452 + dzt(k,1) * wt(i,1,1) &
1453 + dzt(k,2) * wt(i,1,2) &
1454 + dzt(k,3) * wt(i,1,3) &
1455 + dzt(k,4) * wt(i,1,4) &
1456 + dzt(k,5) * wt(i,1,5) &
1457 + dzt(k,6) * wt(i,1,6) &
1458 + dzt(k,7) * wt(i,1,7) &
1459 + dzt(k,8) * wt(i,1,8) &
1460 + dzt(k,9) * wt(i,1,9) &
1461 + dzt(k,10) * wt(i,1,10) &
1462 + dzt(k,11) * wt(i,1,11) &
1463 + dzt(k,12) * wt(i,1,12)
1469 end subroutine ax_helm_vector_lx12
1471 subroutine ax_helm_vector_lx11(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
1472 h1, G11, G22, G33, G12, G13, G23, n)
1473 integer,
parameter :: lx = 11
1474 integer,
intent(in) :: n
1475 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
1476 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
1477 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
1478 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
1479 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
1480 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
1481 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
1482 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
1483 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
1484 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
1485 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
1486 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
1487 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
1488 real(kind=rp),
intent(in) :: dx(lx, lx)
1489 real(kind=rp),
intent(in) :: dy(lx, lx)
1490 real(kind=rp),
intent(in) :: dz(lx, lx)
1491 real(kind=rp),
intent(in) :: dxt(lx, lx)
1492 real(kind=rp),
intent(in) :: dyt(lx, lx)
1493 real(kind=rp),
intent(in) :: dzt(lx, lx)
1494 real(kind=rp) :: ur(lx, lx, lx)
1495 real(kind=rp) :: us(lx, lx, lx)
1496 real(kind=rp) :: ut(lx, lx, lx)
1497 real(kind=rp) :: vr(lx, lx, lx)
1498 real(kind=rp) :: vs(lx, lx, lx)
1499 real(kind=rp) :: vt(lx, lx, lx)
1500 real(kind=rp) :: wr(lx, lx, lx)
1501 real(kind=rp) :: ws(lx, lx, lx)
1502 real(kind=rp) :: wt(lx, lx, lx)
1503 real(kind=rp) :: wur(lx, lx, lx)
1504 real(kind=rp) :: wus(lx, lx, lx)
1505 real(kind=rp) :: wut(lx, lx, lx)
1506 real(kind=rp) :: wvr(lx, lx, lx)
1507 real(kind=rp) :: wvs(lx, lx, lx)
1508 real(kind=rp) :: wvt(lx, lx, lx)
1509 real(kind=rp) :: wwr(lx, lx, lx)
1510 real(kind=rp) :: wws(lx, lx, lx)
1511 real(kind=rp) :: wwt(lx, lx, lx)
1512 integer :: e, i, j, k
1518 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
1519 + dx(i,2) * u(2,j,1,e) &
1520 + dx(i,3) * u(3,j,1,e) &
1521 + dx(i,4) * u(4,j,1,e) &
1522 + dx(i,5) * u(5,j,1,e) &
1523 + dx(i,6) * u(6,j,1,e) &
1524 + dx(i,7) * u(7,j,1,e) &
1525 + dx(i,8) * u(8,j,1,e) &
1526 + dx(i,9) * u(9,j,1,e) &
1527 + dx(i,10) * u(10,j,1,e) &
1528 + dx(i,11) * u(11,j,1,e)
1530 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
1531 + dx(i,2) * v(2,j,1,e) &
1532 + dx(i,3) * v(3,j,1,e) &
1533 + dx(i,4) * v(4,j,1,e) &
1534 + dx(i,5) * v(5,j,1,e) &
1535 + dx(i,6) * v(6,j,1,e) &
1536 + dx(i,7) * v(7,j,1,e) &
1537 + dx(i,8) * v(8,j,1,e) &
1538 + dx(i,9) * v(9,j,1,e) &
1539 + dx(i,10) * v(10,j,1,e) &
1540 + dx(i,11) * v(11,j,1,e)
1542 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
1543 + dx(i,2) * w(2,j,1,e) &
1544 + dx(i,3) * w(3,j,1,e) &
1545 + dx(i,4) * w(4,j,1,e) &
1546 + dx(i,5) * w(5,j,1,e) &
1547 + dx(i,6) * w(6,j,1,e) &
1548 + dx(i,7) * w(7,j,1,e) &
1549 + dx(i,8) * w(8,j,1,e) &
1550 + dx(i,9) * w(9,j,1,e) &
1551 + dx(i,10) * w(10,j,1,e) &
1552 + dx(i,11) * w(11,j,1,e)
1559 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
1560 + dy(j,2) * u(i,2,k,e) &
1561 + dy(j,3) * u(i,3,k,e) &
1562 + dy(j,4) * u(i,4,k,e) &
1563 + dy(j,5) * u(i,5,k,e) &
1564 + dy(j,6) * u(i,6,k,e) &
1565 + dy(j,7) * u(i,7,k,e) &
1566 + dy(j,8) * u(i,8,k,e) &
1567 + dy(j,9) * u(i,9,k,e) &
1568 + dy(j,10) * u(i,10,k,e) &
1569 + dy(j,11) * u(i,11,k,e)
1571 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
1572 + dy(j,2) * v(i,2,k,e) &
1573 + dy(j,3) * v(i,3,k,e) &
1574 + dy(j,4) * v(i,4,k,e) &
1575 + dy(j,5) * v(i,5,k,e) &
1576 + dy(j,6) * v(i,6,k,e) &
1577 + dy(j,7) * v(i,7,k,e) &
1578 + dy(j,8) * v(i,8,k,e) &
1579 + dy(j,9) * v(i,9,k,e) &
1580 + dy(j,10) * v(i,10,k,e) &
1581 + dy(j,11) * v(i,11,k,e)
1583 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
1584 + dy(j,2) * w(i,2,k,e) &
1585 + dy(j,3) * w(i,3,k,e) &
1586 + dy(j,4) * w(i,4,k,e) &
1587 + dy(j,5) * w(i,5,k,e) &
1588 + dy(j,6) * w(i,6,k,e) &
1589 + dy(j,7) * w(i,7,k,e) &
1590 + dy(j,8) * w(i,8,k,e) &
1591 + dy(j,9) * w(i,9,k,e) &
1592 + dy(j,10) * w(i,10,k,e) &
1593 + dy(j,11) * w(i,11,k,e)
1600 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
1601 + dz(k,2) * u(i,1,2,e) &
1602 + dz(k,3) * u(i,1,3,e) &
1603 + dz(k,4) * u(i,1,4,e) &
1604 + dz(k,5) * u(i,1,5,e) &
1605 + dz(k,6) * u(i,1,6,e) &
1606 + dz(k,7) * u(i,1,7,e) &
1607 + dz(k,8) * u(i,1,8,e) &
1608 + dz(k,9) * u(i,1,9,e) &
1609 + dz(k,10) * u(i,1,10,e) &
1610 + dz(k,11) * u(i,1,11,e)
1612 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
1613 + dz(k,2) * v(i,1,2,e) &
1614 + dz(k,3) * v(i,1,3,e) &
1615 + dz(k,4) * v(i,1,4,e) &
1616 + dz(k,5) * v(i,1,5,e) &
1617 + dz(k,6) * v(i,1,6,e) &
1618 + dz(k,7) * v(i,1,7,e) &
1619 + dz(k,8) * v(i,1,8,e) &
1620 + dz(k,9) * v(i,1,9,e) &
1621 + dz(k,10) * v(i,1,10,e) &
1622 + dz(k,11) * v(i,1,11,e)
1624 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
1625 + dz(k,2) * w(i,1,2,e) &
1626 + dz(k,3) * w(i,1,3,e) &
1627 + dz(k,4) * w(i,1,4,e) &
1628 + dz(k,5) * w(i,1,5,e) &
1629 + dz(k,6) * w(i,1,6,e) &
1630 + dz(k,7) * w(i,1,7,e) &
1631 + dz(k,8) * w(i,1,8,e) &
1632 + dz(k,9) * w(i,1,9,e) &
1633 + dz(k,10) * w(i,1,10,e) &
1634 + dz(k,11) * w(i,1,11,e)
1639 ur(i,1,1) = h1(i,1,1,e) &
1640 * ( g11(i,1,1,e) * wur(i,1,1) &
1641 + g12(i,1,1,e) * wus(i,1,1) &
1642 + g13(i,1,1,e) * wut(i,1,1) )
1643 us(i,1,1) = h1(i,1,1,e) &
1644 * ( g12(i,1,1,e) * wur(i,1,1) &
1645 + g22(i,1,1,e) * wus(i,1,1) &
1646 + g23(i,1,1,e) * wut(i,1,1) )
1647 ut(i,1,1) = h1(i,1,1,e) &
1648 * ( g13(i,1,1,e) * wur(i,1,1) &
1649 + g23(i,1,1,e) * wus(i,1,1) &
1650 + g33(i,1,1,e) * wut(i,1,1) )
1652 vr(i,1,1) = h1(i,1,1,e) &
1653 * ( g11(i,1,1,e) * wvr(i,1,1) &
1654 + g12(i,1,1,e) * wvs(i,1,1) &
1655 + g13(i,1,1,e) * wvt(i,1,1) )
1656 vs(i,1,1) = h1(i,1,1,e) &
1657 * ( g12(i,1,1,e) * wvr(i,1,1) &
1658 + g22(i,1,1,e) * wvs(i,1,1) &
1659 + g23(i,1,1,e) * wvt(i,1,1) )
1660 vt(i,1,1) = h1(i,1,1,e) &
1661 * ( g13(i,1,1,e) * wvr(i,1,1) &
1662 + g23(i,1,1,e) * wvs(i,1,1) &
1663 + g33(i,1,1,e) * wvt(i,1,1) )
1665 wr(i,1,1) = h1(i,1,1,e) &
1666 * ( g11(i,1,1,e) * wwr(i,1,1) &
1667 + g12(i,1,1,e) * wws(i,1,1) &
1668 + g13(i,1,1,e) * wwt(i,1,1) )
1669 ws(i,1,1) = h1(i,1,1,e) &
1670 * ( g12(i,1,1,e) * wwr(i,1,1) &
1671 + g22(i,1,1,e) * wws(i,1,1) &
1672 + g23(i,1,1,e) * wwt(i,1,1) )
1673 wt(i,1,1) = h1(i,1,1,e) &
1674 * ( g13(i,1,1,e) * wwr(i,1,1) &
1675 + g23(i,1,1,e) * wws(i,1,1) &
1676 + g33(i,1,1,e) * wwt(i,1,1) )
1681 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
1682 + dxt(i,2) * ur(2,j,1) &
1683 + dxt(i,3) * ur(3,j,1) &
1684 + dxt(i,4) * ur(4,j,1) &
1685 + dxt(i,5) * ur(5,j,1) &
1686 + dxt(i,6) * ur(6,j,1) &
1687 + dxt(i,7) * ur(7,j,1) &
1688 + dxt(i,8) * ur(8,j,1) &
1689 + dxt(i,9) * ur(9,j,1) &
1690 + dxt(i,10) * ur(10,j,1) &
1691 + dxt(i,11) * ur(11,j,1)
1693 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
1694 + dxt(i,2) * vr(2,j,1) &
1695 + dxt(i,3) * vr(3,j,1) &
1696 + dxt(i,4) * vr(4,j,1) &
1697 + dxt(i,5) * vr(5,j,1) &
1698 + dxt(i,6) * vr(6,j,1) &
1699 + dxt(i,7) * vr(7,j,1) &
1700 + dxt(i,8) * vr(8,j,1) &
1701 + dxt(i,9) * vr(9,j,1) &
1702 + dxt(i,10) * vr(10,j,1) &
1703 + dxt(i,11) * vr(11,j,1)
1705 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
1706 + dxt(i,2) * wr(2,j,1) &
1707 + dxt(i,3) * wr(3,j,1) &
1708 + dxt(i,4) * wr(4,j,1) &
1709 + dxt(i,5) * wr(5,j,1) &
1710 + dxt(i,6) * wr(6,j,1) &
1711 + dxt(i,7) * wr(7,j,1) &
1712 + dxt(i,8) * wr(8,j,1) &
1713 + dxt(i,9) * wr(9,j,1) &
1714 + dxt(i,10) * wr(10,j,1) &
1715 + dxt(i,11) * wr(11,j,1)
1722 au(i,j,k,e) = au(i,j,k,e) &
1723 + dyt(j,1) * us(i,1,k) &
1724 + dyt(j,2) * us(i,2,k) &
1725 + dyt(j,3) * us(i,3,k) &
1726 + dyt(j,4) * us(i,4,k) &
1727 + dyt(j,5) * us(i,5,k) &
1728 + dyt(j,6) * us(i,6,k) &
1729 + dyt(j,7) * us(i,7,k) &
1730 + dyt(j,8) * us(i,8,k) &
1731 + dyt(j,9) * us(i,9,k) &
1732 + dyt(j,10) * us(i,10,k) &
1733 + dyt(j,11) * us(i,11,k)
1735 av(i,j,k,e) = av(i,j,k,e) &
1736 + dyt(j,1) * vs(i,1,k) &
1737 + dyt(j,2) * vs(i,2,k) &
1738 + dyt(j,3) * vs(i,3,k) &
1739 + dyt(j,4) * vs(i,4,k) &
1740 + dyt(j,5) * vs(i,5,k) &
1741 + dyt(j,6) * vs(i,6,k) &
1742 + dyt(j,7) * vs(i,7,k) &
1743 + dyt(j,8) * vs(i,8,k) &
1744 + dyt(j,9) * vs(i,9,k) &
1745 + dyt(j,10) * vs(i,10,k) &
1746 + dyt(j,11) * vs(i,11,k)
1748 aw(i,j,k,e) = aw(i,j,k,e) &
1749 + dyt(j,1) * ws(i,1,k) &
1750 + dyt(j,2) * ws(i,2,k) &
1751 + dyt(j,3) * ws(i,3,k) &
1752 + dyt(j,4) * ws(i,4,k) &
1753 + dyt(j,5) * ws(i,5,k) &
1754 + dyt(j,6) * ws(i,6,k) &
1755 + dyt(j,7) * ws(i,7,k) &
1756 + dyt(j,8) * ws(i,8,k) &
1757 + dyt(j,9) * ws(i,9,k) &
1758 + dyt(j,10) * ws(i,10,k) &
1759 + dyt(j,11) * ws(i,11,k)
1766 au(i,1,k,e) = au(i,1,k,e) &
1767 + dzt(k,1) * ut(i,1,1) &
1768 + dzt(k,2) * ut(i,1,2) &
1769 + dzt(k,3) * ut(i,1,3) &
1770 + dzt(k,4) * ut(i,1,4) &
1771 + dzt(k,5) * ut(i,1,5) &
1772 + dzt(k,6) * ut(i,1,6) &
1773 + dzt(k,7) * ut(i,1,7) &
1774 + dzt(k,8) * ut(i,1,8) &
1775 + dzt(k,9) * ut(i,1,9) &
1776 + dzt(k,10) * ut(i,1,10) &
1777 + dzt(k,11) * ut(i,1,11)
1779 av(i,1,k,e) = av(i,1,k,e) &
1780 + dzt(k,1) * vt(i,1,1) &
1781 + dzt(k,2) * vt(i,1,2) &
1782 + dzt(k,3) * vt(i,1,3) &
1783 + dzt(k,4) * vt(i,1,4) &
1784 + dzt(k,5) * vt(i,1,5) &
1785 + dzt(k,6) * vt(i,1,6) &
1786 + dzt(k,7) * vt(i,1,7) &
1787 + dzt(k,8) * vt(i,1,8) &
1788 + dzt(k,9) * vt(i,1,9) &
1789 + dzt(k,10) * vt(i,1,10) &
1790 + dzt(k,11) * vt(i,1,11)
1792 aw(i,1,k,e) = aw(i,1,k,e) &
1793 + dzt(k,1) * wt(i,1,1) &
1794 + dzt(k,2) * wt(i,1,2) &
1795 + dzt(k,3) * wt(i,1,3) &
1796 + dzt(k,4) * wt(i,1,4) &
1797 + dzt(k,5) * wt(i,1,5) &
1798 + dzt(k,6) * wt(i,1,6) &
1799 + dzt(k,7) * wt(i,1,7) &
1800 + dzt(k,8) * wt(i,1,8) &
1801 + dzt(k,9) * wt(i,1,9) &
1802 + dzt(k,10) * wt(i,1,10) &
1803 + dzt(k,11) * wt(i,1,11)
1809 end subroutine ax_helm_vector_lx11
1811 subroutine ax_helm_vector_lx10(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
1812 h1, G11, G22, G33, G12, G13, G23, n)
1813 integer,
parameter :: lx = 10
1814 integer,
intent(in) :: n
1815 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
1816 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
1817 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
1818 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
1819 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
1820 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
1821 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
1822 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
1823 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
1824 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
1825 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
1826 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
1827 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
1828 real(kind=rp),
intent(in) :: dx(lx, lx)
1829 real(kind=rp),
intent(in) :: dy(lx, lx)
1830 real(kind=rp),
intent(in) :: dz(lx, lx)
1831 real(kind=rp),
intent(in) :: dxt(lx, lx)
1832 real(kind=rp),
intent(in) :: dyt(lx, lx)
1833 real(kind=rp),
intent(in) :: dzt(lx, lx)
1834 real(kind=rp) :: ur(lx, lx, lx)
1835 real(kind=rp) :: us(lx, lx, lx)
1836 real(kind=rp) :: ut(lx, lx, lx)
1837 real(kind=rp) :: vr(lx, lx, lx)
1838 real(kind=rp) :: vs(lx, lx, lx)
1839 real(kind=rp) :: vt(lx, lx, lx)
1840 real(kind=rp) :: wr(lx, lx, lx)
1841 real(kind=rp) :: ws(lx, lx, lx)
1842 real(kind=rp) :: wt(lx, lx, lx)
1843 real(kind=rp) :: wur(lx, lx, lx)
1844 real(kind=rp) :: wus(lx, lx, lx)
1845 real(kind=rp) :: wut(lx, lx, lx)
1846 real(kind=rp) :: wvr(lx, lx, lx)
1847 real(kind=rp) :: wvs(lx, lx, lx)
1848 real(kind=rp) :: wvt(lx, lx, lx)
1849 real(kind=rp) :: wwr(lx, lx, lx)
1850 real(kind=rp) :: wws(lx, lx, lx)
1851 real(kind=rp) :: wwt(lx, lx, lx)
1852 integer :: e, i, j, k
1858 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
1859 + dx(i,2) * u(2,j,1,e) &
1860 + dx(i,3) * u(3,j,1,e) &
1861 + dx(i,4) * u(4,j,1,e) &
1862 + dx(i,5) * u(5,j,1,e) &
1863 + dx(i,6) * u(6,j,1,e) &
1864 + dx(i,7) * u(7,j,1,e) &
1865 + dx(i,8) * u(8,j,1,e) &
1866 + dx(i,9) * u(9,j,1,e) &
1867 + dx(i,10) * u(10,j,1,e)
1869 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
1870 + dx(i,2) * v(2,j,1,e) &
1871 + dx(i,3) * v(3,j,1,e) &
1872 + dx(i,4) * v(4,j,1,e) &
1873 + dx(i,5) * v(5,j,1,e) &
1874 + dx(i,6) * v(6,j,1,e) &
1875 + dx(i,7) * v(7,j,1,e) &
1876 + dx(i,8) * v(8,j,1,e) &
1877 + dx(i,9) * v(9,j,1,e) &
1878 + dx(i,10) * v(10,j,1,e)
1880 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
1881 + dx(i,2) * w(2,j,1,e) &
1882 + dx(i,3) * w(3,j,1,e) &
1883 + dx(i,4) * w(4,j,1,e) &
1884 + dx(i,5) * w(5,j,1,e) &
1885 + dx(i,6) * w(6,j,1,e) &
1886 + dx(i,7) * w(7,j,1,e) &
1887 + dx(i,8) * w(8,j,1,e) &
1888 + dx(i,9) * w(9,j,1,e) &
1889 + dx(i,10) * w(10,j,1,e)
1896 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
1897 + dy(j,2) * u(i,2,k,e) &
1898 + dy(j,3) * u(i,3,k,e) &
1899 + dy(j,4) * u(i,4,k,e) &
1900 + dy(j,5) * u(i,5,k,e) &
1901 + dy(j,6) * u(i,6,k,e) &
1902 + dy(j,7) * u(i,7,k,e) &
1903 + dy(j,8) * u(i,8,k,e) &
1904 + dy(j,9) * u(i,9,k,e) &
1905 + dy(j,10) * u(i,10,k,e)
1907 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
1908 + dy(j,2) * v(i,2,k,e) &
1909 + dy(j,3) * v(i,3,k,e) &
1910 + dy(j,4) * v(i,4,k,e) &
1911 + dy(j,5) * v(i,5,k,e) &
1912 + dy(j,6) * v(i,6,k,e) &
1913 + dy(j,7) * v(i,7,k,e) &
1914 + dy(j,8) * v(i,8,k,e) &
1915 + dy(j,9) * v(i,9,k,e) &
1916 + dy(j,10) * v(i,10,k,e)
1918 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
1919 + dy(j,2) * w(i,2,k,e) &
1920 + dy(j,3) * w(i,3,k,e) &
1921 + dy(j,4) * w(i,4,k,e) &
1922 + dy(j,5) * w(i,5,k,e) &
1923 + dy(j,6) * w(i,6,k,e) &
1924 + dy(j,7) * w(i,7,k,e) &
1925 + dy(j,8) * w(i,8,k,e) &
1926 + dy(j,9) * w(i,9,k,e) &
1927 + dy(j,10) * w(i,10,k,e)
1934 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
1935 + dz(k,2) * u(i,1,2,e) &
1936 + dz(k,3) * u(i,1,3,e) &
1937 + dz(k,4) * u(i,1,4,e) &
1938 + dz(k,5) * u(i,1,5,e) &
1939 + dz(k,6) * u(i,1,6,e) &
1940 + dz(k,7) * u(i,1,7,e) &
1941 + dz(k,8) * u(i,1,8,e) &
1942 + dz(k,9) * u(i,1,9,e) &
1943 + dz(k,10) * u(i,1,10,e)
1945 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
1946 + dz(k,2) * v(i,1,2,e) &
1947 + dz(k,3) * v(i,1,3,e) &
1948 + dz(k,4) * v(i,1,4,e) &
1949 + dz(k,5) * v(i,1,5,e) &
1950 + dz(k,6) * v(i,1,6,e) &
1951 + dz(k,7) * v(i,1,7,e) &
1952 + dz(k,8) * v(i,1,8,e) &
1953 + dz(k,9) * v(i,1,9,e) &
1954 + dz(k,10) * v(i,1,10,e)
1956 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
1957 + dz(k,2) * w(i,1,2,e) &
1958 + dz(k,3) * w(i,1,3,e) &
1959 + dz(k,4) * w(i,1,4,e) &
1960 + dz(k,5) * w(i,1,5,e) &
1961 + dz(k,6) * w(i,1,6,e) &
1962 + dz(k,7) * w(i,1,7,e) &
1963 + dz(k,8) * w(i,1,8,e) &
1964 + dz(k,9) * w(i,1,9,e) &
1965 + dz(k,10) * w(i,1,10,e)
1970 ur(i,1,1) = h1(i,1,1,e) &
1971 * ( g11(i,1,1,e) * wur(i,1,1) &
1972 + g12(i,1,1,e) * wus(i,1,1) &
1973 + g13(i,1,1,e) * wut(i,1,1) )
1974 us(i,1,1) = h1(i,1,1,e) &
1975 * ( g12(i,1,1,e) * wur(i,1,1) &
1976 + g22(i,1,1,e) * wus(i,1,1) &
1977 + g23(i,1,1,e) * wut(i,1,1) )
1978 ut(i,1,1) = h1(i,1,1,e) &
1979 * ( g13(i,1,1,e) * wur(i,1,1) &
1980 + g23(i,1,1,e) * wus(i,1,1) &
1981 + g33(i,1,1,e) * wut(i,1,1) )
1983 vr(i,1,1) = h1(i,1,1,e) &
1984 * ( g11(i,1,1,e) * wvr(i,1,1) &
1985 + g12(i,1,1,e) * wvs(i,1,1) &
1986 + g13(i,1,1,e) * wvt(i,1,1) )
1987 vs(i,1,1) = h1(i,1,1,e) &
1988 * ( g12(i,1,1,e) * wvr(i,1,1) &
1989 + g22(i,1,1,e) * wvs(i,1,1) &
1990 + g23(i,1,1,e) * wvt(i,1,1) )
1991 vt(i,1,1) = h1(i,1,1,e) &
1992 * ( g13(i,1,1,e) * wvr(i,1,1) &
1993 + g23(i,1,1,e) * wvs(i,1,1) &
1994 + g33(i,1,1,e) * wvt(i,1,1) )
1996 wr(i,1,1) = h1(i,1,1,e) &
1997 * ( g11(i,1,1,e) * wwr(i,1,1) &
1998 + g12(i,1,1,e) * wws(i,1,1) &
1999 + g13(i,1,1,e) * wwt(i,1,1) )
2000 ws(i,1,1) = h1(i,1,1,e) &
2001 * ( g12(i,1,1,e) * wwr(i,1,1) &
2002 + g22(i,1,1,e) * wws(i,1,1) &
2003 + g23(i,1,1,e) * wwt(i,1,1) )
2004 wt(i,1,1) = h1(i,1,1,e) &
2005 * ( g13(i,1,1,e) * wwr(i,1,1) &
2006 + g23(i,1,1,e) * wws(i,1,1) &
2007 + g33(i,1,1,e) * wwt(i,1,1) )
2012 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
2013 + dxt(i,2) * ur(2,j,1) &
2014 + dxt(i,3) * ur(3,j,1) &
2015 + dxt(i,4) * ur(4,j,1) &
2016 + dxt(i,5) * ur(5,j,1) &
2017 + dxt(i,6) * ur(6,j,1) &
2018 + dxt(i,7) * ur(7,j,1) &
2019 + dxt(i,8) * ur(8,j,1) &
2020 + dxt(i,9) * ur(9,j,1) &
2021 + dxt(i,10) * ur(10,j,1)
2023 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
2024 + dxt(i,2) * vr(2,j,1) &
2025 + dxt(i,3) * vr(3,j,1) &
2026 + dxt(i,4) * vr(4,j,1) &
2027 + dxt(i,5) * vr(5,j,1) &
2028 + dxt(i,6) * vr(6,j,1) &
2029 + dxt(i,7) * vr(7,j,1) &
2030 + dxt(i,8) * vr(8,j,1) &
2031 + dxt(i,9) * vr(9,j,1) &
2032 + dxt(i,10) * vr(10,j,1)
2034 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
2035 + dxt(i,2) * wr(2,j,1) &
2036 + dxt(i,3) * wr(3,j,1) &
2037 + dxt(i,4) * wr(4,j,1) &
2038 + dxt(i,5) * wr(5,j,1) &
2039 + dxt(i,6) * wr(6,j,1) &
2040 + dxt(i,7) * wr(7,j,1) &
2041 + dxt(i,8) * wr(8,j,1) &
2042 + dxt(i,9) * wr(9,j,1) &
2043 + dxt(i,10) * wr(10,j,1)
2050 au(i,j,k,e) = au(i,j,k,e) &
2051 + dyt(j,1) * us(i,1,k) &
2052 + dyt(j,2) * us(i,2,k) &
2053 + dyt(j,3) * us(i,3,k) &
2054 + dyt(j,4) * us(i,4,k) &
2055 + dyt(j,5) * us(i,5,k) &
2056 + dyt(j,6) * us(i,6,k) &
2057 + dyt(j,7) * us(i,7,k) &
2058 + dyt(j,8) * us(i,8,k) &
2059 + dyt(j,9) * us(i,9,k) &
2060 + dyt(j,10) * us(i,10,k)
2062 av(i,j,k,e) = av(i,j,k,e) &
2063 + dyt(j,1) * vs(i,1,k) &
2064 + dyt(j,2) * vs(i,2,k) &
2065 + dyt(j,3) * vs(i,3,k) &
2066 + dyt(j,4) * vs(i,4,k) &
2067 + dyt(j,5) * vs(i,5,k) &
2068 + dyt(j,6) * vs(i,6,k) &
2069 + dyt(j,7) * vs(i,7,k) &
2070 + dyt(j,8) * vs(i,8,k) &
2071 + dyt(j,9) * vs(i,9,k) &
2072 + dyt(j,10) * vs(i,10,k)
2074 aw(i,j,k,e) = aw(i,j,k,e) &
2075 + dyt(j,1) * ws(i,1,k) &
2076 + dyt(j,2) * ws(i,2,k) &
2077 + dyt(j,3) * ws(i,3,k) &
2078 + dyt(j,4) * ws(i,4,k) &
2079 + dyt(j,5) * ws(i,5,k) &
2080 + dyt(j,6) * ws(i,6,k) &
2081 + dyt(j,7) * ws(i,7,k) &
2082 + dyt(j,8) * ws(i,8,k) &
2083 + dyt(j,9) * ws(i,9,k) &
2084 + dyt(j,10) * ws(i,10,k)
2091 au(i,1,k,e) = au(i,1,k,e) &
2092 + dzt(k,1) * ut(i,1,1) &
2093 + dzt(k,2) * ut(i,1,2) &
2094 + dzt(k,3) * ut(i,1,3) &
2095 + dzt(k,4) * ut(i,1,4) &
2096 + dzt(k,5) * ut(i,1,5) &
2097 + dzt(k,6) * ut(i,1,6) &
2098 + dzt(k,7) * ut(i,1,7) &
2099 + dzt(k,8) * ut(i,1,8) &
2100 + dzt(k,9) * ut(i,1,9) &
2101 + dzt(k,10) * ut(i,1,10)
2103 av(i,1,k,e) = av(i,1,k,e) &
2104 + dzt(k,1) * vt(i,1,1) &
2105 + dzt(k,2) * vt(i,1,2) &
2106 + dzt(k,3) * vt(i,1,3) &
2107 + dzt(k,4) * vt(i,1,4) &
2108 + dzt(k,5) * vt(i,1,5) &
2109 + dzt(k,6) * vt(i,1,6) &
2110 + dzt(k,7) * vt(i,1,7) &
2111 + dzt(k,8) * vt(i,1,8) &
2112 + dzt(k,9) * vt(i,1,9) &
2113 + dzt(k,10) * vt(i,1,10)
2115 aw(i,1,k,e) = aw(i,1,k,e) &
2116 + dzt(k,1) * wt(i,1,1) &
2117 + dzt(k,2) * wt(i,1,2) &
2118 + dzt(k,3) * wt(i,1,3) &
2119 + dzt(k,4) * wt(i,1,4) &
2120 + dzt(k,5) * wt(i,1,5) &
2121 + dzt(k,6) * wt(i,1,6) &
2122 + dzt(k,7) * wt(i,1,7) &
2123 + dzt(k,8) * wt(i,1,8) &
2124 + dzt(k,9) * wt(i,1,9) &
2125 + dzt(k,10) * wt(i,1,10)
2131 end subroutine ax_helm_vector_lx10
2133 subroutine ax_helm_vector_lx9(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
2134 h1, G11, G22, G33, G12, G13, G23, n)
2135 integer,
parameter :: lx = 9
2136 integer,
intent(in) :: n
2137 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
2138 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
2139 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
2140 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
2141 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
2142 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
2143 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
2144 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
2145 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
2146 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
2147 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
2148 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
2149 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
2150 real(kind=rp),
intent(in) :: dx(lx, lx)
2151 real(kind=rp),
intent(in) :: dy(lx, lx)
2152 real(kind=rp),
intent(in) :: dz(lx, lx)
2153 real(kind=rp),
intent(in) :: dxt(lx, lx)
2154 real(kind=rp),
intent(in) :: dyt(lx, lx)
2155 real(kind=rp),
intent(in) :: dzt(lx, lx)
2156 real(kind=rp) :: ur(lx, lx, lx)
2157 real(kind=rp) :: us(lx, lx, lx)
2158 real(kind=rp) :: ut(lx, lx, lx)
2159 real(kind=rp) :: vr(lx, lx, lx)
2160 real(kind=rp) :: vs(lx, lx, lx)
2161 real(kind=rp) :: vt(lx, lx, lx)
2162 real(kind=rp) :: wr(lx, lx, lx)
2163 real(kind=rp) :: ws(lx, lx, lx)
2164 real(kind=rp) :: wt(lx, lx, lx)
2165 real(kind=rp) :: wur(lx, lx, lx)
2166 real(kind=rp) :: wus(lx, lx, lx)
2167 real(kind=rp) :: wut(lx, lx, lx)
2168 real(kind=rp) :: wvr(lx, lx, lx)
2169 real(kind=rp) :: wvs(lx, lx, lx)
2170 real(kind=rp) :: wvt(lx, lx, lx)
2171 real(kind=rp) :: wwr(lx, lx, lx)
2172 real(kind=rp) :: wws(lx, lx, lx)
2173 real(kind=rp) :: wwt(lx, lx, lx)
2174 integer :: e, i, j, k
2180 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
2181 + dx(i,2) * u(2,j,1,e) &
2182 + dx(i,3) * u(3,j,1,e) &
2183 + dx(i,4) * u(4,j,1,e) &
2184 + dx(i,5) * u(5,j,1,e) &
2185 + dx(i,6) * u(6,j,1,e) &
2186 + dx(i,7) * u(7,j,1,e) &
2187 + dx(i,8) * u(8,j,1,e) &
2188 + dx(i,9) * u(9,j,1,e)
2190 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
2191 + dx(i,2) * v(2,j,1,e) &
2192 + dx(i,3) * v(3,j,1,e) &
2193 + dx(i,4) * v(4,j,1,e) &
2194 + dx(i,5) * v(5,j,1,e) &
2195 + dx(i,6) * v(6,j,1,e) &
2196 + dx(i,7) * v(7,j,1,e) &
2197 + dx(i,8) * v(8,j,1,e) &
2198 + dx(i,9) * v(9,j,1,e)
2200 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
2201 + dx(i,2) * w(2,j,1,e) &
2202 + dx(i,3) * w(3,j,1,e) &
2203 + dx(i,4) * w(4,j,1,e) &
2204 + dx(i,5) * w(5,j,1,e) &
2205 + dx(i,6) * w(6,j,1,e) &
2206 + dx(i,7) * w(7,j,1,e) &
2207 + dx(i,8) * w(8,j,1,e) &
2208 + dx(i,9) * w(9,j,1,e)
2215 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
2216 + dy(j,2) * u(i,2,k,e) &
2217 + dy(j,3) * u(i,3,k,e) &
2218 + dy(j,4) * u(i,4,k,e) &
2219 + dy(j,5) * u(i,5,k,e) &
2220 + dy(j,6) * u(i,6,k,e) &
2221 + dy(j,7) * u(i,7,k,e) &
2222 + dy(j,8) * u(i,8,k,e) &
2223 + dy(j,9) * u(i,9,k,e)
2225 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
2226 + dy(j,2) * v(i,2,k,e) &
2227 + dy(j,3) * v(i,3,k,e) &
2228 + dy(j,4) * v(i,4,k,e) &
2229 + dy(j,5) * v(i,5,k,e) &
2230 + dy(j,6) * v(i,6,k,e) &
2231 + dy(j,7) * v(i,7,k,e) &
2232 + dy(j,8) * v(i,8,k,e) &
2233 + dy(j,9) * v(i,9,k,e)
2235 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
2236 + dy(j,2) * w(i,2,k,e) &
2237 + dy(j,3) * w(i,3,k,e) &
2238 + dy(j,4) * w(i,4,k,e) &
2239 + dy(j,5) * w(i,5,k,e) &
2240 + dy(j,6) * w(i,6,k,e) &
2241 + dy(j,7) * w(i,7,k,e) &
2242 + dy(j,8) * w(i,8,k,e) &
2243 + dy(j,9) * w(i,9,k,e)
2250 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
2251 + dz(k,2) * u(i,1,2,e) &
2252 + dz(k,3) * u(i,1,3,e) &
2253 + dz(k,4) * u(i,1,4,e) &
2254 + dz(k,5) * u(i,1,5,e) &
2255 + dz(k,6) * u(i,1,6,e) &
2256 + dz(k,7) * u(i,1,7,e) &
2257 + dz(k,8) * u(i,1,8,e) &
2258 + dz(k,9) * u(i,1,9,e)
2260 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
2261 + dz(k,2) * v(i,1,2,e) &
2262 + dz(k,3) * v(i,1,3,e) &
2263 + dz(k,4) * v(i,1,4,e) &
2264 + dz(k,5) * v(i,1,5,e) &
2265 + dz(k,6) * v(i,1,6,e) &
2266 + dz(k,7) * v(i,1,7,e) &
2267 + dz(k,8) * v(i,1,8,e) &
2268 + dz(k,9) * v(i,1,9,e)
2270 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
2271 + dz(k,2) * w(i,1,2,e) &
2272 + dz(k,3) * w(i,1,3,e) &
2273 + dz(k,4) * w(i,1,4,e) &
2274 + dz(k,5) * w(i,1,5,e) &
2275 + dz(k,6) * w(i,1,6,e) &
2276 + dz(k,7) * w(i,1,7,e) &
2277 + dz(k,8) * w(i,1,8,e) &
2278 + dz(k,9) * w(i,1,9,e)
2283 ur(i,1,1) = h1(i,1,1,e) &
2284 * ( g11(i,1,1,e) * wur(i,1,1) &
2285 + g12(i,1,1,e) * wus(i,1,1) &
2286 + g13(i,1,1,e) * wut(i,1,1) )
2287 us(i,1,1) = h1(i,1,1,e) &
2288 * ( g12(i,1,1,e) * wur(i,1,1) &
2289 + g22(i,1,1,e) * wus(i,1,1) &
2290 + g23(i,1,1,e) * wut(i,1,1) )
2291 ut(i,1,1) = h1(i,1,1,e) &
2292 * ( g13(i,1,1,e) * wur(i,1,1) &
2293 + g23(i,1,1,e) * wus(i,1,1) &
2294 + g33(i,1,1,e) * wut(i,1,1) )
2296 vr(i,1,1) = h1(i,1,1,e) &
2297 * ( g11(i,1,1,e) * wvr(i,1,1) &
2298 + g12(i,1,1,e) * wvs(i,1,1) &
2299 + g13(i,1,1,e) * wvt(i,1,1) )
2300 vs(i,1,1) = h1(i,1,1,e) &
2301 * ( g12(i,1,1,e) * wvr(i,1,1) &
2302 + g22(i,1,1,e) * wvs(i,1,1) &
2303 + g23(i,1,1,e) * wvt(i,1,1) )
2304 vt(i,1,1) = h1(i,1,1,e) &
2305 * ( g13(i,1,1,e) * wvr(i,1,1) &
2306 + g23(i,1,1,e) * wvs(i,1,1) &
2307 + g33(i,1,1,e) * wvt(i,1,1) )
2309 wr(i,1,1) = h1(i,1,1,e) &
2310 * ( g11(i,1,1,e) * wwr(i,1,1) &
2311 + g12(i,1,1,e) * wws(i,1,1) &
2312 + g13(i,1,1,e) * wwt(i,1,1) )
2313 ws(i,1,1) = h1(i,1,1,e) &
2314 * ( g12(i,1,1,e) * wwr(i,1,1) &
2315 + g22(i,1,1,e) * wws(i,1,1) &
2316 + g23(i,1,1,e) * wwt(i,1,1) )
2317 wt(i,1,1) = h1(i,1,1,e) &
2318 * ( g13(i,1,1,e) * wwr(i,1,1) &
2319 + g23(i,1,1,e) * wws(i,1,1) &
2320 + g33(i,1,1,e) * wwt(i,1,1) )
2325 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
2326 + dxt(i,2) * ur(2,j,1) &
2327 + dxt(i,3) * ur(3,j,1) &
2328 + dxt(i,4) * ur(4,j,1) &
2329 + dxt(i,5) * ur(5,j,1) &
2330 + dxt(i,6) * ur(6,j,1) &
2331 + dxt(i,7) * ur(7,j,1) &
2332 + dxt(i,8) * ur(8,j,1) &
2333 + dxt(i,9) * ur(9,j,1)
2335 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
2336 + dxt(i,2) * vr(2,j,1) &
2337 + dxt(i,3) * vr(3,j,1) &
2338 + dxt(i,4) * vr(4,j,1) &
2339 + dxt(i,5) * vr(5,j,1) &
2340 + dxt(i,6) * vr(6,j,1) &
2341 + dxt(i,7) * vr(7,j,1) &
2342 + dxt(i,8) * vr(8,j,1) &
2343 + dxt(i,9) * vr(9,j,1)
2345 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
2346 + dxt(i,2) * wr(2,j,1) &
2347 + dxt(i,3) * wr(3,j,1) &
2348 + dxt(i,4) * wr(4,j,1) &
2349 + dxt(i,5) * wr(5,j,1) &
2350 + dxt(i,6) * wr(6,j,1) &
2351 + dxt(i,7) * wr(7,j,1) &
2352 + dxt(i,8) * wr(8,j,1) &
2353 + dxt(i,9) * wr(9,j,1)
2360 au(i,j,k,e) = au(i,j,k,e) &
2361 + dyt(j,1) * us(i,1,k) &
2362 + dyt(j,2) * us(i,2,k) &
2363 + dyt(j,3) * us(i,3,k) &
2364 + dyt(j,4) * us(i,4,k) &
2365 + dyt(j,5) * us(i,5,k) &
2366 + dyt(j,6) * us(i,6,k) &
2367 + dyt(j,7) * us(i,7,k) &
2368 + dyt(j,8) * us(i,8,k) &
2369 + dyt(j,9) * us(i,9,k)
2371 av(i,j,k,e) = av(i,j,k,e) &
2372 + dyt(j,1) * vs(i,1,k) &
2373 + dyt(j,2) * vs(i,2,k) &
2374 + dyt(j,3) * vs(i,3,k) &
2375 + dyt(j,4) * vs(i,4,k) &
2376 + dyt(j,5) * vs(i,5,k) &
2377 + dyt(j,6) * vs(i,6,k) &
2378 + dyt(j,7) * vs(i,7,k) &
2379 + dyt(j,8) * vs(i,8,k) &
2380 + dyt(j,9) * vs(i,9,k)
2382 aw(i,j,k,e) = aw(i,j,k,e) &
2383 + dyt(j,1) * ws(i,1,k) &
2384 + dyt(j,2) * ws(i,2,k) &
2385 + dyt(j,3) * ws(i,3,k) &
2386 + dyt(j,4) * ws(i,4,k) &
2387 + dyt(j,5) * ws(i,5,k) &
2388 + dyt(j,6) * ws(i,6,k) &
2389 + dyt(j,7) * ws(i,7,k) &
2390 + dyt(j,8) * ws(i,8,k) &
2391 + dyt(j,9) * ws(i,9,k)
2398 au(i,1,k,e) = au(i,1,k,e) &
2399 + dzt(k,1) * ut(i,1,1) &
2400 + dzt(k,2) * ut(i,1,2) &
2401 + dzt(k,3) * ut(i,1,3) &
2402 + dzt(k,4) * ut(i,1,4) &
2403 + dzt(k,5) * ut(i,1,5) &
2404 + dzt(k,6) * ut(i,1,6) &
2405 + dzt(k,7) * ut(i,1,7) &
2406 + dzt(k,8) * ut(i,1,8) &
2407 + dzt(k,9) * ut(i,1,9)
2409 av(i,1,k,e) = av(i,1,k,e) &
2410 + dzt(k,1) * vt(i,1,1) &
2411 + dzt(k,2) * vt(i,1,2) &
2412 + dzt(k,3) * vt(i,1,3) &
2413 + dzt(k,4) * vt(i,1,4) &
2414 + dzt(k,5) * vt(i,1,5) &
2415 + dzt(k,6) * vt(i,1,6) &
2416 + dzt(k,7) * vt(i,1,7) &
2417 + dzt(k,8) * vt(i,1,8) &
2418 + dzt(k,9) * vt(i,1,9)
2420 aw(i,1,k,e) = aw(i,1,k,e) &
2421 + dzt(k,1) * wt(i,1,1) &
2422 + dzt(k,2) * wt(i,1,2) &
2423 + dzt(k,3) * wt(i,1,3) &
2424 + dzt(k,4) * wt(i,1,4) &
2425 + dzt(k,5) * wt(i,1,5) &
2426 + dzt(k,6) * wt(i,1,6) &
2427 + dzt(k,7) * wt(i,1,7) &
2428 + dzt(k,8) * wt(i,1,8) &
2429 + dzt(k,9) * wt(i,1,9)
2435 end subroutine ax_helm_vector_lx9
2437 subroutine ax_helm_vector_lx8(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
2438 h1, G11, G22, G33, G12, G13, G23, n)
2439 integer,
parameter :: lx = 8
2440 integer,
intent(in) :: n
2441 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
2442 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
2443 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
2444 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
2445 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
2446 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
2447 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
2448 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
2449 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
2450 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
2451 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
2452 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
2453 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
2454 real(kind=rp),
intent(in) :: dx(lx, lx)
2455 real(kind=rp),
intent(in) :: dy(lx, lx)
2456 real(kind=rp),
intent(in) :: dz(lx, lx)
2457 real(kind=rp),
intent(in) :: dxt(lx, lx)
2458 real(kind=rp),
intent(in) :: dyt(lx, lx)
2459 real(kind=rp),
intent(in) :: dzt(lx, lx)
2460 real(kind=rp) :: ur(lx, lx, lx)
2461 real(kind=rp) :: us(lx, lx, lx)
2462 real(kind=rp) :: ut(lx, lx, lx)
2463 real(kind=rp) :: vr(lx, lx, lx)
2464 real(kind=rp) :: vs(lx, lx, lx)
2465 real(kind=rp) :: vt(lx, lx, lx)
2466 real(kind=rp) :: wr(lx, lx, lx)
2467 real(kind=rp) :: ws(lx, lx, lx)
2468 real(kind=rp) :: wt(lx, lx, lx)
2469 real(kind=rp) :: wur(lx, lx, lx)
2470 real(kind=rp) :: wus(lx, lx, lx)
2471 real(kind=rp) :: wut(lx, lx, lx)
2472 real(kind=rp) :: wvr(lx, lx, lx)
2473 real(kind=rp) :: wvs(lx, lx, lx)
2474 real(kind=rp) :: wvt(lx, lx, lx)
2475 real(kind=rp) :: wwr(lx, lx, lx)
2476 real(kind=rp) :: wws(lx, lx, lx)
2477 real(kind=rp) :: wwt(lx, lx, lx)
2478 integer :: e, i, j, k
2484 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
2485 + dx(i,2) * u(2,j,1,e) &
2486 + dx(i,3) * u(3,j,1,e) &
2487 + dx(i,4) * u(4,j,1,e) &
2488 + dx(i,5) * u(5,j,1,e) &
2489 + dx(i,6) * u(6,j,1,e) &
2490 + dx(i,7) * u(7,j,1,e) &
2491 + dx(i,8) * u(8,j,1,e)
2493 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
2494 + dx(i,2) * v(2,j,1,e) &
2495 + dx(i,3) * v(3,j,1,e) &
2496 + dx(i,4) * v(4,j,1,e) &
2497 + dx(i,5) * v(5,j,1,e) &
2498 + dx(i,6) * v(6,j,1,e) &
2499 + dx(i,7) * v(7,j,1,e) &
2500 + dx(i,8) * v(8,j,1,e)
2502 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
2503 + dx(i,2) * w(2,j,1,e) &
2504 + dx(i,3) * w(3,j,1,e) &
2505 + dx(i,4) * w(4,j,1,e) &
2506 + dx(i,5) * w(5,j,1,e) &
2507 + dx(i,6) * w(6,j,1,e) &
2508 + dx(i,7) * w(7,j,1,e) &
2509 + dx(i,8) * w(8,j,1,e)
2516 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
2517 + dy(j,2) * u(i,2,k,e) &
2518 + dy(j,3) * u(i,3,k,e) &
2519 + dy(j,4) * u(i,4,k,e) &
2520 + dy(j,5) * u(i,5,k,e) &
2521 + dy(j,6) * u(i,6,k,e) &
2522 + dy(j,7) * u(i,7,k,e) &
2523 + dy(j,8) * u(i,8,k,e)
2525 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
2526 + dy(j,2) * v(i,2,k,e) &
2527 + dy(j,3) * v(i,3,k,e) &
2528 + dy(j,4) * v(i,4,k,e) &
2529 + dy(j,5) * v(i,5,k,e) &
2530 + dy(j,6) * v(i,6,k,e) &
2531 + dy(j,7) * v(i,7,k,e) &
2532 + dy(j,8) * v(i,8,k,e)
2534 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
2535 + dy(j,2) * w(i,2,k,e) &
2536 + dy(j,3) * w(i,3,k,e) &
2537 + dy(j,4) * w(i,4,k,e) &
2538 + dy(j,5) * w(i,5,k,e) &
2539 + dy(j,6) * w(i,6,k,e) &
2540 + dy(j,7) * w(i,7,k,e) &
2541 + dy(j,8) * w(i,8,k,e)
2548 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
2549 + dz(k,2) * u(i,1,2,e) &
2550 + dz(k,3) * u(i,1,3,e) &
2551 + dz(k,4) * u(i,1,4,e) &
2552 + dz(k,5) * u(i,1,5,e) &
2553 + dz(k,6) * u(i,1,6,e) &
2554 + dz(k,7) * u(i,1,7,e) &
2555 + dz(k,8) * u(i,1,8,e)
2557 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
2558 + dz(k,2) * v(i,1,2,e) &
2559 + dz(k,3) * v(i,1,3,e) &
2560 + dz(k,4) * v(i,1,4,e) &
2561 + dz(k,5) * v(i,1,5,e) &
2562 + dz(k,6) * v(i,1,6,e) &
2563 + dz(k,7) * v(i,1,7,e) &
2564 + dz(k,8) * v(i,1,8,e)
2566 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
2567 + dz(k,2) * w(i,1,2,e) &
2568 + dz(k,3) * w(i,1,3,e) &
2569 + dz(k,4) * w(i,1,4,e) &
2570 + dz(k,5) * w(i,1,5,e) &
2571 + dz(k,6) * w(i,1,6,e) &
2572 + dz(k,7) * w(i,1,7,e) &
2573 + dz(k,8) * w(i,1,8,e)
2578 ur(i,1,1) = h1(i,1,1,e) &
2579 * ( g11(i,1,1,e) * wur(i,1,1) &
2580 + g12(i,1,1,e) * wus(i,1,1) &
2581 + g13(i,1,1,e) * wut(i,1,1) )
2582 us(i,1,1) = h1(i,1,1,e) &
2583 * ( g12(i,1,1,e) * wur(i,1,1) &
2584 + g22(i,1,1,e) * wus(i,1,1) &
2585 + g23(i,1,1,e) * wut(i,1,1) )
2586 ut(i,1,1) = h1(i,1,1,e) &
2587 * ( g13(i,1,1,e) * wur(i,1,1) &
2588 + g23(i,1,1,e) * wus(i,1,1) &
2589 + g33(i,1,1,e) * wut(i,1,1) )
2591 vr(i,1,1) = h1(i,1,1,e) &
2592 * ( g11(i,1,1,e) * wvr(i,1,1) &
2593 + g12(i,1,1,e) * wvs(i,1,1) &
2594 + g13(i,1,1,e) * wvt(i,1,1) )
2595 vs(i,1,1) = h1(i,1,1,e) &
2596 * ( g12(i,1,1,e) * wvr(i,1,1) &
2597 + g22(i,1,1,e) * wvs(i,1,1) &
2598 + g23(i,1,1,e) * wvt(i,1,1) )
2599 vt(i,1,1) = h1(i,1,1,e) &
2600 * ( g13(i,1,1,e) * wvr(i,1,1) &
2601 + g23(i,1,1,e) * wvs(i,1,1) &
2602 + g33(i,1,1,e) * wvt(i,1,1) )
2604 wr(i,1,1) = h1(i,1,1,e) &
2605 * ( g11(i,1,1,e) * wwr(i,1,1) &
2606 + g12(i,1,1,e) * wws(i,1,1) &
2607 + g13(i,1,1,e) * wwt(i,1,1) )
2608 ws(i,1,1) = h1(i,1,1,e) &
2609 * ( g12(i,1,1,e) * wwr(i,1,1) &
2610 + g22(i,1,1,e) * wws(i,1,1) &
2611 + g23(i,1,1,e) * wwt(i,1,1) )
2612 wt(i,1,1) = h1(i,1,1,e) &
2613 * ( g13(i,1,1,e) * wwr(i,1,1) &
2614 + g23(i,1,1,e) * wws(i,1,1) &
2615 + g33(i,1,1,e) * wwt(i,1,1) )
2620 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
2621 + dxt(i,2) * ur(2,j,1) &
2622 + dxt(i,3) * ur(3,j,1) &
2623 + dxt(i,4) * ur(4,j,1) &
2624 + dxt(i,5) * ur(5,j,1) &
2625 + dxt(i,6) * ur(6,j,1) &
2626 + dxt(i,7) * ur(7,j,1) &
2627 + dxt(i,8) * ur(8,j,1)
2629 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
2630 + dxt(i,2) * vr(2,j,1) &
2631 + dxt(i,3) * vr(3,j,1) &
2632 + dxt(i,4) * vr(4,j,1) &
2633 + dxt(i,5) * vr(5,j,1) &
2634 + dxt(i,6) * vr(6,j,1) &
2635 + dxt(i,7) * vr(7,j,1) &
2636 + dxt(i,8) * vr(8,j,1)
2638 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
2639 + dxt(i,2) * wr(2,j,1) &
2640 + dxt(i,3) * wr(3,j,1) &
2641 + dxt(i,4) * wr(4,j,1) &
2642 + dxt(i,5) * wr(5,j,1) &
2643 + dxt(i,6) * wr(6,j,1) &
2644 + dxt(i,7) * wr(7,j,1) &
2645 + dxt(i,8) * wr(8,j,1)
2652 au(i,j,k,e) = au(i,j,k,e) &
2653 + dyt(j,1) * us(i,1,k) &
2654 + dyt(j,2) * us(i,2,k) &
2655 + dyt(j,3) * us(i,3,k) &
2656 + dyt(j,4) * us(i,4,k) &
2657 + dyt(j,5) * us(i,5,k) &
2658 + dyt(j,6) * us(i,6,k) &
2659 + dyt(j,7) * us(i,7,k) &
2660 + dyt(j,8) * us(i,8,k)
2662 av(i,j,k,e) = av(i,j,k,e) &
2663 + dyt(j,1) * vs(i,1,k) &
2664 + dyt(j,2) * vs(i,2,k) &
2665 + dyt(j,3) * vs(i,3,k) &
2666 + dyt(j,4) * vs(i,4,k) &
2667 + dyt(j,5) * vs(i,5,k) &
2668 + dyt(j,6) * vs(i,6,k) &
2669 + dyt(j,7) * vs(i,7,k) &
2670 + dyt(j,8) * vs(i,8,k)
2672 aw(i,j,k,e) = aw(i,j,k,e) &
2673 + dyt(j,1) * ws(i,1,k) &
2674 + dyt(j,2) * ws(i,2,k) &
2675 + dyt(j,3) * ws(i,3,k) &
2676 + dyt(j,4) * ws(i,4,k) &
2677 + dyt(j,5) * ws(i,5,k) &
2678 + dyt(j,6) * ws(i,6,k) &
2679 + dyt(j,7) * ws(i,7,k) &
2680 + dyt(j,8) * ws(i,8,k)
2687 au(i,1,k,e) = au(i,1,k,e) &
2688 + dzt(k,1) * ut(i,1,1) &
2689 + dzt(k,2) * ut(i,1,2) &
2690 + dzt(k,3) * ut(i,1,3) &
2691 + dzt(k,4) * ut(i,1,4) &
2692 + dzt(k,5) * ut(i,1,5) &
2693 + dzt(k,6) * ut(i,1,6) &
2694 + dzt(k,7) * ut(i,1,7) &
2695 + dzt(k,8) * ut(i,1,8)
2697 av(i,1,k,e) = av(i,1,k,e) &
2698 + dzt(k,1) * vt(i,1,1) &
2699 + dzt(k,2) * vt(i,1,2) &
2700 + dzt(k,3) * vt(i,1,3) &
2701 + dzt(k,4) * vt(i,1,4) &
2702 + dzt(k,5) * vt(i,1,5) &
2703 + dzt(k,6) * vt(i,1,6) &
2704 + dzt(k,7) * vt(i,1,7) &
2705 + dzt(k,8) * vt(i,1,8)
2707 au(i,1,k,e) = au(i,1,k,e) &
2708 + dzt(k,1) * wt(i,1,1) &
2709 + dzt(k,2) * wt(i,1,2) &
2710 + dzt(k,3) * wt(i,1,3) &
2711 + dzt(k,4) * wt(i,1,4) &
2712 + dzt(k,5) * wt(i,1,5) &
2713 + dzt(k,6) * wt(i,1,6) &
2714 + dzt(k,7) * wt(i,1,7) &
2715 + dzt(k,8) * wt(i,1,8)
2721 end subroutine ax_helm_vector_lx8
2723 subroutine ax_helm_vector_lx7(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
2724 h1, G11, G22, G33, G12, G13, G23, n)
2725 integer,
parameter :: lx = 7
2726 integer,
intent(in) :: n
2727 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
2728 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
2729 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
2730 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
2731 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
2732 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
2733 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
2734 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
2735 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
2736 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
2737 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
2738 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
2739 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
2740 real(kind=rp),
intent(in) :: dx(lx, lx)
2741 real(kind=rp),
intent(in) :: dy(lx, lx)
2742 real(kind=rp),
intent(in) :: dz(lx, lx)
2743 real(kind=rp),
intent(in) :: dxt(lx, lx)
2744 real(kind=rp),
intent(in) :: dyt(lx, lx)
2745 real(kind=rp),
intent(in) :: dzt(lx, lx)
2746 real(kind=rp) :: ur(lx, lx, lx)
2747 real(kind=rp) :: us(lx, lx, lx)
2748 real(kind=rp) :: ut(lx, lx, lx)
2749 real(kind=rp) :: vr(lx, lx, lx)
2750 real(kind=rp) :: vs(lx, lx, lx)
2751 real(kind=rp) :: vt(lx, lx, lx)
2752 real(kind=rp) :: wr(lx, lx, lx)
2753 real(kind=rp) :: ws(lx, lx, lx)
2754 real(kind=rp) :: wt(lx, lx, lx)
2755 real(kind=rp) :: wur(lx, lx, lx)
2756 real(kind=rp) :: wus(lx, lx, lx)
2757 real(kind=rp) :: wut(lx, lx, lx)
2758 real(kind=rp) :: wvr(lx, lx, lx)
2759 real(kind=rp) :: wvs(lx, lx, lx)
2760 real(kind=rp) :: wvt(lx, lx, lx)
2761 real(kind=rp) :: wwr(lx, lx, lx)
2762 real(kind=rp) :: wws(lx, lx, lx)
2763 real(kind=rp) :: wwt(lx, lx, lx)
2764 integer :: e, i, j, k
2770 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
2771 + dx(i,2) * u(2,j,1,e) &
2772 + dx(i,3) * u(3,j,1,e) &
2773 + dx(i,4) * u(4,j,1,e) &
2774 + dx(i,5) * u(5,j,1,e) &
2775 + dx(i,6) * u(6,j,1,e) &
2776 + dx(i,7) * u(7,j,1,e)
2778 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
2779 + dx(i,2) * v(2,j,1,e) &
2780 + dx(i,3) * v(3,j,1,e) &
2781 + dx(i,4) * v(4,j,1,e) &
2782 + dx(i,5) * v(5,j,1,e) &
2783 + dx(i,6) * v(6,j,1,e) &
2784 + dx(i,7) * v(7,j,1,e)
2786 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
2787 + dx(i,2) * w(2,j,1,e) &
2788 + dx(i,3) * w(3,j,1,e) &
2789 + dx(i,4) * w(4,j,1,e) &
2790 + dx(i,5) * w(5,j,1,e) &
2791 + dx(i,6) * w(6,j,1,e) &
2792 + dx(i,7) * w(7,j,1,e)
2799 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
2800 + dy(j,2) * u(i,2,k,e) &
2801 + dy(j,3) * u(i,3,k,e) &
2802 + dy(j,4) * u(i,4,k,e) &
2803 + dy(j,5) * u(i,5,k,e) &
2804 + dy(j,6) * u(i,6,k,e) &
2805 + dy(j,7) * u(i,7,k,e)
2807 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
2808 + dy(j,2) * v(i,2,k,e) &
2809 + dy(j,3) * v(i,3,k,e) &
2810 + dy(j,4) * v(i,4,k,e) &
2811 + dy(j,5) * v(i,5,k,e) &
2812 + dy(j,6) * v(i,6,k,e) &
2813 + dy(j,7) * v(i,7,k,e)
2815 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
2816 + dy(j,2) * w(i,2,k,e) &
2817 + dy(j,3) * w(i,3,k,e) &
2818 + dy(j,4) * w(i,4,k,e) &
2819 + dy(j,5) * w(i,5,k,e) &
2820 + dy(j,6) * w(i,6,k,e) &
2821 + dy(j,7) * w(i,7,k,e)
2828 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
2829 + dz(k,2) * u(i,1,2,e) &
2830 + dz(k,3) * u(i,1,3,e) &
2831 + dz(k,4) * u(i,1,4,e) &
2832 + dz(k,5) * u(i,1,5,e) &
2833 + dz(k,6) * u(i,1,6,e) &
2834 + dz(k,7) * u(i,1,7,e)
2836 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
2837 + dz(k,2) * v(i,1,2,e) &
2838 + dz(k,3) * v(i,1,3,e) &
2839 + dz(k,4) * v(i,1,4,e) &
2840 + dz(k,5) * v(i,1,5,e) &
2841 + dz(k,6) * v(i,1,6,e) &
2842 + dz(k,7) * v(i,1,7,e)
2844 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
2845 + dz(k,2) * w(i,1,2,e) &
2846 + dz(k,3) * w(i,1,3,e) &
2847 + dz(k,4) * w(i,1,4,e) &
2848 + dz(k,5) * w(i,1,5,e) &
2849 + dz(k,6) * w(i,1,6,e) &
2850 + dz(k,7) * w(i,1,7,e)
2855 ur(i,1,1) = h1(i,1,1,e) &
2856 * ( g11(i,1,1,e) * wur(i,1,1) &
2857 + g12(i,1,1,e) * wus(i,1,1) &
2858 + g13(i,1,1,e) * wut(i,1,1) )
2859 us(i,1,1) = h1(i,1,1,e) &
2860 * ( g12(i,1,1,e) * wur(i,1,1) &
2861 + g22(i,1,1,e) * wus(i,1,1) &
2862 + g23(i,1,1,e) * wut(i,1,1) )
2863 ut(i,1,1) = h1(i,1,1,e) &
2864 * ( g13(i,1,1,e) * wur(i,1,1) &
2865 + g23(i,1,1,e) * wus(i,1,1) &
2866 + g33(i,1,1,e) * wut(i,1,1) )
2868 vr(i,1,1) = h1(i,1,1,e) &
2869 * ( g11(i,1,1,e) * wvr(i,1,1) &
2870 + g12(i,1,1,e) * wvs(i,1,1) &
2871 + g13(i,1,1,e) * wvt(i,1,1) )
2872 vs(i,1,1) = h1(i,1,1,e) &
2873 * ( g12(i,1,1,e) * wvr(i,1,1) &
2874 + g22(i,1,1,e) * wvs(i,1,1) &
2875 + g23(i,1,1,e) * wvt(i,1,1) )
2876 vt(i,1,1) = h1(i,1,1,e) &
2877 * ( g13(i,1,1,e) * wvr(i,1,1) &
2878 + g23(i,1,1,e) * wvs(i,1,1) &
2879 + g33(i,1,1,e) * wvt(i,1,1) )
2881 wr(i,1,1) = h1(i,1,1,e) &
2882 * ( g11(i,1,1,e) * wwr(i,1,1) &
2883 + g12(i,1,1,e) * wws(i,1,1) &
2884 + g13(i,1,1,e) * wwt(i,1,1) )
2885 ws(i,1,1) = h1(i,1,1,e) &
2886 * ( g12(i,1,1,e) * wwr(i,1,1) &
2887 + g22(i,1,1,e) * wws(i,1,1) &
2888 + g23(i,1,1,e) * wwt(i,1,1) )
2889 wt(i,1,1) = h1(i,1,1,e) &
2890 * ( g13(i,1,1,e) * wwr(i,1,1) &
2891 + g23(i,1,1,e) * wws(i,1,1) &
2892 + g33(i,1,1,e) * wwt(i,1,1) )
2897 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
2898 + dxt(i,2) * ur(2,j,1) &
2899 + dxt(i,3) * ur(3,j,1) &
2900 + dxt(i,4) * ur(4,j,1) &
2901 + dxt(i,5) * ur(5,j,1) &
2902 + dxt(i,6) * ur(6,j,1) &
2903 + dxt(i,7) * ur(7,j,1)
2905 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
2906 + dxt(i,2) * vr(2,j,1) &
2907 + dxt(i,3) * vr(3,j,1) &
2908 + dxt(i,4) * vr(4,j,1) &
2909 + dxt(i,5) * vr(5,j,1) &
2910 + dxt(i,6) * vr(6,j,1) &
2911 + dxt(i,7) * vr(7,j,1)
2913 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
2914 + dxt(i,2) * wr(2,j,1) &
2915 + dxt(i,3) * wr(3,j,1) &
2916 + dxt(i,4) * wr(4,j,1) &
2917 + dxt(i,5) * wr(5,j,1) &
2918 + dxt(i,6) * wr(6,j,1) &
2919 + dxt(i,7) * wr(7,j,1)
2926 au(i,j,k,e) = au(i,j,k,e) &
2927 + dyt(j,1) * us(i,1,k) &
2928 + dyt(j,2) * us(i,2,k) &
2929 + dyt(j,3) * us(i,3,k) &
2930 + dyt(j,4) * us(i,4,k) &
2931 + dyt(j,5) * us(i,5,k) &
2932 + dyt(j,6) * us(i,6,k) &
2933 + dyt(j,7) * us(i,7,k)
2935 av(i,j,k,e) = av(i,j,k,e) &
2936 + dyt(j,1) * vs(i,1,k) &
2937 + dyt(j,2) * vs(i,2,k) &
2938 + dyt(j,3) * vs(i,3,k) &
2939 + dyt(j,4) * vs(i,4,k) &
2940 + dyt(j,5) * vs(i,5,k) &
2941 + dyt(j,6) * vs(i,6,k) &
2942 + dyt(j,7) * vs(i,7,k)
2944 aw(i,j,k,e) = aw(i,j,k,e) &
2945 + dyt(j,1) * ws(i,1,k) &
2946 + dyt(j,2) * ws(i,2,k) &
2947 + dyt(j,3) * ws(i,3,k) &
2948 + dyt(j,4) * ws(i,4,k) &
2949 + dyt(j,5) * ws(i,5,k) &
2950 + dyt(j,6) * ws(i,6,k) &
2951 + dyt(j,7) * ws(i,7,k)
2958 au(i,1,k,e) = au(i,1,k,e) &
2959 + dzt(k,1) * ut(i,1,1) &
2960 + dzt(k,2) * ut(i,1,2) &
2961 + dzt(k,3) * ut(i,1,3) &
2962 + dzt(k,4) * ut(i,1,4) &
2963 + dzt(k,5) * ut(i,1,5) &
2964 + dzt(k,6) * ut(i,1,6) &
2965 + dzt(k,7) * ut(i,1,7)
2967 av(i,1,k,e) = av(i,1,k,e) &
2968 + dzt(k,1) * vt(i,1,1) &
2969 + dzt(k,2) * vt(i,1,2) &
2970 + dzt(k,3) * vt(i,1,3) &
2971 + dzt(k,4) * vt(i,1,4) &
2972 + dzt(k,5) * vt(i,1,5) &
2973 + dzt(k,6) * vt(i,1,6) &
2974 + dzt(k,7) * vt(i,1,7)
2976 aw(i,1,k,e) = aw(i,1,k,e) &
2977 + dzt(k,1) * wt(i,1,1) &
2978 + dzt(k,2) * wt(i,1,2) &
2979 + dzt(k,3) * wt(i,1,3) &
2980 + dzt(k,4) * wt(i,1,4) &
2981 + dzt(k,5) * wt(i,1,5) &
2982 + dzt(k,6) * wt(i,1,6) &
2983 + dzt(k,7) * wt(i,1,7)
2989 end subroutine ax_helm_vector_lx7
2991 subroutine ax_helm_vector_lx6(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
2992 h1, G11, G22, G33, G12, G13, G23, n)
2993 integer,
parameter :: lx = 6
2994 integer,
intent(in) :: n
2995 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
2996 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
2997 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
2998 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
2999 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
3000 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
3001 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
3002 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
3003 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
3004 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
3005 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
3006 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
3007 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
3008 real(kind=rp),
intent(in) :: dx(lx, lx)
3009 real(kind=rp),
intent(in) :: dy(lx, lx)
3010 real(kind=rp),
intent(in) :: dz(lx, lx)
3011 real(kind=rp),
intent(in) :: dxt(lx, lx)
3012 real(kind=rp),
intent(in) :: dyt(lx, lx)
3013 real(kind=rp),
intent(in) :: dzt(lx, lx)
3014 real(kind=rp) :: ur(lx, lx, lx)
3015 real(kind=rp) :: us(lx, lx, lx)
3016 real(kind=rp) :: ut(lx, lx, lx)
3017 real(kind=rp) :: vr(lx, lx, lx)
3018 real(kind=rp) :: vs(lx, lx, lx)
3019 real(kind=rp) :: vt(lx, lx, lx)
3020 real(kind=rp) :: wr(lx, lx, lx)
3021 real(kind=rp) :: ws(lx, lx, lx)
3022 real(kind=rp) :: wt(lx, lx, lx)
3023 real(kind=rp) :: wur(lx, lx, lx)
3024 real(kind=rp) :: wus(lx, lx, lx)
3025 real(kind=rp) :: wut(lx, lx, lx)
3026 real(kind=rp) :: wvr(lx, lx, lx)
3027 real(kind=rp) :: wvs(lx, lx, lx)
3028 real(kind=rp) :: wvt(lx, lx, lx)
3029 real(kind=rp) :: wwr(lx, lx, lx)
3030 real(kind=rp) :: wws(lx, lx, lx)
3031 real(kind=rp) :: wwt(lx, lx, lx)
3032 integer :: e, i, j, k
3038 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
3039 + dx(i,2) * u(2,j,1,e) &
3040 + dx(i,3) * u(3,j,1,e) &
3041 + dx(i,4) * u(4,j,1,e) &
3042 + dx(i,5) * u(5,j,1,e) &
3043 + dx(i,6) * u(6,j,1,e)
3045 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
3046 + dx(i,2) * v(2,j,1,e) &
3047 + dx(i,3) * v(3,j,1,e) &
3048 + dx(i,4) * v(4,j,1,e) &
3049 + dx(i,5) * v(5,j,1,e) &
3050 + dx(i,6) * v(6,j,1,e)
3052 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
3053 + dx(i,2) * w(2,j,1,e) &
3054 + dx(i,3) * w(3,j,1,e) &
3055 + dx(i,4) * w(4,j,1,e) &
3056 + dx(i,5) * w(5,j,1,e) &
3057 + dx(i,6) * w(6,j,1,e)
3064 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
3065 + dy(j,2) * u(i,2,k,e) &
3066 + dy(j,3) * u(i,3,k,e) &
3067 + dy(j,4) * u(i,4,k,e) &
3068 + dy(j,5) * u(i,5,k,e) &
3069 + dy(j,6) * u(i,6,k,e)
3071 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
3072 + dy(j,2) * v(i,2,k,e) &
3073 + dy(j,3) * v(i,3,k,e) &
3074 + dy(j,4) * v(i,4,k,e) &
3075 + dy(j,5) * v(i,5,k,e) &
3076 + dy(j,6) * v(i,6,k,e)
3078 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
3079 + dy(j,2) * w(i,2,k,e) &
3080 + dy(j,3) * w(i,3,k,e) &
3081 + dy(j,4) * w(i,4,k,e) &
3082 + dy(j,5) * w(i,5,k,e) &
3083 + dy(j,6) * w(i,6,k,e)
3090 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
3091 + dz(k,2) * u(i,1,2,e) &
3092 + dz(k,3) * u(i,1,3,e) &
3093 + dz(k,4) * u(i,1,4,e) &
3094 + dz(k,5) * u(i,1,5,e) &
3095 + dz(k,6) * u(i,1,6,e)
3097 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
3098 + dz(k,2) * v(i,1,2,e) &
3099 + dz(k,3) * v(i,1,3,e) &
3100 + dz(k,4) * v(i,1,4,e) &
3101 + dz(k,5) * v(i,1,5,e) &
3102 + dz(k,6) * v(i,1,6,e)
3104 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
3105 + dz(k,2) * w(i,1,2,e) &
3106 + dz(k,3) * w(i,1,3,e) &
3107 + dz(k,4) * w(i,1,4,e) &
3108 + dz(k,5) * w(i,1,5,e) &
3109 + dz(k,6) * w(i,1,6,e)
3114 ur(i,1,1) = h1(i,1,1,e) &
3115 * ( g11(i,1,1,e) * wur(i,1,1) &
3116 + g12(i,1,1,e) * wus(i,1,1) &
3117 + g13(i,1,1,e) * wut(i,1,1) )
3118 us(i,1,1) = h1(i,1,1,e) &
3119 * ( g12(i,1,1,e) * wur(i,1,1) &
3120 + g22(i,1,1,e) * wus(i,1,1) &
3121 + g23(i,1,1,e) * wut(i,1,1) )
3122 ut(i,1,1) = h1(i,1,1,e) &
3123 * ( g13(i,1,1,e) * wur(i,1,1) &
3124 + g23(i,1,1,e) * wus(i,1,1) &
3125 + g33(i,1,1,e) * wut(i,1,1) )
3127 vr(i,1,1) = h1(i,1,1,e) &
3128 * ( g11(i,1,1,e) * wvr(i,1,1) &
3129 + g12(i,1,1,e) * wvs(i,1,1) &
3130 + g13(i,1,1,e) * wvt(i,1,1) )
3131 vs(i,1,1) = h1(i,1,1,e) &
3132 * ( g12(i,1,1,e) * wvr(i,1,1) &
3133 + g22(i,1,1,e) * wvs(i,1,1) &
3134 + g23(i,1,1,e) * wvt(i,1,1) )
3135 vt(i,1,1) = h1(i,1,1,e) &
3136 * ( g13(i,1,1,e) * wvr(i,1,1) &
3137 + g23(i,1,1,e) * wvs(i,1,1) &
3138 + g33(i,1,1,e) * wvt(i,1,1) )
3140 wr(i,1,1) = h1(i,1,1,e) &
3141 * ( g11(i,1,1,e) * wwr(i,1,1) &
3142 + g12(i,1,1,e) * wws(i,1,1) &
3143 + g13(i,1,1,e) * wwt(i,1,1) )
3144 ws(i,1,1) = h1(i,1,1,e) &
3145 * ( g12(i,1,1,e) * wwr(i,1,1) &
3146 + g22(i,1,1,e) * wws(i,1,1) &
3147 + g23(i,1,1,e) * wwt(i,1,1) )
3148 wt(i,1,1) = h1(i,1,1,e) &
3149 * ( g13(i,1,1,e) * wwr(i,1,1) &
3150 + g23(i,1,1,e) * wws(i,1,1) &
3151 + g33(i,1,1,e) * wwt(i,1,1) )
3156 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
3157 + dxt(i,2) * ur(2,j,1) &
3158 + dxt(i,3) * ur(3,j,1) &
3159 + dxt(i,4) * ur(4,j,1) &
3160 + dxt(i,5) * ur(5,j,1) &
3161 + dxt(i,6) * ur(6,j,1)
3163 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
3164 + dxt(i,2) * vr(2,j,1) &
3165 + dxt(i,3) * vr(3,j,1) &
3166 + dxt(i,4) * vr(4,j,1) &
3167 + dxt(i,5) * vr(5,j,1) &
3168 + dxt(i,6) * vr(6,j,1)
3170 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
3171 + dxt(i,2) * wr(2,j,1) &
3172 + dxt(i,3) * wr(3,j,1) &
3173 + dxt(i,4) * wr(4,j,1) &
3174 + dxt(i,5) * wr(5,j,1) &
3175 + dxt(i,6) * wr(6,j,1)
3182 au(i,j,k,e) = au(i,j,k,e) &
3183 + dyt(j,1) * us(i,1,k) &
3184 + dyt(j,2) * us(i,2,k) &
3185 + dyt(j,3) * us(i,3,k) &
3186 + dyt(j,4) * us(i,4,k) &
3187 + dyt(j,5) * us(i,5,k) &
3188 + dyt(j,6) * us(i,6,k)
3190 av(i,j,k,e) = av(i,j,k,e) &
3191 + dyt(j,1) * vs(i,1,k) &
3192 + dyt(j,2) * vs(i,2,k) &
3193 + dyt(j,3) * vs(i,3,k) &
3194 + dyt(j,4) * vs(i,4,k) &
3195 + dyt(j,5) * vs(i,5,k) &
3196 + dyt(j,6) * vs(i,6,k)
3198 aw(i,j,k,e) = aw(i,j,k,e) &
3199 + dyt(j,1) * ws(i,1,k) &
3200 + dyt(j,2) * ws(i,2,k) &
3201 + dyt(j,3) * ws(i,3,k) &
3202 + dyt(j,4) * ws(i,4,k) &
3203 + dyt(j,5) * ws(i,5,k) &
3204 + dyt(j,6) * ws(i,6,k)
3211 au(i,1,k,e) = au(i,1,k,e) &
3212 + dzt(k,1) * ut(i,1,1) &
3213 + dzt(k,2) * ut(i,1,2) &
3214 + dzt(k,3) * ut(i,1,3) &
3215 + dzt(k,4) * ut(i,1,4) &
3216 + dzt(k,5) * ut(i,1,5) &
3217 + dzt(k,6) * ut(i,1,6)
3219 av(i,1,k,e) = av(i,1,k,e) &
3220 + dzt(k,1) * vt(i,1,1) &
3221 + dzt(k,2) * vt(i,1,2) &
3222 + dzt(k,3) * vt(i,1,3) &
3223 + dzt(k,4) * vt(i,1,4) &
3224 + dzt(k,5) * vt(i,1,5) &
3225 + dzt(k,6) * vt(i,1,6)
3227 aw(i,1,k,e) = aw(i,1,k,e) &
3228 + dzt(k,1) * wt(i,1,1) &
3229 + dzt(k,2) * wt(i,1,2) &
3230 + dzt(k,3) * wt(i,1,3) &
3231 + dzt(k,4) * wt(i,1,4) &
3232 + dzt(k,5) * wt(i,1,5) &
3233 + dzt(k,6) * wt(i,1,6)
3239 end subroutine ax_helm_vector_lx6
3241 subroutine ax_helm_vector_lx5(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
3242 h1, G11, G22, G33, G12, G13, G23, n)
3243 integer,
parameter :: lx = 5
3244 integer,
intent(in) :: n
3245 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
3246 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
3247 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
3248 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
3249 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
3250 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
3251 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
3252 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
3253 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
3254 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
3255 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
3256 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
3257 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
3258 real(kind=rp),
intent(in) :: dx(lx, lx)
3259 real(kind=rp),
intent(in) :: dy(lx, lx)
3260 real(kind=rp),
intent(in) :: dz(lx, lx)
3261 real(kind=rp),
intent(in) :: dxt(lx, lx)
3262 real(kind=rp),
intent(in) :: dyt(lx, lx)
3263 real(kind=rp),
intent(in) :: dzt(lx, lx)
3264 real(kind=rp) :: ur(lx, lx, lx)
3265 real(kind=rp) :: us(lx, lx, lx)
3266 real(kind=rp) :: ut(lx, lx, lx)
3267 real(kind=rp) :: vr(lx, lx, lx)
3268 real(kind=rp) :: vs(lx, lx, lx)
3269 real(kind=rp) :: vt(lx, lx, lx)
3270 real(kind=rp) :: wr(lx, lx, lx)
3271 real(kind=rp) :: ws(lx, lx, lx)
3272 real(kind=rp) :: wt(lx, lx, lx)
3273 real(kind=rp) :: wur(lx, lx, lx)
3274 real(kind=rp) :: wus(lx, lx, lx)
3275 real(kind=rp) :: wut(lx, lx, lx)
3276 real(kind=rp) :: wvr(lx, lx, lx)
3277 real(kind=rp) :: wvs(lx, lx, lx)
3278 real(kind=rp) :: wvt(lx, lx, lx)
3279 real(kind=rp) :: wwr(lx, lx, lx)
3280 real(kind=rp) :: wws(lx, lx, lx)
3281 real(kind=rp) :: wwt(lx, lx, lx)
3282 integer :: e, i, j, k
3288 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
3289 + dx(i,2) * u(2,j,1,e) &
3290 + dx(i,3) * u(3,j,1,e) &
3291 + dx(i,4) * u(4,j,1,e) &
3292 + dx(i,5) * u(5,j,1,e)
3294 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
3295 + dx(i,2) * v(2,j,1,e) &
3296 + dx(i,3) * v(3,j,1,e) &
3297 + dx(i,4) * v(4,j,1,e) &
3298 + dx(i,5) * v(5,j,1,e)
3300 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
3301 + dx(i,2) * w(2,j,1,e) &
3302 + dx(i,3) * w(3,j,1,e) &
3303 + dx(i,4) * w(4,j,1,e) &
3304 + dx(i,5) * w(5,j,1,e)
3311 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
3312 + dy(j,2) * u(i,2,k,e) &
3313 + dy(j,3) * u(i,3,k,e) &
3314 + dy(j,4) * u(i,4,k,e) &
3315 + dy(j,5) * u(i,5,k,e)
3317 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
3318 + dy(j,2) * v(i,2,k,e) &
3319 + dy(j,3) * v(i,3,k,e) &
3320 + dy(j,4) * v(i,4,k,e) &
3321 + dy(j,5) * v(i,5,k,e)
3323 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
3324 + dy(j,2) * w(i,2,k,e) &
3325 + dy(j,3) * w(i,3,k,e) &
3326 + dy(j,4) * w(i,4,k,e) &
3327 + dy(j,5) * w(i,5,k,e)
3334 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
3335 + dz(k,2) * u(i,1,2,e) &
3336 + dz(k,3) * u(i,1,3,e) &
3337 + dz(k,4) * u(i,1,4,e) &
3338 + dz(k,5) * u(i,1,5,e)
3340 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
3341 + dz(k,2) * v(i,1,2,e) &
3342 + dz(k,3) * v(i,1,3,e) &
3343 + dz(k,4) * v(i,1,4,e) &
3344 + dz(k,5) * v(i,1,5,e)
3346 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
3347 + dz(k,2) * w(i,1,2,e) &
3348 + dz(k,3) * w(i,1,3,e) &
3349 + dz(k,4) * w(i,1,4,e) &
3350 + dz(k,5) * w(i,1,5,e)
3355 ur(i,1,1) = h1(i,1,1,e) &
3356 * ( g11(i,1,1,e) * wur(i,1,1) &
3357 + g12(i,1,1,e) * wus(i,1,1) &
3358 + g13(i,1,1,e) * wut(i,1,1) )
3359 us(i,1,1) = h1(i,1,1,e) &
3360 * ( g12(i,1,1,e) * wur(i,1,1) &
3361 + g22(i,1,1,e) * wus(i,1,1) &
3362 + g23(i,1,1,e) * wut(i,1,1) )
3363 ut(i,1,1) = h1(i,1,1,e) &
3364 * ( g13(i,1,1,e) * wur(i,1,1) &
3365 + g23(i,1,1,e) * wus(i,1,1) &
3366 + g33(i,1,1,e) * wut(i,1,1) )
3368 vr(i,1,1) = h1(i,1,1,e) &
3369 * ( g11(i,1,1,e) * wvr(i,1,1) &
3370 + g12(i,1,1,e) * wvs(i,1,1) &
3371 + g13(i,1,1,e) * wvt(i,1,1) )
3372 vs(i,1,1) = h1(i,1,1,e) &
3373 * ( g12(i,1,1,e) * wvr(i,1,1) &
3374 + g22(i,1,1,e) * wvs(i,1,1) &
3375 + g23(i,1,1,e) * wvt(i,1,1) )
3376 vt(i,1,1) = h1(i,1,1,e) &
3377 * ( g13(i,1,1,e) * wvr(i,1,1) &
3378 + g23(i,1,1,e) * wvs(i,1,1) &
3379 + g33(i,1,1,e) * wvt(i,1,1) )
3381 wr(i,1,1) = h1(i,1,1,e) &
3382 * ( g11(i,1,1,e) * wwr(i,1,1) &
3383 + g12(i,1,1,e) * wws(i,1,1) &
3384 + g13(i,1,1,e) * wwt(i,1,1) )
3385 ws(i,1,1) = h1(i,1,1,e) &
3386 * ( g12(i,1,1,e) * wwr(i,1,1) &
3387 + g22(i,1,1,e) * wws(i,1,1) &
3388 + g23(i,1,1,e) * wwt(i,1,1) )
3389 wt(i,1,1) = h1(i,1,1,e) &
3390 * ( g13(i,1,1,e) * wwr(i,1,1) &
3391 + g23(i,1,1,e) * wws(i,1,1) &
3392 + g33(i,1,1,e) * wwt(i,1,1) )
3397 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
3398 + dxt(i,2) * ur(2,j,1) &
3399 + dxt(i,3) * ur(3,j,1) &
3400 + dxt(i,4) * ur(4,j,1) &
3401 + dxt(i,5) * ur(5,j,1)
3403 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
3404 + dxt(i,2) * vr(2,j,1) &
3405 + dxt(i,3) * vr(3,j,1) &
3406 + dxt(i,4) * vr(4,j,1) &
3407 + dxt(i,5) * vr(5,j,1)
3409 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
3410 + dxt(i,2) * wr(2,j,1) &
3411 + dxt(i,3) * wr(3,j,1) &
3412 + dxt(i,4) * wr(4,j,1) &
3413 + dxt(i,5) * wr(5,j,1)
3420 au(i,j,k,e) = au(i,j,k,e) &
3421 + dyt(j,1) * us(i,1,k) &
3422 + dyt(j,2) * us(i,2,k) &
3423 + dyt(j,3) * us(i,3,k) &
3424 + dyt(j,4) * us(i,4,k) &
3425 + dyt(j,5) * us(i,5,k)
3427 av(i,j,k,e) = av(i,j,k,e) &
3428 + dyt(j,1) * vs(i,1,k) &
3429 + dyt(j,2) * vs(i,2,k) &
3430 + dyt(j,3) * vs(i,3,k) &
3431 + dyt(j,4) * vs(i,4,k) &
3432 + dyt(j,5) * vs(i,5,k)
3434 aw(i,j,k,e) = aw(i,j,k,e) &
3435 + dyt(j,1) * ws(i,1,k) &
3436 + dyt(j,2) * ws(i,2,k) &
3437 + dyt(j,3) * ws(i,3,k) &
3438 + dyt(j,4) * ws(i,4,k) &
3439 + dyt(j,5) * ws(i,5,k)
3446 au(i,1,k,e) = au(i,1,k,e) &
3447 + dzt(k,1) * ut(i,1,1) &
3448 + dzt(k,2) * ut(i,1,2) &
3449 + dzt(k,3) * ut(i,1,3) &
3450 + dzt(k,4) * ut(i,1,4) &
3451 + dzt(k,5) * ut(i,1,5)
3453 av(i,1,k,e) = av(i,1,k,e) &
3454 + dzt(k,1) * vt(i,1,1) &
3455 + dzt(k,2) * vt(i,1,2) &
3456 + dzt(k,3) * vt(i,1,3) &
3457 + dzt(k,4) * vt(i,1,4) &
3458 + dzt(k,5) * vt(i,1,5)
3460 aw(i,1,k,e) = aw(i,1,k,e) &
3461 + dzt(k,1) * wt(i,1,1) &
3462 + dzt(k,2) * wt(i,1,2) &
3463 + dzt(k,3) * wt(i,1,3) &
3464 + dzt(k,4) * wt(i,1,4) &
3465 + dzt(k,5) * wt(i,1,5)
3471 end subroutine ax_helm_vector_lx5
3473 subroutine ax_helm_vector_lx4(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
3474 h1, G11, G22, G33, G12, G13, G23, n)
3475 integer,
parameter :: lx = 4
3476 integer,
intent(in) :: n
3477 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
3478 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
3479 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
3480 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
3481 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
3482 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
3483 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
3484 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
3485 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
3486 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
3487 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
3488 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
3489 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
3490 real(kind=rp),
intent(in) :: dx(lx, lx)
3491 real(kind=rp),
intent(in) :: dy(lx, lx)
3492 real(kind=rp),
intent(in) :: dz(lx, lx)
3493 real(kind=rp),
intent(in) :: dxt(lx, lx)
3494 real(kind=rp),
intent(in) :: dyt(lx, lx)
3495 real(kind=rp),
intent(in) :: dzt(lx, lx)
3496 real(kind=rp) :: ur(lx, lx, lx)
3497 real(kind=rp) :: us(lx, lx, lx)
3498 real(kind=rp) :: ut(lx, lx, lx)
3499 real(kind=rp) :: vr(lx, lx, lx)
3500 real(kind=rp) :: vs(lx, lx, lx)
3501 real(kind=rp) :: vt(lx, lx, lx)
3502 real(kind=rp) :: wr(lx, lx, lx)
3503 real(kind=rp) :: ws(lx, lx, lx)
3504 real(kind=rp) :: wt(lx, lx, lx)
3505 real(kind=rp) :: wur(lx, lx, lx)
3506 real(kind=rp) :: wus(lx, lx, lx)
3507 real(kind=rp) :: wut(lx, lx, lx)
3508 real(kind=rp) :: wvr(lx, lx, lx)
3509 real(kind=rp) :: wvs(lx, lx, lx)
3510 real(kind=rp) :: wvt(lx, lx, lx)
3511 real(kind=rp) :: wwr(lx, lx, lx)
3512 real(kind=rp) :: wws(lx, lx, lx)
3513 real(kind=rp) :: wwt(lx, lx, lx)
3514 integer :: e, i, j, k
3520 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
3521 + dx(i,2) * u(2,j,1,e) &
3522 + dx(i,3) * u(3,j,1,e) &
3523 + dx(i,4) * u(4,j,1,e)
3525 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
3526 + dx(i,2) * v(2,j,1,e) &
3527 + dx(i,3) * v(3,j,1,e) &
3528 + dx(i,4) * v(4,j,1,e)
3530 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
3531 + dx(i,2) * w(2,j,1,e) &
3532 + dx(i,3) * w(3,j,1,e) &
3533 + dx(i,4) * w(4,j,1,e)
3540 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
3541 + dy(j,2) * u(i,2,k,e) &
3542 + dy(j,3) * u(i,3,k,e) &
3543 + dy(j,4) * u(i,4,k,e)
3545 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
3546 + dy(j,2) * v(i,2,k,e) &
3547 + dy(j,3) * v(i,3,k,e) &
3548 + dy(j,4) * v(i,4,k,e)
3550 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
3551 + dy(j,2) * w(i,2,k,e) &
3552 + dy(j,3) * w(i,3,k,e) &
3553 + dy(j,4) * w(i,4,k,e)
3560 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
3561 + dz(k,2) * u(i,1,2,e) &
3562 + dz(k,3) * u(i,1,3,e) &
3563 + dz(k,4) * u(i,1,4,e)
3565 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
3566 + dz(k,2) * v(i,1,2,e) &
3567 + dz(k,3) * v(i,1,3,e) &
3568 + dz(k,4) * v(i,1,4,e)
3570 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
3571 + dz(k,2) * w(i,1,2,e) &
3572 + dz(k,3) * w(i,1,3,e) &
3573 + dz(k,4) * w(i,1,4,e)
3578 ur(i,1,1) = h1(i,1,1,e) &
3579 * ( g11(i,1,1,e) * wur(i,1,1) &
3580 + g12(i,1,1,e) * wus(i,1,1) &
3581 + g13(i,1,1,e) * wut(i,1,1) )
3582 us(i,1,1) = h1(i,1,1,e) &
3583 * ( g12(i,1,1,e) * wur(i,1,1) &
3584 + g22(i,1,1,e) * wus(i,1,1) &
3585 + g23(i,1,1,e) * wut(i,1,1) )
3586 ut(i,1,1) = h1(i,1,1,e) &
3587 * ( g13(i,1,1,e) * wur(i,1,1) &
3588 + g23(i,1,1,e) * wus(i,1,1) &
3589 + g33(i,1,1,e) * wut(i,1,1) )
3591 vr(i,1,1) = h1(i,1,1,e) &
3592 * ( g11(i,1,1,e) * wvr(i,1,1) &
3593 + g12(i,1,1,e) * wvs(i,1,1) &
3594 + g13(i,1,1,e) * wvt(i,1,1) )
3595 vs(i,1,1) = h1(i,1,1,e) &
3596 * ( g12(i,1,1,e) * wvr(i,1,1) &
3597 + g22(i,1,1,e) * wvs(i,1,1) &
3598 + g23(i,1,1,e) * wvt(i,1,1) )
3599 vt(i,1,1) = h1(i,1,1,e) &
3600 * ( g13(i,1,1,e) * wvr(i,1,1) &
3601 + g23(i,1,1,e) * wvs(i,1,1) &
3602 + g33(i,1,1,e) * wvt(i,1,1) )
3604 wr(i,1,1) = h1(i,1,1,e) &
3605 * ( g11(i,1,1,e) * wwr(i,1,1) &
3606 + g12(i,1,1,e) * wws(i,1,1) &
3607 + g13(i,1,1,e) * wwt(i,1,1) )
3608 ws(i,1,1) = h1(i,1,1,e) &
3609 * ( g12(i,1,1,e) * wwr(i,1,1) &
3610 + g22(i,1,1,e) * wws(i,1,1) &
3611 + g23(i,1,1,e) * wwt(i,1,1) )
3612 wt(i,1,1) = h1(i,1,1,e) &
3613 * ( g13(i,1,1,e) * wwr(i,1,1) &
3614 + g23(i,1,1,e) * wws(i,1,1) &
3615 + g33(i,1,1,e) * wwt(i,1,1) )
3620 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
3621 + dxt(i,2) * ur(2,j,1) &
3622 + dxt(i,3) * ur(3,j,1) &
3623 + dxt(i,4) * ur(4,j,1)
3625 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
3626 + dxt(i,2) * vr(2,j,1) &
3627 + dxt(i,3) * vr(3,j,1) &
3628 + dxt(i,4) * vr(4,j,1)
3630 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
3631 + dxt(i,2) * wr(2,j,1) &
3632 + dxt(i,3) * wr(3,j,1) &
3633 + dxt(i,4) * wr(4,j,1)
3640 au(i,j,k,e) = au(i,j,k,e) &
3641 + dyt(j,1) * us(i,1,k) &
3642 + dyt(j,2) * us(i,2,k) &
3643 + dyt(j,3) * us(i,3,k) &
3644 + dyt(j,4) * us(i,4,k)
3646 av(i,j,k,e) = av(i,j,k,e) &
3647 + dyt(j,1) * vs(i,1,k) &
3648 + dyt(j,2) * vs(i,2,k) &
3649 + dyt(j,3) * vs(i,3,k) &
3650 + dyt(j,4) * vs(i,4,k)
3652 aw(i,j,k,e) = aw(i,j,k,e) &
3653 + dyt(j,1) * ws(i,1,k) &
3654 + dyt(j,2) * ws(i,2,k) &
3655 + dyt(j,3) * ws(i,3,k) &
3656 + dyt(j,4) * ws(i,4,k)
3663 au(i,1,k,e) = au(i,1,k,e) &
3664 + dzt(k,1) * ut(i,1,1) &
3665 + dzt(k,2) * ut(i,1,2) &
3666 + dzt(k,3) * ut(i,1,3) &
3667 + dzt(k,4) * ut(i,1,4)
3669 av(i,1,k,e) = av(i,1,k,e) &
3670 + dzt(k,1) * vt(i,1,1) &
3671 + dzt(k,2) * vt(i,1,2) &
3672 + dzt(k,3) * vt(i,1,3) &
3673 + dzt(k,4) * vt(i,1,4)
3675 aw(i,1,k,e) = aw(i,1,k,e) &
3676 + dzt(k,1) * wt(i,1,1) &
3677 + dzt(k,2) * wt(i,1,2) &
3678 + dzt(k,3) * wt(i,1,3) &
3679 + dzt(k,4) * wt(i,1,4)
3685 end subroutine ax_helm_vector_lx4
3687 subroutine ax_helm_vector_lx3(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
3688 h1, G11, G22, G33, G12, G13, G23, n)
3689 integer,
parameter :: lx = 3
3690 integer,
intent(in) :: n
3691 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
3692 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
3693 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
3694 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
3695 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
3696 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
3697 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
3698 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
3699 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
3700 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
3701 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
3702 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
3703 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
3704 real(kind=rp),
intent(in) :: dx(lx, lx)
3705 real(kind=rp),
intent(in) :: dy(lx, lx)
3706 real(kind=rp),
intent(in) :: dz(lx, lx)
3707 real(kind=rp),
intent(in) :: dxt(lx, lx)
3708 real(kind=rp),
intent(in) :: dyt(lx, lx)
3709 real(kind=rp),
intent(in) :: dzt(lx, lx)
3710 real(kind=rp) :: ur(lx, lx, lx)
3711 real(kind=rp) :: us(lx, lx, lx)
3712 real(kind=rp) :: ut(lx, lx, lx)
3713 real(kind=rp) :: vr(lx, lx, lx)
3714 real(kind=rp) :: vs(lx, lx, lx)
3715 real(kind=rp) :: vt(lx, lx, lx)
3716 real(kind=rp) :: wr(lx, lx, lx)
3717 real(kind=rp) :: ws(lx, lx, lx)
3718 real(kind=rp) :: wt(lx, lx, lx)
3719 real(kind=rp) :: wur(lx, lx, lx)
3720 real(kind=rp) :: wus(lx, lx, lx)
3721 real(kind=rp) :: wut(lx, lx, lx)
3722 real(kind=rp) :: wvr(lx, lx, lx)
3723 real(kind=rp) :: wvs(lx, lx, lx)
3724 real(kind=rp) :: wvt(lx, lx, lx)
3725 real(kind=rp) :: wwr(lx, lx, lx)
3726 real(kind=rp) :: wws(lx, lx, lx)
3727 real(kind=rp) :: wwt(lx, lx, lx)
3728 integer :: e, i, j, k
3734 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
3735 + dx(i,2) * u(2,j,1,e) &
3736 + dx(i,3) * u(3,j,1,e)
3738 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
3739 + dx(i,2) * v(2,j,1,e) &
3740 + dx(i,3) * v(3,j,1,e)
3742 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
3743 + dx(i,2) * w(2,j,1,e) &
3744 + dx(i,3) * w(3,j,1,e)
3751 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
3752 + dy(j,2) * u(i,2,k,e) &
3753 + dy(j,3) * u(i,3,k,e)
3755 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
3756 + dy(j,2) * v(i,2,k,e) &
3757 + dy(j,3) * v(i,3,k,e)
3759 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
3760 + dy(j,2) * w(i,2,k,e) &
3761 + dy(j,3) * w(i,3,k,e)
3768 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
3769 + dz(k,2) * u(i,1,2,e) &
3770 + dz(k,3) * u(i,1,3,e)
3772 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
3773 + dz(k,2) * v(i,1,2,e) &
3774 + dz(k,3) * v(i,1,3,e)
3776 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
3777 + dz(k,2) * w(i,1,2,e) &
3778 + dz(k,3) * w(i,1,3,e)
3783 ur(i,1,1) = h1(i,1,1,e) &
3784 * ( g11(i,1,1,e) * wur(i,1,1) &
3785 + g12(i,1,1,e) * wus(i,1,1) &
3786 + g13(i,1,1,e) * wut(i,1,1) )
3787 us(i,1,1) = h1(i,1,1,e) &
3788 * ( g12(i,1,1,e) * wur(i,1,1) &
3789 + g22(i,1,1,e) * wus(i,1,1) &
3790 + g23(i,1,1,e) * wut(i,1,1) )
3791 ut(i,1,1) = h1(i,1,1,e) &
3792 * ( g13(i,1,1,e) * wur(i,1,1) &
3793 + g23(i,1,1,e) * wus(i,1,1) &
3794 + g33(i,1,1,e) * wut(i,1,1) )
3796 vr(i,1,1) = h1(i,1,1,e) &
3797 * ( g11(i,1,1,e) * wvr(i,1,1) &
3798 + g12(i,1,1,e) * wvs(i,1,1) &
3799 + g13(i,1,1,e) * wvt(i,1,1) )
3800 vs(i,1,1) = h1(i,1,1,e) &
3801 * ( g12(i,1,1,e) * wvr(i,1,1) &
3802 + g22(i,1,1,e) * wvs(i,1,1) &
3803 + g23(i,1,1,e) * wvt(i,1,1) )
3804 vt(i,1,1) = h1(i,1,1,e) &
3805 * ( g13(i,1,1,e) * wwr(i,1,1) &
3806 + g23(i,1,1,e) * wws(i,1,1) &
3807 + g33(i,1,1,e) * wwt(i,1,1) )
3809 wr(i,1,1) = h1(i,1,1,e) &
3810 * ( g11(i,1,1,e) * wwr(i,1,1) &
3811 + g12(i,1,1,e) * wws(i,1,1) &
3812 + g13(i,1,1,e) * wwt(i,1,1) )
3813 ws(i,1,1) = h1(i,1,1,e) &
3814 * ( g12(i,1,1,e) * wwr(i,1,1) &
3815 + g22(i,1,1,e) * wws(i,1,1) &
3816 + g23(i,1,1,e) * wwt(i,1,1) )
3817 wt(i,1,1) = h1(i,1,1,e) &
3818 * ( g13(i,1,1,e) * wwr(i,1,1) &
3819 + g23(i,1,1,e) * wws(i,1,1) &
3820 + g33(i,1,1,e) * wwt(i,1,1) )
3825 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
3826 + dxt(i,2) * ur(2,j,1) &
3827 + dxt(i,3) * ur(3,j,1)
3829 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
3830 + dxt(i,2) * vr(2,j,1) &
3831 + dxt(i,3) * vr(3,j,1)
3833 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
3834 + dxt(i,2) * wr(2,j,1) &
3835 + dxt(i,3) * wr(3,j,1)
3842 au(i,j,k,e) = au(i,j,k,e) &
3843 + dyt(j,1) * us(i,1,k) &
3844 + dyt(j,2) * us(i,2,k) &
3845 + dyt(j,3) * us(i,3,k)
3847 av(i,j,k,e) = av(i,j,k,e) &
3848 + dyt(j,1) * vs(i,1,k) &
3849 + dyt(j,2) * vs(i,2,k) &
3850 + dyt(j,3) * vs(i,3,k)
3852 aw(i,j,k,e) = aw(i,j,k,e) &
3853 + dyt(j,1) * ws(i,1,k) &
3854 + dyt(j,2) * ws(i,2,k) &
3855 + dyt(j,3) * ws(i,3,k)
3862 au(i,1,k,e) = au(i,1,k,e) &
3863 + dzt(k,1) * ut(i,1,1) &
3864 + dzt(k,2) * ut(i,1,2) &
3865 + dzt(k,3) * ut(i,1,3)
3867 av(i,1,k,e) = av(i,1,k,e) &
3868 + dzt(k,1) * vt(i,1,1) &
3869 + dzt(k,2) * vt(i,1,2) &
3870 + dzt(k,3) * vt(i,1,3)
3872 aw(i,1,k,e) = aw(i,1,k,e) &
3873 + dzt(k,1) * wt(i,1,1) &
3874 + dzt(k,2) * wt(i,1,2) &
3875 + dzt(k,3) * wt(i,1,3)
3881 end subroutine ax_helm_vector_lx3
3883 subroutine ax_helm_vector_lx2(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
3884 h1, G11, G22, G33, G12, G13, G23, n)
3885 integer,
parameter :: lx = 2
3886 integer,
intent(in) :: n
3887 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
3888 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
3889 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
3890 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
3891 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
3892 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
3893 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
3894 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
3895 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
3896 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
3897 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
3898 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
3899 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
3900 real(kind=rp),
intent(in) :: dx(lx, lx)
3901 real(kind=rp),
intent(in) :: dy(lx, lx)
3902 real(kind=rp),
intent(in) :: dz(lx, lx)
3903 real(kind=rp),
intent(in) :: dxt(lx, lx)
3904 real(kind=rp),
intent(in) :: dyt(lx, lx)
3905 real(kind=rp),
intent(in) :: dzt(lx, lx)
3906 real(kind=rp) :: ur(lx, lx, lx)
3907 real(kind=rp) :: us(lx, lx, lx)
3908 real(kind=rp) :: ut(lx, lx, lx)
3909 real(kind=rp) :: vr(lx, lx, lx)
3910 real(kind=rp) :: vs(lx, lx, lx)
3911 real(kind=rp) :: vt(lx, lx, lx)
3912 real(kind=rp) :: wr(lx, lx, lx)
3913 real(kind=rp) :: ws(lx, lx, lx)
3914 real(kind=rp) :: wt(lx, lx, lx)
3915 real(kind=rp) :: wur(lx, lx, lx)
3916 real(kind=rp) :: wus(lx, lx, lx)
3917 real(kind=rp) :: wut(lx, lx, lx)
3918 real(kind=rp) :: wvr(lx, lx, lx)
3919 real(kind=rp) :: wvs(lx, lx, lx)
3920 real(kind=rp) :: wvt(lx, lx, lx)
3921 real(kind=rp) :: wwr(lx, lx, lx)
3922 real(kind=rp) :: wws(lx, lx, lx)
3923 real(kind=rp) :: wwt(lx, lx, lx)
3924 integer :: e, i, j, k
3930 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
3931 + dx(i,2) * u(2,j,1,e)
3933 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
3934 + dx(i,2) * v(2,j,1,e)
3936 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
3937 + dx(i,2) * w(2,j,1,e)
3944 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
3945 + dy(j,2) * u(i,2,k,e)
3947 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
3948 + dy(j,2) * v(i,2,k,e)
3950 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
3951 + dy(j,2) * w(i,2,k,e)
3959 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
3960 + dz(k,2) * u(i,1,2,e)
3962 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
3963 + dz(k,2) * v(i,1,2,e)
3965 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
3966 + dz(k,2) * w(i,1,2,e)
3971 ur(i,1,1) = h1(i,1,1,e) &
3972 * ( g11(i,1,1,e) * wur(i,1,1) &
3973 + g12(i,1,1,e) * wus(i,1,1) &
3974 + g13(i,1,1,e) * wut(i,1,1) )
3975 us(i,1,1) = h1(i,1,1,e) &
3976 * ( g12(i,1,1,e) * wur(i,1,1) &
3977 + g22(i,1,1,e) * wus(i,1,1) &
3978 + g23(i,1,1,e) * wut(i,1,1) )
3979 ut(i,1,1) = h1(i,1,1,e) &
3980 * ( g13(i,1,1,e) * wur(i,1,1) &
3981 + g23(i,1,1,e) * wus(i,1,1) &
3982 + g33(i,1,1,e) * wut(i,1,1) )
3984 vr(i,1,1) = h1(i,1,1,e) &
3985 * ( g11(i,1,1,e) * wvr(i,1,1) &
3986 + g12(i,1,1,e) * wvs(i,1,1) &
3987 + g13(i,1,1,e) * wvt(i,1,1) )
3988 vs(i,1,1) = h1(i,1,1,e) &
3989 * ( g12(i,1,1,e) * wvr(i,1,1) &
3990 + g22(i,1,1,e) * wvs(i,1,1) &
3991 + g23(i,1,1,e) * wvt(i,1,1) )
3992 vt(i,1,1) = h1(i,1,1,e) &
3993 * ( g13(i,1,1,e) * wvr(i,1,1) &
3994 + g23(i,1,1,e) * wvs(i,1,1) &
3995 + g33(i,1,1,e) * wvt(i,1,1) )
3997 wr(i,1,1) = h1(i,1,1,e) &
3998 * ( g11(i,1,1,e) * wwr(i,1,1) &
3999 + g12(i,1,1,e) * wws(i,1,1) &
4000 + g13(i,1,1,e) * wwt(i,1,1) )
4001 ws(i,1,1) = h1(i,1,1,e) &
4002 * ( g12(i,1,1,e) * wwr(i,1,1) &
4003 + g22(i,1,1,e) * wws(i,1,1) &
4004 + g23(i,1,1,e) * wwt(i,1,1) )
4005 wt(i,1,1) = h1(i,1,1,e) &
4006 * ( g13(i,1,1,e) * wwr(i,1,1) &
4007 + g23(i,1,1,e) * wws(i,1,1) &
4008 + g33(i,1,1,e) * wwt(i,1,1) )
4013 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
4014 + dxt(i,2) * ur(2,j,1)
4016 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
4017 + dxt(i,2) * vr(2,j,1)
4019 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
4020 + dxt(i,2) * wr(2,j,1)
4027 au(i,j,k,e) = au(i,j,k,e) &
4028 + dyt(j,1) * us(i,1,k) &
4029 + dyt(j,2) * us(i,2,k)
4031 av(i,j,k,e) = av(i,j,k,e) &
4032 + dyt(j,1) * vs(i,1,k) &
4033 + dyt(j,2) * vs(i,2,k)
4035 aw(i,j,k,e) = aw(i,j,k,e) &
4036 + dyt(j,1) * ws(i,1,k) &
4037 + dyt(j,2) * ws(i,2,k)
4044 au(i,1,k,e) = au(i,1,k,e) &
4045 + dzt(k,1) * ut(i,1,1) &
4046 + dzt(k,2) * ut(i,1,2)
4048 av(i,1,k,e) = av(i,1,k,e) &
4049 + dzt(k,1) * vt(i,1,1) &
4050 + dzt(k,2) * vt(i,1,2)
4052 aw(i,1,k,e) = aw(i,1,k,e) &
4053 + dzt(k,1) * wt(i,1,1) &
4054 + dzt(k,2) * wt(i,1,2)
4060 end subroutine ax_helm_vector_lx2
4062end submodule ax_helm_vector_cpu