CTITLESAPDST -- FINDS N-TH AUTO-CORRELATION ZERO CROSSING 00000010 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR D. NYMAN 00000020 CA DESIGNER D. NYMAN 00000030 CA LANGUAGE S/370 FORTRAN H 00000040 CA SYSTEM IBM AND CRAY CA WRITTEN 04/20/78 00000050 C REVISED 10/15/90 MAA. MODIFIED FOR CRAY USE. 00000060 C REVISED 00000070 CA 00000080 CA 00000090 CA DIST = SAPDST (INTR, SMPINT, APYST, APYWL, NZERO) 00000100 CA 00000110 CA INPUT INTR = INPUT TRACE ARRAY R4 00000120 CA SMPINT = SAMPLING INTERVAL IN MS I4 00000130 CA APYST = WINDOW START TIME IN MS I4 00000140 CA APYWL = WINDOW LENGTH IN MS I4 00000150 CA NZERO = NUMBER OF AUTO-CORRELATION ZEROS I4 00000160 CA 00000170 CA OUTPUT SAPDST = DISTANCE IN SAMPLE POINTS TO THE NZERO-TH I4 00000180 CA AUTO-CORRELATION ZERO CROSSING 00000190 CA 00000200 CA 00000210 CA SAPDST CALCULATES THE PREDICTION DISTANCE FOR PREDICTION DECON 00000220 CA CORRESPONDING TO THE NZERO-TH AUTO-CORRELATION ZERO CROSSING. 00000230 CA 00000240 CAEND 00000250 C=======================================================================00000260 C EJECT 00000270 C=======================================================================00000280 C 00000290 C AUTO-CORRELATION VALUES ARE CALCULATED FOR THE SPECIFIED TIME 00000300 C WINDOW UNTIL THE NZERO-TH SIGN CHANGE IS ENCOUNTERED. 00000310 C 00000320 C LOCAL VARIABLES AND CONSTANTS 00000330 C 00000340 C I0 = INDEX-1 OF FIRST POINT IN TIME WINDOW I4 00000350 C NPTS = NUMBER OF POINTS IN TIME WINDOW I4 00000360 C NP = NUMBER OF OVERLAP POINTS IN AUTO-CORRELATION I4 00000370 C N0 = MINIMUM NUMBER OF OVERLAP POINTS I4 00000380 C PRD = PREDICTION DISTANCE OR AUTO-CORRELATION LAG I4 00000390 C Z = AUTO-CORRELATION VALUE R4 00000400 C ZZ = PREVIOUS AUTO-CORRELATION VALUE R4 00000410 C 00000420 C 00000430 C=======================================================================00000440 C EJECT 00000450 C 00000460 FUNCTION SAPDST (INTR, SMPINT, APYST, APYWL, NZERO) 00000470 C 00000480 IMPLICIT INTEGER (A-Z) 00000490 DIMENSION INTR(1) 00000500 REAL INTR, Z, ZZ 00000510 C 00000520 C SET INITIAL VALUES 00000530 C 00000540 I0=(APYST+SMPINT/2)/SMPINT 00000550 NPTS=(APYWL+SMPINT/2)/SMPINT 00000560 N0=MAX0(NPTS/3,20) 00000570 PRD=0 00000580 Z=1. 00000590 C 00000600 C FIND NZERO-TH ZERO CROSSING 00000610 C 00000620 DO 30 IZ=1,NZERO 00000630 C 00000640 10 ZZ=Z 00000650 PRD=PRD+1 00000660 I1=I0+PRD 00000670 NP=NPTS-PRD 00000680 IF (NP.LE.N0) GO TO 40 00000690 Z=0. 00000700 C 00000710 C CALCULATE AUTO-CORRELATION 00000720 C 00000730 DO 20 I=1,NP 00000740 20 Z=INTR(I0+I)*INTR(I1+I)+Z 00000750 C 00000760 C CHECK FOR AUTO-CORRELATION SIGN CHANGE 00000770 C 00000780 IF (SIGN(1.,Z).EQ.SIGN(1.,ZZ)) GO TO 10 00000790 C 00000800 30 CONTINUE 00000810 C 00000820 40 SAPDST=PRD 00000830 C 00000840 RETURN 00000850 C 00000860 END 00000870