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)