Code |
c
c###################################################################
c
subroutine jeexc2(pe, pcf, kncf, pxs, kermsg)
c
c this is a subroutine to calculate a cross section
c in cm[2] as function of electron energy in ev for dipole
c forbidden transitions without a spin change.
c for details see doc=h-he-plasma , used for reactions 2.3.2
c dipole-forbidden transitions only
c
c pcf is the coefficient data array, where
c
c pcf(1) = coefficient beta
c
c pcf(2) = coefficient gamma
c
c pcf(3) = coefficient delta
c
c pcf(4) = n, the principal quantum number of the final state
c
c pcf(5) = l, the angular momentum of the the final state
c
c - warning- .
c
c the coefficient array pcf is updated by this routine to
c include energy independent constants. these coefficients can be
c used in subsequent calls for the same entry. the coefficeients
c added are:
c
c pcf(6) = threshold excitation energy for the transition (ev)
c
c pcf(7) = ionization energy of the state
c
c pcf(8) = the coefficient t (see doc=h-he-plasma for definition)
c
c pe = electron energy (ev)
c
c kermsg = blank if no errors
c
c pxs = cross section in cm[2]
c
c written by j. j. smith , iaea atomic and molecular data unit
c
c------------------------------------------------------------------------
c
double precision pe, pcf, pxs
integer n, l
dimension pcf(8)
dimension b(2,3)
character*(*) kermsg
data ry/13.58/
data eionhe/24.5876/
c
c the following table contains the values for the constant
c b(1s,nl) taken from the papers of kingston et al
c proc. phys. soc. 87,399 (1966), ibid 88, 597 (1966)
c (for helium the value of b must be divided by two to account
c for the two electrons, this is carried in using the b table )
c
c---- n=2 excited states
c
data b(1,1),b(1,2)/2.21972e-01,1.31230/,
c
c---- n=3 excited states
c
1 b(2,1),b(2,2),b(2,3)/4.40709e-02,2.43642e-01,3.39007e-02/
beta = pcf(1)
gamma = pcf(2)
delta = pcf(3)
n = pcf(4)
l = pcf(5)
c
kermsg = ' '
if (kncf .lt. 6) then
c
c first call to jeexc2 determine energy independent
c parameters and place in pcf for further use
c
c determine the excitation energy of the final state
c
call heexcen (n, l, 1, 0, eexc, kermsg)
if (kermsg .ne. ' ') return
c
c determine the ionization energy of the final state
c
call heionen (n, l, 1, 0, eion, kermsg)
if ( kermsg .ne. ' ') return
c
c determine the parameter t
c
t = 1.6 * beta * ((b(n,l+1)/2.0)**(-gamma))
& * ( ( ry * eexc / (4.0*eionhe*eion) ) ** (1.0 - gamma))
c
c place energy independent parameters in coefficient array and
c update kncf
c
pcf(6) = eexc
pcf(7) = eion
pcf(8) = t
kncf = 8
c
else if (kncf .eq. 8) then
eexc = pcf(6)
eion = pcf(7)
t = pcf(8)
c
else
kermsg = ' incorrect number of coefficients passed to jeexc2'
return
endif
c
if (pe .lt. eexc) then
pxs=0.0
return
endif
c
u = pe / eexc
cexp = -t * u
if (cexp .lt. -20.0) then
vexp = 0.0
else
vexp = exp(cexp)
endif
c
y = (1.0 - vexp) * (u - 1.0 + delta)/ (u*u)
pxs = 3.52e-16 * (b(n,l+1)/2.0) * (ry/eexc) * y
c
return
c
end |