Implements a class for computing spectrally-resolved gas optical properties and source functions given atmopsheric physical properties (profiles of temperature, pressure, and gas concentrations) The class must be initialized with data (provided as a netCDF file) before being used.
Two variants apply to internal Planck sources (longwave radiation in the Earth's atmosphere) and to external stellar radiation (shortwave radiation in the Earth's atmosphere). The variant is chosen based on what information is supplied during initialization.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public, | dimension(:,:), allocatable | :: | flavor | |||
| character(len=32), | public, | dimension(:), allocatable | :: | gas_names | |||
| integer, | public, | dimension(:,:), allocatable | :: | gpoint_flavor | |||
| integer, | public, | dimension(:), allocatable | :: | idx_minor_lower | |||
| integer, | public, | dimension(:), allocatable | :: | idx_minor_scaling_lower | |||
| integer, | public, | dimension(:), allocatable | :: | idx_minor_scaling_upper | |||
| integer, | public, | dimension(:), allocatable | :: | idx_minor_upper | |||
| logical, | public, | dimension(:), allocatable | :: | is_key | |||
| real(kind=wp), | public, | dimension(:,:,:,:), allocatable | :: | kmajor | |||
| real(kind=wp), | public, | dimension(:,:,:), allocatable | :: | kminor_lower | |||
| integer, | public, | dimension(:), allocatable | :: | kminor_start_lower | |||
| integer, | public, | dimension(:), allocatable | :: | kminor_start_upper | |||
| real(kind=wp), | public, | dimension(:,:,:), allocatable | :: | kminor_upper | |||
| real(kind=wp), | public, | dimension(:,:,:,:), allocatable | :: | krayl | |||
| integer, | public, | dimension(:,:), allocatable | :: | minor_limits_gpt_lower | |||
| integer, | public, | dimension(:,:), allocatable | :: | minor_limits_gpt_upper | |||
| logical(kind=wl), | public, | dimension(:), allocatable | :: | minor_scales_with_density_lower | |||
| logical(kind=wl), | public, | dimension(:), allocatable | :: | minor_scales_with_density_upper | |||
| real(kind=wp), | public, | dimension(:,:), allocatable | :: | optimal_angle_fit | |||
| real(kind=wp), | public, | dimension(:,:,:,:), allocatable | :: | planck_frac | |||
| real(kind=wp), | public, | dimension(:), allocatable | :: | press_ref | |||
| real(kind=wp), | public, | dimension(:), allocatable | :: | press_ref_log | |||
| real(kind=wp), | public | :: | press_ref_log_delta | ||||
| real(kind=wp), | public | :: | press_ref_max | ||||
| real(kind=wp), | public | :: | press_ref_min | ||||
| real(kind=wp), | public | :: | press_ref_trop_log | ||||
| logical(kind=wl), | public, | dimension(:), allocatable | :: | scale_by_complement_lower | |||
| logical(kind=wl), | public, | dimension(:), allocatable | :: | scale_by_complement_upper | |||
| real(kind=wp), | public, | dimension(:), allocatable | :: | solar_source | |||
| real(kind=wp), | public, | dimension(:), allocatable | :: | solar_source_facular | |||
| real(kind=wp), | public, | dimension(:), allocatable | :: | solar_source_quiet | |||
| real(kind=wp), | public, | dimension(:), allocatable | :: | solar_source_sunspot | |||
| real(kind=wp), | public, | dimension(:), allocatable | :: | temp_ref | |||
| real(kind=wp), | public | :: | temp_ref_delta | ||||
| real(kind=wp), | public | :: | temp_ref_max | ||||
| real(kind=wp), | public | :: | temp_ref_min | ||||
| real(kind=wp), | public, | dimension(:,:), allocatable | :: | totplnk | |||
| real(kind=wp), | public | :: | totplnk_delta | ||||
| real(kind=wp), | public, | dimension(:,:,:), allocatable | :: | vmr_ref |
| procedure, public :: compute_optimal_angles | |
| procedure, public :: finalize | |
| procedure, public :: gas_optics_ext | |
| procedure, public :: gas_optics_int | |
| procedure, public :: get_gases | |
| procedure, public :: get_ngas | |
| procedure, public :: get_press_max | |
| procedure, public :: get_press_min | |
| procedure, public :: get_temp_max | |
| procedure, public :: get_temp_min | |
| procedure, public :: is_loaded | |
| generic, public :: load => load_int, load_ext | |
| procedure, public :: set_solar_variability | |
| procedure, public :: set_tsi | |
| procedure, public :: source_is_external | |
| procedure, public :: source_is_internal |