51    type(
mesh_t), 
intent(in) :: msh
 
   53    type(
coef_t), 
intent(in) :: coef
 
   54    real(kind=
rp), 
intent(inout) :: w(xh%lx, xh%ly, xh%lz, msh%nelv)
 
   55    real(kind=
rp), 
intent(in) :: u(xh%lx, xh%ly, xh%lz, msh%nelv)
 
   59       call sx_ax_helm_lx14(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
 
   60            coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, msh%nelv)
 
   62       call sx_ax_helm_lx13(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
 
   63            coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, msh%nelv)
 
   65       call sx_ax_helm_lx12(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
 
   66            coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, msh%nelv)
 
   68       call sx_ax_helm_lx11(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
 
   69            coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, msh%nelv)
 
   71       call sx_ax_helm_lx10(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
 
   72            coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, msh%nelv)
 
   74       call sx_ax_helm_lx9(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
 
   75            coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, msh%nelv)
 
   77       call sx_ax_helm_lx8(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
 
   78            coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, msh%nelv)
 
   80       call sx_ax_helm_lx7(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
 
   81            coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, msh%nelv)
 
   83       call sx_ax_helm_lx6(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
 
   84            coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, msh%nelv)
 
   86       call sx_ax_helm_lx5(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
 
   87            coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, msh%nelv)
 
   89       call sx_ax_helm_lx4(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
 
   90            coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, msh%nelv)
 
   92       call sx_ax_helm_lx3(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
 
   93            coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, msh%nelv)
 
   95       call sx_ax_helm_lx2(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
 
   96            coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, msh%nelv)
 
   98       call sx_ax_helm_lx(w, u, xh%dx, xh%dy, xh%dz, xh%dxt, xh%dyt, xh%dzt, &
 
   99            coef%h1, coef%G11, coef%G22, coef%G33, coef%G12, coef%G13, coef%G23, &
 
  103    if (coef%ifh2) 
call addcol4 (w,coef%h2,coef%B,u,coef%dof%size())
 
 
  108       h1, G11, G22, G33, G12, G13, G23, n, lx)
 
  109    integer, 
intent(in) :: n, lx
 
  110    real(kind=
rp), 
intent(inout) :: w(lx, lx, lx, n)
 
  111    real(kind=
rp), 
intent(in) :: u(lx, lx, lx, n)
 
  112    real(kind=
rp), 
intent(in) :: h1(lx, lx, lx, n)
 
  113    real(kind=
rp), 
intent(in) :: g11(lx, lx, lx, n)
 
  114    real(kind=
rp), 
intent(in) :: g22(lx, lx, lx, n)
 
  115    real(kind=
rp), 
intent(in) :: g33(lx, lx, lx, n)
 
  116    real(kind=
rp), 
intent(in) :: g12(lx, lx, lx, n)
 
  117    real(kind=
rp), 
intent(in) :: g13(lx, lx, lx, n)
 
  118    real(kind=
rp), 
intent(in) :: g23(lx, lx, lx, n)
 
  119    real(kind=
rp), 
intent(in) :: dx(lx, lx)
 
  120    real(kind=
rp), 
intent(in) :: dy(lx, lx)
 
  121    real(kind=
rp), 
intent(in) :: dz(lx, lx)
 
  122    real(kind=
rp), 
intent(in) :: dxt(lx, lx)
 
  123    real(kind=
rp), 
intent(in) :: dyt(lx, lx)
 
  124    real(kind=
rp), 
intent(in) :: dzt(lx, lx)
 
  125    integer :: e, i, j, k, jj, kk
 
  126    real(kind=
rp) :: ur(lx, lx, lx, n)
 
  127    real(kind=
rp) :: us(lx, lx, lx, n)
 
  128    real(kind=
rp) :: ut(lx, lx, lx, n)
 
  129    real(kind=
rp) :: uur(lx, lx, lx, n)
 
  130    real(kind=
rp) :: uus(lx, lx, lx, n)
 
  131    real(kind=
rp) :: uut(lx, lx, lx, n)
 
  132    real(kind=
rp) :: wr, ws, wt
 
  135       do jj = 1, lx * lx * n
 
  138             wr = wr + dx(i,kk)*u(kk,jj,1,1)
 
  151                   ws = ws + dy(j,kk)*u(i,kk,k,e)
 
  166                   wt = wt + dz(k,kk)*u(i,j,kk,e)
 
  174    do i = 1, n * lx * lx * lx
 
  175       uur(i,1,1,1) = h1(i,1,1,1) * &
 
  176            ( g11(i,1,1,1) * ur(i,1,1,1) &
 
  177            + g12(i,1,1,1) * us(i,1,1,1) &
 
  178            + g13(i,1,1,1) * ut(i,1,1,1))
 
  180       uus(i,1,1,1) = h1(i,1,1,1) * &
 
  181            ( g22(i,1,1,1) * us(i,1,1,1) &
 
  182            + g12(i,1,1,1) * ur(i,1,1,1) &
 
  183            + g23(i,1,1,1) * ut(i,1,1,1) )
 
  185       uut(i,1,1,1) = h1(i,1,1,1) * &
 
  186            ( g33(i,1,1,1) * ut(i,1,1,1) &
 
  187            + g13(i,1,1,1) * ur(i,1,1,1) &
 
  188            + g23(i,1,1,1) * us(i,1,1,1))
 
  192       do jj = 1, lx * lx * n
 
  195             wr = wr + dxt(i,kk) * uur(kk,jj,1,1)
 
  208                   ws = ws + dyt(j, kk)*uus(i,kk,k,e)
 
  210                w(i,j,k,e) = w(i,j,k,e) + ws
 
  223                   wt = wt + dzt(k, kk)*uut(i,j,kk,e)
 
  225                w(i,j,k,e) = w(i,j,k,e) + wt
 
 
  235       h1, G11, G22, G33, G12, G13, G23, n)
 
  236    integer, 
parameter :: lx = 14
 
  237    integer, 
intent(in) :: n
 
  238    real(kind=
rp), 
intent(inout) :: w(lx, lx, lx, n)
 
  239    real(kind=
rp), 
intent(in) :: u(lx, lx, lx, n)
 
  240    real(kind=
rp), 
intent(in) :: h1(lx, lx, lx, n)
 
  241    real(kind=
rp), 
intent(in) :: g11(lx, lx, lx, n)
 
  242    real(kind=
rp), 
intent(in) :: g22(lx, lx, lx, n)
 
  243    real(kind=
rp), 
intent(in) :: g33(lx, lx, lx, n)
 
  244    real(kind=
rp), 
intent(in) :: g12(lx, lx, lx, n)
 
  245    real(kind=
rp), 
intent(in) :: g13(lx, lx, lx, n)
 
  246    real(kind=
rp), 
intent(in) :: g23(lx, lx, lx, n)
 
  247    real(kind=
rp), 
intent(in) :: dx(lx, lx)
 
  248    real(kind=
rp), 
intent(in) :: dy(lx, lx)
 
  249    real(kind=
rp), 
intent(in) :: dz(lx, lx)
 
  250    real(kind=
rp), 
intent(in) :: dxt(lx, lx)
 
  251    real(kind=
rp), 
intent(in) :: dyt(lx, lx)
 
  252    real(kind=
rp), 
intent(in) :: dzt(lx, lx)
 
  253    integer :: e, i, j, k, jj, kk
 
  254    real(kind=
rp) :: ur(lx, lx, lx, n)
 
  255    real(kind=
rp) :: us(lx, lx, lx, n)
 
  256    real(kind=
rp) :: ut(lx, lx, lx, n)
 
  257    real(kind=
rp) :: uur(lx, lx, lx, n)
 
  258    real(kind=
rp) :: uus(lx, lx, lx, n)
 
  259    real(kind=
rp) :: uut(lx, lx, lx, n)
 
  260    real(kind=
rp) :: wr, ws, wt
 
  263       do jj = 1, lx * lx * n
 
  266             wr = wr + dx(i,kk)*u(kk,jj,1,1)
 
  279                   ws = ws + dy(j,kk)*u(i,kk,k,e)
 
  294                   wt = wt + dz(k,kk)*u(i,j,kk,e)
 
  302    do i = 1, n * lx * lx * lx
 
  303       uur(i,1,1,1) = h1(i,1,1,1) * &
 
  304            ( g11(i,1,1,1) * ur(i,1,1,1) &
 
  305            + g12(i,1,1,1) * us(i,1,1,1) &
 
  306            + g13(i,1,1,1) * ut(i,1,1,1))
 
  308       uus(i,1,1,1) = h1(i,1,1,1) * &
 
  309            ( g22(i,1,1,1) * us(i,1,1,1) &
 
  310            + g12(i,1,1,1) * ur(i,1,1,1) &
 
  311            + g23(i,1,1,1) * ut(i,1,1,1) )
 
  313       uut(i,1,1,1) = h1(i,1,1,1) * &
 
  314            ( g33(i,1,1,1) * ut(i,1,1,1) &
 
  315            + g13(i,1,1,1) * ur(i,1,1,1) &
 
  316            + g23(i,1,1,1) * us(i,1,1,1))
 
  320       do jj = 1, lx * lx * n
 
  323             wr = wr + dxt(i,kk) * uur(kk,jj,1,1)
 
  336                   ws = ws + dyt(j, kk)*uus(i,kk,k,e)
 
  338                w(i,j,k,e) = w(i,j,k,e) + ws
 
  351                   wt = wt + dzt(k, kk)*uut(i,j,kk,e)
 
  353                w(i,j,k,e) = w(i,j,k,e) + wt
 
 
  363       h1, G11, G22, G33, G12, G13, G23, n)
 
  364    integer, 
parameter :: lx = 13
 
  365    integer, 
intent(in) :: n
 
  366    real(kind=
rp), 
intent(inout) :: w(lx, lx, lx, n)
 
  367    real(kind=
rp), 
intent(in) :: u(lx, lx, lx, n)
 
  368    real(kind=
rp), 
intent(in) :: h1(lx, lx, lx, n)
 
  369    real(kind=
rp), 
intent(in) :: g11(lx, lx, lx, n)
 
  370    real(kind=
rp), 
intent(in) :: g22(lx, lx, lx, n)
 
  371    real(kind=
rp), 
intent(in) :: g33(lx, lx, lx, n)
 
  372    real(kind=
rp), 
intent(in) :: g12(lx, lx, lx, n)
 
  373    real(kind=
rp), 
intent(in) :: g13(lx, lx, lx, n)
 
  374    real(kind=
rp), 
intent(in) :: g23(lx, lx, lx, n)
 
  375    real(kind=
rp), 
intent(in) :: dx(lx, lx)
 
  376    real(kind=
rp), 
intent(in) :: dy(lx, lx)
 
  377    real(kind=
rp), 
intent(in) :: dz(lx, lx)
 
  378    real(kind=
rp), 
intent(in) :: dxt(lx, lx)
 
  379    real(kind=
rp), 
intent(in) :: dyt(lx, lx)
 
  380    real(kind=
rp), 
intent(in) :: dzt(lx, lx)
 
  381    integer :: e, i, j, k, jj, kk
 
  382    real(kind=
rp) :: ur(lx, lx, lx, n)
 
  383    real(kind=
rp) :: us(lx, lx, lx, n)
 
  384    real(kind=
rp) :: ut(lx, lx, lx, n)
 
  385    real(kind=
rp) :: uur(lx, lx, lx, n)
 
  386    real(kind=
rp) :: uus(lx, lx, lx, n)
 
  387    real(kind=
rp) :: uut(lx, lx, lx, n)
 
  388    real(kind=
rp) :: wr, ws, wt
 
  391       do jj = 1, lx * lx * n
 
  394             wr = wr + dx(i,kk)*u(kk,jj,1,1)
 
  407                   ws = ws + dy(j,kk)*u(i,kk,k,e)
 
  422                   wt = wt + dz(k,kk)*u(i,j,kk,e)
 
  430    do i = 1, n * lx * lx * lx
 
  431       uur(i,1,1,1) = h1(i,1,1,1) * &
 
  432            ( g11(i,1,1,1) * ur(i,1,1,1) &
 
  433            + g12(i,1,1,1) * us(i,1,1,1) &
 
  434            + g13(i,1,1,1) * ut(i,1,1,1))
 
  436       uus(i,1,1,1) = h1(i,1,1,1) * &
 
  437            ( g22(i,1,1,1) * us(i,1,1,1) &
 
  438            + g12(i,1,1,1) * ur(i,1,1,1) &
 
  439            + g23(i,1,1,1) * ut(i,1,1,1) )
 
  441       uut(i,1,1,1) = h1(i,1,1,1) * &
 
  442            ( g33(i,1,1,1) * ut(i,1,1,1) &
 
  443            + g13(i,1,1,1) * ur(i,1,1,1) &
 
  444            + g23(i,1,1,1) * us(i,1,1,1))
 
  448       do jj = 1, lx * lx * n
 
  451             wr = wr + dxt(i,kk) * uur(kk,jj,1,1)
 
  464                   ws = ws + dyt(j, kk)*uus(i,kk,k,e)
 
  466                w(i,j,k,e) = w(i,j,k,e) + ws
 
  479                   wt = wt + dzt(k, kk)*uut(i,j,kk,e)
 
  481                w(i,j,k,e) = w(i,j,k,e) + wt
 
 
  491       h1, G11, G22, G33, G12, G13, G23, n)
 
  492    integer, 
parameter :: lx = 12
 
  493    integer, 
intent(in) :: n
 
  494    real(kind=
rp), 
intent(inout) :: w(lx, lx, lx, n)
 
  495    real(kind=
rp), 
intent(in) :: u(lx, lx, lx, n)
 
  496    real(kind=
rp), 
intent(in) :: h1(lx, lx, lx, n)
 
  497    real(kind=
rp), 
intent(in) :: g11(lx, lx, lx, n)
 
  498    real(kind=
rp), 
intent(in) :: g22(lx, lx, lx, n)
 
  499    real(kind=
rp), 
intent(in) :: g33(lx, lx, lx, n)
 
  500    real(kind=
rp), 
intent(in) :: g12(lx, lx, lx, n)
 
  501    real(kind=
rp), 
intent(in) :: g13(lx, lx, lx, n)
 
  502    real(kind=
rp), 
intent(in) :: g23(lx, lx, lx, n)
 
  503    real(kind=
rp), 
intent(in) :: dx(lx, lx)
 
  504    real(kind=
rp), 
intent(in) :: dy(lx, lx)
 
  505    real(kind=
rp), 
intent(in) :: dz(lx, lx)
 
  506    real(kind=
rp), 
intent(in) :: dxt(lx, lx)
 
  507    real(kind=
rp), 
intent(in) :: dyt(lx, lx)
 
  508    real(kind=
rp), 
intent(in) :: dzt(lx, lx)
 
  509    integer :: e, i, j, k, jj, kk
 
  510    real(kind=
rp) :: ur(lx, lx, lx, n)
 
  511    real(kind=
rp) :: us(lx, lx, lx, n)
 
  512    real(kind=
rp) :: ut(lx, lx, lx, n)
 
  513    real(kind=
rp) :: uur(lx, lx, lx, n)
 
  514    real(kind=
rp) :: uus(lx, lx, lx, n)
 
  515    real(kind=
rp) :: uut(lx, lx, lx, n)
 
  516    real(kind=
rp) :: wr, ws, wt
 
  519       do jj = 1, lx * lx * n
 
  522             wr = wr + dx(i,kk)*u(kk,jj,1,1)
 
  535                   ws = ws + dy(j,kk)*u(i,kk,k,e)
 
  550                   wt = wt + dz(k,kk)*u(i,j,kk,e)
 
  558    do i = 1, n * lx * lx * lx
 
  559       uur(i,1,1,1) = h1(i,1,1,1) * &
 
  560            ( g11(i,1,1,1) * ur(i,1,1,1) &
 
  561            + g12(i,1,1,1) * us(i,1,1,1) &
 
  562            + g13(i,1,1,1) * ut(i,1,1,1))
 
  564       uus(i,1,1,1) = h1(i,1,1,1) * &
 
  565            ( g22(i,1,1,1) * us(i,1,1,1) &
 
  566            + g12(i,1,1,1) * ur(i,1,1,1) &
 
  567            + g23(i,1,1,1) * ut(i,1,1,1) )
 
  569       uut(i,1,1,1) = h1(i,1,1,1) * &
 
  570            ( g33(i,1,1,1) * ut(i,1,1,1) &
 
  571            + g13(i,1,1,1) * ur(i,1,1,1) &
 
  572            + g23(i,1,1,1) * us(i,1,1,1))
 
  576       do jj = 1, lx * lx * n
 
  579             wr = wr + dxt(i,kk) * uur(kk,jj,1,1)
 
  592                   ws = ws + dyt(j, kk)*uus(i,kk,k,e)
 
  594                w(i,j,k,e) = w(i,j,k,e) + ws
 
  607                   wt = wt + dzt(k, kk)*uut(i,j,kk,e)
 
  609                w(i,j,k,e) = w(i,j,k,e) + wt
 
 
  619       h1, G11, G22, G33, G12, G13, G23, n)
 
  620    integer, 
parameter :: lx = 11
 
  621    integer, 
intent(in) :: n
 
  622    real(kind=
rp), 
intent(inout) :: w(lx, lx, lx, n)
 
  623    real(kind=
rp), 
intent(in) :: u(lx, lx, lx, n)
 
  624    real(kind=
rp), 
intent(in) :: h1(lx, lx, lx, n)
 
  625    real(kind=
rp), 
intent(in) :: g11(lx, lx, lx, n)
 
  626    real(kind=
rp), 
intent(in) :: g22(lx, lx, lx, n)
 
  627    real(kind=
rp), 
intent(in) :: g33(lx, lx, lx, n)
 
  628    real(kind=
rp), 
intent(in) :: g12(lx, lx, lx, n)
 
  629    real(kind=
rp), 
intent(in) :: g13(lx, lx, lx, n)
 
  630    real(kind=
rp), 
intent(in) :: g23(lx, lx, lx, n)
 
  631    real(kind=
rp), 
intent(in) :: dx(lx, lx)
 
  632    real(kind=
rp), 
intent(in) :: dy(lx, lx)
 
  633    real(kind=
rp), 
intent(in) :: dz(lx, lx)
 
  634    real(kind=
rp), 
intent(in) :: dxt(lx, lx)
 
  635    real(kind=
rp), 
intent(in) :: dyt(lx, lx)
 
  636    real(kind=
rp), 
intent(in) :: dzt(lx, lx)
 
  637    integer :: e, i, j, k, jj, kk
 
  638    real(kind=
rp) :: ur(lx, lx, lx, n)
 
  639    real(kind=
rp) :: us(lx, lx, lx, n)
 
  640    real(kind=
rp) :: ut(lx, lx, lx, n)
 
  641    real(kind=
rp) :: uur(lx, lx, lx, n)
 
  642    real(kind=
rp) :: uus(lx, lx, lx, n)
 
  643    real(kind=
rp) :: uut(lx, lx, lx, n)
 
  644    real(kind=
rp) :: wr, ws, wt
 
  647       do jj = 1, lx * lx * n
 
  650             wr = wr + dx(i,kk)*u(kk,jj,1,1)
 
  663                   ws = ws + dy(j,kk)*u(i,kk,k,e)
 
  678                   wt = wt + dz(k,kk)*u(i,j,kk,e)
 
  686    do i = 1, n * lx * lx * lx
 
  687       uur(i,1,1,1) = h1(i,1,1,1) * &
 
  688            ( g11(i,1,1,1) * ur(i,1,1,1) &
 
  689            + g12(i,1,1,1) * us(i,1,1,1) &
 
  690            + g13(i,1,1,1) * ut(i,1,1,1))
 
  692       uus(i,1,1,1) = h1(i,1,1,1) * &
 
  693            ( g22(i,1,1,1) * us(i,1,1,1) &
 
  694            + g12(i,1,1,1) * ur(i,1,1,1) &
 
  695            + g23(i,1,1,1) * ut(i,1,1,1) )
 
  697       uut(i,1,1,1) = h1(i,1,1,1) * &
 
  698            ( g33(i,1,1,1) * ut(i,1,1,1) &
 
  699            + g13(i,1,1,1) * ur(i,1,1,1) &
 
  700            + g23(i,1,1,1) * us(i,1,1,1))
 
  704       do jj = 1, lx * lx * n
 
  707             wr = wr + dxt(i,kk) * uur(kk,jj,1,1)
 
  720                   ws = ws + dyt(j, kk)*uus(i,kk,k,e)
 
  722                w(i,j,k,e) = w(i,j,k,e) + ws
 
  735                   wt = wt + dzt(k, kk)*uut(i,j,kk,e)
 
  737                w(i,j,k,e) = w(i,j,k,e) + wt
 
 
  747       h1, G11, G22, G33, G12, G13, G23, n)
 
  748    integer, 
parameter :: lx = 10
 
  749    integer, 
intent(in) :: n
 
  750    real(kind=
rp), 
intent(inout) :: w(lx, lx, lx, n)
 
  751    real(kind=
rp), 
intent(in) :: u(lx, lx, lx, n)
 
  752    real(kind=
rp), 
intent(in) :: h1(lx, lx, lx, n)
 
  753    real(kind=
rp), 
intent(in) :: g11(lx, lx, lx, n)
 
  754    real(kind=
rp), 
intent(in) :: g22(lx, lx, lx, n)
 
  755    real(kind=
rp), 
intent(in) :: g33(lx, lx, lx, n)
 
  756    real(kind=
rp), 
intent(in) :: g12(lx, lx, lx, n)
 
  757    real(kind=
rp), 
intent(in) :: g13(lx, lx, lx, n)
 
  758    real(kind=
rp), 
intent(in) :: g23(lx, lx, lx, n)
 
  759    real(kind=
rp), 
intent(in) :: dx(lx, lx)
 
  760    real(kind=
rp), 
intent(in) :: dy(lx, lx)
 
  761    real(kind=
rp), 
intent(in) :: dz(lx, lx)
 
  762    real(kind=
rp), 
intent(in) :: dxt(lx, lx)
 
  763    real(kind=
rp), 
intent(in) :: dyt(lx, lx)
 
  764    real(kind=
rp), 
intent(in) :: dzt(lx, lx)
 
  765    integer :: e, i, j, k, jj, kk
 
  766    real(kind=
rp) :: ur(lx, lx, lx, n)
 
  767    real(kind=
rp) :: us(lx, lx, lx, n)
 
  768    real(kind=
rp) :: ut(lx, lx, lx, n)
 
  769    real(kind=
rp) :: uur(lx, lx, lx, n)
 
  770    real(kind=
rp) :: uus(lx, lx, lx, n)
 
  771    real(kind=
rp) :: uut(lx, lx, lx, n)
 
  772    real(kind=
rp) :: wr, ws, wt
 
  775       do jj = 1, lx * lx * n
 
  778             wr = wr + dx(i,kk)*u(kk,jj,1,1)
 
  791                   ws = ws + dy(j,kk)*u(i,kk,k,e)
 
  806                   wt = wt + dz(k,kk)*u(i,j,kk,e)
 
  814    do i = 1, n * lx * lx * lx
 
  815       uur(i,1,1,1) = h1(i,1,1,1) * &
 
  816            ( g11(i,1,1,1) * ur(i,1,1,1) &
 
  817            + g12(i,1,1,1) * us(i,1,1,1) &
 
  818            + g13(i,1,1,1) * ut(i,1,1,1))
 
  820       uus(i,1,1,1) = h1(i,1,1,1) * &
 
  821            ( g22(i,1,1,1) * us(i,1,1,1) &
 
  822            + g12(i,1,1,1) * ur(i,1,1,1) &
 
  823            + g23(i,1,1,1) * ut(i,1,1,1) )
 
  825       uut(i,1,1,1) = h1(i,1,1,1) * &
 
  826            ( g33(i,1,1,1) * ut(i,1,1,1) &
 
  827            + g13(i,1,1,1) * ur(i,1,1,1) &
 
  828            + g23(i,1,1,1) * us(i,1,1,1))
 
  832       do jj = 1, lx * lx * n
 
  835             wr = wr + dxt(i,kk) * uur(kk,jj,1,1)
 
  848                   ws = ws + dyt(j, kk)*uus(i,kk,k,e)
 
  850                w(i,j,k,e) = w(i,j,k,e) + ws
 
  863                   wt = wt + dzt(k, kk)*uut(i,j,kk,e)
 
  865                w(i,j,k,e) = w(i,j,k,e) + wt
 
 
  875       h1, G11, G22, G33, G12, G13, G23, n)
 
  876    integer, 
parameter :: lx = 9
 
  877    integer, 
intent(in) :: n
 
  878    real(kind=
rp), 
intent(inout) :: w(lx, lx, lx, n)
 
  879    real(kind=
rp), 
intent(in) :: u(lx, lx, lx, n)
 
  880    real(kind=
rp), 
intent(in) :: h1(lx, lx, lx, n)
 
  881    real(kind=
rp), 
intent(in) :: g11(lx, lx, lx, n)
 
  882    real(kind=
rp), 
intent(in) :: g22(lx, lx, lx, n)
 
  883    real(kind=
rp), 
intent(in) :: g33(lx, lx, lx, n)
 
  884    real(kind=
rp), 
intent(in) :: g12(lx, lx, lx, n)
 
  885    real(kind=
rp), 
intent(in) :: g13(lx, lx, lx, n)
 
  886    real(kind=
rp), 
intent(in) :: g23(lx, lx, lx, n)
 
  887    real(kind=
rp), 
intent(in) :: dx(lx, lx)
 
  888    real(kind=
rp), 
intent(in) :: dy(lx, lx)
 
  889    real(kind=
rp), 
intent(in) :: dz(lx, lx)
 
  890    real(kind=
rp), 
intent(in) :: dxt(lx, lx)
 
  891    real(kind=
rp), 
intent(in) :: dyt(lx, lx)
 
  892    real(kind=
rp), 
intent(in) :: dzt(lx, lx)
 
  893    integer :: e, i, j, k, jj, kk
 
  894    real(kind=
rp) :: ur(lx, lx, lx, n)
 
  895    real(kind=
rp) :: us(lx, lx, lx, n)
 
  896    real(kind=
rp) :: ut(lx, lx, lx, n)
 
  897    real(kind=
rp) :: uur(lx, lx, lx, n)
 
  898    real(kind=
rp) :: uus(lx, lx, lx, n)
 
  899    real(kind=
rp) :: uut(lx, lx, lx, n)
 
  900    real(kind=
rp) :: wr, ws, wt
 
  903       do jj = 1, lx * lx * n
 
  906             wr = wr + dx(i,kk)*u(kk,jj,1,1)
 
  919                   ws = ws + dy(j,kk)*u(i,kk,k,e)
 
  934                   wt = wt + dz(k,kk)*u(i,j,kk,e)
 
  942    do i = 1, n * lx * lx * lx
 
  943       uur(i,1,1,1) = h1(i,1,1,1) * &
 
  944            ( g11(i,1,1,1) * ur(i,1,1,1) &
 
  945            + g12(i,1,1,1) * us(i,1,1,1) &
 
  946            + g13(i,1,1,1) * ut(i,1,1,1))
 
  948       uus(i,1,1,1) = h1(i,1,1,1) * &
 
  949            ( g22(i,1,1,1) * us(i,1,1,1) &
 
  950            + g12(i,1,1,1) * ur(i,1,1,1) &
 
  951            + g23(i,1,1,1) * ut(i,1,1,1) )
 
  953       uut(i,1,1,1) = h1(i,1,1,1) * &
 
  954            ( g33(i,1,1,1) * ut(i,1,1,1) &
 
  955            + g13(i,1,1,1) * ur(i,1,1,1) &
 
  956            + g23(i,1,1,1) * us(i,1,1,1))
 
  960       do jj = 1, lx * lx * n
 
  963             wr = wr + dxt(i,kk) * uur(kk,jj,1,1)
 
  976                   ws = ws + dyt(j, kk)*uus(i,kk,k,e)
 
  978                w(i,j,k,e) = w(i,j,k,e) + ws
 
  991                   wt = wt + dzt(k, kk)*uut(i,j,kk,e)
 
  993                w(i,j,k,e) = w(i,j,k,e) + wt
 
 
 1003       h1, G11, G22, G33, G12, G13, G23, n)
 
 1004    integer, 
parameter :: lx = 8
 
 1005    integer, 
intent(in) :: n
 
 1006    real(kind=
rp), 
intent(inout) :: w(lx, lx, lx, n)
 
 1007    real(kind=
rp), 
intent(in) :: u(lx, lx, lx, n)
 
 1008    real(kind=
rp), 
intent(in) :: h1(lx, lx, lx, n)
 
 1009    real(kind=
rp), 
intent(in) :: g11(lx, lx, lx, n)
 
 1010    real(kind=
rp), 
intent(in) :: g22(lx, lx, lx, n)
 
 1011    real(kind=
rp), 
intent(in) :: g33(lx, lx, lx, n)
 
 1012    real(kind=
rp), 
intent(in) :: g12(lx, lx, lx, n)
 
 1013    real(kind=
rp), 
intent(in) :: g13(lx, lx, lx, n)
 
 1014    real(kind=
rp), 
intent(in) :: g23(lx, lx, lx, n)
 
 1015    real(kind=
rp), 
intent(in) :: dx(lx, lx)
 
 1016    real(kind=
rp), 
intent(in) :: dy(lx, lx)
 
 1017    real(kind=
rp), 
intent(in) :: dz(lx, lx)
 
 1018    real(kind=
rp), 
intent(in) :: dxt(lx, lx)
 
 1019    real(kind=
rp), 
intent(in) :: dyt(lx, lx)
 
 1020    real(kind=
rp), 
intent(in) :: dzt(lx, lx)
 
 1021    integer :: e, i, j, k, jj, kk
 
 1022    real(kind=
rp) :: ur(lx, lx, lx, n)
 
 1023    real(kind=
rp) :: us(lx, lx, lx, n)
 
 1024    real(kind=
rp) :: ut(lx, lx, lx, n)
 
 1025    real(kind=
rp) :: uur(lx, lx, lx, n)
 
 1026    real(kind=
rp) :: uus(lx, lx, lx, n)
 
 1027    real(kind=
rp) :: uut(lx, lx, lx, n)
 
 1028    real(kind=
rp) :: wr, ws, wt
 
 1031       do jj = 1, lx * lx * n
 
 1034             wr = wr + dx(i,kk)*u(kk,jj,1,1)
 
 1047                   ws = ws + dy(j,kk)*u(i,kk,k,e)
 
 1062                   wt = wt + dz(k,kk)*u(i,j,kk,e)
 
 1070    do i = 1, n * lx * lx * lx
 
 1071       uur(i,1,1,1) = h1(i,1,1,1) * &
 
 1072            ( g11(i,1,1,1) * ur(i,1,1,1) &
 
 1073            + g12(i,1,1,1) * us(i,1,1,1) &
 
 1074            + g13(i,1,1,1) * ut(i,1,1,1))
 
 1076       uus(i,1,1,1) = h1(i,1,1,1) * &
 
 1077            ( g22(i,1,1,1) * us(i,1,1,1) &
 
 1078            + g12(i,1,1,1) * ur(i,1,1,1) &
 
 1079            + g23(i,1,1,1) * ut(i,1,1,1) )
 
 1081       uut(i,1,1,1) = h1(i,1,1,1) * &
 
 1082            ( g33(i,1,1,1) * ut(i,1,1,1) &
 
 1083            + g13(i,1,1,1) * ur(i,1,1,1) &
 
 1084            + g23(i,1,1,1) * us(i,1,1,1))
 
 1088       do jj = 1, lx * lx * n
 
 1091             wr = wr + dxt(i,kk) * uur(kk,jj,1,1)
 
 1104                   ws = ws + dyt(j, kk)*uus(i,kk,k,e)
 
 1106                w(i,j,k,e) = w(i,j,k,e) + ws
 
 1119                   wt = wt + dzt(k, kk)*uut(i,j,kk,e)
 
 1121                w(i,j,k,e) = w(i,j,k,e) + wt
 
 
 1131       h1, G11, G22, G33, G12, G13, G23, n)
 
 1132    integer, 
parameter :: lx = 7
 
 1133    integer, 
intent(in) :: n
 
 1134    real(kind=
rp), 
intent(inout) :: w(lx, lx, lx, n)
 
 1135    real(kind=
rp), 
intent(in) :: u(lx, lx, lx, n)
 
 1136    real(kind=
rp), 
intent(in) :: h1(lx, lx, lx, n)
 
 1137    real(kind=
rp), 
intent(in) :: g11(lx, lx, lx, n)
 
 1138    real(kind=
rp), 
intent(in) :: g22(lx, lx, lx, n)
 
 1139    real(kind=
rp), 
intent(in) :: g33(lx, lx, lx, n)
 
 1140    real(kind=
rp), 
intent(in) :: g12(lx, lx, lx, n)
 
 1141    real(kind=
rp), 
intent(in) :: g13(lx, lx, lx, n)
 
 1142    real(kind=
rp), 
intent(in) :: g23(lx, lx, lx, n)
 
 1143    real(kind=
rp), 
intent(in) :: dx(lx, lx)
 
 1144    real(kind=
rp), 
intent(in) :: dy(lx, lx)
 
 1145    real(kind=
rp), 
intent(in) :: dz(lx, lx)
 
 1146    real(kind=
rp), 
intent(in) :: dxt(lx, lx)
 
 1147    real(kind=
rp), 
intent(in) :: dyt(lx, lx)
 
 1148    real(kind=
rp), 
intent(in) :: dzt(lx, lx)
 
 1149    integer :: e, i, j, k, jj, kk
 
 1150    real(kind=
rp) :: ur(lx, lx, lx, n)
 
 1151    real(kind=
rp) :: us(lx, lx, lx, n)
 
 1152    real(kind=
rp) :: ut(lx, lx, lx, n)
 
 1153    real(kind=
rp) :: uur(lx, lx, lx, n)
 
 1154    real(kind=
rp) :: uus(lx, lx, lx, n)
 
 1155    real(kind=
rp) :: uut(lx, lx, lx, n)
 
 1156    real(kind=
rp) :: wr, ws, wt
 
 1159       do jj = 1, lx * lx * n
 
 1162             wr = wr + dx(i,kk)*u(kk,jj,1,1)
 
 1175                   ws = ws + dy(j,kk)*u(i,kk,k,e)
 
 1190                   wt = wt + dz(k,kk)*u(i,j,kk,e)
 
 1198    do i = 1, n * lx * lx * lx
 
 1199       uur(i,1,1,1) = h1(i,1,1,1) * &
 
 1200            ( g11(i,1,1,1) * ur(i,1,1,1) &
 
 1201            + g12(i,1,1,1) * us(i,1,1,1) &
 
 1202            + g13(i,1,1,1) * ut(i,1,1,1))
 
 1204       uus(i,1,1,1) = h1(i,1,1,1) * &
 
 1205            ( g22(i,1,1,1) * us(i,1,1,1) &
 
 1206            + g12(i,1,1,1) * ur(i,1,1,1) &
 
 1207            + g23(i,1,1,1) * ut(i,1,1,1) )
 
 1209       uut(i,1,1,1) = h1(i,1,1,1) * &
 
 1210            ( g33(i,1,1,1) * ut(i,1,1,1) &
 
 1211            + g13(i,1,1,1) * ur(i,1,1,1) &
 
 1212            + g23(i,1,1,1) * us(i,1,1,1))
 
 1216       do jj = 1, lx * lx * n
 
 1219             wr = wr + dxt(i,kk) * uur(kk,jj,1,1)
 
 1232                   ws = ws + dyt(j, kk)*uus(i,kk,k,e)
 
 1234                w(i,j,k,e) = w(i,j,k,e) + ws
 
 1247                   wt = wt + dzt(k, kk)*uut(i,j,kk,e)
 
 1249                w(i,j,k,e) = w(i,j,k,e) + wt
 
 
 1259       h1, G11, G22, G33, G12, G13, G23, n)
 
 1260    integer, 
parameter :: lx = 6
 
 1261    integer, 
intent(in) :: n
 
 1262    real(kind=
rp), 
intent(inout) :: w(lx, lx, lx, n)
 
 1263    real(kind=
rp), 
intent(in) :: u(lx, lx, lx, n)
 
 1264    real(kind=
rp), 
intent(in) :: h1(lx, lx, lx, n)
 
 1265    real(kind=
rp), 
intent(in) :: g11(lx, lx, lx, n)
 
 1266    real(kind=
rp), 
intent(in) :: g22(lx, lx, lx, n)
 
 1267    real(kind=
rp), 
intent(in) :: g33(lx, lx, lx, n)
 
 1268    real(kind=
rp), 
intent(in) :: g12(lx, lx, lx, n)
 
 1269    real(kind=
rp), 
intent(in) :: g13(lx, lx, lx, n)
 
 1270    real(kind=
rp), 
intent(in) :: g23(lx, lx, lx, n)
 
 1271    real(kind=
rp), 
intent(in) :: dx(lx, lx)
 
 1272    real(kind=
rp), 
intent(in) :: dy(lx, lx)
 
 1273    real(kind=
rp), 
intent(in) :: dz(lx, lx)
 
 1274    real(kind=
rp), 
intent(in) :: dxt(lx, lx)
 
 1275    real(kind=
rp), 
intent(in) :: dyt(lx, lx)
 
 1276    real(kind=
rp), 
intent(in) :: dzt(lx, lx)
 
 1277    integer :: e, i, j, k, jj, kk
 
 1278    real(kind=
rp) :: ur(lx, lx, lx, n)
 
 1279    real(kind=
rp) :: us(lx, lx, lx, n)
 
 1280    real(kind=
rp) :: ut(lx, lx, lx, n)
 
 1281    real(kind=
rp) :: uur(lx, lx, lx, n)
 
 1282    real(kind=
rp) :: uus(lx, lx, lx, n)
 
 1283    real(kind=
rp) :: uut(lx, lx, lx, n)
 
 1284    real(kind=
rp) :: wr, ws, wt
 
 1287       do jj = 1, lx * lx * n
 
 1290             wr = wr + dx(i,kk)*u(kk,jj,1,1)
 
 1303                   ws = ws + dy(j,kk)*u(i,kk,k,e)
 
 1318                   wt = wt + dz(k,kk)*u(i,j,kk,e)
 
 1326    do i = 1, n * lx * lx * lx
 
 1327       uur(i,1,1,1) = h1(i,1,1,1) * &
 
 1328            ( g11(i,1,1,1) * ur(i,1,1,1) &
 
 1329            + g12(i,1,1,1) * us(i,1,1,1) &
 
 1330            + g13(i,1,1,1) * ut(i,1,1,1))
 
 1332       uus(i,1,1,1) = h1(i,1,1,1) * &
 
 1333            ( g22(i,1,1,1) * us(i,1,1,1) &
 
 1334            + g12(i,1,1,1) * ur(i,1,1,1) &
 
 1335            + g23(i,1,1,1) * ut(i,1,1,1) )
 
 1337       uut(i,1,1,1) = h1(i,1,1,1) * &
 
 1338            ( g33(i,1,1,1) * ut(i,1,1,1) &
 
 1339            + g13(i,1,1,1) * ur(i,1,1,1) &
 
 1340            + g23(i,1,1,1) * us(i,1,1,1))
 
 1344       do jj = 1, lx * lx * n
 
 1347             wr = wr + dxt(i,kk) * uur(kk,jj,1,1)
 
 1360                   ws = ws + dyt(j, kk)*uus(i,kk,k,e)
 
 1362                w(i,j,k,e) = w(i,j,k,e) + ws
 
 1375                   wt = wt + dzt(k, kk)*uut(i,j,kk,e)
 
 1377                w(i,j,k,e) = w(i,j,k,e) + wt
 
 
 1387       h1, G11, G22, G33, G12, G13, G23, n)
 
 1388    integer, 
parameter :: lx = 5
 
 1389    integer, 
intent(in) :: n
 
 1390    real(kind=
rp), 
intent(inout) :: w(lx, lx, lx, n)
 
 1391    real(kind=
rp), 
intent(in) :: u(lx, lx, lx, n)
 
 1392    real(kind=
rp), 
intent(in) :: h1(lx, lx, lx, n)
 
 1393    real(kind=
rp), 
intent(in) :: g11(lx, lx, lx, n)
 
 1394    real(kind=
rp), 
intent(in) :: g22(lx, lx, lx, n)
 
 1395    real(kind=
rp), 
intent(in) :: g33(lx, lx, lx, n)
 
 1396    real(kind=
rp), 
intent(in) :: g12(lx, lx, lx, n)
 
 1397    real(kind=
rp), 
intent(in) :: g13(lx, lx, lx, n)
 
 1398    real(kind=
rp), 
intent(in) :: g23(lx, lx, lx, n)
 
 1399    real(kind=
rp), 
intent(in) :: dx(lx, lx)
 
 1400    real(kind=
rp), 
intent(in) :: dy(lx, lx)
 
 1401    real(kind=
rp), 
intent(in) :: dz(lx, lx)
 
 1402    real(kind=
rp), 
intent(in) :: dxt(lx, lx)
 
 1403    real(kind=
rp), 
intent(in) :: dyt(lx, lx)
 
 1404    real(kind=
rp), 
intent(in) :: dzt(lx, lx)
 
 1405    integer :: e, i, j, k, jj, kk
 
 1406    real(kind=
rp) :: ur(lx, lx, lx, n)
 
 1407    real(kind=
rp) :: us(lx, lx, lx, n)
 
 1408    real(kind=
rp) :: ut(lx, lx, lx, n)
 
 1409    real(kind=
rp) :: uur(lx, lx, lx, n)
 
 1410    real(kind=
rp) :: uus(lx, lx, lx, n)
 
 1411    real(kind=
rp) :: uut(lx, lx, lx, n)
 
 1412    real(kind=
rp) :: wr, ws, wt
 
 1415       do jj = 1, lx * lx * n
 
 1418             wr = wr + dx(i,kk)*u(kk,jj,1,1)
 
 1431                   ws = ws + dy(j,kk)*u(i,kk,k,e)
 
 1446                   wt = wt + dz(k,kk)*u(i,j,kk,e)
 
 1454    do i = 1, n * lx * lx * lx
 
 1455       uur(i,1,1,1) = h1(i,1,1,1) * &
 
 1456            ( g11(i,1,1,1) * ur(i,1,1,1) &
 
 1457            + g12(i,1,1,1) * us(i,1,1,1) &
 
 1458            + g13(i,1,1,1) * ut(i,1,1,1))
 
 1460       uus(i,1,1,1) = h1(i,1,1,1) * &
 
 1461            ( g22(i,1,1,1) * us(i,1,1,1) &
 
 1462            + g12(i,1,1,1) * ur(i,1,1,1) &
 
 1463            + g23(i,1,1,1) * ut(i,1,1,1) )
 
 1465       uut(i,1,1,1) = h1(i,1,1,1) * &
 
 1466            ( g33(i,1,1,1) * ut(i,1,1,1) &
 
 1467            + g13(i,1,1,1) * ur(i,1,1,1) &
 
 1468            + g23(i,1,1,1) * us(i,1,1,1))
 
 1472       do jj = 1, lx * lx * n
 
 1475             wr = wr + dxt(i,kk) * uur(kk,jj,1,1)
 
 1488                   ws = ws + dyt(j, kk)*uus(i,kk,k,e)
 
 1490                w(i,j,k,e) = w(i,j,k,e) + ws
 
 1503                   wt = wt + dzt(k, kk)*uut(i,j,kk,e)
 
 1505                w(i,j,k,e) = w(i,j,k,e) + wt
 
 
 1515       h1, G11, G22, G33, G12, G13, G23, n)
 
 1516    integer, 
parameter :: lx = 4
 
 1517    integer, 
intent(in) :: n
 
 1518    real(kind=
rp), 
intent(inout) :: w(lx, lx, lx, n)
 
 1519    real(kind=
rp), 
intent(in) :: u(lx, lx, lx, n)
 
 1520    real(kind=
rp), 
intent(in) :: h1(lx, lx, lx, n)
 
 1521    real(kind=
rp), 
intent(in) :: g11(lx, lx, lx, n)
 
 1522    real(kind=
rp), 
intent(in) :: g22(lx, lx, lx, n)
 
 1523    real(kind=
rp), 
intent(in) :: g33(lx, lx, lx, n)
 
 1524    real(kind=
rp), 
intent(in) :: g12(lx, lx, lx, n)
 
 1525    real(kind=
rp), 
intent(in) :: g13(lx, lx, lx, n)
 
 1526    real(kind=
rp), 
intent(in) :: g23(lx, lx, lx, n)
 
 1527    real(kind=
rp), 
intent(in) :: dx(lx, lx)
 
 1528    real(kind=
rp), 
intent(in) :: dy(lx, lx)
 
 1529    real(kind=
rp), 
intent(in) :: dz(lx, lx)
 
 1530    real(kind=
rp), 
intent(in) :: dxt(lx, lx)
 
 1531    real(kind=
rp), 
intent(in) :: dyt(lx, lx)
 
 1532    real(kind=
rp), 
intent(in) :: dzt(lx, lx)
 
 1533    integer :: e, i, j, k, jj
 
 1534    real(kind=
rp) :: ur(lx, lx, lx, n)
 
 1535    real(kind=
rp) :: us(lx, lx, lx, n)
 
 1536    real(kind=
rp) :: ut(lx, lx, lx, n)
 
 1537    real(kind=
rp) :: uur(lx, lx, lx, n)
 
 1538    real(kind=
rp) :: uus(lx, lx, lx, n)
 
 1539    real(kind=
rp) :: uut(lx, lx, lx, n)
 
 1542       do jj = 1, lx * lx * n
 
 1543          ur(i,jj,1,1) = dx(i,1)*u(1,jj,1,1) &
 
 1544                       + dx(i,2)*u(2,jj,1,1) &
 
 1545                       + dx(i,3)*u(3,jj,1,1) &
 
 1546                       + dx(i,4)*u(4,jj,1,1)
 
 1555                us(i,j,k,e) = dy(j,1) * u(i,1,k,e) &
 
 1556                            + dy(j,2) * u(i,2,k,e) &
 
 1557                            + dy(j,3) * u(i,3,k,e) &
 
 1558                            + dy(j,4) * u(i,4,k,e)
 
 1570                ut(i,j,k,e) = dz(k,1) * u(i,j,1,e) &
 
 1571                            + dz(k,2) * u(i,j,2,e) &
 
 1572                            + dz(k,3) * u(i,j,3,e) &
 
 1573                            + dz(k,4) * u(i,j,4,e)
 
 1579    do i = 1, n * lx * lx * lx
 
 1580       uur(i,1,1,1) = h1(i,1,1,1) * &
 
 1581            ( g11(i,1,1,1) * ur(i,1,1,1) &
 
 1582            + g12(i,1,1,1) * us(i,1,1,1) &
 
 1583            + g13(i,1,1,1) * ut(i,1,1,1))
 
 1585       uus(i,1,1,1) = h1(i,1,1,1) * &
 
 1586            ( g22(i,1,1,1) * us(i,1,1,1) &
 
 1587            + g12(i,1,1,1) * ur(i,1,1,1) &
 
 1588            + g23(i,1,1,1) * ut(i,1,1,1) )
 
 1590       uut(i,1,1,1) = h1(i,1,1,1) * &
 
 1591            ( g33(i,1,1,1) * ut(i,1,1,1) &
 
 1592            + g13(i,1,1,1) * ur(i,1,1,1) &
 
 1593            + g23(i,1,1,1) * us(i,1,1,1))
 
 1597       do jj = 1, lx * lx * n
 
 1598          w(i,jj,1,1) = dxt(i,1) * uur(1,jj,1,1) &
 
 1599                      + dxt(i,2) * uur(2,jj,1,1) &
 
 1600                      + dxt(i,3) * uur(3,jj,1,1) &
 
 1601                      + dxt(i,4) * uur(4,jj,1,1)
 
 1609                w(i,j,k,e) = w(i,j,k,e) + dyt(j,1) * uus(i,1,k,e) &
 
 1610                                        + dyt(j,2) * uus(i,2,k,e) &
 
 1611                                        + dyt(j,3) * uus(i,3,k,e) &
 
 1612                                        + dyt(j,4) * uus(i,4,k,e)
 
 1622                w(i,j,k,e) = w(i,j,k,e) + dzt(k,1) * uut(i,j,1,e) &
 
 1623                                        + dzt(k,2) * uut(i,j,2,e) &
 
 1624                                        + dzt(k,3) * uut(i,j,3,e) &
 
 1625                                        + dzt(k,4) * uut(i,j,4,e)
 
 
 1634       h1, G11, G22, G33, G12, G13, G23, n)
 
 1635    integer, 
parameter :: lx = 3
 
 1636    integer, 
intent(in) :: n
 
 1637    real(kind=
rp), 
intent(inout) :: w(lx, lx, lx, n)
 
 1638    real(kind=
rp), 
intent(in) :: u(lx, lx, lx, n)
 
 1639    real(kind=
rp), 
intent(in) :: h1(lx, lx, lx, n)
 
 1640    real(kind=
rp), 
intent(in) :: g11(lx, lx, lx, n)
 
 1641    real(kind=
rp), 
intent(in) :: g22(lx, lx, lx, n)
 
 1642    real(kind=
rp), 
intent(in) :: g33(lx, lx, lx, n)
 
 1643    real(kind=
rp), 
intent(in) :: g12(lx, lx, lx, n)
 
 1644    real(kind=
rp), 
intent(in) :: g13(lx, lx, lx, n)
 
 1645    real(kind=
rp), 
intent(in) :: g23(lx, lx, lx, n)
 
 1646    real(kind=
rp), 
intent(in) :: dx(lx, lx)
 
 1647    real(kind=
rp), 
intent(in) :: dy(lx, lx)
 
 1648    real(kind=
rp), 
intent(in) :: dz(lx, lx)
 
 1649    real(kind=
rp), 
intent(in) :: dxt(lx, lx)
 
 1650    real(kind=
rp), 
intent(in) :: dyt(lx, lx)
 
 1651    real(kind=
rp), 
intent(in) :: dzt(lx, lx)
 
 1652    integer :: e, i, j, k, jj
 
 1653    real(kind=
rp) :: ur(lx, lx, lx, n)
 
 1654    real(kind=
rp) :: us(lx, lx, lx, n)
 
 1655    real(kind=
rp) :: ut(lx, lx, lx, n)
 
 1656    real(kind=
rp) :: uur(lx, lx, lx, n)
 
 1657    real(kind=
rp) :: uus(lx, lx, lx, n)
 
 1658    real(kind=
rp) :: uut(lx, lx, lx, n)
 
 1661       do jj = 1, lx * lx * n
 
 1662          ur(i,jj,1,1) = dx(i,1)*u(1,jj,1,1) &
 
 1663                       + dx(i,2)*u(2,jj,1,1) &
 
 1664                       + dx(i,3)*u(3,jj,1,1)
 
 1673                us(i,j,k,e) = dy(j,1) * u(i,1,k,e) &
 
 1674                            + dy(j,2) * u(i,2,k,e) &
 
 1675                            + dy(j,3) * u(i,3,k,e)
 
 1687                ut(i,j,k,e) = dz(k,1) * u(i,j,1,e) &
 
 1688                            + dz(k,2) * u(i,j,2,e) &
 
 1689                            + dz(k,3) * u(i,j,3,e)
 
 1695    do i = 1, n * lx * lx * lx
 
 1696       uur(i,1,1,1) = h1(i,1,1,1) * &
 
 1697            ( g11(i,1,1,1) * ur(i,1,1,1) &
 
 1698            + g12(i,1,1,1) * us(i,1,1,1) &
 
 1699            + g13(i,1,1,1) * ut(i,1,1,1))
 
 1701       uus(i,1,1,1) = h1(i,1,1,1) * &
 
 1702            ( g22(i,1,1,1) * us(i,1,1,1) &
 
 1703            + g12(i,1,1,1) * ur(i,1,1,1) &
 
 1704            + g23(i,1,1,1) * ut(i,1,1,1) )
 
 1706       uut(i,1,1,1) = h1(i,1,1,1) * &
 
 1707            ( g33(i,1,1,1) * ut(i,1,1,1) &
 
 1708            + g13(i,1,1,1) * ur(i,1,1,1) &
 
 1709            + g23(i,1,1,1) * us(i,1,1,1))
 
 1713       do jj = 1, lx * lx * n
 
 1714          w(i,jj,1,1) = dxt(i,1) * uur(1,jj,1,1) &
 
 1715                      + dxt(i,2) * uur(2,jj,1,1) &
 
 1716                      + dxt(i,3) * uur(3,jj,1,1)
 
 1724                w(i,j,k,e) = w(i,j,k,e) + dyt(j,1) * uus(i,1,k,e) &
 
 1725                                        + dyt(j,2) * uus(i,2,k,e) &
 
 1726                                        + dyt(j,3) * uus(i,3,k,e)
 
 1736                w(i,j,k,e) = w(i,j,k,e) + dzt(k,1) * uut(i,j,1,e) &
 
 1737                                        + dzt(k,2) * uut(i,j,2,e) &
 
 1738                                        + dzt(k,3) * uut(i,j,3,e)
 
 
 1747       h1, G11, G22, G33, G12, G13, G23, n)
 
 1748    integer, 
parameter :: lx = 2
 
 1749    integer, 
intent(in) :: n
 
 1750    real(kind=
rp), 
intent(inout) :: w(lx, lx, lx, n)
 
 1751    real(kind=
rp), 
intent(in) :: u(lx, lx, lx, n)
 
 1752    real(kind=
rp), 
intent(in) :: h1(lx, lx, lx, n)
 
 1753    real(kind=
rp), 
intent(in) :: g11(lx, lx, lx, n)
 
 1754    real(kind=
rp), 
intent(in) :: g22(lx, lx, lx, n)
 
 1755    real(kind=
rp), 
intent(in) :: g33(lx, lx, lx, n)
 
 1756    real(kind=
rp), 
intent(in) :: g12(lx, lx, lx, n)
 
 1757    real(kind=
rp), 
intent(in) :: g13(lx, lx, lx, n)
 
 1758    real(kind=
rp), 
intent(in) :: g23(lx, lx, lx, n)
 
 1759    real(kind=
rp), 
intent(in) :: dx(lx, lx)
 
 1760    real(kind=
rp), 
intent(in) :: dy(lx, lx)
 
 1761    real(kind=
rp), 
intent(in) :: dz(lx, lx)
 
 1762    real(kind=
rp), 
intent(in) :: dxt(lx, lx)
 
 1763    real(kind=
rp), 
intent(in) :: dyt(lx, lx)
 
 1764    real(kind=
rp), 
intent(in) :: dzt(lx, lx)
 
 1765    integer :: e, i, j, k, jj
 
 1766    real(kind=
rp) :: ur(lx, lx, lx, n)
 
 1767    real(kind=
rp) :: us(lx, lx, lx, n)
 
 1768    real(kind=
rp) :: ut(lx, lx, lx, n)
 
 1769    real(kind=
rp) :: uur(lx, lx, lx, n)
 
 1770    real(kind=
rp) :: uus(lx, lx, lx, n)
 
 1771    real(kind=
rp) :: uut(lx, lx, lx, n)
 
 1774       do jj = 1, lx * lx * n
 
 1775          ur(i,jj,1,1) = dx(i,1) * u(1,jj,1,1) &
 
 1776                       + dx(i,2) * u(2,jj,1,1)
 
 1784                us(i,j,k,e) = dy(j,1) * u(i,1,k,e) &
 
 1785                            + dy(j,2) * u(i,2,k,e)
 
 1795                ut(i,j,k,e) = dz(k,1) * u(i,j,1,e) &
 
 1796                            + dz(k,2) * u(i,j,2,e)
 
 1802    do i = 1, n * lx * lx * lx
 
 1803       uur(i,1,1,1) = h1(i,1,1,1) * &
 
 1804            ( g11(i,1,1,1) * ur(i,1,1,1) &
 
 1805            + g12(i,1,1,1) * us(i,1,1,1) &
 
 1806            + g13(i,1,1,1) * ut(i,1,1,1))
 
 1808       uus(i,1,1,1) = h1(i,1,1,1) * &
 
 1809            ( g22(i,1,1,1) * us(i,1,1,1) &
 
 1810            + g12(i,1,1,1) * ur(i,1,1,1) &
 
 1811            + g23(i,1,1,1) * ut(i,1,1,1) )
 
 1813       uut(i,1,1,1) = h1(i,1,1,1) * &
 
 1814            ( g33(i,1,1,1) * ut(i,1,1,1) &
 
 1815            + g13(i,1,1,1) * ur(i,1,1,1) &
 
 1816            + g23(i,1,1,1) * us(i,1,1,1))
 
 1820       do jj = 1, lx * lx * n
 
 1821          w(i,jj,1,1) = dxt(i,1) * uur(1,jj,1,1) &
 
 1822                      + dxt(i,2) * uur(2,jj,1,1)
 
 1830                w(i,j,k,e) = w(i,j,k,e) + dyt(j,1) * uus(i,1,k,e) &
 
 1831                                        + dyt(j,2) * uus(i,2,k,e)
 
 1841                w(i,j,k,e) = w(i,j,k,e) + dzt(k,1) * uut(i,j,1,e) &
 
 1842                                        + dzt(k,2) * uut(i,j,2,e)