mo_gas_concentrations Module

Fortran class for representing gas concentrations

Encapsulates a collection of volume (molar) mixing ratios (concentrations) of gases. Each concentration is associated with a name, normally the chemical formula. Values may be provided as scalars, 1-dimensional profiles (nlay), or 2-D fields (ncol,nlay). nlay and ncol are determined from the input arrays; self-consistency is enforced. No bounds are enforced on the sum of the mixing ratios.

For example:

 error_msg = gas_concs%set_vmr('h2o', values(:,:))
 error_msg = gas_concs%set_vmr('o3' , values(:)  )
 error_msg = gas_concs%set_vmr('co2', value      )

Values can be requested as profiles (valid only if there are no 2D fields present in the object) or as 2D fields. Values for all columns are returned although the entire collection can be subsetted in the column dimension

Subsets can be extracted in the column dimension.

Functions return strings. Non-empty strings indicate an error.


Uses

  • module~~mo_gas_concentrations~~UsesGraph module~mo_gas_concentrations mo_gas_concentrations module~mo_rte_util_array_validation mo_rte_util_array_validation module~mo_gas_concentrations->module~mo_rte_util_array_validation mo_rte_kind mo_rte_kind module~mo_gas_concentrations->mo_rte_kind module~mo_rte_config mo_rte_config module~mo_gas_concentrations->module~mo_rte_config module~mo_rte_util_array_validation->mo_rte_kind module~mo_rte_config->mo_rte_kind

Used by

  • module~~mo_gas_concentrations~~UsedByGraph module~mo_gas_concentrations mo_gas_concentrations module~mo_gas_optics mo_gas_optics module~mo_gas_optics->module~mo_gas_concentrations

Contents


Derived Types

type, public :: ty_gas_concs

Components

TypeVisibilityAttributesNameInitial
character(len=32), public, dimension(:), allocatable:: gas_names

Finalizations Procedures

final :: del

Type-Bound Procedures

procedure, public :: get_gas_names
procedure, public :: get_num_gases
generic, public :: get_subset => get_subset_range Read more…
generic, public :: get_vmr => get_vmr_1d, get_vmr_2d Read more…
procedure, public :: init
procedure, public :: reset
generic, public :: set_vmr => set_vmr_scalar, set_vmr_1d, set_vmr_2d Read more…