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