ty_optical_props_arry represents optical properties as arrays with dimensions
column, height, spectral point
- Class 1-scalar only (extinction) optical depth
- Class two-stream adds arrays for single scattering albedo ssa and
asymmetry parameter needed in two-stream methods
- Class n-stream adds arrays for single scattering albedo ssa and
phase function moments (index 1 = g) for use with discrete ordinate methods
Type-Bound Procedures
generic, public :: alloc_1scl => alloc_only_1scl, init_and_alloc_1scl, copy_and_alloc_1scl
-
private function alloc_only_1scl(this, ncol, nlay) result(err_message)
Straight allocation routines
Read more…
Arguments
Type | Intent | Optional | Attributes | | Name | |
class(ty_optical_props_1scl) |
|
| | :: |
this | |
integer, |
intent(in) |
| | :: |
ncol | |
integer, |
intent(in) |
| | :: |
nlay | |
Return Value character(len=128)
-
private function init_and_alloc_1scl(this, ncol, nlay, band_lims_wvn, band_lims_gpt, name) result(err_message)
Initialization by specifying band limits and possibly g-point/band mapping
Read more…
Arguments
Type | Intent | Optional | Attributes | | Name | |
class(ty_optical_props_1scl) |
|
| | :: |
this | |
integer, |
intent(in) |
| | :: |
ncol | |
integer, |
intent(in) |
| | :: |
nlay | |
real(kind=wp), |
intent(in), |
| dimension(:,:) | :: |
band_lims_wvn | |
integer, |
intent(in), |
optional | dimension(:,:) | :: |
band_lims_gpt | |
character(len=*), |
intent(in), |
optional | | :: |
name | |
Return Value character(len=128)
-
private function copy_and_alloc_1scl(this, ncol, nlay, spectral_desc, name) result(err_message)
Initialization from an existing spectral discretization/ty_optical_props
Read more…
Arguments
Type | Intent | Optional | Attributes | | Name | |
class(ty_optical_props_1scl) |
|
| | :: |
this | |
integer, |
intent(in) |
| | :: |
ncol | |
integer, |
intent(in) |
| | :: |
nlay | |
class(ty_optical_props), |
intent(in) |
| | :: |
spectral_desc | |
character(len=*), |
intent(in), |
optional | | :: |
name | |
Return Value character(len=128)
procedure, public :: bands_are_equal
procedure, public :: convert_band2gpt
procedure, public :: convert_gpt2band
procedure, public :: delta_scale => delta_scale_1scl
-
private function delta_scale_1scl(this, for) result(err_message)
Read more…
Arguments
Type | Intent | Optional | Attributes | | Name | |
class(ty_optical_props_1scl), |
intent(inout) |
| | :: |
this | |
real(kind=wp), |
intent(in), |
optional | dimension(:,:,:) | :: |
for | |
Return Value character(len=128)
procedure, public :: expand
procedure, public :: finalize => finalize_base
procedure, public :: finalize_1scl
-
private function finalize_1scl(this) result(err_message)
Finalize routines
Read more…
Arguments
Return Value character(len=128)
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
-
private function get_name(this)
Arguments
Return Value character(len=name_len)
procedure, public :: get_nband
-
private pure function get_nband(this)
Number of bands
Arguments
Return Value integer
procedure, public :: get_ncol
-
private pure function get_ncol(this)
Arguments
Return Value integer
procedure, public :: get_ngpt
-
private pure function get_ngpt(this)
Number of g-points
Arguments
Return Value integer
procedure, public :: get_nlay
-
private pure function get_nlay(this)
Arguments
Return Value integer
procedure, public :: get_subset => subset_1scl_range
-
private function subset_1scl_range(full, start, n, subset) result(err_message)
Arguments
Return Value character(len=128)
procedure, public :: gpoints_are_equal
procedure, public :: increment
Increment another set of values
generic, public :: init => init_base, init_base_from_copy
procedure, public :: is_initialized => is_initialized_base
procedure, public :: set_name
procedure, public :: validate => validate_1scalar
-
private function validate_1scalar(this) result(err_message)
--- Validation
Read more…
Arguments
Return Value character(len=128)