ADAS Subroutine d6scrp
SUBROUTINE D6SCRP( 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: D6SCRP ******************** 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: ADAS406 C C SUBROUTINE: C C INPUT : (C*80) 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 UNIX-IDL PORT: C C AUTHOR: WILLIAM OSBORN (TESSELLA SUPPORT SERVICES PLC) C C DATE: 07/06/96 C C VERSION: 1.1 DATE:07/06/96 C MODIFIED: WILLIAM OSBORN C - FIRST VERSION. USED SOME CODE FROM D5SCRP.FOR V1.3 IN C ADDING IRCODE PARAMETER. C VERSION: 1.2 DATE:27/06/96 C MODIFIED: WILLIAM OSBORN C - REMOVED UNUSED VARIABLES C VERSION: 1.3 DATE:27/06/96 C MODIFIED: WILLIAM OSBORN C - INCREASED LENGTH OF CLINE AND DSNPEC TO 120 C C----------------------------------------------------------------------- C C----------------------------------------------------------------------- CHARACTER CIMET(NDLINE,NDCOMP) CHARACTER CINDPH(NDLINE,NDCOMP) CHARACTER*80 DSNINC CHARACTER*120 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