Details here
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| 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 |
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
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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 |
Empty if successful
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ty_optics_ssm), | intent(inout) | :: | this | |||
| logical, | intent(in), | optional | :: | do_sw |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| 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 |
| 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 |