C $Header: /u/gcmpack/MITgcm/pkg/layers/LAYERS.h,v 1.6 2010/12/16 00:56:48 dfer Exp $
C $Name: $
#ifdef ALLOW_LAYERS
C-- Header for LAYERS package. By Ryan Abernathey.
C-- For computing volume fluxes in isopyncal layers
C -- Parms
LOGICAL layers_MNC, layers_MDSIO, useBOLUS
INTEGER LAYER_nb
_RL layers_taveFreq, layers_diagFreq
COMMON /LAYERS_PARMS/ layers_MNC, layers_MDSIO,
& layers_taveFreq, layers_diagFreq,
& LAYER_nb, useBOLUS
C 3D Layers fields. The vertical dimension in these fields is nLayers,
C i.e. the isopycnal coordinate.
C
C layers_UFlux :: U integrated over layer (m^2/s)
C layers_VFlux :: V integrated over layer (m^2/s)
C layers_HU :: Layer thickness at the U point (m)
C layers_HV :: Layer thickness at the V point (m)
#ifdef LAYERS_UFLUX
_RL layers_UFlux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nlayers,nSx,nSy)
#ifdef LAYERS_THICKNESS
_RL layers_HU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nlayers,nSx,nSy)
#endif /* LAYERS_THICKNESS */
COMMON /LAYERS_U/ layers_UFlux
#ifdef LAYERS_THICKNESS
& , layers_HU
#endif /* LAYERS_THICKNESS */
#endif /* LAYERS_UFLUX */
#ifdef LAYERS_VFLUX
_RL layers_VFlux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nlayers,nSx,nSy)
#ifdef LAYERS_THICKNESS
_RL layers_HV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nlayers,nSx,nSy)
#endif /* LAYERS_THICKNESS */
COMMON /LAYERS_V/ layers_VFlux
#ifdef LAYERS_THICKNESS
& , layers_HV
#endif /* LAYERS_THICKNESS */
#endif /* LAYERS_VFLUX */
#ifdef ALLOW_TIMEAVE
C-- The same variables, time-averaged
C Keep track of time
_RL layers_TimeAve(nSx,nSy)
COMMON /LAYERS_TAVE/ layers_TimeAve
#ifdef LAYERS_UFLUX
_RL layers_UFlux_T(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nlayers,nSx,nSy)
#ifdef LAYERS_THICKNESS
_RL layers_HU_T(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nlayers,nSx,nSy)
#endif /* LAYERS_THICKNESS */
COMMON /LAYERS_U_TAVE/ layers_UFlux_T
#ifdef LAYERS_THICKNESS
& , layers_HU_T
#endif /* LAYERS_THICKNESS */
#endif /* LAYERS_UFLUX */
#ifdef LAYERS_VFLUX
_RL layers_VFlux_T(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nlayers,nSx,nSy)
#ifdef LAYERS_THICKNESS
_RL layers_HV_T(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nlayers,nSx,nSy)
#endif /* LAYERS_THICKNESS */
COMMON /LAYERS_V_TAVE/ layers_VFlux_T
#ifdef LAYERS_THICKNESS
& , layers_HV_T
#endif /* LAYERS_THICKNESS */
#endif /* LAYERS_VFLUX */
#endif /* ALLOW_TIMEAVE */
C Isopycnal grid parameters:
C layers_G :: boundaries of isopycnal layers
C dZZf :: height of fine grid cells
C NZZ :: the number of levels to use in the fine grid
C MapIndex :: indices for mapping ZZ to Z
C MapFact :: factors for interpolating T(Z) to T(ZZ)
_RL layers_G(nLayers+1)
_RL dZZf(FineGridMax)
INTEGER MapIndex(FineGridMax), CellIndex(FineGridMax)
_RL MapFact(FineGridMax)
INTEGER NZZ
COMMON /LAYERS_VERT_GRID_I/
& NZZ, MapIndex, CellIndex
COMMON /LAYERS_VERT_GRID_R/
& layers_G, MapFact, dZZf
#endif /* ALLOW_LAYERS */