SUBROUTINE SCREEN_LOG_WRITE(LUN) C---------------------------------------------------------------------- C- C- Purpose and Methods : Write a copy of the screen to the given dump file. C- C- Inputs : LUN The unit number to write to. C- Outputs : none C- Controls: none C- C- Created 1-JUL-1992 Philippe Laurens, Steven Klocek C- C---------------------------------------------------------------------- IMPLICIT NONE C INCLUDE 'LV1_MON_SCREEN.INC' C INTEGER LUN C INTEGER COUNT INTEGER ISTAT INTEGER TRULEN C IF (SCREEN_LOG_BUFFER_LINE .EQ. 0) GOTO 999 C OPEN ( FORM='FORMATTED', IOSTAT=ISTAT, FILE=SCREEN_LOG_FNAME, & STATUS= 'OLD', UNIT=LUN, ERR = 400, CARRIAGECONTROL = 'LIST', & ACCESS='APPEND') C C DO COUNT = 1, SCREEN_LOG_BUFFER_LINE WRITE (LUN, 600, IOSTAT = ISTAT, ERR = 300) & SCREEN_LOG_BUFFER(COUNT)(1:TRULEN(SCREEN_LOG_BUFFER(COUNT))) END DO CLOSE(LUN) SCREEN_LOG_BUFFER_LINE = 0 GOTO 999 C 300 CONTINUE CALL MSGSCR(ISTAT, 'SCREEN_LOG_WRITE') CALL ERRMSG('LOGFILE', 'SCREEN_LOG_WRITE', & 'Error writing to TRGMON screen log file', 'F') GOTO 999 C 400 CONTINUE CALL MSGSCR(ISTAT, 'SCREEN_LOG_WRITE') CALL ERRMSG('LOGFILE', 'SCREEN_LOG_WRITE', & 'Error opening TRGMON screen log file', 'W') SCREEN_LOG_BUFFER_LINE = 0 C 600 FORMAT( A ) C---------------------------------------------------------------------- 999 RETURN END C SUBROUTINE SCREEN_LOG_RECORD C---------------------------------------------------------------------- C- C- Purpose and Methods : Record the current screen so it may later be written C- to the log file. C- C- Inputs : Common block input C- Outputs : Common block output C- Controls: none C- C- Created 8-JUL-1992 Philippe Laurens, Steven Klocek C- C---------------------------------------------------------------------- IMPLICIT NONE C INCLUDE 'LV1_MON_SCREEN.INC' C INTEGER COUNT, LAST_LINE C LAST_LINE = 1 DO COUNT = 1, FILE_LINES IF (FILE_COPY(COUNT) .NE. ' ') LAST_LINE = COUNT END DO C SCREEN_LOG_BUFFER_LINE = SCREEN_LOG_BUFFER_LINE + 1 SCREEN_LOG_BUFFER(SCREEN_LOG_BUFFER_LINE) = ' ' SCREEN_LOG_BUFFER_LINE = SCREEN_LOG_BUFFER_LINE + 1 SCREEN_LOG_BUFFER(SCREEN_LOG_BUFFER_LINE) = & '-----------------------------------' & // '------------------------------------------' SCREEN_LOG_BUFFER_LINE = SCREEN_LOG_BUFFER_LINE + 1 SCREEN_LOG_BUFFER(SCREEN_LOG_BUFFER_LINE) = ' ' C DO COUNT = 1, LAST_LINE SCREEN_LOG_BUFFER_LINE = SCREEN_LOG_BUFFER_LINE + 1 SCREEN_LOG_BUFFER(SCREEN_LOG_BUFFER_LINE) = FILE_COPY(COUNT) END DO C---------------------------------------------------------------------- 999 RETURN END C C C SUBROUTINE SCREEN_LOG_FINISH(LUN) C---------------------------------------------------------------------- C- C- Purpose and Methods : Perform final processing and close log file. C- For the screen dump log, flush the accumulated lines to the file. C- C- Inputs : LUN The unit number to write to. C- Outputs : none C- Controls: none C- C- Created 1-JUL-1992 Philippe Laurens, Steven Klocek C- C---------------------------------------------------------------------- IMPLICIT NONE C INTEGER LUN C CALL SCREEN_LOG_WRITE(LUN) C---------------------------------------------------------------------- 999 RETURN END C C C SUBROUTINE SCREEN_LOG_START(LOG_FNAME, LUN, SUCCESS) C---------------------------------------------------------------------- C- C- Purpose and Methods : Create the log file and record the name for later C- opening. C- C- Inputs : LOG_FNAME The name of the file to open. C- LUN The unit number to write to. C- SUCCESS Success in opening the file C- Outputs : none C- Controls: none C- C- Created 1-JUL-1992 Philippe Laurens, Steven Klocek C- C---------------------------------------------------------------------- IMPLICIT NONE INCLUDE 'LV1_MON_SCREEN.INC' C CHARACTER*(*) LOG_FNAME INTEGER LUN LOGICAL SUCCESS C INTEGER ISTAT C SUCCESS = .TRUE. OPEN ( FORM='FORMATTED', IOSTAT=ISTAT, FILE=LOG_FNAME, & STATUS= 'NEW', UNIT=LUN, ERR = 300, CARRIAGECONTROL = 'LIST') CLOSE(LUN) GOTO 999 C 300 CONTINUE CALL MSGSCR(ISTAT, 'SCREEN_LOG_START') CALL ERRMSG('FILE_OPEN', 'SCREEN_LOG_START', & 'Could not open screen log file', 'W') SUCCESS = .FALSE. C---------------------------------------------------------------------- 999 RETURN END