##### Page tree
Skip to end of banner
Go to start of banner

# Thermodynamic Functions

Skip to end of metadata
Go to start of metadata

fieldset eqpott_m(...)

Computes the equivalent potential temperature from fieldsets on (hybrid) model levels. This is a Metview icon function, for detailed documentation please see Potential Temperature.

fieldset eqpott_pl(...)

Computes the equivalent potential temperature from fieldsets on pressure levels. This is a Metview icon function, for detailed documentation please see Potential Temperature.



definition lifted_condensation_level(t: number, td: number, p: number)

Computes the Lifted Condensation Level (LCL) of a parcel ascending from a given temperature, dewpoint and pressure, where

• t: start temperature (K)
• td: start dewpoint (K)
• p: start pressure (Pa)

The LCL is the level where the parcel becomes saturated and it is computed with an iterative method along the dry adiabat of the ascending parcel.

The result is a definition with two members: t and p, containing the temperature and pressure of the LCL, in K and Pa units, respectively. On error or if the LCL does not exist nil is returned.



number mixing_ratio(q: number)

Computes the mixing ratio from the given specific humidity, where

• q: specific humidity (kg/kg)

The result is the mixing ratio in kg/kg units. On error nil is returned. The computation is based on the following well known formula:

$w = \frac{q}{1 - q}$



number mixing_ratio_from_vapour_pressure(p: number, e: number)

Computes the mixing ratio from the given (total) pressure and vapour pressure, where

• p: pressure (Pa)
• e: vapour pressure (Pa)

The result is the mixing ratio in kg/kg units. On error  nil is returned. The computation is based on the following formula:

$w = \epsilon \frac{e}{p - e}$

with $$\epsilon = \frac{R_{dry}}{R_{vapour}} = 0.621981$$



number potential_temperature(t: number, p: number)

Computes the potential temperature for a given temperature and pressure, where

• t: the temperature (K)
• p: the pressure (Pa)

The result is the potential temperature in K units. On error  nil is returned.

fieldset pott_m(...)

Computes the potential temperature from fieldsets on (hybrid) model levels. This is a Metview icon function, for detailed documentation please see Potential Temperature.

fieldset pott_pl(...)

Computes the potential temperature from fieldsets on pressure levels. This is a Metview icon function, for detailed documentation please see Potential Temperature.

fieldset relhum(...)

Computes the relative humidity from fieldsets. This is a Metview icon function, for detailed documentation please see Relative Humidity.



number saturation_mixing_ratio(t: number, p: number)

Computes the saturation mixing ratio for a given temperature and pressure, where

• t: the temperature (K)
• p: the pressure (Pa)

The result is the saturation mixing ratio in kg/kg units. On error nil is returned. The computation is implemented via the following function calls:

ws = mixing_ratio(p, saturation_vapour_pressure(t))



number saturation_vapour_pressure(t: number)

Computes the saturation vapour pressure for a given temperature, where

• t: the temperature (K)

The result is the saturation vapour pressure in Pa units. On error nil is returned. The computations are based on a mixed-phase Tetens formula used by IFS for diagnostic purposes. See here on p116 for details from the latest model cycle (CY45R1) at the time of the writing of this documentation.

fieldset seqpott_m(...)

Computes the saturation equivalent potential temperature from fieldsets on (hybrid) model levels. This is a Metview icon function, for detailed documentation please see Potential Temperature.

fieldset seqpott_pl(...)

Computes the saturation equivalent potential temperature from fieldsets on pressure levels. This is a Metview icon function, for detailed documentation please see Potential Temperature.



number temperature_from_potential_temperature(th: number, p: number)

Computes the temperature for a given potential temperature and pressure, where

• th:the potential temperature (K)
• p: the pressure (Pa)

The result is the temperature in K units. On error nil is returned.



netcdf thermo_bufr(...)

Extract vertical profiles from BUFR data in a suitable format suitable for thermodynamic diagrams (defined by Thermo View). This is a Metview icon function, for detailed documentation please see Thermo Data.



netcdf thermo_grib(...)

Extract vertical profiles from GRIB data in a suitable format for thermodynamic diagrams (defined by Thermo View). This is a Metview icon function, for detailed documentation please see Thermo Data.

definition thermo_parcel_path(t: vector, td: vector, p: vector, options: definition)

definition thermo_parcel_path(profile: netcdf, options: definition)

Computes the path of an ascending thermodynamic parcel with the given start condition for the given vertical profile. It returns a definition containing all the data to plot parcel path, buoyancy areas and related data into a thermodynamic diagram. The vertical profile is either specified as a set of vectors where:

• t: the temperature profile (°C)
• td: the dew point profile (°C)
• p: the pressure profile (hPa)

or as a vertical profile where:

• profile: the result of a vertical profile extraction from GRIB or BUFR with the thermo_grib() or thermo_bufr() functions (see Thermo Data ), respectively.

The function can take an optional options argument (it is a definition) to specify the various settings for the parcel computations. The members of this definition are as follows (temperature values are in °C and pressure values are in hPa):

• mode: the start condition mode the possible values are 'surface', 'custom', 'mean_layer' and 'most_unstable' (see  below for details)
• start_t: the start temperature (see  below for details)
• start_td: the start dewpoint (see  below for details)
• start_p: the start pressure (see  below for details)
• top_p: the top pressure of the start layer (see below for details)
• bottom_p: the bottom pressure of the start layer (see below for details)
• stop_at_el: if it is defined and set to 1 the parcel computations will stop at the Equilibrium Level.

There are four different modes available for the parcel start conditions:

#### Surface

The parcel ascends from the surface, i.e. the lowest point of the profile. The format is as follows:

(mode: 'surface')

#### Custom

The parcel ascends from a given temperature, dewpoint and pressure. The format is as follows:

(mode: 'custom', start_t: start_temperature, start_td: start_dewpoint, start_p: start_pressure)

#### Mean layer

The parcel ascends from the mean temperature, dew point and pressure of a given pressure layer. The format is as follows:

(mode: 'mean_layer', top_p: layer_top, bottom_p: layer_bottom )

Please note that when bottom_p is omitted the layer starts at the surface.

#### Most unstable

The parcel ascends from the most unstable condition. To determine this, a parcel is started from all the points along the profile in the specified pressure layer. The start level of the parcel that results in the highest CAPE value will define the most unstable start condition. The format is as follows:

(mode: 'most_unstable', top_p: layer_top, bottom_p: layer_bottom )

Please note that when bottom_p is omitted the pressure layer starts at the surface.

The function returns a definition to describe all the parameters related to the parcel's ascend. The members of this definition are as follows (temperature values are in °C and pressure values are in hPa) :

• path: path of the parcel. It is itself a definition with two members: t and p, each containing a list of values.
• area: positive and negative buoyancy areas between the parcel path and the profile. It is a list of definitions describing the areas.
• cape: value of the CAPE (Convective Available Potential Energy)  (J/kg)
• cin: value the CIN (Convective Inhibition) (J/kg)
• lcl: Lifted Condensation Level. It is a definition with two members: t and p. If no LCL exists it is set to nil.
• lfc: Level of Free Convention. It is a definition with two members: t and p. If no LFC exists it is set to nil.
• el: Equilibrium Level. It is a definition with two members: t and p. If no EL exists it is set to nil.
• top: Cloud Top Level. It is a definition with two members: t and p. If no TOP exists it is set to nil.
• start: start conditions of the parcel with four members: mode, t, td and p.



number vapour_pressure(q: number, p: number)

Computes the vapour pressure for a given specific humidity and pressure, where

• q: specific humidity (kg/kg)
• p: pressure (Pa)

The result is the vapour pressure in Pa units. On error  nil is returned. The computation is based on the following formula:

$\frac{p\;q}{\epsilon\; (1 + q(\frac{1}{\epsilon} -1 )}$

with $$\epsilon = \frac{R_{dry}}{R_{vapour}} = 0.621981$$

• No labels