88 subroutine ax_helm_compute(w, u, coef, msh, Xh)
89 type(
mesh_t),
intent(in) :: msh
91 type(
coef_t),
intent(in) :: coef
92 real(kind=
rp),
intent(inout) :: w(xh%lx, xh%ly, xh%lz, msh%nelv)
93 real(kind=
rp),
intent(in) :: u(xh%lx, xh%ly, xh%lz, msh%nelv)
99 call ax_helm_lx14(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
100 coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, &
103 call ax_helm_lx13(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
104 coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, &
107 call ax_helm_lx12(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
108 coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, &
111 call ax_helm_lx11(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
112 coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, &
115 call ax_helm_lx10(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
116 coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, &
119 call ax_helm_lx9(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
120 coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, &
123 call ax_helm_lx8(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
124 coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, &
127 call ax_helm_lx7(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
128 coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, &
131 call ax_helm_lx6(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
132 coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, &
135 call ax_helm_lx5(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
136 coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, &
139 call ax_helm_lx4(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
140 coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, &
143 call ax_helm_lx3(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
144 coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, &
147 call ax_helm_lx2(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
148 coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, &
151 call ax_helm_lx(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
152 coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, &
153 coef%G23, msh%nelv, xh%lx)
158 do i = 1, coef%dof%size()
159 w(i,1,1,1) = w(i,1,1,1) + &
160 coef%h2(i,1,1,1) * coef%B(i,1,1,1) * u(i,1,1,1)
180 subroutine ax_helm_lx(w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
181 h1, G11, G22, G33, G12, G13, G23, n, lx)
182 integer,
intent(in) :: n, lx
183 real(kind=
rp),
intent(inout) :: w(lx, lx, lx, n)
184 real(kind=
rp),
intent(in) :: u(lx, lx, lx, n)
185 real(kind=
rp),
intent(in) :: h1(lx, lx, lx, n)
186 real(kind=
rp),
intent(in) :: g11(lx, lx, lx, n)
187 real(kind=
rp),
intent(in) :: g22(lx, lx, lx, n)
188 real(kind=
rp),
intent(in) :: g33(lx, lx, lx, n)
189 real(kind=
rp),
intent(in) :: g12(lx, lx, lx, n)
190 real(kind=
rp),
intent(in) :: g13(lx, lx, lx, n)
191 real(kind=
rp),
intent(in) :: g23(lx, lx, lx, n)
192 real(kind=
rp),
intent(in) :: dx(lx, lx)
193 real(kind=
rp),
intent(in) :: dy(lx, lx)
194 real(kind=
rp),
intent(in) :: dz(lx, lx)
195 real(kind=
rp),
intent(in) :: dxt(lx, lx)
196 real(kind=
rp),
intent(in) :: dyt(lx, lx)
197 real(kind=
rp),
intent(in) :: dzt(lx, lx)
198 real(kind=
rp) :: ur(lx, lx, lx)
199 real(kind=
rp) :: us(lx, lx, lx)
200 real(kind=
rp) :: ut(lx, lx, lx)
201 real(kind=
rp) :: wur(lx, lx, lx)
202 real(kind=
rp) :: wus(lx, lx, lx)
203 real(kind=
rp) :: wut(lx, lx, lx)
205 integer :: e, i, j, k, l
213 tmp = tmp + dx(i,k) * u(k,j,1,e)
224 tmp = tmp + dy(j,l) * u(i,l,k,e)
235 tmp = tmp + dz(k,l) * u(i,1,l,e)
242 ur(i,1,1) = h1(i,1,1,e) &
243 * ( g11(i,1,1,e) * wur(i,1,1) &
244 + g12(i,1,1,e) * wus(i,1,1) &
245 + g13(i,1,1,e) * wut(i,1,1) )
246 us(i,1,1) = h1(i,1,1,e) &
247 * ( g12(i,1,1,e) * wur(i,1,1) &
248 + g22(i,1,1,e) * wus(i,1,1) &
249 + g23(i,1,1,e) * wut(i,1,1) )
250 ut(i,1,1) = h1(i,1,1,e) &
251 * ( g13(i,1,1,e) * wur(i,1,1) &
252 + g23(i,1,1,e) * wus(i,1,1) &
253 + g33(i,1,1,e) * wut(i,1,1) )
260 tmp = tmp + dxt(i,k) * ur(k,j,1)
271 tmp = tmp + dyt(j,l) * us(i,l,k)
273 w(i,j,k,e) = w(i,j,k,e) + tmp
282 tmp = tmp + dzt(k,l) * ut(i,1,l)
284 w(i,1,k,e) = w(i,1,k,e) + tmp
292 subroutine ax_helm_lx14(w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
293 h1, G11, G22, G33, G12, G13, G23, n)
294 integer,
parameter :: lx = 14
295 integer,
intent(in) :: n
296 real(kind=
rp),
intent(inout) :: w(lx, lx, lx, n)
297 real(kind=
rp),
intent(in) :: u(lx, lx, lx, n)
298 real(kind=
rp),
intent(in) :: h1(lx, lx, lx, n)
299 real(kind=
rp),
intent(in) :: g11(lx, lx, lx, n)
300 real(kind=
rp),
intent(in) :: g22(lx, lx, lx, n)
301 real(kind=
rp),
intent(in) :: g33(lx, lx, lx, n)
302 real(kind=
rp),
intent(in) :: g12(lx, lx, lx, n)
303 real(kind=
rp),
intent(in) :: g13(lx, lx, lx, n)
304 real(kind=
rp),
intent(in) :: g23(lx, lx, lx, n)
305 real(kind=
rp),
intent(in) :: dx(lx, lx)
306 real(kind=
rp),
intent(in) :: dy(lx, lx)
307 real(kind=
rp),
intent(in) :: dz(lx, lx)
308 real(kind=
rp),
intent(in) :: dxt(lx, lx)
309 real(kind=
rp),
intent(in) :: dyt(lx, lx)
310 real(kind=
rp),
intent(in) :: dzt(lx, lx)
311 real(kind=
rp) :: ur(lx, lx, lx)
312 real(kind=
rp) :: us(lx, lx, lx)
313 real(kind=
rp) :: ut(lx, lx, lx)
314 real(kind=
rp) :: wur(lx, lx, lx)
315 real(kind=
rp) :: wus(lx, lx, lx)
316 real(kind=
rp) :: wut(lx, lx, lx)
317 integer :: e, i, j, k
323 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
324 + dx(i,2) * u(2,j,1,e) &
325 + dx(i,3) * u(3,j,1,e) &
326 + dx(i,4) * u(4,j,1,e) &
327 + dx(i,5) * u(5,j,1,e) &
328 + dx(i,6) * u(6,j,1,e) &
329 + dx(i,7) * u(7,j,1,e) &
330 + dx(i,8) * u(8,j,1,e) &
331 + dx(i,9) * u(9,j,1,e) &
332 + dx(i,10) * u(10,j,1,e) &
333 + dx(i,11) * u(11,j,1,e) &
334 + dx(i,12) * u(12,j,1,e) &
335 + dx(i,13) * u(13,j,1,e) &
336 + dx(i,14) * u(14,j,1,e)
343 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
344 + dy(j,2) * u(i,2,k,e) &
345 + dy(j,3) * u(i,3,k,e) &
346 + dy(j,4) * u(i,4,k,e) &
347 + dy(j,5) * u(i,5,k,e) &
348 + dy(j,6) * u(i,6,k,e) &
349 + dy(j,7) * u(i,7,k,e) &
350 + dy(j,8) * u(i,8,k,e) &
351 + dy(j,9) * u(i,9,k,e) &
352 + dy(j,10) * u(i,10,k,e) &
353 + dy(j,11) * u(i,11,k,e) &
354 + dy(j,12) * u(i,12,k,e) &
355 + dy(j,13) * u(i,13,k,e) &
356 + dy(j,14) * u(i,14,k,e)
363 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
364 + dz(k,2) * u(i,1,2,e) &
365 + dz(k,3) * u(i,1,3,e) &
366 + dz(k,4) * u(i,1,4,e) &
367 + dz(k,5) * u(i,1,5,e) &
368 + dz(k,6) * u(i,1,6,e) &
369 + dz(k,7) * u(i,1,7,e) &
370 + dz(k,8) * u(i,1,8,e) &
371 + dz(k,9) * u(i,1,9,e) &
372 + dz(k,10) * u(i,1,10,e) &
373 + dz(k,11) * u(i,1,11,e) &
374 + dz(k,12) * u(i,1,12,e) &
375 + dz(k,13) * u(i,1,13,e) &
376 + dz(k,14) * u(i,1,14,e)
381 ur(i,1,1) = h1(i,1,1,e) &
382 * ( g11(i,1,1,e) * wur(i,1,1) &
383 + g12(i,1,1,e) * wus(i,1,1) &
384 + g13(i,1,1,e) * wut(i,1,1) )
385 us(i,1,1) = h1(i,1,1,e) &
386 * ( g12(i,1,1,e) * wur(i,1,1) &
387 + g22(i,1,1,e) * wus(i,1,1) &
388 + g23(i,1,1,e) * wut(i,1,1) )
389 ut(i,1,1) = h1(i,1,1,e) &
390 * ( g13(i,1,1,e) * wur(i,1,1) &
391 + g23(i,1,1,e) * wus(i,1,1) &
392 + g33(i,1,1,e) * wut(i,1,1) )
397 w(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
398 + dxt(i,2) * ur(2,j,1) &
399 + dxt(i,3) * ur(3,j,1) &
400 + dxt(i,4) * ur(4,j,1) &
401 + dxt(i,5) * ur(5,j,1) &
402 + dxt(i,6) * ur(6,j,1) &
403 + dxt(i,7) * ur(7,j,1) &
404 + dxt(i,8) * ur(8,j,1) &
405 + dxt(i,9) * ur(9,j,1) &
406 + dxt(i,10) * ur(10,j,1) &
407 + dxt(i,11) * ur(11,j,1) &
408 + dxt(i,12) * ur(12,j,1) &
409 + dxt(i,13) * ur(13,j,1) &
410 + dxt(i,14) * ur(14,j,1)
417 w(i,j,k,e) = w(i,j,k,e) &
418 + dyt(j,1) * us(i,1,k) &
419 + dyt(j,2) * us(i,2,k) &
420 + dyt(j,3) * us(i,3,k) &
421 + dyt(j,4) * us(i,4,k) &
422 + dyt(j,5) * us(i,5,k) &
423 + dyt(j,6) * us(i,6,k) &
424 + dyt(j,7) * us(i,7,k) &
425 + dyt(j,8) * us(i,8,k) &
426 + dyt(j,9) * us(i,9,k) &
427 + dyt(j,10) * us(i,10,k) &
428 + dyt(j,11) * us(i,11,k) &
429 + dyt(j,12) * us(i,12,k) &
430 + dyt(j,13) * us(i,13,k) &
431 + dyt(j,14) * us(i,14,k)
438 w(i,1,k,e) = w(i,1,k,e) &
439 + dzt(k,1) * ut(i,1,1) &
440 + dzt(k,2) * ut(i,1,2) &
441 + dzt(k,3) * ut(i,1,3) &
442 + dzt(k,4) * ut(i,1,4) &
443 + dzt(k,5) * ut(i,1,5) &
444 + dzt(k,6) * ut(i,1,6) &
445 + dzt(k,7) * ut(i,1,7) &
446 + dzt(k,8) * ut(i,1,8) &
447 + dzt(k,9) * ut(i,1,9) &
448 + dzt(k,10) * ut(i,1,10) &
449 + dzt(k,11) * ut(i,1,11) &
450 + dzt(k,12) * ut(i,1,12) &
451 + dzt(k,13) * ut(i,1,13) &
452 + dzt(k,14) * ut(i,1,14)
460 subroutine ax_helm_lx13(w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
461 h1, G11, G22, G33, G12, G13, G23, n)
462 integer,
parameter :: lx = 13
463 integer,
intent(in) :: n
464 real(kind=
rp),
intent(inout) :: w(lx, lx, lx, n)
465 real(kind=
rp),
intent(in) :: u(lx, lx, lx, n)
466 real(kind=
rp),
intent(in) :: h1(lx, lx, lx, n)
467 real(kind=
rp),
intent(in) :: g11(lx, lx, lx, n)
468 real(kind=
rp),
intent(in) :: g22(lx, lx, lx, n)
469 real(kind=
rp),
intent(in) :: g33(lx, lx, lx, n)
470 real(kind=
rp),
intent(in) :: g12(lx, lx, lx, n)
471 real(kind=
rp),
intent(in) :: g13(lx, lx, lx, n)
472 real(kind=
rp),
intent(in) :: g23(lx, lx, lx, n)
473 real(kind=
rp),
intent(in) :: dx(lx, lx)
474 real(kind=
rp),
intent(in) :: dy(lx, lx)
475 real(kind=
rp),
intent(in) :: dz(lx, lx)
476 real(kind=
rp),
intent(in) :: dxt(lx, lx)
477 real(kind=
rp),
intent(in) :: dyt(lx, lx)
478 real(kind=
rp),
intent(in) :: dzt(lx, lx)
479 real(kind=
rp) :: ur(lx, lx, lx)
480 real(kind=
rp) :: us(lx, lx, lx)
481 real(kind=
rp) :: ut(lx, lx, lx)
482 real(kind=
rp) :: wur(lx, lx, lx)
483 real(kind=
rp) :: wus(lx, lx, lx)
484 real(kind=
rp) :: wut(lx, lx, lx)
485 integer :: e, i, j, k
491 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
492 + dx(i,2) * u(2,j,1,e) &
493 + dx(i,3) * u(3,j,1,e) &
494 + dx(i,4) * u(4,j,1,e) &
495 + dx(i,5) * u(5,j,1,e) &
496 + dx(i,6) * u(6,j,1,e) &
497 + dx(i,7) * u(7,j,1,e) &
498 + dx(i,8) * u(8,j,1,e) &
499 + dx(i,9) * u(9,j,1,e) &
500 + dx(i,10) * u(10,j,1,e) &
501 + dx(i,11) * u(11,j,1,e) &
502 + dx(i,12) * u(12,j,1,e) &
503 + dx(i,13) * u(13,j,1,e)
511 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
512 + dy(j,2) * u(i,2,k,e) &
513 + dy(j,3) * u(i,3,k,e) &
514 + dy(j,4) * u(i,4,k,e) &
515 + dy(j,5) * u(i,5,k,e) &
516 + dy(j,6) * u(i,6,k,e) &
517 + dy(j,7) * u(i,7,k,e) &
518 + dy(j,8) * u(i,8,k,e) &
519 + dy(j,9) * u(i,9,k,e) &
520 + dy(j,10) * u(i,10,k,e) &
521 + dy(j,11) * u(i,11,k,e) &
522 + dy(j,12) * u(i,12,k,e) &
523 + dy(j,13) * u(i,13,k,e)
530 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
531 + dz(k,2) * u(i,1,2,e) &
532 + dz(k,3) * u(i,1,3,e) &
533 + dz(k,4) * u(i,1,4,e) &
534 + dz(k,5) * u(i,1,5,e) &
535 + dz(k,6) * u(i,1,6,e) &
536 + dz(k,7) * u(i,1,7,e) &
537 + dz(k,8) * u(i,1,8,e) &
538 + dz(k,9) * u(i,1,9,e) &
539 + dz(k,10) * u(i,1,10,e) &
540 + dz(k,11) * u(i,1,11,e) &
541 + dz(k,12) * u(i,1,12,e) &
542 + dz(k,13) * u(i,1,13,e)
547 ur(i,1,1) = h1(i,1,1,e) &
548 * ( g11(i,1,1,e) * wur(i,1,1) &
549 + g12(i,1,1,e) * wus(i,1,1) &
550 + g13(i,1,1,e) * wut(i,1,1) )
551 us(i,1,1) = h1(i,1,1,e) &
552 * ( g12(i,1,1,e) * wur(i,1,1) &
553 + g22(i,1,1,e) * wus(i,1,1) &
554 + g23(i,1,1,e) * wut(i,1,1) )
555 ut(i,1,1) = h1(i,1,1,e) &
556 * ( g13(i,1,1,e) * wur(i,1,1) &
557 + g23(i,1,1,e) * wus(i,1,1) &
558 + g33(i,1,1,e) * wut(i,1,1) )
563 w(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
564 + dxt(i,2) * ur(2,j,1) &
565 + dxt(i,3) * ur(3,j,1) &
566 + dxt(i,4) * ur(4,j,1) &
567 + dxt(i,5) * ur(5,j,1) &
568 + dxt(i,6) * ur(6,j,1) &
569 + dxt(i,7) * ur(7,j,1) &
570 + dxt(i,8) * ur(8,j,1) &
571 + dxt(i,9) * ur(9,j,1) &
572 + dxt(i,10) * ur(10,j,1) &
573 + dxt(i,11) * ur(11,j,1) &
574 + dxt(i,12) * ur(12,j,1) &
575 + dxt(i,13) * ur(13,j,1)
582 w(i,j,k,e) = w(i,j,k,e) &
583 + dyt(j,1) * us(i,1,k) &
584 + dyt(j,2) * us(i,2,k) &
585 + dyt(j,3) * us(i,3,k) &
586 + dyt(j,4) * us(i,4,k) &
587 + dyt(j,5) * us(i,5,k) &
588 + dyt(j,6) * us(i,6,k) &
589 + dyt(j,7) * us(i,7,k) &
590 + dyt(j,8) * us(i,8,k) &
591 + dyt(j,9) * us(i,9,k) &
592 + dyt(j,10) * us(i,10,k) &
593 + dyt(j,11) * us(i,11,k) &
594 + dyt(j,12) * us(i,12,k) &
595 + dyt(j,13) * us(i,13,k)
602 w(i,1,k,e) = w(i,1,k,e) &
603 + dzt(k,1) * ut(i,1,1) &
604 + dzt(k,2) * ut(i,1,2) &
605 + dzt(k,3) * ut(i,1,3) &
606 + dzt(k,4) * ut(i,1,4) &
607 + dzt(k,5) * ut(i,1,5) &
608 + dzt(k,6) * ut(i,1,6) &
609 + dzt(k,7) * ut(i,1,7) &
610 + dzt(k,8) * ut(i,1,8) &
611 + dzt(k,9) * ut(i,1,9) &
612 + dzt(k,10) * ut(i,1,10) &
613 + dzt(k,11) * ut(i,1,11) &
614 + dzt(k,12) * ut(i,1,12) &
615 + dzt(k,13) * ut(i,1,13)
623 subroutine ax_helm_lx12(w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
624 h1, G11, G22, G33, G12, G13, G23, n)
625 integer,
parameter :: lx = 12
626 integer,
intent(in) :: n
627 real(kind=
rp),
intent(inout) :: w(lx, lx, lx, n)
628 real(kind=
rp),
intent(in) :: u(lx, lx, lx, n)
629 real(kind=
rp),
intent(in) :: h1(lx, lx, lx, n)
630 real(kind=
rp),
intent(in) :: g11(lx, lx, lx, n)
631 real(kind=
rp),
intent(in) :: g22(lx, lx, lx, n)
632 real(kind=
rp),
intent(in) :: g33(lx, lx, lx, n)
633 real(kind=
rp),
intent(in) :: g12(lx, lx, lx, n)
634 real(kind=
rp),
intent(in) :: g13(lx, lx, lx, n)
635 real(kind=
rp),
intent(in) :: g23(lx, lx, lx, n)
636 real(kind=
rp),
intent(in) :: dx(lx, lx)
637 real(kind=
rp),
intent(in) :: dy(lx, lx)
638 real(kind=
rp),
intent(in) :: dz(lx, lx)
639 real(kind=
rp),
intent(in) :: dxt(lx, lx)
640 real(kind=
rp),
intent(in) :: dyt(lx, lx)
641 real(kind=
rp),
intent(in) :: dzt(lx, lx)
642 real(kind=
rp) :: ur(lx, lx, lx)
643 real(kind=
rp) :: us(lx, lx, lx)
644 real(kind=
rp) :: ut(lx, lx, lx)
645 real(kind=
rp) :: wur(lx, lx, lx)
646 real(kind=
rp) :: wus(lx, lx, lx)
647 real(kind=
rp) :: wut(lx, lx, lx)
648 integer :: e, i, j, k
654 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
655 + dx(i,2) * u(2,j,1,e) &
656 + dx(i,3) * u(3,j,1,e) &
657 + dx(i,4) * u(4,j,1,e) &
658 + dx(i,5) * u(5,j,1,e) &
659 + dx(i,6) * u(6,j,1,e) &
660 + dx(i,7) * u(7,j,1,e) &
661 + dx(i,8) * u(8,j,1,e) &
662 + dx(i,9) * u(9,j,1,e) &
663 + dx(i,10) * u(10,j,1,e) &
664 + dx(i,11) * u(11,j,1,e) &
665 + dx(i,12) * u(12,j,1,e)
672 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
673 + dy(j,2) * u(i,2,k,e) &
674 + dy(j,3) * u(i,3,k,e) &
675 + dy(j,4) * u(i,4,k,e) &
676 + dy(j,5) * u(i,5,k,e) &
677 + dy(j,6) * u(i,6,k,e) &
678 + dy(j,7) * u(i,7,k,e) &
679 + dy(j,8) * u(i,8,k,e) &
680 + dy(j,9) * u(i,9,k,e) &
681 + dy(j,10) * u(i,10,k,e) &
682 + dy(j,11) * u(i,11,k,e) &
683 + dy(j,12) * u(i,12,k,e)
690 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
691 + dz(k,2) * u(i,1,2,e) &
692 + dz(k,3) * u(i,1,3,e) &
693 + dz(k,4) * u(i,1,4,e) &
694 + dz(k,5) * u(i,1,5,e) &
695 + dz(k,6) * u(i,1,6,e) &
696 + dz(k,7) * u(i,1,7,e) &
697 + dz(k,8) * u(i,1,8,e) &
698 + dz(k,9) * u(i,1,9,e) &
699 + dz(k,10) * u(i,1,10,e) &
700 + dz(k,11) * u(i,1,11,e) &
701 + dz(k,12) * u(i,1,12,e)
706 ur(i,1,1) = h1(i,1,1,e) &
707 * ( g11(i,1,1,e) * wur(i,1,1) &
708 + g12(i,1,1,e) * wus(i,1,1) &
709 + g13(i,1,1,e) * wut(i,1,1) )
710 us(i,1,1) = h1(i,1,1,e) &
711 * ( g12(i,1,1,e) * wur(i,1,1) &
712 + g22(i,1,1,e) * wus(i,1,1) &
713 + g23(i,1,1,e) * wut(i,1,1) )
714 ut(i,1,1) = h1(i,1,1,e) &
715 * ( g13(i,1,1,e) * wur(i,1,1) &
716 + g23(i,1,1,e) * wus(i,1,1) &
717 + g33(i,1,1,e) * wut(i,1,1) )
722 w(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
723 + dxt(i,2) * ur(2,j,1) &
724 + dxt(i,3) * ur(3,j,1) &
725 + dxt(i,4) * ur(4,j,1) &
726 + dxt(i,5) * ur(5,j,1) &
727 + dxt(i,6) * ur(6,j,1) &
728 + dxt(i,7) * ur(7,j,1) &
729 + dxt(i,8) * ur(8,j,1) &
730 + dxt(i,9) * ur(9,j,1) &
731 + dxt(i,10) * ur(10,j,1) &
732 + dxt(i,11) * ur(11,j,1) &
733 + dxt(i,12) * ur(12,j,1)
740 w(i,j,k,e) = w(i,j,k,e) &
741 + dyt(j,1) * us(i,1,k) &
742 + dyt(j,2) * us(i,2,k) &
743 + dyt(j,3) * us(i,3,k) &
744 + dyt(j,4) * us(i,4,k) &
745 + dyt(j,5) * us(i,5,k) &
746 + dyt(j,6) * us(i,6,k) &
747 + dyt(j,7) * us(i,7,k) &
748 + dyt(j,8) * us(i,8,k) &
749 + dyt(j,9) * us(i,9,k) &
750 + dyt(j,10) * us(i,10,k) &
751 + dyt(j,11) * us(i,11,k) &
752 + dyt(j,12) * us(i,12,k)
759 w(i,1,k,e) = w(i,1,k,e) &
760 + dzt(k,1) * ut(i,1,1) &
761 + dzt(k,2) * ut(i,1,2) &
762 + dzt(k,3) * ut(i,1,3) &
763 + dzt(k,4) * ut(i,1,4) &
764 + dzt(k,5) * ut(i,1,5) &
765 + dzt(k,6) * ut(i,1,6) &
766 + dzt(k,7) * ut(i,1,7) &
767 + dzt(k,8) * ut(i,1,8) &
768 + dzt(k,9) * ut(i,1,9) &
769 + dzt(k,10) * ut(i,1,10) &
770 + dzt(k,11) * ut(i,1,11) &
771 + dzt(k,12) * ut(i,1,12)
779 subroutine ax_helm_lx11(w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
780 h1, G11, G22, G33, G12, G13, G23, n)
781 integer,
parameter :: lx = 11
782 integer,
intent(in) :: n
783 real(kind=
rp),
intent(inout) :: w(lx, lx, lx, n)
784 real(kind=
rp),
intent(in) :: u(lx, lx, lx, n)
785 real(kind=
rp),
intent(in) :: h1(lx, lx, lx, n)
786 real(kind=
rp),
intent(in) :: g11(lx, lx, lx, n)
787 real(kind=
rp),
intent(in) :: g22(lx, lx, lx, n)
788 real(kind=
rp),
intent(in) :: g33(lx, lx, lx, n)
789 real(kind=
rp),
intent(in) :: g12(lx, lx, lx, n)
790 real(kind=
rp),
intent(in) :: g13(lx, lx, lx, n)
791 real(kind=
rp),
intent(in) :: g23(lx, lx, lx, n)
792 real(kind=
rp),
intent(in) :: dx(lx, lx)
793 real(kind=
rp),
intent(in) :: dy(lx, lx)
794 real(kind=
rp),
intent(in) :: dz(lx, lx)
795 real(kind=
rp),
intent(in) :: dxt(lx, lx)
796 real(kind=
rp),
intent(in) :: dyt(lx, lx)
797 real(kind=
rp),
intent(in) :: dzt(lx, lx)
798 real(kind=
rp) :: ur(lx, lx, lx)
799 real(kind=
rp) :: us(lx, lx, lx)
800 real(kind=
rp) :: ut(lx, lx, lx)
801 real(kind=
rp) :: wur(lx, lx, lx)
802 real(kind=
rp) :: wus(lx, lx, lx)
803 real(kind=
rp) :: wut(lx, lx, lx)
804 integer :: e, i, j, k
810 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
811 + dx(i,2) * u(2,j,1,e) &
812 + dx(i,3) * u(3,j,1,e) &
813 + dx(i,4) * u(4,j,1,e) &
814 + dx(i,5) * u(5,j,1,e) &
815 + dx(i,6) * u(6,j,1,e) &
816 + dx(i,7) * u(7,j,1,e) &
817 + dx(i,8) * u(8,j,1,e) &
818 + dx(i,9) * u(9,j,1,e) &
819 + dx(i,10) * u(10,j,1,e) &
820 + dx(i,11) * u(11,j,1,e)
827 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
828 + dy(j,2) * u(i,2,k,e) &
829 + dy(j,3) * u(i,3,k,e) &
830 + dy(j,4) * u(i,4,k,e) &
831 + dy(j,5) * u(i,5,k,e) &
832 + dy(j,6) * u(i,6,k,e) &
833 + dy(j,7) * u(i,7,k,e) &
834 + dy(j,8) * u(i,8,k,e) &
835 + dy(j,9) * u(i,9,k,e) &
836 + dy(j,10) * u(i,10,k,e) &
837 + dy(j,11) * u(i,11,k,e)
844 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
845 + dz(k,2) * u(i,1,2,e) &
846 + dz(k,3) * u(i,1,3,e) &
847 + dz(k,4) * u(i,1,4,e) &
848 + dz(k,5) * u(i,1,5,e) &
849 + dz(k,6) * u(i,1,6,e) &
850 + dz(k,7) * u(i,1,7,e) &
851 + dz(k,8) * u(i,1,8,e) &
852 + dz(k,9) * u(i,1,9,e) &
853 + dz(k,10) * u(i,1,10,e) &
854 + dz(k,11) * u(i,1,11,e)
859 ur(i,1,1) = h1(i,1,1,e) &
860 * ( g11(i,1,1,e) * wur(i,1,1) &
861 + g12(i,1,1,e) * wus(i,1,1) &
862 + g13(i,1,1,e) * wut(i,1,1) )
863 us(i,1,1) = h1(i,1,1,e) &
864 * ( g12(i,1,1,e) * wur(i,1,1) &
865 + g22(i,1,1,e) * wus(i,1,1) &
866 + g23(i,1,1,e) * wut(i,1,1) )
867 ut(i,1,1) = h1(i,1,1,e) &
868 * ( g13(i,1,1,e) * wur(i,1,1) &
869 + g23(i,1,1,e) * wus(i,1,1) &
870 + g33(i,1,1,e) * wut(i,1,1) )
875 w(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
876 + dxt(i,2) * ur(2,j,1) &
877 + dxt(i,3) * ur(3,j,1) &
878 + dxt(i,4) * ur(4,j,1) &
879 + dxt(i,5) * ur(5,j,1) &
880 + dxt(i,6) * ur(6,j,1) &
881 + dxt(i,7) * ur(7,j,1) &
882 + dxt(i,8) * ur(8,j,1) &
883 + dxt(i,9) * ur(9,j,1) &
884 + dxt(i,10) * ur(10,j,1) &
885 + dxt(i,11) * ur(11,j,1)
892 w(i,j,k,e) = w(i,j,k,e) &
893 + dyt(j,1) * us(i,1,k) &
894 + dyt(j,2) * us(i,2,k) &
895 + dyt(j,3) * us(i,3,k) &
896 + dyt(j,4) * us(i,4,k) &
897 + dyt(j,5) * us(i,5,k) &
898 + dyt(j,6) * us(i,6,k) &
899 + dyt(j,7) * us(i,7,k) &
900 + dyt(j,8) * us(i,8,k) &
901 + dyt(j,9) * us(i,9,k) &
902 + dyt(j,10) * us(i,10,k) &
903 + dyt(j,11) * us(i,11,k)
910 w(i,1,k,e) = w(i,1,k,e) &
911 + dzt(k,1) * ut(i,1,1) &
912 + dzt(k,2) * ut(i,1,2) &
913 + dzt(k,3) * ut(i,1,3) &
914 + dzt(k,4) * ut(i,1,4) &
915 + dzt(k,5) * ut(i,1,5) &
916 + dzt(k,6) * ut(i,1,6) &
917 + dzt(k,7) * ut(i,1,7) &
918 + dzt(k,8) * ut(i,1,8) &
919 + dzt(k,9) * ut(i,1,9) &
920 + dzt(k,10) * ut(i,1,10) &
921 + dzt(k,11) * ut(i,1,11)
929 subroutine ax_helm_lx10(w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
930 h1, G11, G22, G33, G12, G13, G23, n)
931 integer,
parameter :: lx = 10
932 integer,
intent(in) :: n
933 real(kind=
rp),
intent(inout) :: w(lx, lx, lx, n)
934 real(kind=
rp),
intent(in) :: u(lx, lx, lx, n)
935 real(kind=
rp),
intent(in) :: h1(lx, lx, lx, n)
936 real(kind=
rp),
intent(in) :: g11(lx, lx, lx, n)
937 real(kind=
rp),
intent(in) :: g22(lx, lx, lx, n)
938 real(kind=
rp),
intent(in) :: g33(lx, lx, lx, n)
939 real(kind=
rp),
intent(in) :: g12(lx, lx, lx, n)
940 real(kind=
rp),
intent(in) :: g13(lx, lx, lx, n)
941 real(kind=
rp),
intent(in) :: g23(lx, lx, lx, n)
942 real(kind=
rp),
intent(in) :: dx(lx, lx)
943 real(kind=
rp),
intent(in) :: dy(lx, lx)
944 real(kind=
rp),
intent(in) :: dz(lx, lx)
945 real(kind=
rp),
intent(in) :: dxt(lx, lx)
946 real(kind=
rp),
intent(in) :: dyt(lx, lx)
947 real(kind=
rp),
intent(in) :: dzt(lx, lx)
948 real(kind=
rp) :: ur(lx, lx, lx)
949 real(kind=
rp) :: us(lx, lx, lx)
950 real(kind=
rp) :: ut(lx, lx, lx)
951 real(kind=
rp) :: wur(lx, lx, lx)
952 real(kind=
rp) :: wus(lx, lx, lx)
953 real(kind=
rp) :: wut(lx, lx, lx)
954 integer :: e, i, j, k
960 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
961 + dx(i,2) * u(2,j,1,e) &
962 + dx(i,3) * u(3,j,1,e) &
963 + dx(i,4) * u(4,j,1,e) &
964 + dx(i,5) * u(5,j,1,e) &
965 + dx(i,6) * u(6,j,1,e) &
966 + dx(i,7) * u(7,j,1,e) &
967 + dx(i,8) * u(8,j,1,e) &
968 + dx(i,9) * u(9,j,1,e) &
969 + dx(i,10) * u(10,j,1,e)
976 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
977 + dy(j,2) * u(i,2,k,e) &
978 + dy(j,3) * u(i,3,k,e) &
979 + dy(j,4) * u(i,4,k,e) &
980 + dy(j,5) * u(i,5,k,e) &
981 + dy(j,6) * u(i,6,k,e) &
982 + dy(j,7) * u(i,7,k,e) &
983 + dy(j,8) * u(i,8,k,e) &
984 + dy(j,9) * u(i,9,k,e) &
985 + dy(j,10) * u(i,10,k,e)
992 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
993 + dz(k,2) * u(i,1,2,e) &
994 + dz(k,3) * u(i,1,3,e) &
995 + dz(k,4) * u(i,1,4,e) &
996 + dz(k,5) * u(i,1,5,e) &
997 + dz(k,6) * u(i,1,6,e) &
998 + dz(k,7) * u(i,1,7,e) &
999 + dz(k,8) * u(i,1,8,e) &
1000 + dz(k,9) * u(i,1,9,e) &
1001 + dz(k,10) * u(i,1,10,e)
1006 ur(i,1,1) = h1(i,1,1,e) &
1007 * ( g11(i,1,1,e) * wur(i,1,1) &
1008 + g12(i,1,1,e) * wus(i,1,1) &
1009 + g13(i,1,1,e) * wut(i,1,1) )
1010 us(i,1,1) = h1(i,1,1,e) &
1011 * ( g12(i,1,1,e) * wur(i,1,1) &
1012 + g22(i,1,1,e) * wus(i,1,1) &
1013 + g23(i,1,1,e) * wut(i,1,1) )
1014 ut(i,1,1) = h1(i,1,1,e) &
1015 * ( g13(i,1,1,e) * wur(i,1,1) &
1016 + g23(i,1,1,e) * wus(i,1,1) &
1017 + g33(i,1,1,e) * wut(i,1,1) )
1022 w(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
1023 + dxt(i,2) * ur(2,j,1) &
1024 + dxt(i,3) * ur(3,j,1) &
1025 + dxt(i,4) * ur(4,j,1) &
1026 + dxt(i,5) * ur(5,j,1) &
1027 + dxt(i,6) * ur(6,j,1) &
1028 + dxt(i,7) * ur(7,j,1) &
1029 + dxt(i,8) * ur(8,j,1) &
1030 + dxt(i,9) * ur(9,j,1) &
1031 + dxt(i,10) * ur(10,j,1)
1038 w(i,j,k,e) = w(i,j,k,e) &
1039 + dyt(j,1) * us(i,1,k) &
1040 + dyt(j,2) * us(i,2,k) &
1041 + dyt(j,3) * us(i,3,k) &
1042 + dyt(j,4) * us(i,4,k) &
1043 + dyt(j,5) * us(i,5,k) &
1044 + dyt(j,6) * us(i,6,k) &
1045 + dyt(j,7) * us(i,7,k) &
1046 + dyt(j,8) * us(i,8,k) &
1047 + dyt(j,9) * us(i,9,k) &
1048 + dyt(j,10) * us(i,10,k)
1055 w(i,1,k,e) = w(i,1,k,e) &
1056 + dzt(k,1) * ut(i,1,1) &
1057 + dzt(k,2) * ut(i,1,2) &
1058 + dzt(k,3) * ut(i,1,3) &
1059 + dzt(k,4) * ut(i,1,4) &
1060 + dzt(k,5) * ut(i,1,5) &
1061 + dzt(k,6) * ut(i,1,6) &
1062 + dzt(k,7) * ut(i,1,7) &
1063 + dzt(k,8) * ut(i,1,8) &
1064 + dzt(k,9) * ut(i,1,9) &
1065 + dzt(k,10) * ut(i,1,10)
1073 subroutine ax_helm_lx9(w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
1074 h1, G11, G22, G33, G12, G13, G23, n)
1075 integer,
parameter :: lx = 9
1076 integer,
intent(in) :: n
1077 real(kind=
rp),
intent(inout) :: w(lx, lx, lx, n)
1078 real(kind=
rp),
intent(in) :: u(lx, lx, lx, n)
1079 real(kind=
rp),
intent(in) :: h1(lx, lx, lx, n)
1080 real(kind=
rp),
intent(in) :: g11(lx, lx, lx, n)
1081 real(kind=
rp),
intent(in) :: g22(lx, lx, lx, n)
1082 real(kind=
rp),
intent(in) :: g33(lx, lx, lx, n)
1083 real(kind=
rp),
intent(in) :: g12(lx, lx, lx, n)
1084 real(kind=
rp),
intent(in) :: g13(lx, lx, lx, n)
1085 real(kind=
rp),
intent(in) :: g23(lx, lx, lx, n)
1086 real(kind=
rp),
intent(in) :: dx(lx, lx)
1087 real(kind=
rp),
intent(in) :: dy(lx, lx)
1088 real(kind=
rp),
intent(in) :: dz(lx, lx)
1089 real(kind=
rp),
intent(in) :: dxt(lx, lx)
1090 real(kind=
rp),
intent(in) :: dyt(lx, lx)
1091 real(kind=
rp),
intent(in) :: dzt(lx, lx)
1092 real(kind=
rp) :: ur(lx, lx, lx)
1093 real(kind=
rp) :: us(lx, lx, lx)
1094 real(kind=
rp) :: ut(lx, lx, lx)
1095 real(kind=
rp) :: wur(lx, lx, lx)
1096 real(kind=
rp) :: wus(lx, lx, lx)
1097 real(kind=
rp) :: wut(lx, lx, lx)
1098 integer :: e, i, j, k
1104 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
1105 + dx(i,2) * u(2,j,1,e) &
1106 + dx(i,3) * u(3,j,1,e) &
1107 + dx(i,4) * u(4,j,1,e) &
1108 + dx(i,5) * u(5,j,1,e) &
1109 + dx(i,6) * u(6,j,1,e) &
1110 + dx(i,7) * u(7,j,1,e) &
1111 + dx(i,8) * u(8,j,1,e) &
1112 + dx(i,9) * u(9,j,1,e)
1119 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
1120 + dy(j,2) * u(i,2,k,e) &
1121 + dy(j,3) * u(i,3,k,e) &
1122 + dy(j,4) * u(i,4,k,e) &
1123 + dy(j,5) * u(i,5,k,e) &
1124 + dy(j,6) * u(i,6,k,e) &
1125 + dy(j,7) * u(i,7,k,e) &
1126 + dy(j,8) * u(i,8,k,e) &
1127 + dy(j,9) * u(i,9,k,e)
1134 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
1135 + dz(k,2) * u(i,1,2,e) &
1136 + dz(k,3) * u(i,1,3,e) &
1137 + dz(k,4) * u(i,1,4,e) &
1138 + dz(k,5) * u(i,1,5,e) &
1139 + dz(k,6) * u(i,1,6,e) &
1140 + dz(k,7) * u(i,1,7,e) &
1141 + dz(k,8) * u(i,1,8,e) &
1142 + dz(k,9) * u(i,1,9,e)
1147 ur(i,1,1) = h1(i,1,1,e) &
1148 * ( g11(i,1,1,e) * wur(i,1,1) &
1149 + g12(i,1,1,e) * wus(i,1,1) &
1150 + g13(i,1,1,e) * wut(i,1,1) )
1151 us(i,1,1) = h1(i,1,1,e) &
1152 * ( g12(i,1,1,e) * wur(i,1,1) &
1153 + g22(i,1,1,e) * wus(i,1,1) &
1154 + g23(i,1,1,e) * wut(i,1,1) )
1155 ut(i,1,1) = h1(i,1,1,e) &
1156 * ( g13(i,1,1,e) * wur(i,1,1) &
1157 + g23(i,1,1,e) * wus(i,1,1) &
1158 + g33(i,1,1,e) * wut(i,1,1) )
1163 w(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
1164 + dxt(i,2) * ur(2,j,1) &
1165 + dxt(i,3) * ur(3,j,1) &
1166 + dxt(i,4) * ur(4,j,1) &
1167 + dxt(i,5) * ur(5,j,1) &
1168 + dxt(i,6) * ur(6,j,1) &
1169 + dxt(i,7) * ur(7,j,1) &
1170 + dxt(i,8) * ur(8,j,1) &
1171 + dxt(i,9) * ur(9,j,1)
1178 w(i,j,k,e) = w(i,j,k,e) &
1179 + dyt(j,1) * us(i,1,k) &
1180 + dyt(j,2) * us(i,2,k) &
1181 + dyt(j,3) * us(i,3,k) &
1182 + dyt(j,4) * us(i,4,k) &
1183 + dyt(j,5) * us(i,5,k) &
1184 + dyt(j,6) * us(i,6,k) &
1185 + dyt(j,7) * us(i,7,k) &
1186 + dyt(j,8) * us(i,8,k) &
1187 + dyt(j,9) * us(i,9,k)
1194 w(i,1,k,e) = w(i,1,k,e) &
1195 + dzt(k,1) * ut(i,1,1) &
1196 + dzt(k,2) * ut(i,1,2) &
1197 + dzt(k,3) * ut(i,1,3) &
1198 + dzt(k,4) * ut(i,1,4) &
1199 + dzt(k,5) * ut(i,1,5) &
1200 + dzt(k,6) * ut(i,1,6) &
1201 + dzt(k,7) * ut(i,1,7) &
1202 + dzt(k,8) * ut(i,1,8) &
1203 + dzt(k,9) * ut(i,1,9)
1211 subroutine ax_helm_lx8(w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
1212 h1, G11, G22, G33, G12, G13, G23, n)
1213 integer,
parameter :: lx = 8
1214 integer,
intent(in) :: n
1215 real(kind=
rp),
intent(inout) :: w(lx, lx, lx, n)
1216 real(kind=
rp),
intent(in) :: u(lx, lx, lx, n)
1217 real(kind=
rp),
intent(in) :: h1(lx, lx, lx, n)
1218 real(kind=
rp),
intent(in) :: g11(lx, lx, lx, n)
1219 real(kind=
rp),
intent(in) :: g22(lx, lx, lx, n)
1220 real(kind=
rp),
intent(in) :: g33(lx, lx, lx, n)
1221 real(kind=
rp),
intent(in) :: g12(lx, lx, lx, n)
1222 real(kind=
rp),
intent(in) :: g13(lx, lx, lx, n)
1223 real(kind=
rp),
intent(in) :: g23(lx, lx, lx, n)
1224 real(kind=
rp),
intent(in) :: dx(lx, lx)
1225 real(kind=
rp),
intent(in) :: dy(lx, lx)
1226 real(kind=
rp),
intent(in) :: dz(lx, lx)
1227 real(kind=
rp),
intent(in) :: dxt(lx, lx)
1228 real(kind=
rp),
intent(in) :: dyt(lx, lx)
1229 real(kind=
rp),
intent(in) :: dzt(lx, lx)
1230 real(kind=
rp) :: ur(lx, lx, lx)
1231 real(kind=
rp) :: us(lx, lx, lx)
1232 real(kind=
rp) :: ut(lx, lx, lx)
1233 real(kind=
rp) :: wur(lx, lx, lx)
1234 real(kind=
rp) :: wus(lx, lx, lx)
1235 real(kind=
rp) :: wut(lx, lx, lx)
1236 integer :: e, i, j, k
1242 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
1243 + dx(i,2) * u(2,j,1,e) &
1244 + dx(i,3) * u(3,j,1,e) &
1245 + dx(i,4) * u(4,j,1,e) &
1246 + dx(i,5) * u(5,j,1,e) &
1247 + dx(i,6) * u(6,j,1,e) &
1248 + dx(i,7) * u(7,j,1,e) &
1249 + dx(i,8) * u(8,j,1,e)
1256 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
1257 + dy(j,2) * u(i,2,k,e) &
1258 + dy(j,3) * u(i,3,k,e) &
1259 + dy(j,4) * u(i,4,k,e) &
1260 + dy(j,5) * u(i,5,k,e) &
1261 + dy(j,6) * u(i,6,k,e) &
1262 + dy(j,7) * u(i,7,k,e) &
1263 + dy(j,8) * u(i,8,k,e)
1270 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
1271 + dz(k,2) * u(i,1,2,e) &
1272 + dz(k,3) * u(i,1,3,e) &
1273 + dz(k,4) * u(i,1,4,e) &
1274 + dz(k,5) * u(i,1,5,e) &
1275 + dz(k,6) * u(i,1,6,e) &
1276 + dz(k,7) * u(i,1,7,e) &
1277 + dz(k,8) * u(i,1,8,e)
1282 ur(i,1,1) = h1(i,1,1,e) &
1283 * ( g11(i,1,1,e) * wur(i,1,1) &
1284 + g12(i,1,1,e) * wus(i,1,1) &
1285 + g13(i,1,1,e) * wut(i,1,1) )
1286 us(i,1,1) = h1(i,1,1,e) &
1287 * ( g12(i,1,1,e) * wur(i,1,1) &
1288 + g22(i,1,1,e) * wus(i,1,1) &
1289 + g23(i,1,1,e) * wut(i,1,1) )
1290 ut(i,1,1) = h1(i,1,1,e) &
1291 * ( g13(i,1,1,e) * wur(i,1,1) &
1292 + g23(i,1,1,e) * wus(i,1,1) &
1293 + g33(i,1,1,e) * wut(i,1,1) )
1298 w(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
1299 + dxt(i,2) * ur(2,j,1) &
1300 + dxt(i,3) * ur(3,j,1) &
1301 + dxt(i,4) * ur(4,j,1) &
1302 + dxt(i,5) * ur(5,j,1) &
1303 + dxt(i,6) * ur(6,j,1) &
1304 + dxt(i,7) * ur(7,j,1) &
1305 + dxt(i,8) * ur(8,j,1)
1312 w(i,j,k,e) = w(i,j,k,e) &
1313 + dyt(j,1) * us(i,1,k) &
1314 + dyt(j,2) * us(i,2,k) &
1315 + dyt(j,3) * us(i,3,k) &
1316 + dyt(j,4) * us(i,4,k) &
1317 + dyt(j,5) * us(i,5,k) &
1318 + dyt(j,6) * us(i,6,k) &
1319 + dyt(j,7) * us(i,7,k) &
1320 + dyt(j,8) * us(i,8,k)
1327 w(i,1,k,e) = w(i,1,k,e) &
1328 + dzt(k,1) * ut(i,1,1) &
1329 + dzt(k,2) * ut(i,1,2) &
1330 + dzt(k,3) * ut(i,1,3) &
1331 + dzt(k,4) * ut(i,1,4) &
1332 + dzt(k,5) * ut(i,1,5) &
1333 + dzt(k,6) * ut(i,1,6) &
1334 + dzt(k,7) * ut(i,1,7) &
1335 + dzt(k,8) * ut(i,1,8)
1343 subroutine ax_helm_lx7(w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
1344 h1, G11, G22, G33, G12, G13, G23, n)
1345 integer,
parameter :: lx = 7
1346 integer,
intent(in) :: n
1347 real(kind=
rp),
intent(inout) :: w(lx, lx, lx, n)
1348 real(kind=
rp),
intent(in) :: u(lx, lx, lx, n)
1349 real(kind=
rp),
intent(in) :: h1(lx, lx, lx, n)
1350 real(kind=
rp),
intent(in) :: g11(lx, lx, lx, n)
1351 real(kind=
rp),
intent(in) :: g22(lx, lx, lx, n)
1352 real(kind=
rp),
intent(in) :: g33(lx, lx, lx, n)
1353 real(kind=
rp),
intent(in) :: g12(lx, lx, lx, n)
1354 real(kind=
rp),
intent(in) :: g13(lx, lx, lx, n)
1355 real(kind=
rp),
intent(in) :: g23(lx, lx, lx, n)
1356 real(kind=
rp),
intent(in) :: dx(lx, lx)
1357 real(kind=
rp),
intent(in) :: dy(lx, lx)
1358 real(kind=
rp),
intent(in) :: dz(lx, lx)
1359 real(kind=
rp),
intent(in) :: dxt(lx, lx)
1360 real(kind=
rp),
intent(in) :: dyt(lx, lx)
1361 real(kind=
rp),
intent(in) :: dzt(lx, lx)
1362 real(kind=
rp) :: ur(lx, lx, lx)
1363 real(kind=
rp) :: us(lx, lx, lx)
1364 real(kind=
rp) :: ut(lx, lx, lx)
1365 real(kind=
rp) :: wur(lx, lx, lx)
1366 real(kind=
rp) :: wus(lx, lx, lx)
1367 real(kind=
rp) :: wut(lx, lx, lx)
1368 integer :: e, i, j, k
1374 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
1375 + dx(i,2) * u(2,j,1,e) &
1376 + dx(i,3) * u(3,j,1,e) &
1377 + dx(i,4) * u(4,j,1,e) &
1378 + dx(i,5) * u(5,j,1,e) &
1379 + dx(i,6) * u(6,j,1,e) &
1380 + dx(i,7) * u(7,j,1,e)
1387 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
1388 + dy(j,2) * u(i,2,k,e) &
1389 + dy(j,3) * u(i,3,k,e) &
1390 + dy(j,4) * u(i,4,k,e) &
1391 + dy(j,5) * u(i,5,k,e) &
1392 + dy(j,6) * u(i,6,k,e) &
1393 + dy(j,7) * u(i,7,k,e)
1400 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
1401 + dz(k,2) * u(i,1,2,e) &
1402 + dz(k,3) * u(i,1,3,e) &
1403 + dz(k,4) * u(i,1,4,e) &
1404 + dz(k,5) * u(i,1,5,e) &
1405 + dz(k,6) * u(i,1,6,e) &
1406 + dz(k,7) * u(i,1,7,e)
1411 ur(i,1,1) = h1(i,1,1,e) &
1412 * ( g11(i,1,1,e) * wur(i,1,1) &
1413 + g12(i,1,1,e) * wus(i,1,1) &
1414 + g13(i,1,1,e) * wut(i,1,1) )
1415 us(i,1,1) = h1(i,1,1,e) &
1416 * ( g12(i,1,1,e) * wur(i,1,1) &
1417 + g22(i,1,1,e) * wus(i,1,1) &
1418 + g23(i,1,1,e) * wut(i,1,1) )
1419 ut(i,1,1) = h1(i,1,1,e) &
1420 * ( g13(i,1,1,e) * wur(i,1,1) &
1421 + g23(i,1,1,e) * wus(i,1,1) &
1422 + g33(i,1,1,e) * wut(i,1,1) )
1427 w(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
1428 + dxt(i,2) * ur(2,j,1) &
1429 + dxt(i,3) * ur(3,j,1) &
1430 + dxt(i,4) * ur(4,j,1) &
1431 + dxt(i,5) * ur(5,j,1) &
1432 + dxt(i,6) * ur(6,j,1) &
1433 + dxt(i,7) * ur(7,j,1)
1440 w(i,j,k,e) = w(i,j,k,e) &
1441 + dyt(j,1) * us(i,1,k) &
1442 + dyt(j,2) * us(i,2,k) &
1443 + dyt(j,3) * us(i,3,k) &
1444 + dyt(j,4) * us(i,4,k) &
1445 + dyt(j,5) * us(i,5,k) &
1446 + dyt(j,6) * us(i,6,k) &
1447 + dyt(j,7) * us(i,7,k)
1454 w(i,1,k,e) = w(i,1,k,e) &
1455 + dzt(k,1) * ut(i,1,1) &
1456 + dzt(k,2) * ut(i,1,2) &
1457 + dzt(k,3) * ut(i,1,3) &
1458 + dzt(k,4) * ut(i,1,4) &
1459 + dzt(k,5) * ut(i,1,5) &
1460 + dzt(k,6) * ut(i,1,6) &
1461 + dzt(k,7) * ut(i,1,7)
1469 subroutine ax_helm_lx6(w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
1470 h1, G11, G22, G33, G12, G13, G23, n)
1471 integer,
parameter :: lx = 6
1472 integer,
intent(in) :: n
1473 real(kind=
rp),
intent(inout) :: w(lx, lx, lx, n)
1474 real(kind=
rp),
intent(in) :: u(lx, lx, lx, n)
1475 real(kind=
rp),
intent(in) :: h1(lx, lx, lx, n)
1476 real(kind=
rp),
intent(in) :: g11(lx, lx, lx, n)
1477 real(kind=
rp),
intent(in) :: g22(lx, lx, lx, n)
1478 real(kind=
rp),
intent(in) :: g33(lx, lx, lx, n)
1479 real(kind=
rp),
intent(in) :: g12(lx, lx, lx, n)
1480 real(kind=
rp),
intent(in) :: g13(lx, lx, lx, n)
1481 real(kind=
rp),
intent(in) :: g23(lx, lx, lx, n)
1482 real(kind=
rp),
intent(in) :: dx(lx, lx)
1483 real(kind=
rp),
intent(in) :: dy(lx, lx)
1484 real(kind=
rp),
intent(in) :: dz(lx, lx)
1485 real(kind=
rp),
intent(in) :: dxt(lx, lx)
1486 real(kind=
rp),
intent(in) :: dyt(lx, lx)
1487 real(kind=
rp),
intent(in) :: dzt(lx, lx)
1488 real(kind=
rp) :: ur(lx, lx, lx)
1489 real(kind=
rp) :: us(lx, lx, lx)
1490 real(kind=
rp) :: ut(lx, lx, lx)
1491 real(kind=
rp) :: wur(lx, lx, lx)
1492 real(kind=
rp) :: wus(lx, lx, lx)
1493 real(kind=
rp) :: wut(lx, lx, lx)
1494 integer :: e, i, j, k
1500 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
1501 + dx(i,2) * u(2,j,1,e) &
1502 + dx(i,3) * u(3,j,1,e) &
1503 + dx(i,4) * u(4,j,1,e) &
1504 + dx(i,5) * u(5,j,1,e) &
1505 + dx(i,6) * u(6,j,1,e)
1512 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
1513 + dy(j,2) * u(i,2,k,e) &
1514 + dy(j,3) * u(i,3,k,e) &
1515 + dy(j,4) * u(i,4,k,e) &
1516 + dy(j,5) * u(i,5,k,e) &
1517 + dy(j,6) * u(i,6,k,e)
1524 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
1525 + dz(k,2) * u(i,1,2,e) &
1526 + dz(k,3) * u(i,1,3,e) &
1527 + dz(k,4) * u(i,1,4,e) &
1528 + dz(k,5) * u(i,1,5,e) &
1529 + dz(k,6) * u(i,1,6,e)
1534 ur(i,1,1) = h1(i,1,1,e) &
1535 * ( g11(i,1,1,e) * wur(i,1,1) &
1536 + g12(i,1,1,e) * wus(i,1,1) &
1537 + g13(i,1,1,e) * wut(i,1,1) )
1538 us(i,1,1) = h1(i,1,1,e) &
1539 * ( g12(i,1,1,e) * wur(i,1,1) &
1540 + g22(i,1,1,e) * wus(i,1,1) &
1541 + g23(i,1,1,e) * wut(i,1,1) )
1542 ut(i,1,1) = h1(i,1,1,e) &
1543 * ( g13(i,1,1,e) * wur(i,1,1) &
1544 + g23(i,1,1,e) * wus(i,1,1) &
1545 + g33(i,1,1,e) * wut(i,1,1) )
1550 w(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
1551 + dxt(i,2) * ur(2,j,1) &
1552 + dxt(i,3) * ur(3,j,1) &
1553 + dxt(i,4) * ur(4,j,1) &
1554 + dxt(i,5) * ur(5,j,1) &
1555 + dxt(i,6) * ur(6,j,1)
1562 w(i,j,k,e) = w(i,j,k,e) &
1563 + dyt(j,1) * us(i,1,k) &
1564 + dyt(j,2) * us(i,2,k) &
1565 + dyt(j,3) * us(i,3,k) &
1566 + dyt(j,4) * us(i,4,k) &
1567 + dyt(j,5) * us(i,5,k) &
1568 + dyt(j,6) * us(i,6,k)
1575 w(i,1,k,e) = w(i,1,k,e) &
1576 + dzt(k,1) * ut(i,1,1) &
1577 + dzt(k,2) * ut(i,1,2) &
1578 + dzt(k,3) * ut(i,1,3) &
1579 + dzt(k,4) * ut(i,1,4) &
1580 + dzt(k,5) * ut(i,1,5) &
1581 + dzt(k,6) * ut(i,1,6)
1589 subroutine ax_helm_lx5(w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
1590 h1, G11, G22, G33, G12, G13, G23, n)
1591 integer,
parameter :: lx = 5
1592 integer,
intent(in) :: n
1593 real(kind=
rp),
intent(inout) :: w(lx, lx, lx, n)
1594 real(kind=
rp),
intent(in) :: u(lx, lx, lx, n)
1595 real(kind=
rp),
intent(in) :: h1(lx, lx, lx, n)
1596 real(kind=
rp),
intent(in) :: g11(lx, lx, lx, n)
1597 real(kind=
rp),
intent(in) :: g22(lx, lx, lx, n)
1598 real(kind=
rp),
intent(in) :: g33(lx, lx, lx, n)
1599 real(kind=
rp),
intent(in) :: g12(lx, lx, lx, n)
1600 real(kind=
rp),
intent(in) :: g13(lx, lx, lx, n)
1601 real(kind=
rp),
intent(in) :: g23(lx, lx, lx, n)
1602 real(kind=
rp),
intent(in) :: dx(lx, lx)
1603 real(kind=
rp),
intent(in) :: dy(lx, lx)
1604 real(kind=
rp),
intent(in) :: dz(lx, lx)
1605 real(kind=
rp),
intent(in) :: dxt(lx, lx)
1606 real(kind=
rp),
intent(in) :: dyt(lx, lx)
1607 real(kind=
rp),
intent(in) :: dzt(lx, lx)
1608 real(kind=
rp) :: ur(lx, lx, lx)
1609 real(kind=
rp) :: us(lx, lx, lx)
1610 real(kind=
rp) :: ut(lx, lx, lx)
1611 real(kind=
rp) :: wur(lx, lx, lx)
1612 real(kind=
rp) :: wus(lx, lx, lx)
1613 real(kind=
rp) :: wut(lx, lx, lx)
1614 integer :: e, i, j, k
1620 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
1621 + dx(i,2) * u(2,j,1,e) &
1622 + dx(i,3) * u(3,j,1,e) &
1623 + dx(i,4) * u(4,j,1,e) &
1624 + dx(i,5) * u(5,j,1,e)
1631 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
1632 + dy(j,2) * u(i,2,k,e) &
1633 + dy(j,3) * u(i,3,k,e) &
1634 + dy(j,4) * u(i,4,k,e) &
1635 + dy(j,5) * u(i,5,k,e)
1642 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
1643 + dz(k,2) * u(i,1,2,e) &
1644 + dz(k,3) * u(i,1,3,e) &
1645 + dz(k,4) * u(i,1,4,e) &
1646 + dz(k,5) * u(i,1,5,e)
1651 ur(i,1,1) = h1(i,1,1,e) &
1652 * ( g11(i,1,1,e) * wur(i,1,1) &
1653 + g12(i,1,1,e) * wus(i,1,1) &
1654 + g13(i,1,1,e) * wut(i,1,1) )
1655 us(i,1,1) = h1(i,1,1,e) &
1656 * ( g12(i,1,1,e) * wur(i,1,1) &
1657 + g22(i,1,1,e) * wus(i,1,1) &
1658 + g23(i,1,1,e) * wut(i,1,1) )
1659 ut(i,1,1) = h1(i,1,1,e) &
1660 * ( g13(i,1,1,e) * wur(i,1,1) &
1661 + g23(i,1,1,e) * wus(i,1,1) &
1662 + g33(i,1,1,e) * wut(i,1,1) )
1667 w(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
1668 + dxt(i,2) * ur(2,j,1) &
1669 + dxt(i,3) * ur(3,j,1) &
1670 + dxt(i,4) * ur(4,j,1) &
1671 + dxt(i,5) * ur(5,j,1)
1678 w(i,j,k,e) = w(i,j,k,e) &
1679 + dyt(j,1) * us(i,1,k) &
1680 + dyt(j,2) * us(i,2,k) &
1681 + dyt(j,3) * us(i,3,k) &
1682 + dyt(j,4) * us(i,4,k) &
1683 + dyt(j,5) * us(i,5,k)
1690 w(i,1,k,e) = w(i,1,k,e) &
1691 + dzt(k,1) * ut(i,1,1) &
1692 + dzt(k,2) * ut(i,1,2) &
1693 + dzt(k,3) * ut(i,1,3) &
1694 + dzt(k,4) * ut(i,1,4) &
1695 + dzt(k,5) * ut(i,1,5)
1703 subroutine ax_helm_lx4(w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
1704 h1, G11, G22, G33, G12, G13, G23, n)
1705 integer,
parameter :: lx = 4
1706 integer,
intent(in) :: n
1707 real(kind=
rp),
intent(inout) :: w(lx, lx, lx, n)
1708 real(kind=
rp),
intent(in) :: u(lx, lx, lx, n)
1709 real(kind=
rp),
intent(in) :: h1(lx, lx, lx, n)
1710 real(kind=
rp),
intent(in) :: g11(lx, lx, lx, n)
1711 real(kind=
rp),
intent(in) :: g22(lx, lx, lx, n)
1712 real(kind=
rp),
intent(in) :: g33(lx, lx, lx, n)
1713 real(kind=
rp),
intent(in) :: g12(lx, lx, lx, n)
1714 real(kind=
rp),
intent(in) :: g13(lx, lx, lx, n)
1715 real(kind=
rp),
intent(in) :: g23(lx, lx, lx, n)
1716 real(kind=
rp),
intent(in) :: dx(lx, lx)
1717 real(kind=
rp),
intent(in) :: dy(lx, lx)
1718 real(kind=
rp),
intent(in) :: dz(lx, lx)
1719 real(kind=
rp),
intent(in) :: dxt(lx, lx)
1720 real(kind=
rp),
intent(in) :: dyt(lx, lx)
1721 real(kind=
rp),
intent(in) :: dzt(lx, lx)
1722 real(kind=
rp) :: ur(lx, lx, lx)
1723 real(kind=
rp) :: us(lx, lx, lx)
1724 real(kind=
rp) :: ut(lx, lx, lx)
1725 real(kind=
rp) :: wur(lx, lx, lx)
1726 real(kind=
rp) :: wus(lx, lx, lx)
1727 real(kind=
rp) :: wut(lx, lx, lx)
1728 integer :: e, i, j, k
1734 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
1735 + dx(i,2) * u(2,j,1,e) &
1736 + dx(i,3) * u(3,j,1,e) &
1737 + dx(i,4) * u(4,j,1,e)
1744 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
1745 + dy(j,2) * u(i,2,k,e) &
1746 + dy(j,3) * u(i,3,k,e) &
1747 + dy(j,4) * u(i,4,k,e)
1754 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
1755 + dz(k,2) * u(i,1,2,e) &
1756 + dz(k,3) * u(i,1,3,e) &
1757 + dz(k,4) * u(i,1,4,e)
1762 ur(i,1,1) = h1(i,1,1,e) &
1763 * ( g11(i,1,1,e) * wur(i,1,1) &
1764 + g12(i,1,1,e) * wus(i,1,1) &
1765 + g13(i,1,1,e) * wut(i,1,1) )
1766 us(i,1,1) = h1(i,1,1,e) &
1767 * ( g12(i,1,1,e) * wur(i,1,1) &
1768 + g22(i,1,1,e) * wus(i,1,1) &
1769 + g23(i,1,1,e) * wut(i,1,1) )
1770 ut(i,1,1) = h1(i,1,1,e) &
1771 * ( g13(i,1,1,e) * wur(i,1,1) &
1772 + g23(i,1,1,e) * wus(i,1,1) &
1773 + g33(i,1,1,e) * wut(i,1,1) )
1778 w(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
1779 + dxt(i,2) * ur(2,j,1) &
1780 + dxt(i,3) * ur(3,j,1) &
1781 + dxt(i,4) * ur(4,j,1)
1788 w(i,j,k,e) = w(i,j,k,e) &
1789 + dyt(j,1) * us(i,1,k) &
1790 + dyt(j,2) * us(i,2,k) &
1791 + dyt(j,3) * us(i,3,k) &
1792 + dyt(j,4) * us(i,4,k)
1799 w(i,1,k,e) = w(i,1,k,e) &
1800 + dzt(k,1) * ut(i,1,1) &
1801 + dzt(k,2) * ut(i,1,2) &
1802 + dzt(k,3) * ut(i,1,3) &
1803 + dzt(k,4) * ut(i,1,4)
1811 subroutine ax_helm_lx3(w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
1812 h1, G11, G22, G33, G12, G13, G23, n)
1813 integer,
parameter :: lx = 3
1814 integer,
intent(in) :: n
1815 real(kind=
rp),
intent(inout) :: w(lx, lx, lx, n)
1816 real(kind=
rp),
intent(in) :: u(lx, lx, lx, n)
1817 real(kind=
rp),
intent(in) :: h1(lx, lx, lx, n)
1818 real(kind=
rp),
intent(in) :: g11(lx, lx, lx, n)
1819 real(kind=
rp),
intent(in) :: g22(lx, lx, lx, n)
1820 real(kind=
rp),
intent(in) :: g33(lx, lx, lx, n)
1821 real(kind=
rp),
intent(in) :: g12(lx, lx, lx, n)
1822 real(kind=
rp),
intent(in) :: g13(lx, lx, lx, n)
1823 real(kind=
rp),
intent(in) :: g23(lx, lx, lx, n)
1824 real(kind=
rp),
intent(in) :: dx(lx, lx)
1825 real(kind=
rp),
intent(in) :: dy(lx, lx)
1826 real(kind=
rp),
intent(in) :: dz(lx, lx)
1827 real(kind=
rp),
intent(in) :: dxt(lx, lx)
1828 real(kind=
rp),
intent(in) :: dyt(lx, lx)
1829 real(kind=
rp),
intent(in) :: dzt(lx, lx)
1830 real(kind=
rp) :: ur(lx, lx, lx)
1831 real(kind=
rp) :: us(lx, lx, lx)
1832 real(kind=
rp) :: ut(lx, lx, lx)
1833 real(kind=
rp) :: wur(lx, lx, lx)
1834 real(kind=
rp) :: wus(lx, lx, lx)
1835 real(kind=
rp) :: wut(lx, lx, lx)
1836 integer :: e, i, j, k
1842 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
1843 + dx(i,2) * u(2,j,1,e) &
1844 + dx(i,3) * u(3,j,1,e)
1851 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
1852 + dy(j,2) * u(i,2,k,e) &
1853 + dy(j,3) * u(i,3,k,e)
1860 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
1861 + dz(k,2) * u(i,1,2,e) &
1862 + dz(k,3) * u(i,1,3,e)
1867 ur(i,1,1) = h1(i,1,1,e) &
1868 * ( g11(i,1,1,e) * wur(i,1,1) &
1869 + g12(i,1,1,e) * wus(i,1,1) &
1870 + g13(i,1,1,e) * wut(i,1,1) )
1871 us(i,1,1) = h1(i,1,1,e) &
1872 * ( g12(i,1,1,e) * wur(i,1,1) &
1873 + g22(i,1,1,e) * wus(i,1,1) &
1874 + g23(i,1,1,e) * wut(i,1,1) )
1875 ut(i,1,1) = h1(i,1,1,e) &
1876 * ( g13(i,1,1,e) * wur(i,1,1) &
1877 + g23(i,1,1,e) * wus(i,1,1) &
1878 + g33(i,1,1,e) * wut(i,1,1) )
1883 w(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
1884 + dxt(i,2) * ur(2,j,1) &
1885 + dxt(i,3) * ur(3,j,1)
1892 w(i,j,k,e) = w(i,j,k,e) &
1893 + dyt(j,1) * us(i,1,k) &
1894 + dyt(j,2) * us(i,2,k) &
1895 + dyt(j,3) * us(i,3,k)
1902 w(i,1,k,e) = w(i,1,k,e) &
1903 + dzt(k,1) * ut(i,1,1) &
1904 + dzt(k,2) * ut(i,1,2) &
1905 + dzt(k,3) * ut(i,1,3)
1913 subroutine ax_helm_lx2(w, u, Dx, Dy, Dz, Dxt, Dyt, Dzt, &
1914 h1, G11, G22, G33, G12, G13, G23, n)
1915 integer,
parameter :: lx = 2
1916 integer,
intent(in) :: n
1917 real(kind=
rp),
intent(inout) :: w(lx, lx, lx, n)
1918 real(kind=
rp),
intent(in) :: u(lx, lx, lx, n)
1919 real(kind=
rp),
intent(in) :: h1(lx, lx, lx, n)
1920 real(kind=
rp),
intent(in) :: g11(lx, lx, lx, n)
1921 real(kind=
rp),
intent(in) :: g22(lx, lx, lx, n)
1922 real(kind=
rp),
intent(in) :: g33(lx, lx, lx, n)
1923 real(kind=
rp),
intent(in) :: g12(lx, lx, lx, n)
1924 real(kind=
rp),
intent(in) :: g13(lx, lx, lx, n)
1925 real(kind=
rp),
intent(in) :: g23(lx, lx, lx, n)
1926 real(kind=
rp),
intent(in) :: dx(lx, lx)
1927 real(kind=
rp),
intent(in) :: dy(lx, lx)
1928 real(kind=
rp),
intent(in) :: dz(lx, lx)
1929 real(kind=
rp),
intent(in) :: dxt(lx, lx)
1930 real(kind=
rp),
intent(in) :: dyt(lx, lx)
1931 real(kind=
rp),
intent(in) :: dzt(lx, lx)
1932 real(kind=
rp) :: ur(lx, lx, lx)
1933 real(kind=
rp) :: us(lx, lx, lx)
1934 real(kind=
rp) :: ut(lx, lx, lx)
1935 real(kind=
rp) :: wur(lx, lx, lx)
1936 real(kind=
rp) :: wus(lx, lx, lx)
1937 real(kind=
rp) :: wut(lx, lx, lx)
1938 integer :: e, i, j, k
1944 wur(i,j,1) = dx(i,1) * u(1,j,1,e) &
1945 + dx(i,2) * u(2,j,1,e)
1952 wus(i,j,k) = dy(j,1) * u(i,1,k,e) &
1953 + dy(j,2) * u(i,2,k,e)
1960 wut(i,1,k) = dz(k,1) * u(i,1,1,e) &
1961 + dz(k,2) * u(i,1,2,e)
1966 ur(i,1,1) = h1(i,1,1,e) &
1967 * ( g11(i,1,1,e) * wur(i,1,1) &
1968 + g12(i,1,1,e) * wus(i,1,1) &
1969 + g13(i,1,1,e) * wut(i,1,1) )
1970 us(i,1,1) = h1(i,1,1,e) &
1971 * ( g12(i,1,1,e) * wur(i,1,1) &
1972 + g22(i,1,1,e) * wus(i,1,1) &
1973 + g23(i,1,1,e) * wut(i,1,1) )
1974 ut(i,1,1) = h1(i,1,1,e) &
1975 * ( g13(i,1,1,e) * wur(i,1,1) &
1976 + g23(i,1,1,e) * wus(i,1,1) &
1977 + g33(i,1,1,e) * wut(i,1,1) )
1982 w(i,j,1,e) = dxt(i,1) * ur(1,j,1) &
1983 + dxt(i,2) * ur(2,j,1)
1990 w(i,j,k,e) = w(i,j,k,e) &
1991 + dyt(j,1) * us(i,1,k) &
1992 + dyt(j,2) * us(i,2,k)
1999 w(i,1,k,e) = w(i,1,k,e) &
2000 + dzt(k,1) * ut(i,1,1) &
2001 + dzt(k,2) * ut(i,1,2)