CTITLE SALMPAC - OBTAIN THE INTERVAL VELOCITY FROM RMS VELOCITY C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CABS SALMPAC - OBTAIN THE INTERVAL VELOCITY FROM RMS VELOCITY C CSUBROUTINE SALMPAC C C SUBROUTINE SALMPAC(VRMS,NS,VINTR,Z,FSR,IPR) C C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991. C C ALL RIGHTS RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, C REPRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT THE C PRIOR CONSENT OF ATLANTIC RICHFIELD COMPANY. C C CA DESIGNER C. Y. YOUNG CA AUTHOR C. Y. YOUNG CA LANGUAGE VS FORTRAN CA SYSTEM IBM CA WRITTEN JULY 1988 CA CA PURPOSE OF PROGRAM: CA CA THIS SUBROUTINE DETERMINES THE INTERVAL VELOCITIES FROM THE INPUT CA RMS VELOCITY FUNCTION. CA C CA CA ARGUMENTS: CA CA CA VRMS INPUT REAL REAL ARRAY OF THE SPATIALLY INTERPO- CA LATED RMS VELOCITY FUNCTION SET UP BY CA THE 'VELF' PROCESS. CA CA VINTR OUTPUT REAL REAL ARRAY OF LENGTH NS WHICH CONTAINS CA THE CALCULATED INTERVAL VELOCITIES AT CA EACH TIME SAMPLE. CA CA NS INPUT INT THE LENGTH OF THE ARRAYS VRMS,VINTR, CA Z. IT CORRESPONDS TO THE NUMBER OF CA TIME SAMPLES. CA CA Z OUTPUT REAL REAL ARRAY OF LENGTH NS WHICH CONTAINS CA THE DEPTH VALUES. CA CA FSR INPUT REAL THE SAMPLE RATE IS SECONDS. CA CA IPR INPUT INT SPARC LOGICAL PRINT DEVICE FOR PRINT- CA ING INFORMATION FROM THIS SUBROUTINE. CA CA EJECT CAEND C*********************************************************************** C SUBROUTINE SALMPAC(VRMS,NS,VINTR,Z,FSR,IPR) IMPLICIT INTEGER (A-Z) C C LOCAL VARIABLES C C VELK R*4 THE SQUARE OF THE INTERVAL VELOCITY USING A C THREE POINT SMOOTHING POLYNOMIAL. C VI R*4 LOCAL VARIABLE USE IN THE COMPUTATION OF THE C INTERVAL VELOCITY. C VI10 R*4 THE MINIMUM INTERVAL VELOCITY FROM THAT AT C THE PREVIOUS POINT. C VI20 R*4 THE MAXIMUM INTERVAL VELOCITY FROM THAT AT C THE PREVIOUS POINT. C ZS R*4 LOCAL VARIABLE USED IN COMPUTING THE DEPTH C VALUES USING THE INTERVAL VELOCITIES. C C*********************************************************************** C REAL VRMS(*),VINTR(*),Z(*) REAL FSR,VELK,VI,VI10,VI20,ZS C C****** DETERMINE INTERVAL VELOCITY VINTR(NS) ************************ C****************** FROM RMS VELOCITY VRMS(NS) ************************ C C 7 POINTS SMOOTHING ON RMS VELOCITY C 3RD ORDER POLYNOMIAL SMOOTHING ON INTERVAL VELOCITY C Z(1) = VRMS(1) Z(2) = (VRMS(1) + VRMS(2) + VRMS(3) ) / 3. Z(3) = (VRMS(1) + VRMS(2) + VRMS(3) + VRMS(4) + VRMS(5) ) / 5. VI = VRMS(1)+VRMS(2)+VRMS(3)+VRMS(4)+VRMS(5)+VRMS(6)+VRMS(7) Z(4) = VI / 7. VI = VI + VRMS(8) + VRMS(9) C DO 100 I = 5, NS - 5 Z(I) = VI / 9. VI = VI + VRMS(I + 5) - VRMS(I - 4) 100 CONTINUE C Z(NS - 4) = VI / 9. VI = VI - VRMS(NS - 8) - VRMS(NS - 7) Z(NS - 3) = VI / 7. VI = VI - VRMS(NS - 6) - VRMS(NS - 5) Z(NS - 2) = VI / 5. VI = VI - VRMS(NS - 4) - VRMS(NS - 3) Z(NS - 1) = VI / 3. Z(NS) = VRMS(NS) C VINTR(1) = Z(1) DO 120 I = 2, NS VI = VINTR(I - 1) ** 2 VI10 = 0.81 * VI VI20 = 1.21 * VI VELK = FLOAT ( I ) * (Z(I) + Z(I - 1) ) * (Z(I) - Z(I - 1) ) 1 + Z(I - 1) ** 2 C C RESTRICT VELOCITY TO A RANGE ABOUT THE PREVIOUS VALUE C VELK = AMAX1 ( VI10, VELK ) VELK = AMIN1 ( VI20, VELK ) VINTR(I) = SQRT ( VELK ) 120 CONTINUE C Z(1) = 0.0 ZS = 0.0 DO 140 I = 2, NS ZS = VINTR(I - 1) * FSR + ZS Z(I) = ZS / 2. 140 CONTINUE RETURN END