ADAS Subroutine xxinst
SUBROUTINE XXINST( IUNIT , DSNAME , LERROR ,
& NDDEN , NDTIN , NDZ1V ,
& IDE , ITE , IZE ,
& DENSR , TR , ZIPT ,
& LSWIT , EIA ,
& AIPT
& )
C-----------------------------------------------------------------------
C
C ****************** FORTRAN77 SUBROUTINE: XXINST *********************
C
C PURPOSE: TO FETCH DATA FROM STANDARD 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. RECOMBINATION-BREMSSTRAHLUNG POWER COEFFICIENTS
C 5. CHARGE-EXCHANGE RECOMBINATION POWER COEFFICIENTS
C 6. TOTAL LINE POWER COEFFICIENTS
C 7. SPECIFIC LINE POWER COEFFICIENTS
C
C (NOTE: PARTIAL MASTER CONDENSED FILES SHOULD BE READ USING
C 'XXIN15' & 'XXIN68'.
C IF PARTIAL AND STANDARD FILES ARE BOTH TO BE READ
C USE 'XXIN15' AND 'XXIN68')
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.PRB<YR>.DATA
C 5. JETUID.PRC<YR>.DATA
C 5. JETUID.PLT<YR>.DATA
C 5. JETUID.PLS<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 MUST BE STANDARD
C MASTER CONDENSED FILES AND OF THE FORM <SE>
C
C WHERE: <SE> IS THE ONE OR TWO LETTER ION SEQUENCE CODE.
C
C E.G. 'C' OR 'HE' ('@' = BARE-NUCLEUS)
C
C PARTIAL FILES WHICH HAVE MEMBERS NAMES WITH EITHER
C TWO DIGITS OR A DOUBLE HASH AFTER THEM CANNOT BE
C READ USING THIS ROUTINE (SEE 'XXIN15' & 'XXIN68')
C
C THE 'PARTIAL' AND 'STANDARD' MASTER CONDENSED FILES ARE
C SIMILAR IN FORM. A MAJOR DIFFERENCE IS THAT ADDITIONAL LINES
C ARE INCLUDED AT THE BEGINNING OF THE 'PARTIAL' MASTER
C FILES. THE FIRST OF THESE LINES CONTAINING A ROW OF '='
C SIGNS. THIS DIFFERENCE IS USED TO MAKE SURE THAT A STANDARD
C MASTER FILE 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 THE Z1 VALUE (Z1=) AND DATE (DATE:).
C (OLDER DATA SETS MAY HAVE 'Z =' INSTEAD OF 'Z1=' HERE)
C
C (NOTE: Z1 = ION CHARGE + 1 = RECOMBINING ION CHARGE)
C
C SUBROUTINE:
C
C INPUT : (I*4) IUNIT = 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 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**7) READ FROM CONDENSED MASTER FILE.
C OUTPUT: (R*8) ZIPT() = SET OF 'IZE' INPUT CHARGE STATES READ FROM
C CONDENSED MASTER/METASTABLE FILE.
C (CHARGE STATE = ION CHARGE + 1 = RECOMBINING
C
C OUTPUT: (L*4) LSWIT = .TRUE. => IONISATION RATE COEFFICIENTS
C INCLUDED IN INPUT MASTER FILE.
C .FALSE. => IONISATION RATE COEFFICIENTS
C NOT INCLUDED IN INPUT MASTER FILE
C OUTPUT: (R*8) EIA() = IONISATION RATE COEFFICIENTS: ()=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) IPOT = NUMBER OF IONISATION RATE COEFF. 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 (= ION CHARGE + 1 = 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 (C*5) CPOT = 'IPOT'
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 DATE: 05/03/90 - PE BRIDEN - ADAS91: OPENING OF DATA SET REMOVED.
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 UNIX-IDL PORT:
C
C VERSION: 1.1 DATE: 06-09-95
C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC)
C - FIRST RELEASE (NO CHANGES)
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 IDE, ITE, IUNIT, IZE
INTEGER NDDEN, NDTIN, NDZ1V
LOGICAL LERROR, LSWIT
REAL*8 AIPT(NDDEN,NDTIN,NDZ1V), DENSR(NDDEN)
REAL*8 EIA(50), TR(NDTIN), ZIPT(NDZ1V)