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
      IF(PE .LT. PCF(1)) THEN
        KERMSG = 'ELECTRON ENERGY BELOW THRESHOLD FOR THE REACTION'
        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
C