53 module subroutine ax_helm_compute_vector(this, au, av, aw, &
54 u, v, w, coef, msh, xh)
55 class(ax_helm_cpu_t),
intent(in) :: this
56 type(mesh_t),
intent(in) :: msh
57 type(space_t),
intent(in) :: Xh
58 type(coef_t),
intent(in) :: coef
59 real(kind=rp),
intent(inout) :: au(xh%lx, xh%ly, xh%lz, msh%nelv)
60 real(kind=rp),
intent(inout) :: av(xh%lx, xh%ly, xh%lz, msh%nelv)
61 real(kind=rp),
intent(inout) :: aw(xh%lx, xh%ly, xh%lz, msh%nelv)
62 real(kind=rp),
intent(in) :: u(xh%lx, xh%ly, xh%lz, msh%nelv)
63 real(kind=rp),
intent(in) :: v(xh%lx, xh%ly, xh%lz, msh%nelv)
64 real(kind=rp),
intent(in) :: w(xh%lx, xh%ly, xh%lz, msh%nelv)
69 call ax_helm_vector_lx14(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
70 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%h2, coef%B, coef%ifh2, &
71 coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, &
74 call ax_helm_vector_lx13(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
75 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%h2, coef%B, coef%ifh2, &
76 coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, &
79 call ax_helm_vector_lx12(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
80 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%h2, coef%B, coef%ifh2, &
81 coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, &
84 call ax_helm_vector_lx11(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
85 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%h2, coef%B, coef%ifh2, &
86 coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, &
89 call ax_helm_vector_lx10(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
90 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%h2, coef%B, coef%ifh2, &
91 coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, &
94 call ax_helm_vector_lx9(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
95 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%h2, coef%B, coef%ifh2, &
96 coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, &
99 call ax_helm_vector_lx8(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
100 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%h2, coef%B, coef%ifh2, &
101 coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, &
104 call ax_helm_vector_lx7(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
105 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%h2, coef%B, coef%ifh2, &
106 coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, &
109 call ax_helm_vector_lx6(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
110 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%h2, coef%B, coef%ifh2, &
111 coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, &
114 call ax_helm_vector_lx5(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
115 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%h2, coef%B, coef%ifh2, &
116 coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, &
119 call ax_helm_vector_lx4(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
120 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%h2, coef%B, coef%ifh2, &
121 coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, &
124 call ax_helm_vector_lx3(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
125 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%h2, coef%B, coef%ifh2, &
126 coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, &
129 call ax_helm_vector_lx2(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
130 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%h2, coef%B, coef%ifh2, &
131 coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, &
134 call ax_helm_vector_lx(au, av, aw, u, v, w, xh%dx, xh%dy, xh%dz, &
135 xh%dxt, xh%dyt, xh%dzt, coef%h1, coef%h2, coef%B, coef%ifh2, &
136 coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, &
141 end subroutine ax_helm_compute_vector
159 subroutine ax_helm_vector_lx(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
160 h1, h2, B, ifh2, G11, G22, G33, G12, G13, G23, n, lx)
161 integer,
intent(in) :: n, lx
162 logical,
intent(in) :: ifh2
163 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
164 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
165 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
166 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
167 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
168 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
169 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
170 real(kind=rp),
intent(in) :: h2(lx, lx, lx, n)
171 real(kind=rp),
intent(in) :: b(lx, lx, lx, n)
172 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
173 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
174 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
175 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
176 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
177 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
178 real(kind=rp),
intent(in) :: dx(lx, lx)
179 real(kind=rp),
intent(in) :: dy(lx, lx)
180 real(kind=rp),
intent(in) :: dz(lx, lx)
181 real(kind=rp),
intent(in) :: dxt(lx, lx)
182 real(kind=rp),
intent(in) :: dyt(lx, lx)
183 real(kind=rp),
intent(in) :: dzt(lx, lx)
184 real(kind=rp) :: ur(lx, lx, lx)
185 real(kind=rp) :: us(lx, lx, lx)
186 real(kind=rp) :: ut(lx, lx, lx)
187 real(kind=rp) :: vr(lx, lx, lx)
188 real(kind=rp) :: vs(lx, lx, lx)
189 real(kind=rp) :: vt(lx, lx, lx)
190 real(kind=rp) :: wr(lx, lx, lx)
191 real(kind=rp) :: ws(lx, lx, lx)
192 real(kind=rp) :: wt(lx, lx, lx)
193 real(kind=rp) :: wur(lx, lx, lx)
194 real(kind=rp) :: wvr(lx, lx, lx)
195 real(kind=rp) :: wwr(lx, lx, lx)
196 real(kind=rp) :: wus(lx, lx, lx)
197 real(kind=rp) :: wvs(lx, lx, lx)
198 real(kind=rp) :: wws(lx, lx, lx)
199 real(kind=rp) :: wut(lx, lx, lx)
200 real(kind=rp) :: wvt(lx, lx, lx)
201 real(kind=rp) :: wwt(lx, lx, lx)
202 real(kind=rp) :: t1, t2, t3
203 integer :: e, i, j, k, l
213 t1 = t1 + dx(i,k) * u(k,j,1,e)
214 t2 = t2 + dx(i,k) * v(k,j,1,e)
215 t3 = t3 + dx(i,k) * w(k,j,1,e)
230 t1 = t1 + dy(j,l) * u(i,l,k,e)
231 t2 = t2 + dy(j,l) * v(i,l,k,e)
232 t3 = t3 + dy(j,l) * w(i,l,k,e)
247 t1 = t1 + dz(k,l) * u(i,1,l,e)
248 t2 = t2 + dz(k,l) * v(i,1,l,e)
249 t3 = t3 + dz(k,l) * w(i,1,l,e)
258 ur(i,1,1) = h1(i,1,1,e) &
259 * ( g11(i,1,1,e) * wur(i,1,1) &
260 + g12(i,1,1,e) * wus(i,1,1) &
261 + g13(i,1,1,e) * wut(i,1,1) )
262 us(i,1,1) = h1(i,1,1,e) &
263 * ( g12(i,1,1,e) * wur(i,1,1) &
264 + g22(i,1,1,e) * wus(i,1,1) &
265 + g23(i,1,1,e) * wut(i,1,1) )
266 ut(i,1,1) = h1(i,1,1,e) &
267 * ( g13(i,1,1,e) * wur(i,1,1) &
268 + g23(i,1,1,e) * wus(i,1,1) &
269 + g33(i,1,1,e) * wut(i,1,1) )
271 vr(i,1,1) = h1(i,1,1,e) &
272 * ( g11(i,1,1,e) * wvr(i,1,1) &
273 + g12(i,1,1,e) * wvs(i,1,1) &
274 + g13(i,1,1,e) * wvt(i,1,1) )
275 vs(i,1,1) = h1(i,1,1,e) &
276 * ( g12(i,1,1,e) * wvr(i,1,1) &
277 + g22(i,1,1,e) * wvs(i,1,1) &
278 + g23(i,1,1,e) * wvt(i,1,1) )
279 vt(i,1,1) = h1(i,1,1,e) &
280 * ( g13(i,1,1,e) * wvr(i,1,1) &
281 + g23(i,1,1,e) * wvs(i,1,1) &
282 + g33(i,1,1,e) * wvt(i,1,1) )
284 wr(i,1,1) = h1(i,1,1,e) &
285 * ( g11(i,1,1,e) * wwr(i,1,1) &
286 + g12(i,1,1,e) * wws(i,1,1) &
287 + g13(i,1,1,e) * wwt(i,1,1) )
288 ws(i,1,1) = h1(i,1,1,e) &
289 * ( g12(i,1,1,e) * wwr(i,1,1) &
290 + g22(i,1,1,e) * wws(i,1,1) &
291 + g23(i,1,1,e) * wwt(i,1,1) )
292 wt(i,1,1) = h1(i,1,1,e) &
293 * ( g13(i,1,1,e) * wwr(i,1,1) &
294 + g23(i,1,1,e) * wws(i,1,1) &
295 + g33(i,1,1,e) * wwt(i,1,1) )
304 t1 = t1 + dxt(i,k) * ur(k,j,1)
305 t2 = t2 + dxt(i,k) * vr(k,j,1)
306 t3 = t3 + dxt(i,k) * wr(k,j,1)
321 t1 = t1 + dyt(j,l) * us(i,l,k)
322 t2 = t2 + dyt(j,l) * vs(i,l,k)
323 t3 = t3 + dyt(j,l) * ws(i,l,k)
325 au(i,j,k,e) = au(i,j,k,e) + t1
326 av(i,j,k,e) = av(i,j,k,e) + t2
327 aw(i,j,k,e) = aw(i,j,k,e) + t3
339 t1 = t1 + dzt(k,l) * ut(i,1,l)
340 t2 = t2 + dzt(k,l) * vt(i,1,l)
341 t3 = t3 + dzt(k,l) * wt(i,1,l)
343 au(i,1,k,e) = au(i,1,k,e) + t1 &
344 + h2(i,1,k,e) * b(i,1,k,e) * u(i,1,k,e)
345 av(i,1,k,e) = av(i,1,k,e) + t2 &
346 + h2(i,1,k,e) * b(i,1,k,e) * v(i,1,k,e)
347 aw(i,1,k,e) = aw(i,1,k,e) + t3 &
348 + h2(i,1,k,e) * b(i,1,k,e) * w(i,1,k,e)
358 t1 = t1 + dzt(k,l) * ut(i,1,l)
359 t2 = t2 + dzt(k,l) * vt(i,1,l)
360 t3 = t3 + dzt(k,l) * wt(i,1,l)
362 au(i,1,k,e) = au(i,1,k,e) + t1
363 av(i,1,k,e) = av(i,1,k,e) + t2
364 aw(i,1,k,e) = aw(i,1,k,e) + t3
371 end subroutine ax_helm_vector_lx
373 subroutine ax_helm_vector_lx14(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
374 h1, h2, B, ifh2, G11, G22, G33, G12, G13, G23, n)
375 integer,
parameter :: lx = 14
376 integer,
intent(in) :: n
377 logical,
intent(in) :: ifh2
378 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
379 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
380 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
381 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
382 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
383 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
384 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
385 real(kind=rp),
intent(in) :: h2(lx, lx, lx, n)
386 real(kind=rp),
intent(in) :: b(lx, lx, lx, n)
387 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
388 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
389 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
390 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
391 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
392 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
393 real(kind=rp),
intent(in) :: dx(lx, lx)
394 real(kind=rp),
intent(in) :: dy(lx, lx)
395 real(kind=rp),
intent(in) :: dz(lx, lx)
396 real(kind=rp),
intent(in) :: dxt(lx, lx)
397 real(kind=rp),
intent(in) :: dyt(lx, lx)
398 real(kind=rp),
intent(in) :: dzt(lx, lx)
399 real(kind=rp) :: ur(lx, lx, lx)
400 real(kind=rp) :: us(lx, lx, lx)
401 real(kind=rp) :: ut(lx, lx, lx)
402 real(kind=rp) :: vr(lx, lx, lx)
403 real(kind=rp) :: vs(lx, lx, lx)
404 real(kind=rp) :: vt(lx, lx, lx)
405 real(kind=rp) :: wr(lx, lx, lx)
406 real(kind=rp) :: ws(lx, lx, lx)
407 real(kind=rp) :: wt(lx, lx, lx)
408 real(kind=rp) :: wur(lx, lx, lx)
409 real(kind=rp) :: wus(lx, lx, lx)
410 real(kind=rp) :: wut(lx, lx, lx)
411 real(kind=rp) :: wvr(lx, lx, lx)
412 real(kind=rp) :: wvs(lx, lx, lx)
413 real(kind=rp) :: wvt(lx, lx, lx)
414 real(kind=rp) :: wwr(lx, lx, lx)
415 real(kind=rp) :: wws(lx, lx, lx)
416 real(kind=rp) :: wwt(lx, lx, lx)
417 integer :: e, i, j, k
423 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
424 + dx(i,2) * u(2,j,1,e) &
425 + dx(i,3) * u(3,j,1,e) &
426 + dx(i,4) * u(4,j,1,e) &
427 + dx(i,5) * u(5,j,1,e) &
428 + dx(i,6) * u(6,j,1,e) &
429 + dx(i,7) * u(7,j,1,e) &
430 + dx(i,8) * u(8,j,1,e) &
431 + dx(i,9) * u(9,j,1,e) &
432 + dx(i,10) * u(10,j,1,e) &
433 + dx(i,11) * u(11,j,1,e) &
434 + dx(i,12) * u(12,j,1,e) &
435 + dx(i,13) * u(13,j,1,e) &
436 + dx(i,14) * u(14,j,1,e)
438 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
439 + dx(i,2) * v(2,j,1,e) &
440 + dx(i,3) * v(3,j,1,e) &
441 + dx(i,4) * v(4,j,1,e) &
442 + dx(i,5) * v(5,j,1,e) &
443 + dx(i,6) * v(6,j,1,e) &
444 + dx(i,7) * v(7,j,1,e) &
445 + dx(i,8) * v(8,j,1,e) &
446 + dx(i,9) * v(9,j,1,e) &
447 + dx(i,10) * v(10,j,1,e) &
448 + dx(i,11) * v(11,j,1,e) &
449 + dx(i,12) * v(12,j,1,e) &
450 + dx(i,13) * v(13,j,1,e) &
451 + dx(i,14) * v(14,j,1,e)
453 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
454 + dx(i,2) * w(2,j,1,e) &
455 + dx(i,3) * w(3,j,1,e) &
456 + dx(i,4) * w(4,j,1,e) &
457 + dx(i,5) * w(5,j,1,e) &
458 + dx(i,6) * w(6,j,1,e) &
459 + dx(i,7) * w(7,j,1,e) &
460 + dx(i,8) * w(8,j,1,e) &
461 + dx(i,9) * w(9,j,1,e) &
462 + dx(i,10) * w(10,j,1,e) &
463 + dx(i,11) * w(11,j,1,e) &
464 + dx(i,12) * w(12,j,1,e) &
465 + dx(i,13) * w(13,j,1,e) &
466 + dx(i,14) * w(14,j,1,e)
473 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
474 + dy(j,2) * u(i,2,k,e) &
475 + dy(j,3) * u(i,3,k,e) &
476 + dy(j,4) * u(i,4,k,e) &
477 + dy(j,5) * u(i,5,k,e) &
478 + dy(j,6) * u(i,6,k,e) &
479 + dy(j,7) * u(i,7,k,e) &
480 + dy(j,8) * u(i,8,k,e) &
481 + dy(j,9) * u(i,9,k,e) &
482 + dy(j,10) * u(i,10,k,e) &
483 + dy(j,11) * u(i,11,k,e) &
484 + dy(j,12) * u(i,12,k,e) &
485 + dy(j,13) * u(i,13,k,e) &
486 + dy(j,14) * u(i,14,k,e)
488 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
489 + dy(j,2) * v(i,2,k,e) &
490 + dy(j,3) * v(i,3,k,e) &
491 + dy(j,4) * v(i,4,k,e) &
492 + dy(j,5) * v(i,5,k,e) &
493 + dy(j,6) * v(i,6,k,e) &
494 + dy(j,7) * v(i,7,k,e) &
495 + dy(j,8) * v(i,8,k,e) &
496 + dy(j,9) * v(i,9,k,e) &
497 + dy(j,10) * v(i,10,k,e) &
498 + dy(j,11) * v(i,11,k,e) &
499 + dy(j,12) * v(i,12,k,e) &
500 + dy(j,13) * v(i,13,k,e) &
501 + dy(j,14) * v(i,14,k,e)
503 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
504 + dy(j,2) * w(i,2,k,e) &
505 + dy(j,3) * w(i,3,k,e) &
506 + dy(j,4) * w(i,4,k,e) &
507 + dy(j,5) * w(i,5,k,e) &
508 + dy(j,6) * w(i,6,k,e) &
509 + dy(j,7) * w(i,7,k,e) &
510 + dy(j,8) * w(i,8,k,e) &
511 + dy(j,9) * w(i,9,k,e) &
512 + dy(j,10) * w(i,10,k,e) &
513 + dy(j,11) * w(i,11,k,e) &
514 + dy(j,12) * w(i,12,k,e) &
515 + dy(j,13) * w(i,13,k,e) &
516 + dy(j,14) * w(i,14,k,e)
523 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
524 + dz(k,2) * u(i,1,2,e) &
525 + dz(k,3) * u(i,1,3,e) &
526 + dz(k,4) * u(i,1,4,e) &
527 + dz(k,5) * u(i,1,5,e) &
528 + dz(k,6) * u(i,1,6,e) &
529 + dz(k,7) * u(i,1,7,e) &
530 + dz(k,8) * u(i,1,8,e) &
531 + dz(k,9) * u(i,1,9,e) &
532 + dz(k,10) * u(i,1,10,e) &
533 + dz(k,11) * u(i,1,11,e) &
534 + dz(k,12) * u(i,1,12,e) &
535 + dz(k,13) * u(i,1,13,e) &
536 + dz(k,14) * u(i,1,14,e)
538 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
539 + dz(k,2) * v(i,1,2,e) &
540 + dz(k,3) * v(i,1,3,e) &
541 + dz(k,4) * v(i,1,4,e) &
542 + dz(k,5) * v(i,1,5,e) &
543 + dz(k,6) * v(i,1,6,e) &
544 + dz(k,7) * v(i,1,7,e) &
545 + dz(k,8) * v(i,1,8,e) &
546 + dz(k,9) * v(i,1,9,e) &
547 + dz(k,10) * v(i,1,10,e) &
548 + dz(k,11) * v(i,1,11,e) &
549 + dz(k,12) * v(i,1,12,e) &
550 + dz(k,13) * v(i,1,13,e) &
551 + dz(k,14) * v(i,1,14,e)
553 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
554 + dz(k,2) * w(i,1,2,e) &
555 + dz(k,3) * w(i,1,3,e) &
556 + dz(k,4) * w(i,1,4,e) &
557 + dz(k,5) * w(i,1,5,e) &
558 + dz(k,6) * w(i,1,6,e) &
559 + dz(k,7) * w(i,1,7,e) &
560 + dz(k,8) * w(i,1,8,e) &
561 + dz(k,9) * w(i,1,9,e) &
562 + dz(k,10) * w(i,1,10,e) &
563 + dz(k,11) * w(i,1,11,e) &
564 + dz(k,12) * w(i,1,12,e) &
565 + dz(k,13) * w(i,1,13,e) &
566 + dz(k,14) * w(i,1,14,e)
571 ur(i,1,1) = h1(i,1,1,e) &
572 * ( g11(i,1,1,e) * wur(i,1,1) &
573 + g12(i,1,1,e) * wus(i,1,1) &
574 + g13(i,1,1,e) * wut(i,1,1) )
575 us(i,1,1) = h1(i,1,1,e) &
576 * ( g12(i,1,1,e) * wur(i,1,1) &
577 + g22(i,1,1,e) * wus(i,1,1) &
578 + g23(i,1,1,e) * wut(i,1,1) )
579 ut(i,1,1) = h1(i,1,1,e) &
580 * ( g13(i,1,1,e) * wur(i,1,1) &
581 + g23(i,1,1,e) * wus(i,1,1) &
582 + g33(i,1,1,e) * wut(i,1,1) )
584 vr(i,1,1) = h1(i,1,1,e) &
585 * ( g11(i,1,1,e) * wvr(i,1,1) &
586 + g12(i,1,1,e) * wvs(i,1,1) &
587 + g13(i,1,1,e) * wvt(i,1,1) )
588 vs(i,1,1) = h1(i,1,1,e) &
589 * ( g12(i,1,1,e) * wvr(i,1,1) &
590 + g22(i,1,1,e) * wvs(i,1,1) &
591 + g23(i,1,1,e) * wvt(i,1,1) )
592 vt(i,1,1) = h1(i,1,1,e) &
593 * ( g13(i,1,1,e) * wvr(i,1,1) &
594 + g23(i,1,1,e) * wvs(i,1,1) &
595 + g33(i,1,1,e) * wvt(i,1,1) )
597 wr(i,1,1) = h1(i,1,1,e) &
598 * ( g11(i,1,1,e) * wwr(i,1,1) &
599 + g12(i,1,1,e) * wws(i,1,1) &
600 + g13(i,1,1,e) * wwt(i,1,1) )
601 ws(i,1,1) = h1(i,1,1,e) &
602 * ( g12(i,1,1,e) * wwr(i,1,1) &
603 + g22(i,1,1,e) * wws(i,1,1) &
604 + g23(i,1,1,e) * wwt(i,1,1) )
605 wt(i,1,1) = h1(i,1,1,e) &
606 * ( g13(i,1,1,e) * wwr(i,1,1) &
607 + g23(i,1,1,e) * wws(i,1,1) &
608 + g33(i,1,1,e) * wwt(i,1,1) )
613 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
614 + dxt(i,2) * ur(2,j,1) &
615 + dxt(i,3) * ur(3,j,1) &
616 + dxt(i,4) * ur(4,j,1) &
617 + dxt(i,5) * ur(5,j,1) &
618 + dxt(i,6) * ur(6,j,1) &
619 + dxt(i,7) * ur(7,j,1) &
620 + dxt(i,8) * ur(8,j,1) &
621 + dxt(i,9) * ur(9,j,1) &
622 + dxt(i,10) * ur(10,j,1) &
623 + dxt(i,11) * ur(11,j,1) &
624 + dxt(i,12) * ur(12,j,1) &
625 + dxt(i,13) * ur(13,j,1) &
626 + dxt(i,14) * ur(14,j,1)
628 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
629 + dxt(i,2) * vr(2,j,1) &
630 + dxt(i,3) * vr(3,j,1) &
631 + dxt(i,4) * vr(4,j,1) &
632 + dxt(i,5) * vr(5,j,1) &
633 + dxt(i,6) * vr(6,j,1) &
634 + dxt(i,7) * vr(7,j,1) &
635 + dxt(i,8) * vr(8,j,1) &
636 + dxt(i,9) * vr(9,j,1) &
637 + dxt(i,10) * vr(10,j,1) &
638 + dxt(i,11) * vr(11,j,1) &
639 + dxt(i,12) * vr(12,j,1) &
640 + dxt(i,13) * vr(13,j,1) &
641 + dxt(i,14) * vr(14,j,1)
643 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
644 + dxt(i,2) * wr(2,j,1) &
645 + dxt(i,3) * wr(3,j,1) &
646 + dxt(i,4) * wr(4,j,1) &
647 + dxt(i,5) * wr(5,j,1) &
648 + dxt(i,6) * wr(6,j,1) &
649 + dxt(i,7) * wr(7,j,1) &
650 + dxt(i,8) * wr(8,j,1) &
651 + dxt(i,9) * wr(9,j,1) &
652 + dxt(i,10) * wr(10,j,1) &
653 + dxt(i,11) * wr(11,j,1) &
654 + dxt(i,12) * wr(12,j,1) &
655 + dxt(i,13) * wr(13,j,1) &
656 + dxt(i,14) * wr(14,j,1)
663 au(i,j,k,e) = au(i,j,k,e) &
664 + dyt(j,1) * us(i,1,k) &
665 + dyt(j,2) * us(i,2,k) &
666 + dyt(j,3) * us(i,3,k) &
667 + dyt(j,4) * us(i,4,k) &
668 + dyt(j,5) * us(i,5,k) &
669 + dyt(j,6) * us(i,6,k) &
670 + dyt(j,7) * us(i,7,k) &
671 + dyt(j,8) * us(i,8,k) &
672 + dyt(j,9) * us(i,9,k) &
673 + dyt(j,10) * us(i,10,k) &
674 + dyt(j,11) * us(i,11,k) &
675 + dyt(j,12) * us(i,12,k) &
676 + dyt(j,13) * us(i,13,k) &
677 + dyt(j,14) * us(i,14,k)
679 av(i,j,k,e) = av(i,j,k,e) &
680 + dyt(j,1) * vs(i,1,k) &
681 + dyt(j,2) * vs(i,2,k) &
682 + dyt(j,3) * vs(i,3,k) &
683 + dyt(j,4) * vs(i,4,k) &
684 + dyt(j,5) * vs(i,5,k) &
685 + dyt(j,6) * vs(i,6,k) &
686 + dyt(j,7) * vs(i,7,k) &
687 + dyt(j,8) * vs(i,8,k) &
688 + dyt(j,9) * vs(i,9,k) &
689 + dyt(j,10) * vs(i,10,k) &
690 + dyt(j,11) * vs(i,11,k) &
691 + dyt(j,12) * vs(i,12,k) &
692 + dyt(j,13) * vs(i,13,k) &
693 + dyt(j,14) * vs(i,14,k)
695 aw(i,j,k,e) = aw(i,j,k,e) &
696 + dyt(j,1) * ws(i,1,k) &
697 + dyt(j,2) * ws(i,2,k) &
698 + dyt(j,3) * ws(i,3,k) &
699 + dyt(j,4) * ws(i,4,k) &
700 + dyt(j,5) * ws(i,5,k) &
701 + dyt(j,6) * ws(i,6,k) &
702 + dyt(j,7) * ws(i,7,k) &
703 + dyt(j,8) * ws(i,8,k) &
704 + dyt(j,9) * ws(i,9,k) &
705 + dyt(j,10) * ws(i,10,k) &
706 + dyt(j,11) * ws(i,11,k) &
707 + dyt(j,12) * ws(i,12,k) &
708 + dyt(j,13) * ws(i,13,k) &
709 + dyt(j,14) * ws(i,14,k)
717 au(i,1,k,e) = au(i,1,k,e) &
718 + dzt(k,1) * ut(i,1,1) &
719 + dzt(k,2) * ut(i,1,2) &
720 + dzt(k,3) * ut(i,1,3) &
721 + dzt(k,4) * ut(i,1,4) &
722 + dzt(k,5) * ut(i,1,5) &
723 + dzt(k,6) * ut(i,1,6) &
724 + dzt(k,7) * ut(i,1,7) &
725 + dzt(k,8) * ut(i,1,8) &
726 + dzt(k,9) * ut(i,1,9) &
727 + dzt(k,10) * ut(i,1,10) &
728 + dzt(k,11) * ut(i,1,11) &
729 + dzt(k,12) * ut(i,1,12) &
730 + dzt(k,13) * ut(i,1,13) &
731 + dzt(k,14) * ut(i,1,14) &
732 + h2(i,1,k,e) * b(i,1,k,e) * u(i,1,k,e)
734 av(i,1,k,e) = av(i,1,k,e) &
735 + dzt(k,1) * vt(i,1,1) &
736 + dzt(k,2) * vt(i,1,2) &
737 + dzt(k,3) * vt(i,1,3) &
738 + dzt(k,4) * vt(i,1,4) &
739 + dzt(k,5) * vt(i,1,5) &
740 + dzt(k,6) * vt(i,1,6) &
741 + dzt(k,7) * vt(i,1,7) &
742 + dzt(k,8) * vt(i,1,8) &
743 + dzt(k,9) * vt(i,1,9) &
744 + dzt(k,10) * vt(i,1,10) &
745 + dzt(k,11) * vt(i,1,11) &
746 + dzt(k,12) * vt(i,1,12) &
747 + dzt(k,13) * vt(i,1,13) &
748 + dzt(k,14) * vt(i,1,14) &
749 + h2(i,1,k,e) * b(i,1,k,e) * v(i,1,k,e)
751 aw(i,1,k,e) = aw(i,1,k,e) &
752 + dzt(k,1) * wt(i,1,1) &
753 + dzt(k,2) * wt(i,1,2) &
754 + dzt(k,3) * wt(i,1,3) &
755 + dzt(k,4) * wt(i,1,4) &
756 + dzt(k,5) * wt(i,1,5) &
757 + dzt(k,6) * wt(i,1,6) &
758 + dzt(k,7) * wt(i,1,7) &
759 + dzt(k,8) * wt(i,1,8) &
760 + dzt(k,9) * wt(i,1,9) &
761 + dzt(k,10) * wt(i,1,10) &
762 + dzt(k,11) * wt(i,1,11) &
763 + dzt(k,12) * wt(i,1,12) &
764 + dzt(k,13) * wt(i,1,13) &
765 + dzt(k,14) * wt(i,1,14) &
766 + h2(i,1,k,e) * b(i,1,k,e) * w(i,1,k,e)
772 au(i,1,k,e) = au(i,1,k,e) &
773 + dzt(k,1) * ut(i,1,1) &
774 + dzt(k,2) * ut(i,1,2) &
775 + dzt(k,3) * ut(i,1,3) &
776 + dzt(k,4) * ut(i,1,4) &
777 + dzt(k,5) * ut(i,1,5) &
778 + dzt(k,6) * ut(i,1,6) &
779 + dzt(k,7) * ut(i,1,7) &
780 + dzt(k,8) * ut(i,1,8) &
781 + dzt(k,9) * ut(i,1,9) &
782 + dzt(k,10) * ut(i,1,10) &
783 + dzt(k,11) * ut(i,1,11) &
784 + dzt(k,12) * ut(i,1,12) &
785 + dzt(k,13) * ut(i,1,13) &
786 + dzt(k,14) * ut(i,1,14)
788 av(i,1,k,e) = av(i,1,k,e) &
789 + dzt(k,1) * vt(i,1,1) &
790 + dzt(k,2) * vt(i,1,2) &
791 + dzt(k,3) * vt(i,1,3) &
792 + dzt(k,4) * vt(i,1,4) &
793 + dzt(k,5) * vt(i,1,5) &
794 + dzt(k,6) * vt(i,1,6) &
795 + dzt(k,7) * vt(i,1,7) &
796 + dzt(k,8) * vt(i,1,8) &
797 + dzt(k,9) * vt(i,1,9) &
798 + dzt(k,10) * vt(i,1,10) &
799 + dzt(k,11) * vt(i,1,11) &
800 + dzt(k,12) * vt(i,1,12) &
801 + dzt(k,13) * vt(i,1,13) &
802 + dzt(k,14) * vt(i,1,14)
804 aw(i,1,k,e) = aw(i,1,k,e) &
805 + dzt(k,1) * wt(i,1,1) &
806 + dzt(k,2) * wt(i,1,2) &
807 + dzt(k,3) * wt(i,1,3) &
808 + dzt(k,4) * wt(i,1,4) &
809 + dzt(k,5) * wt(i,1,5) &
810 + dzt(k,6) * wt(i,1,6) &
811 + dzt(k,7) * wt(i,1,7) &
812 + dzt(k,8) * wt(i,1,8) &
813 + dzt(k,9) * wt(i,1,9) &
814 + dzt(k,10) * wt(i,1,10) &
815 + dzt(k,11) * wt(i,1,11) &
816 + dzt(k,12) * wt(i,1,12) &
817 + dzt(k,13) * wt(i,1,13) &
818 + dzt(k,14) * wt(i,1,14)
825 end subroutine ax_helm_vector_lx14
827 subroutine ax_helm_vector_lx13(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
828 h1, h2, B, ifh2, G11, G22, G33, G12, G13, G23, n)
829 integer,
parameter :: lx = 13
830 integer,
intent(in) :: n
831 logical,
intent(in) :: ifh2
832 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
833 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
834 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
835 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
836 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
837 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
838 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
839 real(kind=rp),
intent(in) :: h2(lx, lx, lx, n)
840 real(kind=rp),
intent(in) :: b(lx, lx, lx, n)
841 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
842 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
843 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
844 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
845 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
846 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
847 real(kind=rp),
intent(in) :: dx(lx, lx)
848 real(kind=rp),
intent(in) :: dy(lx, lx)
849 real(kind=rp),
intent(in) :: dz(lx, lx)
850 real(kind=rp),
intent(in) :: dxt(lx, lx)
851 real(kind=rp),
intent(in) :: dyt(lx, lx)
852 real(kind=rp),
intent(in) :: dzt(lx, lx)
853 real(kind=rp) :: ur(lx, lx, lx)
854 real(kind=rp) :: us(lx, lx, lx)
855 real(kind=rp) :: ut(lx, lx, lx)
856 real(kind=rp) :: vr(lx, lx, lx)
857 real(kind=rp) :: vs(lx, lx, lx)
858 real(kind=rp) :: vt(lx, lx, lx)
859 real(kind=rp) :: wr(lx, lx, lx)
860 real(kind=rp) :: ws(lx, lx, lx)
861 real(kind=rp) :: wt(lx, lx, lx)
862 real(kind=rp) :: wur(lx, lx, lx)
863 real(kind=rp) :: wus(lx, lx, lx)
864 real(kind=rp) :: wut(lx, lx, lx)
865 real(kind=rp) :: wvr(lx, lx, lx)
866 real(kind=rp) :: wvs(lx, lx, lx)
867 real(kind=rp) :: wvt(lx, lx, lx)
868 real(kind=rp) :: wwr(lx, lx, lx)
869 real(kind=rp) :: wws(lx, lx, lx)
870 real(kind=rp) :: wwt(lx, lx, lx)
871 integer :: e, i, j, k
877 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
878 + dx(i,2) * u(2,j,1,e) &
879 + dx(i,3) * u(3,j,1,e) &
880 + dx(i,4) * u(4,j,1,e) &
881 + dx(i,5) * u(5,j,1,e) &
882 + dx(i,6) * u(6,j,1,e) &
883 + dx(i,7) * u(7,j,1,e) &
884 + dx(i,8) * u(8,j,1,e) &
885 + dx(i,9) * u(9,j,1,e) &
886 + dx(i,10) * u(10,j,1,e) &
887 + dx(i,11) * u(11,j,1,e) &
888 + dx(i,12) * u(12,j,1,e) &
889 + dx(i,13) * u(13,j,1,e)
891 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
892 + dx(i,2) * v(2,j,1,e) &
893 + dx(i,3) * v(3,j,1,e) &
894 + dx(i,4) * v(4,j,1,e) &
895 + dx(i,5) * v(5,j,1,e) &
896 + dx(i,6) * v(6,j,1,e) &
897 + dx(i,7) * v(7,j,1,e) &
898 + dx(i,8) * v(8,j,1,e) &
899 + dx(i,9) * v(9,j,1,e) &
900 + dx(i,10) * v(10,j,1,e) &
901 + dx(i,11) * v(11,j,1,e) &
902 + dx(i,12) * v(12,j,1,e) &
903 + dx(i,13) * v(13,j,1,e)
905 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
906 + dx(i,2) * w(2,j,1,e) &
907 + dx(i,3) * w(3,j,1,e) &
908 + dx(i,4) * w(4,j,1,e) &
909 + dx(i,5) * w(5,j,1,e) &
910 + dx(i,6) * w(6,j,1,e) &
911 + dx(i,7) * w(7,j,1,e) &
912 + dx(i,8) * w(8,j,1,e) &
913 + dx(i,9) * w(9,j,1,e) &
914 + dx(i,10) * w(10,j,1,e) &
915 + dx(i,11) * w(11,j,1,e) &
916 + dx(i,12) * w(12,j,1,e) &
917 + dx(i,13) * w(13,j,1,e)
924 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
925 + dy(j,2) * u(i,2,k,e) &
926 + dy(j,3) * u(i,3,k,e) &
927 + dy(j,4) * u(i,4,k,e) &
928 + dy(j,5) * u(i,5,k,e) &
929 + dy(j,6) * u(i,6,k,e) &
930 + dy(j,7) * u(i,7,k,e) &
931 + dy(j,8) * u(i,8,k,e) &
932 + dy(j,9) * u(i,9,k,e) &
933 + dy(j,10) * u(i,10,k,e) &
934 + dy(j,11) * u(i,11,k,e) &
935 + dy(j,12) * u(i,12,k,e) &
936 + dy(j,13) * u(i,13,k,e)
938 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
939 + dy(j,2) * v(i,2,k,e) &
940 + dy(j,3) * v(i,3,k,e) &
941 + dy(j,4) * v(i,4,k,e) &
942 + dy(j,5) * v(i,5,k,e) &
943 + dy(j,6) * v(i,6,k,e) &
944 + dy(j,7) * v(i,7,k,e) &
945 + dy(j,8) * v(i,8,k,e) &
946 + dy(j,9) * v(i,9,k,e) &
947 + dy(j,10) * v(i,10,k,e) &
948 + dy(j,11) * v(i,11,k,e) &
949 + dy(j,12) * v(i,12,k,e) &
950 + dy(j,13) * v(i,13,k,e)
952 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
953 + dy(j,2) * w(i,2,k,e) &
954 + dy(j,3) * w(i,3,k,e) &
955 + dy(j,4) * w(i,4,k,e) &
956 + dy(j,5) * w(i,5,k,e) &
957 + dy(j,6) * w(i,6,k,e) &
958 + dy(j,7) * w(i,7,k,e) &
959 + dy(j,8) * w(i,8,k,e) &
960 + dy(j,9) * w(i,9,k,e) &
961 + dy(j,10) * w(i,10,k,e) &
962 + dy(j,11) * w(i,11,k,e) &
963 + dy(j,12) * w(i,12,k,e) &
964 + dy(j,13) * w(i,13,k,e)
971 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
972 + dz(k,2) * u(i,1,2,e) &
973 + dz(k,3) * u(i,1,3,e) &
974 + dz(k,4) * u(i,1,4,e) &
975 + dz(k,5) * u(i,1,5,e) &
976 + dz(k,6) * u(i,1,6,e) &
977 + dz(k,7) * u(i,1,7,e) &
978 + dz(k,8) * u(i,1,8,e) &
979 + dz(k,9) * u(i,1,9,e) &
980 + dz(k,10) * u(i,1,10,e) &
981 + dz(k,11) * u(i,1,11,e) &
982 + dz(k,12) * u(i,1,12,e) &
983 + dz(k,13) * u(i,1,13,e)
985 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
986 + dz(k,2) * v(i,1,2,e) &
987 + dz(k,3) * v(i,1,3,e) &
988 + dz(k,4) * v(i,1,4,e) &
989 + dz(k,5) * v(i,1,5,e) &
990 + dz(k,6) * v(i,1,6,e) &
991 + dz(k,7) * v(i,1,7,e) &
992 + dz(k,8) * v(i,1,8,e) &
993 + dz(k,9) * v(i,1,9,e) &
994 + dz(k,10) * v(i,1,10,e) &
995 + dz(k,11) * v(i,1,11,e) &
996 + dz(k,12) * v(i,1,12,e) &
997 + dz(k,13) * v(i,1,13,e)
999 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
1000 + dz(k,2) * w(i,1,2,e) &
1001 + dz(k,3) * w(i,1,3,e) &
1002 + dz(k,4) * w(i,1,4,e) &
1003 + dz(k,5) * w(i,1,5,e) &
1004 + dz(k,6) * w(i,1,6,e) &
1005 + dz(k,7) * w(i,1,7,e) &
1006 + dz(k,8) * w(i,1,8,e) &
1007 + dz(k,9) * w(i,1,9,e) &
1008 + dz(k,10) * w(i,1,10,e) &
1009 + dz(k,11) * w(i,1,11,e) &
1010 + dz(k,12) * w(i,1,12,e) &
1011 + dz(k,13) * w(i,1,13,e)
1016 ur(i,1,1) = h1(i,1,1,e) &
1017 * ( g11(i,1,1,e) * wur(i,1,1) &
1018 + g12(i,1,1,e) * wus(i,1,1) &
1019 + g13(i,1,1,e) * wut(i,1,1) )
1020 us(i,1,1) = h1(i,1,1,e) &
1021 * ( g12(i,1,1,e) * wur(i,1,1) &
1022 + g22(i,1,1,e) * wus(i,1,1) &
1023 + g23(i,1,1,e) * wut(i,1,1) )
1024 ut(i,1,1) = h1(i,1,1,e) &
1025 * ( g13(i,1,1,e) * wur(i,1,1) &
1026 + g23(i,1,1,e) * wus(i,1,1) &
1027 + g33(i,1,1,e) * wut(i,1,1) )
1029 vr(i,1,1) = h1(i,1,1,e) &
1030 * ( g11(i,1,1,e) * wvr(i,1,1) &
1031 + g12(i,1,1,e) * wvs(i,1,1) &
1032 + g13(i,1,1,e) * wvt(i,1,1) )
1033 vs(i,1,1) = h1(i,1,1,e) &
1034 * ( g12(i,1,1,e) * wvr(i,1,1) &
1035 + g22(i,1,1,e) * wvs(i,1,1) &
1036 + g23(i,1,1,e) * wvt(i,1,1) )
1037 vt(i,1,1) = h1(i,1,1,e) &
1038 * ( g13(i,1,1,e) * wvr(i,1,1) &
1039 + g23(i,1,1,e) * wvs(i,1,1) &
1040 + g33(i,1,1,e) * wvt(i,1,1) )
1042 wr(i,1,1) = h1(i,1,1,e) &
1043 * ( g11(i,1,1,e) * wwr(i,1,1) &
1044 + g12(i,1,1,e) * wws(i,1,1) &
1045 + g13(i,1,1,e) * wwt(i,1,1) )
1046 ws(i,1,1) = h1(i,1,1,e) &
1047 * ( g12(i,1,1,e) * wwr(i,1,1) &
1048 + g22(i,1,1,e) * wws(i,1,1) &
1049 + g23(i,1,1,e) * wwt(i,1,1) )
1050 wt(i,1,1) = h1(i,1,1,e) &
1051 * ( g13(i,1,1,e) * wwr(i,1,1) &
1052 + g23(i,1,1,e) * wws(i,1,1) &
1053 + g33(i,1,1,e) * wwt(i,1,1) )
1058 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
1059 + dxt(i,2) * ur(2,j,1) &
1060 + dxt(i,3) * ur(3,j,1) &
1061 + dxt(i,4) * ur(4,j,1) &
1062 + dxt(i,5) * ur(5,j,1) &
1063 + dxt(i,6) * ur(6,j,1) &
1064 + dxt(i,7) * ur(7,j,1) &
1065 + dxt(i,8) * ur(8,j,1) &
1066 + dxt(i,9) * ur(9,j,1) &
1067 + dxt(i,10) * ur(10,j,1) &
1068 + dxt(i,11) * ur(11,j,1) &
1069 + dxt(i,12) * ur(12,j,1) &
1070 + dxt(i,13) * ur(13,j,1)
1072 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
1073 + dxt(i,2) * vr(2,j,1) &
1074 + dxt(i,3) * vr(3,j,1) &
1075 + dxt(i,4) * vr(4,j,1) &
1076 + dxt(i,5) * vr(5,j,1) &
1077 + dxt(i,6) * vr(6,j,1) &
1078 + dxt(i,7) * vr(7,j,1) &
1079 + dxt(i,8) * vr(8,j,1) &
1080 + dxt(i,9) * vr(9,j,1) &
1081 + dxt(i,10) * vr(10,j,1) &
1082 + dxt(i,11) * vr(11,j,1) &
1083 + dxt(i,12) * vr(12,j,1) &
1084 + dxt(i,13) * vr(13,j,1)
1086 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
1087 + dxt(i,2) * wr(2,j,1) &
1088 + dxt(i,3) * wr(3,j,1) &
1089 + dxt(i,4) * wr(4,j,1) &
1090 + dxt(i,5) * wr(5,j,1) &
1091 + dxt(i,6) * wr(6,j,1) &
1092 + dxt(i,7) * wr(7,j,1) &
1093 + dxt(i,8) * wr(8,j,1) &
1094 + dxt(i,9) * wr(9,j,1) &
1095 + dxt(i,10) * wr(10,j,1) &
1096 + dxt(i,11) * wr(11,j,1) &
1097 + dxt(i,12) * wr(12,j,1) &
1098 + dxt(i,13) * wr(13,j,1)
1105 au(i,j,k,e) = au(i,j,k,e) &
1106 + dyt(j,1) * us(i,1,k) &
1107 + dyt(j,2) * us(i,2,k) &
1108 + dyt(j,3) * us(i,3,k) &
1109 + dyt(j,4) * us(i,4,k) &
1110 + dyt(j,5) * us(i,5,k) &
1111 + dyt(j,6) * us(i,6,k) &
1112 + dyt(j,7) * us(i,7,k) &
1113 + dyt(j,8) * us(i,8,k) &
1114 + dyt(j,9) * us(i,9,k) &
1115 + dyt(j,10) * us(i,10,k) &
1116 + dyt(j,11) * us(i,11,k) &
1117 + dyt(j,12) * us(i,12,k) &
1118 + dyt(j,13) * us(i,13,k)
1120 av(i,j,k,e) = av(i,j,k,e) &
1121 + dyt(j,1) * vs(i,1,k) &
1122 + dyt(j,2) * vs(i,2,k) &
1123 + dyt(j,3) * vs(i,3,k) &
1124 + dyt(j,4) * vs(i,4,k) &
1125 + dyt(j,5) * vs(i,5,k) &
1126 + dyt(j,6) * vs(i,6,k) &
1127 + dyt(j,7) * vs(i,7,k) &
1128 + dyt(j,8) * vs(i,8,k) &
1129 + dyt(j,9) * vs(i,9,k) &
1130 + dyt(j,10) * vs(i,10,k) &
1131 + dyt(j,11) * vs(i,11,k) &
1132 + dyt(j,12) * vs(i,12,k) &
1133 + dyt(j,13) * vs(i,13,k)
1135 aw(i,j,k,e) = aw(i,j,k,e) &
1136 + dyt(j,1) * ws(i,1,k) &
1137 + dyt(j,2) * ws(i,2,k) &
1138 + dyt(j,3) * ws(i,3,k) &
1139 + dyt(j,4) * ws(i,4,k) &
1140 + dyt(j,5) * ws(i,5,k) &
1141 + dyt(j,6) * ws(i,6,k) &
1142 + dyt(j,7) * ws(i,7,k) &
1143 + dyt(j,8) * ws(i,8,k) &
1144 + dyt(j,9) * ws(i,9,k) &
1145 + dyt(j,10) * ws(i,10,k) &
1146 + dyt(j,11) * ws(i,11,k) &
1147 + dyt(j,12) * ws(i,12,k) &
1148 + dyt(j,13) * ws(i,13,k)
1156 au(i,1,k,e) = au(i,1,k,e) &
1157 + dzt(k,1) * ut(i,1,1) &
1158 + dzt(k,2) * ut(i,1,2) &
1159 + dzt(k,3) * ut(i,1,3) &
1160 + dzt(k,4) * ut(i,1,4) &
1161 + dzt(k,5) * ut(i,1,5) &
1162 + dzt(k,6) * ut(i,1,6) &
1163 + dzt(k,7) * ut(i,1,7) &
1164 + dzt(k,8) * ut(i,1,8) &
1165 + dzt(k,9) * ut(i,1,9) &
1166 + dzt(k,10) * ut(i,1,10) &
1167 + dzt(k,11) * ut(i,1,11) &
1168 + dzt(k,12) * ut(i,1,12) &
1169 + dzt(k,13) * ut(i,1,13) &
1170 + h2(i,1,k,e) * b(i,1,k,e) * u(i,1,k,e)
1172 av(i,1,k,e) = av(i,1,k,e) &
1173 + dzt(k,1) * vt(i,1,1) &
1174 + dzt(k,2) * vt(i,1,2) &
1175 + dzt(k,3) * vt(i,1,3) &
1176 + dzt(k,4) * vt(i,1,4) &
1177 + dzt(k,5) * vt(i,1,5) &
1178 + dzt(k,6) * vt(i,1,6) &
1179 + dzt(k,7) * vt(i,1,7) &
1180 + dzt(k,8) * vt(i,1,8) &
1181 + dzt(k,9) * vt(i,1,9) &
1182 + dzt(k,10) * vt(i,1,10) &
1183 + dzt(k,11) * vt(i,1,11) &
1184 + dzt(k,12) * vt(i,1,12) &
1185 + dzt(k,13) * vt(i,1,13) &
1186 + h2(i,1,k,e) * b(i,1,k,e) * v(i,1,k,e)
1188 aw(i,1,k,e) = aw(i,1,k,e) &
1189 + dzt(k,1) * wt(i,1,1) &
1190 + dzt(k,2) * wt(i,1,2) &
1191 + dzt(k,3) * wt(i,1,3) &
1192 + dzt(k,4) * wt(i,1,4) &
1193 + dzt(k,5) * wt(i,1,5) &
1194 + dzt(k,6) * wt(i,1,6) &
1195 + dzt(k,7) * wt(i,1,7) &
1196 + dzt(k,8) * wt(i,1,8) &
1197 + dzt(k,9) * wt(i,1,9) &
1198 + dzt(k,10) * wt(i,1,10) &
1199 + dzt(k,11) * wt(i,1,11) &
1200 + dzt(k,12) * wt(i,1,12) &
1201 + dzt(k,13) * wt(i,1,13) &
1202 + h2(i,1,k,e) * b(i,1,k,e) * w(i,1,k,e)
1208 au(i,1,k,e) = au(i,1,k,e) &
1209 + dzt(k,1) * ut(i,1,1) &
1210 + dzt(k,2) * ut(i,1,2) &
1211 + dzt(k,3) * ut(i,1,3) &
1212 + dzt(k,4) * ut(i,1,4) &
1213 + dzt(k,5) * ut(i,1,5) &
1214 + dzt(k,6) * ut(i,1,6) &
1215 + dzt(k,7) * ut(i,1,7) &
1216 + dzt(k,8) * ut(i,1,8) &
1217 + dzt(k,9) * ut(i,1,9) &
1218 + dzt(k,10) * ut(i,1,10) &
1219 + dzt(k,11) * ut(i,1,11) &
1220 + dzt(k,12) * ut(i,1,12) &
1221 + dzt(k,13) * ut(i,1,13)
1223 av(i,1,k,e) = av(i,1,k,e) &
1224 + dzt(k,1) * vt(i,1,1) &
1225 + dzt(k,2) * vt(i,1,2) &
1226 + dzt(k,3) * vt(i,1,3) &
1227 + dzt(k,4) * vt(i,1,4) &
1228 + dzt(k,5) * vt(i,1,5) &
1229 + dzt(k,6) * vt(i,1,6) &
1230 + dzt(k,7) * vt(i,1,7) &
1231 + dzt(k,8) * vt(i,1,8) &
1232 + dzt(k,9) * vt(i,1,9) &
1233 + dzt(k,10) * vt(i,1,10) &
1234 + dzt(k,11) * vt(i,1,11) &
1235 + dzt(k,12) * vt(i,1,12) &
1236 + dzt(k,13) * vt(i,1,13)
1238 aw(i,1,k,e) = aw(i,1,k,e) &
1239 + dzt(k,1) * wt(i,1,1) &
1240 + dzt(k,2) * wt(i,1,2) &
1241 + dzt(k,3) * wt(i,1,3) &
1242 + dzt(k,4) * wt(i,1,4) &
1243 + dzt(k,5) * wt(i,1,5) &
1244 + dzt(k,6) * wt(i,1,6) &
1245 + dzt(k,7) * wt(i,1,7) &
1246 + dzt(k,8) * wt(i,1,8) &
1247 + dzt(k,9) * wt(i,1,9) &
1248 + dzt(k,10) * wt(i,1,10) &
1249 + dzt(k,11) * wt(i,1,11) &
1250 + dzt(k,12) * wt(i,1,12) &
1251 + dzt(k,13) * wt(i,1,13)
1258 end subroutine ax_helm_vector_lx13
1260 subroutine ax_helm_vector_lx12(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
1261 h1, h2, B, ifh2, G11, G22, G33, G12, G13, G23, n)
1262 integer,
parameter :: lx = 12
1263 integer,
intent(in) :: n
1264 logical,
intent(in) :: ifh2
1265 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
1266 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
1267 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
1268 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
1269 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
1270 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
1271 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
1272 real(kind=rp),
intent(in) :: h2(lx, lx, lx, n)
1273 real(kind=rp),
intent(in) :: b(lx, lx, lx, n)
1274 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
1275 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
1276 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
1277 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
1278 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
1279 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
1280 real(kind=rp),
intent(in) :: dx(lx, lx)
1281 real(kind=rp),
intent(in) :: dy(lx, lx)
1282 real(kind=rp),
intent(in) :: dz(lx, lx)
1283 real(kind=rp),
intent(in) :: dxt(lx, lx)
1284 real(kind=rp),
intent(in) :: dyt(lx, lx)
1285 real(kind=rp),
intent(in) :: dzt(lx, lx)
1286 real(kind=rp) :: ur(lx, lx, lx)
1287 real(kind=rp) :: us(lx, lx, lx)
1288 real(kind=rp) :: ut(lx, lx, lx)
1289 real(kind=rp) :: vr(lx, lx, lx)
1290 real(kind=rp) :: vs(lx, lx, lx)
1291 real(kind=rp) :: vt(lx, lx, lx)
1292 real(kind=rp) :: wr(lx, lx, lx)
1293 real(kind=rp) :: ws(lx, lx, lx)
1294 real(kind=rp) :: wt(lx, lx, lx)
1295 real(kind=rp) :: wur(lx, lx, lx)
1296 real(kind=rp) :: wus(lx, lx, lx)
1297 real(kind=rp) :: wut(lx, lx, lx)
1298 real(kind=rp) :: wvr(lx, lx, lx)
1299 real(kind=rp) :: wvs(lx, lx, lx)
1300 real(kind=rp) :: wvt(lx, lx, lx)
1301 real(kind=rp) :: wwr(lx, lx, lx)
1302 real(kind=rp) :: wws(lx, lx, lx)
1303 real(kind=rp) :: wwt(lx, lx, lx)
1304 integer :: e, i, j, k
1310 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
1311 + dx(i,2) * u(2,j,1,e) &
1312 + dx(i,3) * u(3,j,1,e) &
1313 + dx(i,4) * u(4,j,1,e) &
1314 + dx(i,5) * u(5,j,1,e) &
1315 + dx(i,6) * u(6,j,1,e) &
1316 + dx(i,7) * u(7,j,1,e) &
1317 + dx(i,8) * u(8,j,1,e) &
1318 + dx(i,9) * u(9,j,1,e) &
1319 + dx(i,10) * u(10,j,1,e) &
1320 + dx(i,11) * u(11,j,1,e) &
1321 + dx(i,12) * u(12,j,1,e)
1323 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
1324 + dx(i,2) * v(2,j,1,e) &
1325 + dx(i,3) * v(3,j,1,e) &
1326 + dx(i,4) * v(4,j,1,e) &
1327 + dx(i,5) * v(5,j,1,e) &
1328 + dx(i,6) * v(6,j,1,e) &
1329 + dx(i,7) * v(7,j,1,e) &
1330 + dx(i,8) * v(8,j,1,e) &
1331 + dx(i,9) * v(9,j,1,e) &
1332 + dx(i,10) * v(10,j,1,e) &
1333 + dx(i,11) * v(11,j,1,e) &
1334 + dx(i,12) * v(12,j,1,e)
1336 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
1337 + dx(i,2) * w(2,j,1,e) &
1338 + dx(i,3) * w(3,j,1,e) &
1339 + dx(i,4) * w(4,j,1,e) &
1340 + dx(i,5) * w(5,j,1,e) &
1341 + dx(i,6) * w(6,j,1,e) &
1342 + dx(i,7) * w(7,j,1,e) &
1343 + dx(i,8) * w(8,j,1,e) &
1344 + dx(i,9) * w(9,j,1,e) &
1345 + dx(i,10) * w(10,j,1,e) &
1346 + dx(i,11) * w(11,j,1,e) &
1347 + dx(i,12) * w(12,j,1,e)
1354 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
1355 + dy(j,2) * u(i,2,k,e) &
1356 + dy(j,3) * u(i,3,k,e) &
1357 + dy(j,4) * u(i,4,k,e) &
1358 + dy(j,5) * u(i,5,k,e) &
1359 + dy(j,6) * u(i,6,k,e) &
1360 + dy(j,7) * u(i,7,k,e) &
1361 + dy(j,8) * u(i,8,k,e) &
1362 + dy(j,9) * u(i,9,k,e) &
1363 + dy(j,10) * u(i,10,k,e) &
1364 + dy(j,11) * u(i,11,k,e) &
1365 + dy(j,12) * u(i,12,k,e)
1367 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
1368 + dy(j,2) * v(i,2,k,e) &
1369 + dy(j,3) * v(i,3,k,e) &
1370 + dy(j,4) * v(i,4,k,e) &
1371 + dy(j,5) * v(i,5,k,e) &
1372 + dy(j,6) * v(i,6,k,e) &
1373 + dy(j,7) * v(i,7,k,e) &
1374 + dy(j,8) * v(i,8,k,e) &
1375 + dy(j,9) * v(i,9,k,e) &
1376 + dy(j,10) * v(i,10,k,e) &
1377 + dy(j,11) * v(i,11,k,e) &
1378 + dy(j,12) * v(i,12,k,e)
1380 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
1381 + dy(j,2) * w(i,2,k,e) &
1382 + dy(j,3) * w(i,3,k,e) &
1383 + dy(j,4) * w(i,4,k,e) &
1384 + dy(j,5) * w(i,5,k,e) &
1385 + dy(j,6) * w(i,6,k,e) &
1386 + dy(j,7) * w(i,7,k,e) &
1387 + dy(j,8) * w(i,8,k,e) &
1388 + dy(j,9) * w(i,9,k,e) &
1389 + dy(j,10) * w(i,10,k,e) &
1390 + dy(j,11) * w(i,11,k,e) &
1391 + dy(j,12) * w(i,12,k,e)
1398 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
1399 + dz(k,2) * u(i,1,2,e) &
1400 + dz(k,3) * u(i,1,3,e) &
1401 + dz(k,4) * u(i,1,4,e) &
1402 + dz(k,5) * u(i,1,5,e) &
1403 + dz(k,6) * u(i,1,6,e) &
1404 + dz(k,7) * u(i,1,7,e) &
1405 + dz(k,8) * u(i,1,8,e) &
1406 + dz(k,9) * u(i,1,9,e) &
1407 + dz(k,10) * u(i,1,10,e) &
1408 + dz(k,11) * u(i,1,11,e) &
1409 + dz(k,12) * u(i,1,12,e)
1411 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
1412 + dz(k,2) * v(i,1,2,e) &
1413 + dz(k,3) * v(i,1,3,e) &
1414 + dz(k,4) * v(i,1,4,e) &
1415 + dz(k,5) * v(i,1,5,e) &
1416 + dz(k,6) * v(i,1,6,e) &
1417 + dz(k,7) * v(i,1,7,e) &
1418 + dz(k,8) * v(i,1,8,e) &
1419 + dz(k,9) * v(i,1,9,e) &
1420 + dz(k,10) * v(i,1,10,e) &
1421 + dz(k,11) * v(i,1,11,e) &
1422 + dz(k,12) * v(i,1,12,e)
1424 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
1425 + dz(k,2) * w(i,1,2,e) &
1426 + dz(k,3) * w(i,1,3,e) &
1427 + dz(k,4) * w(i,1,4,e) &
1428 + dz(k,5) * w(i,1,5,e) &
1429 + dz(k,6) * w(i,1,6,e) &
1430 + dz(k,7) * w(i,1,7,e) &
1431 + dz(k,8) * w(i,1,8,e) &
1432 + dz(k,9) * w(i,1,9,e) &
1433 + dz(k,10) * w(i,1,10,e) &
1434 + dz(k,11) * w(i,1,11,e) &
1435 + dz(k,12) * w(i,1,12,e)
1440 ur(i,1,1) = h1(i,1,1,e) &
1441 * ( g11(i,1,1,e) * wur(i,1,1) &
1442 + g12(i,1,1,e) * wus(i,1,1) &
1443 + g13(i,1,1,e) * wut(i,1,1) )
1444 us(i,1,1) = h1(i,1,1,e) &
1445 * ( g12(i,1,1,e) * wur(i,1,1) &
1446 + g22(i,1,1,e) * wus(i,1,1) &
1447 + g23(i,1,1,e) * wut(i,1,1) )
1448 ut(i,1,1) = h1(i,1,1,e) &
1449 * ( g13(i,1,1,e) * wur(i,1,1) &
1450 + g23(i,1,1,e) * wus(i,1,1) &
1451 + g33(i,1,1,e) * wut(i,1,1) )
1453 vr(i,1,1) = h1(i,1,1,e) &
1454 * ( g11(i,1,1,e) * wvr(i,1,1) &
1455 + g12(i,1,1,e) * wvs(i,1,1) &
1456 + g13(i,1,1,e) * wvt(i,1,1) )
1457 vs(i,1,1) = h1(i,1,1,e) &
1458 * ( g12(i,1,1,e) * wvr(i,1,1) &
1459 + g22(i,1,1,e) * wvs(i,1,1) &
1460 + g23(i,1,1,e) * wvt(i,1,1) )
1461 vt(i,1,1) = h1(i,1,1,e) &
1462 * ( g13(i,1,1,e) * wvr(i,1,1) &
1463 + g23(i,1,1,e) * wvs(i,1,1) &
1464 + g33(i,1,1,e) * wvt(i,1,1) )
1466 wr(i,1,1) = h1(i,1,1,e) &
1467 * ( g11(i,1,1,e) * wwr(i,1,1) &
1468 + g12(i,1,1,e) * wws(i,1,1) &
1469 + g13(i,1,1,e) * wwt(i,1,1) )
1470 ws(i,1,1) = h1(i,1,1,e) &
1471 * ( g12(i,1,1,e) * wwr(i,1,1) &
1472 + g22(i,1,1,e) * wws(i,1,1) &
1473 + g23(i,1,1,e) * wwt(i,1,1) )
1474 wt(i,1,1) = h1(i,1,1,e) &
1475 * ( g13(i,1,1,e) * wwr(i,1,1) &
1476 + g23(i,1,1,e) * wws(i,1,1) &
1477 + g33(i,1,1,e) * wwt(i,1,1) )
1482 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
1483 + dxt(i,2) * ur(2,j,1) &
1484 + dxt(i,3) * ur(3,j,1) &
1485 + dxt(i,4) * ur(4,j,1) &
1486 + dxt(i,5) * ur(5,j,1) &
1487 + dxt(i,6) * ur(6,j,1) &
1488 + dxt(i,7) * ur(7,j,1) &
1489 + dxt(i,8) * ur(8,j,1) &
1490 + dxt(i,9) * ur(9,j,1) &
1491 + dxt(i,10) * ur(10,j,1) &
1492 + dxt(i,11) * ur(11,j,1) &
1493 + dxt(i,12) * ur(12,j,1)
1495 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
1496 + dxt(i,2) * vr(2,j,1) &
1497 + dxt(i,3) * vr(3,j,1) &
1498 + dxt(i,4) * vr(4,j,1) &
1499 + dxt(i,5) * vr(5,j,1) &
1500 + dxt(i,6) * vr(6,j,1) &
1501 + dxt(i,7) * vr(7,j,1) &
1502 + dxt(i,8) * vr(8,j,1) &
1503 + dxt(i,9) * vr(9,j,1) &
1504 + dxt(i,10) * vr(10,j,1) &
1505 + dxt(i,11) * vr(11,j,1) &
1506 + dxt(i,12) * vr(12,j,1)
1508 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
1509 + dxt(i,2) * wr(2,j,1) &
1510 + dxt(i,3) * wr(3,j,1) &
1511 + dxt(i,4) * wr(4,j,1) &
1512 + dxt(i,5) * wr(5,j,1) &
1513 + dxt(i,6) * wr(6,j,1) &
1514 + dxt(i,7) * wr(7,j,1) &
1515 + dxt(i,8) * wr(8,j,1) &
1516 + dxt(i,9) * wr(9,j,1) &
1517 + dxt(i,10) * wr(10,j,1) &
1518 + dxt(i,11) * wr(11,j,1) &
1519 + dxt(i,12) * wr(12,j,1)
1526 au(i,j,k,e) = au(i,j,k,e) &
1527 + dyt(j,1) * us(i,1,k) &
1528 + dyt(j,2) * us(i,2,k) &
1529 + dyt(j,3) * us(i,3,k) &
1530 + dyt(j,4) * us(i,4,k) &
1531 + dyt(j,5) * us(i,5,k) &
1532 + dyt(j,6) * us(i,6,k) &
1533 + dyt(j,7) * us(i,7,k) &
1534 + dyt(j,8) * us(i,8,k) &
1535 + dyt(j,9) * us(i,9,k) &
1536 + dyt(j,10) * us(i,10,k) &
1537 + dyt(j,11) * us(i,11,k) &
1538 + dyt(j,12) * us(i,12,k)
1540 av(i,j,k,e) = av(i,j,k,e) &
1541 + dyt(j,1) * vs(i,1,k) &
1542 + dyt(j,2) * vs(i,2,k) &
1543 + dyt(j,3) * vs(i,3,k) &
1544 + dyt(j,4) * vs(i,4,k) &
1545 + dyt(j,5) * vs(i,5,k) &
1546 + dyt(j,6) * vs(i,6,k) &
1547 + dyt(j,7) * vs(i,7,k) &
1548 + dyt(j,8) * vs(i,8,k) &
1549 + dyt(j,9) * vs(i,9,k) &
1550 + dyt(j,10) * vs(i,10,k) &
1551 + dyt(j,11) * vs(i,11,k) &
1552 + dyt(j,12) * vs(i,12,k)
1554 aw(i,j,k,e) = aw(i,j,k,e) &
1555 + dyt(j,1) * ws(i,1,k) &
1556 + dyt(j,2) * ws(i,2,k) &
1557 + dyt(j,3) * ws(i,3,k) &
1558 + dyt(j,4) * ws(i,4,k) &
1559 + dyt(j,5) * ws(i,5,k) &
1560 + dyt(j,6) * ws(i,6,k) &
1561 + dyt(j,7) * ws(i,7,k) &
1562 + dyt(j,8) * ws(i,8,k) &
1563 + dyt(j,9) * ws(i,9,k) &
1564 + dyt(j,10) * ws(i,10,k) &
1565 + dyt(j,11) * ws(i,11,k) &
1566 + dyt(j,12) * ws(i,12,k)
1574 au(i,1,k,e) = au(i,1,k,e) &
1575 + dzt(k,1) * ut(i,1,1) &
1576 + dzt(k,2) * ut(i,1,2) &
1577 + dzt(k,3) * ut(i,1,3) &
1578 + dzt(k,4) * ut(i,1,4) &
1579 + dzt(k,5) * ut(i,1,5) &
1580 + dzt(k,6) * ut(i,1,6) &
1581 + dzt(k,7) * ut(i,1,7) &
1582 + dzt(k,8) * ut(i,1,8) &
1583 + dzt(k,9) * ut(i,1,9) &
1584 + dzt(k,10) * ut(i,1,10) &
1585 + dzt(k,11) * ut(i,1,11) &
1586 + dzt(k,12) * ut(i,1,12) &
1587 + h2(i,1,k,e) * b(i,1,k,e) * u(i,1,k,e)
1589 av(i,1,k,e) = av(i,1,k,e) &
1590 + dzt(k,1) * vt(i,1,1) &
1591 + dzt(k,2) * vt(i,1,2) &
1592 + dzt(k,3) * vt(i,1,3) &
1593 + dzt(k,4) * vt(i,1,4) &
1594 + dzt(k,5) * vt(i,1,5) &
1595 + dzt(k,6) * vt(i,1,6) &
1596 + dzt(k,7) * vt(i,1,7) &
1597 + dzt(k,8) * vt(i,1,8) &
1598 + dzt(k,9) * vt(i,1,9) &
1599 + dzt(k,10) * vt(i,1,10) &
1600 + dzt(k,11) * vt(i,1,11) &
1601 + dzt(k,12) * vt(i,1,12) &
1602 + h2(i,1,k,e) * b(i,1,k,e) * v(i,1,k,e)
1604 aw(i,1,k,e) = aw(i,1,k,e) &
1605 + dzt(k,1) * wt(i,1,1) &
1606 + dzt(k,2) * wt(i,1,2) &
1607 + dzt(k,3) * wt(i,1,3) &
1608 + dzt(k,4) * wt(i,1,4) &
1609 + dzt(k,5) * wt(i,1,5) &
1610 + dzt(k,6) * wt(i,1,6) &
1611 + dzt(k,7) * wt(i,1,7) &
1612 + dzt(k,8) * wt(i,1,8) &
1613 + dzt(k,9) * wt(i,1,9) &
1614 + dzt(k,10) * wt(i,1,10) &
1615 + dzt(k,11) * wt(i,1,11) &
1616 + dzt(k,12) * wt(i,1,12) &
1617 + h2(i,1,k,e) * b(i,1,k,e) * w(i,1,k,e)
1623 au(i,1,k,e) = au(i,1,k,e) &
1624 + dzt(k,1) * ut(i,1,1) &
1625 + dzt(k,2) * ut(i,1,2) &
1626 + dzt(k,3) * ut(i,1,3) &
1627 + dzt(k,4) * ut(i,1,4) &
1628 + dzt(k,5) * ut(i,1,5) &
1629 + dzt(k,6) * ut(i,1,6) &
1630 + dzt(k,7) * ut(i,1,7) &
1631 + dzt(k,8) * ut(i,1,8) &
1632 + dzt(k,9) * ut(i,1,9) &
1633 + dzt(k,10) * ut(i,1,10) &
1634 + dzt(k,11) * ut(i,1,11) &
1635 + dzt(k,12) * ut(i,1,12)
1637 av(i,1,k,e) = av(i,1,k,e) &
1638 + dzt(k,1) * vt(i,1,1) &
1639 + dzt(k,2) * vt(i,1,2) &
1640 + dzt(k,3) * vt(i,1,3) &
1641 + dzt(k,4) * vt(i,1,4) &
1642 + dzt(k,5) * vt(i,1,5) &
1643 + dzt(k,6) * vt(i,1,6) &
1644 + dzt(k,7) * vt(i,1,7) &
1645 + dzt(k,8) * vt(i,1,8) &
1646 + dzt(k,9) * vt(i,1,9) &
1647 + dzt(k,10) * vt(i,1,10) &
1648 + dzt(k,11) * vt(i,1,11) &
1649 + dzt(k,12) * vt(i,1,12)
1651 aw(i,1,k,e) = aw(i,1,k,e) &
1652 + dzt(k,1) * wt(i,1,1) &
1653 + dzt(k,2) * wt(i,1,2) &
1654 + dzt(k,3) * wt(i,1,3) &
1655 + dzt(k,4) * wt(i,1,4) &
1656 + dzt(k,5) * wt(i,1,5) &
1657 + dzt(k,6) * wt(i,1,6) &
1658 + dzt(k,7) * wt(i,1,7) &
1659 + dzt(k,8) * wt(i,1,8) &
1660 + dzt(k,9) * wt(i,1,9) &
1661 + dzt(k,10) * wt(i,1,10) &
1662 + dzt(k,11) * wt(i,1,11) &
1663 + dzt(k,12) * wt(i,1,12)
1670 end subroutine ax_helm_vector_lx12
1672 subroutine ax_helm_vector_lx11(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
1673 h1, h2, B, ifh2, G11, G22, G33, G12, G13, G23, n)
1674 integer,
parameter :: lx = 11
1675 integer,
intent(in) :: n
1676 logical,
intent(in) :: ifh2
1677 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
1678 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
1679 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
1680 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
1681 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
1682 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
1683 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
1684 real(kind=rp),
intent(in) :: h2(lx, lx, lx, n)
1685 real(kind=rp),
intent(in) :: b(lx, lx, lx, n)
1686 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
1687 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
1688 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
1689 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
1690 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
1691 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
1692 real(kind=rp),
intent(in) :: dx(lx, lx)
1693 real(kind=rp),
intent(in) :: dy(lx, lx)
1694 real(kind=rp),
intent(in) :: dz(lx, lx)
1695 real(kind=rp),
intent(in) :: dxt(lx, lx)
1696 real(kind=rp),
intent(in) :: dyt(lx, lx)
1697 real(kind=rp),
intent(in) :: dzt(lx, lx)
1698 real(kind=rp) :: ur(lx, lx, lx)
1699 real(kind=rp) :: us(lx, lx, lx)
1700 real(kind=rp) :: ut(lx, lx, lx)
1701 real(kind=rp) :: vr(lx, lx, lx)
1702 real(kind=rp) :: vs(lx, lx, lx)
1703 real(kind=rp) :: vt(lx, lx, lx)
1704 real(kind=rp) :: wr(lx, lx, lx)
1705 real(kind=rp) :: ws(lx, lx, lx)
1706 real(kind=rp) :: wt(lx, lx, lx)
1707 real(kind=rp) :: wur(lx, lx, lx)
1708 real(kind=rp) :: wus(lx, lx, lx)
1709 real(kind=rp) :: wut(lx, lx, lx)
1710 real(kind=rp) :: wvr(lx, lx, lx)
1711 real(kind=rp) :: wvs(lx, lx, lx)
1712 real(kind=rp) :: wvt(lx, lx, lx)
1713 real(kind=rp) :: wwr(lx, lx, lx)
1714 real(kind=rp) :: wws(lx, lx, lx)
1715 real(kind=rp) :: wwt(lx, lx, lx)
1716 integer :: e, i, j, k
1722 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
1723 + dx(i,2) * u(2,j,1,e) &
1724 + dx(i,3) * u(3,j,1,e) &
1725 + dx(i,4) * u(4,j,1,e) &
1726 + dx(i,5) * u(5,j,1,e) &
1727 + dx(i,6) * u(6,j,1,e) &
1728 + dx(i,7) * u(7,j,1,e) &
1729 + dx(i,8) * u(8,j,1,e) &
1730 + dx(i,9) * u(9,j,1,e) &
1731 + dx(i,10) * u(10,j,1,e) &
1732 + dx(i,11) * u(11,j,1,e)
1734 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
1735 + dx(i,2) * v(2,j,1,e) &
1736 + dx(i,3) * v(3,j,1,e) &
1737 + dx(i,4) * v(4,j,1,e) &
1738 + dx(i,5) * v(5,j,1,e) &
1739 + dx(i,6) * v(6,j,1,e) &
1740 + dx(i,7) * v(7,j,1,e) &
1741 + dx(i,8) * v(8,j,1,e) &
1742 + dx(i,9) * v(9,j,1,e) &
1743 + dx(i,10) * v(10,j,1,e) &
1744 + dx(i,11) * v(11,j,1,e)
1746 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
1747 + dx(i,2) * w(2,j,1,e) &
1748 + dx(i,3) * w(3,j,1,e) &
1749 + dx(i,4) * w(4,j,1,e) &
1750 + dx(i,5) * w(5,j,1,e) &
1751 + dx(i,6) * w(6,j,1,e) &
1752 + dx(i,7) * w(7,j,1,e) &
1753 + dx(i,8) * w(8,j,1,e) &
1754 + dx(i,9) * w(9,j,1,e) &
1755 + dx(i,10) * w(10,j,1,e) &
1756 + dx(i,11) * w(11,j,1,e)
1763 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
1764 + dy(j,2) * u(i,2,k,e) &
1765 + dy(j,3) * u(i,3,k,e) &
1766 + dy(j,4) * u(i,4,k,e) &
1767 + dy(j,5) * u(i,5,k,e) &
1768 + dy(j,6) * u(i,6,k,e) &
1769 + dy(j,7) * u(i,7,k,e) &
1770 + dy(j,8) * u(i,8,k,e) &
1771 + dy(j,9) * u(i,9,k,e) &
1772 + dy(j,10) * u(i,10,k,e) &
1773 + dy(j,11) * u(i,11,k,e)
1775 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
1776 + dy(j,2) * v(i,2,k,e) &
1777 + dy(j,3) * v(i,3,k,e) &
1778 + dy(j,4) * v(i,4,k,e) &
1779 + dy(j,5) * v(i,5,k,e) &
1780 + dy(j,6) * v(i,6,k,e) &
1781 + dy(j,7) * v(i,7,k,e) &
1782 + dy(j,8) * v(i,8,k,e) &
1783 + dy(j,9) * v(i,9,k,e) &
1784 + dy(j,10) * v(i,10,k,e) &
1785 + dy(j,11) * v(i,11,k,e)
1787 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
1788 + dy(j,2) * w(i,2,k,e) &
1789 + dy(j,3) * w(i,3,k,e) &
1790 + dy(j,4) * w(i,4,k,e) &
1791 + dy(j,5) * w(i,5,k,e) &
1792 + dy(j,6) * w(i,6,k,e) &
1793 + dy(j,7) * w(i,7,k,e) &
1794 + dy(j,8) * w(i,8,k,e) &
1795 + dy(j,9) * w(i,9,k,e) &
1796 + dy(j,10) * w(i,10,k,e) &
1797 + dy(j,11) * w(i,11,k,e)
1804 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
1805 + dz(k,2) * u(i,1,2,e) &
1806 + dz(k,3) * u(i,1,3,e) &
1807 + dz(k,4) * u(i,1,4,e) &
1808 + dz(k,5) * u(i,1,5,e) &
1809 + dz(k,6) * u(i,1,6,e) &
1810 + dz(k,7) * u(i,1,7,e) &
1811 + dz(k,8) * u(i,1,8,e) &
1812 + dz(k,9) * u(i,1,9,e) &
1813 + dz(k,10) * u(i,1,10,e) &
1814 + dz(k,11) * u(i,1,11,e)
1816 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
1817 + dz(k,2) * v(i,1,2,e) &
1818 + dz(k,3) * v(i,1,3,e) &
1819 + dz(k,4) * v(i,1,4,e) &
1820 + dz(k,5) * v(i,1,5,e) &
1821 + dz(k,6) * v(i,1,6,e) &
1822 + dz(k,7) * v(i,1,7,e) &
1823 + dz(k,8) * v(i,1,8,e) &
1824 + dz(k,9) * v(i,1,9,e) &
1825 + dz(k,10) * v(i,1,10,e) &
1826 + dz(k,11) * v(i,1,11,e)
1828 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
1829 + dz(k,2) * w(i,1,2,e) &
1830 + dz(k,3) * w(i,1,3,e) &
1831 + dz(k,4) * w(i,1,4,e) &
1832 + dz(k,5) * w(i,1,5,e) &
1833 + dz(k,6) * w(i,1,6,e) &
1834 + dz(k,7) * w(i,1,7,e) &
1835 + dz(k,8) * w(i,1,8,e) &
1836 + dz(k,9) * w(i,1,9,e) &
1837 + dz(k,10) * w(i,1,10,e) &
1838 + dz(k,11) * w(i,1,11,e)
1843 ur(i,1,1) = h1(i,1,1,e) &
1844 * ( g11(i,1,1,e) * wur(i,1,1) &
1845 + g12(i,1,1,e) * wus(i,1,1) &
1846 + g13(i,1,1,e) * wut(i,1,1) )
1847 us(i,1,1) = h1(i,1,1,e) &
1848 * ( g12(i,1,1,e) * wur(i,1,1) &
1849 + g22(i,1,1,e) * wus(i,1,1) &
1850 + g23(i,1,1,e) * wut(i,1,1) )
1851 ut(i,1,1) = h1(i,1,1,e) &
1852 * ( g13(i,1,1,e) * wur(i,1,1) &
1853 + g23(i,1,1,e) * wus(i,1,1) &
1854 + g33(i,1,1,e) * wut(i,1,1) )
1856 vr(i,1,1) = h1(i,1,1,e) &
1857 * ( g11(i,1,1,e) * wvr(i,1,1) &
1858 + g12(i,1,1,e) * wvs(i,1,1) &
1859 + g13(i,1,1,e) * wvt(i,1,1) )
1860 vs(i,1,1) = h1(i,1,1,e) &
1861 * ( g12(i,1,1,e) * wvr(i,1,1) &
1862 + g22(i,1,1,e) * wvs(i,1,1) &
1863 + g23(i,1,1,e) * wvt(i,1,1) )
1864 vt(i,1,1) = h1(i,1,1,e) &
1865 * ( g13(i,1,1,e) * wvr(i,1,1) &
1866 + g23(i,1,1,e) * wvs(i,1,1) &
1867 + g33(i,1,1,e) * wvt(i,1,1) )
1869 wr(i,1,1) = h1(i,1,1,e) &
1870 * ( g11(i,1,1,e) * wwr(i,1,1) &
1871 + g12(i,1,1,e) * wws(i,1,1) &
1872 + g13(i,1,1,e) * wwt(i,1,1) )
1873 ws(i,1,1) = h1(i,1,1,e) &
1874 * ( g12(i,1,1,e) * wwr(i,1,1) &
1875 + g22(i,1,1,e) * wws(i,1,1) &
1876 + g23(i,1,1,e) * wwt(i,1,1) )
1877 wt(i,1,1) = h1(i,1,1,e) &
1878 * ( g13(i,1,1,e) * wwr(i,1,1) &
1879 + g23(i,1,1,e) * wws(i,1,1) &
1880 + g33(i,1,1,e) * wwt(i,1,1) )
1885 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
1886 + dxt(i,2) * ur(2,j,1) &
1887 + dxt(i,3) * ur(3,j,1) &
1888 + dxt(i,4) * ur(4,j,1) &
1889 + dxt(i,5) * ur(5,j,1) &
1890 + dxt(i,6) * ur(6,j,1) &
1891 + dxt(i,7) * ur(7,j,1) &
1892 + dxt(i,8) * ur(8,j,1) &
1893 + dxt(i,9) * ur(9,j,1) &
1894 + dxt(i,10) * ur(10,j,1) &
1895 + dxt(i,11) * ur(11,j,1)
1897 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
1898 + dxt(i,2) * vr(2,j,1) &
1899 + dxt(i,3) * vr(3,j,1) &
1900 + dxt(i,4) * vr(4,j,1) &
1901 + dxt(i,5) * vr(5,j,1) &
1902 + dxt(i,6) * vr(6,j,1) &
1903 + dxt(i,7) * vr(7,j,1) &
1904 + dxt(i,8) * vr(8,j,1) &
1905 + dxt(i,9) * vr(9,j,1) &
1906 + dxt(i,10) * vr(10,j,1) &
1907 + dxt(i,11) * vr(11,j,1)
1909 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
1910 + dxt(i,2) * wr(2,j,1) &
1911 + dxt(i,3) * wr(3,j,1) &
1912 + dxt(i,4) * wr(4,j,1) &
1913 + dxt(i,5) * wr(5,j,1) &
1914 + dxt(i,6) * wr(6,j,1) &
1915 + dxt(i,7) * wr(7,j,1) &
1916 + dxt(i,8) * wr(8,j,1) &
1917 + dxt(i,9) * wr(9,j,1) &
1918 + dxt(i,10) * wr(10,j,1) &
1919 + dxt(i,11) * wr(11,j,1)
1926 au(i,j,k,e) = au(i,j,k,e) &
1927 + dyt(j,1) * us(i,1,k) &
1928 + dyt(j,2) * us(i,2,k) &
1929 + dyt(j,3) * us(i,3,k) &
1930 + dyt(j,4) * us(i,4,k) &
1931 + dyt(j,5) * us(i,5,k) &
1932 + dyt(j,6) * us(i,6,k) &
1933 + dyt(j,7) * us(i,7,k) &
1934 + dyt(j,8) * us(i,8,k) &
1935 + dyt(j,9) * us(i,9,k) &
1936 + dyt(j,10) * us(i,10,k) &
1937 + dyt(j,11) * us(i,11,k)
1939 av(i,j,k,e) = av(i,j,k,e) &
1940 + dyt(j,1) * vs(i,1,k) &
1941 + dyt(j,2) * vs(i,2,k) &
1942 + dyt(j,3) * vs(i,3,k) &
1943 + dyt(j,4) * vs(i,4,k) &
1944 + dyt(j,5) * vs(i,5,k) &
1945 + dyt(j,6) * vs(i,6,k) &
1946 + dyt(j,7) * vs(i,7,k) &
1947 + dyt(j,8) * vs(i,8,k) &
1948 + dyt(j,9) * vs(i,9,k) &
1949 + dyt(j,10) * vs(i,10,k) &
1950 + dyt(j,11) * vs(i,11,k)
1952 aw(i,j,k,e) = aw(i,j,k,e) &
1953 + dyt(j,1) * ws(i,1,k) &
1954 + dyt(j,2) * ws(i,2,k) &
1955 + dyt(j,3) * ws(i,3,k) &
1956 + dyt(j,4) * ws(i,4,k) &
1957 + dyt(j,5) * ws(i,5,k) &
1958 + dyt(j,6) * ws(i,6,k) &
1959 + dyt(j,7) * ws(i,7,k) &
1960 + dyt(j,8) * ws(i,8,k) &
1961 + dyt(j,9) * ws(i,9,k) &
1962 + dyt(j,10) * ws(i,10,k) &
1963 + dyt(j,11) * ws(i,11,k)
1971 au(i,1,k,e) = au(i,1,k,e) &
1972 + dzt(k,1) * ut(i,1,1) &
1973 + dzt(k,2) * ut(i,1,2) &
1974 + dzt(k,3) * ut(i,1,3) &
1975 + dzt(k,4) * ut(i,1,4) &
1976 + dzt(k,5) * ut(i,1,5) &
1977 + dzt(k,6) * ut(i,1,6) &
1978 + dzt(k,7) * ut(i,1,7) &
1979 + dzt(k,8) * ut(i,1,8) &
1980 + dzt(k,9) * ut(i,1,9) &
1981 + dzt(k,10) * ut(i,1,10) &
1982 + dzt(k,11) * ut(i,1,11) &
1983 + h2(i,1,k,e) * b(i,1,k,e) * u(i,1,k,e)
1985 av(i,1,k,e) = av(i,1,k,e) &
1986 + dzt(k,1) * vt(i,1,1) &
1987 + dzt(k,2) * vt(i,1,2) &
1988 + dzt(k,3) * vt(i,1,3) &
1989 + dzt(k,4) * vt(i,1,4) &
1990 + dzt(k,5) * vt(i,1,5) &
1991 + dzt(k,6) * vt(i,1,6) &
1992 + dzt(k,7) * vt(i,1,7) &
1993 + dzt(k,8) * vt(i,1,8) &
1994 + dzt(k,9) * vt(i,1,9) &
1995 + dzt(k,10) * vt(i,1,10) &
1996 + dzt(k,11) * vt(i,1,11) &
1997 + h2(i,1,k,e) * b(i,1,k,e) * v(i,1,k,e)
1999 aw(i,1,k,e) = aw(i,1,k,e) &
2000 + dzt(k,1) * wt(i,1,1) &
2001 + dzt(k,2) * wt(i,1,2) &
2002 + dzt(k,3) * wt(i,1,3) &
2003 + dzt(k,4) * wt(i,1,4) &
2004 + dzt(k,5) * wt(i,1,5) &
2005 + dzt(k,6) * wt(i,1,6) &
2006 + dzt(k,7) * wt(i,1,7) &
2007 + dzt(k,8) * wt(i,1,8) &
2008 + dzt(k,9) * wt(i,1,9) &
2009 + dzt(k,10) * wt(i,1,10) &
2010 + dzt(k,11) * wt(i,1,11) &
2011 + h2(i,1,k,e) * b(i,1,k,e) * w(i,1,k,e)
2017 au(i,1,k,e) = au(i,1,k,e) &
2018 + dzt(k,1) * ut(i,1,1) &
2019 + dzt(k,2) * ut(i,1,2) &
2020 + dzt(k,3) * ut(i,1,3) &
2021 + dzt(k,4) * ut(i,1,4) &
2022 + dzt(k,5) * ut(i,1,5) &
2023 + dzt(k,6) * ut(i,1,6) &
2024 + dzt(k,7) * ut(i,1,7) &
2025 + dzt(k,8) * ut(i,1,8) &
2026 + dzt(k,9) * ut(i,1,9) &
2027 + dzt(k,10) * ut(i,1,10) &
2028 + dzt(k,11) * ut(i,1,11)
2030 av(i,1,k,e) = av(i,1,k,e) &
2031 + dzt(k,1) * vt(i,1,1) &
2032 + dzt(k,2) * vt(i,1,2) &
2033 + dzt(k,3) * vt(i,1,3) &
2034 + dzt(k,4) * vt(i,1,4) &
2035 + dzt(k,5) * vt(i,1,5) &
2036 + dzt(k,6) * vt(i,1,6) &
2037 + dzt(k,7) * vt(i,1,7) &
2038 + dzt(k,8) * vt(i,1,8) &
2039 + dzt(k,9) * vt(i,1,9) &
2040 + dzt(k,10) * vt(i,1,10) &
2041 + dzt(k,11) * vt(i,1,11)
2043 aw(i,1,k,e) = aw(i,1,k,e) &
2044 + dzt(k,1) * wt(i,1,1) &
2045 + dzt(k,2) * wt(i,1,2) &
2046 + dzt(k,3) * wt(i,1,3) &
2047 + dzt(k,4) * wt(i,1,4) &
2048 + dzt(k,5) * wt(i,1,5) &
2049 + dzt(k,6) * wt(i,1,6) &
2050 + dzt(k,7) * wt(i,1,7) &
2051 + dzt(k,8) * wt(i,1,8) &
2052 + dzt(k,9) * wt(i,1,9) &
2053 + dzt(k,10) * wt(i,1,10) &
2054 + dzt(k,11) * wt(i,1,11)
2061 end subroutine ax_helm_vector_lx11
2063 subroutine ax_helm_vector_lx10(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
2064 h1, h2, B, ifh2, G11, G22, G33, G12, G13, G23, n)
2065 integer,
parameter :: lx = 10
2066 integer,
intent(in) :: n
2067 logical,
intent(in) :: ifh2
2068 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
2069 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
2070 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
2071 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
2072 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
2073 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
2074 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
2075 real(kind=rp),
intent(in) :: h2(lx, lx, lx, n)
2076 real(kind=rp),
intent(in) :: b(lx, lx, lx, n)
2077 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
2078 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
2079 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
2080 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
2081 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
2082 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
2083 real(kind=rp),
intent(in) :: dx(lx, lx)
2084 real(kind=rp),
intent(in) :: dy(lx, lx)
2085 real(kind=rp),
intent(in) :: dz(lx, lx)
2086 real(kind=rp),
intent(in) :: dxt(lx, lx)
2087 real(kind=rp),
intent(in) :: dyt(lx, lx)
2088 real(kind=rp),
intent(in) :: dzt(lx, lx)
2089 real(kind=rp) :: ur(lx, lx, lx)
2090 real(kind=rp) :: us(lx, lx, lx)
2091 real(kind=rp) :: ut(lx, lx, lx)
2092 real(kind=rp) :: vr(lx, lx, lx)
2093 real(kind=rp) :: vs(lx, lx, lx)
2094 real(kind=rp) :: vt(lx, lx, lx)
2095 real(kind=rp) :: wr(lx, lx, lx)
2096 real(kind=rp) :: ws(lx, lx, lx)
2097 real(kind=rp) :: wt(lx, lx, lx)
2098 real(kind=rp) :: wur(lx, lx, lx)
2099 real(kind=rp) :: wus(lx, lx, lx)
2100 real(kind=rp) :: wut(lx, lx, lx)
2101 real(kind=rp) :: wvr(lx, lx, lx)
2102 real(kind=rp) :: wvs(lx, lx, lx)
2103 real(kind=rp) :: wvt(lx, lx, lx)
2104 real(kind=rp) :: wwr(lx, lx, lx)
2105 real(kind=rp) :: wws(lx, lx, lx)
2106 real(kind=rp) :: wwt(lx, lx, lx)
2107 integer :: e, i, j, k
2113 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
2114 + dx(i,2) * u(2,j,1,e) &
2115 + dx(i,3) * u(3,j,1,e) &
2116 + dx(i,4) * u(4,j,1,e) &
2117 + dx(i,5) * u(5,j,1,e) &
2118 + dx(i,6) * u(6,j,1,e) &
2119 + dx(i,7) * u(7,j,1,e) &
2120 + dx(i,8) * u(8,j,1,e) &
2121 + dx(i,9) * u(9,j,1,e) &
2122 + dx(i,10) * u(10,j,1,e)
2124 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
2125 + dx(i,2) * v(2,j,1,e) &
2126 + dx(i,3) * v(3,j,1,e) &
2127 + dx(i,4) * v(4,j,1,e) &
2128 + dx(i,5) * v(5,j,1,e) &
2129 + dx(i,6) * v(6,j,1,e) &
2130 + dx(i,7) * v(7,j,1,e) &
2131 + dx(i,8) * v(8,j,1,e) &
2132 + dx(i,9) * v(9,j,1,e) &
2133 + dx(i,10) * v(10,j,1,e)
2135 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
2136 + dx(i,2) * w(2,j,1,e) &
2137 + dx(i,3) * w(3,j,1,e) &
2138 + dx(i,4) * w(4,j,1,e) &
2139 + dx(i,5) * w(5,j,1,e) &
2140 + dx(i,6) * w(6,j,1,e) &
2141 + dx(i,7) * w(7,j,1,e) &
2142 + dx(i,8) * w(8,j,1,e) &
2143 + dx(i,9) * w(9,j,1,e) &
2144 + dx(i,10) * w(10,j,1,e)
2151 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
2152 + dy(j,2) * u(i,2,k,e) &
2153 + dy(j,3) * u(i,3,k,e) &
2154 + dy(j,4) * u(i,4,k,e) &
2155 + dy(j,5) * u(i,5,k,e) &
2156 + dy(j,6) * u(i,6,k,e) &
2157 + dy(j,7) * u(i,7,k,e) &
2158 + dy(j,8) * u(i,8,k,e) &
2159 + dy(j,9) * u(i,9,k,e) &
2160 + dy(j,10) * u(i,10,k,e)
2162 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
2163 + dy(j,2) * v(i,2,k,e) &
2164 + dy(j,3) * v(i,3,k,e) &
2165 + dy(j,4) * v(i,4,k,e) &
2166 + dy(j,5) * v(i,5,k,e) &
2167 + dy(j,6) * v(i,6,k,e) &
2168 + dy(j,7) * v(i,7,k,e) &
2169 + dy(j,8) * v(i,8,k,e) &
2170 + dy(j,9) * v(i,9,k,e) &
2171 + dy(j,10) * v(i,10,k,e)
2173 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
2174 + dy(j,2) * w(i,2,k,e) &
2175 + dy(j,3) * w(i,3,k,e) &
2176 + dy(j,4) * w(i,4,k,e) &
2177 + dy(j,5) * w(i,5,k,e) &
2178 + dy(j,6) * w(i,6,k,e) &
2179 + dy(j,7) * w(i,7,k,e) &
2180 + dy(j,8) * w(i,8,k,e) &
2181 + dy(j,9) * w(i,9,k,e) &
2182 + dy(j,10) * w(i,10,k,e)
2189 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
2190 + dz(k,2) * u(i,1,2,e) &
2191 + dz(k,3) * u(i,1,3,e) &
2192 + dz(k,4) * u(i,1,4,e) &
2193 + dz(k,5) * u(i,1,5,e) &
2194 + dz(k,6) * u(i,1,6,e) &
2195 + dz(k,7) * u(i,1,7,e) &
2196 + dz(k,8) * u(i,1,8,e) &
2197 + dz(k,9) * u(i,1,9,e) &
2198 + dz(k,10) * u(i,1,10,e)
2200 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
2201 + dz(k,2) * v(i,1,2,e) &
2202 + dz(k,3) * v(i,1,3,e) &
2203 + dz(k,4) * v(i,1,4,e) &
2204 + dz(k,5) * v(i,1,5,e) &
2205 + dz(k,6) * v(i,1,6,e) &
2206 + dz(k,7) * v(i,1,7,e) &
2207 + dz(k,8) * v(i,1,8,e) &
2208 + dz(k,9) * v(i,1,9,e) &
2209 + dz(k,10) * v(i,1,10,e)
2211 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
2212 + dz(k,2) * w(i,1,2,e) &
2213 + dz(k,3) * w(i,1,3,e) &
2214 + dz(k,4) * w(i,1,4,e) &
2215 + dz(k,5) * w(i,1,5,e) &
2216 + dz(k,6) * w(i,1,6,e) &
2217 + dz(k,7) * w(i,1,7,e) &
2218 + dz(k,8) * w(i,1,8,e) &
2219 + dz(k,9) * w(i,1,9,e) &
2220 + dz(k,10) * w(i,1,10,e)
2225 ur(i,1,1) = h1(i,1,1,e) &
2226 * ( g11(i,1,1,e) * wur(i,1,1) &
2227 + g12(i,1,1,e) * wus(i,1,1) &
2228 + g13(i,1,1,e) * wut(i,1,1) )
2229 us(i,1,1) = h1(i,1,1,e) &
2230 * ( g12(i,1,1,e) * wur(i,1,1) &
2231 + g22(i,1,1,e) * wus(i,1,1) &
2232 + g23(i,1,1,e) * wut(i,1,1) )
2233 ut(i,1,1) = h1(i,1,1,e) &
2234 * ( g13(i,1,1,e) * wur(i,1,1) &
2235 + g23(i,1,1,e) * wus(i,1,1) &
2236 + g33(i,1,1,e) * wut(i,1,1) )
2238 vr(i,1,1) = h1(i,1,1,e) &
2239 * ( g11(i,1,1,e) * wvr(i,1,1) &
2240 + g12(i,1,1,e) * wvs(i,1,1) &
2241 + g13(i,1,1,e) * wvt(i,1,1) )
2242 vs(i,1,1) = h1(i,1,1,e) &
2243 * ( g12(i,1,1,e) * wvr(i,1,1) &
2244 + g22(i,1,1,e) * wvs(i,1,1) &
2245 + g23(i,1,1,e) * wvt(i,1,1) )
2246 vt(i,1,1) = h1(i,1,1,e) &
2247 * ( g13(i,1,1,e) * wvr(i,1,1) &
2248 + g23(i,1,1,e) * wvs(i,1,1) &
2249 + g33(i,1,1,e) * wvt(i,1,1) )
2251 wr(i,1,1) = h1(i,1,1,e) &
2252 * ( g11(i,1,1,e) * wwr(i,1,1) &
2253 + g12(i,1,1,e) * wws(i,1,1) &
2254 + g13(i,1,1,e) * wwt(i,1,1) )
2255 ws(i,1,1) = h1(i,1,1,e) &
2256 * ( g12(i,1,1,e) * wwr(i,1,1) &
2257 + g22(i,1,1,e) * wws(i,1,1) &
2258 + g23(i,1,1,e) * wwt(i,1,1) )
2259 wt(i,1,1) = h1(i,1,1,e) &
2260 * ( g13(i,1,1,e) * wwr(i,1,1) &
2261 + g23(i,1,1,e) * wws(i,1,1) &
2262 + g33(i,1,1,e) * wwt(i,1,1) )
2267 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
2268 + dxt(i,2) * ur(2,j,1) &
2269 + dxt(i,3) * ur(3,j,1) &
2270 + dxt(i,4) * ur(4,j,1) &
2271 + dxt(i,5) * ur(5,j,1) &
2272 + dxt(i,6) * ur(6,j,1) &
2273 + dxt(i,7) * ur(7,j,1) &
2274 + dxt(i,8) * ur(8,j,1) &
2275 + dxt(i,9) * ur(9,j,1) &
2276 + dxt(i,10) * ur(10,j,1)
2278 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
2279 + dxt(i,2) * vr(2,j,1) &
2280 + dxt(i,3) * vr(3,j,1) &
2281 + dxt(i,4) * vr(4,j,1) &
2282 + dxt(i,5) * vr(5,j,1) &
2283 + dxt(i,6) * vr(6,j,1) &
2284 + dxt(i,7) * vr(7,j,1) &
2285 + dxt(i,8) * vr(8,j,1) &
2286 + dxt(i,9) * vr(9,j,1) &
2287 + dxt(i,10) * vr(10,j,1)
2289 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
2290 + dxt(i,2) * wr(2,j,1) &
2291 + dxt(i,3) * wr(3,j,1) &
2292 + dxt(i,4) * wr(4,j,1) &
2293 + dxt(i,5) * wr(5,j,1) &
2294 + dxt(i,6) * wr(6,j,1) &
2295 + dxt(i,7) * wr(7,j,1) &
2296 + dxt(i,8) * wr(8,j,1) &
2297 + dxt(i,9) * wr(9,j,1) &
2298 + dxt(i,10) * wr(10,j,1)
2305 au(i,j,k,e) = au(i,j,k,e) &
2306 + dyt(j,1) * us(i,1,k) &
2307 + dyt(j,2) * us(i,2,k) &
2308 + dyt(j,3) * us(i,3,k) &
2309 + dyt(j,4) * us(i,4,k) &
2310 + dyt(j,5) * us(i,5,k) &
2311 + dyt(j,6) * us(i,6,k) &
2312 + dyt(j,7) * us(i,7,k) &
2313 + dyt(j,8) * us(i,8,k) &
2314 + dyt(j,9) * us(i,9,k) &
2315 + dyt(j,10) * us(i,10,k)
2317 av(i,j,k,e) = av(i,j,k,e) &
2318 + dyt(j,1) * vs(i,1,k) &
2319 + dyt(j,2) * vs(i,2,k) &
2320 + dyt(j,3) * vs(i,3,k) &
2321 + dyt(j,4) * vs(i,4,k) &
2322 + dyt(j,5) * vs(i,5,k) &
2323 + dyt(j,6) * vs(i,6,k) &
2324 + dyt(j,7) * vs(i,7,k) &
2325 + dyt(j,8) * vs(i,8,k) &
2326 + dyt(j,9) * vs(i,9,k) &
2327 + dyt(j,10) * vs(i,10,k)
2329 aw(i,j,k,e) = aw(i,j,k,e) &
2330 + dyt(j,1) * ws(i,1,k) &
2331 + dyt(j,2) * ws(i,2,k) &
2332 + dyt(j,3) * ws(i,3,k) &
2333 + dyt(j,4) * ws(i,4,k) &
2334 + dyt(j,5) * ws(i,5,k) &
2335 + dyt(j,6) * ws(i,6,k) &
2336 + dyt(j,7) * ws(i,7,k) &
2337 + dyt(j,8) * ws(i,8,k) &
2338 + dyt(j,9) * ws(i,9,k) &
2339 + dyt(j,10) * ws(i,10,k)
2347 au(i,1,k,e) = au(i,1,k,e) &
2348 + dzt(k,1) * ut(i,1,1) &
2349 + dzt(k,2) * ut(i,1,2) &
2350 + dzt(k,3) * ut(i,1,3) &
2351 + dzt(k,4) * ut(i,1,4) &
2352 + dzt(k,5) * ut(i,1,5) &
2353 + dzt(k,6) * ut(i,1,6) &
2354 + dzt(k,7) * ut(i,1,7) &
2355 + dzt(k,8) * ut(i,1,8) &
2356 + dzt(k,9) * ut(i,1,9) &
2357 + dzt(k,10) * ut(i,1,10) &
2358 + h2(i,1,k,e) * b(i,1,k,e) * u(i,1,k,e)
2360 av(i,1,k,e) = av(i,1,k,e) &
2361 + dzt(k,1) * vt(i,1,1) &
2362 + dzt(k,2) * vt(i,1,2) &
2363 + dzt(k,3) * vt(i,1,3) &
2364 + dzt(k,4) * vt(i,1,4) &
2365 + dzt(k,5) * vt(i,1,5) &
2366 + dzt(k,6) * vt(i,1,6) &
2367 + dzt(k,7) * vt(i,1,7) &
2368 + dzt(k,8) * vt(i,1,8) &
2369 + dzt(k,9) * vt(i,1,9) &
2370 + dzt(k,10) * vt(i,1,10) &
2371 + h2(i,1,k,e) * b(i,1,k,e) * v(i,1,k,e)
2373 aw(i,1,k,e) = aw(i,1,k,e) &
2374 + dzt(k,1) * wt(i,1,1) &
2375 + dzt(k,2) * wt(i,1,2) &
2376 + dzt(k,3) * wt(i,1,3) &
2377 + dzt(k,4) * wt(i,1,4) &
2378 + dzt(k,5) * wt(i,1,5) &
2379 + dzt(k,6) * wt(i,1,6) &
2380 + dzt(k,7) * wt(i,1,7) &
2381 + dzt(k,8) * wt(i,1,8) &
2382 + dzt(k,9) * wt(i,1,9) &
2383 + dzt(k,10) * wt(i,1,10) &
2384 + h2(i,1,k,e) * b(i,1,k,e) * w(i,1,k,e)
2390 au(i,1,k,e) = au(i,1,k,e) &
2391 + dzt(k,1) * ut(i,1,1) &
2392 + dzt(k,2) * ut(i,1,2) &
2393 + dzt(k,3) * ut(i,1,3) &
2394 + dzt(k,4) * ut(i,1,4) &
2395 + dzt(k,5) * ut(i,1,5) &
2396 + dzt(k,6) * ut(i,1,6) &
2397 + dzt(k,7) * ut(i,1,7) &
2398 + dzt(k,8) * ut(i,1,8) &
2399 + dzt(k,9) * ut(i,1,9) &
2400 + dzt(k,10) * ut(i,1,10)
2402 av(i,1,k,e) = av(i,1,k,e) &
2403 + dzt(k,1) * vt(i,1,1) &
2404 + dzt(k,2) * vt(i,1,2) &
2405 + dzt(k,3) * vt(i,1,3) &
2406 + dzt(k,4) * vt(i,1,4) &
2407 + dzt(k,5) * vt(i,1,5) &
2408 + dzt(k,6) * vt(i,1,6) &
2409 + dzt(k,7) * vt(i,1,7) &
2410 + dzt(k,8) * vt(i,1,8) &
2411 + dzt(k,9) * vt(i,1,9) &
2412 + dzt(k,10) * vt(i,1,10)
2414 aw(i,1,k,e) = aw(i,1,k,e) &
2415 + dzt(k,1) * wt(i,1,1) &
2416 + dzt(k,2) * wt(i,1,2) &
2417 + dzt(k,3) * wt(i,1,3) &
2418 + dzt(k,4) * wt(i,1,4) &
2419 + dzt(k,5) * wt(i,1,5) &
2420 + dzt(k,6) * wt(i,1,6) &
2421 + dzt(k,7) * wt(i,1,7) &
2422 + dzt(k,8) * wt(i,1,8) &
2423 + dzt(k,9) * wt(i,1,9) &
2424 + dzt(k,10) * wt(i,1,10)
2431 end subroutine ax_helm_vector_lx10
2433 subroutine ax_helm_vector_lx9(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
2434 h1, h2, B, ifh2, G11, G22, G33, G12, G13, G23, n)
2435 integer,
parameter :: lx = 9
2436 integer,
intent(in) :: n
2437 logical,
intent(in) :: ifh2
2438 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
2439 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
2440 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
2441 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
2442 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
2443 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
2444 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
2445 real(kind=rp),
intent(in) :: h2(lx, lx, lx, n)
2446 real(kind=rp),
intent(in) :: b(lx, lx, lx, n)
2447 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
2448 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
2449 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
2450 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
2451 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
2452 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
2453 real(kind=rp),
intent(in) :: dx(lx, lx)
2454 real(kind=rp),
intent(in) :: dy(lx, lx)
2455 real(kind=rp),
intent(in) :: dz(lx, lx)
2456 real(kind=rp),
intent(in) :: dxt(lx, lx)
2457 real(kind=rp),
intent(in) :: dyt(lx, lx)
2458 real(kind=rp),
intent(in) :: dzt(lx, lx)
2459 real(kind=rp) :: ur(lx, lx, lx)
2460 real(kind=rp) :: us(lx, lx, lx)
2461 real(kind=rp) :: ut(lx, lx, lx)
2462 real(kind=rp) :: vr(lx, lx, lx)
2463 real(kind=rp) :: vs(lx, lx, lx)
2464 real(kind=rp) :: vt(lx, lx, lx)
2465 real(kind=rp) :: wr(lx, lx, lx)
2466 real(kind=rp) :: ws(lx, lx, lx)
2467 real(kind=rp) :: wt(lx, lx, lx)
2468 real(kind=rp) :: wur(lx, lx, lx)
2469 real(kind=rp) :: wus(lx, lx, lx)
2470 real(kind=rp) :: wut(lx, lx, lx)
2471 real(kind=rp) :: wvr(lx, lx, lx)
2472 real(kind=rp) :: wvs(lx, lx, lx)
2473 real(kind=rp) :: wvt(lx, lx, lx)
2474 real(kind=rp) :: wwr(lx, lx, lx)
2475 real(kind=rp) :: wws(lx, lx, lx)
2476 real(kind=rp) :: wwt(lx, lx, lx)
2477 integer :: e, i, j, k
2483 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
2484 + dx(i,2) * u(2,j,1,e) &
2485 + dx(i,3) * u(3,j,1,e) &
2486 + dx(i,4) * u(4,j,1,e) &
2487 + dx(i,5) * u(5,j,1,e) &
2488 + dx(i,6) * u(6,j,1,e) &
2489 + dx(i,7) * u(7,j,1,e) &
2490 + dx(i,8) * u(8,j,1,e) &
2491 + dx(i,9) * u(9,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) &
2501 + dx(i,9) * v(9,j,1,e)
2503 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
2504 + dx(i,2) * w(2,j,1,e) &
2505 + dx(i,3) * w(3,j,1,e) &
2506 + dx(i,4) * w(4,j,1,e) &
2507 + dx(i,5) * w(5,j,1,e) &
2508 + dx(i,6) * w(6,j,1,e) &
2509 + dx(i,7) * w(7,j,1,e) &
2510 + dx(i,8) * w(8,j,1,e) &
2511 + dx(i,9) * w(9,j,1,e)
2518 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
2519 + dy(j,2) * u(i,2,k,e) &
2520 + dy(j,3) * u(i,3,k,e) &
2521 + dy(j,4) * u(i,4,k,e) &
2522 + dy(j,5) * u(i,5,k,e) &
2523 + dy(j,6) * u(i,6,k,e) &
2524 + dy(j,7) * u(i,7,k,e) &
2525 + dy(j,8) * u(i,8,k,e) &
2526 + dy(j,9) * u(i,9,k,e)
2528 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
2529 + dy(j,2) * v(i,2,k,e) &
2530 + dy(j,3) * v(i,3,k,e) &
2531 + dy(j,4) * v(i,4,k,e) &
2532 + dy(j,5) * v(i,5,k,e) &
2533 + dy(j,6) * v(i,6,k,e) &
2534 + dy(j,7) * v(i,7,k,e) &
2535 + dy(j,8) * v(i,8,k,e) &
2536 + dy(j,9) * v(i,9,k,e)
2538 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
2539 + dy(j,2) * w(i,2,k,e) &
2540 + dy(j,3) * w(i,3,k,e) &
2541 + dy(j,4) * w(i,4,k,e) &
2542 + dy(j,5) * w(i,5,k,e) &
2543 + dy(j,6) * w(i,6,k,e) &
2544 + dy(j,7) * w(i,7,k,e) &
2545 + dy(j,8) * w(i,8,k,e) &
2546 + dy(j,9) * w(i,9,k,e)
2553 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
2554 + dz(k,2) * u(i,1,2,e) &
2555 + dz(k,3) * u(i,1,3,e) &
2556 + dz(k,4) * u(i,1,4,e) &
2557 + dz(k,5) * u(i,1,5,e) &
2558 + dz(k,6) * u(i,1,6,e) &
2559 + dz(k,7) * u(i,1,7,e) &
2560 + dz(k,8) * u(i,1,8,e) &
2561 + dz(k,9) * u(i,1,9,e)
2563 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
2564 + dz(k,2) * v(i,1,2,e) &
2565 + dz(k,3) * v(i,1,3,e) &
2566 + dz(k,4) * v(i,1,4,e) &
2567 + dz(k,5) * v(i,1,5,e) &
2568 + dz(k,6) * v(i,1,6,e) &
2569 + dz(k,7) * v(i,1,7,e) &
2570 + dz(k,8) * v(i,1,8,e) &
2571 + dz(k,9) * v(i,1,9,e)
2573 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
2574 + dz(k,2) * w(i,1,2,e) &
2575 + dz(k,3) * w(i,1,3,e) &
2576 + dz(k,4) * w(i,1,4,e) &
2577 + dz(k,5) * w(i,1,5,e) &
2578 + dz(k,6) * w(i,1,6,e) &
2579 + dz(k,7) * w(i,1,7,e) &
2580 + dz(k,8) * w(i,1,8,e) &
2581 + dz(k,9) * w(i,1,9,e)
2586 ur(i,1,1) = h1(i,1,1,e) &
2587 * ( g11(i,1,1,e) * wur(i,1,1) &
2588 + g12(i,1,1,e) * wus(i,1,1) &
2589 + g13(i,1,1,e) * wut(i,1,1) )
2590 us(i,1,1) = h1(i,1,1,e) &
2591 * ( g12(i,1,1,e) * wur(i,1,1) &
2592 + g22(i,1,1,e) * wus(i,1,1) &
2593 + g23(i,1,1,e) * wut(i,1,1) )
2594 ut(i,1,1) = h1(i,1,1,e) &
2595 * ( g13(i,1,1,e) * wur(i,1,1) &
2596 + g23(i,1,1,e) * wus(i,1,1) &
2597 + g33(i,1,1,e) * wut(i,1,1) )
2599 vr(i,1,1) = h1(i,1,1,e) &
2600 * ( g11(i,1,1,e) * wvr(i,1,1) &
2601 + g12(i,1,1,e) * wvs(i,1,1) &
2602 + g13(i,1,1,e) * wvt(i,1,1) )
2603 vs(i,1,1) = h1(i,1,1,e) &
2604 * ( g12(i,1,1,e) * wvr(i,1,1) &
2605 + g22(i,1,1,e) * wvs(i,1,1) &
2606 + g23(i,1,1,e) * wvt(i,1,1) )
2607 vt(i,1,1) = h1(i,1,1,e) &
2608 * ( g13(i,1,1,e) * wvr(i,1,1) &
2609 + g23(i,1,1,e) * wvs(i,1,1) &
2610 + g33(i,1,1,e) * wvt(i,1,1) )
2612 wr(i,1,1) = h1(i,1,1,e) &
2613 * ( g11(i,1,1,e) * wwr(i,1,1) &
2614 + g12(i,1,1,e) * wws(i,1,1) &
2615 + g13(i,1,1,e) * wwt(i,1,1) )
2616 ws(i,1,1) = h1(i,1,1,e) &
2617 * ( g12(i,1,1,e) * wwr(i,1,1) &
2618 + g22(i,1,1,e) * wws(i,1,1) &
2619 + g23(i,1,1,e) * wwt(i,1,1) )
2620 wt(i,1,1) = h1(i,1,1,e) &
2621 * ( g13(i,1,1,e) * wwr(i,1,1) &
2622 + g23(i,1,1,e) * wws(i,1,1) &
2623 + g33(i,1,1,e) * wwt(i,1,1) )
2628 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
2629 + dxt(i,2) * ur(2,j,1) &
2630 + dxt(i,3) * ur(3,j,1) &
2631 + dxt(i,4) * ur(4,j,1) &
2632 + dxt(i,5) * ur(5,j,1) &
2633 + dxt(i,6) * ur(6,j,1) &
2634 + dxt(i,7) * ur(7,j,1) &
2635 + dxt(i,8) * ur(8,j,1) &
2636 + dxt(i,9) * ur(9,j,1)
2638 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
2639 + dxt(i,2) * vr(2,j,1) &
2640 + dxt(i,3) * vr(3,j,1) &
2641 + dxt(i,4) * vr(4,j,1) &
2642 + dxt(i,5) * vr(5,j,1) &
2643 + dxt(i,6) * vr(6,j,1) &
2644 + dxt(i,7) * vr(7,j,1) &
2645 + dxt(i,8) * vr(8,j,1) &
2646 + dxt(i,9) * vr(9,j,1)
2648 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
2649 + dxt(i,2) * wr(2,j,1) &
2650 + dxt(i,3) * wr(3,j,1) &
2651 + dxt(i,4) * wr(4,j,1) &
2652 + dxt(i,5) * wr(5,j,1) &
2653 + dxt(i,6) * wr(6,j,1) &
2654 + dxt(i,7) * wr(7,j,1) &
2655 + dxt(i,8) * wr(8,j,1) &
2656 + dxt(i,9) * wr(9,j,1)
2663 au(i,j,k,e) = au(i,j,k,e) &
2664 + dyt(j,1) * us(i,1,k) &
2665 + dyt(j,2) * us(i,2,k) &
2666 + dyt(j,3) * us(i,3,k) &
2667 + dyt(j,4) * us(i,4,k) &
2668 + dyt(j,5) * us(i,5,k) &
2669 + dyt(j,6) * us(i,6,k) &
2670 + dyt(j,7) * us(i,7,k) &
2671 + dyt(j,8) * us(i,8,k) &
2672 + dyt(j,9) * us(i,9,k)
2674 av(i,j,k,e) = av(i,j,k,e) &
2675 + dyt(j,1) * vs(i,1,k) &
2676 + dyt(j,2) * vs(i,2,k) &
2677 + dyt(j,3) * vs(i,3,k) &
2678 + dyt(j,4) * vs(i,4,k) &
2679 + dyt(j,5) * vs(i,5,k) &
2680 + dyt(j,6) * vs(i,6,k) &
2681 + dyt(j,7) * vs(i,7,k) &
2682 + dyt(j,8) * vs(i,8,k) &
2683 + dyt(j,9) * vs(i,9,k)
2685 aw(i,j,k,e) = aw(i,j,k,e) &
2686 + dyt(j,1) * ws(i,1,k) &
2687 + dyt(j,2) * ws(i,2,k) &
2688 + dyt(j,3) * ws(i,3,k) &
2689 + dyt(j,4) * ws(i,4,k) &
2690 + dyt(j,5) * ws(i,5,k) &
2691 + dyt(j,6) * ws(i,6,k) &
2692 + dyt(j,7) * ws(i,7,k) &
2693 + dyt(j,8) * ws(i,8,k) &
2694 + dyt(j,9) * ws(i,9,k)
2702 au(i,1,k,e) = au(i,1,k,e) &
2703 + dzt(k,1) * ut(i,1,1) &
2704 + dzt(k,2) * ut(i,1,2) &
2705 + dzt(k,3) * ut(i,1,3) &
2706 + dzt(k,4) * ut(i,1,4) &
2707 + dzt(k,5) * ut(i,1,5) &
2708 + dzt(k,6) * ut(i,1,6) &
2709 + dzt(k,7) * ut(i,1,7) &
2710 + dzt(k,8) * ut(i,1,8) &
2711 + dzt(k,9) * ut(i,1,9) &
2712 + h2(i,1,k,e) * b(i,1,k,e) * u(i,1,k,e)
2714 av(i,1,k,e) = av(i,1,k,e) &
2715 + dzt(k,1) * vt(i,1,1) &
2716 + dzt(k,2) * vt(i,1,2) &
2717 + dzt(k,3) * vt(i,1,3) &
2718 + dzt(k,4) * vt(i,1,4) &
2719 + dzt(k,5) * vt(i,1,5) &
2720 + dzt(k,6) * vt(i,1,6) &
2721 + dzt(k,7) * vt(i,1,7) &
2722 + dzt(k,8) * vt(i,1,8) &
2723 + dzt(k,9) * vt(i,1,9) &
2724 + h2(i,1,k,e) * b(i,1,k,e) * v(i,1,k,e)
2726 aw(i,1,k,e) = aw(i,1,k,e) &
2727 + dzt(k,1) * wt(i,1,1) &
2728 + dzt(k,2) * wt(i,1,2) &
2729 + dzt(k,3) * wt(i,1,3) &
2730 + dzt(k,4) * wt(i,1,4) &
2731 + dzt(k,5) * wt(i,1,5) &
2732 + dzt(k,6) * wt(i,1,6) &
2733 + dzt(k,7) * wt(i,1,7) &
2734 + dzt(k,8) * wt(i,1,8) &
2735 + dzt(k,9) * wt(i,1,9) &
2736 + h2(i,1,k,e) * b(i,1,k,e) * w(i,1,k,e)
2742 au(i,1,k,e) = au(i,1,k,e) &
2743 + dzt(k,1) * ut(i,1,1) &
2744 + dzt(k,2) * ut(i,1,2) &
2745 + dzt(k,3) * ut(i,1,3) &
2746 + dzt(k,4) * ut(i,1,4) &
2747 + dzt(k,5) * ut(i,1,5) &
2748 + dzt(k,6) * ut(i,1,6) &
2749 + dzt(k,7) * ut(i,1,7) &
2750 + dzt(k,8) * ut(i,1,8) &
2751 + dzt(k,9) * ut(i,1,9)
2753 av(i,1,k,e) = av(i,1,k,e) &
2754 + dzt(k,1) * vt(i,1,1) &
2755 + dzt(k,2) * vt(i,1,2) &
2756 + dzt(k,3) * vt(i,1,3) &
2757 + dzt(k,4) * vt(i,1,4) &
2758 + dzt(k,5) * vt(i,1,5) &
2759 + dzt(k,6) * vt(i,1,6) &
2760 + dzt(k,7) * vt(i,1,7) &
2761 + dzt(k,8) * vt(i,1,8) &
2762 + dzt(k,9) * vt(i,1,9)
2764 aw(i,1,k,e) = aw(i,1,k,e) &
2765 + dzt(k,1) * wt(i,1,1) &
2766 + dzt(k,2) * wt(i,1,2) &
2767 + dzt(k,3) * wt(i,1,3) &
2768 + dzt(k,4) * wt(i,1,4) &
2769 + dzt(k,5) * wt(i,1,5) &
2770 + dzt(k,6) * wt(i,1,6) &
2771 + dzt(k,7) * wt(i,1,7) &
2772 + dzt(k,8) * wt(i,1,8) &
2773 + dzt(k,9) * wt(i,1,9)
2780 end subroutine ax_helm_vector_lx9
2782 subroutine ax_helm_vector_lx8(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
2783 h1, h2, B, ifh2, G11, G22, G33, G12, G13, G23, n)
2784 integer,
parameter :: lx = 8
2785 integer,
intent(in) :: n
2786 logical,
intent(in) :: ifh2
2787 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
2788 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
2789 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
2790 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
2791 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
2792 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
2793 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
2794 real(kind=rp),
intent(in) :: h2(lx, lx, lx, n)
2795 real(kind=rp),
intent(in) :: b(lx, lx, lx, n)
2796 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
2797 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
2798 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
2799 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
2800 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
2801 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
2802 real(kind=rp),
intent(in) :: dx(lx, lx)
2803 real(kind=rp),
intent(in) :: dy(lx, lx)
2804 real(kind=rp),
intent(in) :: dz(lx, lx)
2805 real(kind=rp),
intent(in) :: dxt(lx, lx)
2806 real(kind=rp),
intent(in) :: dyt(lx, lx)
2807 real(kind=rp),
intent(in) :: dzt(lx, lx)
2808 real(kind=rp) :: ur(lx, lx, lx)
2809 real(kind=rp) :: us(lx, lx, lx)
2810 real(kind=rp) :: ut(lx, lx, lx)
2811 real(kind=rp) :: vr(lx, lx, lx)
2812 real(kind=rp) :: vs(lx, lx, lx)
2813 real(kind=rp) :: vt(lx, lx, lx)
2814 real(kind=rp) :: wr(lx, lx, lx)
2815 real(kind=rp) :: ws(lx, lx, lx)
2816 real(kind=rp) :: wt(lx, lx, lx)
2817 real(kind=rp) :: wur(lx, lx, lx)
2818 real(kind=rp) :: wus(lx, lx, lx)
2819 real(kind=rp) :: wut(lx, lx, lx)
2820 real(kind=rp) :: wvr(lx, lx, lx)
2821 real(kind=rp) :: wvs(lx, lx, lx)
2822 real(kind=rp) :: wvt(lx, lx, lx)
2823 real(kind=rp) :: wwr(lx, lx, lx)
2824 real(kind=rp) :: wws(lx, lx, lx)
2825 real(kind=rp) :: wwt(lx, lx, lx)
2826 integer :: e, i, j, k
2832 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
2833 + dx(i,2) * u(2,j,1,e) &
2834 + dx(i,3) * u(3,j,1,e) &
2835 + dx(i,4) * u(4,j,1,e) &
2836 + dx(i,5) * u(5,j,1,e) &
2837 + dx(i,6) * u(6,j,1,e) &
2838 + dx(i,7) * u(7,j,1,e) &
2839 + dx(i,8) * u(8,j,1,e)
2841 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
2842 + dx(i,2) * v(2,j,1,e) &
2843 + dx(i,3) * v(3,j,1,e) &
2844 + dx(i,4) * v(4,j,1,e) &
2845 + dx(i,5) * v(5,j,1,e) &
2846 + dx(i,6) * v(6,j,1,e) &
2847 + dx(i,7) * v(7,j,1,e) &
2848 + dx(i,8) * v(8,j,1,e)
2850 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
2851 + dx(i,2) * w(2,j,1,e) &
2852 + dx(i,3) * w(3,j,1,e) &
2853 + dx(i,4) * w(4,j,1,e) &
2854 + dx(i,5) * w(5,j,1,e) &
2855 + dx(i,6) * w(6,j,1,e) &
2856 + dx(i,7) * w(7,j,1,e) &
2857 + dx(i,8) * w(8,j,1,e)
2864 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
2865 + dy(j,2) * u(i,2,k,e) &
2866 + dy(j,3) * u(i,3,k,e) &
2867 + dy(j,4) * u(i,4,k,e) &
2868 + dy(j,5) * u(i,5,k,e) &
2869 + dy(j,6) * u(i,6,k,e) &
2870 + dy(j,7) * u(i,7,k,e) &
2871 + dy(j,8) * u(i,8,k,e)
2873 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
2874 + dy(j,2) * v(i,2,k,e) &
2875 + dy(j,3) * v(i,3,k,e) &
2876 + dy(j,4) * v(i,4,k,e) &
2877 + dy(j,5) * v(i,5,k,e) &
2878 + dy(j,6) * v(i,6,k,e) &
2879 + dy(j,7) * v(i,7,k,e) &
2880 + dy(j,8) * v(i,8,k,e)
2882 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
2883 + dy(j,2) * w(i,2,k,e) &
2884 + dy(j,3) * w(i,3,k,e) &
2885 + dy(j,4) * w(i,4,k,e) &
2886 + dy(j,5) * w(i,5,k,e) &
2887 + dy(j,6) * w(i,6,k,e) &
2888 + dy(j,7) * w(i,7,k,e) &
2889 + dy(j,8) * w(i,8,k,e)
2896 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
2897 + dz(k,2) * u(i,1,2,e) &
2898 + dz(k,3) * u(i,1,3,e) &
2899 + dz(k,4) * u(i,1,4,e) &
2900 + dz(k,5) * u(i,1,5,e) &
2901 + dz(k,6) * u(i,1,6,e) &
2902 + dz(k,7) * u(i,1,7,e) &
2903 + dz(k,8) * u(i,1,8,e)
2905 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
2906 + dz(k,2) * v(i,1,2,e) &
2907 + dz(k,3) * v(i,1,3,e) &
2908 + dz(k,4) * v(i,1,4,e) &
2909 + dz(k,5) * v(i,1,5,e) &
2910 + dz(k,6) * v(i,1,6,e) &
2911 + dz(k,7) * v(i,1,7,e) &
2912 + dz(k,8) * v(i,1,8,e)
2914 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
2915 + dz(k,2) * w(i,1,2,e) &
2916 + dz(k,3) * w(i,1,3,e) &
2917 + dz(k,4) * w(i,1,4,e) &
2918 + dz(k,5) * w(i,1,5,e) &
2919 + dz(k,6) * w(i,1,6,e) &
2920 + dz(k,7) * w(i,1,7,e) &
2921 + dz(k,8) * w(i,1,8,e)
2926 ur(i,1,1) = h1(i,1,1,e) &
2927 * ( g11(i,1,1,e) * wur(i,1,1) &
2928 + g12(i,1,1,e) * wus(i,1,1) &
2929 + g13(i,1,1,e) * wut(i,1,1) )
2930 us(i,1,1) = h1(i,1,1,e) &
2931 * ( g12(i,1,1,e) * wur(i,1,1) &
2932 + g22(i,1,1,e) * wus(i,1,1) &
2933 + g23(i,1,1,e) * wut(i,1,1) )
2934 ut(i,1,1) = h1(i,1,1,e) &
2935 * ( g13(i,1,1,e) * wur(i,1,1) &
2936 + g23(i,1,1,e) * wus(i,1,1) &
2937 + g33(i,1,1,e) * wut(i,1,1) )
2939 vr(i,1,1) = h1(i,1,1,e) &
2940 * ( g11(i,1,1,e) * wvr(i,1,1) &
2941 + g12(i,1,1,e) * wvs(i,1,1) &
2942 + g13(i,1,1,e) * wvt(i,1,1) )
2943 vs(i,1,1) = h1(i,1,1,e) &
2944 * ( g12(i,1,1,e) * wvr(i,1,1) &
2945 + g22(i,1,1,e) * wvs(i,1,1) &
2946 + g23(i,1,1,e) * wvt(i,1,1) )
2947 vt(i,1,1) = h1(i,1,1,e) &
2948 * ( g13(i,1,1,e) * wvr(i,1,1) &
2949 + g23(i,1,1,e) * wvs(i,1,1) &
2950 + g33(i,1,1,e) * wvt(i,1,1) )
2952 wr(i,1,1) = h1(i,1,1,e) &
2953 * ( g11(i,1,1,e) * wwr(i,1,1) &
2954 + g12(i,1,1,e) * wws(i,1,1) &
2955 + g13(i,1,1,e) * wwt(i,1,1) )
2956 ws(i,1,1) = h1(i,1,1,e) &
2957 * ( g12(i,1,1,e) * wwr(i,1,1) &
2958 + g22(i,1,1,e) * wws(i,1,1) &
2959 + g23(i,1,1,e) * wwt(i,1,1) )
2960 wt(i,1,1) = h1(i,1,1,e) &
2961 * ( g13(i,1,1,e) * wwr(i,1,1) &
2962 + g23(i,1,1,e) * wws(i,1,1) &
2963 + g33(i,1,1,e) * wwt(i,1,1) )
2968 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
2969 + dxt(i,2) * ur(2,j,1) &
2970 + dxt(i,3) * ur(3,j,1) &
2971 + dxt(i,4) * ur(4,j,1) &
2972 + dxt(i,5) * ur(5,j,1) &
2973 + dxt(i,6) * ur(6,j,1) &
2974 + dxt(i,7) * ur(7,j,1) &
2975 + dxt(i,8) * ur(8,j,1)
2977 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
2978 + dxt(i,2) * vr(2,j,1) &
2979 + dxt(i,3) * vr(3,j,1) &
2980 + dxt(i,4) * vr(4,j,1) &
2981 + dxt(i,5) * vr(5,j,1) &
2982 + dxt(i,6) * vr(6,j,1) &
2983 + dxt(i,7) * vr(7,j,1) &
2984 + dxt(i,8) * vr(8,j,1)
2986 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
2987 + dxt(i,2) * wr(2,j,1) &
2988 + dxt(i,3) * wr(3,j,1) &
2989 + dxt(i,4) * wr(4,j,1) &
2990 + dxt(i,5) * wr(5,j,1) &
2991 + dxt(i,6) * wr(6,j,1) &
2992 + dxt(i,7) * wr(7,j,1) &
2993 + dxt(i,8) * wr(8,j,1)
3000 au(i,j,k,e) = au(i,j,k,e) &
3001 + dyt(j,1) * us(i,1,k) &
3002 + dyt(j,2) * us(i,2,k) &
3003 + dyt(j,3) * us(i,3,k) &
3004 + dyt(j,4) * us(i,4,k) &
3005 + dyt(j,5) * us(i,5,k) &
3006 + dyt(j,6) * us(i,6,k) &
3007 + dyt(j,7) * us(i,7,k) &
3008 + dyt(j,8) * us(i,8,k)
3010 av(i,j,k,e) = av(i,j,k,e) &
3011 + dyt(j,1) * vs(i,1,k) &
3012 + dyt(j,2) * vs(i,2,k) &
3013 + dyt(j,3) * vs(i,3,k) &
3014 + dyt(j,4) * vs(i,4,k) &
3015 + dyt(j,5) * vs(i,5,k) &
3016 + dyt(j,6) * vs(i,6,k) &
3017 + dyt(j,7) * vs(i,7,k) &
3018 + dyt(j,8) * vs(i,8,k)
3020 aw(i,j,k,e) = aw(i,j,k,e) &
3021 + dyt(j,1) * ws(i,1,k) &
3022 + dyt(j,2) * ws(i,2,k) &
3023 + dyt(j,3) * ws(i,3,k) &
3024 + dyt(j,4) * ws(i,4,k) &
3025 + dyt(j,5) * ws(i,5,k) &
3026 + dyt(j,6) * ws(i,6,k) &
3027 + dyt(j,7) * ws(i,7,k) &
3028 + dyt(j,8) * ws(i,8,k)
3036 au(i,1,k,e) = au(i,1,k,e) &
3037 + dzt(k,1) * ut(i,1,1) &
3038 + dzt(k,2) * ut(i,1,2) &
3039 + dzt(k,3) * ut(i,1,3) &
3040 + dzt(k,4) * ut(i,1,4) &
3041 + dzt(k,5) * ut(i,1,5) &
3042 + dzt(k,6) * ut(i,1,6) &
3043 + dzt(k,7) * ut(i,1,7) &
3044 + dzt(k,8) * ut(i,1,8) &
3045 + h2(i,1,k,e) * b(i,1,k,e) * u(i,1,k,e)
3047 av(i,1,k,e) = av(i,1,k,e) &
3048 + dzt(k,1) * vt(i,1,1) &
3049 + dzt(k,2) * vt(i,1,2) &
3050 + dzt(k,3) * vt(i,1,3) &
3051 + dzt(k,4) * vt(i,1,4) &
3052 + dzt(k,5) * vt(i,1,5) &
3053 + dzt(k,6) * vt(i,1,6) &
3054 + dzt(k,7) * vt(i,1,7) &
3055 + dzt(k,8) * vt(i,1,8) &
3056 + h2(i,1,k,e) * b(i,1,k,e) * v(i,1,k,e)
3058 aw(i,1,k,e) = aw(i,1,k,e) &
3059 + dzt(k,1) * wt(i,1,1) &
3060 + dzt(k,2) * wt(i,1,2) &
3061 + dzt(k,3) * wt(i,1,3) &
3062 + dzt(k,4) * wt(i,1,4) &
3063 + dzt(k,5) * wt(i,1,5) &
3064 + dzt(k,6) * wt(i,1,6) &
3065 + dzt(k,7) * wt(i,1,7) &
3066 + dzt(k,8) * wt(i,1,8) &
3067 + h2(i,1,k,e) * b(i,1,k,e) * w(i,1,k,e)
3073 au(i,1,k,e) = au(i,1,k,e) &
3074 + dzt(k,1) * ut(i,1,1) &
3075 + dzt(k,2) * ut(i,1,2) &
3076 + dzt(k,3) * ut(i,1,3) &
3077 + dzt(k,4) * ut(i,1,4) &
3078 + dzt(k,5) * ut(i,1,5) &
3079 + dzt(k,6) * ut(i,1,6) &
3080 + dzt(k,7) * ut(i,1,7) &
3081 + dzt(k,8) * ut(i,1,8)
3083 av(i,1,k,e) = av(i,1,k,e) &
3084 + dzt(k,1) * vt(i,1,1) &
3085 + dzt(k,2) * vt(i,1,2) &
3086 + dzt(k,3) * vt(i,1,3) &
3087 + dzt(k,4) * vt(i,1,4) &
3088 + dzt(k,5) * vt(i,1,5) &
3089 + dzt(k,6) * vt(i,1,6) &
3090 + dzt(k,7) * vt(i,1,7) &
3091 + dzt(k,8) * vt(i,1,8)
3093 aw(i,1,k,e) = aw(i,1,k,e) &
3094 + dzt(k,1) * wt(i,1,1) &
3095 + dzt(k,2) * wt(i,1,2) &
3096 + dzt(k,3) * wt(i,1,3) &
3097 + dzt(k,4) * wt(i,1,4) &
3098 + dzt(k,5) * wt(i,1,5) &
3099 + dzt(k,6) * wt(i,1,6) &
3100 + dzt(k,7) * wt(i,1,7) &
3101 + dzt(k,8) * wt(i,1,8)
3108 end subroutine ax_helm_vector_lx8
3110 subroutine ax_helm_vector_lx7(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
3111 h1, h2, B, ifh2, G11, G22, G33, G12, G13, G23, n)
3112 integer,
parameter :: lx = 7
3113 integer,
intent(in) :: n
3114 logical,
intent(in) :: ifh2
3115 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
3116 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
3117 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
3118 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
3119 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
3120 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
3121 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
3122 real(kind=rp),
intent(in) :: h2(lx, lx, lx, n)
3123 real(kind=rp),
intent(in) :: b(lx, lx, lx, n)
3124 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
3125 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
3126 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
3127 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
3128 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
3129 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
3130 real(kind=rp),
intent(in) :: dx(lx, lx)
3131 real(kind=rp),
intent(in) :: dy(lx, lx)
3132 real(kind=rp),
intent(in) :: dz(lx, lx)
3133 real(kind=rp),
intent(in) :: dxt(lx, lx)
3134 real(kind=rp),
intent(in) :: dyt(lx, lx)
3135 real(kind=rp),
intent(in) :: dzt(lx, lx)
3136 real(kind=rp) :: ur(lx, lx, lx)
3137 real(kind=rp) :: us(lx, lx, lx)
3138 real(kind=rp) :: ut(lx, lx, lx)
3139 real(kind=rp) :: vr(lx, lx, lx)
3140 real(kind=rp) :: vs(lx, lx, lx)
3141 real(kind=rp) :: vt(lx, lx, lx)
3142 real(kind=rp) :: wr(lx, lx, lx)
3143 real(kind=rp) :: ws(lx, lx, lx)
3144 real(kind=rp) :: wt(lx, lx, lx)
3145 real(kind=rp) :: wur(lx, lx, lx)
3146 real(kind=rp) :: wus(lx, lx, lx)
3147 real(kind=rp) :: wut(lx, lx, lx)
3148 real(kind=rp) :: wvr(lx, lx, lx)
3149 real(kind=rp) :: wvs(lx, lx, lx)
3150 real(kind=rp) :: wvt(lx, lx, lx)
3151 real(kind=rp) :: wwr(lx, lx, lx)
3152 real(kind=rp) :: wws(lx, lx, lx)
3153 real(kind=rp) :: wwt(lx, lx, lx)
3154 integer :: e, i, j, k
3160 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
3161 + dx(i,2) * u(2,j,1,e) &
3162 + dx(i,3) * u(3,j,1,e) &
3163 + dx(i,4) * u(4,j,1,e) &
3164 + dx(i,5) * u(5,j,1,e) &
3165 + dx(i,6) * u(6,j,1,e) &
3166 + dx(i,7) * u(7,j,1,e)
3168 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
3169 + dx(i,2) * v(2,j,1,e) &
3170 + dx(i,3) * v(3,j,1,e) &
3171 + dx(i,4) * v(4,j,1,e) &
3172 + dx(i,5) * v(5,j,1,e) &
3173 + dx(i,6) * v(6,j,1,e) &
3174 + dx(i,7) * v(7,j,1,e)
3176 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
3177 + dx(i,2) * w(2,j,1,e) &
3178 + dx(i,3) * w(3,j,1,e) &
3179 + dx(i,4) * w(4,j,1,e) &
3180 + dx(i,5) * w(5,j,1,e) &
3181 + dx(i,6) * w(6,j,1,e) &
3182 + dx(i,7) * w(7,j,1,e)
3189 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
3190 + dy(j,2) * u(i,2,k,e) &
3191 + dy(j,3) * u(i,3,k,e) &
3192 + dy(j,4) * u(i,4,k,e) &
3193 + dy(j,5) * u(i,5,k,e) &
3194 + dy(j,6) * u(i,6,k,e) &
3195 + dy(j,7) * u(i,7,k,e)
3197 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
3198 + dy(j,2) * v(i,2,k,e) &
3199 + dy(j,3) * v(i,3,k,e) &
3200 + dy(j,4) * v(i,4,k,e) &
3201 + dy(j,5) * v(i,5,k,e) &
3202 + dy(j,6) * v(i,6,k,e) &
3203 + dy(j,7) * v(i,7,k,e)
3205 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
3206 + dy(j,2) * w(i,2,k,e) &
3207 + dy(j,3) * w(i,3,k,e) &
3208 + dy(j,4) * w(i,4,k,e) &
3209 + dy(j,5) * w(i,5,k,e) &
3210 + dy(j,6) * w(i,6,k,e) &
3211 + dy(j,7) * w(i,7,k,e)
3218 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
3219 + dz(k,2) * u(i,1,2,e) &
3220 + dz(k,3) * u(i,1,3,e) &
3221 + dz(k,4) * u(i,1,4,e) &
3222 + dz(k,5) * u(i,1,5,e) &
3223 + dz(k,6) * u(i,1,6,e) &
3224 + dz(k,7) * u(i,1,7,e)
3226 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
3227 + dz(k,2) * v(i,1,2,e) &
3228 + dz(k,3) * v(i,1,3,e) &
3229 + dz(k,4) * v(i,1,4,e) &
3230 + dz(k,5) * v(i,1,5,e) &
3231 + dz(k,6) * v(i,1,6,e) &
3232 + dz(k,7) * v(i,1,7,e)
3234 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
3235 + dz(k,2) * w(i,1,2,e) &
3236 + dz(k,3) * w(i,1,3,e) &
3237 + dz(k,4) * w(i,1,4,e) &
3238 + dz(k,5) * w(i,1,5,e) &
3239 + dz(k,6) * w(i,1,6,e) &
3240 + dz(k,7) * w(i,1,7,e)
3245 ur(i,1,1) = h1(i,1,1,e) &
3246 * ( g11(i,1,1,e) * wur(i,1,1) &
3247 + g12(i,1,1,e) * wus(i,1,1) &
3248 + g13(i,1,1,e) * wut(i,1,1) )
3249 us(i,1,1) = h1(i,1,1,e) &
3250 * ( g12(i,1,1,e) * wur(i,1,1) &
3251 + g22(i,1,1,e) * wus(i,1,1) &
3252 + g23(i,1,1,e) * wut(i,1,1) )
3253 ut(i,1,1) = h1(i,1,1,e) &
3254 * ( g13(i,1,1,e) * wur(i,1,1) &
3255 + g23(i,1,1,e) * wus(i,1,1) &
3256 + g33(i,1,1,e) * wut(i,1,1) )
3258 vr(i,1,1) = h1(i,1,1,e) &
3259 * ( g11(i,1,1,e) * wvr(i,1,1) &
3260 + g12(i,1,1,e) * wvs(i,1,1) &
3261 + g13(i,1,1,e) * wvt(i,1,1) )
3262 vs(i,1,1) = h1(i,1,1,e) &
3263 * ( g12(i,1,1,e) * wvr(i,1,1) &
3264 + g22(i,1,1,e) * wvs(i,1,1) &
3265 + g23(i,1,1,e) * wvt(i,1,1) )
3266 vt(i,1,1) = h1(i,1,1,e) &
3267 * ( g13(i,1,1,e) * wvr(i,1,1) &
3268 + g23(i,1,1,e) * wvs(i,1,1) &
3269 + g33(i,1,1,e) * wvt(i,1,1) )
3271 wr(i,1,1) = h1(i,1,1,e) &
3272 * ( g11(i,1,1,e) * wwr(i,1,1) &
3273 + g12(i,1,1,e) * wws(i,1,1) &
3274 + g13(i,1,1,e) * wwt(i,1,1) )
3275 ws(i,1,1) = h1(i,1,1,e) &
3276 * ( g12(i,1,1,e) * wwr(i,1,1) &
3277 + g22(i,1,1,e) * wws(i,1,1) &
3278 + g23(i,1,1,e) * wwt(i,1,1) )
3279 wt(i,1,1) = h1(i,1,1,e) &
3280 * ( g13(i,1,1,e) * wwr(i,1,1) &
3281 + g23(i,1,1,e) * wws(i,1,1) &
3282 + g33(i,1,1,e) * wwt(i,1,1) )
3287 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
3288 + dxt(i,2) * ur(2,j,1) &
3289 + dxt(i,3) * ur(3,j,1) &
3290 + dxt(i,4) * ur(4,j,1) &
3291 + dxt(i,5) * ur(5,j,1) &
3292 + dxt(i,6) * ur(6,j,1) &
3293 + dxt(i,7) * ur(7,j,1)
3295 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
3296 + dxt(i,2) * vr(2,j,1) &
3297 + dxt(i,3) * vr(3,j,1) &
3298 + dxt(i,4) * vr(4,j,1) &
3299 + dxt(i,5) * vr(5,j,1) &
3300 + dxt(i,6) * vr(6,j,1) &
3301 + dxt(i,7) * vr(7,j,1)
3303 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
3304 + dxt(i,2) * wr(2,j,1) &
3305 + dxt(i,3) * wr(3,j,1) &
3306 + dxt(i,4) * wr(4,j,1) &
3307 + dxt(i,5) * wr(5,j,1) &
3308 + dxt(i,6) * wr(6,j,1) &
3309 + dxt(i,7) * wr(7,j,1)
3316 au(i,j,k,e) = au(i,j,k,e) &
3317 + dyt(j,1) * us(i,1,k) &
3318 + dyt(j,2) * us(i,2,k) &
3319 + dyt(j,3) * us(i,3,k) &
3320 + dyt(j,4) * us(i,4,k) &
3321 + dyt(j,5) * us(i,5,k) &
3322 + dyt(j,6) * us(i,6,k) &
3323 + dyt(j,7) * us(i,7,k)
3325 av(i,j,k,e) = av(i,j,k,e) &
3326 + dyt(j,1) * vs(i,1,k) &
3327 + dyt(j,2) * vs(i,2,k) &
3328 + dyt(j,3) * vs(i,3,k) &
3329 + dyt(j,4) * vs(i,4,k) &
3330 + dyt(j,5) * vs(i,5,k) &
3331 + dyt(j,6) * vs(i,6,k) &
3332 + dyt(j,7) * vs(i,7,k)
3334 aw(i,j,k,e) = aw(i,j,k,e) &
3335 + dyt(j,1) * ws(i,1,k) &
3336 + dyt(j,2) * ws(i,2,k) &
3337 + dyt(j,3) * ws(i,3,k) &
3338 + dyt(j,4) * ws(i,4,k) &
3339 + dyt(j,5) * ws(i,5,k) &
3340 + dyt(j,6) * ws(i,6,k) &
3341 + dyt(j,7) * ws(i,7,k)
3349 au(i,1,k,e) = au(i,1,k,e) &
3350 + dzt(k,1) * ut(i,1,1) &
3351 + dzt(k,2) * ut(i,1,2) &
3352 + dzt(k,3) * ut(i,1,3) &
3353 + dzt(k,4) * ut(i,1,4) &
3354 + dzt(k,5) * ut(i,1,5) &
3355 + dzt(k,6) * ut(i,1,6) &
3356 + dzt(k,7) * ut(i,1,7) &
3357 + h2(i,1,k,e) * b(i,1,k,e) * u(i,1,k,e)
3359 av(i,1,k,e) = av(i,1,k,e) &
3360 + dzt(k,1) * vt(i,1,1) &
3361 + dzt(k,2) * vt(i,1,2) &
3362 + dzt(k,3) * vt(i,1,3) &
3363 + dzt(k,4) * vt(i,1,4) &
3364 + dzt(k,5) * vt(i,1,5) &
3365 + dzt(k,6) * vt(i,1,6) &
3366 + dzt(k,7) * vt(i,1,7) &
3367 + h2(i,1,k,e) * b(i,1,k,e) * v(i,1,k,e)
3369 aw(i,1,k,e) = aw(i,1,k,e) &
3370 + dzt(k,1) * wt(i,1,1) &
3371 + dzt(k,2) * wt(i,1,2) &
3372 + dzt(k,3) * wt(i,1,3) &
3373 + dzt(k,4) * wt(i,1,4) &
3374 + dzt(k,5) * wt(i,1,5) &
3375 + dzt(k,6) * wt(i,1,6) &
3376 + dzt(k,7) * wt(i,1,7) &
3377 + h2(i,1,k,e) * b(i,1,k,e) * w(i,1,k,e)
3383 au(i,1,k,e) = au(i,1,k,e) &
3384 + dzt(k,1) * ut(i,1,1) &
3385 + dzt(k,2) * ut(i,1,2) &
3386 + dzt(k,3) * ut(i,1,3) &
3387 + dzt(k,4) * ut(i,1,4) &
3388 + dzt(k,5) * ut(i,1,5) &
3389 + dzt(k,6) * ut(i,1,6) &
3390 + dzt(k,7) * ut(i,1,7)
3392 av(i,1,k,e) = av(i,1,k,e) &
3393 + dzt(k,1) * vt(i,1,1) &
3394 + dzt(k,2) * vt(i,1,2) &
3395 + dzt(k,3) * vt(i,1,3) &
3396 + dzt(k,4) * vt(i,1,4) &
3397 + dzt(k,5) * vt(i,1,5) &
3398 + dzt(k,6) * vt(i,1,6) &
3399 + dzt(k,7) * vt(i,1,7)
3401 aw(i,1,k,e) = aw(i,1,k,e) &
3402 + dzt(k,1) * wt(i,1,1) &
3403 + dzt(k,2) * wt(i,1,2) &
3404 + dzt(k,3) * wt(i,1,3) &
3405 + dzt(k,4) * wt(i,1,4) &
3406 + dzt(k,5) * wt(i,1,5) &
3407 + dzt(k,6) * wt(i,1,6) &
3408 + dzt(k,7) * wt(i,1,7)
3415 end subroutine ax_helm_vector_lx7
3417 subroutine ax_helm_vector_lx6(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
3418 h1, h2, B, ifh2, G11, G22, G33, G12, G13, G23, n)
3419 integer,
parameter :: lx = 6
3420 integer,
intent(in) :: n
3421 logical,
intent(in) :: ifh2
3422 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
3423 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
3424 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
3425 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
3426 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
3427 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
3428 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
3429 real(kind=rp),
intent(in) :: h2(lx, lx, lx, n)
3430 real(kind=rp),
intent(in) :: b(lx, lx, lx, n)
3431 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
3432 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
3433 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
3434 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
3435 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
3436 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
3437 real(kind=rp),
intent(in) :: dx(lx, lx)
3438 real(kind=rp),
intent(in) :: dy(lx, lx)
3439 real(kind=rp),
intent(in) :: dz(lx, lx)
3440 real(kind=rp),
intent(in) :: dxt(lx, lx)
3441 real(kind=rp),
intent(in) :: dyt(lx, lx)
3442 real(kind=rp),
intent(in) :: dzt(lx, lx)
3443 real(kind=rp) :: ur(lx, lx, lx)
3444 real(kind=rp) :: us(lx, lx, lx)
3445 real(kind=rp) :: ut(lx, lx, lx)
3446 real(kind=rp) :: vr(lx, lx, lx)
3447 real(kind=rp) :: vs(lx, lx, lx)
3448 real(kind=rp) :: vt(lx, lx, lx)
3449 real(kind=rp) :: wr(lx, lx, lx)
3450 real(kind=rp) :: ws(lx, lx, lx)
3451 real(kind=rp) :: wt(lx, lx, lx)
3452 real(kind=rp) :: wur(lx, lx, lx)
3453 real(kind=rp) :: wus(lx, lx, lx)
3454 real(kind=rp) :: wut(lx, lx, lx)
3455 real(kind=rp) :: wvr(lx, lx, lx)
3456 real(kind=rp) :: wvs(lx, lx, lx)
3457 real(kind=rp) :: wvt(lx, lx, lx)
3458 real(kind=rp) :: wwr(lx, lx, lx)
3459 real(kind=rp) :: wws(lx, lx, lx)
3460 real(kind=rp) :: wwt(lx, lx, lx)
3461 integer :: e, i, j, k
3467 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
3468 + dx(i,2) * u(2,j,1,e) &
3469 + dx(i,3) * u(3,j,1,e) &
3470 + dx(i,4) * u(4,j,1,e) &
3471 + dx(i,5) * u(5,j,1,e) &
3472 + dx(i,6) * u(6,j,1,e)
3474 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
3475 + dx(i,2) * v(2,j,1,e) &
3476 + dx(i,3) * v(3,j,1,e) &
3477 + dx(i,4) * v(4,j,1,e) &
3478 + dx(i,5) * v(5,j,1,e) &
3479 + dx(i,6) * v(6,j,1,e)
3481 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
3482 + dx(i,2) * w(2,j,1,e) &
3483 + dx(i,3) * w(3,j,1,e) &
3484 + dx(i,4) * w(4,j,1,e) &
3485 + dx(i,5) * w(5,j,1,e) &
3486 + dx(i,6) * w(6,j,1,e)
3493 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
3494 + dy(j,2) * u(i,2,k,e) &
3495 + dy(j,3) * u(i,3,k,e) &
3496 + dy(j,4) * u(i,4,k,e) &
3497 + dy(j,5) * u(i,5,k,e) &
3498 + dy(j,6) * u(i,6,k,e)
3500 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
3501 + dy(j,2) * v(i,2,k,e) &
3502 + dy(j,3) * v(i,3,k,e) &
3503 + dy(j,4) * v(i,4,k,e) &
3504 + dy(j,5) * v(i,5,k,e) &
3505 + dy(j,6) * v(i,6,k,e)
3507 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
3508 + dy(j,2) * w(i,2,k,e) &
3509 + dy(j,3) * w(i,3,k,e) &
3510 + dy(j,4) * w(i,4,k,e) &
3511 + dy(j,5) * w(i,5,k,e) &
3512 + dy(j,6) * w(i,6,k,e)
3519 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
3520 + dz(k,2) * u(i,1,2,e) &
3521 + dz(k,3) * u(i,1,3,e) &
3522 + dz(k,4) * u(i,1,4,e) &
3523 + dz(k,5) * u(i,1,5,e) &
3524 + dz(k,6) * u(i,1,6,e)
3526 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
3527 + dz(k,2) * v(i,1,2,e) &
3528 + dz(k,3) * v(i,1,3,e) &
3529 + dz(k,4) * v(i,1,4,e) &
3530 + dz(k,5) * v(i,1,5,e) &
3531 + dz(k,6) * v(i,1,6,e)
3533 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
3534 + dz(k,2) * w(i,1,2,e) &
3535 + dz(k,3) * w(i,1,3,e) &
3536 + dz(k,4) * w(i,1,4,e) &
3537 + dz(k,5) * w(i,1,5,e) &
3538 + dz(k,6) * w(i,1,6,e)
3543 ur(i,1,1) = h1(i,1,1,e) &
3544 * ( g11(i,1,1,e) * wur(i,1,1) &
3545 + g12(i,1,1,e) * wus(i,1,1) &
3546 + g13(i,1,1,e) * wut(i,1,1) )
3547 us(i,1,1) = h1(i,1,1,e) &
3548 * ( g12(i,1,1,e) * wur(i,1,1) &
3549 + g22(i,1,1,e) * wus(i,1,1) &
3550 + g23(i,1,1,e) * wut(i,1,1) )
3551 ut(i,1,1) = h1(i,1,1,e) &
3552 * ( g13(i,1,1,e) * wur(i,1,1) &
3553 + g23(i,1,1,e) * wus(i,1,1) &
3554 + g33(i,1,1,e) * wut(i,1,1) )
3556 vr(i,1,1) = h1(i,1,1,e) &
3557 * ( g11(i,1,1,e) * wvr(i,1,1) &
3558 + g12(i,1,1,e) * wvs(i,1,1) &
3559 + g13(i,1,1,e) * wvt(i,1,1) )
3560 vs(i,1,1) = h1(i,1,1,e) &
3561 * ( g12(i,1,1,e) * wvr(i,1,1) &
3562 + g22(i,1,1,e) * wvs(i,1,1) &
3563 + g23(i,1,1,e) * wvt(i,1,1) )
3564 vt(i,1,1) = h1(i,1,1,e) &
3565 * ( g13(i,1,1,e) * wvr(i,1,1) &
3566 + g23(i,1,1,e) * wvs(i,1,1) &
3567 + g33(i,1,1,e) * wvt(i,1,1) )
3569 wr(i,1,1) = h1(i,1,1,e) &
3570 * ( g11(i,1,1,e) * wwr(i,1,1) &
3571 + g12(i,1,1,e) * wws(i,1,1) &
3572 + g13(i,1,1,e) * wwt(i,1,1) )
3573 ws(i,1,1) = h1(i,1,1,e) &
3574 * ( g12(i,1,1,e) * wwr(i,1,1) &
3575 + g22(i,1,1,e) * wws(i,1,1) &
3576 + g23(i,1,1,e) * wwt(i,1,1) )
3577 wt(i,1,1) = h1(i,1,1,e) &
3578 * ( g13(i,1,1,e) * wwr(i,1,1) &
3579 + g23(i,1,1,e) * wws(i,1,1) &
3580 + g33(i,1,1,e) * wwt(i,1,1) )
3585 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
3586 + dxt(i,2) * ur(2,j,1) &
3587 + dxt(i,3) * ur(3,j,1) &
3588 + dxt(i,4) * ur(4,j,1) &
3589 + dxt(i,5) * ur(5,j,1) &
3590 + dxt(i,6) * ur(6,j,1)
3592 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
3593 + dxt(i,2) * vr(2,j,1) &
3594 + dxt(i,3) * vr(3,j,1) &
3595 + dxt(i,4) * vr(4,j,1) &
3596 + dxt(i,5) * vr(5,j,1) &
3597 + dxt(i,6) * vr(6,j,1)
3599 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
3600 + dxt(i,2) * wr(2,j,1) &
3601 + dxt(i,3) * wr(3,j,1) &
3602 + dxt(i,4) * wr(4,j,1) &
3603 + dxt(i,5) * wr(5,j,1) &
3604 + dxt(i,6) * wr(6,j,1)
3611 au(i,j,k,e) = au(i,j,k,e) &
3612 + dyt(j,1) * us(i,1,k) &
3613 + dyt(j,2) * us(i,2,k) &
3614 + dyt(j,3) * us(i,3,k) &
3615 + dyt(j,4) * us(i,4,k) &
3616 + dyt(j,5) * us(i,5,k) &
3617 + dyt(j,6) * us(i,6,k)
3619 av(i,j,k,e) = av(i,j,k,e) &
3620 + dyt(j,1) * vs(i,1,k) &
3621 + dyt(j,2) * vs(i,2,k) &
3622 + dyt(j,3) * vs(i,3,k) &
3623 + dyt(j,4) * vs(i,4,k) &
3624 + dyt(j,5) * vs(i,5,k) &
3625 + dyt(j,6) * vs(i,6,k)
3627 aw(i,j,k,e) = aw(i,j,k,e) &
3628 + dyt(j,1) * ws(i,1,k) &
3629 + dyt(j,2) * ws(i,2,k) &
3630 + dyt(j,3) * ws(i,3,k) &
3631 + dyt(j,4) * ws(i,4,k) &
3632 + dyt(j,5) * ws(i,5,k) &
3633 + dyt(j,6) * ws(i,6,k)
3641 au(i,1,k,e) = au(i,1,k,e) &
3642 + dzt(k,1) * ut(i,1,1) &
3643 + dzt(k,2) * ut(i,1,2) &
3644 + dzt(k,3) * ut(i,1,3) &
3645 + dzt(k,4) * ut(i,1,4) &
3646 + dzt(k,5) * ut(i,1,5) &
3647 + dzt(k,6) * ut(i,1,6) &
3648 + h2(i,1,k,e) * b(i,1,k,e) * u(i,1,k,e)
3650 av(i,1,k,e) = av(i,1,k,e) &
3651 + dzt(k,1) * vt(i,1,1) &
3652 + dzt(k,2) * vt(i,1,2) &
3653 + dzt(k,3) * vt(i,1,3) &
3654 + dzt(k,4) * vt(i,1,4) &
3655 + dzt(k,5) * vt(i,1,5) &
3656 + dzt(k,6) * vt(i,1,6) &
3657 + h2(i,1,k,e) * b(i,1,k,e) * v(i,1,k,e)
3659 aw(i,1,k,e) = aw(i,1,k,e) &
3660 + dzt(k,1) * wt(i,1,1) &
3661 + dzt(k,2) * wt(i,1,2) &
3662 + dzt(k,3) * wt(i,1,3) &
3663 + dzt(k,4) * wt(i,1,4) &
3664 + dzt(k,5) * wt(i,1,5) &
3665 + dzt(k,6) * wt(i,1,6) &
3666 + h2(i,1,k,e) * b(i,1,k,e) * w(i,1,k,e)
3672 au(i,1,k,e) = au(i,1,k,e) &
3673 + dzt(k,1) * ut(i,1,1) &
3674 + dzt(k,2) * ut(i,1,2) &
3675 + dzt(k,3) * ut(i,1,3) &
3676 + dzt(k,4) * ut(i,1,4) &
3677 + dzt(k,5) * ut(i,1,5) &
3678 + dzt(k,6) * ut(i,1,6)
3680 av(i,1,k,e) = av(i,1,k,e) &
3681 + dzt(k,1) * vt(i,1,1) &
3682 + dzt(k,2) * vt(i,1,2) &
3683 + dzt(k,3) * vt(i,1,3) &
3684 + dzt(k,4) * vt(i,1,4) &
3685 + dzt(k,5) * vt(i,1,5) &
3686 + dzt(k,6) * vt(i,1,6)
3688 aw(i,1,k,e) = aw(i,1,k,e) &
3689 + dzt(k,1) * wt(i,1,1) &
3690 + dzt(k,2) * wt(i,1,2) &
3691 + dzt(k,3) * wt(i,1,3) &
3692 + dzt(k,4) * wt(i,1,4) &
3693 + dzt(k,5) * wt(i,1,5) &
3694 + dzt(k,6) * wt(i,1,6)
3701 end subroutine ax_helm_vector_lx6
3703 subroutine ax_helm_vector_lx5(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
3704 h1, h2, B, ifh2, G11, G22, G33, G12, G13, G23, n)
3705 integer,
parameter :: lx = 5
3706 integer,
intent(in) :: n
3707 logical,
intent(in) :: ifh2
3708 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
3709 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
3710 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
3711 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
3712 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
3713 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
3714 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
3715 real(kind=rp),
intent(in) :: h2(lx, lx, lx, n)
3716 real(kind=rp),
intent(in) :: b(lx, lx, lx, n)
3717 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
3718 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
3719 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
3720 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
3721 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
3722 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
3723 real(kind=rp),
intent(in) :: dx(lx, lx)
3724 real(kind=rp),
intent(in) :: dy(lx, lx)
3725 real(kind=rp),
intent(in) :: dz(lx, lx)
3726 real(kind=rp),
intent(in) :: dxt(lx, lx)
3727 real(kind=rp),
intent(in) :: dyt(lx, lx)
3728 real(kind=rp),
intent(in) :: dzt(lx, lx)
3729 real(kind=rp) :: ur(lx, lx, lx)
3730 real(kind=rp) :: us(lx, lx, lx)
3731 real(kind=rp) :: ut(lx, lx, lx)
3732 real(kind=rp) :: vr(lx, lx, lx)
3733 real(kind=rp) :: vs(lx, lx, lx)
3734 real(kind=rp) :: vt(lx, lx, lx)
3735 real(kind=rp) :: wr(lx, lx, lx)
3736 real(kind=rp) :: ws(lx, lx, lx)
3737 real(kind=rp) :: wt(lx, lx, lx)
3738 real(kind=rp) :: wur(lx, lx, lx)
3739 real(kind=rp) :: wus(lx, lx, lx)
3740 real(kind=rp) :: wut(lx, lx, lx)
3741 real(kind=rp) :: wvr(lx, lx, lx)
3742 real(kind=rp) :: wvs(lx, lx, lx)
3743 real(kind=rp) :: wvt(lx, lx, lx)
3744 real(kind=rp) :: wwr(lx, lx, lx)
3745 real(kind=rp) :: wws(lx, lx, lx)
3746 real(kind=rp) :: wwt(lx, lx, lx)
3747 integer :: e, i, j, k
3753 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
3754 + dx(i,2) * u(2,j,1,e) &
3755 + dx(i,3) * u(3,j,1,e) &
3756 + dx(i,4) * u(4,j,1,e) &
3757 + dx(i,5) * u(5,j,1,e)
3759 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
3760 + dx(i,2) * v(2,j,1,e) &
3761 + dx(i,3) * v(3,j,1,e) &
3762 + dx(i,4) * v(4,j,1,e) &
3763 + dx(i,5) * v(5,j,1,e)
3765 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
3766 + dx(i,2) * w(2,j,1,e) &
3767 + dx(i,3) * w(3,j,1,e) &
3768 + dx(i,4) * w(4,j,1,e) &
3769 + dx(i,5) * w(5,j,1,e)
3776 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
3777 + dy(j,2) * u(i,2,k,e) &
3778 + dy(j,3) * u(i,3,k,e) &
3779 + dy(j,4) * u(i,4,k,e) &
3780 + dy(j,5) * u(i,5,k,e)
3782 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
3783 + dy(j,2) * v(i,2,k,e) &
3784 + dy(j,3) * v(i,3,k,e) &
3785 + dy(j,4) * v(i,4,k,e) &
3786 + dy(j,5) * v(i,5,k,e)
3788 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
3789 + dy(j,2) * w(i,2,k,e) &
3790 + dy(j,3) * w(i,3,k,e) &
3791 + dy(j,4) * w(i,4,k,e) &
3792 + dy(j,5) * w(i,5,k,e)
3799 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
3800 + dz(k,2) * u(i,1,2,e) &
3801 + dz(k,3) * u(i,1,3,e) &
3802 + dz(k,4) * u(i,1,4,e) &
3803 + dz(k,5) * u(i,1,5,e)
3805 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
3806 + dz(k,2) * v(i,1,2,e) &
3807 + dz(k,3) * v(i,1,3,e) &
3808 + dz(k,4) * v(i,1,4,e) &
3809 + dz(k,5) * v(i,1,5,e)
3811 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
3812 + dz(k,2) * w(i,1,2,e) &
3813 + dz(k,3) * w(i,1,3,e) &
3814 + dz(k,4) * w(i,1,4,e) &
3815 + dz(k,5) * w(i,1,5,e)
3820 ur(i,1,1) = h1(i,1,1,e) &
3821 * ( g11(i,1,1,e) * wur(i,1,1) &
3822 + g12(i,1,1,e) * wus(i,1,1) &
3823 + g13(i,1,1,e) * wut(i,1,1) )
3824 us(i,1,1) = h1(i,1,1,e) &
3825 * ( g12(i,1,1,e) * wur(i,1,1) &
3826 + g22(i,1,1,e) * wus(i,1,1) &
3827 + g23(i,1,1,e) * wut(i,1,1) )
3828 ut(i,1,1) = h1(i,1,1,e) &
3829 * ( g13(i,1,1,e) * wur(i,1,1) &
3830 + g23(i,1,1,e) * wus(i,1,1) &
3831 + g33(i,1,1,e) * wut(i,1,1) )
3833 vr(i,1,1) = h1(i,1,1,e) &
3834 * ( g11(i,1,1,e) * wvr(i,1,1) &
3835 + g12(i,1,1,e) * wvs(i,1,1) &
3836 + g13(i,1,1,e) * wvt(i,1,1) )
3837 vs(i,1,1) = h1(i,1,1,e) &
3838 * ( g12(i,1,1,e) * wvr(i,1,1) &
3839 + g22(i,1,1,e) * wvs(i,1,1) &
3840 + g23(i,1,1,e) * wvt(i,1,1) )
3841 vt(i,1,1) = h1(i,1,1,e) &
3842 * ( g13(i,1,1,e) * wvr(i,1,1) &
3843 + g23(i,1,1,e) * wvs(i,1,1) &
3844 + g33(i,1,1,e) * wvt(i,1,1) )
3846 wr(i,1,1) = h1(i,1,1,e) &
3847 * ( g11(i,1,1,e) * wwr(i,1,1) &
3848 + g12(i,1,1,e) * wws(i,1,1) &
3849 + g13(i,1,1,e) * wwt(i,1,1) )
3850 ws(i,1,1) = h1(i,1,1,e) &
3851 * ( g12(i,1,1,e) * wwr(i,1,1) &
3852 + g22(i,1,1,e) * wws(i,1,1) &
3853 + g23(i,1,1,e) * wwt(i,1,1) )
3854 wt(i,1,1) = h1(i,1,1,e) &
3855 * ( g13(i,1,1,e) * wwr(i,1,1) &
3856 + g23(i,1,1,e) * wws(i,1,1) &
3857 + g33(i,1,1,e) * wwt(i,1,1) )
3862 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
3863 + dxt(i,2) * ur(2,j,1) &
3864 + dxt(i,3) * ur(3,j,1) &
3865 + dxt(i,4) * ur(4,j,1) &
3866 + dxt(i,5) * ur(5,j,1)
3868 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
3869 + dxt(i,2) * vr(2,j,1) &
3870 + dxt(i,3) * vr(3,j,1) &
3871 + dxt(i,4) * vr(4,j,1) &
3872 + dxt(i,5) * vr(5,j,1)
3874 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
3875 + dxt(i,2) * wr(2,j,1) &
3876 + dxt(i,3) * wr(3,j,1) &
3877 + dxt(i,4) * wr(4,j,1) &
3878 + dxt(i,5) * wr(5,j,1)
3885 au(i,j,k,e) = au(i,j,k,e) &
3886 + dyt(j,1) * us(i,1,k) &
3887 + dyt(j,2) * us(i,2,k) &
3888 + dyt(j,3) * us(i,3,k) &
3889 + dyt(j,4) * us(i,4,k) &
3890 + dyt(j,5) * us(i,5,k)
3892 av(i,j,k,e) = av(i,j,k,e) &
3893 + dyt(j,1) * vs(i,1,k) &
3894 + dyt(j,2) * vs(i,2,k) &
3895 + dyt(j,3) * vs(i,3,k) &
3896 + dyt(j,4) * vs(i,4,k) &
3897 + dyt(j,5) * vs(i,5,k)
3899 aw(i,j,k,e) = aw(i,j,k,e) &
3900 + dyt(j,1) * ws(i,1,k) &
3901 + dyt(j,2) * ws(i,2,k) &
3902 + dyt(j,3) * ws(i,3,k) &
3903 + dyt(j,4) * ws(i,4,k) &
3904 + dyt(j,5) * ws(i,5,k)
3912 au(i,1,k,e) = au(i,1,k,e) &
3913 + dzt(k,1) * ut(i,1,1) &
3914 + dzt(k,2) * ut(i,1,2) &
3915 + dzt(k,3) * ut(i,1,3) &
3916 + dzt(k,4) * ut(i,1,4) &
3917 + dzt(k,5) * ut(i,1,5) &
3918 + h2(i,1,k,e) * b(i,1,k,e) * u(i,1,k,e)
3920 av(i,1,k,e) = av(i,1,k,e) &
3921 + dzt(k,1) * vt(i,1,1) &
3922 + dzt(k,2) * vt(i,1,2) &
3923 + dzt(k,3) * vt(i,1,3) &
3924 + dzt(k,4) * vt(i,1,4) &
3925 + dzt(k,5) * vt(i,1,5) &
3926 + h2(i,1,k,e) * b(i,1,k,e) * v(i,1,k,e)
3928 aw(i,1,k,e) = aw(i,1,k,e) &
3929 + dzt(k,1) * wt(i,1,1) &
3930 + dzt(k,2) * wt(i,1,2) &
3931 + dzt(k,3) * wt(i,1,3) &
3932 + dzt(k,4) * wt(i,1,4) &
3933 + dzt(k,5) * wt(i,1,5) &
3934 + h2(i,1,k,e) * b(i,1,k,e) * w(i,1,k,e)
3940 au(i,1,k,e) = au(i,1,k,e) &
3941 + dzt(k,1) * ut(i,1,1) &
3942 + dzt(k,2) * ut(i,1,2) &
3943 + dzt(k,3) * ut(i,1,3) &
3944 + dzt(k,4) * ut(i,1,4) &
3945 + dzt(k,5) * ut(i,1,5)
3947 av(i,1,k,e) = av(i,1,k,e) &
3948 + dzt(k,1) * vt(i,1,1) &
3949 + dzt(k,2) * vt(i,1,2) &
3950 + dzt(k,3) * vt(i,1,3) &
3951 + dzt(k,4) * vt(i,1,4) &
3952 + dzt(k,5) * vt(i,1,5)
3954 aw(i,1,k,e) = aw(i,1,k,e) &
3955 + dzt(k,1) * wt(i,1,1) &
3956 + dzt(k,2) * wt(i,1,2) &
3957 + dzt(k,3) * wt(i,1,3) &
3958 + dzt(k,4) * wt(i,1,4) &
3959 + dzt(k,5) * wt(i,1,5)
3966 end subroutine ax_helm_vector_lx5
3968 subroutine ax_helm_vector_lx4(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
3969 h1, h2, B, ifh2, G11, G22, G33, G12, G13, G23, n)
3970 integer,
parameter :: lx = 4
3971 integer,
intent(in) :: n
3972 logical,
intent(in) :: ifh2
3973 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
3974 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
3975 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
3976 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
3977 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
3978 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
3979 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
3980 real(kind=rp),
intent(in) :: h2(lx, lx, lx, n)
3981 real(kind=rp),
intent(in) :: b(lx, lx, lx, n)
3982 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
3983 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
3984 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
3985 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
3986 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
3987 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
3988 real(kind=rp),
intent(in) :: dx(lx, lx)
3989 real(kind=rp),
intent(in) :: dy(lx, lx)
3990 real(kind=rp),
intent(in) :: dz(lx, lx)
3991 real(kind=rp),
intent(in) :: dxt(lx, lx)
3992 real(kind=rp),
intent(in) :: dyt(lx, lx)
3993 real(kind=rp),
intent(in) :: dzt(lx, lx)
3994 real(kind=rp) :: ur(lx, lx, lx)
3995 real(kind=rp) :: us(lx, lx, lx)
3996 real(kind=rp) :: ut(lx, lx, lx)
3997 real(kind=rp) :: vr(lx, lx, lx)
3998 real(kind=rp) :: vs(lx, lx, lx)
3999 real(kind=rp) :: vt(lx, lx, lx)
4000 real(kind=rp) :: wr(lx, lx, lx)
4001 real(kind=rp) :: ws(lx, lx, lx)
4002 real(kind=rp) :: wt(lx, lx, lx)
4003 real(kind=rp) :: wur(lx, lx, lx)
4004 real(kind=rp) :: wus(lx, lx, lx)
4005 real(kind=rp) :: wut(lx, lx, lx)
4006 real(kind=rp) :: wvr(lx, lx, lx)
4007 real(kind=rp) :: wvs(lx, lx, lx)
4008 real(kind=rp) :: wvt(lx, lx, lx)
4009 real(kind=rp) :: wwr(lx, lx, lx)
4010 real(kind=rp) :: wws(lx, lx, lx)
4011 real(kind=rp) :: wwt(lx, lx, lx)
4012 integer :: e, i, j, k
4018 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
4019 + dx(i,2) * u(2,j,1,e) &
4020 + dx(i,3) * u(3,j,1,e) &
4021 + dx(i,4) * u(4,j,1,e)
4023 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
4024 + dx(i,2) * v(2,j,1,e) &
4025 + dx(i,3) * v(3,j,1,e) &
4026 + dx(i,4) * v(4,j,1,e)
4028 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
4029 + dx(i,2) * w(2,j,1,e) &
4030 + dx(i,3) * w(3,j,1,e) &
4031 + dx(i,4) * w(4,j,1,e)
4038 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
4039 + dy(j,2) * u(i,2,k,e) &
4040 + dy(j,3) * u(i,3,k,e) &
4041 + dy(j,4) * u(i,4,k,e)
4043 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
4044 + dy(j,2) * v(i,2,k,e) &
4045 + dy(j,3) * v(i,3,k,e) &
4046 + dy(j,4) * v(i,4,k,e)
4048 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
4049 + dy(j,2) * w(i,2,k,e) &
4050 + dy(j,3) * w(i,3,k,e) &
4051 + dy(j,4) * w(i,4,k,e)
4058 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
4059 + dz(k,2) * u(i,1,2,e) &
4060 + dz(k,3) * u(i,1,3,e) &
4061 + dz(k,4) * u(i,1,4,e)
4063 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
4064 + dz(k,2) * v(i,1,2,e) &
4065 + dz(k,3) * v(i,1,3,e) &
4066 + dz(k,4) * v(i,1,4,e)
4068 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
4069 + dz(k,2) * w(i,1,2,e) &
4070 + dz(k,3) * w(i,1,3,e) &
4071 + dz(k,4) * w(i,1,4,e)
4076 ur(i,1,1) = h1(i,1,1,e) &
4077 * ( g11(i,1,1,e) * wur(i,1,1) &
4078 + g12(i,1,1,e) * wus(i,1,1) &
4079 + g13(i,1,1,e) * wut(i,1,1) )
4080 us(i,1,1) = h1(i,1,1,e) &
4081 * ( g12(i,1,1,e) * wur(i,1,1) &
4082 + g22(i,1,1,e) * wus(i,1,1) &
4083 + g23(i,1,1,e) * wut(i,1,1) )
4084 ut(i,1,1) = h1(i,1,1,e) &
4085 * ( g13(i,1,1,e) * wur(i,1,1) &
4086 + g23(i,1,1,e) * wus(i,1,1) &
4087 + g33(i,1,1,e) * wut(i,1,1) )
4089 vr(i,1,1) = h1(i,1,1,e) &
4090 * ( g11(i,1,1,e) * wvr(i,1,1) &
4091 + g12(i,1,1,e) * wvs(i,1,1) &
4092 + g13(i,1,1,e) * wvt(i,1,1) )
4093 vs(i,1,1) = h1(i,1,1,e) &
4094 * ( g12(i,1,1,e) * wvr(i,1,1) &
4095 + g22(i,1,1,e) * wvs(i,1,1) &
4096 + g23(i,1,1,e) * wvt(i,1,1) )
4097 vt(i,1,1) = h1(i,1,1,e) &
4098 * ( g13(i,1,1,e) * wvr(i,1,1) &
4099 + g23(i,1,1,e) * wvs(i,1,1) &
4100 + g33(i,1,1,e) * wvt(i,1,1) )
4102 wr(i,1,1) = h1(i,1,1,e) &
4103 * ( g11(i,1,1,e) * wwr(i,1,1) &
4104 + g12(i,1,1,e) * wws(i,1,1) &
4105 + g13(i,1,1,e) * wwt(i,1,1) )
4106 ws(i,1,1) = h1(i,1,1,e) &
4107 * ( g12(i,1,1,e) * wwr(i,1,1) &
4108 + g22(i,1,1,e) * wws(i,1,1) &
4109 + g23(i,1,1,e) * wwt(i,1,1) )
4110 wt(i,1,1) = h1(i,1,1,e) &
4111 * ( g13(i,1,1,e) * wwr(i,1,1) &
4112 + g23(i,1,1,e) * wws(i,1,1) &
4113 + g33(i,1,1,e) * wwt(i,1,1) )
4118 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
4119 + dxt(i,2) * ur(2,j,1) &
4120 + dxt(i,3) * ur(3,j,1) &
4121 + dxt(i,4) * ur(4,j,1)
4123 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
4124 + dxt(i,2) * vr(2,j,1) &
4125 + dxt(i,3) * vr(3,j,1) &
4126 + dxt(i,4) * vr(4,j,1)
4128 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
4129 + dxt(i,2) * wr(2,j,1) &
4130 + dxt(i,3) * wr(3,j,1) &
4131 + dxt(i,4) * wr(4,j,1)
4138 au(i,j,k,e) = au(i,j,k,e) &
4139 + dyt(j,1) * us(i,1,k) &
4140 + dyt(j,2) * us(i,2,k) &
4141 + dyt(j,3) * us(i,3,k) &
4142 + dyt(j,4) * us(i,4,k)
4144 av(i,j,k,e) = av(i,j,k,e) &
4145 + dyt(j,1) * vs(i,1,k) &
4146 + dyt(j,2) * vs(i,2,k) &
4147 + dyt(j,3) * vs(i,3,k) &
4148 + dyt(j,4) * vs(i,4,k)
4150 aw(i,j,k,e) = aw(i,j,k,e) &
4151 + dyt(j,1) * ws(i,1,k) &
4152 + dyt(j,2) * ws(i,2,k) &
4153 + dyt(j,3) * ws(i,3,k) &
4154 + dyt(j,4) * ws(i,4,k)
4162 au(i,1,k,e) = au(i,1,k,e) &
4163 + dzt(k,1) * ut(i,1,1) &
4164 + dzt(k,2) * ut(i,1,2) &
4165 + dzt(k,3) * ut(i,1,3) &
4166 + dzt(k,4) * ut(i,1,4) &
4167 + h2(i,1,k,e) * b(i,1,k,e) * u(i,1,k,e)
4169 av(i,1,k,e) = av(i,1,k,e) &
4170 + dzt(k,1) * vt(i,1,1) &
4171 + dzt(k,2) * vt(i,1,2) &
4172 + dzt(k,3) * vt(i,1,3) &
4173 + dzt(k,4) * vt(i,1,4) &
4174 + h2(i,1,k,e) * b(i,1,k,e) * v(i,1,k,e)
4176 aw(i,1,k,e) = aw(i,1,k,e) &
4177 + dzt(k,1) * wt(i,1,1) &
4178 + dzt(k,2) * wt(i,1,2) &
4179 + dzt(k,3) * wt(i,1,3) &
4180 + dzt(k,4) * wt(i,1,4) &
4181 + h2(i,1,k,e) * b(i,1,k,e) * w(i,1,k,e)
4187 au(i,1,k,e) = au(i,1,k,e) &
4188 + dzt(k,1) * ut(i,1,1) &
4189 + dzt(k,2) * ut(i,1,2) &
4190 + dzt(k,3) * ut(i,1,3) &
4191 + dzt(k,4) * ut(i,1,4)
4193 av(i,1,k,e) = av(i,1,k,e) &
4194 + dzt(k,1) * vt(i,1,1) &
4195 + dzt(k,2) * vt(i,1,2) &
4196 + dzt(k,3) * vt(i,1,3) &
4197 + dzt(k,4) * vt(i,1,4)
4199 aw(i,1,k,e) = aw(i,1,k,e) &
4200 + dzt(k,1) * wt(i,1,1) &
4201 + dzt(k,2) * wt(i,1,2) &
4202 + dzt(k,3) * wt(i,1,3) &
4203 + dzt(k,4) * wt(i,1,4)
4210 end subroutine ax_helm_vector_lx4
4212 subroutine ax_helm_vector_lx3(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
4213 h1, h2, B, ifh2, G11, G22, G33, G12, G13, G23, n)
4214 integer,
parameter :: lx = 3
4215 integer,
intent(in) :: n
4216 logical,
intent(in) :: ifh2
4217 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
4218 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
4219 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
4220 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
4221 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
4222 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
4223 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
4224 real(kind=rp),
intent(in) :: h2(lx, lx, lx, n)
4225 real(kind=rp),
intent(in) :: b(lx, lx, lx, n)
4226 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
4227 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
4228 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
4229 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
4230 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
4231 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
4232 real(kind=rp),
intent(in) :: dx(lx, lx)
4233 real(kind=rp),
intent(in) :: dy(lx, lx)
4234 real(kind=rp),
intent(in) :: dz(lx, lx)
4235 real(kind=rp),
intent(in) :: dxt(lx, lx)
4236 real(kind=rp),
intent(in) :: dyt(lx, lx)
4237 real(kind=rp),
intent(in) :: dzt(lx, lx)
4238 real(kind=rp) :: ur(lx, lx, lx)
4239 real(kind=rp) :: us(lx, lx, lx)
4240 real(kind=rp) :: ut(lx, lx, lx)
4241 real(kind=rp) :: vr(lx, lx, lx)
4242 real(kind=rp) :: vs(lx, lx, lx)
4243 real(kind=rp) :: vt(lx, lx, lx)
4244 real(kind=rp) :: wr(lx, lx, lx)
4245 real(kind=rp) :: ws(lx, lx, lx)
4246 real(kind=rp) :: wt(lx, lx, lx)
4247 real(kind=rp) :: wur(lx, lx, lx)
4248 real(kind=rp) :: wus(lx, lx, lx)
4249 real(kind=rp) :: wut(lx, lx, lx)
4250 real(kind=rp) :: wvr(lx, lx, lx)
4251 real(kind=rp) :: wvs(lx, lx, lx)
4252 real(kind=rp) :: wvt(lx, lx, lx)
4253 real(kind=rp) :: wwr(lx, lx, lx)
4254 real(kind=rp) :: wws(lx, lx, lx)
4255 real(kind=rp) :: wwt(lx, lx, lx)
4256 integer :: e, i, j, k
4262 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
4263 + dx(i,2) * u(2,j,1,e) &
4264 + dx(i,3) * u(3,j,1,e)
4266 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
4267 + dx(i,2) * v(2,j,1,e) &
4268 + dx(i,3) * v(3,j,1,e)
4270 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
4271 + dx(i,2) * w(2,j,1,e) &
4272 + dx(i,3) * w(3,j,1,e)
4279 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
4280 + dy(j,2) * u(i,2,k,e) &
4281 + dy(j,3) * u(i,3,k,e)
4283 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
4284 + dy(j,2) * v(i,2,k,e) &
4285 + dy(j,3) * v(i,3,k,e)
4287 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
4288 + dy(j,2) * w(i,2,k,e) &
4289 + dy(j,3) * w(i,3,k,e)
4296 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
4297 + dz(k,2) * u(i,1,2,e) &
4298 + dz(k,3) * u(i,1,3,e)
4300 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
4301 + dz(k,2) * v(i,1,2,e) &
4302 + dz(k,3) * v(i,1,3,e)
4304 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
4305 + dz(k,2) * w(i,1,2,e) &
4306 + dz(k,3) * w(i,1,3,e)
4311 ur(i,1,1) = h1(i,1,1,e) &
4312 * ( g11(i,1,1,e) * wur(i,1,1) &
4313 + g12(i,1,1,e) * wus(i,1,1) &
4314 + g13(i,1,1,e) * wut(i,1,1) )
4315 us(i,1,1) = h1(i,1,1,e) &
4316 * ( g12(i,1,1,e) * wur(i,1,1) &
4317 + g22(i,1,1,e) * wus(i,1,1) &
4318 + g23(i,1,1,e) * wut(i,1,1) )
4319 ut(i,1,1) = h1(i,1,1,e) &
4320 * ( g13(i,1,1,e) * wur(i,1,1) &
4321 + g23(i,1,1,e) * wus(i,1,1) &
4322 + g33(i,1,1,e) * wut(i,1,1) )
4324 vr(i,1,1) = h1(i,1,1,e) &
4325 * ( g11(i,1,1,e) * wvr(i,1,1) &
4326 + g12(i,1,1,e) * wvs(i,1,1) &
4327 + g13(i,1,1,e) * wvt(i,1,1) )
4328 vs(i,1,1) = h1(i,1,1,e) &
4329 * ( g12(i,1,1,e) * wvr(i,1,1) &
4330 + g22(i,1,1,e) * wvs(i,1,1) &
4331 + g23(i,1,1,e) * wvt(i,1,1) )
4332 vt(i,1,1) = h1(i,1,1,e) &
4333 * ( g13(i,1,1,e) * wvr(i,1,1) &
4334 + g23(i,1,1,e) * wvs(i,1,1) &
4335 + g33(i,1,1,e) * wvt(i,1,1) )
4337 wr(i,1,1) = h1(i,1,1,e) &
4338 * ( g11(i,1,1,e) * wwr(i,1,1) &
4339 + g12(i,1,1,e) * wws(i,1,1) &
4340 + g13(i,1,1,e) * wwt(i,1,1) )
4341 ws(i,1,1) = h1(i,1,1,e) &
4342 * ( g12(i,1,1,e) * wwr(i,1,1) &
4343 + g22(i,1,1,e) * wws(i,1,1) &
4344 + g23(i,1,1,e) * wwt(i,1,1) )
4345 wt(i,1,1) = h1(i,1,1,e) &
4346 * ( g13(i,1,1,e) * wwr(i,1,1) &
4347 + g23(i,1,1,e) * wws(i,1,1) &
4348 + g33(i,1,1,e) * wwt(i,1,1) )
4353 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
4354 + dxt(i,2) * ur(2,j,1) &
4355 + dxt(i,3) * ur(3,j,1)
4357 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
4358 + dxt(i,2) * vr(2,j,1) &
4359 + dxt(i,3) * vr(3,j,1)
4361 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
4362 + dxt(i,2) * wr(2,j,1) &
4363 + dxt(i,3) * wr(3,j,1)
4370 au(i,j,k,e) = au(i,j,k,e) &
4371 + dyt(j,1) * us(i,1,k) &
4372 + dyt(j,2) * us(i,2,k) &
4373 + dyt(j,3) * us(i,3,k)
4375 av(i,j,k,e) = av(i,j,k,e) &
4376 + dyt(j,1) * vs(i,1,k) &
4377 + dyt(j,2) * vs(i,2,k) &
4378 + dyt(j,3) * vs(i,3,k)
4380 aw(i,j,k,e) = aw(i,j,k,e) &
4381 + dyt(j,1) * ws(i,1,k) &
4382 + dyt(j,2) * ws(i,2,k) &
4383 + dyt(j,3) * ws(i,3,k)
4391 au(i,1,k,e) = au(i,1,k,e) &
4392 + dzt(k,1) * ut(i,1,1) &
4393 + dzt(k,2) * ut(i,1,2) &
4394 + dzt(k,3) * ut(i,1,3) &
4395 + h2(i,1,k,e) * b(i,1,k,e) * u(i,1,k,e)
4397 av(i,1,k,e) = av(i,1,k,e) &
4398 + dzt(k,1) * vt(i,1,1) &
4399 + dzt(k,2) * vt(i,1,2) &
4400 + dzt(k,3) * vt(i,1,3) &
4401 + h2(i,1,k,e) * b(i,1,k,e) * v(i,1,k,e)
4403 aw(i,1,k,e) = aw(i,1,k,e) &
4404 + dzt(k,1) * wt(i,1,1) &
4405 + dzt(k,2) * wt(i,1,2) &
4406 + dzt(k,3) * wt(i,1,3) &
4407 + h2(i,1,k,e) * b(i,1,k,e) * w(i,1,k,e)
4413 au(i,1,k,e) = au(i,1,k,e) &
4414 + dzt(k,1) * ut(i,1,1) &
4415 + dzt(k,2) * ut(i,1,2) &
4416 + dzt(k,3) * ut(i,1,3)
4418 av(i,1,k,e) = av(i,1,k,e) &
4419 + dzt(k,1) * vt(i,1,1) &
4420 + dzt(k,2) * vt(i,1,2) &
4421 + dzt(k,3) * vt(i,1,3)
4423 aw(i,1,k,e) = aw(i,1,k,e) &
4424 + dzt(k,1) * wt(i,1,1) &
4425 + dzt(k,2) * wt(i,1,2) &
4426 + dzt(k,3) * wt(i,1,3)
4433 end subroutine ax_helm_vector_lx3
4435 subroutine ax_helm_vector_lx2(au, av, aw, u, v, w, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
4436 h1, h2, B, ifh2, G11, G22, G33, G12, G13, G23, n)
4437 integer,
parameter :: lx = 2
4438 integer,
intent(in) :: n
4439 logical,
intent(in) :: ifh2
4440 real(kind=rp),
intent(inout) :: au(lx, lx, lx, n)
4441 real(kind=rp),
intent(inout) :: av(lx, lx, lx, n)
4442 real(kind=rp),
intent(inout) :: aw(lx, lx, lx, n)
4443 real(kind=rp),
intent(in) :: u(lx, lx, lx, n)
4444 real(kind=rp),
intent(in) :: v(lx, lx, lx, n)
4445 real(kind=rp),
intent(in) :: w(lx, lx, lx, n)
4446 real(kind=rp),
intent(in) :: h1(lx, lx, lx, n)
4447 real(kind=rp),
intent(in) :: h2(lx, lx, lx, n)
4448 real(kind=rp),
intent(in) :: b(lx, lx, lx, n)
4449 real(kind=rp),
intent(in) :: g11(lx, lx, lx, n)
4450 real(kind=rp),
intent(in) :: g22(lx, lx, lx, n)
4451 real(kind=rp),
intent(in) :: g33(lx, lx, lx, n)
4452 real(kind=rp),
intent(in) :: g12(lx, lx, lx, n)
4453 real(kind=rp),
intent(in) :: g13(lx, lx, lx, n)
4454 real(kind=rp),
intent(in) :: g23(lx, lx, lx, n)
4455 real(kind=rp),
intent(in) :: dx(lx, lx)
4456 real(kind=rp),
intent(in) :: dy(lx, lx)
4457 real(kind=rp),
intent(in) :: dz(lx, lx)
4458 real(kind=rp),
intent(in) :: dxt(lx, lx)
4459 real(kind=rp),
intent(in) :: dyt(lx, lx)
4460 real(kind=rp),
intent(in) :: dzt(lx, lx)
4461 real(kind=rp) :: ur(lx, lx, lx)
4462 real(kind=rp) :: us(lx, lx, lx)
4463 real(kind=rp) :: ut(lx, lx, lx)
4464 real(kind=rp) :: vr(lx, lx, lx)
4465 real(kind=rp) :: vs(lx, lx, lx)
4466 real(kind=rp) :: vt(lx, lx, lx)
4467 real(kind=rp) :: wr(lx, lx, lx)
4468 real(kind=rp) :: ws(lx, lx, lx)
4469 real(kind=rp) :: wt(lx, lx, lx)
4470 real(kind=rp) :: wur(lx, lx, lx)
4471 real(kind=rp) :: wus(lx, lx, lx)
4472 real(kind=rp) :: wut(lx, lx, lx)
4473 real(kind=rp) :: wvr(lx, lx, lx)
4474 real(kind=rp) :: wvs(lx, lx, lx)
4475 real(kind=rp) :: wvt(lx, lx, lx)
4476 real(kind=rp) :: wwr(lx, lx, lx)
4477 real(kind=rp) :: wws(lx, lx, lx)
4478 real(kind=rp) :: wwt(lx, lx, lx)
4479 integer :: e, i, j, k
4485 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
4486 + dx(i,2) * u(2,j,1,e)
4488 wvr(i,j,1) = dx(i,1) * v(1,j,1,e) &
4489 + dx(i,2) * v(2,j,1,e)
4491 wwr(i,j,1) = dx(i,1) * w(1,j,1,e) &
4492 + dx(i,2) * w(2,j,1,e)
4499 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
4500 + dy(j,2) * u(i,2,k,e)
4502 wvs(i,j,k) = dy(j,1) * v(i,1,k,e) &
4503 + dy(j,2) * v(i,2,k,e)
4505 wws(i,j,k) = dy(j,1) * w(i,1,k,e) &
4506 + dy(j,2) * w(i,2,k,e)
4514 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
4515 + dz(k,2) * u(i,1,2,e)
4517 wvt(i,1,k) = dz(k,1) * v(i,1,1,e) &
4518 + dz(k,2) * v(i,1,2,e)
4520 wwt(i,1,k) = dz(k,1) * w(i,1,1,e) &
4521 + dz(k,2) * w(i,1,2,e)
4526 ur(i,1,1) = h1(i,1,1,e) &
4527 * ( g11(i,1,1,e) * wur(i,1,1) &
4528 + g12(i,1,1,e) * wus(i,1,1) &
4529 + g13(i,1,1,e) * wut(i,1,1) )
4530 us(i,1,1) = h1(i,1,1,e) &
4531 * ( g12(i,1,1,e) * wur(i,1,1) &
4532 + g22(i,1,1,e) * wus(i,1,1) &
4533 + g23(i,1,1,e) * wut(i,1,1) )
4534 ut(i,1,1) = h1(i,1,1,e) &
4535 * ( g13(i,1,1,e) * wur(i,1,1) &
4536 + g23(i,1,1,e) * wus(i,1,1) &
4537 + g33(i,1,1,e) * wut(i,1,1) )
4539 vr(i,1,1) = h1(i,1,1,e) &
4540 * ( g11(i,1,1,e) * wvr(i,1,1) &
4541 + g12(i,1,1,e) * wvs(i,1,1) &
4542 + g13(i,1,1,e) * wvt(i,1,1) )
4543 vs(i,1,1) = h1(i,1,1,e) &
4544 * ( g12(i,1,1,e) * wvr(i,1,1) &
4545 + g22(i,1,1,e) * wvs(i,1,1) &
4546 + g23(i,1,1,e) * wvt(i,1,1) )
4547 vt(i,1,1) = h1(i,1,1,e) &
4548 * ( g13(i,1,1,e) * wvr(i,1,1) &
4549 + g23(i,1,1,e) * wvs(i,1,1) &
4550 + g33(i,1,1,e) * wvt(i,1,1) )
4552 wr(i,1,1) = h1(i,1,1,e) &
4553 * ( g11(i,1,1,e) * wwr(i,1,1) &
4554 + g12(i,1,1,e) * wws(i,1,1) &
4555 + g13(i,1,1,e) * wwt(i,1,1) )
4556 ws(i,1,1) = h1(i,1,1,e) &
4557 * ( g12(i,1,1,e) * wwr(i,1,1) &
4558 + g22(i,1,1,e) * wws(i,1,1) &
4559 + g23(i,1,1,e) * wwt(i,1,1) )
4560 wt(i,1,1) = h1(i,1,1,e) &
4561 * ( g13(i,1,1,e) * wwr(i,1,1) &
4562 + g23(i,1,1,e) * wws(i,1,1) &
4563 + g33(i,1,1,e) * wwt(i,1,1) )
4568 au(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
4569 + dxt(i,2) * ur(2,j,1)
4571 av(i,j,1,e) = dxt(i,1) * vr(1,j,1) &
4572 + dxt(i,2) * vr(2,j,1)
4574 aw(i,j,1,e) = dxt(i,1) * wr(1,j,1) &
4575 + dxt(i,2) * wr(2,j,1)
4582 au(i,j,k,e) = au(i,j,k,e) &
4583 + dyt(j,1) * us(i,1,k) &
4584 + dyt(j,2) * us(i,2,k)
4586 av(i,j,k,e) = av(i,j,k,e) &
4587 + dyt(j,1) * vs(i,1,k) &
4588 + dyt(j,2) * vs(i,2,k)
4590 aw(i,j,k,e) = aw(i,j,k,e) &
4591 + dyt(j,1) * ws(i,1,k) &
4592 + dyt(j,2) * ws(i,2,k)
4600 au(i,1,k,e) = au(i,1,k,e) &
4601 + dzt(k,1) * ut(i,1,1) &
4602 + dzt(k,2) * ut(i,1,2) &
4603 + h2(i,1,k,e) * b(i,1,k,e) * u(i,1,k,e)
4605 av(i,1,k,e) = av(i,1,k,e) &
4606 + dzt(k,1) * vt(i,1,1) &
4607 + dzt(k,2) * vt(i,1,2) &
4608 + h2(i,1,k,e) * b(i,1,k,e) * v(i,1,k,e)
4610 aw(i,1,k,e) = aw(i,1,k,e) &
4611 + dzt(k,1) * wt(i,1,1) &
4612 + dzt(k,2) * wt(i,1,2) &
4613 + h2(i,1,k,e) * b(i,1,k,e) * w(i,1,k,e)
4619 au(i,1,k,e) = au(i,1,k,e) &
4620 + dzt(k,1) * ut(i,1,1) &
4621 + dzt(k,2) * ut(i,1,2)
4623 av(i,1,k,e) = av(i,1,k,e) &
4624 + dzt(k,1) * vt(i,1,1) &
4625 + dzt(k,2) * vt(i,1,2)
4627 aw(i,1,k,e) = aw(i,1,k,e) &
4628 + dzt(k,1) * wt(i,1,1) &
4629 + dzt(k,2) * wt(i,1,2)
4636 end subroutine ax_helm_vector_lx2
4638end submodule ax_helm_vector_cpu