janev_fits_procedures Submodule

Contains implementation of functions for calculating rates and cross-sections based on the Janev EIRENE report: http://www.eirene.de/report_4105.pdf


Uses


Functions

pure function johnsonY(n, m) result(ynm)

y_nm factor showing up in Johnson's formula for hydrogen excitation from state n to state m

Arguments

Type IntentOptional Attributes Name
integer(kind=ik), intent(in) :: n
integer(kind=ik), intent(in) :: m

Return Value real(kind=rk)

pure function gFactor(n, ynm) result(g)

g factor showing up in oscillator strength in Johnson's formula for excitation

Arguments

Type IntentOptional Attributes Name
integer(kind=ik), intent(in) :: n

Starting state

real(kind=rk), intent(in) :: ynm

Johnson y factor for transition from state n to state m

Return Value real(kind=rk)

pure function fOsc(n, m) result(f)

Oscillator strength for hydrogen transition from state n to state m

Arguments

Type IntentOptional Attributes Name
integer(kind=ik), intent(in) :: n
integer(kind=ik), intent(in) :: m

Return Value real(kind=rk)

pure function csH1To2Ex(eGrid) result(crossSection)

Integral cross section for ground to first excited state excitation of hydrogen - Janev equation (4) in section 2.1.1 NOTE: The returned value is in 10^-16 cm^2!

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(in), dimension(:) :: eGrid

Energy grid on which to calculate the cross section - energy in eV!

Return Value real(kind=rk), allocatable, dimension(:)

pure function csH1To345Ex(eGrid, m) result(crossSection)

Integral cross section for ground to m=3,4,5 excitation of hydrogen - Janev equation (5) in section 2.1.1 NOTE: The returned value is in 10^-16 cm^2!

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(in), dimension(:) :: eGrid

Energy grid on which to calculate the cross section - energy in eV!

integer(kind=ik), intent(in) :: m

Excited state (must be 3,4, or 5)

Return Value real(kind=rk), allocatable, dimension(:)

pure function csH1To6PlusEx(eGrid, m) result(crossSection)

Integral cross section for ground to m>5 excitation of hydrogen - Janev equation (6) in section 2.1.1 NOTE: The returned value is in 10^-16 cm^2!

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(in), dimension(:) :: eGrid

Energy grid on which to calculate the cross section - energy in eV!

integer(kind=ik), intent(in) :: m

Excited state (should be >5)

Return Value real(kind=rk), allocatable, dimension(:)

pure function csH2To3Ex(eGrid) result(crossSection)

Integral cross section for n=2 -> n=3 transition of hydrogen - Janev equation (5) in section 2.1.1 with fitting parameters from page 10 NOTE: The returned value is in 10^-16 cm^2!

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(in), dimension(:) :: eGrid

Energy grid on which to calculate the cross section - energy in eV!

Return Value real(kind=rk), allocatable, dimension(:)

pure function csH2PlusTo4PlusEx(eGrid, n, m) result(crossSection)

Integral cross section for n>1 to m>3 excitation of hydrogen - Janev equation (9) in section 2.1.1 NOTE: The returned value is in 10^-16 cm^2!

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(in), dimension(:) :: eGrid

Energy grid on which to calculate the cross section - energy in eV!

integer(kind=ik), intent(in) :: n

Initial state (should be >1)

integer(kind=ik), intent(in) :: m

Final state (should be >3)

Return Value real(kind=rk), allocatable, dimension(:)

pure function csH123Ion(eGrid, n) result(crossSection)

Integral cross section for ionization of hydrogen states n=1,2,3 - Janev equation (14) in section 2.1.2 NOTE: The returned value is in 10^-16 cm^2!

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(in), dimension(:) :: eGrid

Energy grid on which to calculate the cross section - energy in eV!

integer(kind=ik), intent(in) :: n

Initial state (must be 1,2,or 3)

Return Value real(kind=rk), allocatable, dimension(:)

pure function csH4PlusIon(eGrid, n) result(crossSection)

Integral cross section for ionization of hydrogen states n>3 - Janev equation (15) in section 2.1.2 NOTE: The returned value is in 10^-16 cm^2!

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(in), dimension(:) :: eGrid

Energy grid on which to calculate the cross section - energy in eV!

integer(kind=ik), intent(in) :: n

Initial state (should be n>3)

Return Value real(kind=rk), allocatable, dimension(:)


Module Functions

pure module function radRecombRateHydrogen(temp, n) result(rate)

Radiative recombination rate given by formulas (21) and (22) from Janev Section 2.1.4. The recombination for n=2 is obtained by a simple sum over the two l states. Result in 10^-14 cm^3/s

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(in), dimension(:) :: temp

Temperature array in eV

integer(kind=ik), intent(in) :: n

Final atomic state after recombination

Return Value real(kind=rk), allocatable, dimension(:)

pure module function excitationCrossSectionHydrogen(eGrid, n, m) result(cs)

Calculates hydrogen electron impact excitation cross-section from state n to state m on given energy grid.

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(in), dimension(:) :: eGrid

Electron energy grid in eV

integer(kind=ik), intent(in) :: n

Initial atomic state

integer(kind=ik), intent(in) :: m

Final atomic state

Return Value real(kind=rk), allocatable, dimension(:)

pure module function ionizationCrossSectionHydrogen(eGrid, n) result(cs)

Calculates hydrogen electron impact ionization cross-section from state n on given energy grid.

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(in), dimension(:) :: eGrid

Electron energy grid in eV

integer(kind=ik), intent(in) :: n

Initial atomic state

Return Value real(kind=rk), allocatable, dimension(:)