SUBROUTINE COUNT(X,N,XMIN,XMAX,IWRITE,XCOUNT) C C PURPOSE--THIS SUBROUTINE COMPUTES C THE NUMBER OF OBSERVATIONS C BETWEEN XMIN AND XMAX (INCLUSIVELY) C IN THE INPUT VECTOR X. C INPUT ARGUMENTS--X = THE SINGLE PRECISION VECTOR OF C (UNSORTED OR SORTED) OBSERVATIONS. C --N = THE INTEGER NUMBER OF OBSERVATIONS C IN THE VECTOR X. C --XMIN = THE SINGLE PRECISION VALUE C WHICH DEFINES THE LOWER LIMIT C (INCLUSIVELY) OF THE REGION C OF INTEREST. C --XMAX = THE SINGLE PRECISION VALUE C WHICH DEFINES THE UPPER LIMIT C (INCLUSIVELY) OF THE REGION C OF INTEREST. C --IWRITE = AN INTEGER FLAG CODE WHICH C (IF SET TO 0) WILL SUPPRESS C THE PRINTING OF THE C SAMPLE COUNT C AS IT IS COMPUTED; C OR (IF SET TO SOME INTEGER C VALUE NOT EQUAL TO 0), C LIKE, SAY, 1) WILL CAUSE C THE PRINTING OF THE C SAMPLE COUNT C AT THE TIME IT IS COMPUTED. C OUTPUT ARGUMENTS--XCOUNT = THE SINGLE PRECISION VALUE OF THE C COMPUTED SAMPLE COUNT. C OUTPUT--THE COMPUTED SINGLE PRECISION VALUE OF THE C SAMPLE COUNT. C PRINTING--NONE, UNLESS IWRITE HAS BEEN SET TO A NON-ZERO C INTEGER, OR UNLESS AN INPUT ARGUMENT ERROR C CONDITION EXISTS. C RESTRICTIONS--THERE IS NO RESTRICTION ON THE MAXIMUM VALUE C OF N FOR THIS SUBROUTINE. C OTHER DATAPAC SUBROUTINES NEEDED--NONE. C FORTRAN LIBRARY SUBROUTINES NEEDED--NONE. C MODE OF INTERNAL OPERATIONS--SINGLE PRECISION. C LANGUAGE--ANSI FORTRAN. C REFERENCES--SNEDECOR AND COCHRAN, STATISTICAL METHODS, C EDITION 6, 1967, PAGES 207-213. C --DIXON AND MASSEY, INTRODUCTION TO STATISTICAL C ANALYSIS, EDITION 2, 1957, PAGES 81-82, 228-231. C WRITTEN BY--JAMES J. FILLIBEN C STATISTICAL ENGINEERING LABORATORY (205.03) C NATIONAL BUREAU OF STANDARDS C WASHINGTON, D. C. 20234 C PHONE: 301-921-2315 C ORIGINAL VERSION--FEBRUARY 1976. C C--------------------------------------------------------------------- C DIMENSION X(1) C IPR=6 C C CHECK THE INPUT ARGUMENTS FOR ERRORS C IF(N.LT.1)GOTO50 IF(N.EQ.1)GOTO55 IF(XMIN.EQ.XMAX)GOTO80 HOLD=X(1) DO60I=2,N IF(X(I).NE.HOLD)GOTO90 60 CONTINUE WRITE(IPR, 9)HOLD XCOUNT=0.0 RETURN 50 WRITE(IPR,15) WRITE(IPR,47)N RETURN 55 WRITE(IPR,18) XCOUNT=0.0 RETURN 80 WRITE(IPR,26) WRITE(IPR,49)XMIN XCOUNT=0.0 RETURN 90 CONTINUE 9 FORMAT(1H ,108H***** NON-FATAL DIAGNOSTIC--THE FIRST INPUT ARGUME 1NT (A VECTOR) TO THE COUNT SUBROUTINE HAS ALL ELEMENTS = ,E15.8,6 1H *****) 15 FORMAT(1H , 91H***** FATAL ERROR--THE SECOND INPUT ARGUMENT TO THE 1 COUNT SUBROUTINE IS NON-POSITIVE *****) 18 FORMAT(1H ,100H***** NON-FATAL DIAGNOSTIC--THE SECOND INPUT ARGUME 1NT TO THE COUNT SUBROUTINE HAS THE VALUE 1 *****) 26 FORMAT(1H ,46H***** FATAL ERROR--THE THIRD AND FOURTH INPUT , 1 48HARGUMENTS TO THE COUNT SUBROUTINE ARE IDENTICAL) 47 FORMAT(1H , 35H***** THE VALUE OF THE ARGUMENT IS ,I8 ,6H *****) 49 FORMAT(1H , 37H***** THE VALUE OF THE ARGUMENTS ARE ,E15.7 ,6H * 1****) C C-----START POINT----------------------------------------------------- C AN=N XCOUNT=0.0 ISUM=0 DO100I=1,N IF(X(I).LT.XMIN.OR.XMAX.LT.X(I))GOTO100 ISUM=ISUM+1 100 CONTINUE XCOUNT=ISUM C 101 IF(IWRITE.EQ.0)RETURN WRITE(IPR,999) WRITE(IPR,105)N,XMIN,XMAX,XCOUNT 105 FORMAT(1H ,23HTHE NUMBER (OUT OF THE ,I6,31H OBSERVATIONS) IN THE 1INTERVAL ,E15.7,4H TO ,E15.7,4H IS ,E15.7) 999 FORMAT(1H ) RETURN END