CTITLE SACPICK -- COLOR MULTI-LAYER REFRACTION TIME-PICK PLOTTING C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA CA AUTHOR J.V.S. HARVEY CA LANGUAGE VS FORTRAN (77) CA REWRITTEN 29 MAR 1988 CA CA CA THIS SUBROUTINE PLOTS REFRACTION TIME-PICKS CA CA THE COLOR SCALE MUST BE DEFINED AS: CA 0-10 = DEFAULT UNIRAS PURE COLORS ( 1 FOR BLACK ) CA 11-20 = TIME ERROR COLOR CODE SCALE CA 21-30 = HORIZON COLORS CA CA CA CALL SACPICK( TPPLOT, TPAXIS, REFHRZ, FBNLAB, CA NCDPN, CDPNID, CDPNUM, CA NCDPT, CDPREF, CA NSHOT, SHOTID, SHOTNO, CA NRECV, RECVID, CA LCTPSP, CSPREF, FBREAK, CA NUMHRZ, RTIMES, CA NGRID, X0, Y0, DELTAX, HT ) CA CA CA IN/OUT ARGUMENT TYPE DESCRIPTION CA CA IN TPPLOT I4 SIDE OF SHOT INDICATOR CA 1 FOR LOW SIDE (BATCH) CA 2 FOR HIGH SIDE CA 3 FOR LOW SIDE (INTERACTIVE) CA IN TPAXIS CH4 HORIZONTAL AXIS INDICATOR CA 'RECV' FOR RECEIVER CA 'CDPN' FOR CDP LOCATION CA IN REFHRZ I4 REFERENCE HORIZON CA 99 FOR FIRST BREAK CA IN FBNLAB CH8 FIRST-BREAK NODE LABELS CA CA IN NCDPN I4 NUMBER OF CDPN LOCATIONS CA IN CDPNID R4 CDP IDENTIFICATION ARRAY CA (1,I) = X COORDINATE (IN-LINE) CA IN UNITS OF GRID-POINT POSITION CA (2,I) = SURFACE ELEVATION CA IN ORIGINAL UNITS CA ( 2-D ARRAY DIMENSIONED: 2 BY NCDPN ) CA IN CDPNUM I2 CDP NUMBERS (LABELS) CA ( 1-D ARRAY DIMENSIONED: NCDPN ) CA CA IN NCDPT I4 MAX. NUMBER OF TRACES PER CDPN SIDE CA IN CDPREF I2 CDP-TO-SHOT CROSS-REFERENCE INDICES CA (1,SIDE,CDPT,CDPN) = SHOT INDEX CA (2,SIDE,CDPT,CDPN) = RECEIVER INDEX CA (3,SIDE,CDPT,CDPN) = ORTN (TRACE) CA ( 4-D ARRAY DIMENSIONED: 3 BY 2 BY NCDPT BY NCDPN ) CA CA IN NSHOT I4 NUMBER OF SHOTPOINTS PICKED CA IN SHOTID R4 SHOTPOINT IDENTIFICATION ARRAY CA (1,I) = X COORDINATE (IN-LINE) CA IN UNITS OF GRID-POINT POSITION CA (2,I) = Y COORDINATE (CROSS-LINE) CA IN UNITS OF GRID-POINT POSITION CA (3,I) = SURFACE ELEVATION CA IN ORIGINAL UNITS CA (4,I) = RECIPROCAL RECEIVER NUMBER CA AS INDEX PLUS FRAC. DISTANCE CA (5,I) = EQUIVALENT CDPN LOCATION CA AS INDEX PLUS FRAC. DISTANCE CA ( 2-D ARRAY DIMENSIONED: 5 BY NSHOT ) CA IN SHOTNO I2 PICKED SHOTPOINT NUMBER LIST CA ( 1-D ARRAY DIMENSIONED: NSHOT ) CA CA IN NRECV I4 NUMBER OF UNIQUE RECEIVER POSITIONS CA IN RECVID R4 RECEIVER IDENTIFICATION ARRAY CA (1,I) = X COORDINATE (IN-LINE) CA IN UNITS OF GRID-POINT POSITION CA (2,I) = Y COORDINATE (CROSS-LINE) CA IN UNITS OF GRID-POINT POSITION CA (3,I) = SURFACE ELEVATION CA IN ORIGINAL UNITS CA (4,I) = RECIPROCAL SHOT LOCATION NUMBER CA AS INDEX PLUS FRAC. DISTANCE CA (5,I) = EQUIVALENT CDPN LOCATION CA AS INDEX PLUS FRAC. DISTANCE CA ( 2-D ARRAY DIMENSIONED: 5 BY NRECV ) CA CA IN LCTPSP I4 NUMBER OF TRACES PER SHOT CA IN CSPREF I2 SHOT-TO-CDP CROSS-REFERENCE INDICES CA (1,ORTN,SHOT) = CDPN CA (2,ORTN,SHOT) = CDPT (NEG FOR LOW SIDE) CA ( 3-D ARRAY DIMENSIONED: 3 BY LCTPSP BY NSHOT ) CA CA IN FBREAK I2 FIRST-BREAK HORIZONS (OLD AND NEW) CA (ORTN,SHOT,1) = OLD (PICK FILE) CA (ORTN,SHOT,2) = NEW (REMAPPED) CA CA THE FOLLOWING CONVENTIONS ARE USED: CA 1-8 = HORIZON CODE FOR VALID PICK CA 99 MISSING PICK OR KILLED BY "HCH" CA CA 101-108 HORIZON CODE PLUS 100 FOR CA "FBN" KILLED PICK CA 201-208 HORIZON CODE PLUS 200 FOR CA "MXRECP/MXBULL" KILLED PICK CA 301-308 HORIZON CODE PLUS 300 FOR CA "MXRAYC" KILLED PICK CA ( 3-D ARRAY DIMENSIONED: LCTPSP BY NSHOT BY 2 ) CA CA IN NUMHRZ I4 NUMBER OF HORIZONS IN ANALYSIS CA IN RTIMES R4 REFRACTION TIMES IN SECONDS CA SIGN INDICATES SOURCE: CA POSITIVE FOR ORIGINAL PICK CA ZERO FOR MISSING PICK CA NEGATIVE FOR PHANTOMED PICK CA ABSOLUTE VALUE GIVES PROPER TIME CA ( 3-D ARRAY DIMENSIONED: LCTPSP BY NSHOT BY NUMHRZ ) CA CA IN NGRID I4 NUMBER OF GRID X LOCATIONS CA IN X0, Y0 R4 ORIGIN OF CURRENT PLOTTING CA IN DELTAX R4 STEP SIZE IN X DIRECTION CA IN HT R4 CHARACTER PLOTTING HEIGHTS CA 1) PRIMARY LABEL CHARACTER HEIGHT (MM) CA 2) ORTN AXIS CHARACTER HEIGHT (MM) CA 3) SHOT AXIS CHARACTER HEIGHT (MM) CA 4) ORTN AXIS CHARACTER WIDTH IN CA PLOTTING UNITS CA 5) SHOT AXIS CHARACTER WIDTH IN CA PLOTTING UNITS CA ( 1-D ARRAY DIMENSIONED: 5 ) CAEND C*********************************************************************** C C SUBROUTINES CALLED: GCHAR -- UNIRAS CHARACTER STRING PLOTTING C GCHARA -- UNIRAS CHARACTER PLOTTING ANGLE C GCHARC -- UNIRAS CHARACTER COLOR C GCHARJ -- UNIRAS CHARACTER JUSTIFICATION C GNUMB -- UNIRAS NUMERIC VALUE PLOTTING C GVECT -- UNIRAS POINT/LINE DRAWING C GWICOL -- UNIRAS LINE WIDTH AND COLOR C C SACGRID -- REFERENCE GRID PLOTTING C C*********************************************************************** C SUBROUTINE SACPICK( TPPLOT, TPAXIS, REFHRZ, FBNLAB, * NCDPN, CDPNID, CDPNUM, * NCDPT, CDPREF, * NSHOT, SHOTID, SHOTNO, * NRECV, RECVID, * LCTPSP, CSPREF, FBREAK, * NUMHRZ, RTIMES, * NGRID, X0, Y0, DELTAX, HT ) IMPLICIT INTEGER (A-Z) C CHARACTER*4 TPAXIS CHARACTER*8 FBNLAB C REAL CDPNID(2,NCDPN) INTEGER*2 CDPNUM(NCDPN) INTEGER*2 CDPREF(3,2,NCDPT,NCDPN) C REAL SHOTID(5,NSHOT) INTEGER*2 SHOTNO(NSHOT) REAL RECVID(5,NRECV) INTEGER*2 CSPREF(2,LCTPSP,NSHOT) C INTEGER*2 FBREAK(LCTPSP,NSHOT,2) REAL RTIMES(LCTPSP,NSHOT,NUMHRZ) C REAL X0, Y0 REAL DELTAX REAL HT(5) C ------------------------------------------- C C REAL PARAMETER -- LOCAL C REAL DXL PARAMETER ( DXL = 0.75 ) C ------------------------------------------- C C REAL VARIABLES -- LOCAL C REAL DELTAY REAL DT REAL TIME, TIME0, TIMEX REAL XMIN, XMAX, X, XS, X1, X2 REAL YMIN, YMAX, Y, YS, Y1, Y2, Y3, Y4 REAL YSCALE C REAL TLIMIT(2) C C LOCAL CHARACTER STRINGS C CHARACTER*32 HRZLAB /'TIME PICKS FOR REFRACTOR 1(AB)$ '/ CHARACTER*8 HRZNUM /'12345678'/ C C*********************************************************************** C*** **** C*** REFERENCE GRID **** C*** **** C*********************************************************************** C C SIDE OF SHOTPOINT C IF( TPPLOT .NE. 2 ) THEN SIDE = 1 ELSE SIDE = 2 ENDIF C====================================================================== C C DETERMINE TIME LIMITS C TLIMIT(1) = 1000.0 TLIMIT(2) = 0.0 C DO 25 SHOT = 1, NSHOT DO 20 ORTN = 1, LCTPSP IF( REFHRZ .EQ. 99 ) THEN CURHRZ = FBREAK(ORTN,SHOT,2) TIME = 0.0 IF( 1 .LE. CURHRZ .AND. CURHRZ .LE. NUMHRZ ) * TIME = RTIMES(ORTN,SHOT,CURHRZ) ELSE TIME = RTIMES(ORTN,SHOT,REFHRZ) ENDIF C IF( TIME .NE. 0.0 ) THEN IF( TIME .LT. 0.0 ) TIME = 0.0 - TIME C IF( TIME .LT. TLIMIT(1) ) TLIMIT(1) = TIME IF( TIME .GT. TLIMIT(2) ) TLIMIT(2) = TIME ENDIF 20 CONTINUE 25 CONTINUE C ITIME1 = TLIMIT(1) TIME0 = ITIME1 C ITIME2 = TLIMIT(2) TIMEX = ITIME2 C IF( TIMEX .LT. TLIMIT(2) ) THEN TIMEX = TIMEX + 1.0 ITIME2 = ITIME2 + 1 ENDIF C---------------------------------------------------------------------- C C DETERMINE SCALING PARAMETERS C BEGLAB = 1000*ITIME1 ENDLAB = 1000*ITIME2 C IF( TPPLOT .NE. 2 ) INCLAB = -10 IF( TPPLOT .EQ. 2 ) INCLAB = 10 C YSCALE = 15.00/( TIMEX - TIME0 ) DELTAY = 0.01*YSCALE C====================================================================== C C DRAW REFERENCE TIME-LOCATION GRID C C IN/OUT ARGUMENT TYPE DESCRIPTION C C IN XMIN, YMIN R4 CURRENT PLOT ORIGIN (LOWER LEFT) C IN DELTAX R4 X GRID SPACING IN INCHES C IN DELTAY R4 Y GRID SPACING IN INCHES C IN NXGRID I4 NUMBER OF X GRID LINES C IN GRDINC I4 X GRID LINE INCREMENT C C IN BEGLAB I4 BEGINNING Y-AXIS LABEL C IN ENDLAB I4 ENDING Y-AXIS LABEL C IN INCLAB I4 Y-AXIS LABEL INCREMENT C POSITIVE FOR UPWARD PLOT C NEGATIVE FOR DOWNWARD PLOT C IN HTCHAR R4 Y-AXIS LABEL CHARACTER HEIGHT C C OUT XMAX R4 MAXIMUM X GRID LINE PLOTTED C OUT YMAX R4 MAXIMUM Y GRID LINE PLOTTED C XMIN = X0 + 1.5 YMIN = Y0 + 1.0 C CALL SACGRID( XMIN, YMIN, DELTAX, DELTAY, NGRID, 10, * BEGLAB, ENDLAB, INCLAB, HT(2), XMAX, YMAX ) C ------------------------------------------- C C INDICATE TYPE OF DISPLAY C IF( TPPLOT .NE. 1 ) THEN X = XMIN Y = YMAX + 2.5 C IF( REFHRZ .EQ. 99 ) THEN CALL GCHAR( 'TIME PICKS FOR FIRST BREAKS$', X, Y, HT(1) ) C ELSE NXTHRZ = REFHRZ + 1 HRZLAB(26:26) = HRZNUM(REFHRZ:REFHRZ) HRZLAB(28:29) = FBNLAB(REFHRZ:NXTHRZ) C CALL GCHAR( HRZLAB, X, Y, HT(1) ) ENDIF ENDIF C ------------------------------------------- C C LABEL TIME AXIS C X1 = XMIN - 7*HT(4) X2 = XMAX + 7*HT(4) C Y1 = 0.5*( YMIN + YMAX ) - 8.0*HT(4) Y2 = 0.5*( YMIN + YMAX ) + 8.0*HT(4) C CALL GCHARA( 90 ) CALL GCHAR( 'ARRIVAL TIME (MS)$', X1, Y1, HT(2) ) CALL GCHARA( 270 ) CALL GCHAR( 'ARRIVAL TIME (MS)$', X2, Y2, HT(2) ) C CALL GCHARJ( 3 ) C---------------------------------------------------------------------- C C LABEL HORIZONTAL AXIS C IF( TPPLOT .EQ. 2 ) THEN YS = YMAX + 0.9 Y1 = YMAX + 0.20 Y2 = YMAX + 0.70 Y3 = YMAX + 1.20 Y4 = YMAX + 1.70 ELSE YS = YMIN - 1.10 Y1 = YMIN - 0.40 Y2 = YMIN - 0.90 Y3 = YMIN - 1.40 Y4 = YMIN - 1.90 ENDIF C ------------------------------------------- C C CASE 1) CDP MODE C IF( TPAXIS .EQ. 'CDPN' ) THEN CALL GCHARC( 3 ) CALL GCHAR( 'CDPN:$', X0, YS, HT(2) ) C DO 110 CDPN = 1, NCDPN, 4 X = XMIN + DELTAX*CDPNID(1,CDPN) X1 = CDPNUM(CDPN) CALL GCHARA( 90 ) CALL GNUMB( X1, X, Y1, HT(3), 0 ) 110 CONTINUE C DO 115 CDPN = 2, NCDPN, 4 X = XMIN + DELTAX*CDPNID(1,CDPN) X1 = CDPNUM(CDPN) CALL GCHARA( 90 ) CALL GNUMB( X1, X, Y2, HT(3), 0 ) 115 CONTINUE C DO 120 CDPN = 3, NCDPN, 4 X = XMIN + DELTAX*CDPNID(1,CDPN) X1 = CDPNUM(CDPN) CALL GCHARA( 90 ) CALL GNUMB( X1, X, Y3, HT(3), 0 ) 120 CONTINUE C DO 125 CDPN = 4, NCDPN, 4 X = XMIN + DELTAX*CDPNID(1,CDPN) X1 = CDPNUM(CDPN) CALL GCHARA( 90 ) CALL GNUMB( X1, X, Y4, HT(3), 0 ) 125 CONTINUE C ------------------------------------------- C C CASE 2) RECV MODE C ELSE DO 130 RECV = 1, NRECV, 2 X = XMIN + DELTAX*RECVID(1,RECV) X1 = RECV CALL GCHARA( 90 ) CALL GNUMB( X1, X, Y2, HT(3), 0 ) 130 CONTINUE C DO 135 RECV = 2, NRECV, 2 X = XMIN + DELTAX*RECVID(1,RECV) X1 = RECV CALL GCHARA( 90 ) CALL GNUMB( X1, X, Y3, HT(3), 0 ) 135 CONTINUE C CALL GCHAR( 'RECV:$', X0, YS, HT(2) ) ENDIF C---------------------------------------------------------------------- C C LABEL SHOT AXIS C IF( TPPLOT .NE. 1 ) THEN CALL GCHARC( 5 ) C IF( TPPLOT .EQ. 2 ) THEN YS = YMIN - 0.5 Y1 = YMIN - 0.9 Y2 = YMIN - 0.4 ELSE YS = YMAX + 0.5 Y1 = YMAX + 0.1 Y2 = YMAX + 0.6 ENDIF C CALL GCHAR( 'SHOT:$', X0, YS, HT(2) ) C DO 140 SHOT = 1, NSHOT, 2 XS = XMIN + DELTAX*SHOTID(1,SHOT) IF( SHOTID(1,SHOT) .GE. 1.0 ) THEN X1 = SHOTNO(SHOT) CALL GCHARA( 90 ) CALL GNUMB( X1, XS, Y1, HT(3), 0 ) ENDIF 140 CONTINUE C J = 2 DO 150 SHOT = 2, NSHOT, 2 XS = XMIN + DELTAX*SHOTID(1,SHOT) C C SET LABEL COLOR C IF( J .EQ. 10 ) THEN CALL GCHARC( 8 ) J = 2 ELSE CALL GCHARC( 5 ) J = J + 2 ENDIF C C PLOT SHOT NUMBERS C IF( SHOTID(1,SHOT) .GE. 1.0 ) THEN X1 = SHOTNO(SHOT) CALL GCHARA( 90 ) CALL GNUMB( X1, XS, Y2, HT(3), 0 ) ENDIF 150 CONTINUE CALL GCHARJ( 0 ) ENDIF C C*********************************************************************** C*** **** C*** TIME PICK PLOTTING AND COLORING **** C*** **** C*********************************************************************** C CALL GCHARJ( 4 ) J = 1 DO 175 SHOT = 1, NSHOT IF( J .EQ. 10 ) THEN COLOR = 8 CALL GCHARC( 8 ) J = 1 ELSE COLOR = 5 CALL GCHARC( 5 ) J = J + 1 ENDIF C DO 170 ORTN = 1, LCTPSP CDPN = CSPREF(1,ORTN,SHOT) CDPT = CSPREF(2,ORTN,SHOT) C IF( ( TPPLOT .NE. 2 .AND. CDPT .GE. 0 ) .OR. * ( TPPLOT .EQ. 2 .AND. CDPT .LE. 0 ) ) THEN X2 = -1.0 C ELSE IF( TPAXIS .EQ. 'CDPN' ) THEN X2 = XMIN + DELTAX*CDPNID(1,CDPN) C ELSE IF( CDPT .LT. 0 ) THEN CDPT2 = 0 - CDPT RECV = CDPREF(2,1,CDPT2,CDPN) X2 = XMIN + DELTAX*RECVID(1,RECV) ELSE RECV = CDPREF(2,2,CDPT,CDPN) X2 = XMIN + DELTAX*RECVID(1,RECV) ENDIF C IF( X2 .GT. 0.0 ) THEN IF( REFHRZ .EQ. 99 ) THEN CURHRZ = FBREAK(ORTN,SHOT,2) TIME = 0.0 IF( 1 .LE. CURHRZ .AND. CURHRZ .LE. NUMHRZ ) * TIME = RTIMES(ORTN,SHOT,CURHRZ) ELSE TIME = RTIMES(ORTN,SHOT,REFHRZ) ENDIF C ------------------------------------------- C C CASE A) ORIGINAL PICK C IF( TIME .GT. 0.0 ) THEN DT = TIME - TIME0 C IF( TPPLOT .NE. 2 ) Y2 = YMAX - YSCALE*DT IF( TPPLOT .EQ. 2 ) Y2 = YMIN + YSCALE*DT C IF( COLOR .EQ. 8 ) THEN COLOR = 2 CALL GCHARC( 2 ) ELSE IF( COLOR .EQ. 5 ) THEN COLOR = 4 CALL GCHARC( 4 ) ENDIF PEN = 1 C ------------------------------------------- C C CASE B) PHANTOMED PICK C ELSE IF( TIME .LT. 0.0 ) THEN DT = TIME + TIME0 C IF( TPPLOT .NE. 2 ) Y2 = YMAX + YSCALE*DT IF( TPPLOT .EQ. 2 ) Y2 = YMIN - YSCALE*DT C IF( COLOR .EQ. 2 ) THEN COLOR = 8 CALL GCHARC( 8 ) ELSE IF( COLOR .EQ. 4 ) THEN COLOR = 5 CALL GCHARC( 5 ) ENDIF PEN = 1 C ------------------------------------------- C C CASE C) NO PICK C ELSE PEN = 0 ENDIF C ------------------------------------------- C C PUT COLOR-CODED '*' AT PICK LOCATION C IF( PEN .EQ. 1 ) THEN K = ORTN/5 K = ORTN - 5*K C IF( K .NE. 0 ) THEN CALL GCHAR( '*$', X2, Y2, HT(2) ) ELSE CALL GCHAR( '*$', X2, Y2, HT(1) ) ENDIF ENDIF ENDIF 170 CONTINUE 175 CONTINUE C C*********************************************************************** C*** **** C*** TRACE NUMBER LABELLING **** C*** **** C*********************************************************************** C CALL GCHARC( 5 ) C DO 275 ORTN = 5, LCTPSP, 5 N = 0 C DO 250 SHOT = 1, NSHOT CDPN = CSPREF(1,ORTN,SHOT) CDPT = CSPREF(2,ORTN,SHOT) C IF( ( TPPLOT .NE. 2 .AND. CDPT .GE. 0 ) .OR. * ( TPPLOT .EQ. 2 .AND. CDPT .LE. 0 ) ) THEN X = -1.0 C ELSE IF( TPAXIS .EQ. 'CDPN' ) THEN X = XMIN + DELTAX*CDPNID(1,CDPN) C ELSE IF( CDPT .LT. 0 ) THEN CDPT2 = 0 - CDPT RECV = CDPREF(2,1,CDPT2,CDPN) X = XMIN + DELTAX*RECVID(1,RECV) ELSE RECV = CDPREF(2,2,CDPT,CDPN) X = XMIN + DELTAX*RECVID(1,RECV) ENDIF C IF( X .GT. 0.0 ) THEN IF( REFHRZ .EQ. 99 ) THEN CURHRZ = FBREAK(ORTN,SHOT,2) TIME = 0.0 IF( 1 .LE. CURHRZ .AND. CURHRZ .LE. NUMHRZ ) * TIME = RTIMES(ORTN,SHOT,CURHRZ) ELSE TIME = RTIMES(ORTN,SHOT,REFHRZ) ENDIF C ------------------------------------------- C C CASE A) ORIGINAL PICK C IF( TIME .GT. 0.0 ) THEN DT = TIME - TIME0 C IF( N .EQ. 0 ) THEN X1 = X - DXL IF( TPPLOT .NE. 2 ) Y1 = YMAX - YSCALE*DT IF( TPPLOT .EQ. 2 ) Y1 = YMIN + YSCALE*DT N = 1 ELSE X2 = X + DXL IF( TPPLOT .NE. 2 ) Y2 = YMAX - YSCALE*DT IF( TPPLOT .EQ. 2 ) Y2 = YMIN + YSCALE*DT ENDIF C ------------------------------------------- C C CASE B) PHANTOMED PICK C ELSE IF( TIME .LT. 0.0 ) THEN DT = TIME + TIME0 C IF( N .EQ. 0 ) THEN X1 = X - DXL IF( TPPLOT .NE. 2 ) Y1 = YMAX + YSCALE*DT IF( TPPLOT .EQ. 2 ) Y1 = YMIN - YSCALE*DT N = 1 ELSE X2 = X + DXL IF( TPPLOT .NE. 2 ) Y2 = YMAX + YSCALE*DT IF( TPPLOT .EQ. 2 ) Y2 = YMIN - YSCALE*DT ENDIF ENDIF ENDIF 250 CONTINUE C ------------------------------------------- C C LABEL EACH FIFTH TRACE NUMBER C IF( N .GT. 0 ) THEN X = ORTN C CALL GNUMB( X, X1, Y1, HT(1), 0 ) CALL GNUMB( X, X2, Y2, HT(1), 0 ) ENDIF 275 CONTINUE CALL GCHARC( 1 ) CALL GCHARJ( 0 ) C C*********************************************************************** C*** **** C*** COMMON-SHOT LINE DRAWING **** C*** **** C*********************************************************************** C J = 1 DO 375 SHOT = 1, NSHOT IF( J .EQ. 10 ) THEN COLOR = 8 CALL GWICOL( -2.0, 8 ) J = 1 ELSE COLOR = 5 CALL GWICOL( -1.0, 5 ) J = J + 1 ENDIF C---------------------------------------------------------------------- C C DRAW LINE FROM SHOTPOINT TO FIRST PICK C IF( TPPLOT .EQ. 2 ) THEN XS = XMIN + DELTAX*SHOTID(1,SHOT) CALL GVECT( XS, YMIN, 0 ) PEN = 2 ELSE PEN = 3 ENDIF C====================================================================== C C DRAW LINE SEGMENTS BETWEEN ADJACENT PICKS C DO 350 ORTN = 1, LCTPSP CDPN = CSPREF(1,ORTN,SHOT) CDPT = CSPREF(2,ORTN,SHOT) C IF( ( TPPLOT .NE. 2 .AND. CDPT .GE. 0 ) .OR. * ( TPPLOT .EQ. 2 .AND. CDPT .LE. 0 ) ) THEN X2 = -1.0 C ELSE IF( TPAXIS .EQ. 'CDPN' ) THEN X2 = XMIN + DELTAX*CDPNID(1,CDPN) C ELSE IF( CDPT .LT. 0 ) THEN CDPT2 = 0 - CDPT RECV = CDPREF(2,1,CDPT2,CDPN) X2 = XMIN + DELTAX*RECVID(1,RECV) ELSE RECV = CDPREF(2,2,CDPT,CDPN) X2 = XMIN + DELTAX*RECVID(1,RECV) ENDIF C IF( X2 .GT. 0.0 ) THEN IF( REFHRZ .EQ. 99 ) THEN CURHRZ = FBREAK(ORTN,SHOT,2) TIME = 0.0 IF( 1 .LE. CURHRZ .AND. CURHRZ .LE. NUMHRZ ) * TIME = RTIMES(ORTN,SHOT,CURHRZ) ELSE TIME = RTIMES(ORTN,SHOT,REFHRZ) ENDIF C ------------------------------------------- C C CASE A) ORIGINAL PICK C IF( TIME .GT. 0.0 ) THEN DT = TIME - TIME0 C IF( TPPLOT .NE. 2 ) Y2 = YMAX - YSCALE*DT IF( TPPLOT .EQ. 2 ) Y2 = YMIN + YSCALE*DT C IF( PEN .EQ. 3 ) PEN = 0 IF( PEN .EQ. 2 ) PEN = 1 CALL GVECT( X2, Y2, PEN ) PEN = 1 C IF( COLOR .EQ. 8 ) THEN COLOR = 2 CALL GWICOL( -3.0, 2 ) C ELSE IF( COLOR .EQ. 5 ) THEN COLOR = 4 CALL GWICOL( -2.0, 4 ) ENDIF C ------------------------------------------- C C CASE B) PHANTOMED PICK C ELSE IF( TIME .LT. 0.0 ) THEN DT = TIME + TIME0 C IF( TPPLOT .NE. 2 ) Y2 = YMAX + YSCALE*DT IF( TPPLOT .EQ. 2 ) Y2 = YMIN - YSCALE*DT C IF( COLOR .EQ. 2 ) THEN COLOR = 8 CALL GWICOL( -2.0, 8 ) C ELSE IF( COLOR .EQ. 4 ) THEN COLOR = 5 CALL GWICOL( -1.0, 5 ) ENDIF C IF( PEN .EQ. 3 ) PEN = 0 IF( PEN .EQ. 2 ) PEN = 1 CALL GVECT( X2, Y2, PEN ) PEN = 1 ENDIF ENDIF 350 CONTINUE C====================================================================== C C DRAW LINE FROM LAST PICK TO SHOTPOINT C IF( TPPLOT .NE. 2 .AND. PEN .NE. 3 ) THEN IF( COLOR .EQ. 2 ) THEN COLOR = 8 CALL GWICOL( -2.0, 8 ) C ELSE IF( COLOR .EQ. 4 ) THEN COLOR = 5 CALL GWICOL( -1.0, 5 ) ENDIF C XS = XMIN + DELTAX*SHOTID(1,SHOT) CALL GVECT( XS, YMAX, 1 ) ENDIF 375 CONTINUE CALL GWICOL( -1.0, 1 ) RETURN END