10  COM X[103,22],M[19,19],U[19,19],Q[20],V[20],P[78]
30  COM M$[60],N$[72]
40  COM N,K,N8,K8,N9,K9,Q9,Q7,Q5,Q4,Q3,Q2,Q1
45  COM I3,I4,U9,X$[20]
46  COM E$[4],C$[7],N1,K1,M,R1,R2,V2,C2
50  REM:10JUN74
60  REM;SUBPROGRAM #2 OF ENRA (Q1=1) AND EOBR (Q1=2)
150  DIM D$[60],A$[60],A[20]
160  FILES *
170  ASSIGN C$,1,Q8
175  IF  END #1 THEN 9994
180  V2=0
1310  PRINT 
1312  IF Q9<3 THEN 1320
1314  PRINT "* ENTER HOW MANY COL(S). ? ";
1316  GOTO 1330
1320  PRINT "* HOW MANY COLUMNS FROM THE '";C$;"' DATA MATRIX"
1322  PRINT "   DO YOU WANT TO ENTER IN THE IDA DATA MATRIX ? ";
1330  ENTER 30,Q8,K3
1340  PRINT 
1350  IF Q8>0 THEN 1410
1360  PRINT "YOU MAY ENTER AS MANY AS ";K9-1
1370  PRINT "BUT IF YOU ENTER LESS THAN";K9-1;"YOU WILL HAVE 1 COLUMN"
1380  PRINT "TO SAVE OBS. #'S IN."
1390  PRINT "TRY AGAIN!"'7
1400  GOTO 1310
1410  IF K3=0 THEN 9996
1420  IF K3>0 AND K3 <= K9-1 AND K3=INT(K3) THEN 1450
1430  PRINT "ONLY";K9-1;"IDA COL(S). AVAILABLE WITH CURRENT DIM."
1440  GOTO 1390
1450  PRINT 
1460  GOTO Q9 OF 1470,1500,1520
1470  PRINT "FOR EACH OF THE";K3;"COLUMNS FROM THE '";C$"' DATA MATRIX"
1480  PRINT "YOU WISH TO ENTER IN THE IDA DATA MATRIX, GIVE NUMBERS,"
1485  PRINT "SEPARATED BY COMMAS :";
1490  GOTO 1530
1500  PRINT "NUMBERS, SEPARATED BY COMMAS, FOR EACH OF THE";K3;"COL(S)."
1510  GOTO 1530
1520  PRINT "SELECTED '";C$;"' COL. #'S ARE ";
1530  MAT A=ZER[K3]
1540  MAT  INPUT A
1550  GOTO 4000
1555  PRINT 
1560  PRINT "SELECTED '";C$"' COLUMNS ARE:"
1570  IMAGE 2X3D,2X6A
1580  PRINT "NUMBER  NAME"
1590  K=K3
1600  FOR J=1 TO K3
1610  P[J]=A[J]
1620  NEXT J
1630  IF R2=0 THEN 1730
1640  FOR J=1 TO K3
1650  Z=A[J]
1660  GOSUB 3600
1670  GOSUB 3560
1680  A$=D$[6*X-5,6*X]
1690  GOSUB 3400
1700  PRINT  USING 1570;Z,A$
1710  NEXT J
1720  GOTO 1800
1730  D$="0123456789"
1740  FOR J=1 TO K3
1750  Z=A[J]
1760  GOSUB 5000
1770  GOSUB 3400
1780  PRINT  USING 1570;Z,A$
1790  NEXT J
1800  Q3=1
1810  IF Q1=2 THEN 1965
1812  PRINT 
1814  PRINT "'";C$;"' HAS";N1;"ROWS"
1822  Q[8]=N1
1824  I3=1
1826  I4=N1
1828  PRINT 
1829  IF N1>N9 THEN 2030
1830  IF Q9<3 THEN 1860
1840  PRINT "ENTER FROM ALL OF";Q[8];"ROWS ";
1850  GOTO 1870
1860  PRINT "WANT TO ENTER DATA FROM ALL THESE";Q[8];"ROWS,";I3;"TO";I4;
1870  INPUT D$
1880  IF D$[1,1]="N" THEN 2028
1882  IF Q[8] <= N9 THEN 1915
1884  PRINT "YOU WILL HAVE TO USE 'RDIM' TO REDIMENSION THE IDA DATA MATRIX."
1885  D1=(K+3)*(Q[8]+3)
1886  D2=D1+Q[8]+3
1888  IF D2>2266 THEN 1892
1889  PRINT "TO";Q[8];"ROWS."
1890  GOTO 1900
1892  IF D1>2266 THEN 1895
1893  PRINT "BUT CAN'T HAVE MORE THAN";K;"COL(S). WITH";Q[8];"ROWS."
1894  GOTO 1900
1895  PRINT "CAN'T HAVE";K;"COL(S). WITH";Q[8];"ROWS."
1900  GOSUB 1990
1905  IF D$[1,1]#"N" THEN 9996
1910  GOTO 2028
1914  REM; SET Q1=2 AND COPY BLOCK OF OBS.#'S IN COL.K9+1 OF X MAT
1915  MAT X=ZER[N9+3,P[63]+K9+2]
1920  N0=0
1930  FOR I=I3 TO I4
1932  N0=N0+1
1940  X[N0,K9+1]=I
1950  NEXT I
1960  N=N0
1965  MAT U=ZER[V2,1]
1967  Q1=2
1970  GOTO 9909
1975  REM*******
1990  PRINT "IDA DIM. ARE "N9" X "K9-1". WANT TO RDIM ";
2000  INPUT D$
2010  IF D$[1,1]="N" THEN 2025
2020  GOTO 9996
2025  RETURN 
2026  REM**********
2028  PRINT 
2030  PRINT "WANT TO SELECT SUBSAMPLE FROM ALL";Q[8];"ROWS,";I3;"TO";I4;
2032  INPUT D$
2034  IF D$[1,1]="N" THEN 2100
2036  GOTO 2200
2100  PRINT 
2105  IF Q9=3 THEN 2120
2110  PRINT "FOR BLOCK OF ROWS YOU WISH TO SAMPLE,"
2115  PRINT "GIVE TWO NUMBERS, SEPARATED BY A COMMA FOR:"
2120  PRINT "FIRST ROW, LAST ROW = ";
2125  INPUT I3,I4
2130  IF I3 <= 0 OR I4 <= 0 THEN 9996
2135  IF I3=INT(I3) AND I4=INT(I4) THEN 2155
2140  PRINT "ROW #'S ARE INTEGERS."
2145  PRINT "TRY AGAIN!"
2150  GOTO 2120
2155  IF I3 <= I4 THEN 2170
2160  PRINT "FIRST ROW IS LARGER THAN LAST."
2165  GOTO 2145
2170  IF I3 >= 1 AND I3 <= N1 AND I4 >= 1 AND I4 <= N1 THEN 2185
2175  PRINT "'";C$;"' HAS ONLY";N1;"ROWS."
2180  GOTO 2145
2185  Q[8]=I4-I3+1
2190  GOTO 1830
2195  REM****
2200  PRINT 
2202  MAT M=ZER[361,1]
2205  MAT U=ZER[K1,1]
2210  MAT X=ZER[Q[8],2]
2212  N0=0
2215  FOR I=I3 TO I4
2217  N0=N0+1
2220  X[N0,1]=I
2225  NEXT I
2230  PRINT "SAMPLE NOW HAS";Q[8];"ROWS."
2235  GOSUB 1990
2240  GOTO 9909
3399  REM***
3400  IF J>10 THEN 3430
3410  M$[6*J-5,6*J]=A$
3420  GOTO 3450
3430  Z1=J-10
3440  N$[6*Z1-5,6*Z1]=A$
3450  RETURN 
3559  REM***
3560  FOR I=1 TO Y
3570  READ #1;D$
3580  NEXT I
3590  RETURN 
3599  REM****
3600  Y=INT(.9999+Z/10)
3610  X=Z-10*(Y-1)
3620  READ #1,R2;D$
3630  REM:NAME FOR Z IS NAME X IN STRING Y AFTER 'NAMES:' IN REC.R2
3640  RETURN 
3999  REM****
4000  V2=A[1]
4010  FOR I=2 TO K3
4020  IF A[I]<V2 THEN 4080
4040  V2=A[I]
4080  NEXT I
4090  IF V2 <= K1 THEN 4111
4100  PRINT "ONLY";K1;"VARIABLES IN '";C$;"'."
4110  GOTO 1470
4111  FOR I=1 TO K3-1
4112  FOR J=I+1 TO K3
4113  IF A[I]=A[J] THEN 4120
4115  NEXT J
4116  NEXT I
4118  GOTO 1555
4120  PRINT "DUPLICATE NUMBERS. TRY AGAIN."
4130  GOTO 1470
4999  REM****
5000  A$="VAR000"
5010  IF Z>9 THEN 5040
5020  Z1=Z
5030  GOTO 5170
5040  IF Z>99 THEN 5100
5050  Z1=INT(Z/10)
5060  A$[5,5]=D$[Z1+1,Z1+1]
5070  Z1=Z-10*Z1
5080  GOTO 5170
5100  Z1=INT(Z/100)
5110  A$[4,4]=D$[Z1+1,Z1+1]
5120  D=Z-100*Z1
5130  Z1=INT(D/10)
5140  A$[5,5]=D$[Z1+1,Z1+1]
5150  Z1=D-10*Z1
5170  A$[6,6]=D$[Z1+1,Z1+1]
5180  RETURN 
9900  PRINT LIN(1);"'ENRA' CAN ONLY BE USED TO ENTER DATA IN THE IDA"
9902  PRINT "DATA MATRIX FROM OBSERVATIONS AND VARIABLES SELECTED"
9904  PRINT "FROM A RANDOM ACCESS FILE."
9907  GOTO 9996
9909  CHAIN "$IDA08B"
9994  PRINT "CHECK FILE CONTENTS."
9996  PRINT "'";E$;"' ABORTED."
9998  CHAIN "$IDA",150
9999  END 
