ckd_model_type Derived Type

type, public :: ckd_model_type


Inherits

type~~ckd_model_type~~InheritsGraph type~ckd_model_type ckd_model_type type~ckd_gas_type ckd_gas_type type~ckd_model_type->type~ckd_gas_type single_gas type~spectral_definition_type spectral_definition_type type~ckd_model_type->type~spectral_definition_type spectral_def

Inherited by

type~~ckd_model_type~~InheritedByGraph type~ckd_model_type ckd_model_type type~config_type config_type type~config_type->type~ckd_model_type gas_optics_sw, gas_optics_lw type~config_type~2 config_type type~config_type~2->type~ckd_model_type gas_optics_sw, gas_optics_lw type~tradiation TRADIATION type~tradiation->type~config_type rad_config

Contents


Components

Type Visibility Attributes Name Initial
integer, public :: ngas = 0
type(ckd_gas_type), public, allocatable :: single_gas(:)
integer, public :: i_gas_mapping(0:NMaxGases)
integer, public :: npress = 0
integer, public :: ntemp = 0
real(kind=jprb), public :: log_pressure1
real(kind=jprb), public :: d_log_pressure
real(kind=jprb), public, allocatable :: temperature1(:)
real(kind=jprb), public :: d_temperature
integer, public :: nplanck = 0
real(kind=jprb), public, allocatable :: temperature1_planck
real(kind=jprb), public, allocatable :: d_temperature_planck
real(kind=jprb), public, allocatable :: planck_function(:,:)
real(kind=jprb), public, allocatable :: norm_solar_irradiance(:)
real(kind=jprb), public, allocatable :: norm_amplitude_solar_irradiance(:)
real(kind=jprb), public, allocatable :: rayleigh_molar_scat(:)
integer, public :: ng = 0
type(spectral_definition_type), public :: spectral_def
logical, public :: is_sw

Type-Bound Procedures

procedure, public :: read => read_ckd_model

  • public subroutine read_ckd_model(this, filename, iverbose)

    Arguments

    Type IntentOptional Attributes Name
    class(ckd_model_type), intent(inout) :: this
    character(len=*), intent(in) :: filename
    integer, intent(in), optional :: iverbose

procedure, public :: read_spectral_solar_cycle

  • public subroutine read_spectral_solar_cycle(this, filename, iverbose, use_updated_solar_spectrum)

    Arguments

    Type IntentOptional Attributes Name
    class(ckd_model_type), intent(inout) :: this
    character(len=*), intent(in) :: filename
    integer, intent(in), optional :: iverbose
    logical, intent(in), optional :: use_updated_solar_spectrum

procedure, public :: calc_optical_depth => calc_optical_depth_ckd_model

  • public subroutine calc_optical_depth_ckd_model(this, ncol, nlev, istartcol, iendcol, nmaxgas, pressure_hl, temperature_fl, mole_fraction_fl, optical_depth_fl, rayleigh_od_fl, concentration_scaling)

    Arguments

    Type IntentOptional Attributes Name
    class(ckd_model_type), intent(in), target :: this
    integer, intent(in) :: ncol
    integer, intent(in) :: nlev
    integer, intent(in) :: istartcol
    integer, intent(in) :: iendcol
    integer, intent(in) :: nmaxgas
    real(kind=jprb), intent(in) :: pressure_hl(ncol,nlev+1)
    real(kind=jprb), intent(in) :: temperature_fl(istartcol:iendcol,nlev)
    real(kind=jprb), intent(in) :: mole_fraction_fl(ncol,nlev,nmaxgas)
    real(kind=jprb), intent(out) :: optical_depth_fl(this%ng,nlev,istartcol:iendcol)
    real(kind=jprb), intent(out), optional :: rayleigh_od_fl(this%ng,nlev,istartcol:iendcol)
    real(kind=jprb), intent(in), optional :: concentration_scaling(nmaxgas)

procedure, public :: print => print_ckd_model

procedure, public :: calc_planck_function

  • public subroutine calc_planck_function(this, nt, temperature, planck)

    Arguments

    Type IntentOptional Attributes Name
    class(ckd_model_type), intent(in) :: this
    integer, intent(in) :: nt
    real(kind=jprb), intent(in) :: temperature(:)
    real(kind=jprb), intent(out) :: planck(this%ng,nt)

procedure, public :: calc_incoming_sw

  • public subroutine calc_incoming_sw(this, total_solar_irradiance, spectral_solar_irradiance, solar_spectral_multiplier)

    Arguments

    Type IntentOptional Attributes Name
    class(ckd_model_type), intent(in) :: this
    real(kind=jprb), intent(in) :: total_solar_irradiance
    real(kind=jprb), intent(inout) :: spectral_solar_irradiance(:,:)
    real(kind=jprb), intent(in), optional :: solar_spectral_multiplier