C C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CTITLESADM3DH - DETERMINE A CDP RANGE TO OUTPUT FOR A 3D LINE 20200000 CA 20210000 CA DESIGNER JAMES SUN 20220000 CA AUTHOR JAMES SUN 20230000 CA LANGUAGE FORTRAN 77 20240000 CA SYSTEM CRAY/IBM 00100000 CA WRITTEN 12/02/87 20260000 C REVISED 12/17/91 JJC - MODIFIED TO MEET SPARC STANDARDS. C 20270000 C C PURPOSE: DETERMINE A CDP RANGE TO OUTPUT FOR A 3D LINE ALSO 20280000 C INTERPOLATE THE HEADER VALUES DPDE, SMDE AND DPEL IF 20290000 C MISSING TRACE ENCOUNTERED. 20300000 C 20310000 C CA CA CALLING PROCEDURE: CA SUBROUTINE SADM3DH(MUTE,NX,IXBEG,ICDPN1,ICDPN2,IPR) CA C CALLING ARGUMENTS CA CA INPUT MUTE : INPUT ARRAY I4 20330000 CA INPUT NX : NUMBER OF DEPTH POINTS I4 20340000 CA INPUT IXBEG : STARTING DEPTH POINT I4 20350000 CA OUTPUT ICDPN1 : STARTING CDP NUMBER TO OUTPUT I4 20370000 CA OUTPUT ICDPN2 : ENDING CDP NUMBER TO OUTPUT I4 20380000 C SUBROUTINE SADM3DH(MUTE,NX,IXBEG,ICDPN1,ICDPN2,IPR) 20390000 C 20410000 C IMPLICIT INTEGER (A-Z) 20400008 C 20410000 C REAL FLOAT REAL TMP REAL TMP3 REAL TMP4 REAL TMP5 C 20410000 C INTEGER MUTE(NX,7) 20420000 C 20430000 C CALL PTST1I('MUTE',MUTE(1,6),NX,IPR) C CALL PTST1I('INER',MUTE(1,7),NX,IPR) C ICDPN1=IXBEG 20440000 DO 100 IX=1,NX 20450000 IF(MUTE(IX,6).NE.99999) GO TO 120 20460000 ICDPN1=ICDPN1+1 20470000 100 CONTINUE 20480000 C 20490000 C 120 CONTINUE 20500000 ICDPN2=IXBEG+NX-1 20510000 DO 140 IX=NX,1,-1 20520000 IF(MUTE(IX,6).NE.99999) GO TO 160 20530000 ICDPN2=ICDPN2-1 20540000 140 CONTINUE 20550000 C 20560000 C 160 CONTINUE 20570000 C 20580000 C IX=ICDPN1-IXBEG+1 20590000 ICDPN=ICDPN1 20600000 IX1=IX 20610000 180 ICDPN=ICDPN+1 20620000 IF(ICDPN.GT.ICDPN2) GO TO 220 20630000 IX=IX+1 20640000 IF(MUTE(IX,2) .NE. 0) THEN 20650000 IF(IX .GT. (IX1+1)) THEN 20660000 TMP=1./FLOAT(IX-IX1) 20670000 TMP3=FLOAT(MUTE(IX,3)-MUTE(IX1,3))*TMP 20680000 TMP4=FLOAT(MUTE(IX,4)-MUTE(IX1,4))*TMP 20690000 TMP5=FLOAT(MUTE(IX,5)-MUTE(IX1,5))*TMP 20700000 DO 200 JX=IX1+1,IX-1 20710000 MUTE(JX,3)=(JX-IX1)*TMP3+MUTE(IX1,3)+0.5 20720000 MUTE(JX,4)=(JX-IX1)*TMP4+MUTE(IX1,4)+0.5 20730000 200 MUTE(JX,5)=(JX-IX1)*TMP5+MUTE(IX1,5)+0.5 20740000 ENDIF 20750000 IX1=IX 20760000 ENDIF 20770000 GO TO 180 20780000 C 20790000 C 220 CONTINUE 20800000 C 20810000 C RETURN 20820000 END 20830000