CAINDMSAGLBL -- GEOMETRY DISPLAY LABEL AND LEGEND 00000100 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CTITLE SAGLBL -- GEOMETRY DISPLAY LABEL AND LEGEND 00000100 CA AUTHOR C. M. PARKER 00000200 CA DESIGNER C. M. PARKER 00000300 CA LANGUAGE VS FORTRAN 00000400 CA WRITTEN 10-04-83 00000500 C REVISED 02/06/84 BY CMP. CONVERT ANGLE TO DEGREES FOR PRINT.00000600 C REVISED 05/03/84 BY CMP. REDUCE SIZE OF NORTH ARROW. 00000610 C REVISED 05/17/84 BY CMP. CHANGE LNSP, CDPS TO R4 TYPE. 00000611 C DON'T PRINT PRIME LINE IF BLANK. 00000612 C REVISED 10/04/84 BY NAM. VS FORTRAN CONVERSION. ADDED 00000613 C CARRAY AND EQUIVALENCES. RENAMED: 00000614 C INLNSC TO INLSC1 IN ENTRY SAGLBL 00000615 C CRLNSC TO CRLSC1 IN ENTRY SAGLBL 00000616 C THETA TO THETA1 IN ENTRY SAGAXS. 00000617 C REVISED 11/19/85 BY CMP. LOAD DISTRICT NAMES VIA USDIST. 00000618 C REVISED 04/28/88 BY TJT. MADE LCGRPI FLOATING POINT. C REVISED 06/24/88 BY TJT. MADE LCGRPI FLOATING PT. CHANGE C PERMANENT. C 00000620 C REVISED MM/DD/YY 00000700 C 00000800 CA 00000900 CA 00001000 CA CALL SAGLBL (LBLPRM, XBLPRM) 00001100 CA LBLPRM IS AN INTEGER ARRAY WITH MEMBERS IN THE FOLLOWING SEQUENCE:00001200 CA INPUT MODE = SHOT OR DEPTHPOINT MODE I4 00001300 CA INPUT ITYPE = PLOT TYPE I4 00001400 CA 1 = SHOT/RECEIVER PLOT 00001500 CA 2 = DEPTH POINT PLOT 00001600 CA INPUT LNST = STARTING 3D LINE NUMBER I4 00001900 CA INPUT LNEN = ENDING 3D LINE NUMBER I4 00002000 CA INPUT MINOFF = MINIMUM OFFSET DISTANCE I4 00002100 CA INPUT MAXOFF = MAXIMUM OFFSET DISTANCE I4 00002200 CA INPUT FLDMAX = MAXIMUM FOLD WITHIN A RANGE DIVISION I4 00002300 CA INPUT RNGDIV = NUMBER OF DIVISONS OF THE OFFSET RANGE I4 00002400 CA INPUT BEGSHT = FIRST PRIME LINE NAME 3A4 00002500 CA INPUT ENDSHT = LAST PRIME LINE NAME 3A4 00002600 CA INPUT DSNUM = DATA SET NUMBER 2A4 00002700 CA INPUT DSTACC = DISTRICT ACCOUNT CODE (ACDIST) I4 00002800 CA INPUT PRJECT = PROJECT CODE (ACPROJ) I4 00002900 CA INPUT KPBUGF = DEBUG FLAG (KPBUGF) I4 00003000 CA INPUT LCGRPI = LINE CARD GROUP INTERVAL R4 00003100 CA INPUT LCTPSP = LINE CARD TRACES PER SHOTPOINT I4 00003200 CA INPUT LCMXFD = LINE CARD MAXIMUM FOLD I4 00003300 CA INPUT USER = SUBMITTER NAME (ACUSER) 5A4 00003400 CA INPUT AREA = AREA NAME (ACCOM) 8A4 00003500 CA 00003600 CA XBLPRM IS A REAL ARRAY WITH MEMBERS IN THE FOLLOWING SEQUENCE: 00003700 CA INPUT INLNSC = IN-LINE PLOT SCALE (FT/IN) R4 00003800 CA INPUT CRLNSC = CROSS-LINE PLOT SCALE (FT/IN) R4 00003900 CA INPUT THETA = ANGLE USED FOR ROTATION TO LINE AZIMUTH R4 00004000 CA INPUT CDPS = CDP SPACING R4 00004010 CA INPUT LNSP = 3D LINE SPACING R4 00004020 CA 00004100 CA 00004200 CA 00004300 CA THIS SUBROUTINE PRODUCES A LABEL AND LEGEND FOR EACH 00004400 CA VARIAN DISPLAY OUTPUT BY SDGDSP. 00004500 CAEND 00004600 CTITLE SAGAXS -- GEOMETRY DISPLAY AXES 00004700 CA AUTHOR C. M. PARKER 00004800 CA DESIGNER C. M. PARKER 00004900 CA LANGUAGE S/370 FORTRAN H 00005000 CA WRITTEN 10/04/83 00005100 C REVISED 02/06/84 CMP. FIX BUG TO ROTATE AXES. 00005200 C REVISED 03/30/84 CMP. CHECK FOR 90, 180 AND 270 ROTATION. 00005210 C REVISED 05/03/84 CMP. VERFITY AXES NOT PLOTTED OVER LABEL. 00005220 C REVISED 10/15/85 CMP. FIX BUG IN 90 DEGREE ROTATION, 00005230 C ADD XY AXES INCREMENT OPTION. 00005240 C REVISED 04/04/90 CLJ REMOVE THE AXES ADJUSTMENT TO PLOT C NO CLOSER THAN 1" INCH FROM LABEL. C IF AXES IS CLOSER THAN 1" INCH IT WILL C NOT BE PLOTTED. ALSO X&Y COORDINATES C FOR MIN. ARE ROUNDED DOWN, NOT UP. C REVISED 10/10/90 CLJ ADD ADDITIONAL CHECK TO NOT PLOT THE C AXES IF IT IS TO CLOSE TO THE LABEL OR C TO CLOSE TO THE EDGE OF THE PAPER FOR C LINE BEARINGS OF 0, 90, 180, & 270 C REVISED MM/DD/YY 00005300 CA 00005400 CA 00005500 CA CALL SAGAXS (INLNSC, CRLNSC, MNXC, MNYC, MXXC, MXYC, MNX, MNY, 00005600 CA MXX, MXY, THETA,AXSINC) 00005700 CA INPUT INLNSC = IN-LINE PLOT SCALE (FT/IN) R4 00005800 CA INPUT CRLNSC = CROSS-LINE PLOT SCALE (FT/IN) R4 00005900 CA INPUT MNXC = MINIMUM X COORDINATE BEFORE AZIMUTH ROTATION R4 00006000 CA INPUT MNYC = MINIMUM Y COORDINATE BEFORE AZIMUTH ROTATION R4 00006100 CA INPUT MXXC = MAXIMUM X COORDINATE BEFORE AZIMUTH ROTATION R4 00006200 CA INPUT MXYC = MAXIMUM Y COORDINATE BEFORE AZIMUTH ROTATION R4 00006300 CA INPUT MNX = MINIMUM X COORDINATE AFTER AZIMUTH ROTATION R4 00006400 CA INPUT MNY = MINIMUM Y COORDINATE AFTER AZIMUTH ROTATION R4 00006500 CA INPUT MXX = MAXIMUM X COORDINATE AFTER AZIMUTH ROTATION R4 00006600 CA INPUT MXY = MAXIMUM Y COORDINATE AFTER AZIMUTH ROTATION R4 00006700 CA INPUT THETA = ANGLE USED FOR PLOT ROTATION TO LINE AZIMUTH R4 00006800 CA INPUT AXSINC = XY AXES INCREMENT I4 00006810 CA 00006900 CA 00007000 CA 00007100 CA SAGAXS PRODUCES X/Y COORDINATE AXES FOR VARIAN DISPLAYS 00007200 CA OUTPUT BY SDGDSP. 00007300 CAEND 00007400 C 00007500 C 00007600 C EJECT 00007700 C ===================================================================== 00007800 C LIST OF VARIABLE NAMES 00007900 C 00008000 C APZ = VALUE SET TO 0.00001 TO APPROXIMATE ZERO C AREA = AREA NAME FOR LABEL 00008010 C AZMTH = LINE AZIMUTH 00008011 C BEGSHT = STARTING SHOT-LINE NAME (S MODE) 00008020 C CDPS = DEPTH POINT SPACING 00008030 C COSTHT = COSINE OF THETA 00008031 C CRLNSC = CROSS-LINE SCALE 00008032 C CRLSC1 = SAME AS CRLNSC BUT IN ENTRY POINT SAGLBL 00008033 C DATE = CURRENT DATE 00008034 C DSNUM = DATA SET NUMBER 00008035 C DSTACC = DISTRICT ACCOUNT CODE 00008036 C ENDSHT = ENDING SHOT-LINE NAME (S MODE) 00008037 C FLDMAX = MAXIMUM FOLD WITHIN A RANGE DIVISION 00008038 C FPNO1 = DUMMY FLOATING-POINT NUMBER (USED FOR PLOTTING) 00008039 C FPNO2 = 2ND DUMMY FLOATING-POINT NUMBER 00008040 C HGT = STANDARD HEIGHT OF CHARACTER FOR PLOTTING 00008041 C HGT1 = HGT/2. = REDUCED HEIGHT OF CHARACTER FOR PLOTTING 00008042 C INLNSC = INLINE SCALE 00008043 C INLSC1 = SAME AS INLNSC BUT IN ENTRY POINT SAGLBL 00008044 C ITYPE = TYPE OF PLOT BEING LABELLED 00008045 C KPBUGF = DEBUG FLAG 00008046 C LBDIST = DISTRICT NAME FOR LABEL 00008047 C LBLPRM = LABEL PARAMETERS (INTEGER) 00008048 C LCGRPI = GROUP INTERVAL FROM LINE CARD 00008049 C LCMXFD = MAXIMUM FOLD FROM LINE CARD 00008050 C LCTPSP = TRACES PER SHOTPOINT FROM LINE CARD 00008051 C LNST = STARTING 3D LINE NUMBER 00008052 C LNEN = ENDING 3D LINE NUMBER 00008053 C MAXOFF = MAXIMUM OFFSET TO PLOT 00008054 C MINOFF = MINIMUM OFFSET TO PLOT 00008055 C MNX = MINIMUM X-COORDINATE AFTER ROTATION 00008056 C MNXC = MINIMUM X-COORDINATE BEFORE ROTATION 00008057 C MNY = MINIMUM Y-COORDINATE AFTER ROTATION 00008058 C MNYC = MINIMUM Y-COORDINATE BEFORE ROTATION 00008059 C MXX = MAXIMUM X-COORDINATE AFTER ROTATION 00008060 C MXXC = MAXIMUM X-COORDINATE BEFORE ROTATION 00008061 C MXY = MAXIMUM Y-COORDINATE AFTER ROTATION 00008062 C MXYC = MAXIMUM Y-COORDINATE BEFORE ROTATION 00008063 C PRJECT = PROJECT CODE 00008064 C RNGDIV = NUMBER OF DIVISIONS OF THE OFFSET RANGE 00008065 C SINTHT = SINE OF THETA 00008066 C TDUMM = DUMMY TIME ARRAY 00008067 C THETA = ANGLE USED FOR ROTATION OF PLOT TO LINE AZIMUTH 00008070 C THETA1 = SAVE AS THETA BUT FOR ENTRY SAGAXS. 00008080 C TIME = CURRENT TIME 00008200 C USER = USER NAME FOR LABEL 00008300 C XBLPRM = LABEL PARAMETERS (REAL) 00008320 C XLEN = LENGTH OF PLOT IN X DIRECTION 00008321 C XMX = MAXIMUM X VALUE 00008322 C YMX = MAXIMUM Y VALUE 00008323 C 00008330 C 00008430 C 00008500 C 00008600 C EJECT 00008700 C====================================================================== 00008800 C 00008900 C 00009000 C ===================================================================== 00009100 C EJECT 00009200 SUBROUTINE SAGLBL (LBLPRM, XBLPRM) 00009300 C 00009400 IMPLICIT INTEGER (A-Z) 00009500 C 00009600 C 00009700 C=================================================================== 00009800 C 00009900 C 00010000 C INITIALIZATION AREA 00010100 C 00010200 C 00010300 COMMON COM (1) 00010400 REAL XCOM (1) 00010500 EQUIVALENCE (COM(1), XCOM (1)) 00010600 C 00010700 C=================================================================== 00010800 C 00010900 C EXTERNAL ARRAYS 00011000 C 00011100 INTEGER LBLPRM (40) 00011200 C 00011300 REAL XBLPRM (05) 00011400 C 00011500 C 00011600 C INTEGER ARRAYS 00011700 C 00011800 INTEGER AREA (08) 00011900 INTEGER BEGSHT (03) 00012000 INTEGER DATE (04) 00012100 INTEGER DSNUM (02) 00012200 INTEGER ENDSHT (03) 00012300 INTEGER LBDIST (04) 00012400 INTEGER TIME (04) 00012500 INTEGER TDUMM (04) 00012600 INTEGER USER (05) 00012700 C 00012800 C 00012900 C 00013000 C 00013100 C 00013200 C 00013300 C INTEGER VARIABLES AND CONSTANTS--LOCAL 00013400 C 00013500 INTEGER BLANK 00013600 INTEGER SHOT 00013700 C 00013800 CHARACTER*4 CARRAY(2) /' ','S '/ 00013810 C 00013811 EQUIVALENCE (CARRAY(1), BLANK) 00013812 EQUIVALENCE (CARRAY(2), SHOT) 00013813 C 00013820 C REAL VARIABLES AND CONSTANTS 00013900 C 00014000 REAL ANGLE 00014100 REAL APZ REAL AZMTH 00014110 REAL CDPS 00014120 REAL COSTHT 00014200 REAL CRLNSC 00014300 REAL CRLSC1 00014310 REAL FPNO1 00014400 REAL FPNO2 00014500 REAL HGT 00014600 REAL HGT1 00014700 REAL INLNSC 00014800 REAL INLSC1 00014801 REAL LCGRPI 00014810 REAL LNSP 00014810 REAL MNX 00014900 REAL MNY 00015000 REAL MNXC 00015100 REAL MNYC 00015200 REAL MXXC 00015300 REAL MXX 00015400 REAL MXY 00015500 REAL MXYC 00015600 REAL SINTHT 00015700 REAL THETA 00015800 REAL THETA1 00015810 REAL X 00015900 REAL X1 00016000 REAL X2 00016100 REAL X3 00016200 REAL XINC 00016300 REAL XLEN 00016400 REAL XMX 00016500 REAL Y 00016600 REAL Y1 00016700 REAL Y2 00016800 REAL Y3 00016900 REAL YINC 00017000 REAL YLEN 00017100 REAL YMX 00017200 C 00017300 REAL * 8 PI /3.14159265D0/ 00017400 C 00017500 C 00017600 C INITIALIZATION 00017700 C ============== 00017800 C 00017900 C 00018000 HGT = .14 00018100 HGT1 = HGT * .5 00018200 C 00018300 MODE = LBLPRM (01) 00018400 ITYPE = LBLPRM (02) 00018500 LNST = LBLPRM (03) 00018800 LNEN = LBLPRM (04) 00018900 MINOFF = LBLPRM (05) 00019000 MAXOFF = LBLPRM (06) 00019100 FLDMAX = LBLPRM (07) 00019200 RNGDIV = LBLPRM (08) 00019300 CALL ARMVE (LBLPRM(09), BEGSHT(1), 3) 00019400 CALL ARMVE (LBLPRM(12), ENDSHT(1), 3) 00019500 CALL ARMVE (LBLPRM(15), DSNUM (1), 2) 00019600 DSTACC = LBLPRM (17) 00019700 PRJECT = LBLPRM (18) 00019800 KPBUGF = LBLPRM (19) 00019900 C-------------------------- CHANGE LCGRPI TO FLOATING POINT C LCGRPI = LBLPRM (20) 00020000 CALL ARMVE (LBLPRM(20), LCGRPI, 1) 00020300 C-------------------------- CHANGE LCGRPI TO FLOATING POINT LCTPSP = LBLPRM (21) 00020100 LCMXFD = LBLPRM (22) 00020200 CALL ARMVE (LBLPRM(23), USER (1), 5) 00020300 CALL ARMVE (LBLPRM(28), AREA (1), 8) 00020400 INLSC1 = XBLPRM (01) 00020500 CRLSC1 = XBLPRM (02) 00020600 THETA = XBLPRM (03) 00020700 CDPS = XBLPRM (04) 00020710 LNSP = XBLPRM (05) 00020720 C 00020800 C 00020900 C MOVE PROPER DISTRICT NAME INTO LABEL 00021000 C 00021100 C 00021200 CALL USDIST(DSTACC,LBDIST) 00021210 C 00021220 C 00023700 C 00023800 C SET THE ORIGIN AND PLOT THE COMPANY LOGO 00023900 C 00024000 C 00024100 30 CALL PLOT (1.5, 6.5, -3) 00024200 CALL SALOGO 00024300 C 00024400 C 00024500 C DISPLAY HEADING 00024600 C 00024700 CALL SYMBOL (2.0, 1.0, 0.19, 'ARCO OIL & GAS COMPANY', 00024800 * 0.0,22) 00024810 CALL SYMBOL (2.0, 0.5, HGT, 00024900 * 'EXPLORATION DATA PROCESSING ', 0.0, 28) 00025000 CALL SYMBOL (2.0, 0.2, HGT, 00025100 * 'SPARC SEISMIC PROCESSING SYSTEM', 0.0, 31)00025200 IF (ITYPE .EQ. 1) CALL SYMBOL (2.0,-0.1, HGT, 00025300 * 'SHOT/RECEIVER MAP', 0.0, 17) 00025400 IF (ITYPE .EQ. 2) CALL SYMBOL (2.0,-0.1, HGT, 00025500 * 'DEPTH POINT MAP', 0.0, 15) 00025600 IF (ITYPE .EQ. 3) CALL SYMBOL (2.0,-0.1, HGT, 00025700 * 'HISTOGRAM/FOLD PLOT', 0.0, 19) 00025800 IF (ITYPE .EQ. 4) CALL SYMBOL (2.0,-0.1, HGT, 00025900 * 'SHOT/ROTATED RECEIVER MAP', 0.0, 25) 00026000 C 00026100 C 00026200 C PLOT THE LABEL 00026300 C 00026400 C 00026500 4100 CALL DATIME (DATE, TIME, TDUMM) 00026600 C 00026700 C 00026800 IF (ITYPE .GE. 3) GO TO 4110 00026900 C 00027000 C COMPUTE THE SIN AND COSINE OF THE AZIMUTH 00027100 C 00027200 COSTHT = COS(THETA) 00027300 SINTHT = SIN(THETA) 00027400 C 00027500 C PLOT NORTH ARROW 00027600 C 00027700 CALL PLOT (6.5, 3.0, -3) 00027800 C 00027900 C 00028000 CALL PLOT (0.0, 0.0, 3) 00028100 C 00028200 X = 1.25 * SINTHT 00028300 Y = 1.25 * COSTHT 00028400 CALL PLOT (X, Y, 2) 00028500 C 00028600 X = 0.25 * COSTHT + 0.75 * SINTHT 00028700 Y = 0.75 * COSTHT - 0.25 * SINTHT 00028800 CALL PLOT (X, Y, 2) 00028900 C 00029000 X = 1.0 * SINTHT 00029100 Y = 1.0 * COSTHT 00029200 CALL PLOT (X, Y, 2) 00029300 C 00029400 X = .25 * COSTHT - .25 * SINTHT 00029500 Y = -.25 * COSTHT - .25 * SINTHT 00029600 CALL SYMBOL(X, Y, 0.35, 'N', THETA, 1) 00029700 C 00029800 CALL PLOT (-6.5, -3.0, -3) 00029900 C 00030000 4110 CALL PLOT (9., -2.5, -3) 00030100 C 00030200 C LINE HEADER 00030300 C 00030400 CALL PLOT (-2.0, 2., 3) 00030500 CALL PLOT (-10.0, 2., 2 ) 00030600 CALL PLOT (-10.0, -2.5, 2) 00030700 CALL PLOT (-2.0, -2.5, 2) 00030800 CALL PLOT (-2.0, 2., 2) 00030900 CALL SYMBOL(-9.75, 1.5, HGT, 'AREA', 0.0, 4) 00031000 CALL SYMBOL(-7.75, 1.5, .11, AREA, 0., 16) 00031100 CALL SYMBOL(-9.75, 1.2, HGT, 'GEOPHYSICIST',0., 12) 00031200 CALL SYMBOL(-7.75, 1.2, .11, USER, 0., 16) 00031300 CALL SYMBOL(-5.75, 1.5, HGT, 'DISTRICT ', 0., 10) 00031400 CALL SYMBOL(-3.75, 1.5, .11, LBDIST, 0.0,16) 00031500 CALL SYMBOL(-5.75, 1.2, HGT, 'GAP PROJ. NO.',0.,13) 00031600 FPNO1 = PRJECT 00031700 CALL NUMBER(-3.75, 1.2, .11, FPNO1, 0., -1) 00031800 C 00031900 C 00032000 IF (INLSC1 .EQ. 0.25 .AND. ITYPE .EQ. 3) GO TO 4130 00032100 C 00032200 CALL SYMBOL(-9.75, .9, HGT, 'INLINE SCALE ',0., 13) 00032300 CALL NUMBER(-7.75, .9, .11, INLSC1, 0., -1) 00032400 CALL SYMBOL(999.,999.,.11,' FT/IN',0., 6) 00032500 CALL SYMBOL(-5.75, .9, HGT, 'CROSSLINE SCALE ',0., 16) 00032600 CALL NUMBER(-3.75, .9, .11, CRLSC1, 0., -1) 00032700 CALL SYMBOL(999.,999.,.11,' FT/IN',0., 6) 00032800 C 00032900 C PLOT THE BEARING OF THE ROTATED X-AXIS 00033000 C 00033100 ANGLE = (90 - (180 * THETA) / PI) 00033200 CALL SYMBOL(-9.75, 0.6,HGT,'AZIMUTH OF LINE ', 0., 16) 00033300 CALL NUMBER(-7.75, 0.6,.11, ANGLE, 0., 2) 00033400 CALL SYMBOL(999.,999.,.11, ' DEGREES FROM NORTH', 0., 19) 00033500 C 00033600 4130 FPNO1 = MINOFF 00033700 FPNO2 = MAXOFF 00033800 CALL SYMBOL(-9.75, 0.3,HGT,'MINIMUM OFFSET ', 0., 15) 00033900 CALL NUMBER(-7.75, 0.3, .11, FPNO1, 0., -1) 00034000 CALL SYMBOL(-5.75, 0.3,HGT,'MAXIMUM OFFSET ', 0., 15) 00034100 CALL NUMBER(-3.75, 0.3, .11, FPNO2, 0., -1) 00034200 C 00034300 C PLOT ADDITIONAL LINE INFORMATION 00034400 C 00034500 FPNO1 = LCGRPI 00034600 CALL SYMBOL (-9.75, -.3, HGT, 'GROUP INT. ', 0., 11) 00034700 CALL NUMBER (-7.75, -.3, .11, FPNO1, 0., -1) 00034800 FPNO1 = LCTPSP 00034900 CALL SYMBOL (-9.75, -.6, HGT, 'NO. TRACES ', 0., 11) 00035000 CALL NUMBER (-7.75, -.6, .11, FPNO1, 0., -1) 00035100 FPNO1 = LCMXFD 00035200 CALL SYMBOL (-9.75, -.9, HGT, 'MAX FOLD ', 0., 11) 00035300 CALL NUMBER (-7.75, -.9, .11, FPNO1, 0., -1) 00035400 FPNO1 = CDPS 00035500 CALL SYMBOL (-9.75, -1.2, HGT, 'CDP INT. ', 0., 11) 00035600 CALL NUMBER (-7.75, -1.2, .11, FPNO1, 0., -1) 00035700 FPNO1 = LNSP 00035800 CALL SYMBOL (-9.75, -1.5, HGT, 'LINE INT. ', 0., 11) 00035900 CALL NUMBER (-7.75, -1.5, .11, FPNO1, 0., -1) 00036000 C 00036100 C 00036200 C PRINT FOLD DIVISIONS FOR HISTOGRAM PLOTS 00036300 C 00036400 C 00036500 IF (ITYPE .NE. 3 .OR. RNGDIV .EQ. 1) GO TO 4150 00036600 C 00036700 CALL SYMBOL (-5.75, -.3, HGT, 'OFFSET DIVISIONS (HISTOGRAM)', 00036800 * 0.0, 28) 00036900 OFINC = (MAXOFF - MINOFF) / RNGDIV 00037000 X = -5.5 00037100 Y = -.5 00037200 FPNO2 = MINOFF 00037300 C 00037400 DO 4140 00037500 * I = 1, RNGDIV 00037600 FPNO1 = FPNO2 00037700 FPNO2 = FPNO1 + OFINC 00037800 CALL NUMBER ( X, Y, .11, FPNO1, 0., -1) 00037900 CALL SYMBOL (999., 999., .11, ' - ', 0., 3) 00038000 CALL NUMBER (999., 999., .11, FPNO2, 0., -1) 00038100 Y = Y - .2 00038200 IF (I .EQ. 4) X = -3.75 00038300 IF (I .EQ. 4) Y = -.5 00038400 4140 CONTINUE 00038500 C 00038600 IF (FLDMAX .EQ. 0.0) GO TO 4150 00038700 C 00038800 CALL SYMBOL(-5.75,-1.5, HGT, 'MAXIMUM FOLD / DIVISION ', 0.0, 24) 00038900 FPNO1 = FLDMAX 00039000 CALL NUMBER (999., 999., .11, FPNO1, 0., -1) 00039100 C 00039200 C PLOT A SAMPLE OF THE MAXIMUM FOLD WITHIN AN OFFSET DIVISION 00039300 C 00039400 X1 = .25 00039500 Y1 = .25 00039600 C 00039700 IF (INLSC1 .EQ. .25) GO TO 4145 00039800 C 00039900 X1 = CDPS / INLSC1 00040000 Y1 = LNSP / CRLSC1 00040100 C 00040200 4145 CALL PLOT (-2.5, -1.5, 3) 00040300 CALL PLOT (-2.5 + X1, -1.5, 2) 00040400 CALL PLOT (-2.5 + X1, -1.5 + Y1, 2) 00040500 CALL PLOT (-2.5, -1.5 + Y1, 2) 00040600 CALL PLOT (-2.5, -1.5, 2) 00040700 X2 = -2.5 + X1 / 2.0 00040800 CALL PLOT (X2, -1.5 + .05, 3) 00040900 Y1 = Y1 * .8 + .05 00041000 CALL PLOT (X2, -1.5 + Y1, 2) 00041100 C 00041200 4150 IF (BEGSHT(1) .EQ. 0 .AND. BEGSHT(2) .EQ. 0) GO TO 4160 00041300 C 00041301 CALL SYMBOL(-9.75, -2.0, HGT, 'PRIME LINES ', 0.0,12) 00041310 C 00041400 CALL SYMBOL(-7.75,-2.0,0.11,BEGSHT, 0.0, 8) 00041500 IF (ITYPE .EQ. 4) GO TO 4160 00041600 C 00041700 CALL SYMBOL(999.,999.,0.11,' TO ', 0.0, 4) 00041800 CALL SYMBOL(999.,999.,0.11,ENDSHT, 0.0, 8) 00041900 C 00042000 4160 CALL SYMBOL(-5.75, -2.3, HGT, 'DATE',0.,4) 00042100 CALL SYMBOL(-3.75, -2.3, .11, DATE ,0.,8) 00042200 C 00042300 IF (MODE .EQ. SHOT) GO TO 4200 00042400 C 00042500 FPNO1 = LNST 00042600 FPNO2 = LNEN 00042700 CALL SYMBOL(-9.75,-2.3,HGT,'DEPTH POINT LINES ', 0.0,18) 00042800 CALL NUMBER(999.,999.,0.11,FPNO1, 0.0,-1) 00042900 CALL SYMBOL(999.,999.,0.11,' TO ', 0.0, 6) 00043000 CALL NUMBER(999.,999.,0.11,FPNO2, 0.0,-1) 00043100 C 00043200 C WRITE OUT DATA SET NAME AND DEPTH POINT RANGE 00043300 C 00043400 4200 CALL SYMBOL(-9.75, -3.0, 0.10, DSNUM, 0.0, 8) 00043500 C 00043600 C 00043700 C 00043800 IF (ITYPE .EQ. 3) GO TO 4280 00043900 C 00044000 C PLOT LEGEND 00044100 C 00044200 CALL SYMBOL (-5.75, -.3, HGT, 'LEGEND :', 0., 8) 00044300 C 00044400 Y = -.6 00044500 C 00044600 IF (ITYPE .EQ. 2 .AND. SHTINC .EQ. 0) GO TO 4210 00044700 C 00044800 CALL SYMBOL (-5.75, -.6, HGT, 'SHOTPOINT---------- X',0.,21) 00044900 C 00045000 CALL SYMBOL (-3.25, -.7, .07, 'SP NO',0.,5) 00045100 C 00045200 Y = Y - .3 00045300 C 00045400 4210 IF (ITYPE .EQ. 1 .OR. ITYPE .EQ. 4) 00045500 * CALL SYMBOL (-5.75, Y, HGT, 'RECEIVER----------- ',0.,21) 00045600 C 00045700 IF (ITYPE .EQ. 1) 00045800 * CALL SYMBOL (999.,999., HGT1, 'A', 0., 1) 00045900 C 00046000 IF (ITYPE .EQ. 4) 00046100 * CALL SYMBOL (999.,999., HGT, 1, 0., -1) 00046200 C 00046300 IF (ITYPE .NE. 2) GO TO 4280 00046400 C 00046500 CALL SYMBOL (-5.75, Y, HGT, 'BIN CENTER--------- *',0.,21) 00046600 C 00046700 CALL SYMBOL (-3.20, Y-.1, .07, 'FOLD ',0.,11) 00046800 C 00046900 Y = Y - .3 00047000 CALL SYMBOL (-5.75, Y, HGT, 'DP TRACE----------- A',0.,21) 00047100 C 00047200 Y = Y - .3 00047300 CALL SYMBOL (-5.75, Y, HGT, 'CENTER OF GRAVITY-- ',0.,20) 00047400 CALL SYMBOL (999.,999.,HGT, 5, 0.0, -1) 00047500 C 00047600 CALL PLOT (0.0, -2.0, -3) 00047700 C 00047800 C 00047900 4280 RETURN 00048000 C 00048100 C********************************************************************** 00048200 C*** *** 00048300 C*** PLOT THE X/Y COORDINATE AXES FOR THE GEOMETRY DISPLAY *** 00048400 C*** *** 00048500 C********************************************************************** 00048600 C 00048700 C 00048800 C 00048900 C 00049000 ENTRY SAGAXS (INLNSC, CRLNSC, MNXC, MNYC, MXXC, MXYC, MNX, MNY, 00049100 * MXX, MXY, THETA1, AXSINC) 00049200 C 00049300 C 00049400 C COMPUTE NEW MIN AND MAX X AND Y COORDINATES IF AXES ARE PLOTTED 00049500 C 00049600 C 00049700 C CHECK THE XY AXES INCREMENT 00049701 C 00049702 IF (AXSINC .LT. 0) GO TO 4600 00049710 JAX = AXSINC 00049720 JAY = AXSINC 00049730 GO TO 4640 00049740 C 00049750 C 00049760 4600 DO 4610 00049800 * I = 1, 5 00049900 JAX = 10**I 00050000 IF (JAX/INLNSC .GT. 3.0) GO TO 4620 00050100 4610 CONTINUE 00050200 C 00050300 C 00050400 C 00050500 4620 DO 4630 00050600 * I = 1, 5 00050700 JAY = 10**I 00050800 IF (JAY/CRLNSC .GT. 3.0) GO TO 4640 00050900 4630 CONTINUE 00051000 C 00051100 C ROUND OFF THE X AND Y COORDINATES 00051200 C 00051300 4640 CONTINUE 00051400 IX = AINT(MNXC/JAX)*JAX 00051400 IY = AINT(MNYC/JAY)*JAY 00051500 N = AINT(MNXC) 00051510 IF (MOD(N,JAX) .EQ. 0) IX = N 00051520 N = AINT(MNYC) 00051530 IF (MOD(N,JAY) .EQ. 0) IY = N 00051540 IX1 = AINT(MXXC/JAX)*JAX + JAX 00051600 IY1 = AINT(MXYC/JAY)*JAY + JAY 00051700 IF (IX1 .LT. IX + JAX) IX1 = IX + JAX 00051710 IF (IY1 .LT. IY + JAY) IY1 = IY + JAY 00051720 C 00051800 C 00051900 C 00052300 C COMPUTE THE SIN AND COSINE OF THE AZIMUTH 00052400 C 00052500 COSTHT = COS(THETA1) 00052600 SINTHT = SIN(THETA1) 00052700 FPNO2 = ANGLE 00052800 YMX = (MXY - MNY) / CRLNSC 00052900 XMX = (MXX - MNX) / INLNSC 00053000 C 00053100 C 00053200 C 00053300 C PLOT THE X COORDINATE AXES 00053400 C 00053500 APZ = 0.00001 C DO 4680 00053600 * J = IX, IX1, JAX 00053700 K = 0 00053800 I1 = J * COSTHT 00054000 J1 = J * SINTHT 00054100 FPNO1= J 00054200 C 00054300 DO 4670 00054400 * I = IY, IY1, JAY 00054500 X = ((I1 + I * SINTHT) - MNX)/ INLNSC 00054600 Y = ((I * COSTHT - J1) - MNY)/ CRLNSC 00054700 C WRITE(6,9000) J,I,X,Y 00054710 C9000 FORMAT(3X,'J/I/X/Y/',2I8,2F12.1) 00054720 C 00054800 K = K + 1 00054900 IF (K .EQ. 2) GO TO 4650 00055000 X1 = X 00055100 Y1 = Y 00055200 GO TO 4670 00055300 4650 X2 = X 00055400 Y2 = Y 00055500 C 00055510 IF (Y2 .NE. Y1) 00055600 * X3 = X1 + (-1.0 - Y1)* (X2-X1)/(Y2-Y1) 00055700 Y3 = -1.0 00055710 C 00060620 IF (ABS(COSTHT) .LE. APZ .AND. Y1 .LT. -2.0) GO TO 4680 00060630 IF (ABS(COSTHT) .LE. APZ .AND. Y1 .GT. YMX+2.0)GO TO 4680 00060630 IF (ABS(SINTHT) .LE. APZ .AND. X1 .LT. -2.0) GO TO 4680 00060630 IF (ABS(SINTHT) .LE. APZ .AND. X1 .GT. XMX+2.0)GO TO 4680 00060630 C 00055720 IF (Y2 .EQ. Y1) X3 = -1.9 00055800 IF (Y2 .EQ. Y1) Y3 = Y2 00056100 C 00056200 IF (X3 .LT. -2.0) X3 = -2.0 00056301 IF (X3 .EQ. -2.0 .AND. X2 .NE. X1) 00056302 * Y3 = Y1 + (-2.0 -X1)* (Y2-Y1)/(X2-X1) 00056303 C 00056304 IF (X3 .GT. XMX + 2.) X3 = XMX + 2. 00056310 IF (X3 .EQ. XMX + 2. .AND. X2 .NE. X1) 00056320 * Y3 = Y1 + (XMX+2.0 -X1)* (Y2-Y1)/(X2-X1) 00056330 C 00056360 CALL NUMBER (X3, Y3, HGT1, FPNO1, FPNO2, -1) 00056400 CALL PLOT (X3, Y3, 3) 00056500 GO TO 4675 00056600 4670 CONTINUE 00056700 C 00056800 4675 IF (Y2 .NE. Y1) 00056900 * X3 = X1 + (YMX + 1. -Y1)* (X2-X1)/(Y2-Y1) 00057000 Y3 = YMX + 1. 00057010 C 00057011 IF (Y2 .EQ. Y1) X3 = XMX + 1. 00057012 IF (Y2 .EQ. Y1) Y3 = Y2 00057013 C 00057014 IF (X3 .LT. -2.) X3 = -2.0 00057020 IF (X3 .EQ. -2.0 .AND. X2 .NE. X1) 00057030 * Y3 = Y1 + (-2.0 -X1)* (Y2-Y1)/(X2-X1) 00057040 C 00057050 IF (X3 .GT. XMX + 2.) X3 = XMX + 2. 00057500 IF (X3 .EQ. XMX + 2. .AND. X2 .NE. X1) 00057510 * Y3 = Y1 + (XMX+2.0 -X1)* (Y2-Y1)/(X2-X1) 00057520 CALL PLOT (X3, Y3, 2) 00057600 CALL NUMBER (X3, Y3, HGT1, FPNO1, FPNO2, -1) 00057700 00057800 C 00057900 4680 CONTINUE 00058000 C 00058100 C PLOT THE Y COORDINATE AXES 00058200 C 00058300 FPNO2 = 270. + ANGLE 00058400 C 00058500 DO 4780 00058600 * I = IY, IY1, JAY 00058700 K = 0 00058800 I1 = I * COSTHT 00059000 J1 = I * SINTHT 00059100 FPNO1 = I 00059200 C 00059300 DO 4770 00059400 * J = IX, IX1, JAX 00059500 X = ((J * COSTHT + J1) - MNX)/ INLNSC 00059600 Y = ((I1 - J * SINTHT) - MNY)/ CRLNSC 00059700 C WRITE(6,9000) J,I,X,Y 00059710 K = K + 1 00059800 IF (K .EQ. 2) GO TO 4750 00059900 X1 = X 00060000 Y1 = Y 00060100 GO TO 4770 00060200 4750 X2 = X 00060300 Y2 = Y 00060400 IF (Y2 .NE. Y1) 00060500 * X3 = X1 + (-1.0 - Y1)* (X2-X1)/(Y2-Y1) 00060600 Y3 = -1.0 00060610 C 00060620 IF (ABS(COSTHT) .LE. APZ .AND. X1 .LT. -2.0) GO TO 4780 00060630 IF (ABS(COSTHT) .LE. APZ .AND. X1 .GT. XMX+2.0)GO TO 4780 00060630 IF (ABS(SINTHT) .LE. APZ .AND. Y1 .LT. -2.0) GO TO 4780 00060630 IF (ABS(SINTHT) .LE. APZ .AND. Y1 .GT. YMX+2.0)GO TO 4780 00060630 C 00060640 IF (Y2 .EQ. Y1) X3 = -2.0 00060700 IF (Y2 .EQ. Y1) Y3 = Y2 00061000 C 00061100 IF (X3 .LT. -2.0) X3 = -2.0 00061200 IF (X3 .EQ. -2.0 .AND. X2 .NE. X1) 00061210 * Y3 = Y1 + (-2.0 -X1)* (Y2-Y1)/(X2-X1) 00061220 C 00061221 IF (X3 .GT. XMX + 2.0) X3 = XMX + 2.0 00061230 IF (X3 .EQ. XMX + 2.0 .AND. X2 .NE. X1) 00061240 * Y3 = Y1 + (XMX+2.0 -X1)* (Y2-Y1)/(X2-X1) 00061250 C 00061260 CALL NUMBER (X3, Y3, HGT1, FPNO1, FPNO2, -1) 00061300 CALL PLOT (X3, Y3, 3) 00061400 GO TO 4775 00061500 4770 CONTINUE 00061600 C 00061700 C 00061710 4775 IF (Y2 .NE. Y1) 00061800 * X3 = X1 + (YMX + 1. -Y1)* (X2-X1)/(Y2-Y1) 00061900 Y3 = YMX + 1. 00061901 C 00061902 IF (X3 .LT. -2.0) X3 = -2.0 00061903 IF (X3 .EQ. -2.0 .AND. X2 .NE. X1) 00061910 * Y3 = Y1 + (-2.0 -X1)* (Y2-Y1)/(X2-X1) 00061920 C 00061921 IF (X3 .GT. XMX + 2.0) X3 = XMX + 2.0 00061930 IF (X3 .EQ. XMX + 2.0 .AND. X2 .NE. X1) 00061940 * Y3 = Y1 + (XMX+2.0 -X1)* (Y2-Y1)/(X2-X1) 00061950 C 00061960 IF (Y2 .EQ. Y1) X3 = XMX + 1. 00062000 IF (Y2 .EQ. Y1) Y3 = Y1 00062300 C 00062400 CALL PLOT (X3, Y3, 2) 00062500 CALL NUMBER (X3, Y3, HGT1, FPNO1, FPNO2, -1) 00062600 C 00062700 4780 CONTINUE 00062800 C 00062900 C 00063000 C 00063100 C 00067900 C 00068000 5000 RETURN 00068100 C 00068200 C 00068300 C 00068400 END 00068500