radiation_thermodynamics Module


Uses

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

Used by

  • module~~radiation_thermodynamics~2~~UsedByGraph module~radiation_thermodynamics~2 radiation_thermodynamics proc~cloud_optics cloud_optics proc~cloud_optics->module~radiation_thermodynamics~2 proc~solver_spartacus_sw solver_spartacus_sw proc~solver_spartacus_sw->module~radiation_thermodynamics~2 proc~set_overlap_param_approx~2 set_overlap_param_approx proc~set_overlap_param_approx~2->module~radiation_thermodynamics~2 proc~general_cloud_optics general_cloud_optics proc~general_cloud_optics->module~radiation_thermodynamics~2 proc~planck_function_atmos~2 planck_function_atmos proc~planck_function_atmos~2->module~radiation_thermodynamics~2 proc~save_fluxes~2 save_fluxes proc~save_fluxes~2->module~radiation_thermodynamics~2 proc~solver_spartacus_lw solver_spartacus_lw proc~solver_spartacus_lw->module~radiation_thermodynamics~2 proc~solver_spartacus_lw~2 solver_spartacus_lw proc~solver_spartacus_lw~2->module~radiation_thermodynamics~2 proc~save_radiative_properties~2 save_radiative_properties proc~save_radiative_properties~2->module~radiation_thermodynamics~2 program~ecrad_ifs_driver~2 ecrad_ifs_driver program~ecrad_ifs_driver~2->module~radiation_thermodynamics~2 proc~set_overlap_param_var set_overlap_param_var proc~set_overlap_param_var->module~radiation_thermodynamics~2 proc~radiation_scheme~3 RADIATION_SCHEME proc~radiation_scheme~3->module~radiation_thermodynamics~2 proc~save_inputs save_inputs proc~save_inputs->module~radiation_thermodynamics~2 proc~aeropt_5wv_ecrad AEROPT_5WV_ECRAD proc~aeropt_5wv_ecrad->module~radiation_thermodynamics~2 proc~add_aerosol_optics~3 add_aerosol_optics proc~add_aerosol_optics~3->module~radiation_thermodynamics~2 proc~add_aerosol_optics~4 add_aerosol_optics proc~add_aerosol_optics~4->module~radiation_thermodynamics~2 program~ecrad_ifs_driver ecrad_ifs_driver program~ecrad_ifs_driver->module~radiation_thermodynamics~2 proc~cloud_optics~2 cloud_optics proc~cloud_optics~2->module~radiation_thermodynamics~2 proc~set_overlap_param_var2d set_overlap_param_var2D proc~set_overlap_param_var2d->module~radiation_thermodynamics~2 proc~save_net_fluxes save_net_fluxes proc~save_net_fluxes->module~radiation_thermodynamics~2 proc~radiation~2 radiation proc~radiation~2->module~radiation_thermodynamics~2 proc~set_overlap_param set_overlap_param proc~set_overlap_param->module~radiation_thermodynamics~2 proc~gas_optics~2 gas_optics proc~gas_optics~2->module~radiation_thermodynamics~2 proc~save_inputs~2 save_inputs proc~save_inputs~2->module~radiation_thermodynamics~2 proc~radiation_scheme RADIATION_SCHEME proc~radiation_scheme->module~radiation_thermodynamics~2 proc~radiation radiation proc~radiation->module~radiation_thermodynamics~2 proc~set_overlap_param_fix set_overlap_param_fix proc~set_overlap_param_fix->module~radiation_thermodynamics~2 proc~read_input read_input proc~read_input->module~radiation_thermodynamics~2 proc~ifs_copy_inputs_to_blocked ifs_copy_inputs_to_blocked proc~ifs_copy_inputs_to_blocked->module~radiation_thermodynamics~2 proc~general_cloud_optics~2 general_cloud_optics proc~general_cloud_optics~2->module~radiation_thermodynamics~2 program~ecrad_driver ecrad_driver program~ecrad_driver->module~radiation_thermodynamics~2 proc~radiation_scheme~2 RADIATION_SCHEME proc~radiation_scheme~2->module~radiation_thermodynamics~2 proc~planck_function_atmos planck_function_atmos proc~planck_function_atmos->module~radiation_thermodynamics~2 proc~gas_optics~3 gas_optics proc~gas_optics~3->module~radiation_thermodynamics~2 proc~save_fluxes save_fluxes proc~save_fluxes->module~radiation_thermodynamics~2 proc~gas_optics~5 gas_optics proc~gas_optics~5->module~radiation_thermodynamics~2 proc~cloud_optics~4 cloud_optics proc~cloud_optics~4->module~radiation_thermodynamics~2 proc~gas_optics~6 gas_optics proc~gas_optics~6->module~radiation_thermodynamics~2 proc~radiation_scheme_s2 RADIATION_SCHEME_S2 proc~radiation_scheme_s2->module~radiation_thermodynamics~2 proc~gas_optics gas_optics proc~gas_optics->module~radiation_thermodynamics~2 proc~add_aerosol_optics add_aerosol_optics proc~add_aerosol_optics->module~radiation_thermodynamics~2 proc~save_radiative_properties save_radiative_properties proc~save_radiative_properties->module~radiation_thermodynamics~2 proc~set_overlap_param_approx set_overlap_param_approx proc~set_overlap_param_approx->module~radiation_thermodynamics~2 proc~add_aerosol_optics~2 add_aerosol_optics proc~add_aerosol_optics~2->module~radiation_thermodynamics~2 proc~cloud_optics~3 cloud_optics proc~cloud_optics~3->module~radiation_thermodynamics~2 proc~solver_spartacus_sw~2 solver_spartacus_sw proc~solver_spartacus_sw~2->module~radiation_thermodynamics~2 proc~gas_optics~4 gas_optics proc~gas_optics~4->module~radiation_thermodynamics~2

Contents


Derived Types

type, public ::  thermodynamics_type

Components

Type Visibility Attributes Name Initial
real(kind=jprb), public, allocatable, dimension(:,:) :: pressure_hl
real(kind=jprb), public, allocatable, dimension(:,:) :: temperature_hl
real(kind=jprb), public, allocatable, dimension(:,:) :: h2o_sat_liq

Type-Bound Procedures

procedure , public :: allocate => allocate_thermodynamics_arrays Subroutine
procedure , public :: deallocate => deallocate_thermodynamics_arrays Subroutine
procedure , public :: calc_saturation_wrt_liquid Subroutine
procedure , public :: get_layer_mass Subroutine
procedure , public :: get_layer_mass_column 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(thermodynamics_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_thermodynamics_arrays(this, ncol, nlev, use_h2o_sat)

Arguments

Type IntentOptional Attributes Name
class(thermodynamics_type), intent(inout) :: this
integer, intent(in) :: ncol
integer, intent(in) :: nlev
logical, intent(in), optional :: use_h2o_sat

public subroutine deallocate_thermodynamics_arrays(this)

Arguments

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

public subroutine calc_saturation_wrt_liquid(this, istartcol, iendcol)

Arguments

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

public subroutine get_layer_mass(this, istartcol, iendcol, layer_mass)

Arguments

Type IntentOptional Attributes Name
class(thermodynamics_type), intent(in) :: this
integer, intent(in) :: istartcol
integer, intent(in) :: iendcol
real(kind=jprb), intent(out) :: layer_mass(:,:)

public subroutine get_layer_mass_column(this, icol, layer_mass)

Arguments

Type IntentOptional Attributes Name
class(thermodynamics_type), intent(in) :: this
integer, intent(in) :: icol
real(kind=jprb), intent(out) :: layer_mass(:)

public subroutine get_layer_separation(pressure_hl, temperature_hl, layer_separation)

Arguments

Type IntentOptional Attributes Name
real(kind=jprb), intent(in), dimension(:,:) :: pressure_hl
real(kind=jprb), intent(in), dimension(:,:) :: temperature_hl
real(kind=jprb), intent(out), dimension(:,:) :: layer_separation