ADAS Subroutine a1data
SUBROUTINE A1DATA( DSFULL , INDXREF , TITLE , CAMETH , Z0 , & Z , ZEFF , INDL , INDU , EI , & EJ , WI , WJ , ACOEFF , S , & FIJ , EIJ , IXTYP , FXC2 , FXC3 , & IXOPS , IBPTS , IFPTS , IDIFF , ICT , & ITOUT , XA , YA , APOMA , DIFOMA , TOA , & GOA , APGOA , EXCRA , DEXCRA , GBARFA, & ISTDIM , IREAD , IZ , IZ0 , GF , & BCVAL & ) C----------------------------------------------------------------------- C C ********************* FORTRAN77 SUBROUTINE A1DATA ******************* C C PURPOSE: TO REFRESH A DATA INDEX FROM AN ADAS101 ARCHIVE. READS C IN THE INDEX CODE A-ADAS, B-BURGESS AND THE THE REST OF C THE DATA AS APPROPRIATE. C C CALLING PROGRAM: C ADAS101.FOR C C INPUT: C (C*80) DSFULL - THE USERS' CHOSEN ARCHIVE FILE NAME. C (I*4) INDXREF - THE INDEX NUMBER TO REFRESH FROM. C (C*40) TITLE - THE INFORMATION LINE IN THE ARCHIVE C FILE. C (C*4) CAMETH - THE TAG TO DISTINGUISH BETWEEN THE C TWO TYPES OF ANALYSIS. C A - ADAS, B- BURGESS C (R*8) GF - THE WEIGHTED OSCILLATOR STRENGTH C (R*8) BCVAL - THE BURGESS SCALABLE PARAMETER C. C (I*4) ISTDIM = THE MAXIMUM ARRAY DIMENSION C (I*4) IREAD = THE INPUT UNIT C C OUTPUTS: C (R*8) Z0 = NUCLEAR CHARGE OF ION C (R*8) Z = ION CHARGE C (R*8) ZEFF = ION CHARGE + 1 C (I*4) INDL = LOWER LEVEL INDEX (USER CHOICE) C (I*4) INDU = UPPER LEVEL INDEX (USER CHOICE) C (R*8) WI = LOWER LEVEL STATISTICAL WEIGHT C (R*8) WJ = UPPER LEVEL STATISTICAL WEIGHT C (R*8) EI = LOWER LEVEL ENERGY (IN SELECTED UNITS) C (R*8) EJ = UPPER LEVEL ENERGY C (R*8) ACOEFF = TRANSITION PROBABILITY (IN ABOVE FORM, C DIPOLE CASE ONLY) C (I*4) IXTYP = 1 DIPOLE TRANSITION C = 2 NON-DIPOLE TRANSITION C = 3 SPIN CHANGE TRANSITION C = 4 OTHER C (I*4) IBPTS = 0 BAD POINT OPTION OFF C = 1 BAD POINT OPTION ON C (I*4) IFPTS = 1 SELECT ONE POINT OPTIMISING C = 2 SELECT TWO POINT OPTIMISING C (I*4) IXOPS = 0 OPTIMISING OFF C = 1 OPTIMISING ON (IF ALLOWED) C (I*4) IDIFF = 0 RATIO FITTING FOR DIPOLE X-SECT(ONLY C WITH OPTIMISING) C = 1 DIFFERENCE FITTING FOR DIPOLE X-SECT C (R*8) S = LINE STRENGTH C (R*8) FIJ = OSCILLATOR STRENGTH C (R*8) EIJ = TRANSITION ENERGY C (R*8) FXC2 = SPLINING VARIABLE C (R*8) FXC3 = SPLINING VARIABLE C (I*4) ICT = NUMBER OF X-SECTIONS C (I*4) ITOUT = NUMBER OF TEMPERATURES C (R*8) XA = ENERGY (PARAMETER X) C (R*8) YA = OMEGA (COLLISION STRENGTH) C (R*8) APOMA = APPROXIMATE OMEGA C (R*8) DIFOMA = DIFFERENCE BETWEEN YA & APOMA C (R*8) TOA = TEMPERATURE SET C (R*8) GOA = GAMMA (EFFECTIVE COLLISION STRENGTHS) C (R*8) APGOA = APPROXIMATE GAMMA C (R*8) EXCRA = EXCITATION RATE COEFFICIENT C (R*8) DEXCRA = DEEXCITATION RATE COEFFICIENT C (R*8) GBARFA = G BAR FUNCTION C (I*4) ISTDIM = THE MAXIMUM ARRAY DIMENSION C (I*4) IREAD = THE INPUT UNIT C C ROUTINES: NONE C C AUTHOR: DAVID H.BROOKS (UNIV.OF STRATHCLYDE) EXT.4213/4205 C C VERSION 1.1 DATE: 26/05/95 C MODIFIED: DAVID H. BROOKS C - FIRST RELEASE C VERSION 1.2 DATE: 03/10/96 C MODIFIED: WILLIAM OSBORN C - ADDED TRAP FOR WHEN THE REQUESTED ARCHIVE NUMBER IS NOT IN C THE FILE C C DATE: 07/05/99 VERSION 1.3 C MODIFIED: HUGH SUMMERS C - CORRECTED CONFUSION ABOUT NCHAR AND NELEC C C----------------------------------------------------------------------- CHARACTER*4 CAMETH CHARACTER*80 DSFULL CHARACTER*40 TITLE INTEGER IBPTS, ICT, IDIFF, IFPTS INTEGER INDL, INDU, INDXREF, IREAD INTEGER ISTDIM, ITOUT, IXOPS, IXTYP INTEGER IZ, IZ0 REAL*8 ACOEFF, APGOA(ISTDIM) REAL*8 APOMA(ISTDIM), BCVAL REAL*8 DEXCRA(ISTDIM), DIFOMA(ISTDIM) REAL*8 EI, EIJ, EJ REAL*8 EXCRA(ISTDIM), FIJ, FXC2 REAL*8 FXC3, GBARFA(ISTDIM), GF REAL*8 GOA(ISTDIM), S, TOA(ISTDIM), WI REAL*8 WJ, XA(ISTDIM), YA(ISTDIM), Z REAL*8 Z0, ZEFF