The abstract base class for arrays defines what procedures will be available
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=wp), | public, | dimension(:,:,:), allocatable | :: | tau | optical depth (ncol, nlay, ngpt) |
Are the bands of two objects the same? (same number, same wavelength limits)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props), | intent(in) | :: | this | |||
class(ty_optical_props), | intent(in) | :: | that |
First and last g-point of a specific band
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props), | intent(in) | :: | this | |||
integer, | intent(in) | :: | band |
Band associated with a specific g-point
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props), | intent(in) | :: | this | |||
integer, | intent(in) | :: | gpt |
Delta-scaling
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props_arry), | intent(inout) | :: | this | |||
real(kind=wp), | intent(in), | optional | dimension(:,:,:) | :: | for |
Forward scattering fraction; g**2 if not provided
Expand an array of dimension arr_in(nband) to dimension arr_out(ngpt)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props), | intent(in) | :: | this | |||
real(kind=wp), | intent(in), | dimension(:) | :: | arr_in |
Base class: finalize (deallocate memory)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props), | intent(inout) | :: | this |
The first and last g-point of all bands at once dimension (2, nbands)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props), | intent(in) | :: | this |
Lower and upper wavelength of all bands
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props), | intent(in) | :: | this |
Lower and upper wavenumber of all bands (upper and lower wavenumber by band) = band_lims_wvn(2,band)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props), | intent(in) | :: | this |
Bands for all the g-points at once dimension (ngpt)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props), | intent(in) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props), | intent(in) | :: | this |
Number of bands
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props), | intent(in) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props_arry), | intent(in) | :: | this |
Number of g-points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props), | intent(in) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props_arry), | intent(in) | :: | this |
Subsetting -- currently there are only routines with start col and count
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props_arry), | intent(inout) | :: | full | |||
integer, | intent(in) | :: | start | |||
integer, | intent(in) | :: | n | |||
class(ty_optical_props_arry), | intent(inout) | :: | subset |
Is the g-point structure of two objects the same? (same bands, same number of g-points, same mapping between bands and g-points)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props), | intent(in) | :: | this | |||
class(ty_optical_props), | intent(in) | :: | that |
Increment another set of values
Routines for array classes: incrementing a%increment(b) adds the values of a to b, changing b and leaving a untouched
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props_arry), | intent(in) | :: | op_in | |||
class(ty_optical_props_arry), | intent(inout) | :: | op_io |
Base class: Initialization Values are assumed to be defined in bands a mapping between bands and g-points is provided
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props), | intent(inout) | :: | this | |||
real(kind=wp), | intent(in), | dimension(:,:) | :: | band_lims_wvn | ||
integer, | intent(in), | optional | dimension(:,:) | :: | band_lims_gpt | |
character(len=*), | intent(in), | optional | :: | name |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props), | intent(inout) | :: | this | |||
class(ty_optical_props), | intent(in) | :: | spectral_desc |
Base class: return true if initialized, false otherwise
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props), | intent(in) | :: | this |
--- Setting/getting the name
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props), | intent(inout) | :: | this | |||
character(len=*), | intent(in) | :: | name |
Deferred procedures -- each must be implemented in each child class with arguments following the abstract interface (defined below)
Validation function looks only at internal data
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ty_optical_props_arry), | intent(in) | :: | this |