SUBROUTINE RATES_LOG_WRITE(LUN) C---------------------------------------------------------------------- C- C- Purpose and Methods : Write the current rates histogram to the log file. C- C- Inputs : LUN The unit number to write to. C- Outputs : none C- Controls: none C- C- Created 9-JUL-1992 Philippe Laurens, Steven Klocek C- C---------------------------------------------------------------------- IMPLICIT NONE C INCLUDE 'LV1_MON_SCREEN.INC' INCLUDE 'LV1_MPOOL.PARAMS' INCLUDE 'LV1_MPOOL_FORMATTED.INC' C INTEGER LUN C INTEGER ISTAT, CYCLE C CALL HROPEN(LUN, 'TRGMONFL', RATES_LOG_FNAME, 'U', 1024, ISTAT) IF (ISTAT .NE. 0) THEN CALL MSGSCR(ISTAT, 'Error updating rates Ntuple log file') GOTO 999 ENDIF C CALL HCDIR('//TRGMONFL/TRGMON', ' ') CALL HSCR(RATES_HIST_NUM, 1, ' ') CALL HROUT(RATES_HIST_NUM, CYCLE, ' ') CALL HREND('TRGMONFL') CLOSE(LUN) C C---------------------------------------------------------------------- 999 RETURN END C C C SUBROUTINE RATES_LOG_RECORD C---------------------------------------------------------------------- C- C- Purpose and Methods : Record a rates N-tuple in memory. C- C- Inputs : Common block input C- Outputs : HBOOK common output C- Controls: none C- C- Created 9-JUL-1992 Philippe Laurens, Steven Klocek C- C---------------------------------------------------------------------- IMPLICIT NONE C INCLUDE 'LV1_MON_SCREEN.INC' INCLUDE 'LV1_MPOOL.PARAMS' INCLUDE 'LV1_MPOOL_FORMATTED.INC' C REAL LAST_DELTA_TIME REAL DAY_OFFSET C SAVE LAST_DELTA_TIME, DAY_OFFSET DATA LAST_DELTA_TIME / 0.0 /, DAY_OFFSET / 0.0 / C C NTUP_DELTA_TIME = SECNDS(NTUP_START_TIME) IF (NTUP_DELTA_TIME .LT. NTUP_LAST_TIME) THEN NTUP_DAY_OFFSET = NTUP_DAY_OFFSET + 60. * 60. * 24. ENDIF NTUP_LAST_TIME = NTUP_DELTA_TIME NTUP_DELTA_TIME = NTUP_DELTA_TIME + NTUP_DAY_OFFSET CALL HFN(RATES_HIST_NUM, NTUP_ARRAY) C---------------------------------------------------------------------- 999 RETURN END C C C SUBROUTINE RATES_LOG_FINISH(LUN) C---------------------------------------------------------------------- C- C- Purpose and Methods : Perform final processing and close log file. C- For the rates log, write a current copy of the ntuple to the file. C- Then delete the Ntuple from memory. C- C- Inputs : LUN The unit number to write to. C- Outputs : none C- Controls: none C- C- Created 9-JUL-1992 Philippe Laurens, Steven Klocek C- C---------------------------------------------------------------------- IMPLICIT NONE INCLUDE 'LV1_MON_SCREEN.INC' C INTEGER LUN C CALL RATES_LOG_WRITE(LUN) CALL HDELET(RATES_HIST_NUM) C---------------------------------------------------------------------- 999 RETURN END C C C SUBROUTINE RATES_LOG_START(LOG_FNAME, LUN, SUCCESS) C---------------------------------------------------------------------- C- C- Purpose and Methods : Create the log file and the histogram in memory. C- C- Inputs : LOG_FNAME The name of the file to open C- LUN The unit number to use C- SUCCESS Whether the file was successfully opened C- Outputs : none C- Controls: none C- C- Created 9-JUL-1992 Philippe Laurens, Steven Klocek C- C---------------------------------------------------------------------- IMPLICIT NONE C INCLUDE 'LV1_MON_SCREEN.INC' INCLUDE 'LV1_MPOOL.PARAMS' INCLUDE 'LV1_MPOOL_FORMATTED.INC' C CHARACTER*(*) LOG_FNAME INTEGER LUN LOGICAL SUCCESS C INTEGER ISTAT INTEGER CYCLE C CHARACTER*8 TAGS(1 + 32*3) DATA TAGS / 'Delt Sec', & 'Fire_00', 'Fire_01', 'Fire_02', 'Fire_03', 'Fire_04', & 'Fire_05', 'Fire_06', 'Fire_07', 'Fire_08', 'Fire_09', & 'Fire_10', 'Fire_11', 'Fire_12', 'Fire_13', 'Fire_14', & 'Fire_15', 'Fire_16', 'Fire_17', 'Fire_18', 'Fire_19', & 'Fire_20', 'Fire_21', 'Fire_22', 'Fire_23', 'Fire_24', & 'Fire_25', 'Fire_26', 'Fire_27', 'Fire_28', 'Fire_29', & 'Fire_30', 'Fire_31', & 'Expos_00', 'Expos_01', 'Expos_02', 'Expos_03', 'Expos_04', & 'Expos_05', 'Expos_06', 'Expos_07', 'Expos_08', 'Expos_09', & 'Expos_10', 'Expos_11', 'Expos_12', 'Expos_13', 'Expos_14', & 'Expos_15', 'Expos_16', 'Expos_17', 'Expos_18', 'Expos_19', & 'Expos_20', 'Expos_21', 'Expos_22', 'Expos_23', 'Expos_24', & 'Expos_25', 'Expos_26', 'Expos_27', 'Expos_28', 'Expos_29', & 'Expos_30', 'Expos_31', & 'Andor_00', 'Andor_01', 'Andor_02', 'Andor_03', 'Andor_04', & 'Andor_05', 'Andor_06', 'Andor_07', 'Andor_08', 'Andor_09', & 'Andor_10', 'Andor_11', 'Andor_12', 'Andor_13', 'Andor_14', & 'Andor_15', 'Andor_16', 'Andor_17', 'Andor_18', 'Andor_19', & 'Andor_20', 'Andor_21', 'Andor_22', 'Andor_23', 'Andor_24', & 'Andor_25', 'Andor_26', 'Andor_27', 'Andor_28', 'Andor_29', & 'Andor_30', 'Andor_31' / C CHARACTER*8 TIMEBUF CHARACTER*9 DATEBUF C SUCCESS = .TRUE. NTUP_START_TIME = SECNDS(0.0) CALL DATE(DATEBUF) CALL TIME(TIMEBUF) C CALL HROPEN(LUN, 'TRGMONFL', LOG_FNAME, 'N', 1024, ISTAT) IF (ISTAT .NE. 0) THEN CALL MSGSCR(ISTAT, 'Error Opening Rates Ntuple log file') SUCCESS = .FALSE. GOTO 999 ENDIF C CALL HMDIR('//TRGMONFL/TRGMON', 'S') C CALL HBOOKN(RATES_HIST_NUM, & 'Specific Trigger Rates Obtained From TRGMON ' & // DATEBUF // ' ' // TIMEBUF, & 1 + 32 * 3, ' ', (1+32*3)*2*5, ! => 5 Minutes per bank using defaults & TAGS ) C CALL HROUT(0, CYCLE, ' ') CALL HREND('TRGMONFL') CALL CLOSE(LUN) C---------------------------------------------------------------------- 999 RETURN END