Back to home page

MITgcm

 
 

    


File indexing completed on 2025-06-05 05:08:27 UTC

view on githubraw file Latest commit 6a6c83f9 on 2025-06-04 22:00:11 UTC
4e66ab0b67 Oliv*0001 #ifdef ALLOW_LONGSTEP
                0002 
                0003 CBOP
                0004 C     !ROUTINE: LONGSTEP.h
                0005 C     !INTERFACE:
                0006 C     include "LONGSTEP.h"
                0007 C     !DESCRIPTION:
                0008 C     \bv
                0009 C     *==========================================================*
                0010 C     | LONGSTEP.h
                0011 C     | o Longstep state variables: averages of model variables
                0012 C     *==========================================================*
                0013 C     \ev
                0014 CEOP
                0015 C
                0016 C     LS_doTimeStep :: .TRUE. if ptracers are updated in this timestep
                0017 C
                0018       LOGICAL LS_doTimeStep
                0019       COMMON /LONGSTEP_STATE/ LS_doTimeStep
                0020 
                0021 C     LS_uVel         :: longstep average of zonal velocity
                0022 C     LS_vVel         :: longstep average of meridional velocity
                0023 C     LS_wVel         :: longstep average of vertical velocity
                0024 C     LS_theta        :: longstep average of potential temperature
                0025 C     LS_salt         :: longstep average of salinity
                0026 C     LS_IVDConvCount :: longstep average of IVD convection counter
fda3710353 Oliv*0027 C     LS_fwFlux       :: longstep average of either PmEpR or EmPmR (note sign!)
4e66ab0b67 Oliv*0028 C
                0029       _RL LS_uVel (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0030       _RL LS_vVel (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0031       _RL LS_wVel (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0032       _RL LS_theta(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0033       _RL LS_salt (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0034       _RL LS_IVDConvCount(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
fda3710353 Oliv*0035       _RL LS_fwFlux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
4e66ab0b67 Oliv*0036       INTEGER LS_uVelCount(nSx,nSy)
                0037       INTEGER LS_vVelCount(nSx,nSy)
                0038       INTEGER LS_wVelCount(nSx,nSy)
                0039       INTEGER LS_thetaCount(nSx,nSy)
                0040       INTEGER LS_saltCount(nSx,nSy)
                0041       INTEGER LS_IVDConvCountCount(nSx,nSy)
fda3710353 Oliv*0042       INTEGER LS_fwFluxCount(nSx,nSy)
b929557714 Jean*0043       COMMON /LONGSTEP_DYNVARS_R/
                0044      &       LS_uVel, LS_vVel, LS_wVel,
fda3710353 Oliv*0045      &       LS_theta, LS_salt, LS_IVDConvCount,
                0046      &       LS_fwFlux
b929557714 Jean*0047       COMMON /LONGSTEP_DYNVARS_I/
                0048      &       LS_uVelCount, LS_vVelCount, LS_wVelCount,
fda3710353 Oliv*0049      &       LS_thetaCount, LS_saltCount, LS_IVDConvCountCount,
                0050      &       LS_fwFluxCount
4e66ab0b67 Oliv*0051 
                0052 #ifdef ALLOW_GMREDI
                0053 C     Bottom row of tensor corresponds to W points
                0054 C     LS_Kwx :: longstep average of K_31 element, X direction at W point
                0055 C     LS_Kwy :: longstep average of K_32 element, Y direction at W point
                0056 C     LS_Kwz :: longstep average of K_33 element, Z direction at W point
6a6c83f9ac Hajo*0057 C     Horizontal part of the tensor
                0058 C     LS_Kux :: longstep average of K_11 element of GM/Redi tensor,
                0059 C               X direction at U point
                0060 C     LS_Kvy :: longstep average of K_22 element of GM/Redi tensor,
                0061 C               Y direction at V point
                0062 C     First/second rows of tensor corresponds to U/V points
                0063 C     LS_Kuz :: longstep average of K_13 element of GM/Redi tensor,
                0064 C               Z direction at U point
                0065 C     LS_Kvz :: longstep average of K_23 element of GM/Redi tensor,
                0066 C               Z direction at V point
4e66ab0b67 Oliv*0067 C
                0068       _RL LS_Kwx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0069       _RL LS_Kwy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0070       _RL LS_Kwz(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
6a6c83f9ac Hajo*0071       _RL LS_Kux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0072       _RL LS_Kvy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0073       _RL LS_Kuz(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0074       _RL LS_Kvz(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0075       COMMON /LONGSTEP_GM_R/
                0076      &       LS_Kwx, LS_Kwy, LS_Kwz,
                0077      &       LS_Kux, LS_Kvy,
                0078      &       LS_Kuz, LS_Kvz
                0079 
                0080 C     streamfunction computed in GMREDI
                0081 C     LS_PsiX :: longstep average of K_31 element, X direction at W point
                0082 C     LS_PsiY :: longstep average of K_32 element, Y direction at W point
                0083       _RL LS_PsiX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0084       _RL LS_PsiY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0085       COMMON /LONGSTEP_GM_PSI/ LS_PsiX, LS_PsiY
                0086 
                0087 C     And all corresponding counters for GM/Redi Longstep-averaging
b929557714 Jean*0088       INTEGER LS_KwxCount(nSx,nSy)
                0089       INTEGER LS_KwyCount(nSx,nSy)
                0090       INTEGER LS_KwzCount(nSx,nSy)
6a6c83f9ac Hajo*0091       INTEGER LS_KuxCount(nSx,nSy)
                0092       INTEGER LS_KvyCount(nSx,nSy)
                0093       INTEGER LS_KuzCount(nSx,nSy)
                0094       INTEGER LS_KvzCount(nSx,nSy)
                0095       INTEGER LS_PsiXCount(nSx,nSy)
                0096       INTEGER LS_PsiYCount(nSx,nSy)
                0097       COMMON /LONGSTEP_GM_I/
                0098      &       LS_KwxCount, LS_KwyCount, LS_KwzCount,
                0099      &       LS_KuxCount, LS_KvyCount,
                0100      &       LS_KuzCount, LS_KvzCount,
                0101      &       LS_PsiXCount, LS_PsiYCount
4e66ab0b67 Oliv*0102 #endif /* ALLOW_GMREDI */
                0103 
                0104 #ifdef ALLOW_KPP
                0105 C     LS_KPPdiffKzS :: longstep average of Vert. diff. coeff. for tracers
                0106 C     LS_KPPghat    :: longstep average of Nonlocal transport coefficient
                0107 C
                0108       _RL LS_KPPdiffKzS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0109       _RL LS_KPPghat    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
b929557714 Jean*0110       INTEGER LS_KPPdiffKzSCount(nSx,nSy)
                0111       INTEGER LS_KPPghatCount   (nSx,nSy)
                0112       COMMON /LONGSTEP_KPP_R/ LS_KPPdiffKzS, LS_KPPghat
                0113       COMMON /LONGSTEP_KPP_I/ LS_KPPdiffKzSCount, LS_KPPghatCount
4e66ab0b67 Oliv*0114 #endif
                0115 
                0116 #ifdef SHORTWAVE_HEATING
                0117 C     LS_Qsw :: longstep average of net upward shortwave radiation after ice
                0118 C
0af7e34ef5 Oliv*0119       _RL LS_Qsw(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
4e66ab0b67 Oliv*0120       INTEGER LS_QswCount(nSx,nSy)
b929557714 Jean*0121       COMMON /LONGSTEP_EXTRA_R/ LS_Qsw
                0122       COMMON /LONGSTEP_EXTRA_I/ LS_QswCount
4e66ab0b67 Oliv*0123 #endif
                0124 
                0125 C     ice?
                0126 C     forcing?
                0127 
                0128 #endif /* ALLOW_LONGSTEP */
                0129