Data Types | |
interface | delta_scale_abstract |
Delta-scaling. More... | |
interface | subset_range_abstract |
Subsetting – currently there are only routines with start col and count. More... | |
type | ty_optical_props |
type | ty_optical_props_1scl |
type | ty_optical_props_2str |
type | ty_optical_props_arry |
type | ty_optical_props_nstr |
interface | validate_abstract |
Validation function looks only at internal data. More... | |
Functions/Subroutines | |
character(len=128) function | init_base (this, band_lims_wvn, band_lims_gpt, name) |
character(len=128) function | init_base_from_copy (this, spectral_desc) |
pure logical function | is_initialized_base (this) |
subroutine | finalize_base (this) |
character(len=128) function | alloc_only_1scl (this, ncol, nlay) |
character(len=128) function | alloc_only_2str (this, ncol, nlay) |
— 2 stream ---------------------------------------------------------------------— | |
character(len=128) function | alloc_only_nstr (this, nmom, ncol, nlay) |
— n stream ---------------------------------------------------------------------— | |
character(len=128) function | init_and_alloc_1scl (this, ncol, nlay, band_lims_wvn, band_lims_gpt, name) |
character(len=128) function | init_and_alloc_2str (this, ncol, nlay, band_lims_wvn, band_lims_gpt, name) |
character(len=128) function | init_and_alloc_nstr (this, nmom, ncol, nlay, band_lims_wvn, band_lims_gpt, name) |
character(len=128) function | copy_and_alloc_1scl (this, ncol, nlay, spectral_desc, name) |
character(len=128) function | copy_and_alloc_2str (this, ncol, nlay, spectral_desc, name) |
character(len=128) function | copy_and_alloc_nstr (this, nmom, ncol, nlay, spectral_desc, name) |
character(len=128) function | finalize_1scl (this) |
character(len=128) function | finalize_2str (this) |
character(len=128) function | finalize_nstr (this) |
character(128) function | delta_scale_1scl (this, for) |
character(128) function | delta_scale_2str (this, for) |
character(128) function | delta_scale_nstr (this, for) |
character(len=128) function | validate_1scalar (this) |
character(len=128) function | validate_2stream (this) |
character(len=128) function | validate_nstream (this) |
character(128) function | subset_1scl_range (full, start, n, subset) |
character(128) function | subset_2str_range (full, start, n, subset) |
character(128) function | subset_nstr_range (full, start, n, subset) |
character(128) function | increment (op_in, op_io) |
pure integer function | get_arry_extent (this, dim) |
pure integer function | get_ncol (this) |
pure integer function | get_nlay (this) |
pure integer function | get_nmom (this) |
pure integer function | get_nband (this) |
pure integer function | get_ngpt (this) |
pure integer function, dimension(size(this%band2gpt, dim=1), size(this%band2gpt, dim=2)) | get_band_lims_gpoint (this) |
pure integer function, dimension(2) | convert_band2gpt (this, band) |
pure real(wp) function, dimension(size(this%band_lims_wvn, 1), size(this%band_lims_wvn, 2)) | get_band_lims_wavenumber (this) |
pure real(wp) function, dimension(size(this%band_lims_wvn, 1), size(this%band_lims_wvn, 2)) | get_band_lims_wavelength (this) |
pure integer function, dimension(size(this%gpt2band, dim=1)) | get_gpoint_bands (this) |
pure integer function | convert_gpt2band (this, gpt) |
pure real(wp) function, dimension(size(this%gpt2band)) | expand (this, arr_in) |
pure logical function | bands_are_equal (this, that) |
pure logical function | gpoints_are_equal (this, that) |
subroutine | set_name (this, name) |
character(len=name_len) function | get_name (this) |
Variables | |
integer, parameter, public | name_len = 32 |
The bands are described by their limiting wavenumbers. They need not be contiguous or complete. A band may contain more than one spectral sub-point (g-point) in which case a mapping must be supplied. A name may be provided and will be prepended to error messages. The base class (ty_optical_props) encapsulates only this spectral discretization and must be initialized with the spectral information before use.
Optical properties may be represented as arrays with dimensions ncol, nlay, ngpt (abstract class ty_optical_props_arry). The type holds arrays depending on how much information is needed There are three possibilites
ty_optical_props_nstr holds extincion optical depth tau, single-scattering albedo ssa, and phase function moments p with leading dimension nmom. These fields are what's needed for multi-stream calculations.
These classes must be allocated before use. Initialization and allocation can be combined. The classes have a validate() function that checks all arrays for valid values (e.g. tau > 0.)
Optical properties can be delta-scaled (though this is currently implemented only for two-stream arrays)
Optical properties can increment or "add themselves to" a set of properties represented with arrays as long as both sets have the same underlying band structure. Properties defined by band may be added to properties defined by g-point; the same value is assumed for all g-points with each band.
Subsets of optical properties held as arrays may be extracted along the column dimension.