ADAS Subroutine d5scrp
SUBROUTINE D5SCRP( LRSCRP , LSNULL ,
& DSNINC , DSPECA ,
& NDLINE , NDCOMP , NDRAT , NDFILE ,
& NFILE , LFILE ,
& UID , GROUP , TYPE , EXT , ION ,
& MEMB , IZ0 ,
& NLINE , NCOMP ,
& IZION , IMET , CIMET , INDPH , CINDPH ,
& IFILE , TITL ,
& NRAT ,
& ILINE , JLINE , TITR , IRCODE
& )
C-----------------------------------------------------------------------
C
C ****************** FORTRAN77 SUBROUTINE: D5SCRP ********************
C
C PURPOSE: TO READ SCRIPT FILE AND ACCESS EMISSIVITY DATA
C ON SPECTRAL LINES REQUESTED FOR FURTHER PROCESSING IN
C EQUILIBRIUM IONISATION CODES.
C
C CALLING PROGRAM: ADAS405
C
C SUBROUTINE:
C
C INPUT : (C*120) DSNINC = SCRIPT DATA SET NAME (FULL MVS DSN)
C (IN FORM SUITABLE FOR DYNAMIC ALLOCATION)
C INPUT : (I*4) NDLINE = MAXIMUM NUMBER OF LINES ALLOWED
C INPUT : (I*4) NDCOMP = MAXIMUM NUMBER OF COMPONENT FOR EACH LINE
C INPUT : (I*4) NDRAT = MAXIMUM NUMBER OF LINE RATIOS ALLOWED
C INPUT : (I*4) NDFILE = MAXIMUM NUMBER OF EMISSIVITY FILES WHICH
C CAN BE SEARCHED
C
C OUTPUT: (L*4) LRSCRP = .TRUE. => SCRIPT FILE READ
C .FALSE. => SCRIPT FILE NOT READ
C OUTPUT: (L*4) LSNULL = .TRUE. => SCRIPT FILE SET TO NULL
C .FALSE. => SCRIPT FILE VALID
C OUTPUT: (C*120) DSPECA() = PHOTON EMISSIVITY SOURCE FILES
C OUTPUT: (I*4) NFILE = NUMBER OF PEC FILES TO BE SCANNED
C OUTPUT: (L*4) LFILE() = .TRUE. => PEC FILE EXISTS AND MATCHES
C .FALSE. => PEC FILE DOES NOT EXIST/MATCH
C OUTPUT: (C*6) UID() = USER IDENTIFIER OF PEC FILE
C OUTPUT: (C*8) GROUP() = GROUP IDENTIFIER OF PEC FILE
C OUTPUT: (C*5) TYPE() = TYPE IDENTIFIER OF PEC FILE
C OUTPUT: (C*3) EXT() = EXTENSION OF PEC FILE MEMBER NAME
C OUTPUT: (C*4) ION() = ION NAME OF PEC FILE MEMBER NAME
C OUTPUT: (C*8) MEMB() = MEMBER NAME OF PEC FILE
C OUTPUT: (I*4) NLINE = NUMBER OF LINES IDENTIFIED IN SCRIPT
C OUTPUT: (I*4) NCOMP() = NUMBER OF COMPONENTS OF SCRIPT LINE
C 1ST DIM: LINE INDEX
C OUTPUT: (I*4) IZION(,) = CHARGE STATE OF COMPONENT
C 1ST DIM: LINE INDEX
C 2ND DIM: COMPONENT INDEX
C OUTPUT: (I*4) IMET(,) = NUMBER OF COMPONENTS OF SCRIPT LINE
C 1ST DIM: LINE INDEX
C 2ND DIM: COMPONENT INDEX
C OUTPUT: (C*1) CIMET(,) = SIGN (+, BLANK OR -) OF METASTABLE
C 1ST DIM: LINE INDEX
C 2ND DIM: COMPONENT INDEX
C OUTPUT: (I*4) INDPH(,) = PEC FILE INDEX OF LINE COMPONENT
C 1ST DIM: LINE INDEX
C 2ND DIM: COMPONENT INDEX
C OUTPUT: (C*1) CINDPH(,)= DRIVER (E OR BLANK => ELECTRONS)
C (H => HYDROGEN )
C 1ST DIM: LINE INDEX
C 2ND DIM: COMPONENT INDEX
C OUTPUT: (I*4) IFILE(,) = INDEX OF PEC FILE IN FILE LIST
C 1ST DIM: LINE INDEX
C 2ND DIM: COMPONENT INDEX
C OUTPUT: (C*12) TITL(,) = TITLE FOR LINE COMPONENT
C 1ST DIM: LINE INDEX
C 2ND DIM: COMPONENT INDEX
C OUTPUT: (I*4) NRAT = NUMBER OF RATIOS IDENTIFIED IN SCRIPT
C OUTPUT: (I*4) ILINE() = INDEX OF NUMERATOR LINE FOR LINE RATIO
C OUTPUT: (I*4) JLINE() = INDEX OF DENOMINATOR LINE FOR LINE RATIO
C OUTPUT: (C*25) TITR() = TILE FOR LINE RATIO
C OUTPUT: (I*4) IRCODE = ERROR FLAG:
C 0 => SCRIPT FILE WAS READ OKAY
C 1 => SCRIPT FILE DOES NOT EXIST
C 2 => I/O ERROR READING THE SCRIPT FILE
C 3 => 1 OR MORE FILE NAMES IN SCRIPT FILE
C IS/ARE INVALID.
C
C (I*4) IUNT10 = PARAMETER = INPUT UNIT FOR DATA
C (L*4) OPEN10 = .TRUE. => FILE ALLOCATED TO UNIT 10.
C .FALSE. => NO FILE ALLOCATED TO UNIT 10.
C
C ROUTINES:
C ROUTINE SOURCE BRIEF DESCRIPTION
C -----------------------------------------------------------
C XXSLEN ADAS FIND NON-BLANK CHARACTERS IN STRING
C
C
C AUTHOR: H. P. SUMMERS, JET
C K1/1/57
C JET EXT. 4941
C
C DATE: 20/04/94
C
C IDL-UNIX PORT:
C VERSION: 1.1 DATE: 08/11/95
C MODIFIED: TIM HAMMOND
C - ADDED SCCS HEADER - FIRST VERSION
C
C VERSION: 1.2 DATE: 08/11/95
C MODIFIED: TIM HAMMOND
C - REMOVED SUPERFLUOUS VARIABLES
C
C VERSION: 1.3 DATE: 10/11/95
C MODIFIED: TIM HAMMOND
C - ADDED NEW ERROR CHECK VARIABLE IRCODE TO SEE
C WHETHER THE SCRIPT FILE WAS READ OKAY OR NOT.
C
C-----------------------------------------------------------------------
C
C-----------------------------------------------------------------------
CHARACTER CIMET(NDLINE,NDCOMP)
CHARACTER CINDPH(NDLINE,NDCOMP)
CHARACTER*120 DSNINC, DSPECA(NDFILE)
CHARACTER*3 EXT(NDFILE)
CHARACTER*8 GROUP(NDFILE)
CHARACTER*4 ION(NDFILE)
CHARACTER*8 MEMB(NDFILE)
CHARACTER*12 TITL(NDLINE,NDCOMP)
CHARACTER*25 TITR(NDRAT)
CHARACTER*5 TYPE(NDFILE)
CHARACTER*6 UID(NDFILE)
INTEGER IFILE(NDLINE,NDCOMP), ILINE(NDRAT)
INTEGER IMET(NDLINE,NDCOMP), INDPH(NDLINE,NDCOMP)
INTEGER IRCODE, IZ0, IZION(NDLINE,NDCOMP)
INTEGER JLINE(NDRAT), NCOMP(NDLINE)
INTEGER NDCOMP, NDFILE, NDLINE, NDRAT
INTEGER NFILE, NLINE, NRAT
LOGICAL LFILE(NDFILE), LRSCRP, LSNULL