| 1 |
C $Header: /u/gcmpack/MITgcm_contrib/ecco_darwin/v4_3deg/code/GGL90.h,v 1.1 2020/01/23 01:27:38 dimitri Exp $ |
| 2 |
C $Name: $ |
| 3 |
|
| 4 |
#ifdef ALLOW_GGL90 |
| 5 |
|
| 6 |
CBOP |
| 7 |
C !ROUTINE: GGL90.h |
| 8 |
|
| 9 |
C !DESCRIPTION: \bv |
| 10 |
C /==========================================================\ |
| 11 |
C | GGL90.h | |
| 12 |
C | o Basic header for Garpar et al. (1990) | |
| 13 |
C | vertical mixing parameterization. Implementation | |
| 14 |
C | follows OPA implementation of Blanke+Delecuse (1993) | |
| 15 |
C | Contains all GGL90 field declarations. | |
| 16 |
C \==========================================================/ |
| 17 |
|
| 18 |
C----------------------------------------------------------------------- |
| 19 |
C |
| 20 |
C Parameters that can be set in data.ggl90 |
| 21 |
C unless otherwise noted, equation numbers refer to Gaspar et al. |
| 22 |
C (1990), JGR, 95(C9) pp. 16,179ff. |
| 23 |
C |
| 24 |
C GGL90ck - constant in viscosity coefficient (eq.10) |
| 25 |
C GGL90ceps - dissipation constant according to Kolmogorov (1942) |
| 26 |
C GGL90m2 - constant relating wind stress to vertical stress of TKE |
| 27 |
C in K [d(TKE)/dz](0)=m2*ustar^3 |
| 28 |
C GGL90alpha - constant relating viscosity to GGL90 diffusivity |
| 29 |
C (default=1 in Gaspar etal.) |
| 30 |
C GGL90TKEsurfmin - minimum of surface kinetic energy boundary condition |
| 31 |
C (default=GGL90TKEmin) |
| 32 |
C GGL90TKEmin - minimum kinetic energy, leads to minimum mixing if TKE=0. |
| 33 |
C GGL90TKEbottom - bottom bounardy condition for kinetic energy |
| 34 |
C (default=GGL90TKEmin) |
| 35 |
C GGL90TKEFile - File with initial field of TKE |
| 36 |
C GGL90mixingLengthMin - Mininum mixing length |
| 37 |
C mxlMaxFlag - Flag for limiting mixing-length method (default=0) |
| 38 |
C mxlSurfFlag - Flag to force mixing near ocean surface (default= F ) |
| 39 |
C calcMeanVertShear :: calculate the mean (@ grid-cell center) of vertical |
| 40 |
C shear compon. (instead of vert. shear of mean flow) |
| 41 |
C |
| 42 |
C useIDEMIX - turn on internal wave mixing contribution modeled by |
| 43 |
C IDEMIX version 1: |
| 44 |
C - Olbers, D. and Eden, C. (2013), J. Phys. Oceano. |
| 45 |
C doi:10.1175/JPO-D-12-0207.1 |
| 46 |
C |
| 47 |
C GGL90dumpFreq - analogue of dumpFreq (= default) |
| 48 |
C GGL90taveFreq - analogue of taveFreq (= default) |
| 49 |
C GGL90mixingMaps - output to standard out (default = .FALSE.) |
| 50 |
C GGL90writeState - output to files (default = .FALSE.) |
| 51 |
C |
| 52 |
C Time varying parameters computed by subroutine ggl90_calc |
| 53 |
C GGL90TKE - prognostic variable stepped forward in time ((m/s)^2) |
| 54 |
C GGL90viscAr - Vertical eddy viscosity coefficient (m^2/s) |
| 55 |
C GGL90diffKr - Vertical diffusion coefficient for heat, |
| 56 |
C salt and tracers (m^2/s) |
| 57 |
C |
| 58 |
C----------------------------------------------------------------------- |
| 59 |
C \ev |
| 60 |
CEOP |
| 61 |
_RL SQRTTWO |
| 62 |
PARAMETER ( SQRTTWO = 1.41421356237310D0 ) |
| 63 |
_RL GGL90eps |
| 64 |
PARAMETER ( GGL90eps = 2.23D-16 ) |
| 65 |
|
| 66 |
CHARACTER*(MAX_LEN_FNAM) GGL90TKEFile |
| 67 |
COMMON /GGL90_PARMS_C/ GGL90TKEFile |
| 68 |
|
| 69 |
_RL GGL90ck, GGL90ceps |
| 70 |
_RL GGL90alpha, GGL90m2 |
| 71 |
_RL GGL90diffTKEh |
| 72 |
_RL GGL90mixingLengthMin |
| 73 |
_RL GGL90TKEmin, GGL90TKEsurfMin, GGL90TKEbottom |
| 74 |
_RL GGL90viscMax, GGL90diffMax |
| 75 |
_RL GGL90dumpFreq, GGL90taveFreq |
| 76 |
INTEGER mxlMaxFlag |
| 77 |
COMMON /GGL90_PARMS_R/ |
| 78 |
& GGL90ck, GGL90ceps, |
| 79 |
& GGL90alpha, GGL90m2, |
| 80 |
& GGL90diffTKEh, |
| 81 |
& GGL90mixingLengthMin, |
| 82 |
& GGL90TKEmin, GGL90TKEsurfMin, GGL90TKEbottom, |
| 83 |
& GGL90viscMax, GGL90diffMax, |
| 84 |
& GGL90dumpFreq, GGL90taveFreq, mxlMaxFlag, |
| 85 |
& mixingLength |
| 86 |
_RL GGL90TKE (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
| 87 |
_RL GGL90viscArU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
| 88 |
_RL GGL90viscArV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
| 89 |
_RL GGL90diffKr (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
| 90 |
_RL mixingLength(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
| 91 |
|
| 92 |
COMMON /GGL90_FIELDS/ GGL90TKE, |
| 93 |
& GGL90viscArU, GGL90viscArV, GGL90diffKr |
| 94 |
|
| 95 |
LOGICAL GGL90isOn, GGL90mixingMaps, GGL90writeState |
| 96 |
LOGICAL GGL90_dirichlet, mxlSurfFlag, calcMeanVertShear |
| 97 |
LOGICAL useIDEMIX |
| 98 |
COMMON /GGL90_PARMS_L/ |
| 99 |
& GGL90isOn, GGL90mixingMaps, GGL90writeState, |
| 100 |
& GGL90_dirichlet, mxlSurfFlag, calcMeanVertShear, |
| 101 |
& useIDEMIX |
| 102 |
|
| 103 |
#ifdef ALLOW_GGL90_SMOOTH |
| 104 |
COMMON /GGL90_CORNER/ mskCor |
| 105 |
_RL mskCor(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
| 106 |
#endif |
| 107 |
|
| 108 |
#ifdef ALLOW_GGL90_IDEMIX |
| 109 |
c----------------------------------------------------------------------- |
| 110 |
c IDEMIX parameter |
| 111 |
c----------------------------------------------------------------------- |
| 112 |
_RL IDEMIX_tau_v,IDEMIX_tau_h,IDEMIX_gamma, IDEMIX_jstar |
| 113 |
_RL IDEMIX_mu0, IDEMIX_diff_min |
| 114 |
_RL IDEMIX_mixing_efficiency, IDEMIX_diff_max |
| 115 |
_RL IDEMIX_frac_F_b, IDEMIX_frac_F_s |
| 116 |
c----------------------------------------------------------------------- |
| 117 |
c IDEMIX 3-d fields |
| 118 |
c----------------------------------------------------------------------- |
| 119 |
_RL IDEMIX_E (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
| 120 |
_RL IDEMIX_V0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
| 121 |
_RL IDEMIX_tau_d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
| 122 |
c----------------------------------------------------------------------- |
| 123 |
c IDEMIX 2-d fields |
| 124 |
c----------------------------------------------------------------------- |
| 125 |
_RL IDEMIX_F_B(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
| 126 |
_RL IDEMIX_F_S(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
| 127 |
|
| 128 |
COMMON /GGL90_IDEMIX_01/ IDEMIX_E,IDEMIX_V0,IDEMIX_tau_d |
| 129 |
& ,IDEMIX_F_b,IDEMIX_F_S |
| 130 |
& ,IDEMIX_tau_v,IDEMIX_tau_h,IDEMIX_gamma,IDEMIX_jstar |
| 131 |
& ,IDEMIX_mu0,IDEMIX_mixing_efficiency,IDEMIX_diff_max |
| 132 |
& ,IDEMIX_diff_min,IDEMIX_frac_F_b, IDEMIX_frac_F_s |
| 133 |
|
| 134 |
CHARACTER*(MAX_LEN_FNAM) |
| 135 |
& IDEMIX_tidal_file, IDEMIX_wind_file |
| 136 |
LOGICAL IDEMIX_include_GM, IDEMIX_include_GM_bottom |
| 137 |
COMMON /GLL90_IMIX_02/ |
| 138 |
& IDEMIX_tidal_file, IDEMIX_wind_file, |
| 139 |
& IDEMIX_include_GM, IDEMIX_include_GM_bottom |
| 140 |
#endif /* ALLOW_GGL90_IDEMIX */ |
| 141 |
|
| 142 |
#endif /* ALLOW_GGL90 */ |