ADAS Subroutine xxin80
SUBROUTINE XXIN80( IUNIT , DSNAME , LERROR , & NDDEN , NDTIN , NDZ1V , NDMET , & IDE , ITE , IZE , & DENSR , TR , ZIPT , & IME , IMETR , CSTRGA , & NPRNT , IPRNT , IPSYS , & LSWIT , EIA , & AIPT & ) C----------------------------------------------------------------------- C C ****************** FORTRAN77 SUBROUTINE: XXIN80 ********************* C C PURPOSE: TO OPEN AND ACQUIRE DATA FROM MASTER CONDENSED C COLLISIONAL-DIELECTRONIC FILES: C C THE FOLLOWING FILES ARE ALLOWED: C C 8. TOTAL LINE POWER COEFFICIENTS C 9. SPECIFIC LINE POWER COEFFICIENTS C C AND TO OPEN AND ACQUIRE DATA FROM THE FOLLOWING FILE: C C 10. METASTABLE POPULATION DATA C C (NOTE: OTHER MASTER CONDENSED COLL.-DIEL. COEFFICIENTS C SHOULD BE READ USING 'XXIN17'. 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 8. JETUID.PLT<YR>.DATA C 9. JETUID.PLS<YR>.DATA C 10. JETUID.MET<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><#><#> FOR PARTIAL MASTER CONDENSED FILES, OR C 2) <SE> FOR STANDARD MASTER CONDENSED FILES AND C METASTABLE POPULATION FILE C C WHERE: <SE> IS THE ONE OR TWO LETTER ION SEQUENCE CODE. C NOTE: FOR THE BARE NUCLEUS <SE> = '@' C <#> IS THE SINGLE CHARACTER '#' C C C E.G. PARTIAL MASTER CONDENSED FILES:'@##' OR 'HE##' C STANDARD AND METASTABLE FILES : '@' OR 'HE' C C THE 'PARTIAL' AND 'STANDARD' MASTER CONDENSED FILES ARE C IDENTICAL IN FORM EXCEPT: C A) EIGHT ADDITIONAL LINES ARE INCLUDED AT THE BEGINNING C OF THE 'PARTIAL' MASTER FILES. THE FIRST OF THESE C LINES CONTAINS A ROW OF '=' SIGNS, THE NEXT SIX LINES C CONTAIN METASTABLE LEVEL INFORMATION, SUCH AS NUMBER OF C LEVELS, PARENT/SPIN INDEXES ETC. THE EIGHTH LINE CONTAINS C A ROW OF "-" SIGNS. THIS DIFFERENCE IS USED TO IDENTIFY C WHICH FILE TYPE IS BEING READ. C B) THE PARTIAL FILES INCLUDE THE POPULATIONS FOR EACH OF C THE METASTABLE LEVELS, WHEREAS THE STANDARD FILES CONTAIN C A SINGLE SET OF COMBINED POPULATIONS. C C THE METASTABLE POPULATION FILES HAVE THE SAME FORMAT AS THE C PARTIAL MASTER CONDENSED FILES C C THE CHARACTER STRING SEPARATING THE INPUT DATA FOR EACH C CHARGE STATE IN THE FILE WILL GIVE: C C THE CHARGE STATE VALUE (Z1=) AND DATE (DATE:). C (OLDER DATA SETS MAY HAVE 'Z =' INSTEAD OF 'Z1=' HERE) C (CHARGE STATE Z1 = ION CHARGE + 1 = RECOMBINING ION CHARGE) C C UNDER EACH OF THESE LINES THE COEFFTS/POPULATIONS ARE LISTED C -IN THE CASE OF THE METASTABLE/PARTIAL FILES VALUES FOR EACH C OF THE METASTABLE LEVELS ARE LISTED EACH BEING PRECEDED BY C A LINE GIVING THE METASTABLE INDEX BETWEEN TWO "/". C E.G. /2/ => METASTABLE LEVEL TWO. C C DATA FOR INDIVIDUAL PARENT/SPIN SYSTEMS ARE LISTED IN THE C MEATASTABLE FILES. C 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/METASTABLE FILE FOR A GIVEN C SEQUENCE. C INPUT : (I*4) NDTIN = MAX. NO. OF REDUCED TEMPERATURES ALLOWED IN C MASTER CONDENSED/METASTABLE FILE FOR A GIVEN C SEQUENCE. C INPUT : (I*4) NDZ1V = MAX. NUMBER OF CHARGE STATES ALLOWED IN C MASTER CONDENSED/METASTABLE FILE FOR A GIVEN C SEQUENCE. C INPUT : (I*4) NDMET = MAX. NUMBER OF METASTABLE STATES ALLOWED IN C MASTER CONDENSED/METASTABLE FILE FOR A GIVEN C SEQUENCE. C NOT USED FOR STANDARD MASTER CONDENSED FILES C (SET EQUAL TO 1 IN THIS CASE). C C OUTPUT: (I*4) IDE = NUMBER OF REDUCED DENSITIES READ FROM INPUT C MASTER CONDENSED/METASTABLE FILE FOR A GIVEN C SEQUENCE. C OUTPUT: (I*4) ITE = NO. OF REDUCED TEMPERATURES READ FROM INPUT C MASTER CONDENSED/METASTABLE FILE FOR A GIVEN C SEQUENCE. C OUTPUT: (I*4) IZE = NO. OF CHARGE STATES GIVEN IN THE INPUT C MASTER CONDENSED/METASTABLE FILE FOR A GIVEN C SEQUENCE. C C OUTPUT: (R*8) DENSR() = SET OF 'IDE' INPUT REDUCED DENSITIES (CM-3/ C Z1**7) READ FROM CONDENSED MASTER/METASTABLE C FILE. C OUTPUT: (R*8) TR() = SET OF 'ITE' INPUT REDUCED TEMPERATURES C (K/Z1**2) READ FROM CONDENSED MASTER/ C METASTABLE 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 ION CHARGE) C C OUTPUT: (I*4) IME = NO. OF METASTABLE LEVELS CONTAINED IN THE C INPUT MASTER CONDENSED/METASTABLE FILE. C EQUALS 1 FOR STANDARD MASTER CONDENSED FILES C OUTPUT: (I*4) IMETR() =THE ORIGINAL COPDAT INDEX FOR EACH METASTABLE C LEVEL. DIMENSION: METASTABLE LEVEL INDEX. C NOT USED FOR STANDARD MASTER CONDENSED FILES C OUTPUT: (C*12) CSTRGA()=THE DESIGNATION OF EACH METASTABLE LEVEL. C DIMENSION: METASTABLE LEVEL INDEX. C NOT USED FOR STANDARD MASTER CONDENSED FILES C C OUTPUT: (I*4) NPRNT = NUMBER OF PARENTS CONTAINED IN THE INPUT C MASTER CONDENSED/METASTABLE FILE. C NOT USED FOR STANDARD MASTER CONDENSED FILES C (NOTE: THE NUMBER OF PARENTS CANNOT EXCEED C THE NUMBER OF METASTABLE LEVELS) C OUTPUT: (I*4) IPRNT() = THE PARENT INDEX FOR INPUT PARENT. C DIMENSION: PARENT/(METASTABLE LEVEL) INDEX. C NOT USED FOR STANDARD MASTER CONDENSED FILES C OUTPUT: (I*4) IPSYS() = THE SPIN SYSTEM REFERENCE FOR EACH INPUT C PARENT. C DIMENSION: PARENT/(METASTABLE LEVEL) INDEX. C NOT USED FOR STANDARD MASTER CONDENSED FILES 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(,,,)= OPTION 6: TOTAL LINE POWER COEFFICIENTS C OPTION 7: SPECIFIC LINE POWER COEFFICIENTS C OPTION 8: METASTABLE STATE POPULATIONS C 1ST DIMENSION: ELECTRON DENSITY INDEX C ('DENSR()') C 2ND DIMENSION: ELECTRON TEMPERATURE INDEX C ('TR()') C 3RD DIMENSION: CHARGE STATE INDEX C ('ZIPT()') C 4TH DIMENSION: METASTABLE STATE INDEX C (OPTIONS 6 & 7 STANDARD FILES ALWAYS = 1) C C (C*1) CBLNK = PARAMETER = ' ' C (C*1) CEQUAL = PARAMETER = '=' C (C*1) CSTAR = PARAMETER = '*' C C (I*4) I4UNIT = FUNCTION (SEE ROUTINE SECTION BELOW) 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 (= ION CHARGE + 1 = RECOMBINING ION CHARGE) C (I*4) IMET = METASTABLE STATE OF CURRENT DATA BLOCK BEING C READ. 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 INDEXES C (I*4) IT = ARRAY SUBSCRIPT USED FOR TEMPERATURE INDEXS C (I*4) IZ = ARRAY SUBSCRIPT USED FOR ION-CHARGE INDEXES C (I*4) IM = ARRAY SUBSCRIPT USED FOR METASTABLE INDEXES C (I*4) I = GENERAL USE C C (L*4) LPART = .TRUE. => REQUESTED INPUT FILE: PARTIAL C OR METASTABLE POPULATION. C = .FALSE. => REQUESTED INPUT FILE: STANDARD C C (C*1) C1 = GENERAL USE 1-BYTE CHARACTER STRING. C (STORES METASTABLE STATE ORDER INDEX). C (C*5) CPOT = 'IPOT' C C (C*80) STRING()= STRINGS INTO WHICH LINES OF INPUT FILE ARE C READ TO ENABLE ITS FORMAT TO BE ESTABLISHED C AND CONTENTS READ. C 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: 05/03/91 (DIFFERENT FROM ADAS90 VERSION - REMOVED DSN OPEN) 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 - RENAMED TO XXIN80 FROM XXIN68 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----------------------------------------------------------------------- CHARACTER*12 CSTRGA(NDMET) CHARACTER*(*) DSNAME INTEGER IDE, IME, IMETR(NDMET) INTEGER IPRNT(NDMET), IPSYS(NDMET) INTEGER ITE, IUNIT, IZE, NDDEN INTEGER NDMET, NDTIN, NDZ1V, NPRNT LOGICAL LERROR, LSWIT REAL*8 AIPT(NDDEN,NDTIN,NDZ1V,NDMET) REAL*8 DENSR(NDDEN), EIA(250) REAL*8 TR(NDTIN), ZIPT(NDZ1V)