aboutsummaryrefslogtreecommitdiff
path: root/src/macro/LIEG_guts.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/macro/LIEG_guts.h')
-rw-r--r--src/macro/LIEG_guts.h228
1 files changed, 74 insertions, 154 deletions
diff --git a/src/macro/LIEG_guts.h b/src/macro/LIEG_guts.h
index f36c812..3afd945 100644
--- a/src/macro/LIEG_guts.h
+++ b/src/macro/LIEG_guts.h
@@ -21,6 +21,8 @@
#ifdef FCODE
+#include "ADM_Derivative.h"
+
/* Advection. */
LIEG_LGXX = 0.0D0
@@ -43,63 +45,39 @@
else if (admmacros_advectionx .eq. 1) then /* UPWIND1 */
- LIEG_LGXX = LIEG_LGXX + LIEG_BX \
- *(gxx(i+1,j,k) - gxx(i,j,k))/dx
- LIEG_LGYY = LIEG_LGYY + LIEG_BX \
- *(gyy(i+1,j,k) - gyy(i,j,k))/dx
- LIEG_LGZZ = LIEG_LGZZ + LIEG_BX \
- *(gzz(i+1,j,k) - gzz(i,j,k))/dx
- LIEG_LGXY = LIEG_LGXY + LIEG_BX \
- *(gxy(i+1,j,k) - gxy(i,j,k))/dx
- LIEG_LGXZ = LIEG_LGXZ + LIEG_BX \
- *(gxz(i+1,j,k) - gxz(i,j,k))/dx
- LIEG_LGYZ = LIEG_LGYZ + LIEG_BX \
- *(gyz(i+1,j,k) - gyz(i,j,k))/dx
+ LIEG_LGXX = LIEG_LGXX + ADM_ADV_DX_P1(gxx,i,j,k)
+ LIEG_LGYY = LIEG_LGYY + ADM_ADV_DX_P1(gyy,i,j,k)
+ LIEG_LGZZ = LIEG_LGZZ + ADM_ADV_DX_P1(gzz,i,j,k)
+ LIEG_LGXY = LIEG_LGXY + ADM_ADV_DX_P1(gxy,i,j,k)
+ LIEG_LGXZ = LIEG_LGXZ + ADM_ADV_DX_P1(gxz,i,j,k)
+ LIEG_LGYZ = LIEG_LGYZ + ADM_ADV_DX_P1(gyz,i,j,k)
else if (admmacros_advectionx .eq. -1) then /* UPWIND1 */
- LIEG_LGXX = LIEG_LGXX + LIEG_BX \
- *(gxx(i,j,k) - gxx(i-1,j,k))/dx
- LIEG_LGYY = LIEG_LGYY + LIEG_BX \
- *(gyy(i,j,k) - gyy(i-1,j,k))/dx
- LIEG_LGZZ = LIEG_LGZZ + LIEG_BX \
- *(gzz(i,j,k) - gzz(i-1,j,k))/dx
- LIEG_LGXY = LIEG_LGXY + LIEG_BX \
- *(gxy(i,j,k) - gxy(i-1,j,k))/dx
- LIEG_LGXZ = LIEG_LGXZ + LIEG_BX \
- *(gxz(i,j,k) - gxz(i-1,j,k))/dx
- LIEG_LGYZ = LIEG_LGYZ + LIEG_BX \
- *(gyz(i,j,k) - gyz(i-1,j,k))/dx
+ LIEG_LGXX = LIEG_LGXX + ADM_ADV_DX_M1(gxx,i,j,k)
+ LIEG_LGYY = LIEG_LGYY + ADM_ADV_DX_M1(gyy,i,j,k)
+ LIEG_LGZZ = LIEG_LGZZ + ADM_ADV_DX_M1(gzz,i,j,k)
+ LIEG_LGXY = LIEG_LGXY + ADM_ADV_DX_M1(gxy,i,j,k)
+ LIEG_LGXZ = LIEG_LGXZ + ADM_ADV_DX_M1(gxz,i,j,k)
+ LIEG_LGYZ = LIEG_LGYZ + ADM_ADV_DX_M1(gyz,i,j,k)
else if (admmacros_advectionx .eq. 2) then /* UPWIND2 */
- LIEG_LGXX = LIEG_LGXX - 0.5D0*LIEG_BX/dx \
- *(3.0D0*gxx(i,j,k) - 4.0D0*gxx(i+1,j,k) + gxx(i+2,j,k))
- LIEG_LGYY = LIEG_LGYY - 0.5D0*LIEG_BX/dx \
- *(3.0D0*gyy(i,j,k) - 4.0D0*gyy(i+1,j,k) + gyy(i+2,j,k))
- LIEG_LGZZ = LIEG_LGZZ - 0.5D0*LIEG_BX/dx \
- *(3.0D0*gzz(i,j,k) - 4.0D0*gzz(i+1,j,k) + gzz(i+2,j,k))
- LIEG_LGXY = LIEG_LGXY - 0.5D0*LIEG_BX/dx \
- *(3.0D0*gxy(i,j,k) - 4.0D0*gxy(i+1,j,k) + gxy(i+2,j,k))
- LIEG_LGXZ = LIEG_LGXZ - 0.5D0*LIEG_BX/dx \
- *(3.0D0*gxz(i,j,k) - 4.0D0*gxz(i+1,j,k) + gxz(i+2,j,k))
- LIEG_LGYZ = LIEG_LGYZ - 0.5D0*LIEG_BX/dx \
- *(3.0D0*gyz(i,j,k) - 4.0D0*gyz(i+1,j,k) + gyz(i+2,j,k))
+ LIEG_LGXX = LIEG_LGXX + ADM_ADV_DX_P2(gxx,i,j,k)
+ LIEG_LGYY = LIEG_LGYY + ADM_ADV_DX_P2(gyy,i,j,k)
+ LIEG_LGZZ = LIEG_LGZZ + ADM_ADV_DX_P2(gzz,i,j,k)
+ LIEG_LGXY = LIEG_LGXY + ADM_ADV_DX_P2(gxy,i,j,k)
+ LIEG_LGXZ = LIEG_LGXZ + ADM_ADV_DX_P2(gxz,i,j,k)
+ LIEG_LGYZ = LIEG_LGYZ + ADM_ADV_DX_P2(gyz,i,j,k)
else if (admmacros_advectionx .eq. -2) then /* UPWIND2 */
- LIEG_LGXX = LIEG_LGXX + 0.5D0*LIEG_BX/dx \
- *(3.0D0*gxx(i,j,k) - 4.0D0*gxx(i-1,j,k) + gxx(i-2,j,k))
- LIEG_LGYY = LIEG_LGYY + 0.5D0*LIEG_BX/dx \
- *(3.0D0*gyy(i,j,k) - 4.0D0*gyy(i-1,j,k) + gyy(i-2,j,k))
- LIEG_LGZZ = LIEG_LGZZ + 0.5D0*LIEG_BX/dx \
- *(3.0D0*gzz(i,j,k) - 4.0D0*gzz(i-1,j,k) + gzz(i-2,j,k))
- LIEG_LGXY = LIEG_LGXY + 0.5D0*LIEG_BX/dx \
- *(3.0D0*gxy(i,j,k) - 4.0D0*gxy(i-1,j,k) + gxy(i-2,j,k))
- LIEG_LGXZ = LIEG_LGXZ + 0.5D0*LIEG_BX/dx \
- *(3.0D0*gxz(i,j,k) - 4.0D0*gxz(i-1,j,k) + gxz(i-2,j,k))
- LIEG_LGYZ = LIEG_LGYZ + 0.5D0*LIEG_BX/dx \
- *(3.0D0*gyz(i,j,k) - 4.0D0*gyz(i-1,j,k) + gyz(i-2,j,k))
+ LIEG_LGXX = LIEG_LGXX + ADM_ADV_DX_M2(gxx,i,j,k)
+ LIEG_LGYY = LIEG_LGYY + ADM_ADV_DX_M2(gyy,i,j,k)
+ LIEG_LGZZ = LIEG_LGZZ + ADM_ADV_DX_M2(gzz,i,j,k)
+ LIEG_LGXY = LIEG_LGXY + ADM_ADV_DX_M2(gxy,i,j,k)
+ LIEG_LGXZ = LIEG_LGXZ + ADM_ADV_DX_M2(gxz,i,j,k)
+ LIEG_LGYZ = LIEG_LGYZ + ADM_ADV_DX_M2(gyz,i,j,k)
end if
@@ -117,63 +95,39 @@
else if (admmacros_advectiony .eq. 1) then /* UPWIND1 */
- LIEG_LGXX = LIEG_LGXX + LIEG_BY \
- *(gxx(i,j+1,k) - gxx(i,j,k))/dy
- LIEG_LGYY = LIEG_LGYY + LIEG_BY \
- *(gyy(i,j+1,k) - gyy(i,j,k))/dy
- LIEG_LGZZ = LIEG_LGZZ + LIEG_BY \
- *(gzz(i,j+1,k) - gzz(i,j,k))/dy
- LIEG_LGXY = LIEG_LGXY + LIEG_BY \
- *(gxy(i,j+1,k) - gxy(i,j,k))/dy
- LIEG_LGXZ = LIEG_LGXZ + LIEG_BY \
- *(gxz(i,j+1,k) - gxz(i,j,k))/dy
- LIEG_LGYZ = LIEG_LGYZ + LIEG_BY \
- *(gyz(i,j+1,k) - gyz(i,j,k))/dy
+ LIEG_LGXX = LIEG_LGXX + ADM_ADV_DY_P1(gxx,i,j,k)
+ LIEG_LGYY = LIEG_LGYY + ADM_ADV_DY_P1(gyy,i,j,k)
+ LIEG_LGZZ = LIEG_LGZZ + ADM_ADV_DY_P1(gzz,i,j,k)
+ LIEG_LGXY = LIEG_LGXY + ADM_ADV_DY_P1(gxy,i,j,k)
+ LIEG_LGXZ = LIEG_LGXZ + ADM_ADV_DY_P1(gxz,i,j,k)
+ LIEG_LGYZ = LIEG_LGYZ + ADM_ADV_DY_P1(gyz,i,j,k)
else if (admmacros_advectiony .eq. -1) then /* UPWIND1 */
- LIEG_LGXX = LIEG_LGXX + LIEG_BY \
- *(gxx(i,j,k) - gxx(i,j-1,k))/dy
- LIEG_LGYY = LIEG_LGYY + LIEG_BY \
- *(gyy(i,j,k) - gyy(i,j-1,k))/dy
- LIEG_LGZZ = LIEG_LGZZ + LIEG_BY \
- *(gzz(i,j,k) - gzz(i,j-1,k))/dy
- LIEG_LGXY = LIEG_LGXY + LIEG_BY \
- *(gxy(i,j,k) - gxy(i,j-1,k))/dy
- LIEG_LGXZ = LIEG_LGXZ + LIEG_BY \
- *(gxz(i,j,k) - gxz(i,j-1,k))/dy
- LIEG_LGYZ = LIEG_LGYZ + LIEG_BY \
- *(gyz(i,j,k) - gyz(i,j-1,k))/dy
+ LIEG_LGXX = LIEG_LGXX + ADM_ADV_DY_M1(gxx,i,j,k)
+ LIEG_LGYY = LIEG_LGYY + ADM_ADV_DY_M1(gyy,i,j,k)
+ LIEG_LGZZ = LIEG_LGZZ + ADM_ADV_DY_M1(gzz,i,j,k)
+ LIEG_LGXY = LIEG_LGXY + ADM_ADV_DY_M1(gxy,i,j,k)
+ LIEG_LGXZ = LIEG_LGXZ + ADM_ADV_DY_M1(gxz,i,j,k)
+ LIEG_LGYZ = LIEG_LGYZ + ADM_ADV_DY_M1(gyz,i,j,k)
else if (admmacros_advectiony .eq. 2) then /* UPWIND2 */
- LIEG_LGXX = LIEG_LGXX - 0.5D0*LIEG_BY/dy \
- *(3.0D0*gxx(i,j,k) - 4.0D0*gxx(i,j+1,k) + gxx(i,j+2,k))
- LIEG_LGYY = LIEG_LGYY - 0.5D0*LIEG_BY/dy \
- *(3.0D0*gyy(i,j,k) - 4.0D0*gyy(i,j+1,k) + gyy(i,j+2,k))
- LIEG_LGZZ = LIEG_LGZZ - 0.5D0*LIEG_BY/dy \
- *(3.0D0*gzz(i,j,k) - 4.0D0*gzz(i,j+1,k) + gzz(i,j+2,k))
- LIEG_LGXY = LIEG_LGXY - 0.5D0*LIEG_BY/dy \
- *(3.0D0*gxy(i,j,k) - 4.0D0*gxy(i,j+1,k) + gxy(i,j+2,k))
- LIEG_LGXZ = LIEG_LGXZ - 0.5D0*LIEG_BY/dy \
- *(3.0D0*gxz(i,j,k) - 4.0D0*gxz(i,j+1,k) + gxz(i,j+2,k))
- LIEG_LGYZ = LIEG_LGYZ - 0.5D0*LIEG_BY/dy \
- *(3.0D0*gyz(i,j,k) - 4.0D0*gyz(i,j+1,k) + gyz(i,j+2,k))
+ LIEG_LGXX = LIEG_LGXX + ADM_ADV_DY_P2(gxx,i,j,k)
+ LIEG_LGYY = LIEG_LGYY + ADM_ADV_DY_P2(gyy,i,j,k)
+ LIEG_LGZZ = LIEG_LGZZ + ADM_ADV_DY_P2(gzz,i,j,k)
+ LIEG_LGXY = LIEG_LGXY + ADM_ADV_DY_P2(gxy,i,j,k)
+ LIEG_LGXZ = LIEG_LGXZ + ADM_ADV_DY_P2(gxz,i,j,k)
+ LIEG_LGYZ = LIEG_LGYZ + ADM_ADV_DY_P2(gyz,i,j,k)
else if (admmacros_advectiony .eq. -2) then /* UPWIND2 */
- LIEG_LGXX = LIEG_LGXX + 0.5D0*LIEG_BY/dy \
- *(3.0D0*gxx(i,j,k) - 4.0D0*gxx(i,j-1,k) + gxx(i,j-2,k))
- LIEG_LGYY = LIEG_LGYY + 0.5D0*LIEG_BY/dy \
- *(3.0D0*gyy(i,j,k) - 4.0D0*gyy(i,j-1,k) + gyy(i,j-2,k))
- LIEG_LGZZ = LIEG_LGZZ + 0.5D0*LIEG_BY/dy \
- *(3.0D0*gzz(i,j,k) - 4.0D0*gzz(i,j-1,k) + gzz(i,j-2,k))
- LIEG_LGXY = LIEG_LGXY + 0.5D0*LIEG_BY/dy \
- *(3.0D0*gxy(i,j,k) - 4.0D0*gxy(i,j-1,k) + gxy(i,j-2,k))
- LIEG_LGXZ = LIEG_LGXZ + 0.5D0*LIEG_BY/dy \
- *(3.0D0*gxz(i,j,k) - 4.0D0*gxz(i,j-1,k) + gxz(i,j-2,k))
- LIEG_LGYZ = LIEG_LGYZ + 0.5D0*LIEG_BY/dy \
- *(3.0D0*gyz(i,j,k) - 4.0D0*gyz(i,j-1,k) + gyz(i,j-2,k))
+ LIEG_LGXX = LIEG_LGXX + ADM_ADV_DY_M2(gxx,i,j,k)
+ LIEG_LGYY = LIEG_LGYY + ADM_ADV_DY_M2(gyy,i,j,k)
+ LIEG_LGZZ = LIEG_LGZZ + ADM_ADV_DY_M2(gzz,i,j,k)
+ LIEG_LGXY = LIEG_LGXY + ADM_ADV_DY_M2(gxy,i,j,k)
+ LIEG_LGXZ = LIEG_LGXZ + ADM_ADV_DY_M2(gxz,i,j,k)
+ LIEG_LGYZ = LIEG_LGYZ + ADM_ADV_DY_M2(gyz,i,j,k)
end if
@@ -191,73 +145,39 @@
else if ((admmacros_advectionz .eq. 1)) then /* UPWIND1 */
- LIEG_LGXX = LIEG_LGXX + LIEG_BZ \
- *(gxx(i,j,k+1) - gxx(i,j,k))/dz
- LIEG_LGYY = LIEG_LGYY + LIEG_BZ \
- *(gyy(i,j,k+1) - gyy(i,j,k))/dz
- LIEG_LGZZ = LIEG_LGZZ + LIEG_BZ \
- *(gzz(i,j,k+1) - gzz(i,j,k))/dz
- LIEG_LGXY = LIEG_LGXY + LIEG_BZ \
- *(gxy(i,j,k+1) - gxy(i,j,k))/dz
- LIEG_LGXZ = LIEG_LGXZ + LIEG_BZ \
- *(gxz(i,j,k+1) - gxz(i,j,k))/dz
- LIEG_LGYZ = LIEG_LGYZ + LIEG_BZ \
- *(gyz(i,j,k+1) - gyz(i,j,k))/dz
+ LIEG_LGXX = LIEG_LGXX + ADM_ADV_DZ_P1(gxx,i,j,k)
+ LIEG_LGYY = LIEG_LGYY + ADM_ADV_DZ_P1(gyy,i,j,k)
+ LIEG_LGZZ = LIEG_LGZZ + ADM_ADV_DZ_P1(gzz,i,j,k)
+ LIEG_LGXY = LIEG_LGXY + ADM_ADV_DZ_P1(gxy,i,j,k)
+ LIEG_LGXZ = LIEG_LGXZ + ADM_ADV_DZ_P1(gxz,i,j,k)
+ LIEG_LGYZ = LIEG_LGYZ + ADM_ADV_DZ_P1(gyz,i,j,k)
else if ((admmacros_advectionz .eq. -1)) then /* UPWIND1 */
- LIEG_LGXX = LIEG_LGXX + LIEG_BZ \
- *(gxx(i,j,k) - gxx(i,j,k-1))/dz
- LIEG_LGYY = LIEG_LGYY + LIEG_BZ \
- *(gyy(i,j,k) - gyy(i,j,k-1))/dz
- LIEG_LGZZ = LIEG_LGZZ + LIEG_BZ \
- *(gzz(i,j,k) - gzz(i,j,k-1))/dz
- LIEG_LGXY = LIEG_LGXY + LIEG_BZ \
- *(gxy(i,j,k) - gxy(i,j,k-1))/dz
- LIEG_LGXZ = LIEG_LGXZ + LIEG_BZ \
- *(gxz(i,j,k) - gxz(i,j,k-1))/dz
- LIEG_LGYZ = LIEG_LGYZ + LIEG_BZ \
- *(gyz(i,j,k) - gyz(i,j,k-1))/dz
+ LIEG_LGXX = LIEG_LGXX + ADM_ADV_DZ_M1(gxx,i,j,k)
+ LIEG_LGYY = LIEG_LGYY + ADM_ADV_DZ_M1(gyy,i,j,k)
+ LIEG_LGZZ = LIEG_LGZZ + ADM_ADV_DZ_M1(gzz,i,j,k)
+ LIEG_LGXY = LIEG_LGXY + ADM_ADV_DZ_M1(gxy,i,j,k)
+ LIEG_LGXZ = LIEG_LGXZ + ADM_ADV_DZ_M1(gxz,i,j,k)
+ LIEG_LGYZ = LIEG_LGYZ + ADM_ADV_DZ_M1(gyz,i,j,k)
else if (admmacros_advectionz .eq. 2) then /* UPWIND2 */
- LIEG_LGXX = LIEG_LGXX - 0.5D0*LIEG_BZ/dz \
- *(3.0D0*gxx(i,j,k) - 4.0D0*gxx(i,j,k+1) + gxx(i,j,k+2))
-
- LIEG_LGYY = LIEG_LGYY - 0.5D0*LIEG_BZ/dz \
- *(3.0D0*gyy(i,j,k) - 4.0D0*gyy(i,j,k+1) + gyy(i,j,k+2))
-
- LIEG_LGZZ = LIEG_LGZZ - 0.5D0*LIEG_BZ/dz \
- *(3.0D0*gzz(i,j,k) - 4.0D0*gzz(i,j,k+1) + gzz(i,j,k+2))
-
- LIEG_LGXY = LIEG_LGXY - 0.5D0*LIEG_BZ/dz \
- *(3.0D0*gxy(i,j,k) - 4.0D0*gxy(i,j,k+1) + gxy(i,j,k+2))
-
- LIEG_LGXZ = LIEG_LGXZ - 0.5D0*LIEG_BZ/dz \
- *(3.0D0*gxz(i,j,k) - 4.0D0*gxz(i,j,k+1) + gxz(i,j,k+2))
-
- LIEG_LGYZ = LIEG_LGYZ - 0.5D0*LIEG_BZ/dz \
- *(3.0D0*gyz(i,j,k) - 4.0D0*gyz(i,j,k+1) + gyz(i,j,k+2))
+ LIEG_LGXX = LIEG_LGXX + ADM_ADV_DZ_P2(gxx,i,j,k)
+ LIEG_LGYY = LIEG_LGYY + ADM_ADV_DZ_P2(gyy,i,j,k)
+ LIEG_LGZZ = LIEG_LGZZ + ADM_ADV_DZ_P2(gzz,i,j,k)
+ LIEG_LGXY = LIEG_LGXY + ADM_ADV_DZ_P2(gxy,i,j,k)
+ LIEG_LGXZ = LIEG_LGXZ + ADM_ADV_DZ_P2(gxz,i,j,k)
+ LIEG_LGYZ = LIEG_LGYZ + ADM_ADV_DZ_P2(gyz,i,j,k)
else if (admmacros_advectionz .eq. -2) then /* UPWIND2 */
- LIEG_LGXX = LIEG_LGXX + 0.5D0*LIEG_BZ/dz \
- *(3.0D0*gxx(i,j,k) - 4.0D0*gxx(i,j,k-1) + gxx(i,j,k-2))
-
- LIEG_LGYY = LIEG_LGYY + 0.5D0*LIEG_BZ/dz \
- *(3.0D0*gyy(i,j,k) - 4.0D0*gyy(i,j,k-1) + gyy(i,j,k-2))
-
- LIEG_LGZZ = LIEG_LGZZ + 0.5D0*LIEG_BZ/dz \
- *(3.0D0*gzz(i,j,k) - 4.0D0*gzz(i,j,k-1) + gzz(i,j,k-2))
-
- LIEG_LGXY = LIEG_LGXY + 0.5D0*LIEG_BZ/dz \
- *(3.0D0*gxy(i,j,k) - 4.0D0*gxy(i,j,k-1) + gxy(i,j,k-2))
-
- LIEG_LGXZ = LIEG_LGXZ + 0.5D0*LIEG_BZ/dz \
- *(3.0D0*gxz(i,j,k) - 4.0D0*gxz(i,j,k-1) + gxz(i,j,k-2))
-
- LIEG_LGYZ = LIEG_LGYZ + 0.5D0*LIEG_BZ/dz \
- *(3.0D0*gyz(i,j,k) - 4.0D0*gyz(i,j,k-1) + gyz(i,j,k-2))
+ LIEG_LGXX = LIEG_LGXX + ADM_ADV_DZ_M2(gxx,i,j,k)
+ LIEG_LGYY = LIEG_LGYY + ADM_ADV_DZ_M2(gyy,i,j,k)
+ LIEG_LGZZ = LIEG_LGZZ + ADM_ADV_DZ_M2(gzz,i,j,k)
+ LIEG_LGXY = LIEG_LGXY + ADM_ADV_DZ_M2(gxy,i,j,k)
+ LIEG_LGXZ = LIEG_LGXZ + ADM_ADV_DZ_M2(gxz,i,j,k)
+ LIEG_LGYZ = LIEG_LGYZ + ADM_ADV_DZ_M2(gyz,i,j,k)
end if