C $Header: /u/gcmpack/MITgcm/pkg/ggl90/GGL90.h,v 1.13 2016/01/14 17:44:26 jmc Exp $ C $Name: $ #ifdef ALLOW_GGL90 CBOP C !ROUTINE: GGL90.h C !DESCRIPTION: \bv C /==========================================================\ C | GGL90.h | C | o Basic header for Garpar et al. (1990) | C | vertical mixing parameterization. Implementation | C | follows OPA implementation of Blanke+Delecuse (1993) | C | Contains all GGL90 field declarations. | C \==========================================================/ C----------------------------------------------------------------------- C C Parameters that can be set in data.ggl90 C unless otherwise noted, equation numbers refer to Gaspar et al. C (1990), JGR, 95(C9) pp. 16,179ff. C C GGL90ck - constant in viscosity coefficient (eq.10) C GGL90ceps - dissipation constant according to Kolmogorov (1942) C GGL90m2 - constant relating wind stress to vertical stress of TKE C in K [d(TKE)/dz](0)=m2*ustar^3 C GGL90alpha - constant relating viscosity to GGL90 diffusivity C (default=1 in Gaspar etal.) C GGL90TKEsurfmin - minimum of surface kinetic energy boundary condition C (default=GGL90TKEmin) C GGL90TKEmin - minimum kinetic energy, leads to minimum mixing if TKE=0. C GGL90TKEbottom - bottom bounardy condition for kinetic energy C (default=GGL90TKEmin) C GGL90TKEFile - File with initial field of TKE C GGL90mixingLengthMin - Mininum mixing length C mxlMaxFlag - Flag for limiting mixing-length method (default=0) C mxlSurfFlag - Flag to force mixing near ocean surface (default= F ) C calcMeanVertShear :: calculate the mean (@ grid-cell center) of vertical C shear compon. (instead of vert. shear of mean flow) C C useIDEMIX - turn on internal wave mixing contribution modeled by C IDEMIX version 1: C - Olbers, D. and Eden, C. (2013), J. Phys. Oceano. C doi:10.1175/JPO-D-12-0207.1 C C GGL90dumpFreq - analogue of dumpFreq (= default) C GGL90taveFreq - analogue of taveFreq (= default) C GGL90mixingMaps - output to standard out (default = .FALSE.) C GGL90writeState - output to files (default = .FALSE.) C C Time varying parameters computed by subroutine ggl90_calc C GGL90TKE - prognostic variable stepped forward in time ((m/s)^2) C GGL90viscAr - Vertical eddy viscosity coefficient (m^2/s) C GGL90diffKr - Vertical diffusion coefficient for heat, C salt and tracers (m^2/s) C C----------------------------------------------------------------------- C \ev CEOP _RL SQRTTWO PARAMETER ( SQRTTWO = 1.41421356237310D0 ) _RL GGL90eps PARAMETER ( GGL90eps = 2.23D-16 ) CHARACTER*(MAX_LEN_FNAM) GGL90TKEFile COMMON /GGL90_PARMS_C/ GGL90TKEFile _RL GGL90ck, GGL90ceps _RL GGL90alpha, GGL90m2 _RL GGL90diffTKEh _RL GGL90mixingLengthMin _RL GGL90TKEmin, GGL90TKEsurfMin, GGL90TKEbottom _RL GGL90viscMax, GGL90diffMax _RL GGL90dumpFreq, GGL90taveFreq INTEGER mxlMaxFlag COMMON /GGL90_PARMS_R/ & GGL90ck, GGL90ceps, & GGL90alpha, GGL90m2, & GGL90diffTKEh, & GGL90mixingLengthMin, & GGL90TKEmin, GGL90TKEsurfMin, GGL90TKEbottom, & GGL90viscMax, GGL90diffMax, & GGL90dumpFreq, GGL90taveFreq, mxlMaxFlag _RL GGL90TKE (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL GGL90viscArU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL GGL90viscArV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL GGL90diffKr (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) COMMON /GGL90_FIELDS/ GGL90TKE, & GGL90viscArU, GGL90viscArV, GGL90diffKr LOGICAL GGL90isOn, GGL90mixingMaps, GGL90writeState LOGICAL GGL90_dirichlet, mxlSurfFlag, calcMeanVertShear LOGICAL useIDEMIX COMMON /GGL90_PARMS_L/ & GGL90isOn, GGL90mixingMaps, GGL90writeState, & GGL90_dirichlet, mxlSurfFlag, calcMeanVertShear, & useIDEMIX #ifdef ALLOW_GGL90_SMOOTH COMMON /GGL90_CORNER/ mskCor _RL mskCor(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif #ifdef ALLOW_GGL90_IDEMIX c----------------------------------------------------------------------- c IDEMIX parameter c----------------------------------------------------------------------- _RL IDEMIX_tau_v,IDEMIX_tau_h,IDEMIX_gamma, IDEMIX_jstar _RL IDEMIX_mu0, IDEMIX_diff_min _RL IDEMIX_mixing_efficiency, IDEMIX_diff_max _RL IDEMIX_frac_F_b, IDEMIX_frac_F_s c----------------------------------------------------------------------- c IDEMIX 3-d fields c----------------------------------------------------------------------- _RL IDEMIX_E (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL IDEMIX_V0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL IDEMIX_tau_d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) c----------------------------------------------------------------------- c IDEMIX 2-d fields c----------------------------------------------------------------------- _RL IDEMIX_F_B(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL IDEMIX_F_S(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) COMMON /GGL90_IDEMIX_01/ IDEMIX_E,IDEMIX_V0,IDEMIX_tau_d & ,IDEMIX_F_b,IDEMIX_F_S & ,IDEMIX_tau_v,IDEMIX_tau_h,IDEMIX_gamma,IDEMIX_jstar & ,IDEMIX_mu0,IDEMIX_mixing_efficiency,IDEMIX_diff_max & ,IDEMIX_diff_min,IDEMIX_frac_F_b, IDEMIX_frac_F_s CHARACTER*(MAX_LEN_FNAM) & IDEMIX_tidal_file, IDEMIX_wind_file LOGICAL IDEMIX_include_GM, IDEMIX_include_GM_bottom COMMON /GLL90_IMIX_02/ & IDEMIX_tidal_file, IDEMIX_wind_file, & IDEMIX_include_GM, IDEMIX_include_GM_bottom #endif /* ALLOW_GGL90_IDEMIX */ #endif /* ALLOW_GGL90 */