SUBROUTINE READ_FOREIGN_SCALER_RCP C---------------------------------------------------------------------- C- C- Purpose and Methods : Read the Foreign Scaler display RCP file and decode C- it. C- C- Inputs : file input C- Outputs : common block output C- Controls: none C- C- Created 28-OCT-1992 Philippe Laurens, Steven Klocek C- C---------------------------------------------------------------------- IMPLICIT NONE INCLUDE 'LV1_MPOOL.PARAMS' INCLUDE 'LV1_MON_SCREEN.INC' C PARAMETER FILE = 'TRGMON_FS_RCP' PARAMETER KEY = 'TRGMON_FOREIGN_SCALERS' C INTEGER IERR, SIZE, SLEN, OFFSET, ISTAT, NUM_BAD CHARACTER*80 BUFFER C NUM_FOREIGN_SCALERS = 0 CALL INRCP(FILE, IERR) IF (IERR .NE. 0) THEN CALL OUTMSG( & ' Could not open Foreign Scaler description file "' & // FILE // '"' ) CALL WAITIT(2.0) GOTO 999 ENDIF CALL INRCPE(FILE//'E', IERR) C CALL EZPICK(FILE) CALL EZGET_SIZE(KEY, SIZE, IERR) IF (IERR .NE. 0) GOTO 999 OFFSET = 1 NUM_BAD = 0 C DO WHILE (.TRUE.) NUM_FOREIGN_SCALERS = NUM_FOREIGN_SCALERS + 1 IF (NUM_FOREIGN_SCALERS .GT. FOREIGN_MAX) GOTO 200 CALL EZGETA(KEY, OFFSET, OFFSET, 1, & FOREIGN_SCALERS_INDICES(NUM_FOREIGN_SCALERS), IERR) IF (IERR .NE. 0) GOTO 200 C OFFSET = OFFSET + 1 CALL EZGETS(KEY, NUM_FOREIGN_SCALERS+NUM_BAD, & FOREIGN_SCALERS_NAMES(NUM_FOREIGN_SCALERS), SLEN, IERR) FOREIGN_SCALERS_NAMES(NUM_FOREIGN_SCALERS) = & FOREIGN_SCALERS_NAMES(NUM_FOREIGN_SCALERS)(1:MIN(SLEN,80)) IF (IERR .NE. 0) GOTO 200 OFFSET = OFFSET + (SLEN + 3) / 4 C C Check for bad lines C IF ((FOREIGN_SCALERS_INDICES(NUM_FOREIGN_SCALERS) & .LT. FOREIGN_MIN) .OR. & (FOREIGN_SCALERS_INDICES(NUM_FOREIGN_SCALERS) & .GT. FOREIGN_MAX)) THEN CALL ERRMSG('BAD FOREIGN1', 'READ_FOREIGN_SCALER_RCP', & 'Bad Foreign Scaler Description parameter', 'W') 300 FORMAT( I6, X, A) WRITE (BUFFER, 300, IOSTAT=ISTAT) & FOREIGN_SCALERS_INDICES(NUM_FOREIGN_SCALERS), & FOREIGN_SCALERS_NAMES(NUM_FOREIGN_SCALERS)(1:MIN(80,SLEN)) CALL ERRMSG('BAD FOREIGN2', 'READ_FOREIGN_SCALER_RCP', & BUFFER, 'W') CALL WAITIT(2.0) NUM_BAD = NUM_BAD + 1 NUM_FOREIGN_SCALERS = NUM_FOREIGN_SCALERS - 1 ENDIF IF (OFFSET .GT. SIZE) GOTO 200 END DO C 200 CONTINUE C CALL EZRSET C---------------------------------------------------------------------- 999 RETURN END