CTITLESAVDDMA -- CONVERT THE P(T,ZC) INTO P(T,VA) C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA CA DESIGNER BRUCE VERWEST CA AUTHOR BRUCE VERWEST/JAMES SUN CA LANGUAGE VS FORTRAN CA SYSTEM IBM AND CRAY CA WRITTEN SEPTEMBER 15,1986 C REVISED 03/25/90 JJC - MODIFIED TO MEET EDP SPARC STANDARDS. CA CA THIS SUBROUTINE CONVERT THE P(T,ZC) INTO P(T,VA) CA CA CALLING PROCEDURE: CA SUBROUTINE SAVDDMA(P,VA,ZC,WORK,VEL,NS,NZ,NV,DT,DZ,KPWRKD,IPR) CA C CALLING ARGUMENTS CA CA IN/OUT P ARRAY OF INPUT DATA TRACES R4 CA INPUT VA AVERAGE VELOCITY R4 CA INPUT ZC DEPTH CORRECTION R4 CA INPUT WORK WORK ARRAY R4 CA INPUT VEL INITIAL VELOCITY R4 CA INPUT NS NUMBER OF SAMPLESPER TRACE I4 CA INPUT NZ NUMBER OF TRACES FOR EACH SHOT/DEPTH POINT I4 CA INPUT NV NUMBER OF VELOCITIES I4 CA INPUT DT SAMPLING INTERVAL R4 CA INPUT DZ DEPTH CORRECTION INTERVAL R4 CA INPUT KPWRKD THE ADDRESS OF WORK FILE I4 CA INPUT IPR PRINT UNIT I4 CA CA ARRAY DIMENSION REQUIREMENT: CA P - (NS,NZ) CA VA - NV CA ZC - NZ CA WORK - NZ CA VEL - NS CA C C SUBROUTINE SAVDDMA(P,VA,ZC,WORK,VEL,NS,NZ,NV,DT,DZ,KPWRKD,IPR) C IMPLICIT INTEGER(A-Z) C DIMENSION P(NS,1),VA(1),ZC(1),WORK(1),VEL(1) C C REAL P REAL VA REAL ZC REAL WORK REAL VEL REAL DT REAL DZ REAL ADZSQ REAL TL REAL VL REAL ZL REAL ZL2 REAL ZL1 REAL ZL3 C C ADZSQ=1./(DZ*DZ) C CALL ARSET(WORK,NV,0.) CALL SCOPY(NV,WORK,1,P,NS) C C DO 100 IT=2,NS TL=(IT-1)*DT CALL SCOPY(NZ,P(IT,1),NS,WORK,1) C CDIR$ IVDEP C DO 100 IV=1,NV VL=VA(IV)-VEL(IT) ZL=.5*TL*VL IZ=(ZL-ZC(1))/DZ+1 P(IT,IV)=0. IF(IZ.GT.1 .AND. IZ.LT.NZ) THEN ZL2=ZL-ZC(IZ) ZL1=ZL2+DZ ZL3=ZL2-DZ P(IT,IV)=ADZSQ*(WORK(IZ-1)*ZL2*ZL3-2.*WORK(IZ)*ZL1*ZL3 * +WORK(IZ+1)*ZL1*ZL2) ENDIF 100 CONTINUE C C RETURN END