radiation_gas Module


Uses

  • module~~radiation_gas~2~~UsesGraph module~radiation_gas~2 radiation_gas module~parkind1~2 PARKIND1 module~radiation_gas~2->module~parkind1~2 module~radiation_gas_constants radiation_gas_constants module~radiation_gas~2->module~radiation_gas_constants module~radiation_gas_constants->module~parkind1~2

Used by

  • module~~radiation_gas~2~~UsedByGraph module~radiation_gas~2 radiation_gas proc~set_gas_units~3 set_gas_units proc~set_gas_units~3->module~radiation_gas~2 proc~set_gas_units~5 set_gas_units proc~set_gas_units~5->module~radiation_gas~2 program~ecrad_ifs_driver~2 ecrad_ifs_driver program~ecrad_ifs_driver~2->module~radiation_gas~2 proc~radiation_scheme~3 RADIATION_SCHEME proc~radiation_scheme~3->module~radiation_gas~2 proc~set_gas_units~2 set_gas_units proc~set_gas_units~2->module~radiation_gas~2 proc~save_inputs save_inputs proc~save_inputs->module~radiation_gas~2 proc~add_aerosol_optics~3 add_aerosol_optics proc~add_aerosol_optics~3->module~radiation_gas~2 proc~set_gas_units~6 set_gas_units proc~set_gas_units~6->module~radiation_gas~2 proc~add_aerosol_optics~4 add_aerosol_optics proc~add_aerosol_optics~4->module~radiation_gas~2 program~ecrad_ifs_driver ecrad_ifs_driver program~ecrad_ifs_driver->module~radiation_gas~2 proc~set_gas_units set_gas_units proc~set_gas_units->module~radiation_gas~2 proc~radiation~2 radiation proc~radiation~2->module~radiation_gas~2 proc~set_gas_units~4 set_gas_units proc~set_gas_units~4->module~radiation_gas~2 proc~gas_optics~2 gas_optics proc~gas_optics~2->module~radiation_gas~2 proc~save_inputs~2 save_inputs proc~save_inputs~2->module~radiation_gas~2 proc~radiation_scheme RADIATION_SCHEME proc~radiation_scheme->module~radiation_gas~2 proc~set_gas_units~7 set_gas_units proc~set_gas_units~7->module~radiation_gas~2 proc~radiation radiation proc~radiation->module~radiation_gas~2 proc~read_input read_input proc~read_input->module~radiation_gas~2 proc~ifs_copy_inputs_to_blocked ifs_copy_inputs_to_blocked proc~ifs_copy_inputs_to_blocked->module~radiation_gas~2 proc~set_gas_units~8 set_gas_units proc~set_gas_units~8->module~radiation_gas~2 program~ecrad_driver ecrad_driver program~ecrad_driver->module~radiation_gas~2 proc~radiation_scheme~2 RADIATION_SCHEME proc~radiation_scheme~2->module~radiation_gas~2 proc~gas_optics~3 gas_optics proc~gas_optics~3->module~radiation_gas~2 proc~gas_optics~5 gas_optics proc~gas_optics~5->module~radiation_gas~2 proc~gas_optics~6 gas_optics proc~gas_optics~6->module~radiation_gas~2 proc~radiation_scheme_s2 RADIATION_SCHEME_S2 proc~radiation_scheme_s2->module~radiation_gas~2 proc~gas_optics gas_optics proc~gas_optics->module~radiation_gas~2 proc~add_aerosol_optics add_aerosol_optics proc~add_aerosol_optics->module~radiation_gas~2 proc~add_aerosol_optics~2 add_aerosol_optics proc~add_aerosol_optics~2->module~radiation_gas~2 proc~gas_optics~4 gas_optics proc~gas_optics~4->module~radiation_gas~2

Contents


Enumerations

enum, bind(c)

Enumerators

enumerator:: IMassMixingRatio = 0
enumerator:: IVolumeMixingRatio = 1

Derived Types

type, public ::  gas_type

Components

Type Visibility Attributes Name Initial
integer, public :: iunits(NMaxGases) = 0
real(kind=jprb), public :: scale_factor(NMaxGases) = 1.0_jprb
real(kind=jprb), public, allocatable, dimension(:,:,:) :: mixing_ratio
logical, public :: is_present(NMaxGases) = .false.
logical, public :: is_well_mixed(NMaxGases) = .false.
integer, public :: ntype = 0
integer, public :: ncol = 0
integer, public :: nlev = 0
integer, public :: icode(NMaxGases) = 0

Type-Bound Procedures

procedure , public :: allocate => allocate_gas Subroutine
procedure , public :: deallocate => deallocate_gas Subroutine
procedure , public :: put => put_gas Subroutine
procedure , public :: put_well_mixed => put_well_mixed_gas Subroutine
procedure , public :: scale => scale_gas Subroutine
procedure , public :: set_units => set_units_gas Subroutine
procedure , public :: assert_units => assert_units_gas Subroutine
procedure , public :: get => get_gas Subroutine
procedure , public :: get_scaling Subroutine
procedure , public :: reverse => reverse_gas 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(gas_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_gas(this, ncol, nlev)

Arguments

Type IntentOptional Attributes Name
class(gas_type), intent(inout) :: this
integer, intent(in) :: ncol
integer, intent(in) :: nlev

public subroutine deallocate_gas(this)

Arguments

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

public subroutine put_gas(this, igas, iunits, mixing_ratio, scale_factor, istartcol)

Arguments

Type IntentOptional Attributes Name
class(gas_type), intent(inout) :: this
integer, intent(in) :: igas
integer, intent(in) :: iunits
real(kind=jprb), intent(in) :: mixing_ratio(:,:)
real(kind=jprb), intent(in), optional :: scale_factor
integer, intent(in), optional :: istartcol

public subroutine put_well_mixed_gas(this, igas, iunits, mixing_ratio, scale_factor, istartcol, iendcol)

Arguments

Type IntentOptional Attributes Name
class(gas_type), intent(inout) :: this
integer, intent(in) :: igas
integer, intent(in) :: iunits
real(kind=jprb), intent(in) :: mixing_ratio
real(kind=jprb), intent(in), optional :: scale_factor
integer, intent(in), optional :: istartcol
integer, intent(in), optional :: iendcol

public subroutine scale_gas(this, igas, scale_factor, lverbose)

Arguments

Type IntentOptional Attributes Name
class(gas_type), intent(inout) :: this
integer, intent(in) :: igas
real(kind=jprb), intent(in) :: scale_factor
logical, intent(in), optional :: lverbose

publicrecursive subroutine set_units_gas(this, iunits, igas, scale_factor)

Arguments

Type IntentOptional Attributes Name
class(gas_type), intent(inout) :: this
integer, intent(in) :: iunits
integer, intent(in), optional :: igas
real(kind=jprb), intent(in), optional :: scale_factor

public subroutine get_scaling(this, iunits, scaling)

Arguments

Type IntentOptional Attributes Name
class(gas_type), intent(in) :: this
integer, intent(in) :: iunits
real(kind=jprb), intent(out) :: scaling(NMaxGases)

publicrecursive subroutine assert_units_gas(this, iunits, igas, scale_factor, istatus)

Arguments

Type IntentOptional Attributes Name
class(gas_type), intent(in) :: this
integer, intent(in) :: iunits
integer, intent(in), optional :: igas
real(kind=jprb), intent(in), optional :: scale_factor
logical, intent(out), optional :: istatus

public subroutine get_gas(this, igas, iunits, mixing_ratio, scale_factor, istartcol)

Arguments

Type IntentOptional Attributes Name
class(gas_type), intent(in) :: this
integer, intent(in) :: igas
integer, intent(in) :: iunits
real(kind=jprb), intent(out) :: mixing_ratio(:,:)
real(kind=jprb), intent(in), optional :: scale_factor
integer, intent(in), optional :: istartcol

public subroutine reverse_gas(this, istartcol, iendcol, gas_rev)

Arguments

Type IntentOptional Attributes Name
class(gas_type), intent(in) :: this
integer, intent(in) :: istartcol
integer, intent(in) :: iendcol
type(gas_type), intent(out) :: gas_rev