mo_gas_optics_rrtmgp Module

Class implementing the RRTMGP correlated-k distribution

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


Uses

    • mo_rte_config
    • mo_gas_optics_rrtmgp_kernels
    • mo_rte_util_array
    • mo_gas_optics_util_string
    • mo_gas_concentrations
    • mo_gas_optics
    • mo_rte_kind
    • mo_gas_optics_constants
    • mo_rte_util_array_validation
    • mo_optical_props
    • mo_source_functions
  • module~~mo_gas_optics_rrtmgp~~UsesGraph module~mo_gas_optics_rrtmgp mo_gas_optics_rrtmgp mo_rte_config mo_rte_config module~mo_gas_optics_rrtmgp->mo_rte_config mo_gas_optics mo_gas_optics module~mo_gas_optics_rrtmgp->mo_gas_optics mo_gas_optics_rrtmgp_kernels mo_gas_optics_rrtmgp_kernels module~mo_gas_optics_rrtmgp->mo_gas_optics_rrtmgp_kernels mo_optical_props mo_optical_props module~mo_gas_optics_rrtmgp->mo_optical_props mo_gas_optics_util_string mo_gas_optics_util_string module~mo_gas_optics_rrtmgp->mo_gas_optics_util_string mo_source_functions mo_source_functions module~mo_gas_optics_rrtmgp->mo_source_functions mo_rte_util_array mo_rte_util_array module~mo_gas_optics_rrtmgp->mo_rte_util_array mo_gas_concentrations mo_gas_concentrations module~mo_gas_optics_rrtmgp->mo_gas_concentrations mo_rte_kind mo_rte_kind module~mo_gas_optics_rrtmgp->mo_rte_kind mo_gas_optics_constants mo_gas_optics_constants module~mo_gas_optics_rrtmgp->mo_gas_optics_constants mo_rte_util_array_validation mo_rte_util_array_validation module~mo_gas_optics_rrtmgp->mo_rte_util_array_validation

Contents


Derived Types

type, public, extends(ty_gas_optics) :: ty_gas_optics_rrtmgp

Components

TypeVisibilityAttributesNameInitial
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

Type-Bound Procedures

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

Functions

public function get_col_dry(vmr_h2o, plev, latitude) result(col_dry)

Utility function, provided for user convenience computes column amounts of dry air using hydrostatic equation

Arguments

TypeIntentOptionalAttributesName
real(kind=wp), intent(in), dimension(:,:):: vmr_h2o
real(kind=wp), intent(in), dimension(:,:):: plev
real(kind=wp), intent(in), optional dimension(:):: latitude

Return Value real(kind=wp),dimension(size(plev,dim=1),size(plev,dim=2)-1)