SUBROUTINE L1_EXTRACT_5BYTE_SCALER(LEVEL1_CRATE, DBLOCK_OFFSET, & UNITS, GIGAS) C---------------------------------------------------------------------- C- C- Purpose and Methods : Extract a 5 byte scaler from the Level 1 Data Block C- given its offset into the Data Block. The offset is the one given in C- D0 Note 967. C- C- Inputs : LEVEL1_CRATE The first word of the Level 1 Crate. C- DBLOCK_OFFSET The offset into the Data Block as given in D0 C- Note 967. C- Outputs : UNITS The number of events transferred MOD 2**30 C- GIGAS The number of events transferred / 2** 30 C- Controls: none C- C- Created 19-MAR-1992 Philippe Laurens, Steven Klocek C- Replace the TRGMON routines NUM_EVENTS_TRANSFERRED and C- NUM_SPEC_TRIG_FIRED. C- C---------------------------------------------------------------------- IMPLICIT NONE C INTEGER*2 LEVEL1_CRATE(1:*) INTEGER DBLOCK_OFFSET C INTEGER UNITS INTEGER GIGAS C C The Length of the crate header in INTEGER*4. This should actually be C taken from a parameter file. INTEGER CRATE_HEADER_LENGTH PARAMETER (CRATE_HEADER_LENGTH = 7) C UNITS = 0 GIGAS = 0 C CALL MVBITS(LEVEL1_CRATE( CRATE_HEADER_LENGTH*2 & + DBLOCK_OFFSET ), & 0, 8, UNITS, 0 ) CALL MVBITS(LEVEL1_CRATE( CRATE_HEADER_LENGTH*2 & + DBLOCK_OFFSET + 1), & 0, 8, UNITS, 8 ) CALL MVBITS(LEVEL1_CRATE( CRATE_HEADER_LENGTH*2 & + DBLOCK_OFFSET + 2), & 0, 8, UNITS, 16) CALL MVBITS(LEVEL1_CRATE( CRATE_HEADER_LENGTH*2 & + DBLOCK_OFFSET + 3), & 0, 6, UNITS, 24) CALL MVBITS(LEVEL1_CRATE( CRATE_HEADER_LENGTH*2 & + DBLOCK_OFFSET + 3), & 6, 2, GIGAS, 0 ) CALL MVBITS(LEVEL1_CRATE( CRATE_HEADER_LENGTH*2 & + DBLOCK_OFFSET + 4), & 0, 8, GIGAS, 2) C C---------------------------------------------------------------------- 999 RETURN END