ADAS Subroutine a8afit
SUBROUTINE A8AFIT ( Z0 , Z , ZEFF , IETYP ,
& IXTYP , IND1 , IND2 , WI, WJ, EI, EJ,
& IATYP , ACOEFF, IFTYP , IOTYP , IFOUT ,
& IXMAX , ITMAX , EDAT , XDAT , TDAT ,
& IIORD , IIBTS , IIFPT , IIXOP , IIDIF ,
& BXC , BPXC ,FXC1 ,
& FXC2 , FXC3 , XKC ,
& XA , YA , APOMA ,
& DIFOMA, TOA , GOA , APGOA , EXCRA ,
& DEXCRA, GBARFA,
& ICT , ITOUT , S , FIJ , EIJ
& )
C-----------------------------------------------------------------------
C PURPOSE: TO ANALYSE ELECTRON IMPACT CROSS-SECTION DATA AND CONVERT TO
C RATE COEFFICIENTS
C
C VARIOUS FORMS OF DATA ENTRY ARE ALLOWED
C
C DATA IS FITTED WITH APPROXIMATE FORMS TO AID INTERPOLATION DEPENDING
C ON THE TRANSITION TYPE. THESE ARE
C 1. DIPOLE
C 2. NON-DIPOLE
C 3. SPIN CHANGE
C 4. OTHER
C
C DATA ENTRY IS VIA CALL TO PANEL SUBROUTINE SPFMA4E AS FOLLOWS:
C
C INPUT
C
C OUTPUT
C Z0 = NUCLEAR CHARGE OF ION
C Z = ION CHARGE
C ZEFF = ION CHARGE + 1
C IETYP = 1 LEVEL ENERGIES IN CM-1
C = 2 LEVEL ENERGIES IN RYD
C IXTYP = 1 DIPOLE TRANSITION
C = 2 NON-DIPOLE TRANSITION
C = 3 SPIN CHANGE TRANSITION
C = 4 OTHER
C IND1 = LOWER LEVEL INDEX (USER CHOICE)
C IND2 = UPPER LEVEL INDEX (USER CHOICE)
C WI = LOWER LEVEL STATISTICAL WEIGHT
C WJ = UPPER LEVEL STATISTICAL WEIGHT
C EI = LOWER LEVEL ENERGY (IN SELECTED UNITS)
C EJ = UPPER LEVEL ENERGY
C IATYP = 1 A-COEFFICIENT RETURNED
C = 2 OSCILLATOR STRENGTH RETURNED
C = 3 LINE STRENGTH RETURNED
C ACOEFF = TRANSITION PROBABILITY (IN ABOVE FORM, DIPOLE CASE ONLY)
C IFTYP = 1 UPPER K**2 (RYD) FOR COLLISION ENERGY UNITS
C = 2 LOWER K**2 (RYD)
C = 3 UPPER (K/Z0)**2 (RYD)
C = 4 X PARAMETER
C = 5 UPPER (K/ZEFF)**2 (RYD)
C IOTYP = 1 EXCITATION CROSS-SECTION (PI*A0**2) RETURNED
C = 2 DE-EXCITATION CROSS-SECTION (PI*A0**2) RETURNED
C = 3 COLLISION STRENGTH RETURNED
C = 4 SCALED COLLISION STRENGTH (Z**2*OMEGA) RETURNED
C IFOUT = 1 KELVIN FOR OUTPUT TEMPERATURE UNIT
C = 2 EV FOR OUTPUT TEMPERATURE UNIT
C = 3 SCALED UNITS RETURNED (TE(K)/Z1**2)
C = 4 REDUCED UNITS RETURNED (KTE/EIJ)
C IXMAX = NUMBER OF ENERGY/X-SECT PAIRS ENTERED
C ITMAX = NUMBER OF OUTPUT TEMPERATURES ENTERED
C EDAT(I)= INPUT ENERGIES (SELECTED UNITS)
C XDAT(I)= INPUT X-SECTS (SELECTED UNITS)
C TDAT(I)= OUTPUT TEMPS. (SELECTED UNITS)
C IIORD = 1 4-PT GAUSS-LAGUERRE QUADRATURE
C = 2 8-PT GAUSS-LAGUERRE QUADRATURE
C = 3 12-PT GAUSS-LAGUERRE QUADRATURE
C IIGPH = 0 NO X-SECT GRAPH TO BE PRODUCED
C = 1 X-SECT GRAPH TO BE PRODUCED
C IIGPG = 0 NO GAMMA GRAPH TO BE PRODUCED
C = 1 GAMMA GRAPH TO BE PRODUCED
C IIBTS = 0 BAD POINT OPTION OFF
C = 1 BAD POINT OPTION ON
C IIFPT = 1 SELECT ONE POINT OPTIMISING
C = 2 SELECT TWO POINT OPTIMISING
C IIXOP = 0 OPTIMISING OFF
C = 1 OPTIMISING ON (IF ALLOWED)
C IIDIF = 0 RATIO FITTING FOR DIPOLE X-SECT(ONLY WITH OPTIMISING)
C = 1 DIFFERENCE FITTING FOR DIPOLE X-SECT
C
C
C AUTHOR: HUGH SUMMERS, UNIVERSITY OF STRATHCLYDE
C
C DATE: 16-06-99 VERSION 1.1
C MODIFIED: HUGH SUMMERS
C -FIRST RELEASE
C
C DATE: 07/07/2004 VERSION: 1.2
C MODIFIED: ALLAN WHITEFORD
C - CHANGED PARAMS108 TO PARAMS
C
C DATE: 15/05/2007 VERSION: 1.3
C MODIFIED: ALLAN WHITEFORD
C - UPDATED COMMENTS AS PART OF SUBROUTINE
C DOCUMENTATION PRODUCTION.
C
C-----------------------------------------------------------------------
INCLUDE 'PARAMS'
C-----------------------------------------------------------------------
INTEGER IATYP, ICT, IETYP, IFOUT
INTEGER IFTYP, IIBTS, IIDIF, IIFPT
INTEGER IIORD, IIXOP, IND1, IND2
INTEGER IOTYP, ITMAX, ITOUT, IXMAX
INTEGER IXTYP
REAL*8 ACOEFF, APGOA(ISTDIM)
REAL*8 APOMA(ISTDIM), BPXC, BXC
REAL*8 DEXCRA(ISTDIM), DIFOMA(ISTDIM)
REAL*8 EDAT(ISTDIM), EI, EIJ
REAL*8 EJ, EXCRA(ISTDIM), FIJ
REAL*8 FXC1, FXC2, FXC3
REAL*8 GBARFA(ISTDIM), GOA(ISTDIM), S
REAL*8 TDAT(ISTDIM), TOA(ISTDIM), WI
REAL*8 WJ, XA(ISTDIM), XDAT(ISTDIM)
REAL*8 XKC, YA(ISTDIM), Z, Z0
REAL*8 ZEFF