SUB ESCRWM (F2$,NR,NC,IT,ISAVE) ON ERROR GO TO <> DIM #2,Q(250,15) \ DIM #3,B(250,15) \ COM V(7,15) H9=.9E-38 MAXC=15 IF IT=1 GOTO <> IF IT=2 THEN CALL TRANSF(NR,NC) ! CALCULATE ELEMENTARY STATISTICS <<*STE>> PRINT "ELEMENTARY STATISTICS WILL NOW BE CALCULATED" FOR I=1 TO 7 V(I,J)=0. FOR J=1 TO MAXC NEXT I FOR J=1 TO NC I=1 <<*MS1>> X=B(I,J) \ IF X<>H9 GOTO <> I=I+1 IF I<=NR GOTO <> PRINT "NO DATA EXISTS FOR VARIABLE";I GOTO <> <<*GDV>> V(1,J)=X V(2,J)=X NEXT J ON ERROR GOTO <> IE=0 V(0,J)=0. FOR J=1 TO NC FOR I=1 TO NR FOR J=1 TO NC X=B(I,J) \ IF X=H9 GOTO <> V(0,J)=V(0,J)+1. V(3,J)=V(3,J)+X IF V(0,J)>1. THEN Y=V(0,J) \ X1=X-V(3,J)/Y \ & V(5,J)=V(5,J)+X1*X1*Y/(Y-1.) IF X>V(1,J) THEN V(1,J)=X \ GOTO <> IF X> NEXT J NEXT I IF IE<>0 GOTO <> ON ERROR GO TO <> FOR J=1 TO NC Y=V(0,J) B(0,J)=Y V(4,J)=V(3,J)/Y IF Y>1. THEN V(5,J)=SQR(V(5,J)/(Y-1.)) V(6,J)=V(5,J)/SQR(Y) V(7,J)=V(1,J)-V(2,J) NEXT J <<*PRC>> PRINT "DOES THE MATRIX NOW CONTAIN THE DATA YOU PLAN TO SAVE" \ & INPUT "AT THE END OF THIS SESSION (Y/N)";N$ IF LEFT(N$,1)="N" GOTO <> IF LEFT(N$,1)<>"Y" THEN PRINT "REPLY Y OR N" \ GOTO <> ! SAVE DATA IF ISAVE=1 THEN OPEN F2$+";0" FOR INPUT AS FILE #2, VIRTUAL,ACCESS MODIFY,CONTIGUOUS ISAVE=1 FOR I=0 TO NR Q(I,J)=B(I,J) FOR J=0 TO NC NEXT I Q(0,0)=NR Q(1,0)=NC CLOSE 2 L$=RIGHT(F2$,4) PRINT PRINT "OUTPUT FILE ";L$;" WITH";NR;" ROWS AND";NC;" COLUMNS" \ & PRINT "HAS BEEN SAVED TEMPORARILY" PRINT "** YOU MUST SAVE THE DATA AT THE END OF THIS SESSION **" PRINT <<*PC1>> INPUT "DO YOU WANT TO EDIT OR PRINT YOUR DATA? (Y,N)";N$ IF LEFT(N$,1)="N" GOTO <> IF LEFT(N$,1)<>"Y" THEN PRINT "REPLY Y OR N" \ GOTO <> ! GO TO EDIT ROUTINE <<*EDT>> CALL EDIT00(NR,NC,IFLG) IF IFLG=0 GOTO <> GOTO <> <<*ERA>> IE=IE+1 RESUME <> <<*ERB>> RESUME <> <<*BDI>> PRINT \ PRINT "**** YOUR DATA CONTAINS";IE;" DATA POINTS" \ & PRINT "**** THAT SAMSTAT CANNOT HANDLE." \ & PRINT "**** THIS COULD BE DUE TO INVALID DATA IN YOUR INPUT" \ & PRINT "**** FILE (VALUES MUST BE IN THE RANGE 1E-19 TO 1E+19" \ & PRINT "**** OR BECAUSE OF INCORRECT ROW OR COLUMN"; & " SPECIFICATIONS" \ & PRINT "**** TO RECOVER, TYPE ONE OF THE FOLLOWING COMMANDS" \ & PRINT \ PRINT "COMMAND MEANING" \ PRINT \ & PRINT " NEW READ NEW DATA FROM ANOTHER FILE" \ PRINT \ & PRINT " EDIT GO TO EDIT ROUTINE TO CHANGE OR" \ & PRINT " DELETE THE INVALID DATA" \ PRINT \ & PRINT " TRANSF GO TO TRANSFORMATION ROUTINE WHERE" \ & PRINT " YOU CAN SCALE DOWN (OR UP) YOUR DATA" \ & PRINT " TO THE ACCEPTABLE RANGE" \ PRINT PRINT "ERROR";ERR;" AT LINE";ERL \ PRINT <<*PAG>> INPUT " PLEASE TYPE NEW, EDIT OR TRANSF";E$ IF E$="NEW" THEN IT=4 \ GOTO <> IF E$="EDIT" GOTO <> IF E$="TRANSF" THEN CALL TRANSF(NR,NC) \ GOTO <> GOTO <> <<*ENE>> SUBEND