39  module subroutine opr_sx_conv1(du, u, vx, vy, vz, xh, coef, nelv)
 
   40    type(space_t), 
intent(in) :: Xh
 
   41    type(coef_t), 
intent(in) :: coef
 
   42    integer, 
intent(in) :: nelv
 
   43    real(kind=rp), 
intent(inout) :: du(xh%lxyz, nelv)
 
   44    real(kind=rp), 
intent(inout) :: u(xh%lx, xh%ly, xh%lz, nelv)
 
   45    real(kind=rp), 
intent(inout) :: vx(xh%lx, xh%ly, xh%lz, nelv)
 
   46    real(kind=rp), 
intent(inout) :: vy(xh%lx, xh%ly, xh%lz, nelv)
 
   47    real(kind=rp), 
intent(inout) :: vz(xh%lx, xh%ly, xh%lz, nelv)
 
   51       call sx_conv1_lx14(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
 
   52            coef%drdx, coef%dsdx, coef%dtdx, &
 
   53            coef%drdy, coef%dsdy, coef%dtdy, &
 
   54            coef%drdz, coef%dsdz, coef%dtdz, &
 
   57       call sx_conv1_lx13(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
 
   58            coef%drdx, coef%dsdx, coef%dtdx, &
 
   59            coef%drdy, coef%dsdy, coef%dtdy, &
 
   60            coef%drdz, coef%dsdz, coef%dtdz, &
 
   63       call sx_conv1_lx12(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
 
   64            coef%drdx, coef%dsdx, coef%dtdx, &
 
   65            coef%drdy, coef%dsdy, coef%dtdy, &
 
   66            coef%drdz, coef%dsdz, coef%dtdz, &
 
   69       call sx_conv1_lx11(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
 
   70            coef%drdx, coef%dsdx, coef%dtdx, &
 
   71            coef%drdy, coef%dsdy, coef%dtdy, &
 
   72            coef%drdz, coef%dsdz, coef%dtdz, &
 
   75       call sx_conv1_lx10(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
 
   76            coef%drdx, coef%dsdx, coef%dtdx, &
 
   77            coef%drdy, coef%dsdy, coef%dtdy, &
 
   78            coef%drdz, coef%dsdz, coef%dtdz, &
 
   81       call sx_conv1_lx9(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
 
   82            coef%drdx, coef%dsdx, coef%dtdx, &
 
   83            coef%drdy, coef%dsdy, coef%dtdy, &
 
   84            coef%drdz, coef%dsdz, coef%dtdz, &
 
   87       call sx_conv1_lx8(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
 
   88            coef%drdx, coef%dsdx, coef%dtdx, &
 
   89            coef%drdy, coef%dsdy, coef%dtdy, &
 
   90            coef%drdz, coef%dsdz, coef%dtdz, &
 
   93       call sx_conv1_lx7(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
 
   94            coef%drdx, coef%dsdx, coef%dtdx, &
 
   95            coef%drdy, coef%dsdy, coef%dtdy, &
 
   96            coef%drdz, coef%dsdz, coef%dtdz, &
 
   99       call sx_conv1_lx6(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
 
  100            coef%drdx, coef%dsdx, coef%dtdx, &
 
  101            coef%drdy, coef%dsdy, coef%dtdy, &
 
  102            coef%drdz, coef%dsdz, coef%dtdz, &
 
  105       call sx_conv1_lx5(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
 
  106            coef%drdx, coef%dsdx, coef%dtdx, &
 
  107            coef%drdy, coef%dsdy, coef%dtdy, &
 
  108            coef%drdz, coef%dsdz, coef%dtdz, &
 
  111       call sx_conv1_lx4(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
 
  112            coef%drdx, coef%dsdx, coef%dtdx, &
 
  113            coef%drdy, coef%dsdy, coef%dtdy, &
 
  114            coef%drdz, coef%dsdz, coef%dtdz, &
 
  117       call sx_conv1_lx3(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
 
  118            coef%drdx, coef%dsdx, coef%dtdx, &
 
  119            coef%drdy, coef%dsdy, coef%dtdy, &
 
  120            coef%drdz, coef%dsdz, coef%dtdz, &
 
  123       call sx_conv1_lx2(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
 
  124            coef%drdx, coef%dsdx, coef%dtdx, &
 
  125            coef%drdy, coef%dsdy, coef%dtdy, &
 
  126            coef%drdz, coef%dsdz, coef%dtdz, &
 
  129       call sx_conv1_lx(du, u, vx, vy, vz, xh%dx, xh%dy, xh%dz, &
 
  130            coef%drdx, coef%dsdx, coef%dtdx, &
 
  131            coef%drdy, coef%dsdy, coef%dtdy, &
 
  132            coef%drdz, coef%dsdz, coef%dtdz, &
 
  133            coef%jacinv, nelv, xh%lx)
 
  136  end subroutine opr_sx_conv1
 
  138  subroutine sx_conv1_lx(du, u, vx, vy, vz, dx, dy, dz, &
 
  139       drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
 
  141    integer, 
intent(in) :: nelv, lx
 
  142    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(inout) :: du
 
  143    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: u, vx, vy, vz
 
  144    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdx, dsdx, dtdx
 
  145    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdy, dsdy, dtdy
 
  146    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdz, dsdz, dtdz
 
  147    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: jacinv
 
  148    real(kind=rp), 
dimension(lx, lx), 
intent(in) :: dx, dy, dz
 
  149    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudr
 
  150    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: duds
 
  151    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudt
 
  152    real(kind=rp) :: wr, ws, wt
 
  153    integer :: e, i, j, k, jj, kk
 
  156       do jj = 1, lx * lx * nelv
 
  159             wr = wr + dx(i, kk) * u(kk, jj,1,1)
 
  172                   ws = ws + dy(j, kk) * u(i, kk,k,e)
 
  187                   wt = wt + dz(k, kk) * u(i,j, kk,e)
 
  195    do i = 1, nelv * lx * lx * lx
 
  196       du(i,1,1,1) = jacinv(i,1,1,1) * &
 
  198            drdx(i,1,1,1)*dudr(i,1,1,1) &
 
  199            + dsdx(i,1,1,1)*duds(i,1,1,1) &
 
  200            + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
 
  202            drdy(i,1,1,1)*dudr(i,1,1,1) &
 
  203            + dsdy(i,1,1,1)*duds(i,1,1,1) &
 
  204            + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
 
  206            drdz(i,1,1,1)*dudr(i,1,1,1) &
 
  207            + dsdz(i,1,1,1)*duds(i,1,1,1) &
 
  208            + dtdz(i,1,1,1)*dudt(i,1,1,1)))
 
  211  end subroutine sx_conv1_lx
 
  213  subroutine sx_conv1_lx14(du, u, vx, vy, vz, dx, dy, dz, &
 
  214       drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
 
  216    integer, 
parameter :: lx = 14
 
  217    integer, 
intent(in) :: nelv
 
  218    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(inout) :: du
 
  219    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: u, vx, vy, vz
 
  220    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdx, dsdx, dtdx
 
  221    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdy, dsdy, dtdy
 
  222    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdz, dsdz, dtdz
 
  223    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: jacinv
 
  224    real(kind=rp), 
dimension(lx, lx), 
intent(in) :: dx, dy, dz
 
  225    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudr
 
  226    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: duds
 
  227    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudt
 
  228    real(kind=rp) :: wr, ws, wt
 
  229    integer :: e, i, j, k, jj, kk
 
  232       do jj = 1, lx * lx * nelv
 
  235             wr = wr + dx(i, kk) * u(kk, jj,1,1)
 
  248                   ws = ws + dy(j, kk) * u(i, kk,k,e)
 
  263                   wt = wt + dz(k, kk) * u(i,j, kk,e)
 
  271    do i = 1, nelv * lx * lx * lx
 
  272       du(i,1,1,1) = jacinv(i,1,1,1) * &
 
  274            drdx(i,1,1,1)*dudr(i,1,1,1) &
 
  275            + dsdx(i,1,1,1)*duds(i,1,1,1) &
 
  276            + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
 
  278            drdy(i,1,1,1)*dudr(i,1,1,1) &
 
  279            + dsdy(i,1,1,1)*duds(i,1,1,1) &
 
  280            + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
 
  282            drdz(i,1,1,1)*dudr(i,1,1,1) &
 
  283            + dsdz(i,1,1,1)*duds(i,1,1,1) &
 
  284            + dtdz(i,1,1,1)*dudt(i,1,1,1)))
 
  287  end subroutine sx_conv1_lx14
 
  289  subroutine sx_conv1_lx13(du, u, vx, vy, vz, dx, dy, dz, &
 
  290       drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
 
  292    integer, 
parameter :: lx = 13
 
  293    integer, 
intent(in) :: nelv
 
  294    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(inout) :: du
 
  295    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: u, vx, vy, vz
 
  296    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdx, dsdx, dtdx
 
  297    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdy, dsdy, dtdy
 
  298    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdz, dsdz, dtdz
 
  299    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: jacinv
 
  300    real(kind=rp), 
dimension(lx, lx), 
intent(in) :: dx, dy, dz
 
  301    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudr
 
  302    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: duds
 
  303    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudt
 
  304    real(kind=rp) :: wr, ws, wt
 
  305    integer :: e, i, j, k, jj, kk
 
  308       do jj = 1, lx * lx * nelv
 
  311             wr = wr + dx(i, kk) * u(kk, jj,1,1)
 
  324                   ws = ws + dy(j, kk) * u(i, kk,k,e)
 
  339                   wt = wt + dz(k, kk) * u(i,j, kk,e)
 
  347    do i = 1, nelv * lx * lx * lx
 
  348       du(i,1,1,1) = jacinv(i,1,1,1) * &
 
  350            drdx(i,1,1,1)*dudr(i,1,1,1) &
 
  351            + dsdx(i,1,1,1)*duds(i,1,1,1) &
 
  352            + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
 
  354            drdy(i,1,1,1)*dudr(i,1,1,1) &
 
  355            + dsdy(i,1,1,1)*duds(i,1,1,1) &
 
  356            + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
 
  358            drdz(i,1,1,1)*dudr(i,1,1,1) &
 
  359            + dsdz(i,1,1,1)*duds(i,1,1,1) &
 
  360            + dtdz(i,1,1,1)*dudt(i,1,1,1)))
 
  363  end subroutine sx_conv1_lx13
 
  365  subroutine sx_conv1_lx12(du, u, vx, vy, vz, dx, dy, dz, &
 
  366       drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
 
  368    integer, 
parameter :: lx = 12
 
  369    integer, 
intent(in) :: nelv
 
  370    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(inout) :: du
 
  371    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: u, vx, vy, vz
 
  372    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdx, dsdx, dtdx
 
  373    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdy, dsdy, dtdy
 
  374    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdz, dsdz, dtdz
 
  375    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: jacinv
 
  376    real(kind=rp), 
dimension(lx, lx), 
intent(in) :: dx, dy, dz
 
  377    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudr
 
  378    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: duds
 
  379    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudt
 
  380    real(kind=rp) :: wr, ws, wt
 
  381    integer :: e, i, j, k, jj, kk
 
  384       do jj = 1, lx * lx * nelv
 
  387             wr = wr + dx(i, kk) * u(kk, jj,1,1)
 
  400                   ws = ws + dy(j, kk) * u(i, kk,k,e)
 
  415                   wt = wt + dz(k, kk) * u(i,j, kk,e)
 
  423    do i = 1, nelv * lx * lx * lx
 
  424       du(i,1,1,1) = jacinv(i,1,1,1) * &
 
  426            drdx(i,1,1,1)*dudr(i,1,1,1) &
 
  427            + dsdx(i,1,1,1)*duds(i,1,1,1) &
 
  428            + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
 
  430            drdy(i,1,1,1)*dudr(i,1,1,1) &
 
  431            + dsdy(i,1,1,1)*duds(i,1,1,1) &
 
  432            + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
 
  434            drdz(i,1,1,1)*dudr(i,1,1,1) &
 
  435            + dsdz(i,1,1,1)*duds(i,1,1,1) &
 
  436            + dtdz(i,1,1,1)*dudt(i,1,1,1)))
 
  439  end subroutine sx_conv1_lx12
 
  441  subroutine sx_conv1_lx11(du, u, vx, vy, vz, dx, dy, dz, &
 
  442       drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
 
  444    integer, 
parameter :: lx = 11
 
  445    integer, 
intent(in) :: nelv
 
  446    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(inout) :: du
 
  447    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: u, vx, vy, vz
 
  448    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdx, dsdx, dtdx
 
  449    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdy, dsdy, dtdy
 
  450    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdz, dsdz, dtdz
 
  451    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: jacinv
 
  452    real(kind=rp), 
dimension(lx, lx), 
intent(in) :: dx, dy, dz
 
  453    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudr
 
  454    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: duds
 
  455    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudt
 
  456    real(kind=rp) :: wr, ws, wt
 
  457    integer :: e, i, j, k, jj, kk
 
  460       do jj = 1, lx * lx * nelv
 
  463             wr = wr + dx(i, kk) * u(kk, jj,1,1)
 
  476                   ws = ws + dy(j, kk) * u(i, kk,k,e)
 
  491                   wt = wt + dz(k, kk) * u(i,j, kk,e)
 
  499    do i = 1, nelv * lx * lx * lx
 
  500       du(i,1,1,1) = jacinv(i,1,1,1) * &
 
  502            drdx(i,1,1,1)*dudr(i,1,1,1) &
 
  503            + dsdx(i,1,1,1)*duds(i,1,1,1) &
 
  504            + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
 
  506            drdy(i,1,1,1)*dudr(i,1,1,1) &
 
  507            + dsdy(i,1,1,1)*duds(i,1,1,1) &
 
  508            + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
 
  510            drdz(i,1,1,1)*dudr(i,1,1,1) &
 
  511            + dsdz(i,1,1,1)*duds(i,1,1,1) &
 
  512            + dtdz(i,1,1,1)*dudt(i,1,1,1)))
 
  515  end subroutine sx_conv1_lx11
 
  517  subroutine sx_conv1_lx10(du, u, vx, vy, vz, dx, dy, dz, &
 
  518       drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
 
  520    integer, 
parameter :: lx = 10
 
  521    integer, 
intent(in) :: nelv
 
  522    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(inout) :: du
 
  523    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: u, vx, vy, vz
 
  524    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdx, dsdx, dtdx
 
  525    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdy, dsdy, dtdy
 
  526    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdz, dsdz, dtdz
 
  527    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: jacinv
 
  528    real(kind=rp), 
dimension(lx, lx), 
intent(in) :: dx, dy, dz
 
  529    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudr
 
  530    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: duds
 
  531    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudt
 
  532    real(kind=rp) :: wr, ws, wt
 
  533    integer :: e, i, j, k, jj, kk
 
  536       do jj = 1, lx * lx * nelv
 
  539             wr = wr + dx(i, kk) * u(kk, jj,1,1)
 
  552                   ws = ws + dy(j, kk) * u(i, kk,k,e)
 
  567                   wt = wt + dz(k, kk) * u(i,j, kk,e)
 
  575    do i = 1, nelv * lx * lx * lx
 
  576       du(i,1,1,1) = jacinv(i,1,1,1) * &
 
  578            drdx(i,1,1,1)*dudr(i,1,1,1) &
 
  579            + dsdx(i,1,1,1)*duds(i,1,1,1) &
 
  580            + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
 
  582            drdy(i,1,1,1)*dudr(i,1,1,1) &
 
  583            + dsdy(i,1,1,1)*duds(i,1,1,1) &
 
  584            + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
 
  586            drdz(i,1,1,1)*dudr(i,1,1,1) &
 
  587            + dsdz(i,1,1,1)*duds(i,1,1,1) &
 
  588            + dtdz(i,1,1,1)*dudt(i,1,1,1)))
 
  591  end subroutine sx_conv1_lx10
 
  593  subroutine sx_conv1_lx9(du, u, vx, vy, vz, dx, dy, dz, &
 
  594       drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
 
  596    integer, 
parameter :: lx = 9
 
  597    integer, 
intent(in) :: nelv
 
  598    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(inout) :: du
 
  599    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: u, vx, vy, vz
 
  600    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdx, dsdx, dtdx
 
  601    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdy, dsdy, dtdy
 
  602    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdz, dsdz, dtdz
 
  603    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: jacinv
 
  604    real(kind=rp), 
dimension(lx, lx), 
intent(in) :: dx, dy, dz
 
  605    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudr
 
  606    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: duds
 
  607    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudt
 
  608    real(kind=rp) :: wr, ws, wt
 
  609    integer :: e, i, j, k, jj, kk
 
  612       do jj = 1, lx * lx * nelv
 
  615             wr = wr + dx(i, kk) * u(kk, jj,1,1)
 
  628                   ws = ws + dy(j, kk) * u(i, kk,k,e)
 
  643                   wt = wt + dz(k, kk) * u(i,j, kk,e)
 
  651    do i = 1, nelv * lx * lx * lx
 
  652       du(i,1,1,1) = jacinv(i,1,1,1) * &
 
  654            drdx(i,1,1,1)*dudr(i,1,1,1) &
 
  655            + dsdx(i,1,1,1)*duds(i,1,1,1) &
 
  656            + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
 
  658            drdy(i,1,1,1)*dudr(i,1,1,1) &
 
  659            + dsdy(i,1,1,1)*duds(i,1,1,1) &
 
  660            + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
 
  662            drdz(i,1,1,1)*dudr(i,1,1,1) &
 
  663            + dsdz(i,1,1,1)*duds(i,1,1,1) &
 
  664            + dtdz(i,1,1,1)*dudt(i,1,1,1)))
 
  667  end subroutine sx_conv1_lx9
 
  669  subroutine sx_conv1_lx8(du, u, vx, vy, vz, dx, dy, dz, &
 
  670       drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
 
  672    integer, 
parameter :: lx = 8
 
  673    integer, 
intent(in) :: nelv
 
  674    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(inout) :: du
 
  675    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: u, vx, vy, vz
 
  676    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdx, dsdx, dtdx
 
  677    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdy, dsdy, dtdy
 
  678    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdz, dsdz, dtdz
 
  679    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: jacinv
 
  680    real(kind=rp), 
dimension(lx, lx), 
intent(in) :: dx, dy, dz
 
  681    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudr
 
  682    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: duds
 
  683    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudt
 
  684    real(kind=rp) :: wr, ws, wt
 
  685    integer :: e, i, j, k, jj, kk
 
  688       do jj = 1, lx * lx * nelv
 
  691             wr = wr + dx(i, kk) * u(kk, jj,1,1)
 
  704                   ws = ws + dy(j, kk) * u(i, kk,k,e)
 
  719                   wt = wt + dz(k, kk) * u(i,j, kk,e)
 
  727    do i = 1, nelv * lx * lx * lx
 
  728       du(i,1,1,1) = jacinv(i,1,1,1) * &
 
  730            drdx(i,1,1,1)*dudr(i,1,1,1) &
 
  731            + dsdx(i,1,1,1)*duds(i,1,1,1) &
 
  732            + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
 
  734            drdy(i,1,1,1)*dudr(i,1,1,1) &
 
  735            + dsdy(i,1,1,1)*duds(i,1,1,1) &
 
  736            + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
 
  738            drdz(i,1,1,1)*dudr(i,1,1,1) &
 
  739            + dsdz(i,1,1,1)*duds(i,1,1,1) &
 
  740            + dtdz(i,1,1,1)*dudt(i,1,1,1)))
 
  743  end subroutine sx_conv1_lx8
 
  745  subroutine sx_conv1_lx7(du, u, vx, vy, vz, dx, dy, dz, &
 
  746       drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
 
  748    integer, 
parameter :: lx = 7
 
  749    integer, 
intent(in) :: nelv
 
  750    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(inout) :: du
 
  751    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: u, vx, vy, vz
 
  752    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdx, dsdx, dtdx
 
  753    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdy, dsdy, dtdy
 
  754    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdz, dsdz, dtdz
 
  755    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: jacinv
 
  756    real(kind=rp), 
dimension(lx, lx), 
intent(in) :: dx, dy, dz
 
  757    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudr
 
  758    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: duds
 
  759    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudt
 
  760    real(kind=rp) :: wr, ws, wt
 
  761    integer :: e, i, j, k, jj, kk
 
  764       do jj = 1, lx * lx * nelv
 
  767             wr = wr + dx(i, kk) * u(kk, jj,1,1)
 
  780                   ws = ws + dy(j, kk) * u(i, kk,k,e)
 
  795                   wt = wt + dz(k, kk) * u(i,j, kk,e)
 
  803    do i = 1, nelv * lx * lx * lx
 
  804       du(i,1,1,1) = jacinv(i,1,1,1) * &
 
  806            drdx(i,1,1,1)*dudr(i,1,1,1) &
 
  807            + dsdx(i,1,1,1)*duds(i,1,1,1) &
 
  808            + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
 
  810            drdy(i,1,1,1)*dudr(i,1,1,1) &
 
  811            + dsdy(i,1,1,1)*duds(i,1,1,1) &
 
  812            + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
 
  814            drdz(i,1,1,1)*dudr(i,1,1,1) &
 
  815            + dsdz(i,1,1,1)*duds(i,1,1,1) &
 
  816            + dtdz(i,1,1,1)*dudt(i,1,1,1)))
 
  819  end subroutine sx_conv1_lx7
 
  821  subroutine sx_conv1_lx6(du, u, vx, vy, vz, dx, dy, dz, &
 
  822       drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
 
  824    integer, 
parameter :: lx = 6
 
  825    integer, 
intent(in) :: nelv
 
  826    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(inout) :: du
 
  827    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: u, vx, vy, vz
 
  828    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdx, dsdx, dtdx
 
  829    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdy, dsdy, dtdy
 
  830    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdz, dsdz, dtdz
 
  831    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: jacinv
 
  832    real(kind=rp), 
dimension(lx, lx), 
intent(in) :: dx, dy, dz
 
  833    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudr
 
  834    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: duds
 
  835    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudt
 
  836    real(kind=rp) :: wr, ws, wt
 
  837    integer :: e, i, j, k, jj, kk
 
  840       do jj = 1, lx * lx * nelv
 
  843             wr = wr + dx(i, kk) * u(kk, jj,1,1)
 
  856                   ws = ws + dy(j, kk) * u(i, kk,k,e)
 
  871                   wt = wt + dz(k, kk) * u(i,j, kk,e)
 
  879    do i = 1, nelv * lx * lx * lx
 
  880       du(i,1,1,1) = jacinv(i,1,1,1) * &
 
  882            drdx(i,1,1,1)*dudr(i,1,1,1) &
 
  883            + dsdx(i,1,1,1)*duds(i,1,1,1) &
 
  884            + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
 
  886            drdy(i,1,1,1)*dudr(i,1,1,1) &
 
  887            + dsdy(i,1,1,1)*duds(i,1,1,1) &
 
  888            + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
 
  890            drdz(i,1,1,1)*dudr(i,1,1,1) &
 
  891            + dsdz(i,1,1,1)*duds(i,1,1,1) &
 
  892            + dtdz(i,1,1,1)*dudt(i,1,1,1)))
 
  895  end subroutine sx_conv1_lx6
 
  897  subroutine sx_conv1_lx5(du, u, vx, vy, vz, dx, dy, dz, &
 
  898       drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
 
  900    integer, 
parameter :: lx = 5
 
  901    integer, 
intent(in) :: nelv
 
  902    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(inout) :: du
 
  903    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: u, vx, vy, vz
 
  904    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdx, dsdx, dtdx
 
  905    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdy, dsdy, dtdy
 
  906    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdz, dsdz, dtdz
 
  907    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: jacinv
 
  908    real(kind=rp), 
dimension(lx, lx), 
intent(in) :: dx, dy, dz
 
  909    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudr
 
  910    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: duds
 
  911    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudt
 
  912    real(kind=rp) :: wr, ws, wt
 
  913    integer :: e, i, j, k, jj, kk
 
  916       do jj = 1, lx * lx * nelv
 
  919             wr = wr + dx(i, kk) * u(kk, jj,1,1)
 
  932                   ws = ws + dy(j, kk) * u(i, kk,k,e)
 
  947                   wt = wt + dz(k, kk) * u(i,j, kk,e)
 
  955    do i = 1, nelv * lx * lx * lx
 
  956       du(i,1,1,1) = jacinv(i,1,1,1) * &
 
  958            drdx(i,1,1,1)*dudr(i,1,1,1) &
 
  959            + dsdx(i,1,1,1)*duds(i,1,1,1) &
 
  960            + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
 
  962            drdy(i,1,1,1)*dudr(i,1,1,1) &
 
  963            + dsdy(i,1,1,1)*duds(i,1,1,1) &
 
  964            + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
 
  966            drdz(i,1,1,1)*dudr(i,1,1,1) &
 
  967            + dsdz(i,1,1,1)*duds(i,1,1,1) &
 
  968            + dtdz(i,1,1,1)*dudt(i,1,1,1)))
 
  971  end subroutine sx_conv1_lx5
 
  973  subroutine sx_conv1_lx4(du, u, vx, vy, vz, dx, dy, dz, &
 
  974       drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
 
  976    integer, 
parameter :: lx = 4
 
  977    integer, 
intent(in) :: nelv
 
  978    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(inout) :: du
 
  979    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: u, vx, vy, vz
 
  980    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdx, dsdx, dtdx
 
  981    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdy, dsdy, dtdy
 
  982    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdz, dsdz, dtdz
 
  983    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: jacinv
 
  984    real(kind=rp), 
dimension(lx, lx), 
intent(in) :: dx, dy, dz
 
  985    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudr
 
  986    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: duds
 
  987    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudt
 
  988    real(kind=rp) :: wr, ws, wt
 
  989    integer :: e, i, j, k, jj, kk
 
  992       do jj = 1, lx * lx * nelv
 
  995             wr = wr + dx(i, kk) * u(kk, jj,1,1)
 
 1008                   ws = ws + dy(j, kk) * u(i, kk,k,e)
 
 1023                   wt = wt + dz(k, kk) * u(i,j, kk,e)
 
 1031    do i = 1, nelv * lx * lx * lx
 
 1032       du(i,1,1,1) = jacinv(i,1,1,1) * &
 
 1034            drdx(i,1,1,1)*dudr(i,1,1,1) &
 
 1035            + dsdx(i,1,1,1)*duds(i,1,1,1) &
 
 1036            + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
 
 1038            drdy(i,1,1,1)*dudr(i,1,1,1) &
 
 1039            + dsdy(i,1,1,1)*duds(i,1,1,1) &
 
 1040            + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
 
 1042            drdz(i,1,1,1)*dudr(i,1,1,1) &
 
 1043            + dsdz(i,1,1,1)*duds(i,1,1,1) &
 
 1044            + dtdz(i,1,1,1)*dudt(i,1,1,1)))
 
 1047  end subroutine sx_conv1_lx4
 
 1049  subroutine sx_conv1_lx3(du, u, vx, vy, vz, dx, dy, dz, &
 
 1050       drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
 
 1052    integer, 
parameter :: lx = 3
 
 1053    integer, 
intent(in) :: nelv
 
 1054    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(inout) :: du
 
 1055    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: u, vx, vy, vz
 
 1056    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdx, dsdx, dtdx
 
 1057    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdy, dsdy, dtdy
 
 1058    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdz, dsdz, dtdz
 
 1059    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: jacinv
 
 1060    real(kind=rp), 
dimension(lx, lx), 
intent(in) :: dx, dy, dz
 
 1061    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudr
 
 1062    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: duds
 
 1063    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudt
 
 1064    real(kind=rp) :: wr, ws, wt
 
 1065    integer :: e, i, j, k, jj, kk
 
 1068       do jj = 1, lx * lx * nelv
 
 1071             wr = wr + dx(i, kk) * u(kk, jj,1,1)
 
 1073          dudr(i, jj,1,1) = wr
 
 1084                   ws = ws + dy(j, kk) * u(i, kk,k,e)
 
 1099                   wt = wt + dz(k, kk) * u(i,j, kk,e)
 
 1107    do i = 1, nelv * lx * lx * lx
 
 1108       du(i,1,1,1) = jacinv(i,1,1,1) * &
 
 1110            drdx(i,1,1,1)*dudr(i,1,1,1) &
 
 1111            + dsdx(i,1,1,1)*duds(i,1,1,1) &
 
 1112            + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
 
 1114            drdy(i,1,1,1)*dudr(i,1,1,1) &
 
 1115            + dsdy(i,1,1,1)*duds(i,1,1,1) &
 
 1116            + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
 
 1118            drdz(i,1,1,1)*dudr(i,1,1,1) &
 
 1119            + dsdz(i,1,1,1)*duds(i,1,1,1) &
 
 1120            + dtdz(i,1,1,1)*dudt(i,1,1,1)))
 
 1123  end subroutine sx_conv1_lx3
 
 1125  subroutine sx_conv1_lx2(du, u, vx, vy, vz, dx, dy, dz, &
 
 1126       drdx, dsdx, dtdx, drdy, dsdy, dtdy, drdz, dsdz, dtdz, &
 
 1128    integer, 
parameter :: lx = 2
 
 1129    integer, 
intent(in) :: nelv
 
 1130    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(inout) :: du
 
 1131    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: u, vx, vy, vz
 
 1132    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdx, dsdx, dtdx
 
 1133    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdy, dsdy, dtdy
 
 1134    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: drdz, dsdz, dtdz
 
 1135    real(kind=rp), 
dimension(lx, lx, lx, nelv), 
intent(in) :: jacinv
 
 1136    real(kind=rp), 
dimension(lx, lx), 
intent(in) :: dx, dy, dz
 
 1137    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudr
 
 1138    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: duds
 
 1139    real(kind=rp), 
dimension(lx, lx, lx, nelv) :: dudt
 
 1140    real(kind=rp) :: wr, ws, wt
 
 1141    integer :: e, i, j, k, jj, kk
 
 1144       do jj = 1, lx * lx * nelv
 
 1147             wr = wr + dx(i, kk) * u(kk, jj,1,1)
 
 1149          dudr(i, jj,1,1) = wr
 
 1160                   ws = ws + dy(j, kk) * u(i, kk,k,e)
 
 1175                   wt = wt + dz(k, kk) * u(i,j, kk,e)
 
 1183    do i = 1, nelv * lx * lx * lx
 
 1184       du(i,1,1,1) = jacinv(i,1,1,1) * &
 
 1186            drdx(i,1,1,1)*dudr(i,1,1,1) &
 
 1187            + dsdx(i,1,1,1)*duds(i,1,1,1) &
 
 1188            + dtdx(i,1,1,1)*dudt(i,1,1,1)) &
 
 1190            drdy(i,1,1,1)*dudr(i,1,1,1) &
 
 1191            + dsdy(i,1,1,1)*duds(i,1,1,1) &
 
 1192            + dtdy(i,1,1,1)*dudt(i,1,1,1)) &
 
 1194            drdz(i,1,1,1)*dudr(i,1,1,1) &
 
 1195            + dsdz(i,1,1,1)*duds(i,1,1,1) &
 
 1196            + dtdz(i,1,1,1)*dudt(i,1,1,1)))
 
 1199  end subroutine sx_conv1_lx2
 
 1201end submodule sx_conv1
 
Operators SX-Aurora backend.