C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/pkg/ggl90/GGL90.h,v 1.5 2010/08/06 18:37:05 gforget 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 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) c _RL recip_hFacI(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) COMMON /GGL90_FIELDS/ GGL90TKE, & GGL90viscArU, GGL90viscArV, GGL90diffKr c & ,recip_hFacI LOGICAL GGL90isOn, GGL90mixingMaps, GGL90writeState COMMON /GGL90_PARMS_L/ & GGL90isOn, GGL90mixingMaps, GGL90writeState #ifdef ALLOW_GGL90_SMOOTH COMMON /GGL90_CORNER/ mskCor _RL mskCor(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif #endif /* ALLOW_GGL90 */