File: ANOVA.FT of Tape: Various/ETH/eth11-2
(Source file text) 

C	RT-11 FORTRAN SCIENTIFIC SUBROUTINE PACKAGE
C	DEC-11-XXXXX-A-LA
C
C
C
C
C
C
C
C
C
C
C	COPYRIGHT (C) 1974 BY DIGITAL EQUIPMENT CORPORATION
C	MAYNARD, MASSACHUSETTS  01754
C
C
C
C
C
C
C
C
C
C	THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE
C	WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT
C	BY DIGITAL EQUIPMENT CORPORATION.  DIGITAL EQUIPMENT
C	CORPORATION ASSUMES NO RESPONSIBILITY FOR ANY ERRORS
C	THAT MAY APPEAR IN THIS DOCUMENT.
C
C	THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO
C	THE PURCHASER UNDER A LICENSE FOR USE ON A SINGLE COMPUTER
C	SYSTEM AND CAN BE COPIED (WITH INCLUSION OF DIGITAL'S
C	COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT AS
C	MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
C
C	DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
C	FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT
C	THAT IS NOT SUPPLIED BY DIGITAL.
C
C
C
C
C
C
C
C
C
C
C
C
C	R. SHIELDS	OCTOBER 1974
C	ANOVA.FOR - SAMPLE PROGRAM FOR ANALYSIS OF VARIANCE
C	THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO THE
C	CUMULATIVE PRODUCT OF EACH FACTOR LEVEL PLUS ONE (LEVEL(I)+1)
C	FOR I=1 TO K, WHERE K IS THE NUMBER OF FACTORS...
	DIMENSION X(1600)
C	THE FOLLOWING DIMENSIONS MUST BE GREATER THAN OR EQUAL TO 2
C	TO THE K-TH POWER MINUS 1, ((2**K)-1)
	DIMENSION HEAD(6),LEVEL(6),ISTEP(6),KOUNT(6),LASTS(6)
	DIMENSION SUMSQ(63),NDF(63),SMEAN(63)
C	THE FOLLOWING DIMENSION IS USED TO PRINT FACTOR LABELS IN
C	ANALYSIS OF VARIANCE TABLE AND IS FIXED
	DIMENSION FMT(15)
1	FORMAT(A4,A2,I2,A4,3X,11(A1,I4)/(A1,I4,A1,I4,A1,I4,A1,I4,A1,I4))
2	FORMAT(////26H ANALYSIS OF VARIANCE.....A4,A2//)
3	FORMAT(//18H LEVELS OF FACTORS/(3X,A1,7X,I4))
4	FORMAT(////11H GRAND MEAN,F20.5////)
5	FORMAT(//10H SOURCE OF,18X,7HSUMS OF,10X,10HDEGREES OF,9X,4HMEAN
	1/10H VARIATION,18X,7HSQUARES,11X,7HFREEDOM,10X,7HSQUARES/)
6	FORMAT(2X,15A1,F20.5,10X,I6,F20.5)
7	FORMAT(/6H TOTAL,10X,F20.5,10X,I6)
8	FORMAT(12F6.0)
C
C	INPUT CHANNEL = IN, OUTPUT CHANNEL = IOUT
	IN=1
	IOUT=2
100	READ(IN,1)PR,PR1,K,BLANK,(HEAD(I),LEVEL(I),I=1,K)
C	PR=PROBLEM NUMBER, MAY BE ALPHAMERIC
C	PR1=PROBLEM NUMBER CONTINUED
C	K=NUMBER OF FACTORS
C	BLANK=BLANK FIELD
C	LEVEL=LEVELS OF FACTORS
	IF(K.EQ.0) STOP
C	PRINT PROBLEM NUMBER AND LEVEL OF FACTORS
	WRITE(IOUT,2) PR,PR1
	WRITE(IOUT,3) (HEAD(I),LEVEL(I),I=1,K)
C	CALCULATE TOTAL NUMBER OF DATA ELEMENTS
	N=LEVEL(1)
	DO 102 I=2,K
102	N=N*LEVEL(I)
C	READ ALL INPUT DATA
	READ(IN,8) (X(I),I=1,N)
	CALL AVDAT(K,LEVEL,N,X,L,ISTEP,KOUNT)
	CALL AVCAL(K,LEVEL,X,L,ISTEP,LASTS)
	CALL MEANQ(K,LEVEL,X,GMEAN,SUMSQ,NDF,SMEAN,ISTEP,KOUNT,LASTS)
C	PRINT GRAND MEAN
	WRITE(IOUT,4) GMEAN
C	PRINT ANALYSIS OF VARIANCE TABLE
	WRITE(IOUT,5)
	LL=(2**K)-1
	ISTEP(1)=1
	DO 105 I=2,K
105	ISTEP(I)=0
	DO 110 I=1,15
110	FMT(I)=BLANK
	NN=0
	SUM=0.0
120	NN=NN+1
	L=0
	DO 140 I=1,K
	FMT(I)=BLANK
	IF(ISTEP(I)) 130,140,130
130	L=L+1
	FMT(L)=HEAD(I)
140	CONTINUE
	WRITE(IOUT,6)(FMT(I),I=1,15),SUMSQ(NN),NDF(NN),SMEAN(NN)
	SUM=SUM+SUMSQ(NN)
	IF(NN-LL) 145,170,170
145	DO 160 I=1,K
	IF(ISTEP(I)) 147,150,147
147	ISTEP(I)=0
	GO TO 160
150	ISTEP(I)=1
	GO TO 120
160	CONTINUE
170	N=N-1
	WRITE(IOUT,7) SUM,N
	GO TO 100
	END