mo_optics_ssm Module

Class implementing Simple Spectral model gas optics

Details here


Uses

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

Contents


Variables

TypeVisibilityAttributesNameInitial
real(kind=wp), public, parameter:: Tsun_ssm =5760._wp
real(kind=wp), public, parameter:: g_cld_lw =0._wp
real(kind=wp), public, parameter:: g_cld_sw =0.85_wp
real(kind=wp), public, parameter:: kappa_cld_lw =50._wp
real(kind=wp), public, parameter:: kappa_cld_sw =0.0001_wp
real(kind=wp), public, parameter:: mw_co2 =0.044_wp
real(kind=wp), public, parameter:: mw_h2o =0.018_wp
real(kind=wp), public, parameter:: mw_o3 =0.048_wp
real(kind=wp), public, parameter:: ssa_cld_lw =0._wp
real(kind=wp), public, parameter:: ssa_cld_sw =0.9999_wp
real(kind=wp), public, parameter:: tsi =1360._wp

Interfaces

public interface configure

  • private function configure_with_values(this, gas_names, triangle_params, nus, nu_min, nu_max, Tstar, tsi, kappa_cld, g_cld, ssa_cld) result(error_msg)

    Configure the simple spectral model parameters Gas optics for simple spectral models are described as N triangles of ln(kappa) for each of M gases. Each triangle id defined by the absorption coefficient at central wavenumber, nu0 a central wavenumber nu0 the slope d ln(kappa)/d nu By default there are two gases (h2o and co2) (for the LW). h2o has three triangles (rotational lines, and a continuum with infinite slope) co2 has a single triangle Absorption coefficents are defined at pref and pressure-broadened as p/pref Spectral discretization is defined as max and min wavenumbers and a set of wavenumbers at which to evaluate absorption and Planck function If Tstar is provided the gas optics are for insolation

    Arguments

    TypeIntentOptionalAttributesName
    class(ty_optics_ssm), intent(inout) :: this
    character(len=32), intent(in), dimension(:):: gas_names
    real(kind=wp), intent(in), dimension(:,:):: triangle_params

    (ntriangles, 4) where the second dimension holds [gas_index, kappa0, nu0, l]

    real(kind=wp), intent(in), dimension(:):: nus

    Wavenumbers at which to evaluate Planck function and absorption coefficient

    real(kind=wp), intent(in) :: nu_min

    Upper and lower bounds of spectrum

    real(kind=wp), intent(in) :: nu_max

    Upper and lower bounds of spectrum

    real(kind=wp), intent(in), optional :: Tstar

    Temperature for stellar insolation

    real(kind=wp), intent(in), optional :: tsi

    Total solar irradiance

    real(kind=wp), intent(in), optional :: kappa_cld
    real(kind=wp), intent(in), optional :: g_cld
    real(kind=wp), intent(in), optional :: ssa_cld

    cloud optical properties

    Return Value character(len=128)

    Empty if successful

  • private function configure_with_defaults(this, do_sw) result(error_msg)

    Arguments

    TypeIntentOptionalAttributesName
    class(ty_optics_ssm), intent(inout) :: this
    logical, intent(in), optional :: do_sw

    Return Value character(len=128)


Derived Types

type, public, extends(ty_gas_optics) :: ty_optics_ssm

Components

TypeVisibilityAttributesNameInitial
real(kind=wp), public :: Tstar =0._wp
real(kind=wp), public, dimension(:, :), allocatable:: absorption_coeffs
real(kind=wp), public, dimension(:), allocatable:: dnus
real(kind=wp), public :: g_cld =0._wp
character(len=32), public, dimension(:), allocatable:: gas_names
real(kind=wp), public :: kappa_cld =0._wp
real(kind=wp), public :: m_dry =0.029_wp
real(kind=wp), public, dimension(:), allocatable:: mol_weights
real(kind=wp), public, dimension(:), allocatable:: nus
real(kind=wp), public :: pref =500._wp*100._wp
real(kind=wp), public :: ssa_cld =0._wp
real(kind=wp), public, dimension(:), allocatable:: toa_src
real(kind=wp), public :: tsi =0._wp

Type-Bound Procedures

procedure, public :: cloud_optics
generic, public :: configure => configure_with_values, configure_with_defaults
procedure, public :: gas_optics_ext
procedure, public :: gas_optics_int
procedure, public :: get_press_max
procedure, public :: get_press_min
procedure, public :: get_temp_max
procedure, public :: get_temp_min
procedure, public :: source_is_external
procedure, public :: source_is_internal