radiation_gas Module


Uses

  • module~~radiation_gas~~UsesGraph module~radiation_gas radiation_gas module~parkind1~2 PARKIND1 module~radiation_gas->module~parkind1~2 module~radiation_gas_constants radiation_gas_constants module~radiation_gas->module~radiation_gas_constants module~radiation_gas_constants->module~parkind1~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 :: 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

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

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

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) :: this
integer, intent(in) :: istartcol
integer, intent(in) :: iendcol
type(gas_type), intent(out) :: gas_rev