ADAS Subroutine e7data
SUBROUTINE E7DATA( IUNIT , DSNAME ,
& NSTORE , NTDIM ,
& ESYM , IZ0 ,
& NBSEL , ISELA ,
& IZ , IZ1 ,
& CWAVEL , CIION , CICODE , CISCRP , CITYPE ,
& ITA ,
& TMA , TETA , DENSA , GCF
& )
C-----------------------------------------------------------------------
C
C ****************** FORTRAN77 SUBROUTINE: E7DATA *********************
C
C PURPOSE: TO FETCH DATA FROM INPUT CONTRIBUTION FUNCTIONS
C OF AN ELEMENT AND ITS IONS.
C (MEMBER STORED IN IONELEC.DATA - MEMBER PREFIX 'GCF#').
C
C CALLING PROGRAM: ADAS507/SGCF
C
C DATA:
C
C UP TO 'NSTORE' SETS (DATA-BLOCKS) OF DATA MAY BE READ FROM
C THE FILE - EACH BLOCK FORMING A COMPLETE SET OF CONTRIBUTION
C FUNCTION VALUES FOR GIVEN TEMPERATURES.
C EACH DATA-BLOCK IS ANALYSED INDEPENDENTLY OF ANY OTHER
C DATA-BLOCK.
C
C THE UNITS USED IN THE DATA FILE ARE TAKEN AS FOLLOWS:
C
C MODEL PARAMETER : UNSPECIFIED
C DENSITIES : CM-3
C TEMPERATURES : EV
C CONTR. FUNCTION : CM**3 S-1
C
C SUBROUTINE:
C
C INPUT : (I*4) IUNIT = UNIT TO WHICH INPUT FILE IS ALLOCATED.
C INPUT : (C*44) DSNAME = MVS DATA SET NAME OF DATA SET BEING READ
C
C INPUT : (I*4) NSTORE = MAXIMUM NUMBER OF INPUT DATA-BLOCKS THAT
C CAN BE STORED.
C INPUT : (I*4) NTDIM = MAX NUMBER OF ELECTRON TEMPERATURES ALLOWED
C
C OUTPUT: (C*2) ESYM = READ - RADIATING ION - ELEMENT SYMBOL
C OUTPUT: (I*4) IZ0 = READ - RADIATING ION - NUCLEAR CHARGE
C
C OUTPUT: (I*4) NBSEL = NUMBER OF DATA-BLOCKS ACCEPTED & READ IN.
C OUTPUT: (I*4) ISELA() = READ - DATA-SET DATA-BLOCK ENTRY INDICES
C DIMENSION: DATA-BLOCK INDEX
C
C OUTPUT: (I*4) IZ() = READ - RADIATING ION CHARGE
C ( SET TO -1 IF WHOLE ELEMENT)
C DIMENSION: DATA-BLOCK INDEX
C OUTPUT: (I*4) IZ1() = READ - RADIATING ION CHARGE +1
C ( SET TO 1 IF WHOLE ELEMENT)
C DIMENSION: DATA-BLOCK INDEX
C
C OUTPUT: (C*10) CWAVEL() = READ - WAVELENGTH (ANGSTROMS)
C DIMENSION: DATA-BLOCK INDEX
C OUTPUT: (C*5) CIION() = READ - RADIATING ION (AS <ESYM>+(IZ()> )
C DIMENSION: DATA-BLOCK INDEX
C OUTPUT: (C*8) CICODE() = READ - SOURCE PROGRAM
C DIMENSION: DATA-BLOCK INDEX
C OUTPUT: (C*8) CISCRP() = READ - SOURCE SCRIPT
C DIMENSION: DATA-BLOCK INDEX
C OUTPUT: (C*5) CITYPE() = READ - RADIATION TYPE
C DIMENSION: DATA-BLOCK INDEX
C
C OUTPUT: (I*4) ITA() = READ - NUMBER OF ELECTRON TEMPERATURES
C DIMENSION: DATA-BLOCK INDEX
C
C OUTPUT: (R*8) TMA(,) = READ - MODEL PARAMETER (UNITS: UNDEFINED)
C 1st DIMENSION: ELECTRON TEMPERATURE INDEX
C 2nd DIMENSION: DATA-BLOCK INDEX
C
C OUTPUT: (R*8) TETA(,) = READ - ELECTRON TEMPERATURES (UNITS: EV)
C 1st DIMENSION: ELECTRON TEMPERATURE INDEX
C 2nd DIMENSION: DATA-BLOCK INDEX
C
C OUTPUT: (R*8) DENSA(,) = READ - ELECTRON DENSITIES (UNITS: CM-3)
C 1st DIMENSION: ELECTRON TEMPERATURE INDEX
C 2nd DIMENSION: DATA-BLOCK INDEX
C
C OUTPUT: (R*8) GCF(,) =READ - FULL SET OF GENERALISED CONTIBUTION
C FUNCTIONS (CM**3 S-1)
C 1st DIMENSION: ELECTRON TEMPERATURE INDEX
C 2nd DIMENSION: DATA-BLOCK INDEX
C
C (I*4) I4EIZ0 = FUNCTION - (SEE ROUTINES SECTION BELOW)
C (I*4) I4FCTN = FUNCTION - (SEE ROUTINES SECTION BELOW)
C (I*4) I4UNIT = FUNCTION - (SEE ROUTINES SECTION BELOW)
C (I*4) IBLK = ARRAY INDEX: DATA-BLOCK INDEX
C (I*4) ITT = ARRAY INDEX: ELECTRON TEMPERATURE INDEX
C (I*4) NTNUM = NUMBER OF ELECTRON TEMPERATURES FOR CURRENT
C DATA-BLOCK
C (I*4) IABT = RETURN CODE FROM 'I4FCTN'
C (I*4) IPOS1 = GENERAL USE STRING INDEX VARIABLE
C (I*4) IPOS2 = GENERAL USE STRING INDEX VARIABLE
C
C (R*8) R8FCTN = FUNCTION - (SEE ROUTINES SECTION BELOW)
C
C (L*4) LBEND = IDENTIFIES WHETHER THE LAST OF THE INPUT
C DATA SUB-BLOCKS HAS BEEN LOCATED.
C (.TRUE. => END OF SUB-BLOCKS REACHED)
C
C (C*1) CSLASH = '/' - DELIMITER FOR 'XXHKEY'
C (C*2) C2 = GENERAL USE TWO BYTE CHARACTER STRING
C (C*4) CKEY1 = 'CODE' - INPUT BLOCK HEADER KEY
C (C*6) CKEY2 = 'SCRIPT - INPUT BLOCK HEADER KEY
C (C*4) CKEY3 = 'TYPE' - INPUT BLOCK HEADER KEY
C (C*4) CKEY4 = 'ISEL' - INPUT BLOCK HEADER KEY
C (C*10) C10 = GENERAL USE TEN BYTE CHARACTER STRING
C (C*80) C80 = GENERAL USE 80 BYTE CHARACTER STRING FOR
C THE INPUT OF DATA-SET RECORDS.
C
C ROUTINES:
C ROUTINE SOURCE BRIEF DESCRIPTION
C ------------------------------------------------------------
C XXHKEY ADAS OBTAIN KEY/RESPONSE STRINGS FROM TEXT
C I4EIZ0 ADAS INTEGER*4 FUNCTION -
C RETURNS Z0 FOR GIVEN ELEMENT SYMBOL
C I4FCTN ADAS INTEGER*4 FUNCTION -
C CONVERT CHARACTER STRING TO INTEGER
C I4UNIT ADAS INTEGER*4 FUNCTION -
C FETCH UNIT NUMBER FOR OUTPUT OF MESSAGES
C R8FCTN ADAS REAL*8 FUNCTION -
C CONVERT CHARACTER STRING TO REAL*8
C
C AUTHOR: H. P. SUMMERS, JET
C K1/1/57
C JET EXT. 4941
C
C DATE: 15/04/94
C
C UPDATE:
C
C-----------------------------------------------------------------------
CHARACTER*8 CICODE(NSTORE)
CHARACTER*5 CIION(NSTORE)
CHARACTER*8 CISCRP(NSTORE)
CHARACTER*5 CITYPE(NSTORE)
CHARACTER*10 CWAVEL(NSTORE)
CHARACTER*80 DSNAME
CHARACTER*2 ESYM
INTEGER ISELA(NSTORE), ITA(NSTORE), IUNIT
INTEGER IZ(NSTORE), IZ0, IZ1(NSTORE), NBSEL
INTEGER NSTORE, NTDIM
REAL*8 DENSA(NTDIM,NSTORE), GCF(NTDIM,NSTORE)
REAL*8 TETA(NTDIM,NSTORE), TMA(NTDIM,NSTORE)