radiation_single_level Module


Uses

  • module~~radiation_single_level~2~~UsesGraph module~radiation_single_level~2 radiation_single_level module~parkind1~2 PARKIND1 module~radiation_single_level~2->module~parkind1~2

Used by

  • module~~radiation_single_level~2~~UsedByGraph module~radiation_single_level~2 radiation_single_level proc~solver_spartacus_sw solver_spartacus_sw proc~solver_spartacus_sw->module~radiation_single_level~2 proc~solver_homogeneous_sw solver_homogeneous_sw proc~solver_homogeneous_sw->module~radiation_single_level~2 proc~solver_mcica_sw solver_mcica_sw proc~solver_mcica_sw->module~radiation_single_level~2 proc~solver_tripleclouds_sw~2 solver_tripleclouds_sw proc~solver_tripleclouds_sw~2->module~radiation_single_level~2 proc~save_radiative_properties~2 save_radiative_properties proc~save_radiative_properties~2->module~radiation_single_level~2 program~ecrad_ifs_driver~2 ecrad_ifs_driver program~ecrad_ifs_driver~2->module~radiation_single_level~2 proc~solver_cloudless_sw solver_cloudless_sw proc~solver_cloudless_sw->module~radiation_single_level~2 proc~radiation_scheme~3 RADIATION_SCHEME proc~radiation_scheme~3->module~radiation_single_level~2 proc~save_inputs save_inputs proc~save_inputs->module~radiation_single_level~2 proc~solver_mcica_lw solver_mcica_lw proc~solver_mcica_lw->module~radiation_single_level~2 program~ecrad_ifs_driver ecrad_ifs_driver program~ecrad_ifs_driver->module~radiation_single_level~2 proc~radiation~2 radiation proc~radiation~2->module~radiation_single_level~2 proc~gas_optics~2 gas_optics proc~gas_optics~2->module~radiation_single_level~2 proc~save_inputs~2 save_inputs proc~save_inputs~2->module~radiation_single_level~2 proc~radiation_scheme RADIATION_SCHEME proc~radiation_scheme->module~radiation_single_level~2 proc~radiation radiation proc~radiation->module~radiation_single_level~2 proc~read_input read_input proc~read_input->module~radiation_single_level~2 proc~ifs_copy_inputs_to_blocked ifs_copy_inputs_to_blocked proc~ifs_copy_inputs_to_blocked->module~radiation_single_level~2 proc~solver_mcica_sw~2 solver_mcica_sw proc~solver_mcica_sw~2->module~radiation_single_level~2 proc~solver_cloudless_sw~2 solver_cloudless_sw proc~solver_cloudless_sw~2->module~radiation_single_level~2 program~ecrad_driver ecrad_driver program~ecrad_driver->module~radiation_single_level~2 proc~radiation_scheme~2 RADIATION_SCHEME proc~radiation_scheme~2->module~radiation_single_level~2 proc~solver_tripleclouds_sw solver_tripleclouds_sw proc~solver_tripleclouds_sw->module~radiation_single_level~2 proc~gas_optics~3 gas_optics proc~gas_optics~3->module~radiation_single_level~2 proc~gas_optics~5 gas_optics proc~gas_optics~5->module~radiation_single_level~2 proc~solver_homogeneous_sw~2 solver_homogeneous_sw proc~solver_homogeneous_sw~2->module~radiation_single_level~2 proc~gas_optics~6 gas_optics proc~gas_optics~6->module~radiation_single_level~2 proc~radiation_scheme_s2 RADIATION_SCHEME_S2 proc~radiation_scheme_s2->module~radiation_single_level~2 proc~gas_optics gas_optics proc~gas_optics->module~radiation_single_level~2 proc~save_radiative_properties save_radiative_properties proc~save_radiative_properties->module~radiation_single_level~2 proc~solver_mcica_lw~2 solver_mcica_lw proc~solver_mcica_lw~2->module~radiation_single_level~2 proc~solver_spartacus_sw~2 solver_spartacus_sw proc~solver_spartacus_sw~2->module~radiation_single_level~2 proc~gas_optics~4 gas_optics proc~gas_optics~4->module~radiation_single_level~2

Contents


Derived Types

type, public ::  single_level_type

Components

Type Visibility Attributes Name Initial
real(kind=jprb), public, allocatable, dimension(:) :: cos_sza
real(kind=jprb), public, allocatable, dimension(:) :: skin_temperature
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_albedo
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_albedo_direct
real(kind=jprb), public, allocatable, dimension(:,:) :: lw_emissivity
real(kind=jprb), public, allocatable, dimension(:,:) :: lw_emission
real(kind=jprb), public :: solar_irradiance = 1366.0_jprb
real(kind=jprb), public :: spectral_solar_cycle_multiplier = 0.0_jprb
real(kind=jprb), public, allocatable, dimension(:) :: spectral_solar_scaling
integer, public, allocatable, dimension(:) :: iseed
logical, public :: is_simple_surface = .true.

Type-Bound Procedures

procedure , public :: allocate => allocate_single_level Subroutine
procedure , public :: deallocate => deallocate_single_level Subroutine
procedure , public :: init_seed_simple Subroutine
procedure , public :: get_albedos Subroutine
procedure , public :: out_of_physical_bounds Function

Functions

public function out_of_physical_bounds(this, istartcol, iendcol, do_fix) result(is_bad)

Arguments

Type IntentOptional Attributes Name
class(single_level_type), intent(inout) :: this
integer, intent(in), optional :: istartcol
integer, intent(in), optional :: iendcol
logical, intent(in), optional :: do_fix

Return Value logical


Subroutines

public subroutine allocate_single_level(this, ncol, nalbedobands, nemisbands, use_sw_albedo_direct, is_simple_surface)

Arguments

Type IntentOptional Attributes Name
class(single_level_type), intent(inout) :: this
integer, intent(in) :: ncol
integer, intent(in) :: nalbedobands
integer, intent(in) :: nemisbands
logical, intent(in), optional :: use_sw_albedo_direct
logical, intent(in), optional :: is_simple_surface

public subroutine deallocate_single_level(this)

Arguments

Type IntentOptional Attributes Name
class(single_level_type), intent(inout) :: this

public subroutine init_seed_simple(this, istartcol, iendcol)

Arguments

Type IntentOptional Attributes Name
class(single_level_type), intent(inout) :: this
integer, intent(in) :: istartcol
integer, intent(in) :: iendcol

public subroutine get_albedos(this, istartcol, iendcol, config, sw_albedo_direct, sw_albedo_diffuse, lw_albedo)

Arguments

Type IntentOptional Attributes Name
class(single_level_type), intent(in) :: this
integer, intent(in) :: istartcol
integer, intent(in) :: iendcol
type(config_type), intent(in) :: config
real(kind=jprb), intent(out), dimension(config%n_g_sw, istartcol:iendcol) :: sw_albedo_direct
real(kind=jprb), intent(out), dimension(config%n_g_sw, istartcol:iendcol) :: sw_albedo_diffuse
real(kind=jprb), intent(out), optional :: lw_albedo(config%n_g_lw,istartcol:iendcol)