C PROF_INT.FOR SUBROUTINE PROFIN(NPOUT,ZOUT,COUT,NPIN,ZIN,CL,CR, & RATIOX,ZX,CCOUT) C THIS SUBROUTINE PERFORMS LINEAR INTERPOLATION IN DEPTH AND C RANGE BETWEEN TWO SVPs DEFINED AT THE SAME DEPTH COORDINATES. C "RATIOX" IS THE INPERPOLATION FACTOR IN RANGE. C INPUT: C NPIN = NUMBER OF DATA POINTS IN SVPs C ZIN = ARRAY WITH DEPTH IN SVPs C CL = ARRAY WITH SOUND SPEED IN LEFT SVP C CR = ARRAY WITH SOUND SPEED IN RIGHT SVP C RATIOX = INTERPOLATION CONSTANT IN RANGE C ZX = DEPTH AT INTERPOLATED SVP C C OUTPUT : C NPOUT = NUMBER OF DATA POINTS IN SVP C ZOUT = ARRAY WITH DEPTH IN INTERPOLATED SVP C COUT = ARRAY WITH SOUND SPEED IN INTERPOLATED SVP C CCOUT = AVERAGE SOUND SPEED IN INTERP SVP DOUBLE PRECISION ZX, RATIOX, RATIOY, CA, CB, CCOUT DOUBLE PRECISION ZOUT( * ), COUT( * ), & ZIN( * ), CL( * ), CR( * ) DO 1000 I=1,NPIN IF(ZIN(I) .LT. ZX) THEN ZOUT(I)=ZIN(I) COUT(I)= CL(I) + RATIOX*(CR(I)-CL(I)) ELSE NPOUT=I ZOUT(NPOUT)=ZX RATIOY= (ZX-ZIN(I-1))/(ZIN(NPOUT)-ZIN(I-1)) CA= CL(I-1) + RATIOY*(CL(NPOUT)-CL(I-1)) CB= CR(I-1) + RATIOY*(CR(NPOUT)-CR(I-1)) COUT(NPOUT)= CA + RATIOX*(CB-CA) GO TO 2000 END IF 1000 CONTINUE 2000 CONTINUE C AVERAGE SOUND SPEED CCOUT=0.0 IF(NPOUT .GT. 0) THEN DO 3000 J=1,NPOUT-1 3000 CCOUT=CCOUT+((COUT(J)+COUT(J+1))*(ZOUT(J+1)-ZOUT(J)))/2.0 CCOUT=CCOUT/ZX END IF RETURN END