C KEY TIMING FOR JENNY FLOOK COMMON IG,IM,IR,L1,MS,ICHR,ITIM,TIME,SGM DIMENSION IDEV(2),INAM(4),NDEV(2),NNAM(4) DIMENSION IG(40),MS(75),ICHR(75),ITIM(75),TIME(75),SGM(75) C C 1 CONTINUE IRB=1888 IPT=-1120 IST=-1376 IBL=-2016 C*** LPT:=4020 LPT=-2032 KADD=-221 L1=0 IR=0 IR1=0 IM=0 2 CONTINUE C WRITE(1,91) 'ENTER ','FILE N','AMES. ' CALL NAMES(NDEV,NNAM,IDEV,INAM) C 3 CONTINUE K2=IG(KADD+2) KM=LAND(LRS(K2,11),1) KR=LAND(LRS(K2,6),1) KS=LAND(LRS(K2,5),1) KT=LAND(LRS(K2,4),1) KU=LAND(LRS(K2,3),1) KV=LAND(LRS(K2,2),1) KT=KT+KS C IF(KR)36,36,20 20 IF(IDEV)21,35,21 C*** READ RAW DATA FILE 21 CONTINUE CALL IOPEN(IDEV,INAM) READ(4,922)IM,IGL,MS MS(IM)=0 MS(IM+1)=IBL IF(IGL+224)22,23,22 22 WRITE(1,91)' NOT ','A GOOD',' FILE.' GOTO 2 23 CONTINUE IR=0 DO 28 L=1,40 READ(4,922)J,IGL,ICHR IF(J)29,24,24 24 READ(4,93)I,(ITIM(K),K=1,I) IF(IGL-IPT)26,25,26 25 IR=IR+1 26 IG(L)=IGL DO 27 K=1,I CALL IPTIM(K,L,ITIM(K)) CALL IPCHR(K,L,ICHR(K)) 27 CONTINUE CALL IPCHR(I,L,0) 28 CONTINUE 29 CONTINUE L1=L-1 GOTO 36 C 35 CALL KEYRUN C KEYRUN SETS MS,L1,IR,IM,IPCHR,IPTIM C C*** CUT OFF IF /M 36 IF(KM)75,75,37 37 CONTINUE CALL KEYCUT 38 WRITE(3,99)L1,IR C C 75 CONTINUE IR1=IR-1 IF(KT)799,799,751 751 IF(NDEV)76,752,76 752 NDEV=LPT 76 CONTINUE CALL OOPEN(NDEV,NNAM) C C*** WRITE RAW DATA ON FILE WRITE(4,92)IM,-224,(MS(K),K=1,IM),IRB DO 79 L=1,L1 DO 77 I=1,77 IF(IGCHR(I,L))77,78,77 77 CONTINUE 78 IGL=IG(L) IF(KS)782,782,781 781 IF(IGL-IPT)79,782,79 782 CONTINUE WRITE(4,92)L,IGL,(IGCHR(K,L),K=1,I),IRB WRITE(4,93)I,(IGTIM(K,L),K=1,I) 79 CONTINUE WRITE(4,92)-1 IF(KV)791,791,799 791 CALL OCLOSE 799 CONTINUE C IF(KU)801,801,80 80 ID=3 L0=1 LM=L1 MAXL=1 IRS=IR GOTO 808 C*** RETURN TO 801 801 CONTINUE KU=0 ID=4 IF(KV)899,899,802 802 CONTINUE READ(1,962)L0,LM,MAXL,IRS IF(MAXL)821,821,822 821 MAXL=IM-1 822 CONTINUE IRS=0 DO 804 L=L0,LM IF(IG(L)-IPT)804,803,804 803 IRS=IRS+1 804 CONTINUE IF(KT)805,805,808 805 IF(NDEV)807,806,807 806 NDEV=LPT 807 CALL OOPEN(NDEV,NNAM) 808 CONTINUE WRITE(3,99)LM-L0+1,IRS IR1=IRS-1 IF(IR1)895,895,809 809 WRITE(ID,92)IM,IST,(MS(K),K=1,IM),IRB WRITE(ID,96)L0,LM,MAXL, WRITE(ID,91)' N= ', WRITE(ID,93)IRS WRITE(ID,97) C C*** CALCULATE STATISTICS R=IRS R1=IR1 R12=2*IR1 RI=1./R R1I=1./R1 R12I=1./R12 C*** FOR EACH SUBSTRING C*** OF LENGTH LEN DO 89 LEN=1,MAXL RLENI=1./FLOAT(LEN) WSUM=0 C*** WSUM USED FOR AVERAGE RSV OF WORD DO 81 I=2,LEN 81 WSUM=WSUM+SGM(I) C*** SGM(J) IS ADDED LATER C*** SGM(I)=RSV(I,I) C LEN1=LEN-1 N2=IM-LEN1 DO 88 I=2,N2 J=I+LEN1 C*** RESET SUMS SD=0 SD2=0 SDD2=0 DURK1=0 C*** FOR EACH SUCCESSIVE LINE DO 87 L=L0,LM IF(IG(L)-IPT)87,817,87 817 CONTINUE C*** CALCULATE DURIJ(K) DURK=0 DO 84 K=I,J DT=IGTIM(K,L) IF(DT)82,82,83 C*** CONVERT SIGN BIT FROM -2048 TO +2048 82 DT=DT+4096. 83 DURK=DURK+DT 84 CONTINUE C C*** CALCULATE SUM AND SUMS OF SQUARES SD=SD+DURK SD2=SD2+DURK*DURK IF(DURK1)86,86,85 85 SDD2=SDD2+(DURK-DURK1)*(DURK-DURK1) 86 DURK1=DURK 87 CONTINUE C*** CALCULATE STATISTICS FOR STRING: [I,J] DUR=SD*RI VAR=(SD2-SD*DUR)*R1I RVR=VAR/DUR SVR=SDD2*R12I RSV=SVR/DUR WSUM=WSUM+SGM(J) WBAR=WSUM*RLENI WSUM=WSUM-SGM(I) IF(LEN1)871,871,873 871 SGM(I)=RSV WBAR=SQRT(VAR) 873 CONTINUE WRITE(ID,98)I,J,(MS(K),K=I,J),IRB WRITE(ID,982)I,J,DUR,VAR,RVR,SVR,RSV,WBAR 88 CONTINUE SKSF SJMP \89 SKRB SAND (177 SCIA STAD (32 /CNTRL Z SSNA CLA SJMP \895 89 CONTINUE 895 CONTINUE IF(KU)898,898,801 898 CALL OCLOSE 899 CONTINUE GOTO 2 C 90 FORMAT(I4'. ['A1'] '2F9.3) 91 FORMAT(12A6) 92 FORMAT(I3,A1' ['76A1) 922 FORMAT(I3,A1,2X,76A1) 93 FORMAT(I3,2X,7(15I5/5X)) 96 FORMAT(' L0= 'I2' L1= 'I2' MAX LEN= 'I2') 962 FORMAT(' L0= 'I2/' L1= 'I2/' MAX LEN= 'I2/' OK? 'I2) 97 FORMAT(/ + ' I J MEAN VAR RVAR SVAR RSV MCHAR') 98 FORMAT(2I3' ['76A1) 982 FORMAT(2I3,F7.1,2(F9.1,F8.3),F8.3) 99 FORMAT(' OUT OF 'I4' LINES TYPED IN, THERE ARE'I4' GOOD LINES') END $