atomic_tables Module

Library for calculating atomic cross sections and reaction rate coefficients for Hydrogen interactions

References

  1. W.L. Wiese, M.W. Smith, and B.M. Glennon. Atomic Transition Probabilities. Volume 1. Hydrogen through Neon. National Bureau of Standards Washington DC Institute for Basic Standards, 1966.
  2. R.K. Janev, D. Reiter, and U. Samm. Collision processes in low-temperature hydrogen plasmas. Forschungszentrum Jülich, Zentralbibliothek, 2003.
  3. M. O'Mullane. Review of proton impact driven ionisation from the excited levels in neutral hydrogen beams. ADAS note, 2009.
  4. ADAS: Atomic Data and Analysis Structure
  5. R.K. Janev and J.J. Smith. Cross sections for collision processes of hydrogen atoms with electrons, protons and multiply charged ions. Atomic and Plasma-Material Interaction Data for Fusion: Volume 4, 1993.
  6. Reinhold, C. O., R. E. Olson, and W. Fritsch. Excitation of atomic hydrogen by fully stripped ions. Physical Review A 41.9 1990.
  7. Bosch, H-S., and G. M. Hale. Improved formulas for fusion cross-sections and thermal reactivities. Nuclear fusion 32.4 1992.
  8. Aladdin Database: R.K. Janev, W.D. Langer, K. Evans Jr., D.E. Post Jr. H-HE-PLASMA (1987)

Uses

  • module~~atomic_tables~~UsesGraph module~atomic_tables atomic_tables module~mpi_utils mpi_utils module~atomic_tables->module~mpi_utils H5LT H5LT module~atomic_tables->H5LT module~hdf5_utils hdf5_utils module~atomic_tables->module~hdf5_utils HDF5 HDF5 module~atomic_tables->HDF5 module~hdf5_utils->H5LT module~hdf5_utils->HDF5

Used by

  • module~~atomic_tables~~UsedByGraph module~atomic_tables atomic_tables program~generate_tables generate_tables program~generate_tables->module~atomic_tables

Contents

p_cx_1_janev p_cx_2_janev p_cx_3_janev p_cx_n_janev p_cx_janev aljan1 p_cx_1_2_janev p_cx_1_1_adas p_cx_1_2_adas p_cx_1_3_adas p_cx_1_4_adas p_cx_1 p_cx_2_2_adas p_cx_2_3_adas p_cx_2 p_cx_3_2_adas p_cx_3_3_adas p_cx_3_4_adas p_cx_3_5_adas p_cx_3_6inf_adas p_cx_3 p_cx_n p_cx_n_m p_cx p_ioniz_1_janev p_ioniz_2_omullane p_ioniz_3_omullane p_ioniz_4_omullane p_ioniz_5_omullane p_ioniz_n p_ioniz p_excit_1_2_janev p_excit_1_3_janev p_excit_1_4_janev p_excit_1_5_janev p_excit_1_6_janev p_excit_1_janev p_excit_2_3_janev p_excit_2_4_janev p_excit_2_5_janev p_excit_2_6_janev p_excit_2_7_janev p_excit_2_8_janev p_excit_2_9_janev p_excit_2_10_janev p_excit_2_janev p_excit_3_4_janev p_excit_3_5_janev p_excit_3_6_janev p_excit_3_7_janev p_excit_3_8_janev p_excit_3_9_janev p_excit_3_10_janev p_excit_3_janev p_excit_n p_excit_n_m p_excit e_ioniz_1_janev e_ioniz_2_janev e_ioniz_3_janev e_ioniz_n e_ioniz e_excit_1_2_janev e_excit_1_3_janev e_excit_1_4_janev e_excit_1_5_janev e_excit_f e_excit_1_janev e_excit_2_3_janev e_excit_n e_excit_n_m e_excit B5_cx_1_adas B5_cx_2_adas C6_cx_1_adas C6_cx_2_adas C6_cx_3_adas Aq_cx_n_adas B5_cx_1_janev C6_cx_1_janev Aq_cx_n_janev Aq_cx_n Aq_cx B5_ioniz_1_janev C6_ioniz_1_janev Aq_ioniz_n_janev Aq_ioniz_n Aq_ioniz Aq_excit_1_2_janev Aq_excit_1_3_janev Aq_excit_1_4_janev Aq_excit_1_5_janev Aq_excit_1_janev Aq_excit_2_3_janev Aq_excit_2_4_janev Aq_excit_2_5_janev Aq_excit_2_6_janev Aq_excit_2_7_janev Aq_excit_2_8_janev Aq_excit_2_9_janev Aq_excit_2_10_janev Aq_excit_2_janev Aq_excit_3_4_janev Aq_excit_3_5_janev Aq_excit_3_6_janev Aq_excit_3_7_janev Aq_excit_3_8_janev Aq_excit_3_9_janev Aq_excit_3_10_janev Aq_excit_3_janev Aq_excit_n_janev Aq_excit_n Aq_excit_n_m Aq_excit d_d_fusion_t d_d_fusion_he d_t_fusion simpsons_rule

Variables

TypeVisibility AttributesNameInitial
real(kind=Float64), public, parameter:: PI =3.14159265d0
real(kind=Float64), public, parameter:: e_amu =5.48579909070d-4

Atomic mass of an electron [amu]

real(kind=Float64), public, parameter:: H1_amu =1.007276466879d0

Atomic mass of Hydrogen-1 (protium) [amu]

real(kind=Float64), public, parameter:: H2_amu =2.013553212745d0

Atomic mass of Hydrogen-2 (deuterium) [amu]

real(kind=Float64), public, parameter:: H3_amu =3.01550071632d0

Atomic mass of Hydrogen-3 (tritium) [amu]

real(kind=Float64), public, parameter:: He3_amu =3.01602931914d0

Atomic mass of Helium-3 [amu]

real(kind=Float64), public, parameter:: B_amu =10.81d0

Atomic mass of Boron [amu]

real(kind=Float64), public, parameter:: C_amu =12.011d0

Atomic mass of Carbon [amu]

integer, public, parameter:: B_q =5

Proton number of Boron

integer, public, parameter:: C_q =6

Proton number of Carbon

real(kind=Float64), public, parameter, dimension(15,15):: EINSTEIN =reshape([0.d0, 4.699d8, 5.575d7, 1.278d7, 4.125d6, 1.644d6, 7.568d5, 3.869d5, 2.143d5, 1.263d5, 7.834d4, 5.066d4, 3.393d4, 2.341d4, 1.657d4, 0.d0, 0.d0, 4.410d7, 8.419d6, 2.530d6, 9.732d5, 4.389d5, 2.215d5, 1.216d5, 7.122d4, 4.397d4, 2.834d4, 1.893d4, 1.303d4, 9.210d3, 0.d0, 0.d0, 0.d0, 8.986d6, 2.201d6, 7.783d5, 3.358d5, 1.651d5, 8.905d4, 5.156d4, 3.156d4, 2.021d4, 1.343d4, 9.211d3, 6.490d3, 0.d0, 0.d0, 0.d0, 0.d0, 2.699d6, 7.711d5, 3.041d5, 1.424d5, 7.459d4, 4.235d4, 2.556d4, 1.620d4, 1.069d4, 7.288d3, 5.110d3, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 1.025d6, 3.253d5, 1.388d5, 6.908d4, 3.800d4, 2.246d4, 1.402d4, 9.148d3, 6.185d3, 4.308d3, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 4.561d5, 1.561d5, 7.065d4, 3.688d4, 2.110d4, 1.288d4, 8.271d3, 5.526d3, 3.815d3, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 2.272d5, 8.237d4, 3.905d4, 2.117d4, 1.250d4, 7.845d3, 5.156d3, 3.516d3, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 1.233d5, 4.676d4, 2.301d4, 1.287d4, 7.804d3, 5.010d3, 3.359d3, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 7.141d4, 2.812d4, 1.427d4, 8.192d3, 5.080d3, 3.325d3, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 4.377d4, 1.774d4, 9.231d3, 5.417d3, 3.324d3, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 2.799d4, 1.163d4, 6.186d3, 3.699d3, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 1.857d4, 7.884d3, 4.271d3, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 1.271d4, 5.496d3, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 8.933d3, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0], [15, 15])

Einstein coefficients for spontaneous emission from state initial state n to final state m

References:

integer, public :: istart =1

Starting loop counter (1 if OpenMP, processor number if MPI)

integer, public :: istep =1

Loop step size (1 if OpenMP, number of processes if MPI)

logical, public :: verbose =.True.

Indicates whether process is verbose


Interfaces

public interface bt_maxwellian

Calculates the reaction rate coefficients given beam energy eb and target temperature T where the velocity distribution of the target is a Maxwellian

  • public subroutine bt_maxwellian_eb(fn, T, eb, am, ab, rate)

    Calculates Maxwellian reaction rate for a beam with atomic mass ab and energy eb firing into a target with atomic mass am and temperature T which has a cross section given by the function fn

    Arguments

    Type IntentOptional AttributesName
    public function fn(a)

    Cross section function

    Arguments
    Type IntentOptional AttributesName
    real(kind=8), intent(in) :: a
    Return Value real(kind=8)
    real(kind=Float64), intent(in) :: T

    Target temperature [keV]

    real(kind=Float64), intent(in) :: eb

    Beam energy [keV]

    real(kind=Float64), intent(in) :: am

    Target atomic mass [amu]

    real(kind=Float64), intent(in) :: ab

    Beam atomic mass [amu]

    real(kind=Float64), intent(out) :: rate

    Reaction Rate []

  • public subroutine bt_maxwellian_n(fn, T, eb, am, ab, n, rate)

    Calculates Maxwellian reaction rate for a beam with atomic mass ab, energy eb, and energy level n firing into a target with atomic mass am and temperature T which has a cross section given by the function fn

    Arguments

    Type IntentOptional AttributesName
    public function fn(a, b)

    Cross section function

    Arguments
    Type IntentOptional AttributesName
    real(kind=8), intent(in) :: a
    integer, intent(in) :: b
    Return Value real(kind=8)
    real(kind=Float64), intent(in) :: T

    Target temperature [keV]

    real(kind=Float64), intent(in) :: eb

    Beam energy [keV]

    real(kind=Float64), intent(in) :: am

    Target atomic mass [amu]

    real(kind=Float64), intent(in) :: ab

    Beam atomic mass [amu]

    integer, intent(in) :: n

    Initial atomic energy level/state

    real(kind=Float64), intent(out) :: rate

    Reaction Rate []

  • public subroutine bt_maxwellian_n_m(fnm, T, eb, am, ab, n, m, rate, deexcit)

    Calculates Maxwellian reaction rate for a n(\rightarrow)m transition due to a beam with atomic mass ab and energy eb firing into a target with atomic mass am and temperature T which has a cross section given by the function fnm

    Arguments

    Type IntentOptional AttributesName
    public function fnm(a, b, c)

    Cross section function

    Arguments
    Type IntentOptional AttributesName
    real(kind=8), intent(in) :: a
    integer, intent(in) :: b
    integer, intent(in) :: c
    Return Value real(kind=8)
    real(kind=Float64), intent(in) :: T

    Target temperature [keV]

    real(kind=Float64), intent(in) :: eb

    Beam energy [keV]

    real(kind=Float64), intent(in) :: am

    Target atomic mass [amu]

    real(kind=Float64), intent(in) :: ab

    Beam atomic mass [amu]

    integer, intent(in) :: n

    Initial atomic energy level/state

    integer, intent(in) :: m

    Final atomic energy level/state

    real(kind=Float64), intent(out) :: rate

    Reaction Rate []

    logical, intent(in), optional :: deexcit

    Calculate de-excitation reaction rate

  • public subroutine bt_maxwellian_q_n(fqn, q, T, eb, am, ab, n, rate)

    Calculates Maxwellian reaction rate for a beam with atomic mass ab, energy eb, and energy level n firing into a target with atomic mass am, temperature T, and charge q which has a cross section given by the function fqn

    Arguments

    Type IntentOptional AttributesName
    public function fqn(a, b, c)

    Cross section function

    Arguments
    Type IntentOptional AttributesName
    real(kind=8), intent(in) :: a
    integer, intent(in) :: b
    integer, intent(in) :: c
    Return Value real(kind=8)
    integer, intent(in) :: q

    Target charge

    real(kind=Float64), intent(in) :: T

    Target temperature [keV]

    real(kind=Float64), intent(in) :: eb

    Beam energy [keV]

    real(kind=Float64), intent(in) :: am

    Target atomic mass [amu]

    real(kind=Float64), intent(in) :: ab

    Beam atomic mass [amu]

    integer, intent(in) :: n

    Initial atomic energy level/state

    real(kind=Float64), intent(out) :: rate

    Reaction Rate []

  • public subroutine bt_maxwellian_q_n_m(fqnm, q, T, eb, am, ab, n, m, rate, deexcit)

    Calculates Maxwellian reaction rate for a n(\rightarrow)m transition due to a beam with atomic mass ab and energy eb firing into a target with atomic mass am, temperature T, and charge q which has a cross section given by the function fqnm

    Arguments

    Type IntentOptional AttributesName
    public function fqnm(a, b, c, d)

    Cross section function

    Arguments
    Type IntentOptional AttributesName
    real(kind=8), intent(in) :: a
    integer, intent(in) :: b
    integer, intent(in) :: c
    integer, intent(in) :: d
    Return Value real(kind=8)
    integer, intent(in) :: q

    Target charge

    real(kind=Float64), intent(in) :: T

    Target temperature [keV]

    real(kind=Float64), intent(in) :: eb

    Beam energy [keV]

    real(kind=Float64), intent(in) :: am

    Target atomic mass [amu]

    real(kind=Float64), intent(in) :: ab

    Beam atomic mass [amu]

    integer, intent(in) :: n

    Initial atomic energy level/state

    integer, intent(in) :: m

    Final atomic energy level/state

    real(kind=Float64), intent(out) :: rate

    Reaction Rate []

    logical, intent(in), optional :: deexcit

    Calculate de-excitation reaction rate


Functions

public function p_cx_1_janev(Erel) result(sigma)

Calculates total cross section for proton-Hydrogen charge exchange interactions from the state at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_cx_2_janev(Erel) result(sigma)

Calculates total cross section for proton-Hydrogen charge exchange interactions from the state at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_cx_3_janev(Erel) result(sigma)

Calculates total cross section for proton-Hydrogen charge exchange interactions from the state at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_cx_n_janev(Erel, n) result(sigma)

Calculates cross section for proton-Hydrogen charge exchange interactions from the state at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

integer, intent(in) :: n

Initial atomic energy level/state

Return Value real(kind=Float64)

Cross Section []

public function p_cx_janev(Erel, n) result(sigma)

Calculates total cross section for proton-Hydrogen charge exchange interactions from the n state at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

integer, intent(in) :: n

Initial atomic energy level/state

Return Value real(kind=Float64)

Cross Section []

public function aljan1(energy, pcf) result(sigma)

Fit function for p_cx_1_2_janev

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: energy

Relative collision energy [eV]

real(kind=Float64), intent(in), dimension(:):: pcf

Fit Coefficients

Return Value real(kind=Float64)

Cross Section []

public function p_cx_1_2_janev(Erel) result(sigma)

Calculates cross section for a proton-Hydrogen charge exchange interaction from the state to the state at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_cx_1_1_adas(Erel) result(sigma)

Calculates cross section for a proton-Hydrogen charge exchange interaction from the state to the state at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_cx_1_2_adas(Erel) result(sigma)

Calculates cross section for a proton-Hydrogen charge exchange interaction from the state to the state at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_cx_1_3_adas(Erel) result(sigma)

Calculates cross section for a proton-Hydrogen charge exchange interaction from the state to the state at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_cx_1_4_adas(Erel) result(sigma)

Calculates cross section for a proton-Hydrogen charge exchange interaction from the state to the state at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_cx_1(Erel, m_max) result(sigma)

Calculates an array of cross section for proton-Hydrogen charge exchange interactions from the state to m = 1..m_max states at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

integer, intent(in) :: m_max

Number of m states to calculate

Return Value real(kind=Float64), dimension(m_max)

Array of cross sections where the index refers to the m'th state []

public function p_cx_2_2_adas(Erel) result(sigma)

Calculates cross section for a proton-Hydrogen charge exchange interaction from the state to the state at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_cx_2_3_adas(Erel) result(sigma)

Calculates cross section for a proton-Hydrogen charge exchange interaction from the state to the state at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_cx_2(Erel, m_max) result(sigma)

Calculates an array of cross sections for proton-Hydrogen charge exchange interactions from the state to m = 1..m_max states at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

integer, intent(in) :: m_max

Number of m states to calculate

Return Value real(kind=Float64), dimension(m_max)

Array of cross sections where the index refers to the m'th state []

public function p_cx_3_2_adas(Erel) result(sigma)

Calculates cross section for a proton-Hydrogen charge exchange interaction from the state to the state at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_cx_3_3_adas(Erel) result(sigma)

Calculates cross section for a proton-Hydrogen charge exchange interaction from the state to the state at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_cx_3_4_adas(Erel) result(sigma)

Calculates cross section for a proton-Hydrogen charge exchange interaction from the state to the state at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_cx_3_5_adas(Erel) result(sigma)

Calculates cross section for a proton-Hydrogen charge exchange interaction from the state to the state at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_cx_3_6inf_adas(Erel) result(sigma)

Calculates total cross section for a proton-Hydrogen charge exchange interaction from the state to states at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_cx_3(Erel, m_max) result(sigma)

Calculates an array of cross sections for proton-Hydrogen charge exchange interactions from the state to m = 1..m_max states at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

integer, intent(in) :: m_max

Number of m states to calculate

Return Value real(kind=Float64), dimension(m_max)

Array of cross sections where the index refers to the m'th state []

public function p_cx_n(Erel, n, m_max) result(sigma)

Calculates an array of cross sections for proton-Hydrogen charge exchange interactions from the n state to m = 1..m_max states at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

integer, intent(in) :: n

Initial atomic energy level/state

integer, intent(in) :: m_max

Number of m states to calculate

Return Value real(kind=Float64), dimension(m_max)

Array of cross sections where the index refers to the m'th state []

public function p_cx_n_m(Erel, n, m) result(sigma)

Calculates cross section for a proton-Hydrogen charge exchange interaction from the n state to the m state at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

integer, intent(in) :: n

Initial atomic energy level/state

integer, intent(in) :: m

Final atomic energy level/state

Return Value real(kind=Float64)

Cross Section []

public function p_cx(Erel, n_max, m_max) result(sigma)

Calculates a matrix of cross sections for proton-Hydrogen charge exchange interactions from the states at energy Erel

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: Erel

Relative collision energy [keV/amu]

integer, intent(in) :: n_max

Number of initial atomic energy levels/states

integer, intent(in) :: m_max

Number of final atomic energy levels/states

Return Value real(kind=Float64), dimension(n_max,m_max)

Matrix of cross sections where the subscripts correspond to the transitions: p_cx[n,m] []

public function p_ioniz_1_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact ionization interaction from the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_ioniz_2_omullane(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact ionization interaction from the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_ioniz_3_omullane(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact ionization interaction from the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_ioniz_4_omullane(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact ionization interaction from the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_ioniz_5_omullane(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact ionization interaction from the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_ioniz_n(eb, n) result(sigma)

Calculates cross section for a proton-Hydrogen impact ionization interaction from the nth state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

integer, intent(in) :: n

Initial atomic energy level/state

Return Value real(kind=Float64)

Cross Section []

public function p_ioniz(eb, n_max) result(sigma)

Calculates an array of cross sections for proton-Hydrogen impact ionization interactions from the n = 1..n_max state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

integer, intent(in) :: n_max

Number of initial atomic energy level/state

Return Value real(kind=Float64), dimension(n_max)

Array of cross sections where the index refers to the n'th state []

public function p_excit_1_2_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_1_3_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_1_4_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_1_5_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_1_6_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_1_janev(eb, m_max) result(sigma)

Calculates an array of cross sections for a proton-Hydrogen impact excitation transitions from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

integer, intent(in) :: m_max

Number of m states to calculate

Return Value real(kind=Float64), dimension(m_max)

Array of cross sections where the m'th index refer to the transition from to m []

public function p_excit_2_3_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_2_4_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_2_5_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_2_6_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_2_7_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_2_8_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_2_9_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_2_10_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_2_janev(eb, m_max) result(sigma)

Calculates an array of cross sections for a proton-Hydrogen impact excitation transitions from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

integer, intent(in) :: m_max

Number of m states to calculate

Return Value real(kind=Float64), dimension(m_max)

Array of cross sections where the m'th index refer to the transition from to m []

public function p_excit_3_4_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_3_5_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_3_6_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_3_7_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_3_8_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_3_9_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_3_10_janev(eb) result(sigma)

Calculates cross section for a proton-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function p_excit_3_janev(eb, m_max) result(sigma)

Calculates an array of cross sections for proton-Hydrogen impact excitation transitions from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

integer, intent(in) :: m_max

Number of m states to calculate

Return Value real(kind=Float64), dimension(m_max)

Array of cross sections where the m'th index refer to the transition from to m []

public function p_excit_n(eb, n, m_max) result(sigma)

Calculates an array of cross sections for a proton-Hydrogen impact excitation transitions from the n state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

integer, intent(in) :: n

Initial atomic energy level/state

integer, intent(in) :: m_max

Number of m states to calculate

Return Value real(kind=Float64), dimension(m_max)

Array of cross sections where the m'th index refer to the transition from n to m []

public function p_excit_n_m(eb, n, m) result(sigma)

Calculates the cross section for a proton-Hydrogen impact excitation transition from the n state to the m state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

integer, intent(in) :: n

Initial atomic energy level/state

integer, intent(in) :: m

Final atomic energy level/state

Return Value real(kind=Float64)

Cross Section []

public function p_excit(eb, n_max, m_max) result(sigma)

Calculates a matrix of cross sections for a proton-Hydrogen impact excitation transitions from the states at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

integer, intent(in) :: n_max

Number of final atomic energy levels/states

integer, intent(in) :: m_max

Number of initial atomic energy levels/states

Return Value real(kind=Float64), dimension(n_max,m_max)

Matrix of cross sections where the subscripts correspond to the transitions: p_excit[n,m] []

public function e_ioniz_1_janev(eb) result(sigma)

Calculates cross section for a electron-Hydrogen impact ionization from the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

Return Value real(kind=Float64)

Cross Section []

public function e_ioniz_2_janev(eb) result(sigma)

Calculates cross section for a electron-Hydrogen impact ionization from the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

Return Value real(kind=Float64)

Cross Section []

public function e_ioniz_3_janev(eb) result(sigma)

Calculates cross section for a electron-Hydrogen impact ionization from the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

Return Value real(kind=Float64)

Cross Section []

public function e_ioniz_n(eb, n) result(sigma)

Calculates cross section for a electron-Hydrogen impact ionization from the n state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: n

Initial atomic energy level/state

Return Value real(kind=Float64)

Cross Section []

public function e_ioniz(eb, n_max) result(sigma)

Calculates an array of cross sections for a electron-Hydrogen impact ionization from the states at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: n_max

Number of initial atomic energy levels/states to calculate

Return Value real(kind=Float64), dimension(n_max)

Array of cross sections where the n'th index refers to a ionization from the n'th state []

public function e_excit_1_2_janev(eb) result(sigma)

Calculates cross section for a electron-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

Return Value real(kind=Float64)

Cross Section []

public function e_excit_1_3_janev(eb) result(sigma)

Calculates cross section for a electron-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

Return Value real(kind=Float64)

Cross Section []

public function e_excit_1_4_janev(eb) result(sigma)

Calculates cross section for a electron-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

Return Value real(kind=Float64)

Cross Section []

public function e_excit_1_5_janev(eb) result(sigma)

Calculates cross section for a electron-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

Return Value real(kind=Float64)

Cross Section []

public function e_excit_f(n, m) result(fnm)

Oscillator strength for a n m transition due to electron-Hydrogen impact excitation

Read more…

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: n

Initial atomic energy level/state

integer, intent(in) :: m

Final atomic energy level/state

Return Value real(kind=Float64)

Oscillator strength

public function e_excit_1_janev(eb, m_max) result(sigma)

Calculates an array of cross sections for a electron-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: m_max

Number of m states to calculate

Return Value real(kind=Float64), dimension(m_max)

Array of cross sections where the m'th index refers to an excitation from the state to the m'th state []

public function e_excit_2_3_janev(eb) result(sigma)

Calculates cross section for a electron-Hydrogen impact excitation transition from the state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

Return Value real(kind=Float64)

Cross Section []

public function e_excit_n(eb, n, m_max) result(sigma)

Calculates an array of cross sections for a electron-Hydrogen impact excitation transition from the n state to the state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: n

Initial atomic energy level/state

integer, intent(in) :: m_max

Number of m states to calculate

Return Value real(kind=Float64), dimension(m_max)

Array of cross sections where the m'th index refers to an excitation from the n m state []

public function e_excit_n_m(eb, n, m) result(sigma)

Calculates an array of cross sections for a electron-Hydrogen impact excitation transition from the n m state at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: n

Initial atomic energy level/state

integer, intent(in) :: m

Final atomic energy level/state

Return Value real(kind=Float64)

Cross Section []

public function e_excit(eb, n_max, m_max) result(sigma)

Calculates a matrix of cross section for a proton-Hydrogen impact excitation transition from the states at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

integer, intent(in) :: n_max

Number of final atomic energy levels/states

integer, intent(in) :: m_max

Number of initial atomic energy levels/states

Return Value real(kind=Float64), dimension(n_max,m_max)

Matrix of cross sections where the subscripts correspond to the transitions: e_excit[n,m] []

public function B5_cx_1_adas(eb) result(sigma)

Calculates the total charge exchange cross section for a Neutral Hydrogen atom in the state colliding with a fully stripped Boron ion at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function B5_cx_2_adas(eb) result(sigma)

Calculates the total charge exchange cross section for a Neutral Hydrogen atom in the state colliding with a fully stripped Boron ion at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function C6_cx_1_adas(eb) result(sigma)

Calculates the total charge exchange cross section for a Neutral Hydrogen atom in the state colliding with a fully stripped Carbon ion at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function C6_cx_2_adas(eb) result(sigma)

Calculates the total charge exchange cross section for a Neutral Hydrogen atom in the state colliding with a fully stripped Carbon ion at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function C6_cx_3_adas(eb) result(sigma)

Calculates the total charge exchange cross section for a Neutral Hydrogen atom in the state colliding with a fully stripped Carbon ion at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function Aq_cx_n_adas(eb, q, n) result(sigma)

Calculates the total charge exchange cross section for a Neutral Hydrogen atom in the n state colliding with a ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

integer, intent(in) :: q

Ion charge

integer, intent(in) :: n

Initial atomic energy level/state

Return Value real(kind=Float64)

Cross Section []

public function B5_cx_1_janev(eb) result(sigma)

Calculates the total charge exchange cross section for a Neutral Hydrogen atom in the state colliding with a fully stripped Boron ion at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function C6_cx_1_janev(eb) result(sigma)

Calculates the total charge exchange cross section for a Neutral Hydrogen atom in the state colliding with a fully stripped Carbon ion at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function Aq_cx_n_janev(eb, q, n) result(sigma)

Calculates the total charge exchange cross section for a Neutral Hydrogen atom in the n state colliding with a ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

integer, intent(in) :: q

Ion charge

integer, intent(in) :: n

Initial atomic energy level/state

Return Value real(kind=Float64)

Cross Section []

public function Aq_cx_n(eb, q, n) result(sigma)

Calculates the total charge exchange cross section for a Neutral Hydrogen atom in the n state colliding with a ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

integer, intent(in) :: q

Ion charge

integer, intent(in) :: n

Initial atomic energy level/state

Return Value real(kind=Float64)

Cross Section []

public function Aq_cx(eb, q, n_max) result(sigma)

Calculates an array of total charge exchange cross sections for a Neutral Hydrogen atom in the n=1...n_max states colliding with a ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

integer, intent(in) :: q

Ion charge

integer, intent(in) :: n_max

Number of initial atomic energy levels/states

Return Value real(kind=Float64), dimension(n_max)

Array of cross sections where the n'th index refers to a charge exchange from the n'th state []

public function B5_ioniz_1_janev(eb) result(sigma)

Calculates the total ionization cross section for a Neutral Hydrogen atom in the state colliding with a fully stripped Boron ion at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

Return Value real(kind=Float64)

Cross Section []

public function C6_ioniz_1_janev(eb) result(sigma)

Calculates the total ionization cross section for a Neutral Hydrogen atom in the state colliding with a fully stripped Carbon ion at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Return Value real(kind=Float64)

public function Aq_ioniz_n_janev(eb, q, n) result(sigma)

Calculates the generic total ionization cross section for a Neutral Hydrogen atom in the n state colliding with a ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

integer, intent(in) :: q

Ion charge

integer, intent(in) :: n

Initial atomic energy level/state

Return Value real(kind=Float64)

Cross Section []

public function Aq_ioniz_n(eb, q, n) result(sigma)

Calculates the total ionization cross section for a Neutral Hydrogen atom in the n state colliding with a ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

integer, intent(in) :: q

Ion charge

integer, intent(in) :: n

Initial atomic energy level/state

Return Value real(kind=Float64)

Cross Section []

public function Aq_ioniz(eb, q, n_max) result(sigma)

Calculates an array of total ionization cross sections for a Neutral Hydrogen atom in the n=1...n_max states colliding with a ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Relative collision energy [keV/amu]

integer, intent(in) :: q

Ion charge

integer, intent(in) :: n_max

Number of initial states n to calculate

Return Value real(kind=Float64), dimension(n_max)

Array of cross sections where the n'th index refers to a ionization from the n'th state []

public function Aq_excit_1_2_janev(eb, q) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the state to the state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit_1_3_janev(eb, q) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the state to the state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit_1_4_janev(eb, q) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the state to the state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit_1_5_janev(eb, q) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the state to the state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit_1_janev(eb, q, m_max) result(sigma)

Calculates an array of the excitation cross sections for a neutral Hydrogen atom transitioning from the state to the m=1..m_max states due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

integer, intent(in) :: m_max

Number of m states to calculate

Return Value real(kind=Float64), dimension(m_max)

Array of cross sections where the m'th index refers to an excitation from the state to the m'th state []

public function Aq_excit_2_3_janev(eb, q) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the state to the state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit_2_4_janev(eb, q) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the state to the state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit_2_5_janev(eb, q) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the state to the state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit_2_6_janev(eb, q) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the state to the state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit_2_7_janev(eb, q) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the state to the state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit_2_8_janev(eb, q) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the state to the state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit_2_9_janev(eb, q) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the state to the state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit_2_10_janev(eb, q) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the state to the state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit_2_janev(eb, q, m_max) result(sigma)

Calculates an array of the excitation cross sections for a neutral Hydrogen atom transitioning from the state to the m=1..m_max states due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

integer, intent(in) :: m_max

Number of m states to calculate

Return Value real(kind=Float64), dimension(m_max)

Array of cross sections where the m'th index refers to an excitation from the state to the m'th state []

public function Aq_excit_3_4_janev(eb, q) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the state to the state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit_3_5_janev(eb, q) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the state to the state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit_3_6_janev(eb, q) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the state to the state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit_3_7_janev(eb, q) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the state to the state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit_3_8_janev(eb, q) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the state to the state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit_3_9_janev(eb, q) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the state to the state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit_3_10_janev(eb, q) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the state to the state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit_3_janev(eb, q, m_max) result(sigma)

Calculates an array of the excitation cross sections for a neutral Hydrogen atom transitioning from the state to the m=1..m_max states due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

integer, intent(in) :: m_max

Number of m states to calculate

Return Value real(kind=Float64), dimension(m_max)

Array of cross sections where the m'th index refers to an excitation from the state to the m'th state []

public function Aq_excit_n_janev(eb, q, n, m_max) result(sigma)

Calculates an array of the generic excitation cross sections for a neutral Hydrogen atom transitioning from the n state to the m=1..m_max states due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

integer, intent(in) :: n

Initial atomic energy level/state

integer, intent(in) :: m_max

Number of m states to calculate

Return Value real(kind=Float64), dimension(m_max)

Array of cross sections where the m'th index refers to an excitation from the n state to the m'th state []

public function Aq_excit_n(eb, q, n, m_max) result(sigma)

Calculates an array of the excitation cross sections for a neutral Hydrogen atom transitioning from the n state to the m=1..m_max states due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

integer, intent(in) :: n

Initial atomic energy level/state

integer, intent(in) :: m_max

Number of m states to calculate

Return Value real(kind=Float64), dimension(m_max)

Array of cross sections where the m'th index refers to an excitation from the n state to the m'th state []

public function Aq_excit_n_m(eb, q, n, m) result(sigma)

Calculates the excitation cross section for a neutral Hydrogen atom transitioning from the n m state due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

integer, intent(in) :: n

Initial atomic energy level/state

integer, intent(in) :: m

Final atomic energy level/state

Return Value real(kind=Float64)

Cross Section []

public function Aq_excit(eb, q, n_max, m_max) result(sigma)

Calculates an matrix of the excitation cross sections for a neutral Hydrogen atom transitioning from the n=1..n_max state to the m=1..m_max states due to a collision an ion with charge q at energy eb

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Collision energy [keV]

integer, intent(in) :: q

Ion charge

integer, intent(in) :: n_max

Number of n states to calculate

integer, intent(in) :: m_max

Number of m states to calculate

Return Value real(kind=Float64), dimension(n_max, m_max)

Matrix of cross sections where the subscripts refers to an excitation from the n state to the m'th state: Aq_excit[n,m] []

public function d_d_fusion_t(eb) result(sigma)

Calculates total cross section at a given Deuterium energy, eb, for the Tritium branch of Deuterium-Deutrium nuclear reactions

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Deuterium energy [keV]

Return Value real(kind=Float64)

Cross Section []

public function d_d_fusion_he(eb) result(sigma)

Calculates total cross section at a given deuterium energy, eb, for the Helium-3 branch of Deuterium-Deutrium nuclear reactions

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Deuterium energy [keV]

Return Value real(kind=Float64)

Cross Section []

public function d_t_fusion(eb) result(sigma)

Calculates total cross section at a given deuterium energy, eb, for Deuterium-Tritium nuclear reactions in the range [0.5-550 keV]

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: eb

Deuterium energy [keV]

Return Value real(kind=Float64)

Cross Section []

public function simpsons_rule(f, dx) result(I)

Performs 1D integration using Simpsons rule

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in), dimension(:):: f

Array of equally spaced values

real(kind=Float64), intent(in) :: dx

Spacing between x values

Return Value real(kind=Float64)


Subroutines

public subroutine m_spread(n, m_max, sigma_tot, sigma)

Spreads the total charge exchange cross section, sigma_tot, among the non-filled m states of sigma according to an exponential

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: n

Initial atomic energy level/state

integer, intent(in) :: m_max

Number of m states in sigma

real(kind=Float64), intent(in) :: sigma_tot

Amount of "cross section" to spread about the non-filled m state of sigma

real(kind=Float64), intent(inout), dimension(m_max):: sigma

Array of cross sections from the n state to m=1..m_max []

public subroutine bt_maxwellian_eb(fn, T, eb, am, ab, rate)

Calculates Maxwellian reaction rate for a beam with atomic mass ab and energy eb firing into a target with atomic mass am and temperature T which has a cross section given by the function fn

Arguments

Type IntentOptional AttributesName
public function fn(a)

Cross section function

Arguments
Type IntentOptional AttributesName
real(kind=8), intent(in) :: a
Return Value real(kind=8)
real(kind=Float64), intent(in) :: T

Target temperature [keV]

real(kind=Float64), intent(in) :: eb

Beam energy [keV]

real(kind=Float64), intent(in) :: am

Target atomic mass [amu]

real(kind=Float64), intent(in) :: ab

Beam atomic mass [amu]

real(kind=Float64), intent(out) :: rate

Reaction Rate []

public subroutine bt_maxwellian_n(fn, T, eb, am, ab, n, rate)

Calculates Maxwellian reaction rate for a beam with atomic mass ab, energy eb, and energy level n firing into a target with atomic mass am and temperature T which has a cross section given by the function fn

Arguments

Type IntentOptional AttributesName
public function fn(a, b)

Cross section function

Arguments
Type IntentOptional AttributesName
real(kind=8), intent(in) :: a
integer, intent(in) :: b
Return Value real(kind=8)
real(kind=Float64), intent(in) :: T

Target temperature [keV]

real(kind=Float64), intent(in) :: eb

Beam energy [keV]

real(kind=Float64), intent(in) :: am

Target atomic mass [amu]

real(kind=Float64), intent(in) :: ab

Beam atomic mass [amu]

integer, intent(in) :: n

Initial atomic energy level/state

real(kind=Float64), intent(out) :: rate

Reaction Rate []

public subroutine bt_maxwellian_q_n(fqn, q, T, eb, am, ab, n, rate)

Calculates Maxwellian reaction rate for a beam with atomic mass ab, energy eb, and energy level n firing into a target with atomic mass am, temperature T, and charge q which has a cross section given by the function fqn

Arguments

Type IntentOptional AttributesName
public function fqn(a, b, c)

Cross section function

Arguments
Type IntentOptional AttributesName
real(kind=8), intent(in) :: a
integer, intent(in) :: b
integer, intent(in) :: c
Return Value real(kind=8)
integer, intent(in) :: q

Target charge

real(kind=Float64), intent(in) :: T

Target temperature [keV]

real(kind=Float64), intent(in) :: eb

Beam energy [keV]

real(kind=Float64), intent(in) :: am

Target atomic mass [amu]

real(kind=Float64), intent(in) :: ab

Beam atomic mass [amu]

integer, intent(in) :: n

Initial atomic energy level/state

real(kind=Float64), intent(out) :: rate

Reaction Rate []

public subroutine bt_maxwellian_n_m(fnm, T, eb, am, ab, n, m, rate, deexcit)

Calculates Maxwellian reaction rate for a n(\rightarrow)m transition due to a beam with atomic mass ab and energy eb firing into a target with atomic mass am and temperature T which has a cross section given by the function fnm

Arguments

Type IntentOptional AttributesName
public function fnm(a, b, c)

Cross section function

Arguments
Type IntentOptional AttributesName
real(kind=8), intent(in) :: a
integer, intent(in) :: b
integer, intent(in) :: c
Return Value real(kind=8)
real(kind=Float64), intent(in) :: T

Target temperature [keV]

real(kind=Float64), intent(in) :: eb

Beam energy [keV]

real(kind=Float64), intent(in) :: am

Target atomic mass [amu]

real(kind=Float64), intent(in) :: ab

Beam atomic mass [amu]

integer, intent(in) :: n

Initial atomic energy level/state

integer, intent(in) :: m

Final atomic energy level/state

real(kind=Float64), intent(out) :: rate

Reaction Rate []

logical, intent(in), optional :: deexcit

Calculate de-excitation reaction rate

public subroutine bt_maxwellian_q_n_m(fqnm, q, T, eb, am, ab, n, m, rate, deexcit)

Calculates Maxwellian reaction rate for a n(\rightarrow)m transition due to a beam with atomic mass ab and energy eb firing into a target with atomic mass am, temperature T, and charge q which has a cross section given by the function fqnm

Arguments

Type IntentOptional AttributesName
public function fqnm(a, b, c, d)

Cross section function

Arguments
Type IntentOptional AttributesName
real(kind=8), intent(in) :: a
integer, intent(in) :: b
integer, intent(in) :: c
integer, intent(in) :: d
Return Value real(kind=8)
integer, intent(in) :: q

Target charge

real(kind=Float64), intent(in) :: T

Target temperature [keV]

real(kind=Float64), intent(in) :: eb

Beam energy [keV]

real(kind=Float64), intent(in) :: am

Target atomic mass [amu]

real(kind=Float64), intent(in) :: ab

Beam atomic mass [amu]

integer, intent(in) :: n

Initial atomic energy level/state

integer, intent(in) :: m

Final atomic energy level/state

real(kind=Float64), intent(out) :: rate

Reaction Rate []

logical, intent(in), optional :: deexcit

Calculate de-excitation reaction rate

public subroutine write_einstein(id, n_max, m_max)

Write Einstein coefficients to HDF5 file

Arguments

Type IntentOptional AttributesName
integer(kind=HID_T), intent(inout) :: id

HDF5 file or group object id

integer, intent(in) :: n_max

Number of initial atomic energy states to calculate

integer, intent(in) :: m_max

Number of final atomic energy states to calculate

public subroutine write_bb_H_H(id, namelist_file, n_max, m_max)

Write Hydrogen-Hydrogen interaction cross sections to a HDF5 file

Arguments

Type IntentOptional AttributesName
integer(kind=HID_T), intent(inout) :: id

HDF5 file or group object id

character(len=*), intent(in) :: namelist_file

Namelist file that contains settings

integer, intent(in) :: n_max

Number of initial atomic energy states to calculate

integer, intent(in) :: m_max

Number of final atomic energy states to calculate

public subroutine write_bb_H_e(id, namelist_file, n_max, m_max)

Write Hydrogen-Electron interaction cross sections to a HDF5 file

Arguments

Type IntentOptional AttributesName
integer(kind=HID_T), intent(inout) :: id

HDF5 file or group object id

character(len=*), intent(in) :: namelist_file

Namelist file that contains settings

integer, intent(in) :: n_max

Number of initial atomic energy states to calculate

integer, intent(in) :: m_max

Number of final atomic energy states to calculate

public subroutine write_bb_H_Aq(id, namelist_file, n_max, m_max)

Write Hydrogen-Impurity interaction cross sections to a HDF5 file

Arguments

Type IntentOptional AttributesName
integer(kind=HID_T), intent(inout) :: id

HDF5 file or group object id

character(len=*), intent(in) :: namelist_file

Namelist file that contains settings

integer, intent(in) :: n_max

Number of initial atomic energy states to calculate

integer, intent(in) :: m_max

Number of final atomic energy states to calculate

public subroutine write_bb_D_D(id, namelist_file)

Write Deuterium-Deuterium interaction cross sections to a HDF5 file

Arguments

Type IntentOptional AttributesName
integer(kind=HID_T), intent(inout) :: id

HDF5 file or group object id

character(len=*), intent(in) :: namelist_file

Namelist file that contains settings

public subroutine write_bb_D_T(id, namelist_file)

Write Deuterium-Tritium interaction cross sections to a HDF5 file

Arguments

Type IntentOptional AttributesName
integer(kind=HID_T), intent(inout) :: id

HDF5 file or group object id

character(len=*), intent(in) :: namelist_file

Namelist file that contains settings

public subroutine write_bt_H_H(id, namelist_file, n_max, m_max)

Write Hydrogen-Hydrogen reaction rates to a HDF5 file

Arguments

Type IntentOptional AttributesName
integer(kind=HID_T), intent(inout) :: id

HDF5 file or group object id

character(len=*), intent(in) :: namelist_file

Namelist file that contains settings

integer, intent(in) :: n_max

Number of initial atomic energy states to calculate

integer, intent(in) :: m_max

Number of final atomic energy states to calculate

public subroutine write_bt_H_e(id, namelist_file, n_max, m_max)

Write Hydrogen-Electron reaction rates to a HDF5 file

Arguments

Type IntentOptional AttributesName
integer(kind=HID_T), intent(inout) :: id

HDF5 file or group object id

character(len=*), intent(in) :: namelist_file

Namelist file that contains settings

integer, intent(in) :: n_max

Number of initial atomic energy states to calculate

integer, intent(in) :: m_max

Number of final atomic energy states to calculate

public subroutine write_bt_H_Aq(id, namelist_file, n_max, m_max)

Write Hydrogen-Impurity reaction rates to a HDF5 file

Arguments

Type IntentOptional AttributesName
integer(kind=HID_T), intent(inout) :: id

HDF5 file or group object id

character(len=*), intent(in) :: namelist_file

Namelist file that contains settings

integer, intent(in) :: n_max

Number of initial atomic energy states to calculate

integer, intent(in) :: m_max

Number of final atomic energy states to calculate

public subroutine write_bt_D_D(id, namelist_file)

Write Deuterium-Deuterium reaction rates to a HDF5 file

Arguments

Type IntentOptional AttributesName
integer(kind=HID_T), intent(inout) :: id

HDF5 file or group object id

character(len=*), intent(in) :: namelist_file

Namelist file that contains settings

public subroutine write_bt_D_T(id, namelist_file)

Write Deuterium-Tritium reaction rates to a HDF5 file

Arguments

Type IntentOptional AttributesName
integer(kind=HID_T), intent(inout) :: id

HDF5 file or group object id

character(len=*), intent(in) :: namelist_file

Namelist file that contains settings

public subroutine print_default_namelist()

Prints out the default settings as a namelist

Arguments

None