SUBROUTINE DRAW_GLOBAL_ALLOC() C---------------------------------------------------------------------- C- C- Purpose and Methods : Draws the `Global Allocated' screen of the monitor C- program. C- C- Inputs : none C- Outputs : screen output C- Controls: none C- C---------------------------------------------------------------------- C- Created 11-OCT-1990 MICHIGAN STATE UNIVERSITY, TRIGGER CONTROL SOFTWARE C- Updated 30-APR-1991 Added events transferred for each spec. trig. C- Updated 17-MAR-1992 Philippe Laurens, Steven Klocek C- Added Global Exposition percentage and other new C- items. C- Updated 2-JUL-1992 Philippe Laurens, Steven Klocek C- Display ST Events Transferred rather than ST C- Fired count. C- C---------------------------------------------------------------------- IMPLICIT NONE INCLUDE 'LV1_MPOOL.PARAMS' INCLUDE 'LV1_MPOOL_DERIVED.INC' INCLUDE 'LV1_MPOOL_FORMATTED.INC' INCLUDE 'LV1_MON_SCREEN.INC' INCLUDE 'LV1_MON_SCREEN_LAYOUT.PARAMS' C CHARACTER*132 BUFFER INTEGER TRIGGER_COUNT INTEGER COUNT REAL TEMPREAL INTEGER TSEC, TMIN, THOUR, TDAY C C Draw the header C CALL DRAW_GLOBAL_HEADER C IF (GLOB_L15_DATA.L15_RUNNING .EQV. .TRUE.) THEN CALL PUT_STRING(GA_L15_SWITCH_L, GA_L15_SWITCH_C, & '( for L1.5 Display)') ELSE CALL PUT_STRING(GA_L15_SWITCH_L, GA_L15_SWITCH_C, & ' ') ENDIF C C Print info on each specific trigger C TRIGGER_COUNT = 0 DO COUNT = TRG_NUM_MIN, TRG_NUM_MAX IF (TRIGGER_DATA(COUNT).ALLOCATED) THEN BUFFER = ' | | | | | | ' & //'| | | | | |' C C The trigger number C CALL INTTOSTR(COUNT, & BUFFER(GA_SPECTRIG_NUM_C:GA_SPECTRIG_NUM_E), 1) C C Firing Rate C TEMPREAL = SPTRG_FIRE_RATE(COUNT) CALL BUILD_REAL_STRING(TEMPREAL, 2, & BUFFER(GA_TRGFIRE_C:GA_TRGFIRE_E)) C C Andor Rate C TEMPREAL = TRIGGER_DATA(COUNT).ANDOR_FIRE_RATE CALL BUILD_REAL_STRING(TEMPREAL, 2, & BUFFER(GA_ANDOR_C:GA_ANDOR_E)) C C Prescaling ratio C CALL INTTOSTR(TRIGGER_DATA(COUNT).PRSCL_RATIO, & BUFFER(GA_PRSCL_C:GA_PRSCL_E), 1) C C Level 1.5 Reject C CALL BUILD_PERCENT_STRING( & TRIGGER_DATA(COUNT).ST_L15_REJECT_PCT, & 1, BUFFER(GA_ST_REJ_C:GA_ST_REJ_E)) C C Events Transferred C IF (TRIGGER_DATA(COUNT).EVENT_TRANS_COUNT_GIGAS & .NE. 0) THEN BUFFER(GA_SPTRG_EVEN_TRANSF_C:GA_SPTRG_EVEN_TRANSF_E) & = '******' ELSE CALL INTTOSTR(TRIGGER_DATA(COUNT).EVENT_TRANS_COUNT, & BUFFER(GA_SPTRG_EVEN_TRANSF_C:GA_SPTRG_EVEN_TRANSF_E), 1) ENDIF C C Exposition % C CALL BUILD_PERCENT_STRING( & TRIGGER_DATA(COUNT).GLOB_EXPOS_PERCENT, & 1, BUFFER(GA_GLOB_DEADT_C:GA_GLOB_DEADT_E) ) C C Front End Busy % C CALL BUILD_PERCENT_STRING(TRIGGER_DATA(COUNT).FEV_PERCENT, 1, & BUFFER(GA_FEBUSY_C:GA_FEBUSY_E)) C C Level 2 Busy % C CALL BUILD_PERCENT_STRING( & TRIGGER_DATA(COUNT).LEV20V_PERCENT, 1, & BUFFER(GA_LEV2BUSY_C:GA_LEV2BUSY_E)) CC CC Autodisable % CC C CALL BUILD_PERCENT_STRING( C & TRIGGER_DATA(COUNT).AUTOV_PERCENT, 1, C & BUFFER(GA_AUTODIS_C:GA_AUTODIS_E)) C C Total AndOr terms C CALL INTTOSTR(TRIGGER_DATA(COUNT).NUM_ANDOR_ACTIVE, & BUFFER(GA_TOTANDOR_C:GA_TOTANDOR_E), 1) C C Total Start Digitize C CALL INTTOSTR(TRIGGER_DATA(COUNT).NUM_ST_DIG, & BUFFER(GA_STDIG_C:GA_STDIG_E), 1) C C Total Watch Busy (FE Busy) C CALL INTTOSTR(TRIGGER_DATA(COUNT).NUM_WATCHBUSY, & BUFFER(GA_WATBUSY_C:GA_WATBUSY_E), 1) C C L1.5 Trigger? C IF (TRIGGER_DATA(COUNT).IS_L15 .EQV. .TRUE.) THEN BUFFER(GA_ST_L15_C:GA_ST_L15_E) = 'L1.5' ENDIF C C Disabled? C IF (TRIGGER_DATA(COUNT).GLOBV_PROG .EQV. .TRUE.) THEN BUFFER(GA_TRGDIS_C:GA_TRGDIS_E) = 'Disbl' ENDIF C C Have created a line, now put it on the screen C CALL PUT_STRING(PS_LIST,0, BUFFER(1:80)) C TRIGGER_COUNT = TRIGGER_COUNT + 1 C ENDIF END DO C C C CALL PUT_LIST(GA_ALLOC_START_L, 1) C CALL SETSCROLL(1, LINES) C CALL MOVE_CURSOR_SAFE() C---------------------------------------------------------------------- 999 CONTINUE CALL FLUSH_SCREEN() RETURN END