SUBROUTINE READ_LINE( UNIT_NUMBER, BUFFER ) C---------------------------------------------------------------------- C- C- Purpose and Methods : Read the next line from UNIT_NUMBER into BUFFER. C- Updates the common block integer LINE_NUMBER. C- C- Inputs : C- UNIT_NUMBER The IO unit number to read from C- common block integer C- LINE_NUMBER (* MODIFIED *) The current line number C- C- Outputs : C- BUFFER A character string to put the read in line into C- C- Controls: NONE C- C- Created 18-MAY-1990 MICHIGAN STATE UNIVERSITY, TRIGGER CONTROL SOFTWARE C- C---------------------------------------------------------------------- IMPLICIT NONE C---------------------------------------------------------------------- C C Global declarations C INCLUDE 'D0$LEVEL1:PARSE_TOKENS.PARAMS' INCLUDE 'D0$LEVEL1:PARSE_TOKENS.INC' C C Routine Arguments C INTEGER UNIT_NUMBER CHARACTER*133 BUFFER C C Local Variables C INTEGER IOSTAT INTEGER COUNT INTEGER ICHAR C C read in line, check for error and end of file C BUFFER = ' ' LINE_NUMBER = LINE_NUMBER + 1 READ ( UNIT_NUMBER, 20, END = 200, ERR = 300, IOSTAT=IOSTAT) & BUFFER 20 FORMAT (A) BUFFER (133:133) = ' ' IF (VERBOSE) WRITE (6, 30) LINE_NUMBER, BUFFER(1:80) 30 FORMAT ( ' Processing Line #', I4, ': ' , A) C CALL TO_UPPER(BUFFER) C GOTO 999 C C END OF FILE C 200 CONTINUE BUFFER = 'END_OF_FILE ' GOTO 999 C C ERROR C 300 CONTINUE CALL MESSAGE_OUT( MES_READ_FAILED, 0, ' ') LSM_IOSTAT = IOSTAT BUFFER = 'END_OF_FILE ' GOTO 999 C 999 RETURN END C C C SUBROUTINE TO_UPPER(BUFFER) C---------------------------------------------------------------------- C- C- Purpose and Methods : Translate lowercase characters in string BUFFER to C- uppercase. C- C- Inputs : BUFFER (*MODIFIED*) the string to change to uppercase. C- Outputs : BUFFER C- Controls: none C- C- Created 29-AUG-1990 MICHIGAN STATE UNIVERSITY, TRIGGER CONTROL SOFTWARE C- C---------------------------------------------------------------------- IMPLICIT NONE C---------------------------------------------------------------------- CHARACTER*(*) BUFFER C INTEGER COUNT C DO COUNT = 1, LEN(BUFFER) IF ((BUFFER(COUNT:COUNT) .GE. 'a') .AND. & (BUFFER(COUNT:COUNT) .LE. 'z')) THEN BUFFER(COUNT:COUNT) = CHAR(ICHAR( BUFFER(COUNT:COUNT)) - & (ICHAR('a') - ICHAR('A')) ) ENDIF END DO C 999 RETURN END