CTITLESAAVOPN -- DETERMINE INTERVAL VELOCITY FOR AVOP. 00010002 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA 00020000 CA AUTHOR JOHN DOE 00030000 CA DESIGNER JOHN DOE 00040000 CA LANGUAGE FORTRAN H 00050000 CA SYSTEM IBM 00060001 C WRITTEN WHEN 00070000 C REVISED 00080000 C REVISED 09-10-89 JJC - CHANGED PROCESS NAME TO AVOP. 00081002 CA 00090000 CA 00100000 CA CALLING SEQUENCE: 00110000 CA 00120000 CA CALL SAAVOPN (VV, V, Z, NS, FSR, IPR) 00130002 CA 00140000 CA IN VV R4 INPUT ARRAY 00150000 CA IN V R4 INPUT ARRAY 00160000 CA IN Z R4 ARRAY 00170000 CA IN NS I4 NUMBER OF 00180000 CA IN FSR I4 SAMPLE FREQUENCY RATE 00190000 CA IN IPR I4 PRINT OUTPUT UNIT 00200000 CA 00210000 CA 00220000 CA PURPOSE: TO DETERMINE INTERVAL VELOCITY FOR AVOP 00230002 CA 00240000 CA 00250000 SUBROUTINE SAAVOPN(VV,V,Z,NS,FSR,IPR) 00260002 IMPLICIT INTEGER (A-Z) 00270000 C 00280000 REAL FLOAT 00290000 REAL FSR 00300000 REAL PAA 00310000 REAL TI 00320000 REAL TX 00330000 REAL V 00340000 REAL VELK 00350000 REAL VI 00360000 REAL VI10 00370000 REAL VI20 00380000 REAL VV 00390000 REAL WK 00400000 REAL Z 00410000 REAL ZS 00420000 C 00430000 DIMENSION VV(*),V(*),Z(*),PAA(4),WK(28) 00440000 C 00450000 C*******DETERMINE INTERVAL VELOCITY V(NS) ************************ 00460000 C******* FROM RMS VELOCITY VV(NS) ************************ 00470000 C 00480000 C 7 POINTS SMOOTHING ON RMS VELOCITY 00490000 C 3RD ORDER POLYNOMIAL SMOOTHING ON INTERVAL VELOCITY 00500000 C 00510000 KS = NS+1 00520000 Z(1) = VV(1) 00530000 Z(2) =(VV(1)+VV(2)+VV(3))/3. 00540000 Z(3) =(VV(1)+VV(2)+VV(3)+VV(4)+VV(5))/5. 00550000 VI = VV(1)+VV(2)+VV(3)+VV(4)+VV(5)+VV(6)+VV(7) 00560000 Z(4) = VI/7. 00570000 VI = VI + VV(8)+VV(9) 00580000 C 00590000 DO 20 I = 5,NS-5 00600000 Z(I)=VI/9. 00610000 VI = VI+VV(I+5)-VV(I-4) 00620000 20 CONTINUE 00630000 C 00640000 Z(NS-4) = VI/9. 00650000 VI = VI- VV(NS-8)-VV(NS-7) 00660000 Z(NS-3) = VI/7. 00670000 VI = VI- VV(NS-6)-VV(NS-5) 00680000 Z(NS-2) = VI/5. 00690000 VI = VI- VV(NS-4)-VV(NS-3) 00700000 Z(NS-1) =VI/3. 00710000 Z(NS) =VV(NS) 00720000 V(1) = Z(1) 00730000 TX = 0.02/FLOAT(NS-1) 00740000 C 00750000 DO 30 I = 2,NS 00760000 VI = V(I-1)**2 00770000 TI = 0.03 - FLOAT(I-1)*TX 00780000 VI10 = (V(I-1)*(1.-TI))**2 00790000 VI20 = (V(I-1)*(1.+TI))**2 00800000 VELK = FLOAT(I)*(Z(I)+Z(I-1))*(Z(I)-Z(I-1))+ Z(I-1)**2 00810000 C 00820000 C RESTRICK VELOCITY TO LESS THAN 10 PERCENT VARIATION 00830000 C 00840000 IF (VELK .LT. VI10) VELK = VI10 00850000 IF (VELK .GT. VI20) VELK = VI20 00860000 V(I) = SQRT(VELK) 00870000 30 CONTINUE 00880000 C 00890000 Z(1) = 0.0 00900000 ZS = 0.0 00910000 C 00920000 DO 40 I = 2,NS 00930000 ZS = V(I-1)*FSR + ZS 00940000 Z(I) = ZS/2. 00950000 40 CONTINUE 00960000 C 00970000 RETURN 00980000 END 00990000