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