1 |
heimbach |
1.3 |
C $Header: /escher1/cvs/master/mitgcmuv/pkg/kpp/KPP_PARAMS.h,v 1.4 2000/09/11 23:31:25 dimitri Exp $ |
2 |
adcroft |
1.1 |
|
3 |
|
|
C /==========================================================\ |
4 |
|
|
C | KPP_PARAMS.h | |
5 |
|
|
C | o Basic parameter header for KPP vertical mixing | |
6 |
|
|
C | parameterization. These parameters are initialized by | |
7 |
|
|
C | and/or read in from data.kpp file. | |
8 |
|
|
C \==========================================================/ |
9 |
|
|
|
10 |
|
|
C Parameters used in kpp routine arguments (needed for compilation |
11 |
|
|
C of kpp routines even if ALLOW_KPP is not defined) |
12 |
|
|
C mdiff = number of diffusivities for local arrays |
13 |
|
|
C imt = array dimension for local arrays |
14 |
|
|
C Nrm1, Nrp1, Nrp2 = number of vertical levels |
15 |
|
|
|
16 |
|
|
integer mdiff, imt, Nrm1, Nrp1, Nrp2 |
17 |
|
|
parameter (mdiff = 3) |
18 |
|
|
#ifdef FRUGAL_KPP |
19 |
|
|
parameter (imt = sNx*sNy) |
20 |
|
|
#else |
21 |
|
|
parameter (imt = (sNx+2*OLx)*(sNy+2*OLy)) |
22 |
|
|
#endif |
23 |
|
|
parameter (Nrm1 = Nr-1) |
24 |
|
|
parameter (Nrp1 = Nr+1) |
25 |
|
|
parameter (Nrp2 = Nr+2) |
26 |
|
|
|
27 |
|
|
#ifdef ALLOW_KPP |
28 |
|
|
|
29 |
heimbach |
1.3 |
C Package on/off information |
30 |
|
|
LOGICAL kppPackageIsOn |
31 |
|
|
COMMON /KPP_PKG/ kppPackageIsOn |
32 |
|
|
|
33 |
adcroft |
1.1 |
C Time invariant parameters initialized by subroutine kmixinit |
34 |
|
|
C nzmax (nx,ny) - Maximum number of wet levels in each column |
35 |
|
|
C pMask - Mask relating to Pressure/Tracer point grid. |
36 |
|
|
C 0. if P point is on land. |
37 |
|
|
C 1. if P point is in water. |
38 |
|
|
C zgrid (0:Nr+1) - vertical levels of tracers (<=0) (m) |
39 |
|
|
C hwide (0:Nr+1) - layer thicknesses (>=0) (m) |
40 |
|
|
C kpp_freq - Re-computation frequency for KPP parameters (s) |
41 |
adcroft |
1.2 |
C kpp_dumpFreq - KPP dump frequency. (s) |
42 |
|
|
C kpp_taveFreq - KPP time-averaging frequency. (s) |
43 |
heimbach |
1.3 |
|
44 |
adcroft |
1.1 |
|
45 |
|
|
INTEGER nzmax (1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) |
46 |
|
|
_RS pMask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
47 |
|
|
_RS zgrid (0:Nr+1) |
48 |
|
|
_RS hwide (0:Nr+1) |
49 |
|
|
_RL kpp_freq |
50 |
adcroft |
1.2 |
_RL kpp_dumpFreq |
51 |
|
|
_RL kpp_taveFreq |
52 |
adcroft |
1.1 |
|
53 |
|
|
COMMON /kpp_i/ nzmax |
54 |
|
|
|
55 |
|
|
COMMON /kpp_RS/ pMask, zgrid, hwide |
56 |
|
|
|
57 |
adcroft |
1.2 |
COMMON /kpp_RL/ kpp_freq, kpp_dumpFreq, kpp_taveFreq |
58 |
adcroft |
1.1 |
|
59 |
|
|
|
60 |
|
|
C----------------------------------------------------------------------- |
61 |
|
|
C |
62 |
|
|
C KPP flags and min/max permitted values for mixing parameters |
63 |
|
|
c |
64 |
|
|
C KPPmixingMaps - if true, include KPP diagnostic maps in STDOUT |
65 |
|
|
C KPPwriteState - if true, write KPP state to file |
66 |
|
|
C minKPPghat, maxKPPghat - KPP non local transport bounds (s/m^2) |
67 |
|
|
C minKPPviscAz, maxKPPviscAz - KPP viscosity bounds (m^2/s) |
68 |
|
|
C minKPPdiffKzT, maxKPPdiffKzT - KPP heat diffusivity bounds (m^2/s) |
69 |
|
|
C minKPPdiffKzS, maxKPPdiffKzS - KPP tracer diffusivity bounds (m^2/s) |
70 |
|
|
C minKPPhbl - KPPhbl minimum value (m) |
71 |
|
|
C |
72 |
|
|
C----------------------------------------------------------------------- |
73 |
|
|
|
74 |
|
|
LOGICAL KPPmixingMaps, KPPwriteState |
75 |
|
|
|
76 |
|
|
COMMON /KPP_PARM_L/ |
77 |
|
|
& KPPmixingMaps, KPPwriteState |
78 |
|
|
|
79 |
|
|
_RS minKPPghat , maxKPPghat |
80 |
|
|
_RS minKPPviscAz , maxKPPviscAz(Nr) |
81 |
|
|
_RS minKPPdiffKzT, maxKPPdiffKzT |
82 |
|
|
_RS minKPPdiffKzS, maxKPPdiffKzS, minKPPhbl |
83 |
|
|
|
84 |
|
|
COMMON /KPP_PARM_R/ |
85 |
|
|
& minKPPghat , maxKPPghat |
86 |
|
|
& , minKPPviscAz , maxKPPviscAz |
87 |
|
|
& , minKPPdiffKzT, maxKPPdiffKzT |
88 |
|
|
& , minKPPdiffKzS, maxKPPdiffKzS, minKPPhbl |
89 |
|
|
|
90 |
|
|
c====================== file "kmixcom.h" ======================= |
91 |
|
|
c |
92 |
|
|
c----------------------------------------------------------------------- |
93 |
|
|
c Define various parameters and common blocks for KPP vertical- |
94 |
|
|
c mixing scheme; used in "kppmix.F" subroutines. |
95 |
|
|
c Constants are set in subroutine "ini_parms". |
96 |
|
|
c----------------------------------------------------------------------- |
97 |
|
|
c |
98 |
|
|
c----------------------------------------------------------------------- |
99 |
|
|
c parameters for several subroutines |
100 |
|
|
c |
101 |
|
|
c epsln = 1.0e-20 |
102 |
|
|
c phepsi = 1.0e-10 |
103 |
|
|
c epsilon = nondimensional extent of the surface layer = 0.1 |
104 |
|
|
c vonk = von Karmans constant = 0.4 |
105 |
|
|
c dB_dz = maximum dB/dz in mixed layer hMix = 5.2e-5 s^-2 |
106 |
|
|
c conc1,conam,concm,conc2,zetam,conas,concs,conc3,zetas |
107 |
|
|
c = scalar coefficients |
108 |
|
|
c----------------------------------------------------------------------- |
109 |
|
|
|
110 |
|
|
_RS epsln,phepsi,epsilon,vonk,dB_dz, |
111 |
|
|
$ conc1, |
112 |
|
|
$ conam,concm,conc2,zetam, |
113 |
|
|
$ conas,concs,conc3,zetas |
114 |
|
|
|
115 |
|
|
common /kmixcom/ epsln,phepsi,epsilon,vonk,dB_dz, |
116 |
|
|
$ conc1, |
117 |
|
|
$ conam,concm,conc2,zetam, |
118 |
|
|
$ conas,concs,conc3,zetas |
119 |
|
|
|
120 |
|
|
c----------------------------------------------------------------------- |
121 |
|
|
c parameters for subroutine "bldepth" |
122 |
|
|
c |
123 |
|
|
c |
124 |
|
|
c to compute depth of boundary layer: |
125 |
|
|
c |
126 |
|
|
c Ricr = critical bulk Richardson Number = 0.3 |
127 |
|
|
c cekman = coefficient for ekman depth = 0.7 |
128 |
|
|
c cmonob = coefficient for Monin-Obukhov depth = 1.0 |
129 |
|
|
c concv = ratio of interior buoyancy frequency to |
130 |
|
|
c buoyancy frequency at entrainment depth = 1.8 |
131 |
|
|
c hbf = fraction of bounadry layer depth to |
132 |
|
|
c which absorbed solar radiation |
133 |
|
|
c contributes to surface buoyancy forcing = 1.0 |
134 |
|
|
c Vtc = non-dimensional coefficient for velocity |
135 |
|
|
c scale of turbulant velocity shear |
136 |
|
|
c (=function of concv,concs,epsilon,vonk,Ricr) |
137 |
|
|
c----------------------------------------------------------------------- |
138 |
|
|
|
139 |
|
|
_RS Ricr,cekman,cmonob,concv,hbf,Vtc |
140 |
|
|
|
141 |
|
|
common /kmixcbd/ Ricr,cekman,cmonob,concv,hbf,Vtc |
142 |
|
|
|
143 |
|
|
c----------------------------------------------------------------------- |
144 |
|
|
c parameters and common arrays for subroutines "kmixinit" |
145 |
|
|
c and "wscale" |
146 |
|
|
c |
147 |
|
|
c |
148 |
|
|
c to compute turbulent velocity scales: |
149 |
|
|
c |
150 |
|
|
c nni = number of values for zehat in the look up table |
151 |
|
|
c nnj = number of values for ustar in the look up table |
152 |
|
|
c |
153 |
|
|
c wmt = lookup table for wm, the turbulent velocity scale |
154 |
|
|
c for momentum |
155 |
|
|
c wst = lookup table for ws, the turbulent velocity scale |
156 |
|
|
c for scalars |
157 |
|
|
c deltaz = delta zehat in table |
158 |
|
|
c deltau = delta ustar in table |
159 |
|
|
c zmin = minimum limit for zehat in table (m3/s3) |
160 |
|
|
c zmax = maximum limit for zehat in table |
161 |
|
|
c umin = minimum limit for ustar in table (m/s) |
162 |
|
|
c umax = maximum limit for ustar in table |
163 |
|
|
c----------------------------------------------------------------------- |
164 |
|
|
|
165 |
|
|
integer nni , nnj |
166 |
|
|
parameter (nni = 890, nnj = 480) |
167 |
|
|
|
168 |
|
|
_RS wmt(0:nni+1,0:nnj+1), wst(0:nni+1,0:nnj+1) |
169 |
|
|
_RS deltaz,deltau,zmin,zmax,umin,umax |
170 |
|
|
common /kmixcws/ wmt, wst |
171 |
|
|
$ , deltaz,deltau,zmin,zmax,umin,umax |
172 |
|
|
|
173 |
|
|
c----------------------------------------------------------------------- |
174 |
|
|
c parameters for subroutine "ri_iwmix" |
175 |
|
|
c |
176 |
|
|
c |
177 |
|
|
c to compute vertical mixing coefficients below boundary layer: |
178 |
|
|
c |
179 |
|
|
c num_v_smooth_Ri = number of times Ri is vertically smoothed |
180 |
|
|
c num_v_smooth_BV, num_z_smooth_sh, and num_m_smooth_sh are dummy |
181 |
|
|
c variables kept for backward compatibility of the data file |
182 |
|
|
c Riinfty = local Richardson Number limit for shear instability = 0.7 |
183 |
|
|
c BVSQcon = Brunt-Vaisala squared (1/s^2) |
184 |
|
|
c difm0 = viscosity max due to shear instability (m^2/s) |
185 |
|
|
c difs0 = tracer diffusivity .. (m^2/s) |
186 |
|
|
c dift0 = heat diffusivity .. (m^2/s) |
187 |
|
|
c difmcon = viscosity due to convective instability (m^2/s) |
188 |
|
|
c difscon = tracer diffusivity .. (m^2/s) |
189 |
|
|
c diftcon = heat diffusivity .. (m^2/s) |
190 |
|
|
c----------------------------------------------------------------------- |
191 |
|
|
|
192 |
|
|
INTEGER num_v_smooth_Ri, num_v_smooth_BV |
193 |
|
|
INTEGER num_z_smooth_sh, num_m_smooth_sh |
194 |
|
|
_RS Riinfty, BVSQcon |
195 |
|
|
_RS difm0 , difs0 , dift0 |
196 |
|
|
_RS difmcon, difscon, diftcon |
197 |
|
|
|
198 |
|
|
COMMON /kmixcri_i/ num_v_smooth_Ri, num_v_smooth_BV |
199 |
|
|
1 , num_z_smooth_sh, num_m_smooth_sh |
200 |
|
|
|
201 |
|
|
COMMON /kmixcri_r/ Riinfty, BVSQcon |
202 |
|
|
1 , difm0, difs0, dift0 |
203 |
|
|
2 , difmcon, difscon, diftcon |
204 |
|
|
|
205 |
|
|
c----------------------------------------------------------------------- |
206 |
|
|
c parameters for subroutine "ddmix" |
207 |
|
|
c |
208 |
|
|
c |
209 |
|
|
c to compute additional diffusivity due to double diffusion: |
210 |
|
|
c |
211 |
|
|
c Rrho0 = limit for double diffusive density ratio |
212 |
|
|
c dsfmax = maximum diffusivity in case of salt fingering (m2/s) |
213 |
|
|
c----------------------------------------------------------------------- |
214 |
|
|
|
215 |
|
|
_RS Rrho0, dsfmax |
216 |
|
|
common /kmixcdd/ Rrho0, dsfmax |
217 |
|
|
|
218 |
|
|
c----------------------------------------------------------------------- |
219 |
|
|
c parameters for subroutine "blmix" |
220 |
|
|
c |
221 |
|
|
c |
222 |
|
|
c to compute mixing within boundary layer: |
223 |
|
|
c |
224 |
|
|
c cstar = proportionality coefficient for nonlocal transport |
225 |
|
|
c cg = non-dimensional coefficient for counter-gradient term |
226 |
|
|
c----------------------------------------------------------------------- |
227 |
|
|
|
228 |
|
|
_RS cstar, cg |
229 |
|
|
|
230 |
|
|
common /kmixcbm/ cstar, cg |
231 |
|
|
|
232 |
|
|
#endif /* ALLOW_KPP */ |