ADAS Subroutine xxin17
SUBROUTINE XXIN17( IUNIT , ICLASS , DSNAME , LERROR , & NDDEN , NDTIN , NDZ1V , & IPRTD , ISYSD , & IDE , ITE , IZE , & DENSR , TR , ZIPT , & LSWIT , EIA , & AIPT & ) C----------------------------------------------------------------------- C C ****************** FORTRAN77 SUBROUTINE: XXIN17 ********************* C C PURPOSE: TO OPEN AND ACQUIRE DATA FROM MASTER CONDENSED C COLLISIONAL-DIELECTRONIC FILES: C C THE FOLLOWING FILES ARE ALLOWED: C C 1. RECOMBINATION COEFFICIENTS C 2. IONISATION COEFFICIENTS C 3. CHARGE-EXCHANGE RECOMBINATION COEFFICIENTS C 4. METASTABLE CROSS-COUPLING COEFFICIENTS C 5. PARENT METASTABLE CROSS-COUPLING COEFFICIENTS C 6. RECOMBINATION-BREMSSTRAHLUNG POWER COEFFICIENTS C 7. CHARGE-EXCHANGE RECOMBINATION POWER COEFFICIENTS C C (NOTE: SPECIFIC AND TOTAL LOW LINE POWER COEFFICIENTS C SHOULD BE READ USING 'XXIN80'. C IF ONLY STANDARD FILES ARE TO BE READ BY THE C PROGRAM USE 'XXINST'.) C C CALLING PROGRAM: GENERAL USE C C DATA: C THE SOURCE DATA IS CONTAINED AS MEMBERS OF PARTITIONED C DATA SETS AS FOLLOWS: C C 1. JETUID.ACD<YR>.DATA C 2. JETUID.SCD<YR>.DATA C 3. JETUID.CCD<YR>.DATA C 4. JETUID.QCD<YR>.DATA C 5. JETUID.XCD<YR>.DATA C 6. JETUID.PRB<YR>.DATA C 7. JETUID.PRC<YR>.DATA C C WHERE <YR> DENOTES TWO INTEGERS FOR THE YEAR SELECTED. C IF <YR> IS BLANK THEN THE CURRENT RECOMMENDED DATA SETS ARE C USED C C THE MEMBERS OF THE PARTITIONED DATA SETS ARE EITHER: C 1) <SE><I><J> FOR PARTIAL MASTER CONDENSED FILES, OR C 2) <SE> FOR STANDARD MASTER CONDENSED FILES C C WHERE: <SE> IS THE ONE OR TWO LETTER ION SEQUENCE CODE. C <I> IS A SINGLE INTEGER REPRESENTING THE PARENT C INDEX OR METASTABLE INDEX DEPENDING ON THE DATA C SET CLASS AND PRODUCTION BY BUNDLE-NS OR C LOW-LEVEL+PROJECTION MODELS C <J> IS A SINGLE INTEGER REPRESENTING THE SPIN SYSTEM C INDEX, METASTABLE INDEX OR PARENT INDEX C DEPENDING ON THE DATA SET CLASS AND PRODUCTION C BY BUNDLE-NS OR LOW-LEVEL+PROJECTION MODELS C C E.G. PARTIAL FILES: 'C12' OR 'HE21' C STANDARD FILES: 'C' OR 'HE' C C THE 'PARTIAL' AND 'STANDARD' MASTER CONDENSED FILES ARE C IDENTICAL IN FORM, EXCEPT THAT THREE ADDITIONAL LINES C ARE INCLUDED AT THE BEGINNING OF THE 'PARTIAL' MASTER C FILES. THE FIRST OF THESE LINES CONTAINS A ROW OF '=' C SIGNS, THE SECOND A PARENT/SPIN (OR EQUIVALENTS) PARAMETER C LIST, AND THE C THIRD A ROW OF "-" SIGNS. THIS DIFFERENCE IS USED TO IDENT- C IFY WHICH FILE TYPE IS BEING READ. C C THE CHARACTER STRING SEPARATING THE INPUT DATA FOR EACH C VALUE OF Z1 IN THE FILE WILL GIVE: C C PARTIAL & STANDARD: THE Z1 VALUE (Z1=) AND DATE (DATE:). C (OLDER DATA SETS MAY HAVE 'Z =' INSTEAD OF 'Z1=' HERE) C PARTIAL FILES ONLY: THE PARENT (IPRT=) & SPIN SYSTEM (ISYS=) C OR EQUIVALENTS (IGRD=) & (IGRD=, JGRD= AND JPRT=) C AS FOLLOW:- C C ICLASS INDI INDJ C ------ ---- ---- C 1 IPRT IGRD (OR ISYS) C 2 IPRT IGRD (OR ISYS) C 3 IPRT IGRD (OR ISYS) C 4 IPRT IGRD (OR ISYS) C 5 IPRT IGRD (OR ISYS) C 6 IGRD JGRD C 7 IPRT JPRT C C C SUBROUTINE: C C INPUT : (I*4) IUNIT = UNIT TO WHICH INPUT DATA SET ALLOCATED C INPUT : (I*4) ICLASS = UNIT TO WHICH INPUT DATA SET ALLOCATED C INPUT : (C*(*))DSNAME = INPUT MASTER CONDENSED FILE DATA SET NAME C OUTPUT: (L*4) LERROR = .TRUE. => ERROR DETECTED IN READING FILE C = .FALSE. => NO ERROR DETECTED IN FILE C C INPUT : (I*4) NDDEN = MAX. NUMBER OF REDUCED DENSITIES ALLOWED IN C MASTER CONDENSED FILE FOR A GIVEN SEQUENCE C INPUT : (I*4) NDTIN = MAX. NO. OF REDUCED TEMPERATURES ALLOWED IN C MASTER CONDENSED FILE FOR A GIVEN SEQUENCE C INPUT : (I*4) NDZ1V = MAX. NUMBER OF CHARGE STATES ALLOWED IN C MASTER CONDENSED FILE FOR A GIVEN SEQUENCE C C INPUT : (I*4) IPRTD = INPUT PARTIAL MASTER CONDENSED FILE: C PARENT INDEX SPECIFIED IN DATA SET NAME. C INPUT : (I*4) ISYSD = INPUT PARTIAL MASTER CONDENSED FILE: SPIN- C SYSTEM INDEX SPECIFIED IN DATA SET NAME. C C OUTPUT: (I*4) IDE = NUMBER OF REDUCED DENSITIES READ FROM INPUT C MASTER CONDENSED FOR A GIVEN SEQUENCE C OUTPUT: (I*4) ITE = NO. OF REDUCED TEMPERATURES READ FROM INPUT C MASTER CONDENSED FOR A GIVEN SEQUENCE C OUTPUT: (I*4) IZE = NO. OF CHARGE STATES GIVEN IN THE INPUT C MASTER CONDENSED FOR A GIVEN SEQUENCE C C OUTPUT: (R*8) DENSR() = SET OF 'IDE' INPUT REDUCED DENSITIES (CM-3/ C Z1**7) READ FROM CONDENSED MASTER FILE. C OUTPUT: (R*8) TR() = SET OF 'ITE' INPUT REDUCED TEMPERATURES C (K/Z1**2) READ FROM CONDENSED MASTER FILE. C OUTPUT: (R*8) ZIPT() = SET OF 'IZE' INPUT CHARGE STATES READ FROM C CONDENSED MASTER FILE. C (CHARGE STATE = RECOMBINING ION CHARGE) C C OUTPUT: (L*4) LSWIT = .TRUE. => IONISATION POTENTIALS C INCLUDED IN INPUT MASTER FILE. C .FALSE. => IONISATION POTENTIALS C NOT INCLUDED IN INPUT MASTER FILE C OUTPUT: (R*8) EIA() = IONISATION POTENTIALS: ()=ION CHARGE C UNITS: WAVE NUMBERS (CM-1) C (= 0.0 IF NOT SET) C C OUTPUT: (R*8) AIPT(,,)= CONDENSED MASTER FILE DATA. COLL-DIEL COEFF. C 1ST DIMENSION: REDUCED DENSITY ('DENSR()') C 2ND DIMENSION: REDUCED TEMPERATURE ('TR()') C 3RD DIMENSION: CHARGE STATE ('ZIPT()') C C (I*4) I4UNIT = FUNCTION (SEE ROUTINE SECTION BELOW) C (I*4) IPRT = INPUT PARTIAL MASTER CONDENSED FILE: C PARENT INDEX READ FROM INPUT FILE. C (I*4) ISYS = INPUT PARTIAL MASTER CONDENSED FILE: C SPIN-SYSTEM INDEX READ FROM INPUT FILE. C (I*4) IPOT = NUMBER OF IONISATION POTENTIAL VALUES C PRESENT IN THE INPUT FILE. C (I*4) IZ1 = CHARGE STATE READ FROM THE LINE PRECEEDING C AN INPUT BLOCK FROM THE FILE. C (= RECOMBINING ION CHARGE) C (I*4) IBGN = FIRST BYTE OF INTEREST IN CHARACTER 'STRING' C (I*4) IEND = LAST BYTE OF INTEREST IN CHARACTER 'STRING' C (I*4) ID = ARRAY SUBSCRIPT USED FOR DENSITY VALUES C (I*4) IT = ARRAY SUBSCRIPT USED FOR TEMPERATURE VALUES C (I*4) IZ = ARRAY SUBSCRIPT USED FOR ION-CHARGE VALUES C (I*4) I = GENERAL USE C C (L*4) LPART = .TRUE. => REQUESTED INPUT FILE: PARTIAL C = .FALSE. => REQUESTED INPUT FILE: STANDARD C C (C*5) CPOT = 'IPOT' C (C*5) CHINDI = 'IPRT= ' OR 'IGRD= ' DEPENDING ON ICLASS C (C*5) CHINDJ = 'IGRD= ', 'JGRD= ' OR 'JPRT= ' DEPENDING C ON ICLASS C (C*80) STRING = STRING INTO WHICH 1ST LINE OF INPUT FILE IS C READ TO ENABLE ITS FORMAT TO BE ESTABLISHED. C C NOTE: C STREAM HANDLING: C STREAM 'IUNIT' IS USED FOR READING CONDENSED MASTER FILES C C ROUTINES: C ROUTINE SOURCE BRIEF DESCRIPTION C ------------------------------------------------------------ C I4UNIT ADAS FETCH UNIT NUMBER FOR OUTPUT OF MESSAGES C XXREIA ADAS READ IN UNKNOWN NUMBER OF 'EIA' VALUES C IF PRESENT. C C C AUTHOR: PAUL E. BRIDEN (TESSELLA SUPPORT SERVICES PLC) C K1/0/81 C JET EXT. 4569 C C DATE: 22/08/90 C C UPDATE: 05/03/91 - PE BRIDEN - ADAS91: REMOVED OPENING OF DATA SET C C UPDATE: 23/04/93 - PE BRIDEN - ADAS91: ADDED I4UNIT FUNCTION TO WRITE C STATEMENTS FOR SCREEN MESSAGES C C UPDATE: 24/05/93 - PE BRIDEN - ADAS91: CHANGED I4UNIT(0)-> I4UNIT(-1) C C UPDATE: 11/08/93 - HP SUMMERS - CHANGED TO ACCEPT EXTRA DATA CLASSES C AND USE OF IGRD, JGRD, IPRT, JPRT AS C ALTERNATIVES TO IPRT AND ISYS. C C UNIX-IDL PORT: C C VERSION: 1.1 DATE: 06-09-95 C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC) C - FIRST RELEASE C C VERSION : 1.2 C DATE : 10-04-2007 C MODIFIED : Allan Whiteford C - Modified documentation as part of automated C subroutine documentation preparation. C C----------------------------------------------------------------------- C----------------------------------------------------------------------- CHARACTER*(*) DSNAME INTEGER ICLASS, IDE, IPRTD, ISYSD INTEGER ITE, IUNIT, IZE, NDDEN INTEGER NDTIN, NDZ1V LOGICAL LERROR, LSWIT REAL*8 AIPT(NDDEN,NDTIN,NDZ1V), DENSR(NDDEN) REAL*8 EIA(250), TR(NDTIN), ZIPT(NDZ1V)