37 lines
1.1 KiB
Fortran
37 lines
1.1 KiB
Fortran
function HCTRecom(ion,nelem)
|
|
c ============================
|
|
c
|
|
c Code by Jim Kingdon, in collaboration with G.J. Ferland
|
|
c ion is stage of ionization, 2 for the ion going to the atom
|
|
c nelem is atomic number of element, 2 up to 30
|
|
c Example: O+ + H => O + H+ is HCTRecom(2,8)
|
|
c integer ion , nelem
|
|
INCLUDE 'IMPLIC.FOR'
|
|
common/CTRTEMP/ te
|
|
common/CTRecomb/ CTRecomb(6,4,30)
|
|
c
|
|
c local variables
|
|
* real tused
|
|
c integer ipIon
|
|
c
|
|
ipIon = ion - 1
|
|
c
|
|
if( ipIon.gt.4 ) then
|
|
c use statistical charge transfer for ion > 4
|
|
HCTRecom = 1.92e-9 * ipIon
|
|
return
|
|
endif
|
|
c
|
|
c Make sure te is between temp. boundaries; set constant outside of range
|
|
tused = max( te,CTRecomb(5,ipIon,nelem) )
|
|
tused = min( tused , CTRecomb(6,ipIon,nelem) )
|
|
tused = tused * 1e-4
|
|
c
|
|
c the interpolation equation
|
|
HCTRecom = CTRecomb(1,ipIon,nelem)* 1e-9 *
|
|
1 (tused**CTRecomb(2,ipIon,nelem)) *
|
|
2 (1. +
|
|
3 CTRecomb(3,ipIon,nelem) * exp(CTRecomb(4,ipIon,nelem)*tused) )
|
|
c
|
|
end
|