Code |
c
c###################################################################
c
subroutine albeli(pe, pcf, kncf, pxs, kermsg)
c
c electron impact ionization cross section fits
c
c reference: k. l. bell et al, j. phys. chem. ref. data 12, 891
c (1983)
c
c this is an iaea subroutine to calculate cross sections for
c projectile energy (ev).
c
c pe = electron energy (ev)
c
c the number of fitting parameters varies depending on the
c number of terms taken in the numerical fitting and on the
c allowance for excitation autoionization in the cross section
c to fit cross sections with excitation autoionization two seperate
c fits are defined. one from the ionization threshold and a second
c fit for energies above the autoionization threshold.
c the number of parameters in any entry is given by kncf
c
c pcf(1) = ionization potential (ev)
c pcf(2-7) = fitting parameters ( can be less than 6 parameters)
c
c if cross section has excitation autoionization structure then
c for the second fit
c
c pcf(8) = autoionization threshold (ev)
c pcf(9) = ionization potential (ev)
c pcf(10-15) = fitting parameters for this fit (can be less than
c 6 parameters)
c
c kncf = number of parameters supplied in pcf (must be 8)
c pxs = ionization cross section (cm[2])
c kermsg = error message, ' ' is ok
c
c written by j. j. smith , iaea atomic and molecular data unit
c
c======================================================================
c
double precision pe, pcf, pxs
double precision ion, power, power1, xs, a, x, x2
dimension pcf(15)
character*(*) kermsg
c
kermsg = ' '
if(pe .lt. pcf(1)) then
pxs = 0.0d0
return
else
kermsg = ' '
endif
c
c--- determine parameters to be used
c
if (kncf .gt. 7 .and. pe .gt. pcf(8) ) then
c
c--- autoionization included and energy > autoionization threshold
c
ion = pcf(9)
a=pcf(10)
istart=11
iend=kncf
else
ion = pcf(1)
a=pcf(2)
istart=3
if (kncf .gt. 7) then
iend=7
else
iend = kncf
endif
endif
c
c--- generate cross section
c
x=ion/pe
x2= 1.0d0/x
c
c--- contribution from bethe term
c
xs = a*dlog(x2)
if ( kncf .ge. istart) then
c
c--- contribution from least squares fit terms
c
power1 = 1.0d0 - x
power = power1
do 10 i=istart,iend
xs = xs + pcf(i)*power
power = power*power1
10 continue
endif
c
c--- scale results to cm[2]
c
pxs= 1.0d-13*xs /(pe*ion)
c
return
end |