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, only n_levels 91 and 137 are supported.

  • model (str) – Model name. Default is “ifs”. Currently, only model="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.