radiation_flux Module


Uses

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

Used by

  • module~~radiation_flux~2~~UsedByGraph module~radiation_flux~2 radiation_flux proc~solver_spartacus_sw solver_spartacus_sw proc~solver_spartacus_sw->module~radiation_flux~2 proc~solver_homogeneous_sw solver_homogeneous_sw proc~solver_homogeneous_sw->module~radiation_flux~2 proc~solver_mcica_sw solver_mcica_sw proc~solver_mcica_sw->module~radiation_flux~2 proc~save_fluxes~2 save_fluxes proc~save_fluxes~2->module~radiation_flux~2 proc~solver_tripleclouds_sw~2 solver_tripleclouds_sw proc~solver_tripleclouds_sw~2->module~radiation_flux~2 proc~solver_homogeneous_lw~2 solver_homogeneous_lw proc~solver_homogeneous_lw~2->module~radiation_flux~2 proc~solver_spartacus_lw solver_spartacus_lw proc~solver_spartacus_lw->module~radiation_flux~2 proc~solver_spartacus_lw~2 solver_spartacus_lw proc~solver_spartacus_lw~2->module~radiation_flux~2 program~ecrad_ifs_driver~2 ecrad_ifs_driver program~ecrad_ifs_driver~2->module~radiation_flux~2 proc~solver_cloudless_sw solver_cloudless_sw proc~solver_cloudless_sw->module~radiation_flux~2 proc~solver_cloudless_lw~2 solver_cloudless_lw proc~solver_cloudless_lw~2->module~radiation_flux~2 proc~radiation_scheme~3 RADIATION_SCHEME proc~radiation_scheme~3->module~radiation_flux~2 proc~solver_mcica_lw solver_mcica_lw proc~solver_mcica_lw->module~radiation_flux~2 program~ecrad_ifs_driver ecrad_ifs_driver program~ecrad_ifs_driver->module~radiation_flux~2 proc~save_net_fluxes save_net_fluxes proc~save_net_fluxes->module~radiation_flux~2 proc~radiation~2 radiation proc~radiation~2->module~radiation_flux~2 proc~radiation_scheme RADIATION_SCHEME proc~radiation_scheme->module~radiation_flux~2 proc~solver_tripleclouds_lw~2 solver_tripleclouds_lw proc~solver_tripleclouds_lw~2->module~radiation_flux~2 proc~radiation radiation proc~radiation->module~radiation_flux~2 proc~solver_mcica_sw~2 solver_mcica_sw proc~solver_mcica_sw~2->module~radiation_flux~2 proc~solver_cloudless_sw~2 solver_cloudless_sw proc~solver_cloudless_sw~2->module~radiation_flux~2 program~ecrad_driver ecrad_driver program~ecrad_driver->module~radiation_flux~2 proc~radiation_scheme~2 RADIATION_SCHEME proc~radiation_scheme~2->module~radiation_flux~2 proc~ifs_copy_fluxes_from_blocked ifs_copy_fluxes_from_blocked proc~ifs_copy_fluxes_from_blocked->module~radiation_flux~2 proc~save_sw_diagnostics save_sw_diagnostics proc~save_sw_diagnostics->module~radiation_flux~2 proc~solver_homogeneous_lw solver_homogeneous_lw proc~solver_homogeneous_lw->module~radiation_flux~2 proc~solver_cloudless_lw solver_cloudless_lw proc~solver_cloudless_lw->module~radiation_flux~2 proc~solver_tripleclouds_sw solver_tripleclouds_sw proc~solver_tripleclouds_sw->module~radiation_flux~2 proc~save_fluxes save_fluxes proc~save_fluxes->module~radiation_flux~2 proc~solver_homogeneous_sw~2 solver_homogeneous_sw proc~solver_homogeneous_sw~2->module~radiation_flux~2 proc~radiation_scheme_s2 RADIATION_SCHEME_S2 proc~radiation_scheme_s2->module~radiation_flux~2 proc~solver_mcica_lw~2 solver_mcica_lw proc~solver_mcica_lw~2->module~radiation_flux~2 proc~solver_spartacus_sw~2 solver_spartacus_sw proc~solver_spartacus_sw~2->module~radiation_flux~2 proc~solver_tripleclouds_lw solver_tripleclouds_lw proc~solver_tripleclouds_lw->module~radiation_flux~2

Contents


Variables

Type Visibility Attributes Name Initial
logical, public, parameter :: use_indexed_sum_vec = .false.

Derived Types

type, public ::  flux_type

Components

Type Visibility Attributes Name Initial
real(kind=jprb), public, allocatable, dimension(:,:) :: lw_up
real(kind=jprb), public, allocatable, dimension(:,:) :: lw_dn
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_up
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_dn
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_dn_direct
real(kind=jprb), public, allocatable, dimension(:,:) :: lw_up_clear
real(kind=jprb), public, allocatable, dimension(:,:) :: lw_dn_clear
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_up_clear
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_dn_clear
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_dn_direct_clear
real(kind=jprb), public, allocatable, dimension(:,:,:) :: lw_up_band
real(kind=jprb), public, allocatable, dimension(:,:,:) :: lw_dn_band
real(kind=jprb), public, allocatable, dimension(:,:,:) :: sw_up_band
real(kind=jprb), public, allocatable, dimension(:,:,:) :: sw_dn_band
real(kind=jprb), public, allocatable, dimension(:,:,:) :: sw_dn_direct_band
real(kind=jprb), public, allocatable, dimension(:,:,:) :: lw_up_clear_band
real(kind=jprb), public, allocatable, dimension(:,:,:) :: lw_dn_clear_band
real(kind=jprb), public, allocatable, dimension(:,:,:) :: sw_up_clear_band
real(kind=jprb), public, allocatable, dimension(:,:,:) :: sw_dn_clear_band
real(kind=jprb), public, allocatable, dimension(:,:,:) :: sw_dn_direct_clear_band
real(kind=jprb), public, allocatable, dimension(:,:) :: lw_dn_surf_g
real(kind=jprb), public, allocatable, dimension(:,:) :: lw_dn_surf_clear_g
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_dn_diffuse_surf_g
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_dn_direct_surf_g
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_dn_diffuse_surf_clear_g
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_dn_direct_surf_clear_g
real(kind=jprb), public, allocatable, dimension(:,:) :: lw_up_toa_g
real(kind=jprb), public, allocatable, dimension(:,:) :: lw_up_toa_clear_g
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_dn_toa_g
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_up_toa_g
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_up_toa_clear_g
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_dn_surf_band
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_dn_direct_surf_band
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_dn_surf_clear_band
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_dn_direct_surf_clear_band
real(kind=jprb), public, allocatable, dimension(:,:) :: lw_up_toa_band
real(kind=jprb), public, allocatable, dimension(:,:) :: lw_up_toa_clear_band
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_dn_toa_band
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_up_toa_band
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_up_toa_clear_band
real(kind=jprb), public, allocatable, dimension(:,:) :: lw_dn_surf_canopy
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_dn_diffuse_surf_canopy
real(kind=jprb), public, allocatable, dimension(:,:) :: sw_dn_direct_surf_canopy
real(kind=jprb), public, allocatable, dimension(:) :: cloud_cover_lw
real(kind=jprb), public, allocatable, dimension(:) :: cloud_cover_sw
real(kind=jprb), public, allocatable, dimension(:,:) :: lw_derivatives

Type-Bound Procedures

procedure , public :: allocate => allocate_flux_type Subroutine
procedure , public :: deallocate => deallocate_flux_type Subroutine
procedure , public :: calc_surface_spectral Subroutine
procedure , public :: calc_toa_spectral Subroutine
procedure , public :: out_of_physical_bounds Function
procedure , public :: heating_rate_out_of_physical_bounds Function

Functions

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

Arguments

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

Return Value logical

public function heating_rate_out_of_physical_bounds(this, nlev, istartcol, iendcol, pressure_hl) result(is_bad)

Arguments

Type IntentOptional Attributes Name
class(flux_type), intent(inout) :: this
integer, intent(in) :: nlev
integer, intent(in) :: istartcol
integer, intent(in) :: iendcol
real(kind=jprb), intent(in) :: pressure_hl(:,:)

Return Value logical


Subroutines

public subroutine allocate_flux_type(this, config, istartcol, iendcol, nlev)

Arguments

Type IntentOptional Attributes Name
class(flux_type), intent(inout) :: this
type(config_type), intent(in) :: config
integer, intent(in) :: istartcol
integer, intent(in) :: iendcol
integer, intent(in) :: nlev

public subroutine deallocate_flux_type(this)

Arguments

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

public subroutine calc_surface_spectral(this, config, istartcol, iendcol)

Arguments

Type IntentOptional Attributes Name
class(flux_type), intent(inout) :: this
type(config_type), intent(in) :: config
integer, intent(in) :: istartcol
integer, intent(in) :: iendcol

public subroutine calc_toa_spectral(this, config, istartcol, iendcol)

Arguments

Type IntentOptional Attributes Name
class(flux_type), intent(inout) :: this
type(config_type), intent(in) :: config
integer, intent(in) :: istartcol
integer, intent(in) :: iendcol

publicpure subroutine add_indexed_sum(source, ind, dest)

Arguments

Type IntentOptional Attributes Name
real(kind=jprb), intent(in) :: source(:)
integer, intent(in) :: ind(:)
real(kind=jprb), intent(inout) :: dest(:)

publicpure subroutine indexed_sum(source, ind, dest)

Arguments

Type IntentOptional Attributes Name
real(kind=jprb), intent(in) :: source(:)
integer, intent(in) :: ind(:)
real(kind=jprb), intent(out) :: dest(:)

public subroutine indexed_sum_vec(source, ind, dest, ist, iend)

Arguments

Type IntentOptional Attributes Name
real(kind=jprb), intent(in) :: source(:,:)
integer, intent(in) :: ind(:)
real(kind=jprb), intent(out) :: dest(:,:)
integer, intent(in) :: ist
integer, intent(in) :: iend

publicpure subroutine add_indexed_sum_profile(source, ind, dest)

Arguments

Type IntentOptional Attributes Name
real(kind=jprb), intent(in) :: source(:,:)
integer, intent(in) :: ind(:)
real(kind=jprb), intent(out) :: dest(:,:)

publicpure subroutine indexed_sum_profile(source, ind, dest)

Arguments

Type IntentOptional Attributes Name
real(kind=jprb), intent(in) :: source(:,:)
integer, intent(in) :: ind(:)
real(kind=jprb), intent(out) :: dest(:,:)