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. col_dry is the number of molecules per cm-2 of dry air
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 |
Utility function, provided for user convenience computes column amounts of dry air using hydrostatic equation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=wp), | intent(in), | dimension(:,:) | :: | vmr_h2o | ||
real(kind=wp), | intent(in), | dimension(:,:) | :: | plev | ||
real(kind=wp), | intent(in), | optional | dimension(:) | :: | latitude |