radiation_ecckd Module


Uses

  • module~~radiation_ecckd~~UsesGraph module~radiation_ecckd radiation_ecckd module~radiation_ecckd_gas radiation_ecckd_gas module~radiation_ecckd->module~radiation_ecckd_gas module~parkind1~2 PARKIND1 module~radiation_ecckd->module~parkind1~2 module~radiation_gas_constants radiation_gas_constants module~radiation_ecckd->module~radiation_gas_constants module~radiation_spectral_definition~2 radiation_spectral_definition module~radiation_ecckd->module~radiation_spectral_definition~2 module~radiation_ecckd_gas->module~parkind1~2 module~radiation_ecckd_gas->module~radiation_gas_constants module~radiation_gas_constants->module~parkind1~2 module~radiation_spectral_definition~2->module~parkind1~2

Contents


Derived Types

type, public ::  ckd_model_type

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 :: 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 Subroutine
procedure , public :: calc_optical_depth => calc_optical_depth_ckd_model Subroutine
procedure , public :: print => print_ckd_model Subroutine
procedure , public :: calc_planck_function Subroutine
procedure , public :: calc_incoming_sw Subroutine

Subroutines

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

public subroutine print_ckd_model(this)

Arguments

Type IntentOptional Attributes Name
class(ckd_model_type), intent(in) :: this

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)

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)

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)

public subroutine calc_incoming_sw(this, total_solar_irradiance, spectral_solar_irradiance)

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(:,:)