/[MITgcm]/MITgcm/pkg/gmredi/GMREDI.h
ViewVC logotype

Annotation of /MITgcm/pkg/gmredi/GMREDI.h

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.29 - (hide annotations) (download)
Fri Mar 28 04:22:11 2014 UTC (10 years, 2 months ago) by m_bates
Branch: MAIN
CVS Tags: checkpoint64w, checkpoint64v
Changes since 1.28: +7 -2 lines
File MIME type: text/plain
K3D: Added upper and lower bounds to renormalisation factor as namelist variables. Fixed small bug with interpolation to U & V grid. Also added extra documentation and a diagnostic.

1 m_bates 1.29 C $Header: /u/gcmpack/MITgcm/pkg/gmredi/GMREDI.h,v 1.28 2014/01/01 23:20:48 m_bates Exp $
2 jmc 1.10 C $Name: $
3 adcroft 1.1
4     #ifdef ALLOW_GMREDI
5 heimbach 1.2
6 jmc 1.15 C--- GM/Redi package parameters
7 adcroft 1.1
8 jmc 1.15 C-- Numerical Constant
9     _RL op5
10     _RL op25
11 jmc 1.16 PARAMETER( op5 = 0.5 _d 0 )
12     PARAMETER( op25 = 0.25 _d 0 )
13 jmc 1.15
14 jmc 1.17 C-- COMMON /GM_PARAMS_L/ GM/Redi Logical-type parameters
15     C GM_AdvForm :: use Advective Form (instead of Skew-Flux form)
16     C GM_AdvSeparate :: do separately advection by Eulerian and Bolus velocity
17 jmc 1.18 C GM_useBVP :: use Boundary-Value-Problem method for Bolus transport
18 jmc 1.19 C GM_useSubMeso :: use parameterization of mixed layer (Sub-Mesoscale) eddies
19 jmc 1.17 C GM_ExtraDiag :: select extra diagnostics
20     C GM_InMomAsStress :: apply GM as a stress in momentum Eq.
21     C GM_MNC ::
22     C GM_MDSIO ::
23 m_bates 1.20 C GM_useK3D :: use the 3 dimensional calculation for K
24 m_bates 1.24 C GM_K3D_beta_eq_0 :: Ignores the beta term when calculating grad(q)
25 m_bates 1.21 C GM_K3D_likeGM :: Makes the PV closure similar to the GM closure (for debugging only!)
26 m_bates 1.27 C GM_K3D_ThickSheet:: Use a thick PV sheet (should pretty much always be false)
27 m_bates 1.28 C GM_K3D_surfK :: Imposes a constant K in the surface layer
28     C GM_K3D_constRedi :: Imposes a constant K for the Redi isoneutral diffusivity
29 m_bates 1.22 C GM_K3D_smooth :: Expand PV closure in terms of baroclinic modes (for debugging only!)
30 jmc 1.15 LOGICAL GM_AdvForm
31     LOGICAL GM_AdvSeparate
32 jmc 1.18 LOGICAL GM_useBVP
33 jmc 1.19 LOGICAL GM_useSubMeso
34 jmc 1.15 LOGICAL GM_ExtraDiag
35     LOGICAL GM_InMomAsStress
36     LOGICAL GM_MNC
37     LOGICAL GM_MDSIO
38 m_bates 1.20 LOGICAL GM_useK3D
39 m_bates 1.21 LOGICAL GM_K3D_likeGM
40 m_bates 1.27 LOGICAL GM_K3D_ThickSheet
41 m_bates 1.28 LOGICAL GM_K3D_surfK
42     LOGICAL GM_K3D_constRedi
43 m_bates 1.24 LOGICAL GM_K3D_beta_eq_0
44 m_bates 1.22 LOGICAL GM_K3D_smooth
45 jmc 1.15 COMMON /GM_PARAMS_L/
46 jmc 1.19 & GM_AdvForm, GM_AdvSeparate,
47     & GM_useBVP, GM_useSubMeso,
48 jmc 1.15 & GM_ExtraDiag, GM_MNC, GM_MDSIO,
49 m_bates 1.20 & GM_InMomAsStress,
50 m_bates 1.24 & GM_useK3D, GM_K3D_likeGM, GM_K3D_smooth,
51 m_bates 1.28 & GM_K3D_beta_eq_0, GM_K3D_ThickSheet,
52     & GM_K3D_surfK, GM_K3D_constRedi
53 jmc 1.15
54 jmc 1.18 C-- GM/Redi Integer-type parameters
55     C GM_BVP_modeNumber :: vertical mode number used for speed "c" in BVP transport
56 m_bates 1.20 C GM_K3D_NModes :: number of vertical modes used for calculating Xi in K3D
57 jmc 1.18 INTEGER GM_BVP_modeNumber
58 m_bates 1.20 INTEGER GM_K3D_NModes
59 m_bates 1.23 PARAMETER (GM_K3D_NModes=6)
60 jmc 1.18 COMMON /GM_PARAMS_I/
61 m_bates 1.23 & GM_BVP_modeNumber
62 jmc 1.18
63 jmc 1.17 C-- COMMON /GM_PARAMS_C/ GM/Redi Character-type parameters
64     C GM_taper_scheme :: select which tapering/clipping scheme to use
65     C GM_iso2dFile :: input file for 2.D horiz scaling of Isopycnal diffusivity
66     C GM_iso1dFile :: input file for 1.D vert. scaling of Isopycnal diffusivity
67     C GM_bol2dFile :: input file for 2.D horiz scaling of Thickness diffusivity
68     C GM_bol1dFile :: input file for 1.D vert. scaling of Thickness diffusivity
69 jmc 1.15 CHARACTER*(40) GM_taper_scheme
70 jmc 1.17 CHARACTER*(MAX_LEN_FNAM) GM_iso2dFile
71     CHARACTER*(MAX_LEN_FNAM) GM_iso1dFile
72     CHARACTER*(MAX_LEN_FNAM) GM_bol2dFile
73     CHARACTER*(MAX_LEN_FNAM) GM_bol1dFile
74 jmc 1.15 COMMON /GM_PARAMS_C/
75 jmc 1.17 & GM_taper_scheme,
76     & GM_iso2dFile, GM_iso1dFile,
77     & GM_bol2dFile, GM_bol1dFile
78 jmc 1.15
79 jmc 1.17 C-- COMMON /GM_PARAMS_R/ GM/Redi real-type parameters
80 jmc 1.15 C GM_isopycK :: Isopycnal diffusivity [m^2/s] (Redi-tensor)
81     C GM_background_K :: Thickness diffusivity [m^2/s] (GM bolus transport)
82     C GM_maxSlope :: maximum slope (tapering/clipping) [-]
83     C GM_Kmin_horiz :: minimum horizontal diffusivity [m^2/s]
84     C GM_Small_Number :: epsilon used in computing the slope
85 jmc 1.10 C GM_slopeSqCutoff :: slope^2 cut-off value
86 jmc 1.19 C- Transition layer thickness definition:
87 jmc 1.15 C GM_facTrL2dz :: minimum Trans. Layer Thick. as a factor of local dz
88     C GM_facTrL2ML :: maximum Trans. Layer Thick. as a factor of Mix-Layer Depth
89     C GM_maxTransLay :: maximum Trans. Layer Thick. [m]
90 jmc 1.19 C- Boundary-Value-Problem method parameters:
91 jmc 1.18 C GM_BVP_cMin :: minimum value for wave speed parameter "c" in BVP [m/s]
92 jmc 1.19 C- mixed layer (Sub-Mesoscale) eddies parameterization:
93     C subMeso_Ceff :: efficiency coefficient of Mixed-Layer Eddies [-]
94     C subMeso_invTau :: inverse of mixing time-scale in sub-meso parameteriz. [s^-1]
95     C subMeso_LfMin :: minimum value for length-scale "Lf" [m]
96     C subMeso_Lmax :: maximum horizontal grid-scale length [m]
97 m_bates 1.20 C Variable K with PV diffusion parameters:
98     C GM_K3D_gamma :: mixing efficiency for 3D eddy diffusivity [-]
99 m_bates 1.27 C GM_K3D_b1 :: an empirically determined constant of O(1)
100 m_bates 1.20 C GM_K3D_EadyMinDepth :: upper depth for Eady calculation
101     C GM_K3D_EadyMaxDepth :: lower depth for Eady calculation
102     C GM_maxK3D :: Upper bound on the diffusivity
103 m_bates 1.21 C GM_K3D_constK :: Constant diffusivity to use when GM_useK3D=.TRUE. and GM_K3D_likeGM=.TRUE.
104 m_bates 1.27 C GM_K3D_Rmax :: Upper bound on the length scale used for calculating urms
105     C GM_K3D_Rmin :: Lower bound on the length scale used for calculating the eddy radius
106 m_bates 1.20 C GM_K3D_minCori :: minimum value for f (to stop things blowing up near the equator)
107     C GM_K3D_minN2 :: minimum value for the square of the buoyancy frequency
108     C GM_K3D_surfMinDepth :: minimum value for the depth of the surface layer
109 m_bates 1.23 C GM_K3D_vecFreq :: Frequency at which to update the baroclinic modes
110 m_bates 1.29 C GM_K3D_minRenorm:: minimum value for the renormalisation factor
111     C GM_K3D_maxRenorm:: maximum value for the renormalisation factor
112 jmc 1.19
113 jmc 1.6 _RL GM_isopycK
114 adcroft 1.1 _RL GM_background_K
115     _RL GM_maxSlope
116 jmc 1.6 _RL GM_Kmin_horiz
117 jmc 1.10 _RL GM_Small_Number
118     _RL GM_slopeSqCutoff
119 adcroft 1.1 _RL GM_Visbeck_alpha
120     _RL GM_Visbeck_length
121     _RL GM_Visbeck_depth
122 jmc 1.16 _RL GM_Visbeck_minDepth
123     _RL GM_Visbeck_maxSlope
124     _RL GM_Visbeck_minVal_K
125     _RL GM_Visbeck_maxVal_K
126 m_bates 1.20 _RL GM_K3D_gamma
127 m_bates 1.27 _RL GM_K3D_b1
128 m_bates 1.20 _RL GM_K3D_EadyMinDepth
129     _RL GM_K3D_EadyMaxDepth
130     _RL GM_K3D_Lambda
131     _RL GM_K3D_smallK
132     _RL GM_K3D_maxC
133     _RL GM_maxK3D
134 m_bates 1.21 _RL GM_K3D_constK
135 m_bates 1.27 _RL GM_K3D_Rmax
136     _RL GM_K3D_Rmin
137 m_bates 1.20 _RL GM_K3D_minCori
138     _RL GM_K3D_minN2
139     _RL GM_K3D_surfMinDepth
140 m_bates 1.23 _RL GM_K3D_vecFreq
141 m_bates 1.29 _RL GM_K3D_minRenorm
142     _RL GM_K3D_maxRenorm
143 jmc 1.15 _RL GM_facTrL2dz
144     _RL GM_facTrL2ML
145     _RL GM_maxTransLay
146 adcroft 1.1 _RL GM_Scrit
147     _RL GM_Sd
148 jmc 1.18 _RL GM_BVP_cMin
149 jmc 1.19 _RL subMeso_Ceff
150     _RL subMeso_invTau
151     _RL subMeso_LfMin
152     _RS subMeso_Lmax
153     COMMON /GM_PARAMS_RL/
154 jmc 1.15 & GM_isopycK, GM_background_K,
155 adcroft 1.1 & GM_maxSlope,
156 jmc 1.6 & GM_Kmin_horiz,
157 jmc 1.10 & GM_Small_Number, GM_slopeSqCutoff,
158 jmc 1.16 & GM_Visbeck_alpha, GM_Visbeck_length,
159 adcroft 1.1 & GM_Visbeck_depth,
160 jmc 1.16 & GM_Visbeck_minDepth, GM_Visbeck_maxSlope,
161     & GM_Visbeck_minVal_K, GM_Visbeck_maxVal_K,
162 m_bates 1.27 & GM_K3D_gamma, GM_K3D_b1, GM_K3D_EadyMinDepth,
163 m_bates 1.20 & GM_K3D_EadyMaxDepth, GM_K3D_Lambda,
164 m_bates 1.27 & GM_K3D_smallK, GM_K3D_maxC,
165 m_bates 1.20 & GM_maxK3D, GM_K3D_minCori, GM_K3D_minN2,
166 m_bates 1.27 & GM_K3D_surfMinDepth, GM_K3D_Rmax, GM_K3D_Rmin,
167 m_bates 1.29 & GM_K3D_constK, GM_K3D_vecFreq,
168     & GM_K3D_minRenorm, GM_K3D_maxRenorm,
169 jmc 1.15 & GM_facTrL2dz, GM_facTrL2ML, GM_maxTransLay,
170 jmc 1.19 & GM_Scrit, GM_Sd, GM_BVP_cMin,
171     & subMeso_Ceff, subMeso_invTau, subMeso_LfMin
172     COMMON /GM_PARAMS_RS/
173     & subMeso_Lmax
174 adcroft 1.1
175 jmc 1.17 C-- COMMON /GM_DERIVED_PAR/ other GM/Redi parameters
176     C (derived from previous block and not directly user configured)
177 adcroft 1.1 _RL GM_rMaxSlope
178 jmc 1.6 _RL GM_skewflx
179     _RL GM_advect
180 jmc 1.18 _RL GM_BVP_rModeNumber
181     _RL GM_BVP_cHat2Min
182 jmc 1.15 COMMON /GM_DERIVED_PAR/
183     & GM_rMaxSlope,
184 jmc 1.18 & GM_skewflx, GM_advect,
185     & GM_BVP_rModeNumber, GM_BVP_cHat2Min
186    
187 adcroft 1.1
188 jmc 1.17 C-- COMMON /GM_COEFFICIENTS/ GM/Redi scaling coefficients
189     C defined at grid-cell center (tracer location)
190     C GM_isoFac2d :: 2.D horiz scaling factor [-] of Isopycnal diffusivity
191     C GM_bolFac2d :: 2.D horiz scaling factor [-] of Thickness diffusivity
192     C GM_isoFac1d :: 1.D vert. scaling factor [-] of Isopycnal diffusivity
193     C GM_bolFac1d :: 1.D vert. scaling factor [-] of Thickness diffusivity
194     _RS GM_isoFac2d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
195     _RS GM_bolFac2d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
196     _RS GM_isoFac1d(Nr)
197     _RS GM_bolFac1d(Nr)
198     COMMON /GM_COEFFICIENTS/
199     & GM_isoFac2d, GM_bolFac2d, GM_isoFac1d, GM_bolFac1d
200    
201 jmc 1.15 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
202     C--- GM/Redi tensor elements
203 adcroft 1.1
204     C Bottom row of tensor corresponds to W points
205 jmc 1.17 C Kwx :: K_31 element of GM/Redi tensor, X direction at W point
206     C Kwy :: K_32 element of GM/Redi tensor, Y direction at W point
207     C Kwz :: K_33 element of GM/Redi tensor, Z direction at W point
208 heimbach 1.3 _RL Kwx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
209     _RL Kwy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
210     _RL Kwz(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
211 adcroft 1.1 COMMON /GM_Wtensor/ Kwx,Kwy,Kwz
212    
213     #ifdef GM_NON_UNITY_DIAGONAL
214 jmc 1.15 C Horizontal part of the tensor
215 jmc 1.17 C Kux :: K_11 element of GM/Redi tensor, X direction at U point
216     C Kvy :: K_22 element of GM/Redi tensor, Y direction at V point
217 heimbach 1.3 _RL Kux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
218     _RL Kvy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
219 jmc 1.6 COMMON /GM_HorTensor/ Kux,Kvy
220 adcroft 1.1 #else
221     _RL Kux,Kvy
222     PARAMETER(Kux=1.,Kvy=1.)
223 jmc 1.6 #endif
224    
225     #ifdef GM_EXTRA_DIAGONAL
226     C First/second rows of tensor corresponds to U/V points
227 jmc 1.17 C Kuz :: K_13 element of GM/Redi tensor, Z direction at U point
228     C Kvz :: K_23 element of GM/Redi tensor, Z direction at V point
229 jmc 1.6 _RL Kuz(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
230     _RL Kvz(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
231     COMMON /GM_UVtensor/ Kuz,Kvz
232     #else
233     _RL Kuz,Kvz
234     PARAMETER(Kuz=1.,Kvz=1.)
235     #endif
236    
237     #ifdef GM_BOLUS_ADVEC
238 jmc 1.15 C GM advection formulation: bolus velocities are derived from 2
239     C streamfunctions PsiX and PsiY :
240 jmc 1.6 _RL GM_PsiX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
241     _RL GM_PsiY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
242     COMMON /GM_BOLUS/ GM_PsiX,GM_PsiY
243 adcroft 1.1 #endif
244    
245     #ifdef GM_VISBECK_VARIABLE_K
246     C GM mixing/stirring coefficient (spatially variable in horizontal
247     C for Visbeck et al. parameterization)
248 heimbach 1.3 _RL VisbeckK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
249 adcroft 1.1 COMMON /GM_Visbeck/ VisbeckK
250     #endif
251    
252 m_bates 1.20 #ifdef GM_K3D
253     C K3D :: The three dimensional eddy mixing coeffixint [m**2/s]
254     _RL K3D(1-Olx:sNx+Olx,1-Oly:sNy+Oly,1:Nr,nSx,nSy)
255 m_bates 1.23 _RL modesC(1,1-Olx:sNx+Olx,1-Oly:sNy+Oly,1:Nr,nSx,nSy)
256     _RL modesW(GM_K3D_NModes,1-Olx:sNx+Olx,
257     & 1-Oly:sNy+Oly,1:Nr,nSx,nSy)
258     _RL modesS(GM_K3D_NModes,1-Olx:sNx+Olx,
259     & 1-Oly:sNy+Oly,1:Nr,nSx,nSy)
260     _RL Rdef(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy)
261 m_bates 1.20
262 m_bates 1.23
263     COMMON /GM_K3D/ K3D, modesC, modesW, modesS, Rdef
264 m_bates 1.20 #endif
265 adcroft 1.1 #endif /* ALLOW_GMREDI */
266 edhill 1.12
267     CEH3 ;;; Local Variables: ***
268     CEH3 ;;; mode:fortran ***
269     CEH3 ;;; End: ***

  ViewVC Help
Powered by ViewVC 1.1.22