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]
50  REM:29MAY74
52  REM:>ENRA, ENTERING SELECTED VARIABLES FROM A RANDOM ACCESS FILE
54  REM:CREATED WITH >CRFI
56  REM:9JUN74 KEPT AS BACKUP FOR NEW 'ENRA' NOW IN IDA08A-IDA08D
100  DIM A$[12],C$[7],D$[60],E$[4],A[19],L[128]
155  E$="ENRA"
160  FILES *
200  IF Q[1]=0 THEN 240
210  IF Q9>1 THEN 240
220  PRINT 
222  PRINT "FURTHER USE OF '"E$"' WILL ERASE"
224  PRINT "DATA NOW IN FIRST"N"ROWS,"K"COLUMNS."
226  PRINT "WANT TO CONTINUE WITH  "E$;
227  INPUT A$
228  IF A$[1,1]="N" THEN 9996
230  REM:ZERO DATA MATRIX,ETC., BUT LET SCRATCH COL.VALUES AND ALL P MAT
232  REM:VALUES EXECPT P(65), THE CRSP MONTH INDICATOR, REMAIN
240  IF P[63]=0 THEN 250
241  FOR I=1 TO N9+3
242  FOR J=1 TO K9+2
244  X[I,J]=0
246  NEXT J
248  NEXT I
249  GOTO 251
250  MAT X=ZER[N9+3,K9+2]
251  P[65]=Q3=0
252  MAT Q=ZER
253  MAT M=ZER
390  PRINT 
392  GOTO Q9 OF 400,395,395
395  PRINT "FILE IS ";
396  GOTO 402
400  PRINT "NAME OF INPUT FILE IS ";
402  INPUT C$
404  ASSIGN C$,1,Q8
406  IF Q8 <= 2 THEN 421
410  PRINT C$" CANNOT BE FOUND."
412  PRINT "CHECK YOUR SPELLING!"
420  GOTO 400
421  PRINT 
422  IF  END #1 THEN 8000
430  READ #1,1;N1,K1
440  MAT L=ZER[K1]
442  PRINT "'"C$"' HAS"N1"OBSERVATIONS AND"K1"VARIABLES."
444  IF N1 <= N9 THEN 448
446  PRINT "BUT CURRENT IDA DIMENSIONS ARE"N9"X"K9-1
447  GOTO 9996
448  N=N1
450  PRINT "HOW MANY VARIABLES DO YOU WANT TO ENTER ";
460  INPUT K3
470  IF K3=INT(K3) AND K3 >= 1 AND K3 <= K9-1 THEN 480
472  PRINT "TRY AGAIN!"
474  GOTO 450
480  PRINT "WHICH ONES ";
482  MAT A=ZER[K3]
484  MAT  INPUT A
490  K=K3
500  FOR I=1 TO N
510  X[I,K9+2]=1
515  READ #1,(I+1)
520  MAT  READ #1;L
530  FOR J=1 TO K3
540  X[I,J]=L[A[J]]
550  NEXT J
560  NEXT I
570  FOR J=1 TO K3
580  Z=A[J]
590  GOSUB 3600
600  READ #1,R
610  IF Z>70 THEN 690
620  READ #1;D$
690  GOSUB 3560
700  A$=D$[6*X-5,6*X]
710  IF J>10 THEN 750
720  M$[6*J-5,6*J]=A$
730  GOTO 800
750  Z1=J-10
760  N$[6*Z1-5,6*Z1]=A$
800  NEXT J
810  Q3=1
850  GOTO 9911
3560  FOR I=1 TO Y
3570  READ #1;D$
3580  NEXT I
3590  RETURN 
3600  Y=INT(.9999+Z/10)
3610  R=N1+2
3620  IF Y<8 THEN 3660
3630  R=R+1
3640  Y=Y-7
3650  GOTO 3680
3660  X=Z
3670  IF X<11 THEN 3720
3680  X=Z-10*INT(Z/10)
3690  IF X#0 THEN 3720
3700  X=10
3710  REM:NAME FOR VAR#Z IS NAME X IN STRING Y OF RECORD R OF C$
3720  RETURN 
8000  PRINT "NOT ENOUGH OR NO DATA IN "C$
8001  PRINT "USE COMMAND 'FILE' TO CHECK CONTENTS."
8002  GOTO 9996
9000  PRINT "SORRY, CANT'T TAKE MORE THAN"N9"OBSERVATIONS."
9002  GOTO 9998
9911  REM:GOTO IDA912 FOR UPDATING MEANS AND STD.DEVS.
9912  Q[8]=Q[6]=8
9913  I4=K
9914  I3=1
9915  CHAIN "$IDA912"
9996  PRINT E$" NOT EXECUTED."
9998  CHAIN "$IDA",150
9999  END 
