10  COM N[64],T[64],G[64],J[64],N2,N6,N7,N8,A1,B1,C1,T1
20  COM R[64],W[64],D[10]
30  REM ***** AVR23+, VERSION 1, AUGUST 5, 1971        R.J.M. TAYLOR
40  REM ***** TRANSLATED FROM 'FORTRAN PROGRAMMING FOR THE BEHAVIORAL
50  REM ***** SCIENCES' BY D.J. VELDMAN
60  DIM K[64]
70  FILES M,L,SX,G
80  FOR N=1 TO N2
90  MAT M=ZER
100  FOR I8=1 TO 10
110  S[I8]=F[I8]=P[I8]=0
120  NEXT I8
130  FOR I=1 TO 128
140  READ #1,I
150  READ #2,I
160  MAT  PRINT #2;M
170  MAT  PRINT #1;M
180  NEXT I
190  IF N[N]<2 THEN 220
200  PRINT "INSUFFICIENT DATA FOR VARIABLE";N
210  GOTO 2210
220  REM
230  FOR I=1 TO 10
240  S[I]=A[I]=B[I]=C[I]=0
250  FOR J=1 TO 10
260  E[I,J]=H[I,J]=I[I,J]=0
270  NEXT J
280  NEXT I
290  D[1]=T[N]-1
300  D[10]=T[N]-T1
310  FOR I=1 TO N6
320  FOR J=1 TO N7
330  FOR K=1 TO N8
340  R=(I-1)*N7*N8+(J-1)*N8+K
350  R=R*2-1
360  READ #3,R
370  MAT  READ #3;J[N2]
380  READ #4,R
390  MAT  READ #4;G[N2]
400  READ #1,(I-1)*10+J
410  MAT  READ #1;M[10]
420  M[K]=G[N]
430  READ #1,(I-1)*10+J
440  MAT  PRINT #1;M
450  S[2]=S[2]+J[N]^2
460  A[I]=A[I]+J[N]
470  B[J]=B[J]+J[N]
480  C[K]=C[K]+J[N]
490  E[I,J]=E[I,J]+J[N]
500  H[I,K]=H[I,K]+J[N]
510  I[J,K]=I[J,K]+J[N]
520  READ #2,(I-1)*10+J
530  MAT  READ #2;L[10]
540  L[K]=J[N]
550  READ #2,(I-1)*10+J
560  MAT  PRINT #2;L
570  NEXT K
580  NEXT J
590  NEXT I
600  FOR I=1 TO N6
610  S[3]=S[3]+A[I]^2/(B1*C1)
620  A[I]=A[I]/(B1*C1)
630  FOR J=1 TO N7
640  S[6]=S[6]+E[I,J]^2/C1
650  E[I,J]=E[I,J]/C1
660  NEXT J
670  FOR K=1 TO N8
680  S[7]=S[7]+H[I,K]^2/B1
690  H[I,K]=H[I,K]/B1
700  NEXT K
710  NEXT I
720  FOR J=1 TO N7
730  S[4]=S[4]+B[J]^2/(A1*C1)
740  B[J]=B[J]/(A1*C1)
750  FOR K=1 TO N8
760  S[8]=S[8]+I[J,K]^2/A1
770  I[J,K]=I[J,K]/A1
780  NEXT K
790  NEXT J
800  C2=0
810  FOR K=1 TO N8
820  C2=C2+C[K]
830  S[5]=S[5]+C[K]^2/(A1*B1)
840  C[K]=C[K]/(A1*B1)
850  NEXT K
860  C2=C2*C2/T1
870  FOR I=2 TO 9
880  S[I]=(S[I]-C2)*T1/R[N]
890  NEXT I
900  S[6]=S[6]-S[3]-S[4]
910  S[7]=S[7]-S[3]-S[5]
920  S[8]=S[8]-S[4]-S[5]
930  S[9]=S[2]-S[3]-S[4]-S[5]-S[6]-S[7]-S[8]
940  S[10]=W[N]
950  S[1]=S[2]+S[10]
960  FOR I=1 TO 10
970  IF D[I] <= 0 THEN 990
980  S[I]=S[I]/D[I]
990  NEXT I
1000  FOR I=3 TO 9
1010  F[I]=S[I]/S[10]
1020  Q1=D[I]
1030  Q2=D[10]
1040  Q3=F[I]
1050  GOSUB 2230
1060  P[I]=P
1070  NEXT I
1080  PRINT '10'13'10'13'10'13
1090  FOR I8=1 TO 10
1100  S[I8]=FNB(S[I8])
1110  F[I8]=FNA(F[I8])
1120  P[I8]=FNA(P[I8])
1130  NEXT I8
1140  PRINT "ANALYSIS OF VARIABLE";N
1150  PRINT 
1160  PRINT "SOURCE        M.S.           D.F.         F-RATIO            P"
1170  PRINT 
1180  PRINT "TOTAL";TAB(13);S[1],D[1]
1190  PRINT "BETWEEN";TAB(13);S[2],D[2]
1200  PRINT "   A";TAB(13);S[3],D[3],F[3],P[3]
1210  PRINT "   B";TAB(13);S[4],D[4],F[4],P[4]
1220  IF N8 <= 1 THEN 1250
1230  PRINT "   C";TAB(13);S[5],D[5],F[5],P[5]
1240  PRINT 
1250  PRINT "  AB";TAB(13);S[6],D[6],F[6],P[6]
1260  IF N8 <= 1 THEN 1300
1270  PRINT "  AC";TAB(13);S[7],D[7],F[7],P[7]
1280  PRINT "  BC";TAB(13);S[8],D[8],F[8],P[8]
1290  PRINT " ABC";TAB(13);S[9],D[9],F[9],P[9]
1300  PRINT "WITHIN";TAB(13),S[10],D[10]
1310  PRINT '10'13"MEANS FOR ALL EFFECTS."'10'13
1320  PRINT "A MAIN"
1330  PRINT 
1340  FOR I1=1 TO N6
1350  PRINT FNA(A[I1]),
1360  NEXT I1
1370  PRINT '10'13'10'13
1380  PRINT "B MAIN"
1390  PRINT 
1400  FOR I1=1 TO N7
1410  PRINT FNA(B[I1]),
1420  NEXT I1
1430  IF N8 <= 1 THEN 1490
1440  PRINT '10'13'10'13"C MAIN"'10'13
1450  FOR I1=1 TO N8
1460  PRINT FNA(C[I1]),
1470  NEXT I1
1480  PRINT '10'13'10'13
1490  PRINT '10'13'10'13'10'13"A BY B"
1500  FOR I1=1 TO N6
1510  PRINT 
1520  PRINT "ROW #";I1
1530  FOR J1=1 TO N7
1540  PRINT FNA(E[I1,J1]),
1550  NEXT J1
1560  PRINT 
1570  NEXT I1
1580  IF N8=1 THEN 1990
1590  PRINT '10'13'10'13"A BY C"
1600  PRINT 
1610  FOR I1=1 TO N6
1620  PRINT "ROW #";I1
1630  PRINT 
1640  FOR J1=1 TO N8
1650  PRINT FNA(H[I1,J1]),
1660  NEXT J1
1670  PRINT 
1680  NEXT I1
1690  PRINT '10'13'10'13'10'13"B BY C"
1700  PRINT 
1710  FOR I1=1 TO N7
1720  PRINT "ROW #"I1
1730  FOR J1=1 TO N8
1740  PRINT FNA(I[I1,J1]),
1750  NEXT J1
1760  PRINT 
1770  NEXT I1
1780  PRINT '10'13'10'13
1790  PRINT "CELL MEANS   BLOCKS = C LEVELS."
1800  PRINT '10'13'10'13
1810  FOR K=1 TO N8
1820  FOR I=1 TO N6
1830  FOR J=1 TO N7
1840  READ #2,(I-1)*10+J
1850  MAT  READ #2;M[10]
1860  E[I,J]=M[K]
1870  NEXT J
1880  NEXT I
1890  PRINT "AB"'10'13
1900  FOR I1=1 TO N6
1910  PRINT "ROW #";I1
1920  FOR J1=1 TO N7
1930  PRINT FNA(E[I1,J1]),
1940  NEXT J1
1950  PRINT 
1960  NEXT I1
1970  PRINT '10'13'10'13
1980  NEXT K
1990  IF N[N]=0 THEN 2210
2000  PRINT '10'13"SUBJECTS PER CELL. BLOCKS =C LEVELS."
2010  PRINT 
2020  FOR K=1 TO N8
2030  FOR I=1 TO N6
2040  FOR J=1 TO N7
2050  READ #1,(I-1)*10+J
2060  MAT  READ #1;L[10]
2070  E[I,J]=L[K]
2080  NEXT J
2090  NEXT I
2100  PRINT "  AB"
2110  PRINT 
2120  FOR I1=1 TO N6
2130  PRINT " ROW # ";I1
2140  FOR J1=1 TO N7
2150  PRINT FNA(E[I1,J1]),
2160  NEXT J1
2170  PRINT 
2180  NEXT I1
2190  PRINT '10'13'10'13
2200  NEXT K
2210  NEXT N
2220  STOP 
2230  REM SUB PBRF
2240  P=1
2250  IF Q1*Q2*Q3=0 THEN 2420
2260  IF Q3<1 THEN 2310
2270  A9=Q1
2280  B9=Q2
2290  C9=Q3
2300  GOTO 2340
2310  A9=Q2
2320  B9=Q1
2330  C9=1/Q3
2340  A2=2/(9*A9)
2350  B2=2/(9*B9)
2360  Z=ABS(((1-B2)*C9^.333333-1+A2)/SQR(B2*C9^.666667+A2))
2370  IF B9 >= 4 THEN 2390
2380  Z=Z*(1+.08*Z^4/B9^3)
2390  P=.5/(1+Z*(.196854+Z*(.115194+Z*(.000344+Z*.019527))))^4
2400  IF Q3 >= 1 THEN 2420
2410  P=1-P
2420  RETURN 
2430  REM ROUND OFF ROUTINES
2440  DEF FNA()=.0001*INT(10000*+.5)
2450  DEF FNB()=.001*INT(1000*+.5)
2460  END 
