Defines an interface for gas optics parameterizations:
This (abstract) class is a sub-classes of ty_optical_props in the RTE module mo_optical_props
and inherits the procedures related to spectral discratization from that class.
Optical properties are returned in any variable of ty_optical_props_arry (that is,
an array of values with dimensions ncol, nlay, ngpt) in the same module.
Internal sources of radiation are provided in a variable of type
ty_source_func_lw in RTE module ty_source_func_lw.
The module also makes use of ty_gas_concs from
module mo_gas_concentrations.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ty_gas_optics), | intent(in) | :: | this | |||
| real(kind=wp), | intent(in), | dimension(:,:) | :: | play | layer pressures [Pa, mb]; (ncol,nlay) level pressures [Pa, mb]; (ncol,nlay+1) layer temperatures [K]; (ncol,nlay) |
|
| real(kind=wp), | intent(in), | dimension(:,:) | :: | plev | layer pressures [Pa, mb]; (ncol,nlay) level pressures [Pa, mb]; (ncol,nlay+1) layer temperatures [K]; (ncol,nlay) |
|
| real(kind=wp), | intent(in), | dimension(:,:) | :: | tlay | layer pressures [Pa, mb]; (ncol,nlay) level pressures [Pa, mb]; (ncol,nlay+1) layer temperatures [K]; (ncol,nlay) |
|
| type(ty_gas_concs), | intent(in) | :: | gas_desc | Gas volume mixing ratios |
||
| class(ty_optical_props_arry), | intent(inout) | :: | optical_props | |||
| real(kind=wp), | intent(out), | dimension(:,:) | :: | toa_src | Incoming solar irradiance(ncol,ngpt) |
|
| real(kind=wp), | intent(in), | optional | dimension(:,:), target | :: | col_dry | Column dry amount (molecules/cm^2); dim(ncol,nlay) |
Empty if successful
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ty_gas_optics), | intent(in) | :: | this | |||
| real(kind=wp), | intent(in), | dimension(:,:) | :: | play | layer pressures [Pa, mb]; (ncol,nlay) level pressures [Pa, mb]; (ncol,nlay+1) layer temperatures [K]; (ncol,nlay) |
|
| real(kind=wp), | intent(in), | dimension(:,:) | :: | plev | layer pressures [Pa, mb]; (ncol,nlay) level pressures [Pa, mb]; (ncol,nlay+1) layer temperatures [K]; (ncol,nlay) |
|
| real(kind=wp), | intent(in), | dimension(:,:) | :: | tlay | layer pressures [Pa, mb]; (ncol,nlay) level pressures [Pa, mb]; (ncol,nlay+1) layer temperatures [K]; (ncol,nlay) |
|
| real(kind=wp), | intent(in), | dimension(:) | :: | tsfc | surface skin temperatures [K]; (ncol) |
|
| type(ty_gas_concs), | intent(in) | :: | gas_desc | Gas volume mixing ratios |
||
| class(ty_optical_props_arry), | intent(inout) | :: | optical_props | Optical properties |
||
| class(ty_source_func_lw), | intent(inout) | :: | sources | Planck sources |
||
| real(kind=wp), | intent(in), | optional | dimension(:,:), target | :: | col_dry | Column dry amount (molecules/cm^2); dim(ncol,nlay) level temperatures [K]l (ncol,nlay+1) |
| real(kind=wp), | intent(in), | optional | dimension(:,:), target | :: | tlev | Column dry amount (molecules/cm^2); dim(ncol,nlay) level temperatures [K]l (ncol,nlay+1) |
Empty if successful
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ty_gas_optics), | intent(in) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ty_gas_optics), | intent(in) | :: | this |
| procedure, public :: bands_are_equal | |
| procedure, public :: convert_band2gpt | |
| procedure, public :: convert_gpt2band | |
| procedure, public :: expand | |
| procedure, public :: finalize => finalize_base | |
| generic, public :: gas_optics => gas_optics_int, gas_optics_ext | |
| procedure(gas_optics_ext_abstract), public :: gas_optics_ext | |
| procedure(gas_optics_int_abstract), public :: gas_optics_int | |
| procedure, public :: get_band_lims_gpoint | |
| procedure, public :: get_band_lims_wavelength | |
| procedure, public :: get_band_lims_wavenumber | |
| procedure, public :: get_gpoint_bands | |
| procedure, public :: get_name | |
| procedure, public :: get_nband | |
| procedure, public :: get_ngpt | |
| procedure(real_abstract), public :: get_press_max | |
| procedure(real_abstract), public :: get_press_min | |
| procedure(real_abstract), public :: get_temp_max | |
| procedure(real_abstract), public :: get_temp_min | |
| procedure, public :: gpoints_are_equal | |
| generic, public :: init => init_base, init_base_from_copy | |
| procedure, public :: is_initialized => is_initialized_base | |
| procedure, public :: set_name | |
| procedure(logical_abstract), public :: source_is_external | |
| procedure(logical_abstract), public :: source_is_internal |