CDMSreader__types Module

Contains type definitions and procedures for those types



Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: sp = real32
integer, public, parameter :: dp = real64

Interfaces

public interface add_to

  • private pure module subroutine add_state_to_nohfs(state, states)

    Add state "state" to the array of states "states"

    Arguments

    Type IntentOptional Attributes Name
    type(asymtop_state_nohfs), intent(in) :: state
    type(asymtop_state_nohfs), intent(inout), allocatable :: states(:)
  • private pure module subroutine add_state_to_hfs(state, states)

    Add state "state" to the array of states "states"

    Arguments

    Type IntentOptional Attributes Name
    type(asymtop_state_hfs), intent(in) :: state
    type(asymtop_state_hfs), intent(inout), allocatable :: states(:)
  • private pure module subroutine add_transition_to_nohfs(transition, transitions)

    Add transition "transition" to the array of transitions "transitions"

    Arguments

    Type IntentOptional Attributes Name
    type(asymtop_transition_nohfs), intent(in) :: transition
    type(asymtop_transition_nohfs), intent(inout), allocatable :: transitions(:)
  • private pure module subroutine add_transition_to_hfs(transition, transitions)

    Add transition "transition" to the array of transitions "transitions"

    Arguments

    Type IntentOptional Attributes Name
    type(asymtop_transition_hfs), intent(in) :: transition
    type(asymtop_transition_hfs), intent(inout), allocatable :: transitions(:)

public interface make_asymtop_state

  • private pure elemental module function make_asymtop_state_hfs(dN, dKa, dKc, dJ, dItot, dF, E, EinstA) result(state)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: dN
    integer, intent(in) :: dKa
    integer, intent(in) :: dKc
    integer, intent(in) :: dJ
    integer, intent(in) :: dItot
    integer, intent(in) :: dF
    real(kind=dp), intent(in) :: E
    real(kind=dp), intent(in) :: EinstA

    Return Value type(asymtop_state_hfs)

  • private pure elemental module function make_asymtop_state_nohfs(dN, dKa, dKc, E, EinstA, degen) result(state)

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: dN
    integer, intent(in) :: dKa
    integer, intent(in) :: dKc
    real(kind=dp), intent(in) :: E
    real(kind=dp), intent(in) :: EinstA
    integer, intent(in), optional :: degen

    Return Value type(asymtop_state_nohfs)

public interface find_state_number

  • private pure subroutine find_state_number_nohfs(state, states, i)

    Check if the state "state" is in the array of states "states"

    Arguments

    Type IntentOptional Attributes Name
    type(asymtop_state_nohfs), intent(in) :: state
    type(asymtop_state_nohfs), intent(in), allocatable :: states(:)
    integer, intent(out) :: i
  • private pure subroutine find_state_number_hfs(state, states, i)

    Check if the state "state" is in the array of states "states"

    Arguments

    Type IntentOptional Attributes Name
    type(asymtop_state_hfs), intent(in) :: state
    type(asymtop_state_hfs), intent(in), allocatable :: states(:)
    integer, intent(out) :: i

public interface find_transition_number

  • private pure subroutine find_transition_number_nohfs(transition, transitions, i)

    Check if the transition "transition" is in the array of transitions "transitions"

    Arguments

    Type IntentOptional Attributes Name
    type(asymtop_transition_nohfs), intent(in) :: transition
    type(asymtop_transition_nohfs), intent(in), allocatable :: transitions(:)
    integer, intent(out) :: i
  • private pure subroutine find_transition_number_hfs(transition, transitions, i)

    Check if the transition "transition" is in the array of transitions "transitions"

    Arguments

    Type IntentOptional Attributes Name
    type(asymtop_transition_hfs), intent(in) :: transition
    type(asymtop_transition_hfs), intent(in), allocatable :: transitions(:)
    integer, intent(out) :: i

public interface sort_last_transition

  • private pure subroutine sort_last_transition_hfs(transitions, iout)

    Sort the last element in the array to where it should go, assuming the rest of the array is sorted. Optionally return the index of the sorted element

    Arguments

    Type IntentOptional Attributes Name
    type(asymtop_transition_hfs), intent(inout) :: transitions(:)

    The array of transitions

    integer, intent(out), optional :: iout

    The array to which the last state was sorted

  • private pure subroutine sort_last_transition_nohfs(transitions, iout)

    Sort the last element in the array to where it should go, assuming the rest of the array is sorted. Optionally return the index of the sorted element

    Arguments

    Type IntentOptional Attributes Name
    type(asymtop_transition_nohfs), intent(inout) :: transitions(:)

    The array of transitions

    integer, intent(out), optional :: iout

    The array to which the last state was sorted

public interface sort_transitions

  • private pure subroutine sort_transitions_hfs(transitions)

    Insertion sort the array transitions, without assuming that it is sorted

    Arguments

    Type IntentOptional Attributes Name
    type(asymtop_transition_hfs), intent(inout) :: transitions(:)

    The array of transitions

  • private pure subroutine sort_transitions_nohfs(transitions)

    Insertion sort the array transitions, without assuming that it is sorted

    Arguments

    Type IntentOptional Attributes Name
    type(asymtop_transition_nohfs), intent(inout) :: transitions(:)

    The array of transitions


Derived Types

type, public, abstract ::  asymtop_state

Corresponds to an asymmetric top molecule defined by Q = 23 without the hyperfine splitting, essentially averaged over F

Components

Type Visibility Attributes Name Initial
integer, public :: dN

Twice the rotational quantum number of the molecule as a rigid rotor

integer, public :: dKa

Twice the approximate projection of N on the A axis

integer, public :: dKc

Twice the approximate projection of N on the C axis

real(kind=dp), public :: E

The state energy

real(kind=dp), public :: EinstA

The total Einstein coefficient from this state

type, public, extends(asymtop_state) ::  asymtop_state_nohfs

Already defined by asymtop state !

Components

Type Visibility Attributes Name Initial
integer, public :: dN

Twice the rotational quantum number of the molecule as a rigid rotor

integer, public :: dKa

Twice the approximate projection of N on the A axis

integer, public :: dKc

Twice the approximate projection of N on the C axis

real(kind=dp), public :: E

The state energy

real(kind=dp), public :: EinstA

The total Einstein coefficient from this state

integer, public :: degen

The total hyperfine degeneracy of the state Σ(2F+1)

type, public, extends(asymtop_state) ::  asymtop_state_hfs

Corresponds to an asymmetric top molecule defined by Q = 23 with the hyperfine splitting

Components

Type Visibility Attributes Name Initial
integer, public :: dN

Twice the rotational quantum number of the molecule as a rigid rotor

integer, public :: dKa

Twice the approximate projection of N on the A axis

integer, public :: dKc

Twice the approximate projection of N on the C axis

real(kind=dp), public :: E

The state energy

real(kind=dp), public :: EinstA

The total Einstein coefficient from this state

integer, public :: dJ

Twice the total angular momentum of the rotation (N) and the electron spin (S).

integer, public :: dItot

Twice the nuclear spin quantum number

integer, public :: dF

Twice the angular momentum from the rotation and electrons (J) and the nuclear spin (I).

type, public, abstract ::  asymtop_transition

Corresponds to a transition

Components

Type Visibility Attributes Name Initial
real(kind=dp), public :: freq

The frequency of the transition

real(kind=dp), public :: EinstA

The Einstein coefficient A

real(kind=dp), public :: err

The error

integer, public :: dr

Degrees of freedom

integer, public :: gup

Upper level degeneracy

type, public, extends(asymtop_transition) ::  asymtop_transition_hfs

Components

Type Visibility Attributes Name Initial
real(kind=dp), public :: freq

The frequency of the transition

real(kind=dp), public :: EinstA

The Einstein coefficient A

real(kind=dp), public :: err

The error

integer, public :: dr

Degrees of freedom

integer, public :: gup

Upper level degeneracy

type(asymtop_state_hfs), public :: up

Upper state

type(asymtop_state_hfs), public :: lo

Lower stat

type, public, extends(asymtop_transition) ::  asymtop_transition_nohfs

Components

Type Visibility Attributes Name Initial
real(kind=dp), public :: freq

The frequency of the transition

real(kind=dp), public :: EinstA

The Einstein coefficient A

real(kind=dp), public :: err

The error

integer, public :: dr

Degrees of freedom

integer, public :: gup

Upper level degeneracy

type(asymtop_state_nohfs), public :: up

Upper state

type(asymtop_state_nohfs), public :: lo

Lower stat


Subroutines

public pure subroutine sort_last_state(states, iout)

Sort the last element in the array to where it should go, assuming the rest of the array is sorted

Arguments

Type IntentOptional Attributes Name
class(asymtop_state), intent(inout) :: states(:)

The array of states

integer, intent(out), optional :: iout

The array to which the last state was sorted

public pure subroutine sort_states(states)

Insertion sort the array states, without assuming that it is sorted

Arguments

Type IntentOptional Attributes Name
class(asymtop_state), intent(inout) :: states(:)

The array of states