earthkit.meteo.vertical.array.hybrid_level_parameters¶
- earthkit.meteo.vertical.array.hybrid_level_parameters(n_levels, model='ifs')¶
Get the A and B parameters of hybrid levels for a given configuration.
- Parameters:
n_levels (
int) – Number of (full) hybrid levels. Currently, onlyn_levels91 and 137 are supported.model (
str) – Model name. Default is “ifs”. Currently, onlymodel="ifs"are supported.
- Returns:
A tuple containing the A and B parameters on the hybrid half-levels. See details below. Both are 1D numpy arrays of length
n_levels + 1.- Return type:
tuple[NDArray,NDArray]
Notes
The A and B parameters are not unique; in theory there can be multiple definitions for a given number of levels and model.
hybrid_level_parameters()is merely a convenience method returning the most typical set of coefficients used.The hybrid model levels divide the atmosphere into \(NLEV\) layers. These layers are defined by the pressures at the interfaces between them for \(0 \leq k \leq NLEV\), which are the half-levels \(p_{k+1/2}\) (indices increase from the top of the atmosphere towards the surface). The half levels are defined by the A and B parameters in such a way that at the top of the atmosphere the first half level pressure \(p_{+1/2}\) is a constant, while at the surface \(p_{NLEV+1/2}\) is the surface pressure.
The full-level pressure \(p_{k}\) associated with each model level is defined as the middle of the layer for \(1 \leq k \leq NLEV\).
The level definitions can be written as:
\[ \begin{align}\begin{aligned}p_{k+1/2} = A_{k+1/2} + p_{s} B_{k+1/2}\\p_{k} = \frac{1}{2} (p_{k-1/2} + p_{k+1/2})\end{aligned}\end{align} \]where
\(p_{s}\) is the surface pressure
\(p_{k+1/2}\) is the pressure at the half-levels
\(p_{k}\) is the pressure at the full-levels
\(A_{k+1/2}\) and \(B_{k+1/2}\) are the A- and B-coefficients defining the model levels.
For more details see [IFS-CY49R1-Dynamics] Chapter 2, Section 2.2.1.