diff options
Diffstat (limited to 'src/macro/LIEG_guts.h')
-rw-r--r-- | src/macro/LIEG_guts.h | 228 |
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 |