| 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 |
Derive cloud optical properties from provided cloud physical properties
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ty_optics_ssm), | intent(in) | :: | this | |||
| real(kind=wp), | intent(in) | :: | clwp(:,:) | |||
| real(kind=wp), | intent(in) | :: | ciwp(:,:) | |||
| real(kind=wp), | intent(in) | :: | reliq(:,:) | |||
| real(kind=wp), | intent(in) | :: | reice(:,:) | |||
| class(ty_optical_props_arry), | intent(inout) | :: | optical_props |
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 |
Compute gas optical depth given temperature, pressure, and composition Top-of-atmosphere stellar insolation is also reported
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ty_optics_ssm), | intent(in) | :: | this | |||
| real(kind=wp), | intent(in), | dimension(:,:) | :: | play | layer pressures [Pa]; (ncol,nlay) level pressures [Pa]; (ncol,nlay+1) layer temperatures [K]; (ncol,nlay) |
|
| real(kind=wp), | intent(in), | dimension(:,:) | :: | plev | layer pressures [Pa]; (ncol,nlay) level pressures [Pa]; (ncol,nlay+1) layer temperatures [K]; (ncol,nlay) |
|
| real(kind=wp), | intent(in), | dimension(:,:) | :: | tlay | layer pressures [Pa]; (ncol,nlay) level pressures [Pa]; (ncol,nlay+1) layer temperatures [K]; (ncol,nlay) |
|
| type(ty_gas_concs), | intent(in) | :: | gas_desc | Gas volume mixing ratios |
||
| class(ty_optical_props_arry), | intent(inout) | :: | optical_props | |||
| real(kind=wp), | intent(out), | dimension(:,:) | :: | toa_src | Incoming solar irradiance(ncol, nnu) |
|
| real(kind=wp), | intent(in), | optional | dimension(:,:), target | :: | col_dry |
Empty if successful
Compute gas optical depth and Planck source functions, given temperature, pressure, and composition
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ty_optics_ssm), | intent(in) | :: | this | |||
| real(kind=wp), | intent(in), | dimension(:,:) | :: | play | layer pressures [Pa]; (ncol,nlay) level pressures [Pa]; (ncol,nlay+1) layer temperatures [K]; (ncol,nlay) |
|
| real(kind=wp), | intent(in), | dimension(:,:) | :: | plev | layer pressures [Pa]; (ncol,nlay) level pressures [Pa]; (ncol,nlay+1) layer temperatures [K]; (ncol,nlay) |
|
| real(kind=wp), | intent(in), | dimension(:,:) | :: | tlay | layer pressures [Pa]; (ncol,nlay) level pressures [Pa]; (ncol,nlay+1) layer temperatures [K]; (ncol,nlay) |
|
| real(kind=wp), | intent(in), | dimension(:) | :: | tsfc | surface skin temperatures [K]; (ncol) |
|
| type(ty_gas_concs), | intent(in) | :: | gas_desc | Gas volume mixing ratios |
||
| class(ty_optical_props_arry), | intent(inout) | :: | optical_props | Optical properties |
||
| class(ty_source_func_lw), | intent(inout) | :: | sources | Planck sources |
||
| real(kind=wp), | intent(in), | optional | dimension(:,:), target | :: | col_dry | Column dry amount; dim(ncol,nlay), will be ignored level temperatures [K]; (ncol,nlay+1) |
| real(kind=wp), | intent(in), | optional | dimension(:,:), target | :: | tlev | Column dry amount; dim(ncol,nlay), will be ignored level temperatures [K]; (ncol,nlay+1) |
Empty if succssful
Maximum valid pressure
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ty_optics_ssm), | intent(in) | :: | this |
maximum valid pressure
Minimum valid pressure
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ty_optics_ssm), | intent(in) | :: | this |
minimum valid pressure
Maximum valid pressure
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ty_optics_ssm), | intent(in) | :: | this |
maximum valid pressure
Minimum valid temperature
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ty_optics_ssm), | intent(in) | :: | this |
minimum valid temperature
return true if configured for external sources/shortwave, false otherwise
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ty_optics_ssm), | intent(in) | :: | this |
return true if initialized for internal sources/longwave, false otherwise
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ty_optics_ssm), | intent(in) | :: | this |