C Not part of Numerical Recipes C NUMVALS - Number of Unique values SUBROUTINE IMODE (IDATA,N,MODE,MODE_CNT,NUMVALS,IERR) INTEGER*2 IDATA(300), N, MODE, MODE_CNT, NUMVALS, IERR, 2 J, PREV_MODE, PREV_MODE_CNT IERR = 0 MODE=IDATA(1) MODE_CNT=1 PREV_MODE=IDATA(1) PREV_MODE_CNT=1 IERR=0 NUMVALS=1 DO 21 J=2,N IF (IDATA(J).EQ.MODE) THEN MODE_CNT=MODE_CNT + 1 GOTO 21 ENDIF NUMVALS=NUMVALS+1 IF (MODE_CNT.GT.PREV_MODE_CNT) THEN PREV_MODE=MODE PREV_MODE_CNT=MODE_CNT ENDIF MODE=IDATA(J) MODE_CNT=1 21 CONTINUE IF (PREV_MODE_CNT.GT.MODE_CNT) THEN MODE=PREV_MODE MODE_CNT=PREV_MODE_CNT ENDIF IF ((PREV_MODE_CNT.EQ.MODE_CNT) 2 .AND.(MODE.NE.PREV_MODE)) THEN IERR=2 C Multiple Modes ENDIF RETURN END