ADAS Subroutine xxdata_13
subroutine xxdata_13( iunit , dsname , & nstore , ntdim , nddim , & iz0 , iz , iz1 , esym , & nbsel , isela , & cwavel , cfile , ctype , cindm , & ita , ida , & teta , teda , & sxb & ) C----------------------------------------------------------------------- C C ***************** FORTRAN77 SUBROUTINE: xxdata_13 ******************* C C PURPOSE: To fetch data from input ionisations/photon file C for a given emitting ion (element and charge). C C CALLING PROGRAM: ADAS503/ssxb C C DATA: Up to 'nstore' sets (data-blocks) of data may be read from C the file - each block forming a complete set of ionizations C per photon values for given temp/density combination. Each C data-block is analysed independently of any other data- C block. C C The units used in the data file are taken as follows: C C Temperatures : eV C Densities : cm-3 C C SUBROUTINE: C C INPUT : (I*4) IUNIT = UNIT TO WHICH INPUT FILE IS ALLOCATED. C C (I*4) NSTORE = MAXIMUM NUMBER OF INPUT DATA-BLOCKS THAT C CAN BE STORED. C (I*4) NTDIM = MAX NUMBER OF ELECTRON TEMPERATURES ALLOWED C (I*4) NDDIM = MAX NUMBER OF ELECTRON DENSITIES ALLOWED C C OUTPUT: (I*4) IZ0 = READ - EMITTING ION - NUCLEAR CHARGE C (I*4) IZ = READ - EMITTING ION - CHARGE C (I*4) IZ1 = READ - EMITTING ION - CHARGE + 1 C (C*2) ESYM = READ - EMITTING ION - ELEMENT SYMBOL C C (I*4) NBSEL = NUMBER OF DATA-BLOCKS ACCEPTED & READ IN. C (I*4) ISELA() = READ - DATA-SET DATA-BLOCK ENTRY INDICES C DIMENSION: DATA-BLOCK INDEX C C (C*10) CWAVEL() = READ - WAVELENGTH (ANGSTROMS) C DIMENSION: DATA-BLOCK INDEX C (C*8) CFILE() = READ - SPECIFIC ION FILE SOURCE C DIMENSION: DATA-BLOCK INDEX C (C*8) CTYPE() = READ - DATA TYPE C DIMENSION: DATA-BLOCK INDEX C (C*2) CINDM() = READ - METASTABLE INDEX C DIMENSION: DATA-BLOCK INDEX C C (I*4) ITA() = READ - NUMBER OF ELECTRON TEMPERATURES C DIMENSION: DATA-BLOCK INDEX C (I*4) IDA() = READ - NUMBER OF ELECTRON DENSITIES C DIMENSION: DATA-BLOCK INDEX C C (R*8) TETA(,) = READ - ELECTRON TEMPERATURES (UNITS: eV) C 1st DIMENSION: ELECTRON TEMPERATURE INDEX C 2nd DIMENSION: DATA-BLOCK INDEX C (R*8) TEDA(,) = READ - ELECTRON DENSITIES (UNITS: CM-3) C 1st DIMENSION: ELECTRON DENSITY INDEX C 2nd DIMENSION: DATA-BLOCK INDEX C C (R*8) sxb(,,) =READ - PHOTON EMISSIVITY VALUES C 1st DIMENSION: ELECTRON TEMPERATURE INDEX C 2nd DIMENSION: ELECTRON DENSITY INDEX C 3rd DIMENSION: DATA-BLOCK INDEX C C ROUTINE: (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) ITD = ARRAY INDEX: ELECTRON DENSITY INDEX C (I*4) NTNUM = NUMBER OF ELECTRON TEMPERATURES FOR CURRENT C DATA-BLOCK C (I*4) NDNUM = NUMBER OF ELECTRON DENSITIES 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 (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*5) IONNAM = EMITTING ION READ FROM DATASET C (C*6) CKEY1 = 'FILMEM' - INPUT BLOCK HEADER KEY C (C*4) CKEY2 = 'TYPE ' - INPUT BLOCK HEADER KEY C (C*4) CKEY3 = 'INDM ' - INPUT BLOCK HEADER KEY C (C*4) CKEY4 = 'ISEL ' - INPUT BLOCK HEADER KEY 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 C C----------------------------------------------------------------------- C C C NOTES: Based on xxdata_15.for. C C C VERSION : 1.1 C DATE : 17-02-2006 C MODIFIED : Martin O'Mullane C - First version C C VERSION : 1.2 C DATE : 21-01-2007 C MODIFIED : Allan Whiteford C - Changed error messages from xxdata_15 to xxdata_13. C C----------------------------------------------------------------------- CHARACTER*8 CFILE(NSTORE) CHARACTER*2 CINDM(NSTORE) CHARACTER*8 CTYPE(NSTORE) CHARACTER*10 CWAVEL(NSTORE) CHARACTER*80 DSNAME CHARACTER*2 ESYM INTEGER IDA(NSTORE), ISELA(NSTORE) INTEGER ITA(NSTORE), IUNIT, IZ, IZ0 INTEGER IZ1, NBSEL, NDDIM, NSTORE INTEGER NTDIM REAL*8 SXB(NTDIM,NDDIM,NSTORE), TEDA(NDDIM,NSTORE) REAL*8 TETA(NTDIM,NSTORE)