SpectraRust/tlusty/extracted/hction.f
2026-03-19 14:05:33 +08:00

29 lines
828 B
Fortran

function HCTIon(ion,nelem)
c ion is stage of ionization, 1 for atom
c nelem is atomic number of element, 2 up to 30
c Example: O + H+ => O+ + H is HCTIon(1,8)
c integer ion , nelem
INCLUDE 'IMPLIC.FOR'
common/CTRTEMP/ te
common/CTIon/ CTIon(7,4,30)
c
c local variables
c real tused
c integer ipIon
c
ipIon = ion
c
c Make sure te is between temp. boundaries; set constant outside of range
tused = max( te,CTIon(5,ipIon,nelem) )
tused = min( tused , CTIon(6,ipIon,nelem) )
tused = tused * 1e-4
c
c the interpolation equation
HCTIon = CTIon(1,ipIon,nelem)* 1e-9 *
1 (tused**CTIon(2,ipIon,nelem)) *
2 (1. +
3 CTIon(3,ipIon,nelem) * exp(CTIon(4,ipIon,nelem)*tused) ) *
4 exp(-CTIon(7,ipIon,nelem)/tused)
c
end