configure Interface

public interface configure

Contents


Module Procedures

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)