C*********************************************************************** C SUBROUTINE HIST ASSUMES AN INPUT VECTOR OF N REAL NUMBERS ORDERED IN C INCREASING SEQUENCE AND A DESIGNATION OF A PARTITION OF THE REAL C LINE INTO K INTERVALS. THE FREQUENCE OF DATA ITEMS IN EACH INTERVAL C IS COMPUTED AND RETURNED BY THIS SUBROUTINE. C C NOTATION C A AN ARRAY OF REAL NUMBERS IN ASCENDING ORDER. C N THE SAMPLE SIZE. C X AN ORDERED VECTOR OF K REAL NUMBERS. C K THE NUMBER OF INTERVALS TO BE USED. C F A 1 BY K ARRAY OF THE TABULATED FREQUENCIES OF DATA IN THE C INTERVALS. C C THE X ARRAY SPECIFIES THE INTERVAL ENDPOINTS, USING THE CONVENTION C FOR NONEGATIVE NUMBERS OF INTERVALS OPEN ON THE LEFT AND CLOSED ON C THE RIGHT - (0,X(1)),(X(1),X(2)),...,(X(K-1),X(K)),WITH THE C EXCEPTION THAT ZERO IS INCLUDED IN THE FIRST INTERVAL. IT IS NOT C NECESSARY THAT THE F(I) SUM TO THE SAMPLE SIZE N(I.E., THE FREQ- C UENCIES COULD BE A SUBSET OF THE DATA). C C************************************** SUBROUTINE HIST (A,N,X,K,F) REAL A(*), X(*), F(*) DO 10 I=1,K 10 F(I)=0 M=1 DO 40 I=1,N 20 EPS=A(I)*1.E-7 EPS=AMAX1(EPS,1.E-15) EPS=AMIN1(EPS,1.E-5) IF(A(I).GT.(X(M)+EPS)) GO TO 30 F(M)=F(M)+1. GO TO 40 30 M=M+1 IF (M.EQ.K+1) RETURN GO TO 20 40 CONTINUE END