1 |
C $Id: PARAMS.h,v 1.7 1997/06/21 02:00:03 cnh Exp $ |
2 |
C Include file defining PARAMS common block variables. |
3 |
C These variables contain global constants used throughout the model. |
4 |
C |
5 |
C PARAMS_F : Floating point constants |
6 |
C fCori : Reference coriolios parameter. |
7 |
C ronil : Reference density of fluid, kg/m^3. |
8 |
C G : Gravitational acceleration, m/s^2. |
9 |
C Cp : Specific heat capacity of water. |
10 |
C dM : Horizontal grid spacing, m. |
11 |
C dPhi : North South angular spacing on spherical grid, radians. |
12 |
C dTheta : West East angular spacing on spherical grid, radians. |
13 |
C phiMin : Southern most extent of model on sphere, radians. |
14 |
C thetaMin : Western extent of domain on sphere, radians. |
15 |
C delT : Time step, seconds. |
16 |
C rdelT : Reciprocal of time step, 1/seconds. |
17 |
C rZero : Radius of bottom of domain on sphere. (Mean radius when the |
18 |
C shallow atmosphere approximation is made), m. |
19 |
C toler3d : Tolerance for three dimensional elliptic inverter. |
20 |
C divergMax : Maximum of range within which elliptic inverter tries to |
21 |
C hold the maximum divergence. |
22 |
C divergMin : Minimum of range within which elliptic inverter tries to |
23 |
C hold the maximum divergence |
24 |
C divLim : Limiting divergence. Model stops when either 3d or horizontal |
25 |
C divergence exceeds divLim. |
26 |
C toler2d : Tolerance for two dimensional elliptic inverter. |
27 |
C divhMax : Maximum of range within which elliptic inverter tries to |
28 |
C hold the maximum divergence of depth integrated flow. |
29 |
C divhMin : Minimum of range within which elliptic inverter tries to |
30 |
C hold the maximum divergence of the integrated flow. |
31 |
C delPs : Vertical separation between w points, Pa. |
32 |
C rdelPs : Reciprocal of delps. |
33 |
C abEps : Adams Bashforth time stepping stabilising factor |
34 |
C (see - Potter - Computational Physics page 69. ) |
35 |
C endTime : Time in seconds at which integration will end. |
36 |
C startTime : TIme in seconds at which integration starts. |
37 |
C currentTime : Current simulation time in seconds. |
38 |
C cAdjFreq : Frequency in seconds with which convective adjustment |
39 |
C performed. |
40 |
C dumpFreq : Default frequency in seconds with which fields are dumped. |
41 |
C dStateFreq: Frequency with which state variables are dumped. |
42 |
C dPUFreq : Frequency with which pick up information is dumped. |
43 |
C dInvFreq : Frequency with which inverter information is dumped. |
44 |
C ths : Initial temperature field vertical profile. |
45 |
C ssppt : Initial salinity field vertical profile. |
46 |
C us : Initial velocity field vertical profile |
47 |
C vs : Initial velocity field vertical profile. |
48 |
C sBeta : Saline contraction coefficient. |
49 |
C tAlpha : Thermal expansion coefficient. |
50 |
C rAja : Relative weight of D grid coriolis term to C grid term. |
51 |
C a2MomXY : Laplacian momentum dissipation coefficient in horizontal. |
52 |
C a2MomZ : Laplacian momentum dissipation coefficient in vertical. |
53 |
C a4MomXY : Biharmonic momentum dissipation coefficient in horizontal. |
54 |
C a4MomExp : Biharmonic momentum dissipation scaling coefficient. |
55 |
C a2TempXY : Laplacian temperature dissipation coefficient in horizontal. |
56 |
C a2TempZ : Laplacian temperature dissipation coefficient in vertical. |
57 |
C a4TempXY : Biharmonic temperature dissipation coefficient in horizontal. |
58 |
C a2SaltXY : Laplacian temperature dissipation coefficient in horizontal. |
59 |
C a2SaltZ : Laplacian temperature dissipation coefficient in vertical. |
60 |
C a4SaltXY : Biharmonic temperature dissipation coefficient in horizontal. |
61 |
C freeSurfFac : Implicit free surface factor for main diagonal |
62 |
C gBaro : g for the barotropic mode. |
63 |
C : Reducing Gbaro accelerates the convergence of the |
64 |
C : two-d elliptic problem at the expense of distorting the |
65 |
C : barotropic wave speeds. |
66 |
C psGam : Factor for implicit "weight" on P_n+0.5 |
67 |
C : PsGam = 1 forwad, PsGam = 0.5 centered, PsGam = 0 lagged. |
68 |
C uDivAlpha : Factor for weight on U_n+0.5 in free surface equation |
69 |
C : UdivAlpha = 1.0 fully implicit |
70 |
C : UdivAlpha = 0.5 centered |
71 |
C : UdivAlpha = 0.0 fully explicit |
72 |
C tauCD : CD relaxation time scale. |
73 |
C : TauCD = dT fully C-grid ( noisy at |
74 |
C : unresolved deformation radius ) |
75 |
C : TauCD >> dT toward D grid ( decouples ) |
76 |
C rAja : C-D relaxation using fractional coupling. |
77 |
C rhoRefSurf : Reference density for surface layers. Used in evaluating ! Steric |
78 |
C : steric anomaly. ! Steric |
79 |
C aSyncFac : Asynchronus time stepping factor. |
80 |
C epsDrag : Bottom drag coefficient |
81 |
COMMON /PARAMS_F/ |
82 |
& ronil, G, Cp, dM, dPhi, dTheta, phiMin, thetaMin, delT, rZero, |
83 |
& toler3d, divergMax, divergMin, toler2d, divhMax, divhMin, divLim, |
84 |
& delPs, rDelt, abEps, endTime, startTime, currentTime, cAdjFreq, |
85 |
& dumpFreq, dStateFreq, dPUFreq, dInvFreq, dCkptFreq, |
86 |
& ths, ssppt, us, vs, sBeta, tAlpha, rDelps, rAja, tauCD, |
87 |
& a2MomXY,a2MomZ,a4MomXY,a2TempXY,a2TempZ,a4TempXY,a2SaltXY,a2SaltZ, |
88 |
& a4SaltXY, fCori,a4MomExp, |
89 |
& freeSurfFac, gBaro, psGam, uDivAlpha, |
90 |
& rhoRefSurf, ! Steric |
91 |
& aSyncFac, epsDrag |
92 |
REAL fCori |
93 |
REAL ronil |
94 |
REAL G |
95 |
REAL Cp |
96 |
REAL dM |
97 |
REAL dPhi |
98 |
REAL dTheta |
99 |
REAL phiMin |
100 |
REAL thetaMin |
101 |
REAL delT |
102 |
REAL rZero |
103 |
REAL toler3d |
104 |
REAL divergMax |
105 |
REAL divergMin |
106 |
REAL toler2d |
107 |
REAL divhMax |
108 |
REAL divhMin |
109 |
REAL divLim |
110 |
REAL delPs(Nz) |
111 |
CMF$LAYOUT delPs(:SERIAL) |
112 |
REAL rdelPs(Nz) |
113 |
CMF$LAYOUT rdelPs(:SERIAL) |
114 |
REAL rDelt |
115 |
REAL abEps |
116 |
REAL currentTime |
117 |
REAL startTime |
118 |
REAL endTime |
119 |
REAL dumpFreq |
120 |
REAL dStateFreq |
121 |
REAL dPUFreq |
122 |
REAL dInvFreq |
123 |
REAL dCkptFreq |
124 |
REAL cAdjFreq |
125 |
REAL ths(Nz) |
126 |
CMF$LAYOUT ths(:SERIAL) |
127 |
REAL ssppt(Nz) |
128 |
CMF$LAYOUT ssppt(:SERIAL) |
129 |
REAL us(Nz) |
130 |
CMF$LAYOUT us(:SERIAL) |
131 |
REAL vs(Nz) |
132 |
CMF$LAYOUT vs(:SERIAL) |
133 |
REAL sBeta |
134 |
REAL tAlpha |
135 |
REAL rAja |
136 |
REAL tauCD |
137 |
REAL a2MomXY |
138 |
REAL a4MomXY |
139 |
REAL a4MomExp |
140 |
REAL a2MomZ |
141 |
REAL a2TempXY |
142 |
REAL a4TempXY |
143 |
REAL a2TempZ |
144 |
REAL a2SaltXY |
145 |
REAL a4SaltXY |
146 |
REAL a2SaltZ |
147 |
REAL freeSurfFac |
148 |
REAL gBaro |
149 |
REAL psGam |
150 |
REAL uDivAlpha |
151 |
REAL rhoRefSurf ! Steric |
152 |
REAL aSyncFac |
153 |
REAL epsDrag |
154 |
C |
155 |
C PARAMS_L: Logical constants. |
156 |
C separatePH : TRUE -> Calculate hydrostatic pressure by vertically |
157 |
C integrating g.rho. |
158 |
C separatePS : TRUE -> Find surface pressure which balances the depth |
159 |
C inteegrated momentum equations separately. |
160 |
C nonHydrostatic: TRUE -> Solve the full Navier-Stokes equation set with |
161 |
C prognostic equation for the vertical velocity. |
162 |
C momentumStepping: TRUE -> Step forward prognostic equations for U,V and W. |
163 |
C pressureStepping: TRUE -> Solve for pressure field. |
164 |
C tempStepping: TRUE -> Step forward prognostic equations for T. |
165 |
C saltStepping: TRUE -> Step forward prognostic equations for S. |
166 |
C momentumAdvection:TRUE -> Include non-linear momentume terms. |
167 |
C momentumDiffusion:TRUE -> Include momentum dissipation. |
168 |
C momBhDiiffusion: TRUE -> Include biharmonic momentum dissipation. |
169 |
C metricTerms: TRUE -> Include curvilinear coordinate forces. |
170 |
C coriolis: TRUE -> Include coriolis terms. |
171 |
C verticalCoriolis: TRUE -> Include vertical components of coriolis force. |
172 |
C momentumForcing: TRUE -> Include velocity field forcing. |
173 |
C saltForcing: TRUE -> Include salinity forcing. |
174 |
C tempForcing: TRUE -> Include temperature forcing. |
175 |
C freeSlipSide: TRUE -> Apply free slip on side walls. |
176 |
C freeSlipTop: TRUE -> Apply free slip at top. |
177 |
C freeSlipBottom: TRUE -> Apply free slip at bottom. |
178 |
C tempAdvection: TRUE -> Include advection of temperature. |
179 |
C tempDiffusion: TRUE -> Include dissipation of temperature. |
180 |
C tempBhDiiffusion: TRUE -> Include biharmonic temperature dissipation. |
181 |
C saltAdvection: TRUE -> Include advection of salt. |
182 |
C saltDiffusion: TRUE -> Include dissipation of salinity. |
183 |
C saltBhDiiffusion: TRUE -> Include biharmonic salinity dissipation. |
184 |
C convectiveAdjustment: TRUE -> Include vertical mixing scheme. |
185 |
C buoyancy: TRUE -> Include g.rho term in w equation. |
186 |
C gradHpnh: TRUE -> Include ddx and ddy of pnh in u v momentum eqn |
187 |
C findD2pnhDZ2 TRUE -> Solve dirichlet problem for vertical gradient of |
188 |
C pnh. Ignoring lateral interactions. |
189 |
C stepW : Flag to control whether w is diagnosed or stepped forward. |
190 |
C stericEffect TRUE -> Include steric anomaly in surface elevation. ! Steric |
191 |
C OceanModel TRUE -> G_prime = g*RHO_prime/RHONIL |
192 |
C AtmosphericModel TRUE -> G_prime = g*T_prime/T_ref |
193 |
C InitialisationError TRUE -> Error detected during model initialisation phase. |
194 |
C IntegrationError TRUE -> Error detected during model integration phase. |
195 |
C IntegrationError TRUE -> Error detected during model integration phase. |
196 |
C pickupRun TRUE -> Run is starting from previously saved model state. |
197 |
COMMON /PARAMS_L/ |
198 |
& separatePH, separatePS, nonHydrostatic, |
199 |
& momentumStepping, pressureStepping, tempStepping, saltStepping, |
200 |
& momentumAdvection, momentumDiffusion, momBhDiffusion, metricTerms, |
201 |
& coriolis, verticalCoriolis, momentumForcing, freeSlipSide, |
202 |
& freeSlipBottom, freeSlipTop, tempAdvection, tempDiffusion, |
203 |
& tempBhDiffusion, saltAdvection, saltDiffusion, saltBhDiffusion, |
204 |
& tempForcing, saltForcing, convectiveAdjustment, buoyancy, stepW, |
205 |
& gradHpnh, findD2pnhDZ2, |
206 |
& stericEffect, ! Steric |
207 |
& OceanModel, AtmosphericModel, initialisationError, integrationError, pickupRun |
208 |
LOGICAL separatePh |
209 |
LOGICAL separatePs |
210 |
LOGICAL nonHydrostatic |
211 |
LOGICAL momentumStepping |
212 |
LOGICAL pressureStepping |
213 |
LOGICAL tempStepping |
214 |
LOGICAL saltStepping |
215 |
LOGICAL momentumAdvection |
216 |
LOGICAL momentumDiffusion |
217 |
LOGICAL momBhDiffusion |
218 |
LOGICAL metricTerms |
219 |
LOGICAL coriolis |
220 |
LOGICAL verticalCoriolis |
221 |
LOGICAL momentumForcing |
222 |
LOGICAL saltForcing |
223 |
LOGICAL tempForcing |
224 |
LOGICAL freeSlipSide |
225 |
LOGICAL freeSlipTop |
226 |
LOGICAL freeSlipBottom |
227 |
LOGICAL tempAdvection |
228 |
LOGICAL tempDiffusion |
229 |
LOGICAL tempBhDiffusion |
230 |
LOGICAL saltAdvection |
231 |
LOGICAL saltDiffusion |
232 |
LOGICAL saltBhDiffusion |
233 |
LOGICAL convectiveAdjustment |
234 |
LOGICAL buoyancy |
235 |
LOGICAL stepW |
236 |
LOGICAL gradHpnh |
237 |
LOGICAL findD2pnhDZ2 |
238 |
LOGICAL stericEffect ! Steric |
239 |
LOGICAL OceanModel ! Atm |
240 |
LOGICAL AtmosphericModel ! Atm |
241 |
LOGICAL initialisationError |
242 |
LOGICAL integrationError |
243 |
LOGICAL pickupRun |
244 |
C |
245 |
C PARAMS_I: Integer constants. |
246 |
C L : Model grid x dimension. |
247 |
C M : Model grid y dimension. |
248 |
C N : Model grid z dimension. |
249 |
C max3dIt : Maximum number of iterations three dimensional inverter |
250 |
C perform. |
251 |
C max2dIt : Maximum number of iterations two dimensional inverter |
252 |
C will perform. |
253 |
C freqCheckToler3d : Frequeny at which three dimensional inverter checks |
254 |
C for convergence. |
255 |
C freqCheckToler2d : Frequeny at which two dimensional inverter checks |
256 |
C for convergence. |
257 |
C numberOfTimeSteps: No. of time steps the model will run. |
258 |
C nIter : Simulation iteration number |
259 |
C dUnit : Unit number used when reading miscellaneous data files. |
260 |
C stdin : Unit number used for reading standard input. |
261 |
C stdout : Unit number used for writing to standard output. |
262 |
C scrUnit1 : Unit number used for scratch dataset 1. |
263 |
C scrUnit2 : Unit number used for scratch dataset 2. |
264 |
C scrUnitError : Unit number used for error message scratch dataset. |
265 |
COMMON /PARAMS_I/ |
266 |
& L, M, N, |
267 |
& max3dIt, max2dIt, freqCheckToler3d, freqCheckToler2d, nIter, |
268 |
& numberOfTimeSteps, dUnit, stdin, stdout, scrUnit1, scrUnit2, |
269 |
& scrUnitError |
270 |
INTEGER L |
271 |
INTEGER M |
272 |
INTEGER N |
273 |
INTEGER max3dIt |
274 |
INTEGER max2dIt |
275 |
INTEGER freqCheckToler3d |
276 |
INTEGER freqCheckToler2d |
277 |
INTEGER numberOfTimeSteps |
278 |
INTEGER nIter |
279 |
INTEGER dUnit |
280 |
INTEGER stdin |
281 |
INTEGER stdout |
282 |
INTEGER scrUnit1 |
283 |
INTEGER scrUnit2 |
284 |
INTEGER scrUnitError |
285 |
C |
286 |
C PARAMS_C: Chracter constants |
287 |
C gridStyle : Type of grid to be used for discretising contiuous domain. |
288 |
C phSurfBC : Boundary condition to use on hydrostatic pressure integration. |
289 |
C runDate : Date and time on which integration performed. |
290 |
C runMachine: Computer identifier. |
291 |
C runTitle : Title for job read from input data |
292 |
C equationOfState: Selects which method is used to evaluate density. |
293 |
C coriolisPlane: Selects coriolis variation to use. |
294 |
C bathySource: Controls reading of topography from a file. |
295 |
C puSuffix : Suffix on "pickup" datasets. |
296 |
COMMON /PARAMS_C/ |
297 |
& gridStyle,phSurfBC,runTitle, equationOfState, |
298 |
& coriolisPlane, bathySource, runDate, runMachine, puSuffix |
299 |
CHARACTER*80 gridStyle |
300 |
CHARACTER*80 phSurfBC |
301 |
CHARACTER*80 runDate |
302 |
CHARACTER*80 runMachine |
303 |
CHARACTER*80 runTitle |
304 |
CHARACTER*80 equationOfState |
305 |
CHARACTER*80 coriolisPlane |
306 |
CHARACTER*80 bathySource |
307 |
CHARACTER*10 puSuffix |
308 |
C |
309 |
C Constant value parameters used throughout model. |
310 |
C LAND - Symbolic name for value used in masks to signify land! |
311 |
C WATER - Symbolic name for value used in masks to signify water! |
312 |
C MAXFN - Size of the filename buffer used in IO. |
313 |
REAL LAND |
314 |
PARAMETER ( LAND = 0. ) |
315 |
REAL WATER |
316 |
PARAMETER ( WATER = 1. ) |
317 |
REAL UNSET_FLOAT |
318 |
PARAMETER ( UNSET_FLOAT = -1.2345e-6 ) |
319 |
REAL UNSET_INT |
320 |
PARAMETER ( UNSET_INT = -123456 ) |
321 |
INTEGER MAXFN |
322 |
PARAMETER ( MAXFN = 80 ) |
323 |
C Useful physical values |
324 |
REAL PI |
325 |
PARAMETER ( PI = 3.14159265358979323844D0 ) |
326 |
REAL deg2rad |
327 |
PARAMETER ( deg2rad = 2.D0*PI/360.D0 ) |
328 |
REAL ReferenceDensityForWater |
329 |
PARAMETER ( ReferenceDensityForWater = 999.8D0 ) |
330 |
REAL ReferenceDensityForAir |
331 |
PARAMETER ( ReferenceDensityForAir = 1.0D0 ) |
332 |
REAL GravityEarth |
333 |
PARAMETER ( GravityEarth = 9.81D0 ) |
334 |
REAL SpecificHeatCapacityAir |
335 |
PARAMETER ( SpecificHeatCapacityAir = 1004D0 ) |
336 |
REAL SpecificHeatCapacityWater |
337 |
PARAMETER ( SpecificHeatCapacityWater = 3900D0 ) |
338 |
REAL OneMinute |
339 |
PARAMETER ( OneMinute = 60.D0 ) |
340 |
REAL OneHour |
341 |
PARAMETER ( OneHour = 60.D0 * OneMinute ) |
342 |
REAL OneDay |
343 |
PARAMETER ( OneDay = 24.D0 * OneHour ) |
344 |
REAL OneMonth |
345 |
PARAMETER ( OneMonth = 30.D0 * OneDay ) |
346 |
REAL OneYear |
347 |
PARAMETER ( OneYear = 360.D0* OneDay ) |
348 |
REAL RadiusEarth |
349 |
PARAMETER ( RadiusEarth = 6.37D6 ) |
350 |
REAL alphaSalt ! Haline contraction coefficient |
351 |
PARAMETER ( alphaSalt = 7.4D-4 ) |
352 |
REAL alphaTemperature ! Thermal expansion coefficient |
353 |
PARAMETER ( alphaTemperature = 2.D-4 ) |
354 |
REAL omega |
355 |
PARAMETER ( omega = 2.D0*PI/OneDay ) |