Equation of State and Bottom Boundary¶
equation_of_state¶
Controls the seawater density formulation used to compute buoyancy, stratification, and the baroclinic pressure gradient.
The density calculation feeds directly into the stratification module
pygotm.meanflow.stratification and all buoyancy-dependent turbulence
terms.
equation_of_state:
method: full_teos-10
rho0: 1027.0
linear:
T0: 10.0
S0: 35.0
p0: 0.0
alpha: 2.0e-4
beta: 7.5e-4
cp: 3991.87
equation_of_state.method¶
Type |
string |
Valid values |
|
Default |
|
Selects the density formulation.
full_teos-10Full nonlinear TEOS-10 equation of state (IOC et al. 2010). Uses the GSW toolbox to compute density, thermal expansion coefficient \(\alpha\), and saline contraction coefficient \(\beta\) at every level and every time step. Most accurate option; recommended for open-ocean and lake simulations.
linear_teos-10Linearised equation of state using TEOS-10 to compute \(\alpha\), \(\beta\), and \(c_p\) at a reference state (\(T_0\), \(S_0\), \(p_0\)); these coefficients are then held constant:
\[\rho = \rho_0 \left[1 - \alpha(T - T_0) + \beta(S - S_0)\right]\]Faster than
full_teos-10and appropriate when T/S variations are small.linear_customSame linearised formula as above, but \(\alpha\), \(\beta\), \(\rho_0\), and \(c_p\) are all specified directly by the user in the
linearsub-block rather than computed from TEOS-10. Use when you want full control over the equation of state (e.g., for idealised freshwater lake studies).
equation_of_state.rho0¶
Units |
kg m−3 |
Default |
|
Reference density. Used throughout the model to non-dimensionalise fluxes. Specifically:
Surface wind stress is divided by
rho0to give kinematic stress \(\tau/\rho_0\) [m² s⁻²].Heat flux is converted to temperature flux via \(Q / (\rho_0 c_p)\).
equation_of_state.linear¶
Sub-block for the linearised EOS. Only used when method: linear_teos-10
or method: linear_custom.
T0Reference temperature (°C). Default:
15.0; range: −2 to 40 °C.S0Reference salinity (g kg−1). Default:
35.0; range: ≥ 0.p0Reference pressure (dbar). Default:
0.0; range: ≥ 0.alphaThermal expansion coefficient \(\alpha = -\partial\rho/(\rho_0\partial T)\) (K−1). Default:
2.0e-4. Used whenmethod: linear_custom.betaSaline contraction coefficient \(\beta = \partial\rho/(\rho_0\partial S)\) (kg g−1). Default:
7.5e-4. Used whenmethod: linear_custom.cpSpecific heat capacity at constant pressure (J kg−1 K−1). Default:
3991.87. Used whenmethod: linear_customto convert heat fluxes to temperature tendencies.
meanflow¶
Physical constants and switches for the mean-flow equations. These keys
appear directly under a meanflow block in full GOTM YAML files.
meanflow:
gravity: 9.81
rho0: 1027.0
cori: 0.0
avmolu: 1.3e-6
avmolT: 1.4e-7
avmolS: 1.1e-9
cp: 3991.87
h0b: 0.05
z0s_min: 0.02
calc_bottom_stress: true
charnock: false
MaxItz0b: 10
meanflow.gravity¶
Units |
m s−2 |
Default |
|
Gravitational acceleration. Used in buoyancy frequency and pressure gradient calculations.
meanflow.rho0¶
Reference density (see equation_of_state.rho0). Default: 1027.0.
meanflow.cori¶
Units |
s−1 |
Default |
computed from latitude |
Coriolis parameter \(f = 2\Omega\sin\phi\). By default pyGOTM computes
this from location.latitude. Setting an explicit value here overrides
the geographic computation.
meanflow.avmolu¶
Units |
m2 s−1 |
Default |
|
Molecular kinematic viscosity of seawater. Added to the turbulent eddy viscosity as a background value.
meanflow.avmolT¶
Units |
m2 s−1 |
Default |
|
Molecular thermal diffusivity.
meanflow.avmolS¶
Units |
m2 s−1 |
Default |
|
Molecular salinity (haline) diffusivity.
meanflow.cp¶
Specific heat capacity of seawater (J kg−1 K−1).
Default: 3991.87.
bottom¶
Bottom boundary condition parameters for the mean-flow equations.
bottom:
calc_bottom_stress: true
h0b: 0.05
bottom.calc_bottom_stress¶
Type |
boolean |
Default |
|
If true, the bottom stress is computed from the law of the wall using the
bottom roughness length h0b and the velocity at the first grid level. If
false, the bottom boundary condition is a no-stress (free-slip) condition.
Implemented in pygotm.meanflow.friction.friction().
bottom.h0b¶
Units |
m |
Range |
≥ 0.0 |
Default |
|
Physical bottom roughness length \(z_{0b}\). Used in the logarithmic law of the wall to compute bottom friction velocity:
where \(z_1\) is the height of the first grid level and \(u(z_1)\) is the velocity magnitude at that level.
Larger values of h0b represent rougher bottoms (gravel, boulders) while
smaller values represent smoother bottoms (fine sediment, mud).
meanflow.z0s_min¶
Units |
m |
Default |
|
Minimum surface roughness length \(z_{0s}\). When the Charnock parameterisation is inactive, the surface roughness is held at this constant value.
meanflow.charnock¶
Type |
boolean |
Default |
|
If true, use the Charnock (1955) relation to derive the surface roughness
length from the surface friction velocity:
\(z_{0s} = \alpha_c u_{\tau s}^2 / g\).
[unsupported in compiled runtime] in the current release.
meanflow.MaxItz0b¶
Type |
integer |
Default |
|
Maximum number of iterations for the implicit roughness-velocity coupling at the bottom boundary.
References
IOC, SCOR, IAPSO (2010). The International Thermodynamic Equation of Seawater — 2010. UNESCO.
Charnock, H. (1955). Wind stress over a water surface. Q. J. R. Meteorol. Soc., 81, 639–640.