CTITLE SACMLRS -- MULTI-LAYER REFRACTION STATICS COLOR (UNIRAS) DISPLAY C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA CA AUTHOR JOHN V. S. HARVEY CA LANGUAGE VS FORTRAN (77) CA SYSTEM IBM ONLY CA REWRITTEN 06 OCT 1988 C REVISED 01-10-89 JJC CHANGED MLNS TO MLRS. CA CA CA CALL SACMLRS( QCLIST, CHFLAG, I4FLAG, REFDSN, FBNLAB, REMARK, CA NSHOT, SHOTID, SHOTNO, SPNODE, CA LCTPSP, CSPREF, CA NRECV, RECVID, ORTNSR, CA NCDPN, CDPNID, CDPNUM, CA NCDPT, CDPREF, CA NUMHRZ, RTIMES, PHSCAT, FBREAK, IOCREF, CA V1AVG, INVPRM, EXTOPT, CA REPVEL, CMODEL, PSEUDO, CA NGRID, ZMODEL, PMODEL, CA NRESID, MTIMES, SRESID, RRESID, CA XSCALE, X0, Y0, XYSIZE, XYSTEP, HT, CA WORKXC, WORKYC, PLTWRK, ERR1, ERR2 ) CA CA CA IN/OUT ARGUMENT TYPE DESCRIPTION CA CA IN QCLIST CH16 DISPLAY OPTIONS SELECTED CA ONE OR MORE OF THE FOLLOWING: CA 'G' FOR PLOTTER ALLOCATION AND OPEN CA CA 'S' TIME-PICK DISPLAY (SPLIT SPREAD) CA 'P' POSITIVE-OFFSET TIME PICKS ONLY CA 'N' NEGATIVE-OFFSET TIME PICKS ONLY CA CA 'H' FIRST-BREAK HORIZON MAP CA CA 'R' RECIPROCAL TIME ERRORS CA 'I' INWARD RAYPATH CANC. ERRORS CA 'O' OUTWARD RAYPATH CANC. ERRORS CA CA '2' 2-WIDE BULL'S-EYE CANC. ERRORS CA '3' 3-WIDE BULL'S-EYE CANC. ERRORS CA '4' 4-WIDE BULL'S-EYE CANC. ERRORS CA '5' 5-WIDE BULL'S-EYE CANC. ERRORS CA '6' 6-WIDE BULL'S-EYE CANC. ERRORS CA '7' 7-WIDE BULL'S-EYE CANC. ERRORS CA '8' 8-WIDE BULL'S-EYE CANC. ERRORS CA CA 'F' PHANTOMING MAX SCATTERING CA CA '#' REFERENCE GRID FOR FBN MAPPING CA CA 'V' VELOCITY MODEL CA 'E' ELEVATION MODEL CA 'T' VERTICAL RAY TIMES CA CA 'M' MODEL-PREDICTION TIME ERRORS CA 'Q' RECIPROCAL ERRORS IN PREDICTIONS CA CA 'D' RESIDUAL ESTIMATES CA CA IN CHFLAG CH4 CONTROL FLAGS (SEE BELOW) CA (1) = PROCESSING LIMIT CA (2) = DATUMING OPTION CA (3) = MODEL FILE FLAG CA (4) = TIME PICK DISPLAY FORMAT CA (5) = T PICK QC DISPLAY FORMAT CA (6) = VELOCITY DIRECTION FLAG CA (7) = PLOTTER CODE CA ( 1-D ARRAY DIMENSIONED: 7 ) CA CA IN I4FLAG I4 CONTROL AND REFERENCE CONSTANTS CA (1) = REFERENCE HORIZON CA 1-7 = SPECIFIC HORIZON INDEX CA 99 = MULTI-HORIZON CA (2) = TIME STEP FOR QC COLOR SCALE (MS) CA (3) = RECIPROCAL CROSS-LINE LIMIT CA (4) = MINIMUM PLOTTED VERTICAL RAY TIME CA (5) = MINIMUM PLOTTED VERTICAL RAY TIME CA (6) = CA (7) = CA (8) = DEBUG PRINT FLAG CA (9) = DEBUG PRINT OUTPUT UNIT NUMBER CA (10) = MAX. ALLOWABLE RECIPROCAL ERROR CA (11) = MAX. ALLOWABLE BULL'S-EYE ERROR CA (12) = REFERENCE BULL'S-EYE CANC. WIDTH CA (13) = MAX. ALLOWABLE RAY. CANCEL. ERROR CA (14) = SPREAD LENGTH (IN CDP INTERVALS) CA ( 1-D ARRAY DIMENSIONED: 14 ) CA CA IN REFDSN CH8 REFERENCE DATASET NUMBERS CA (1) = OLD TIME PICK FILE CA (2) = NEW MODEL FILE CA ( 1-D ARRAY DIMENSIONED: 2 ) CA CA IN FBNLAB CH8 FIRST-BREAK NODE LABELS CA CA IN REMARK CH32 REMARKS 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 SHOTPOINT NUMBER LIST CA ( 1-D ARRAY DIMENSIONED: NSHOT ) CA IN SPNODE I2 LARGEST OFFSET ORTN PICKED FOR EACH HORIZON CA (HORIZ,1,SHOT) = LOW-SIDE MAPPING CA (DEFAULTS TO -999) CA (HORIZ,2,SHOT) = HIGH-SIDE MAPPING CA (DEFAULTS TO -999) CA ( 3-D ARRAY DIMENSIONED: 8 BY 2 BY NSHOT ) 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 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 IN ORTNSR I2 TRACE-RECEIVER CROSS-REFERENCE CA ORTNSR(I,J) = TRACE NUMBER (ORTN) CA OF SHOT I AT REC J CA = 0 IF OUT OF RANGE CA ( 2-D ARRAY DIMENSIONED: NSHOT BY NRECV ) 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 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 PHSCAT R4 PHANTOMING MAX SCATTERING IN SECONDS CA ( 3-D ARRAY DIMENSIONED: LCTPSP BY NSHOT BY NUMHRZ ) 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 IOCREF I2 REFERENCE CDPT LOCATIONS FOR INWARD AND CA OUTWARD CANCELLATION CA (1,SIDE,HORIZ,CDPN) = INWARD REFERENCE CA FIRST BREAKS ONLY CA (DEFAULTS TO -999) CA (2,SIDE,HORIZ,CDPN) = OUTWARD REFERENCE CA FIRST BREAKS ONLY CA (DEFAULTS TO -999) CA (3,SIDE,HORIZ,CDPN) = OUTWARD REFERENCE CA INCLUDING PHANTOMS CA (DEFAULTS TO -999) CA ( 4-D ARRAY DIMENSIONED: 3 BY 2 BY NUMHRZ BY NCDPN ) CA CA IN V1AVG R4 AVERAGE SURFACE VELOCITY CA CA IN INVPRM I2 HORIZON INVERSION PARAMETERS CA (HRZ,01) = NUMBER OF PASSES CA (HRZ,02) = DIAGNOSTICS LEVEL CA (HRZ,03) = CDP WINDOW WIDTH CA (HRZ,04) = OFFSET WINDOW WIDTH CA (HRZ,05) = VELOCITY SMOOTHING LENGTH CA (HRZ,06) = CRIT. OFFSET SMOOTHING LENGTH CA (HRZ,07) = DIP ANGLE SMOOTHING LENGTH CA (HRZ,08) = ELEVATION SMOOTHING LENGTH CA (HRZ,09) = LEFT END REGRESSION LENGTH CA (HRZ,10) = RIGHT END REGRESSION LENGTH CA ( 2-D ARRAY DIMENSIONED: 8 BY 10 ) CA CA IN EXTOPT CH4 EXTRAPOLATION OPTIONS CA (HRZ,1) = LEFT END OPTION CA (HRZ,2) = RIGHT END OPTION CA ( 2-D ARRAY DIMENSIONED: 8 BY 2 ) CA CA IN REPVEL R4 REPLACEMENT VELOCTIY CA IN CMODEL R8 MODEL VALUES ASSOCIATED WITH CDP LOCATIONS CA (CDPN,1) = VERTICAL RAY TIME (SEC) CA (CDPN,2) = DATUM ELEVATION CA (CDPN,3) = STATIC REFERENCE TIME CA (CDPN,4) = TOPOG. VERTICAL RAY TIME (SEC) CA ( 2-D ARRAY DIMENSIONED: NCDPN BY 4 ) CA IN PSEUDO R4 PSEUDO-DATUM ELEVATION CA CA IN NGRID I4 NUMBER OF ANALYSIS GRID POINTS CA CA IN ZMODEL R4 THE ELEVATION MODEL FOR ALL HORIZONS CA ( 2-D ARRAY DIMENSIONED: NGRID BY 0:NUMHRZ ) CA CA IN PMODEL R4 THE SLOWNESS MODEL FOR THE LAYER BELOW CA EACH HORIZON DEFINED FOR ZMODEL CA (GRID,CURHRZ,1) = SLOWNESS ESTIMATE CA (GRID,CURHRZ,2) = VELOCITY RMS ERROR CA ( 3-D ARRAY DIMENSIONED: NGRID BY 0:NUMHRZ BY 2 ) CA CA CA IN NRESID I4 NUMBER OF RESIDUAL ITERATIONS CA ( 0 DISABLES RESIDUALS ) CA CA IN MTIMES R4 MODEL-PREDICTED TIMES IN SECONDS CA SIGN INDICATES SOURCE: CA POSITIVE FOR MODELLED 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 SRESID R4 SHOT-CONSISTENT LEAST-SQUARES RESIDUALS CA (SHOT,1) = POSITIVE RAY (L-R) RESIDUAL CA (SHOT,2) = NEGATIVE RAY (R-L) RESIDUAL CA ( 2-D ARRAY DIMENSIONED: NSHOT BY 2 ) CA CA IN RRESID R4 RECV-CONSISTENT OVERBURDEN VALUES CA (RECV,1) = POSITIVE RAY (L-R) RESIDUAL CA (RECV,2) = NEGATIVE RAY (R-L) RESIDUAL CA ( 2-D ARRAY DIMENSIONED: NRECV BY 2 ) CA CA CA IN XSCALE I4 LATERAL PLOT SCALING FACTORS CA 1) TIME-PICK DISPLAY FACTOR CA 2) SHOT-MODE QC DISPLAY FACTOR CA 3) CDPN-MODE QC DISPLAY FACTOR CA 4) FIRST-BREAK MAP DISPLAY FACTOR CA 5) INVERSION MODEL DISPLAY FACTOR CA 6) INVERSION ERROR DISPLAY FACTOR CA ( 1-D ARRAY DIMENSIONED: 6 ) CA CA OUT/IN X0, Y0 R4 ORIGIN OF CURRENT PLOTTING CA ALLOW 1.0 FOR BOTTOM LABELS CA 1.5 FOR SIDE LABELS CA 1.5 FOR TOP LABELS CA OUT/IN XYSIZE R4 PLOT SIZES CA 1,I) IN X DIRECTION CA 2,I) IN Y DIRECTION CA ( 1-D ARRAY DIMENSIONED: 2 BY 6 ) CA OUT/IN XYSTEP R4 STEP SIZES CA 1,I) IN X DIRECTION CA 2,I) IN Y DIRECTION CA ( 1-D ARRAY DIMENSIONED: 2 BY 6 ) CA OUT/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 ) CA CA CA WORK WORKXC R4 WORK AREA (999 WORDS) CA WORK WORKXC R4 WORK AREA (999 WORDS) CA WORK PLTWRK I2 WORK AREA (16384 HALFWORDS) CA CA OUT ERR1 I4 ERROR CODE. CA 1 = NO ERROR CA 2 = INVALID DATA SET TYPE (FIRST CARD COL 40) CA 3 = SEISTRAN FILE ACCESS FAILURE CA 4 = LINE NAME BLANK ON LINE CARD. CA 5 = LINE NAME CONTAINS EMBEDDED BLANKS. CA 6 = LINE NAME INVALID CA 7 = INVALID PLOTTER CODE (FIRST CARD COL 76) CA 8 = SVC 99 ENVIRONMENTAL ERROR (SEE ERR2) CA 9 = SVC 99 INSTALLATION ERROR (SEE ERR2) CA 10 = SVC 99 PARAMETER ERROR (SEE ERR2) CA 11 = NOT USED CA 12 = DCB MEMORY ALLOCATION FAILURE CA 13 = NOT USED CA 14 = NOT USED CA 15 = DATA SET NAME ALL BLANKS. CA 16 = ZERO OR NEGATIVE NUMBER OF RECORDS CA 18 = INVALID BLOCKSIZE CA 19 = BLOCKSIZE/RECORD LENGTH MISMATCH CA 20 = BLOCKSIZE/RECORD LENGTH (SEISMIC). CA 21 = INVALID TYPE OF PLOT CA 22 = TSO USERID RETRIEVEL ERROR CA 23 = NO DATA CARDS FOR PROCESS. CA 24 = PLOTNO > KPDBGN & FAT'S EXIST. CA 25 = NOT USED CA 26 = OUTPUT TOO LARGE FOR INTERACTIVE CA 27 = INVALID RECORD COUNT CA 28 = INVALID BLOCKSIZE CA 29 = EXCESSIVE VOLUME COUNT CA CA 102 = SVC 99 ENVIRONMENTAL ERROR (SEE ERR2) CA 103 = SVC 99 INSTALLATION ERROR (SEE ERR2) CA 104 = SVC 99 PARAMETER ERROR (SEE ERR2) CA 105 = ATTEMPT TO CLOSE DATA SET FAILED. CA 107 = DCB AREA NOT RELEASED BY FREEMAIN. CA 108 = DDNAME IN DCB IS ALL BLANKS. CA CA CA OUT ERR2 I4 CODES FROM DYNAMIC ALLOCATION (SVC 99). CA BYTES 1 AND 2 = ERROR CODE, CA BYTES 3 AND 4 = INFORMATION CODE. CA CA SEE IBM MANUAL GC28-0627-2, OS/VS2 MVS CA SYSTEM PROGRAMMING LIBRARY: CA JOB MANAGEMENT, PAGES 28 TO 31.0. CA CA--------------------------------------------------------------------- CA CA CHARACTER CONTROL FLAGS CA CA CHFLAG(1): THE PROCESSING LIMIT CA CA 'DISP' FOR DISPLAY ONLY CA 'PHAN' FOR PHANTOMING AND DISPLAY CA 'INVT' FOR INVERSION WITHOUT STATICS APPLICATION CA 'STAT' FOR INVERSION WITH REFRACTION STATICS CA CA CA CHFLAG(2): THE DATUMING OPTION CA CA 'USER' FOR USER DEFINED DATUM CA 'FCDP' FOR FLOATING CDP DATUM CA 'MINS' FOR MINIMUM LINE STATIC (AVG FLOATING CDP) DATUM CA 'MIGD' FOR MIGRATION DATUM CA CA CA CHFLAG(3): THE MODEL FILE FLAG CA CA 'NONE' FOR NO NEW MODEL FILE CA 'MODF' FOR NEW MODEL FILE CREATION AFTER INVERSION CA CA CA CHFLAG(4): THE TIME PICK DISPLAY FORMAT CA CA 'NONE' FOR NO DISPLAY CA CA 'R-FB' FOR RECV-MODE ONE-GRID DISPLAY OF FIRST BREAKS ONLY CA 'R-AP' FOR RECV-MODE MULTI-GRID DISPLAY OF ALL PICKS CA 'R-1H' FOR RECV-MODE ONE-GRID DISPLAY OF ONE HORIZON ONLY CA CA 'C-FB' FOR CDP-MODE ONE-GRID DISPLAY OF FIRST BREAKS ONLY CA 'C-AP' FOR CDP-MODE MULTI-GRID DISPLAY OF ALL PICKS CA 'C-1H' FOR CDP-MODE ONE-GRID DISPLAY OF ONE HORIZON ONLY CA CA CA CHFLAG(5): THE TIME PICK ERROR (QC) DISPLAY FORMAT CA CA 'NONE' FOR NO DISPLAY CA CA 'S-FB' FOR SHOT-MODE ONE-GRID DISPLAY OF FIRST BREAKS ONLY CA 'S-AP' FOR SHOT-MODE MULTI-GRID DISPLAY OF ALL PICKS CA 'S-1H' FOR SHOT-MODE ONE-GRID DISPLAY OF ONE HORIZON ONLY CA CA 'C-FB' FOR CDP-MODE ONE-GRID DISPLAY OF FIRST BREAKS ONLY CA 'C-AP' FOR CDP-MODE MULTI-GRID DISPLAY OF ALL PICKS CA 'C-1H' FOR CDP-MODE ONE-GRID DISPLAY OF ONE HORIZON ONLY CA CA CA CHFLAG(6): VELOCITY PLOTTING DIRECTION FLAG CA CA ' UP ' FOR UPWARD CA 'DOWN' FOR DOWNWARD CA CA CA CHFLAG(7): THE PLOTTER CODE CA CA 'NONE' FOR NO PLOTTING CA 'META' FOR PC G/GX METAFILE (BATCH) CA 'VERC' FOR ONLINE COLOR VERSATEC CA CA********************************************************************** CA CA COMMON BLOCKS USED: / P / -- SPARC REFERENCE PARAMETERS CA CA KPDSNS MUST BE INITIALIZED CA -- PREFERRABLY TO KPIUSM -- CA BEFORE FIRST CALL TO SACMLRS CAEND C*********************************************************************** C C SUBROUTINES CALLED: SACNEWP -- PLOTTER INITIALIZATION FOR UNIRAS C SACPICK -- MLRS TIME-PICK DISPLAYS C SACRTQC -- MLRS TIME-PICK ERROR QC DISPLAYS C SACINVT -- MLRS MODEL DISPLAYS C SACENDP -- PLOT TERMINATION C C GCHAR -- UNIRAS CHARACTER STRING PLOTTING C GCHARA -- UNIRAS CHARACTER PLOTTING ANGLE C GNUMB -- UNIRAS NUMERIC VALUE PLOTTING C GRECT -- UNIRAS RECTANGLE FILL WITH COLOR C C*********************************************************************** C SUBROUTINE SACMLRS( QCLIST, CHFLAG, I4FLAG, * REFDSN, FBNLAB, REMARK, * NSHOT, SHOTID, SHOTNO, SPNODE, * LCTPSP, CSPREF, * NRECV, RECVID, ORTNSR, * NCDPN, CDPNID, CDPNUM, * NCDPT, CDPREF, * NUMHRZ, RTIMES, PHSCAT, FBREAK, IOCREF, * V1AVG, INVPRM, EXTOPT, * REPVEL, CMODEL, PSEUDO, * NGRID, ZMODEL, PMODEL, * NRESID, MTIMES, SRESID, RRESID, * XSCALE, X0, Y0, XYSIZE, XYSTEP, HT, * WORKXC, WORKYC, PLTWRK, ERR1, ERR2 ) IMPLICIT INTEGER (A-Z) C CHARACTER*16 QCLIST CHARACTER*4 CHFLAG(7) INTEGER I4FLAG(14) CHARACTER*8 REFDSN(2) CHARACTER*8 FBNLAB CHARACTER*32 REMARK C REAL SHOTID(5,NSHOT) INTEGER*2 SHOTNO(NSHOT) INTEGER*2 SPNODE(8,2,NSHOT) INTEGER*2 CSPREF(2,LCTPSP,NSHOT) C REAL RECVID(5,NRECV) INTEGER*2 ORTNSR(NSHOT,NRECV) C REAL CDPNID(2,NCDPN) INTEGER*2 CDPNUM(NCDPN) INTEGER*2 CDPREF(3,2,NCDPT,NCDPN) C REAL RTIMES(LCTPSP,NSHOT,NUMHRZ) REAL PHSCAT(LCTPSP,NSHOT,NUMHRZ) INTEGER*2 FBREAK(LCTPSP,NSHOT,2) INTEGER*2 IOCREF(3,2,NUMHRZ,NCDPN) C REAL V1AVG C INTEGER*2 INVPRM(8,10) CHARACTER*4 EXTOPT(8,2) C REAL REPVEL REAL*8 CMODEL(NCDPN,4) REAL PSEUDO C REAL ZMODEL(NGRID,0:NUMHRZ) REAL PMODEL(NGRID,0:NUMHRZ,2) C REAL MTIMES(LCTPSP,NSHOT,NUMHRZ) REAL SRESID(NSHOT,2) REAL RRESID(NRECV,2) C INTEGER XSCALE(6) C REAL X0, Y0 REAL XYSIZE(2,6) REAL XYSTEP(2,6) REAL HT(5) C REAL WORKXC(999) REAL WORKYC(999) INTEGER*2 PLTWRK(16384) C ------------------------------------------- C C CHARACTER ARRAYS -- LOCAL C CHARACTER*44 DSNAME CHARACTER*40 LINE1 /'MULTI-LAYER REFRACTION STATICS$ '/ CHARACTER*40 LINE2 /' QUALITY CONTROL DISPLAY$ '/ CHARACTER*40 PROCNM(2) CHARACTER*16 HRZLAB /'REFRACTOR 1(AB)$'/ CHARACTER*8 HRZNUM /'12345678'/ CHARACTER*8 CHTEMP /' $ '/ CHARACTER*4 VELFLG CHARACTER*1 QCPLOT C CHARACTER*12 QCREF /'R2345678IOF#'/ CHARACTER*4 FBREF /'HMQ '/ CHARACTER*4 IMREF /'VETD'/ C CHARACTER*12 PIKFIL CHARACTER*4 TPAXIS, TQAXIS, FBAXIS C ------------------------------------------- C C FIXED CHARACTER PLOTTING HEIGHTS C REAL HT008, HT010, HT014 PARAMETER ( HT008 = 2.032, HT010 = 2.540, HT014 = 3.556 ) C C REFERENCE DISPLACEMENT FOR HEADER BOX C REAL DYL PARAMETER ( DYL = 3.5 ) C ------------------------------------------- C C REAL VARIABLES -- LOCAL C REAL XCOUNT(6) C REAL COUNT REAL TSCALE REAL X, X1, X2, Y REAL DXL REAL XL1, XL2, XL3, XL4, XL5 REAL YL1, YL2 REAL XMAX, YMAX REAL XSTEP, YSIZE C ------------------------------------------- C C INTEGER ARRAYS -- LOCAL C INTEGER CYAN(30), MAGENT(30), YELLOW(30) C C*********************************************************************** C*** **** C*** OPTIONS LIST **** C*** **** C*********************************************************************** C KPBUGF = I4FLAG(8) IPR = I4FLAG(9) C COUNT = I4FLAG(2) TSCALE = 1000.0/COUNT C WRITE( IPR, 8000 ) QCLIST C ALLOCF = 0 NUMTPS = 0 NUMTQC = 0 NUMFBM = 0 NUMINV = 0 C DO 25 I = 1, 16 IF( QCLIST(I:I) .EQ. 'G' ) ALLOCF = 1 C IF( QCLIST(I:I) .EQ. 'P' ) NUMTPS = 1 IF( QCLIST(I:I) .EQ. 'S' ) NUMTPS = 2 IF( QCLIST(I:I) .EQ. 'N' ) NUMTPS = 3 C IF( QCLIST(I:I) .EQ. 'R' ) NUMTQC = NUMTQC + 1 IF( QCLIST(I:I) .EQ. 'I' ) NUMTQC = NUMTQC + 1 IF( QCLIST(I:I) .EQ. 'O' ) NUMTQC = NUMTQC + 1 IF( QCLIST(I:I) .EQ. '2' ) NUMTQC = NUMTQC + 1 IF( QCLIST(I:I) .EQ. '3' ) NUMTQC = NUMTQC + 1 IF( QCLIST(I:I) .EQ. '4' ) NUMTQC = NUMTQC + 1 IF( QCLIST(I:I) .EQ. '5' ) NUMTQC = NUMTQC + 1 IF( QCLIST(I:I) .EQ. '6' ) NUMTQC = NUMTQC + 1 IF( QCLIST(I:I) .EQ. '7' ) NUMTQC = NUMTQC + 1 IF( QCLIST(I:I) .EQ. '8' ) NUMTQC = NUMTQC + 1 IF( QCLIST(I:I) .EQ. 'F' ) NUMTQC = NUMTQC + 1 IF( QCLIST(I:I) .EQ. '#' ) NUMTQC = NUMTQC + 1 C IF( QCLIST(I:I) .EQ. 'H' ) NUMFBM = NUMFBM + 1 IF( QCLIST(I:I) .EQ. 'M' ) NUMFBM = NUMFBM + 1 IF( QCLIST(I:I) .EQ. 'Q' ) NUMFBM = NUMFBM + 1 C IF( QCLIST(I:I) .EQ. 'D' ) NUMINV = NUMINV + 1 IF( QCLIST(I:I) .EQ. 'V' ) NUMINV = NUMINV + 1 IF( QCLIST(I:I) .EQ. 'E' ) NUMINV = NUMINV + 1 IF( QCLIST(I:I) .EQ. 'T' ) NUMINV = NUMINV + 1 25 CONTINUE C---------------------------------------------------------------------- C C ALLOCATION FOR TIME PICK DISPLAYS C XCOUNT(1) = 0.0 NUMTPD = 0 C IF( NUMTPS .GT. 0 .AND. XSCALE(1) .NE. 0 ) THEN XCOUNT(1) = NGRID C ------------------------------------------- C IF( CHFLAG(4) .EQ. 'R-FB' ) TPHRZ = 99 IF( CHFLAG(4) .EQ. 'R-AP' ) TPHRZ = 101 IF( CHFLAG(4) .EQ. 'R-1H' ) TPHRZ = I4FLAG(1) C IF( CHFLAG(4) .EQ. 'C-FB' ) TPHRZ = 99 IF( CHFLAG(4) .EQ. 'C-AP' ) TPHRZ = 101 IF( CHFLAG(4) .EQ. 'C-1H' ) TPHRZ = I4FLAG(1) C IF( TPHRZ .NE. 101 ) NUMTPD = 1 IF( TPHRZ .EQ. 101 ) NUMTPD = NUMHRZ C ------------------------------------------- C IF( CHFLAG(4) .EQ. 'R-FB' ) TPAXIS = 'RECV' IF( CHFLAG(4) .EQ. 'R-AP' ) TPAXIS = 'RECV' IF( CHFLAG(4) .EQ. 'R-1H' ) TPAXIS = 'RECV' C IF( CHFLAG(4) .EQ. 'C-FB' ) TPAXIS = 'CDPN' IF( CHFLAG(4) .EQ. 'C-AP' ) TPAXIS = 'CDPN' IF( CHFLAG(4) .EQ. 'C-1H' ) TPAXIS = 'CDPN' ENDIF C---------------------------------------------------------------------- C C ALLOCATION FOR TIME PICK QC DISPLAYS C XCOUNT(2) = 0.0 XCOUNT(3) = 0.0 C NUMSQC = 0 NUMCQC = 0 C IF( NUMTQC .GT. 0 ) THEN IF( CHFLAG(5) .EQ. 'S-FB' ) QCHRZ = 99 IF( CHFLAG(5) .EQ. 'S-AP' ) QCHRZ = 101 IF( CHFLAG(5) .EQ. 'S-1H' ) QCHRZ = I4FLAG(1) C IF( CHFLAG(5) .EQ. 'C-FB' ) QCHRZ = 99 IF( CHFLAG(5) .EQ. 'C-AP' ) QCHRZ = 101 IF( CHFLAG(5) .EQ. 'C-1H' ) QCHRZ = I4FLAG(1) C IF( CHFLAG(5) .EQ. 'FBRK' ) QCHRZ = 99 C ------------------------------------------- C IF( CHFLAG(5) .EQ. 'S-FB' ) TQAXIS = 'SHOT' IF( CHFLAG(5) .EQ. 'S-AP' ) TQAXIS = 'SHOT' IF( CHFLAG(5) .EQ. 'S-1H' ) TQAXIS = 'SHOT' C IF( CHFLAG(5) .EQ. 'C-FB' ) TQAXIS = 'CDPN' IF( CHFLAG(5) .EQ. 'C-AP' ) TQAXIS = 'CDPN' IF( CHFLAG(5) .EQ. 'C-1H' ) TQAXIS = 'CDPN' C IF( CHFLAG(5) .EQ. 'FBRK' ) TQAXIS = 'BOTH' C ------------------------------------------- C C SHOT-MODE DISPLAYS C IF( TQAXIS .EQ. 'SHOT' .OR. TQAXIS .EQ. 'BOTH' ) THEN IF( XSCALE(2) .NE. 0 ) THEN XCOUNT(2) = NSHOT C IF( QCHRZ .NE. 101 ) NUMSQC = 1 IF( QCHRZ .EQ. 101 ) NUMSQC = NUMHRZ ENDIF ENDIF C ------------------------------------------- C C CDPN-MODE DISPLAYS C IF( TQAXIS .EQ. 'CDPN' .OR. TQAXIS .EQ. 'BOTH' ) THEN IF( XSCALE(3) .NE. 0 ) THEN XCOUNT(3) = NCDPN C IF( QCHRZ .NE. 101 ) NUMCQC = 1 IF( QCHRZ .EQ. 101 ) NUMCQC = NUMHRZ ENDIF ENDIF ENDIF C---------------------------------------------------------------------- C C ALLOCATION FOR FIRST-BREAK MAP(S) C XCOUNT(4) = 0.0 C IF( NUMFBM .GT. 0 .AND. XSCALE(4) .NE. 0 ) THEN IF( CHFLAG(5) .EQ. 'S-FB' ) FBAXIS = 'SHOT' IF( CHFLAG(5) .EQ. 'S-AP' ) FBAXIS = 'SHOT' IF( CHFLAG(5) .EQ. 'S-1H' ) FBAXIS = 'SHOT' C IF( CHFLAG(5) .EQ. 'C-FB' ) FBAXIS = 'CDPN' IF( CHFLAG(5) .EQ. 'C-AP' ) FBAXIS = 'CDPN' IF( CHFLAG(5) .EQ. 'C-1H' ) FBAXIS = 'CDPN' C IF( CHFLAG(5) .EQ. 'FBRK' ) FBAXIS = 'SHOT' C IF( FBAXIS .EQ. 'SHOT' ) XCOUNT(4) = NSHOT IF( FBAXIS .EQ. 'CDPN' ) XCOUNT(4) = NCDPN ELSE NUMFBM = 0 ENDIF C---------------------------------------------------------------------- C C ALLOCATION FOR INVERSION DISPLAYS C XCOUNT(5) = 0.0 NUMIMC = 0 C IF( NUMINV .GT. 0.AND. XSCALE(5) .NE. 0 ) THEN XCOUNT(5) = NGRID C NUMIMC = 1 ELSE NUMINV = 0 ENDIF C C*********************************************************************** C*** **** C*** PLOTTER INITIALIZATION **** C*** **** C*********************************************************************** C C USER UNITS: INCHES C C CHARACTER FONT: SIMPLEX C CHARACTER COLOR: BLACK C CHARACTER SPACING: 1.25*HEIGHT (CONSTANT) C STRING TERMINATOR: $ C CHARACTER ANGLE: 90 DEGREES C C THE COLOR SCALE IS DEFINED AS: C 0-10 = DEFAULT UNIRAS PURE COLORS ( 1 FOR BLACK ) C 11-20 = TIME ERROR COLOR CODE SCALE C 21-28 = HORIZON OR LAYER COLORS C 31-38 = STD. DEVIATION COLORS (PER HORIZON) C 40 = GRAY FOR NO EVALUATION OR AUTOMATIC KILL C C---------------------------------------------------------------------- C C X-AXIS SCALING C IF( ALLOCF .EQ. 1 ) THEN DO 50 I = 1, 5 IF( XCOUNT(I) .GT. 0.0 ) THEN IF( XSCALE(I) .GT. 0 ) THEN X = XSCALE(I) XYSTEP(1,I) = 1.0/X XYSIZE(1,I) = ( XCOUNT(I) + 1.0 )*XYSTEP(1,I) + 3.0 C ELSE IF( XSCALE(I) .LT. 0 ) THEN XYSTEP(1,I) = XSCALE(I)/( 1.0 - XCOUNT(I) ) XYSIZE(1,I) = ( XCOUNT(I) + 1.0 )*XYSTEP(1,I) + 3.0 C ELSE XYSTEP(1,I) = 0.0 XYSIZE(1,I) = 0.0 ENDIF C ELSE XYSTEP(1,I) = 0.0 XYSIZE(1,I) = 0.0 ENDIF 50 CONTINUE C XMAX = 8.0 + XYSIZE(1,1)*NUMTPD * + XYSIZE(1,2)*NUMSQC * + XYSIZE(1,3)*NUMCQC * + XYSIZE(1,4)*NUMFBM * + XYSIZE(1,5)*NUMIMC C---------------------------------------------------------------------- C C Y-AXIS SCALING C COUNT = LCTPSP C XYSIZE(2,1) = 16.0 XYSTEP(2,1) = 0.0 C XYSIZE(2,2) = 0.0 XYSTEP(2,2) = 0.0 XYSIZE(2,3) = 0.0 XYSTEP(2,3) = 0.0 C IF( NUMTQC .GT. 0 ) THEN XYSIZE(2,2) = 40.0/NUMTQC XYSTEP(2,2) = ( XYSIZE(2,2) - 2.0 )/COUNT IF( XYSTEP(2,2) .GT. XYSTEP(1,2) ) * XYSTEP(2,2) = XYSTEP(1,2) C XYSIZE(2,3) = 40.0/NUMTQC XYSTEP(2,3) = ( XYSIZE(2,3) - 2.0 )/COUNT IF( XYSTEP(2,3) .GT. XYSTEP(1,3) ) * XYSTEP(2,3) = XYSTEP(1,3) ENDIF C IF( NUMFBM .GT. 0 ) THEN XYSIZE(2,4) = 40.0/NUMFBM XYSTEP(2,4) = ( XYSIZE(2,4) - 2.0 )/COUNT IF( XYSTEP(2,4) .GT. XYSTEP(1,4) ) * XYSTEP(2,4) = XYSTEP(1,4) ENDIF C XYSIZE(2,5) = 12.75 XYSTEP(2,5) = 0.0 C YMAX = 40.0 C---------------------------------------------------------------------- C C INITIALIZE PLOTTER C C IN/OUT ARGUMENT TYPE DESCRIPTION C C IN KOLOR I4 ARCO-SPARC COLOR C 2 = RED C 3 = GREEN C 4 = DARK BLUE C 5 = CYAN C 6 = MAGENTA C 7 = YELLOW C 8 = ORANGE C 9 = YELLOW-GREEN C C 10 = AOGC BROWN C C IN PROCNM CH40 PROCESS DESCRIPTION (TWO LINES) C ( 1-D ARRAY DIMENSIONED: 2 ) C IN REMARK CH32 REMARKS C C IN PLCODE CH4 PLOTTER INITIALIZATION CODE C 'META' = PC G/GX METAFILE (BATCH) C 'VERC' = COLOR VERSATEC (BATCH ONLINE) C IN XMAX, YMAX R4 MAXIMUM PLOTTING LIMITS C C IN UNITS CH4 COORDINATE UNITS C 'INCH' = INCHES C 'MM. ' = MILLIMETERS C C IN CSFLAG CH4 COLOR SCALE OPTION C 'SEMB' = SEMBLANCE COLOR SCALE C 'REFR' = REFRACTION COLOR SCALES C IN NCOLOR I4 NUMBER OF COLORS TOTAL C 21 FOR SEMBLANCE COLOR SCALE C 30 FOR REFRACTION COLOR SCALES C C OUT CYAN I4 CYAN COLOR COMPONENTS PER COLOR C ( 1-D ARRAY DIMENSIONED: NCOLOR ) C OUT MAGENT I4 MAGENTA COLOR COMPONENTS PER COLOR C ( 1-D ARRAY DIMENSIONED: NCOLOR ) C OUT YELLOW I4 YELLOW COLOR COMPONENTS PER COLOR C ( 1-D ARRAY DIMENSIONED: NCOLOR ) C C OUT XL1 R4 X COORD. OF USER DOCUMENTATION LINE 1 OF 5 C OUT DXL R4 X SPACING OF USER DOCUMENTATION LINES C OUT YL1 R4 Y COORD. OF USER DOCUMENTATION COLUMN 1 C OUT YL2 R4 Y COORD. OF USER DOCUMENTATION COLUMN 2 C OUT HT R4 MAX. USER CHARACTER PLOTTING HEIGHT C C OUT X0 R4 STARTING X COORD. FOR APPLICATION DISPLAY 5 C C C OUT DSNAME CH44 NAME OF META-FILE ALLOCATED C ('META' OPTION ONLY) C C OUT ERR1 I4 ERROR CODE ('META' OPTION ONLY) C 1 = NO ERROR C 2 = INVALID DATA SET TYPE (FIRST CARD COL 40) C 3 = SEISTRAN FILE ACCESS FAILURE C 4 = LINE NAME BLANK ON LINE CARD. C 5 = LINE NAME CONTAINS EMBEDDED BLANKS. C 6 = LINE NAME INVALID C 7 = INVALID PLOTTER CODE (FIRST CARD COL 76) C 8 = SVC 99 ENVIRONMENTAL ERROR (SEE ERR2) C 9 = SVC 99 INSTALLATION ERROR (SEE ERR2) C 10 = SVC 99 PARAMETER ERROR (SEE ERR2) C 11 = NOT USED C 12 = DCB MEMORY ALLOCATION FAILURE C 13 = NOT USED C 14 = NOT USED C 15 = DATA SET NAME ALL BLANKS. C 16 = ZERO OR NEGATIVE NUMBER OF RECORDS C 18 = INVALID BLOCKSIZE C 19 = BLOCKSIZE/RECORD LENGTH MISMATCH C 20 = BLOCKSIZE/RECORD LENGTH (SEISMIC). C 21 = INVALID TYPE OF PLOT C 22 = TSO USERID RETRIEVEL ERROR C 23 = NO DATA CARDS FOR PROCESS. C 24 = PLOTNO > KPDBGN & FAT'S EXIST. C 25 = NOT USED C 26 = OUTPUT TOO LARGE FOR INTERACTIVE C 27 = INVALID RECORD COUNT C 28 = INVALID BLOCKSIZE C 29 = EXCESSIVE VOLUME COUNT C C OUT ERR2 I4 CODES FROM DYNAMIC ALLOCATION (SVC 99). C ('META' OPTION ONLY) C C BYTES 1 AND 2 = ERROR CODE, C BYTES 3 AND 4 = INFORMATION CODE. C C SEE IBM MANUAL GC28-0627-2, OS/VS2 MVS C SYSTEM PROGRAMMING LIBRARY: C JOB MANAGEMENT, PAGES 28 TO 31.0. C C ************************************* C C COMMON BLOCKS USED: / P / -- SPARC REFERENCE PARAMETERS C C KPDSNS MUST BE INITIALIZED C -- PREFERRABLY TO KPIUSM -- C BEFORE FIRST CALL TO SACNEWP C C ************************************* C PROCNM(1) = LINE1 PROCNM(2) = LINE2 C CALL SACNEWP( 10, PROCNM, REMARK, * CHFLAG(7), XMAX, YMAX, 'INCH', * 'REFR', 30, CYAN, MAGENT, YELLOW, * XL1, DXL, YL1, YL2, Y, X0, * DSNAME, ERR1, ERR2 ) C IF( ERR1 .GT. 1 ) GOTO 999 C HT(1) = HT014 HT(2) = HT010 HT(3) = HT010 HT(4) = 0.125 HT(5) = 0.125 C---------------------------------------------------------------------- C C OVERLAY PARAMETER DOCUMENTATION C XL2 = XL1 + DXL XL3 = XL2 + DXL XL4 = XL3 + 1.5*DXL XL5 = XL4 + DXL C ------------------------------------------- C C OLD AND PICK FILE C CALL GCHARA( 90 ) CALL GCHAR( 'TIME PICK FILE: $', XL1, YL1, HT010 ) PIKFIL(1:8)= REFDSN(1) PIKFIL(9:12)= ' $' X = XL1 - 0.03 Y = YL1 + DYL CALL GCHARA( 90 ) CALL GCHAR( PIKFIL, X, Y, HT008 ) C ------------------------------------------- C C RECIPROCAL CROSS-LINE LIMIT C IF( I4FLAG(3) .GT. 0 ) THEN CALL GCHARA( 90 ) CALL GCHAR( 'CROSS-LINE LIMIT:$', XL1, YL2, HT010 ) X1 = I4FLAG(3) X = XL1 - 0.03 Y = YL2 + DYL CALL GCHARA( 90 ) CALL GNUMB( X1, X, Y, HT008, 0 ) ENDIF C ------------------------------------------- C C MAX. RECIPROCAL ERROR C IF( I4FLAG(10) .GT. 0 ) THEN CALL GCHARA( 90 ) CALL GCHAR( 'MAX. RECIPROCAL ERROR:$', XL2, YL1, HT010 ) X1 = I4FLAG(10) X = XL2 - 0.03 Y = YL1 + DYL CALL GCHARA( 90 ) CALL GNUMB( X1, X, Y, HT008, 0 ) ENDIF C ------------------------------------------- C C MAX. BULL'S-EYE ERROR AND REF. WIDTH C IF( I4FLAG(11) .GT. 0 ) THEN CALL GCHARA( 90 ) CALL GCHAR( 'MAX. BULL''S-EYE ERROR:$', XL2, YL2, HT010 ) X1 = I4FLAG(11) X = XL2 - 0.03 Y = YL2 + DYL CALL GCHARA( 90 ) CALL GNUMB( X1, X, Y, HT008, 0 ) C CALL GCHARA( 90 ) CALL GCHAR( 'REF. BULL''S-EYE WIDTH:$', XL3, YL2, HT010 ) X1 = I4FLAG(12) X = XL3 - 0.03 Y = YL2 + DYL CALL GCHARA( 90 ) CALL GNUMB( X1, X, Y, HT008, 0 ) ENDIF C ------------------------------------------- C C MAX. RAYPATH CANCELLATION ERROR C IF( I4FLAG(13) .GT. 0 ) THEN CALL GCHARA( 90 ) CALL GCHAR( 'MAX. CANCELLATION ERROR:$', XL3, YL1, HT010 ) X1 = I4FLAG(13) X = XL3 - 0.03 Y = YL1 + DYL CALL GCHARA( 90 ) CALL GNUMB( X1, X, Y, HT008, 0 ) ENDIF C ------------------------------------------- C C AVERAGE SURFACE VELOCITY C IF( CHFLAG(1) .NE. 'DISP' .AND. CHFLAG(1) .NE. 'PHAN' ) THEN CALL GCHARA( 90 ) CALL GCHAR( 'AV. SURFACE VELOCITY:$', XL4, YL1, HT010 ) CALL GCHARA( 90 ) X = XL4 - 0.03 Y = YL1 + DYL CALL GNUMB( V1AVG, X, Y, HT008, 0 ) C ------------------------------------------- C C SPREAD LENGTH C CALL GCHARA( 90 ) CALL GCHAR( 'SPREAD LENGTH (CDP INT.):$', XL4, YL2, HT010 ) CALL GCHARA( 90 ) X1 = I4FLAG(14) X = XL4 - 0.03 Y = YL2 + DYL CALL GNUMB( X1, X, Y, HT008, 0 ) C ------------------------------------------- C C REPLACEMENT VELOCITY C CALL GCHARA( 90 ) CALL GCHAR( 'REPLACEMENT VELOCITY:$', XL5, YL1, HT010 ) CALL GCHARA( 90 ) X = XL5 - 0.03 Y = YL1 + DYL CALL GNUMB( REPVEL, X, Y, HT008, 0 ) C ------------------------------------------- C C DATUM TYPE C CALL GCHARA( 90 ) CALL GCHAR( 'PROCESS DATUM TYPE:$', XL5, YL2, HT010 ) X = XL5 - 0.03 Y = YL2 + DYL CALL GCHARA( 90 ) C IF( CHFLAG(2) .EQ. 'FCDP' ) THEN CALL GCHAR( 'FCDP$', X, Y, HT008 ) C ELSE IF( CHFLAG(2) .EQ. 'MINS' ) THEN CALL GCHAR( 'MINS$', X, Y, HT008 ) C ELSE IF( CHFLAG(2) .EQ. 'USER' ) THEN CALL GCHAR( 'USER$', X, Y, HT008 ) C ELSE IF( CHFLAG(2) .EQ. 'MIGD' ) THEN CALL GCHAR( 'MIGD$', X, Y, HT008 ) ENDIF ENDIF C---------------------------------------------------------------------- C C DISPLAY COLOR SCALE FOR TIME PICK ERRORS C X = 7.3 Y = 11.5 CALL GRECT( X-0.2, Y-0.5, 5.0, 10.0, 40, 1 ) CALL GCHARA( 90 ) CALL GCHAR( '(NO EVALUATION)$', X, Y, HT008 ) X = X - 0.25 C X1 = 0.0 X2 = I4FLAG(2) DO 150 I = 11, 18 CALL GRECT( X-0.2, Y-0.5, 5.0, 10.0, I, 1 ) CALL GCHARA( 90 ) CALL GNUMB( X1, X, Y, HT008, 0 ) CALL GCHARA( 90 ) CALL GCHAR( 'TO$', X, Y+0.5, HT008 ) CALL GCHARA( 90 ) CALL GNUMB( X2, X, Y+1.0, HT008, 0 ) CALL GCHARA( 90 ) CALL GCHAR( 'MS$', X, Y+1.5, HT008 ) X1 = X2 X2 = X2 + I4FLAG(2) X = X - 0.25 150 CONTINUE CALL GRECT( X-0.2, Y-0.5, 5.0, 10.0, 19, 1 ) CALL GCHARA( 90 ) CALL GNUMB( X1, X, Y, HT008, 0 ) CALL GCHARA( 90 ) CALL GCHAR( 'OR GREATER$', X, Y+0.5, HT008 ) X = X - 0.25 CALL GCHARA( 90 ) CALL GCHAR( 'TIME-ERROR COLOR CODES$', X-0.1, Y-0.7, HT010 ) C ------------------------------------------- C C DISPLAY COLOR SCALE FOR HORIZON IDENTIFICATION C X = 7.3 Y = 15.5 CALL GRECT( X-0.2, Y-0.5, 5.0, 10.0, 40, 1 ) CALL GCHARA( 90 ) CALL GCHAR( 'AUTOMATICALLY KILLED$', X, Y, HT008 ) X = X - 0.25 C I = NUMHRZ + 21 DO 175 CURHRZ = NUMHRZ, 1, -1 NXTHRZ = CURHRZ + 1 HRZLAB(11:11) = HRZNUM(CURHRZ:CURHRZ) HRZLAB(13:14) = FBNLAB(CURHRZ:NXTHRZ) C CALL GRECT( X-0.2, Y-0.5, 5.0, 10.0, I, 1 ) CALL GCHARA( 90 ) CALL GCHAR( HRZLAB, X, Y, HT008 ) C X = X - 0.25 I = I - 1 175 CONTINUE C CALL GRECT( X-0.2, Y-0.5, 5.0, 10.0, I, 1 ) CALL GCHARA( 90 ) CALL GCHAR( 'SURFACE LAYER$', X, Y, HT008 ) X = X - 0.35 Y = Y - 0.7 C CALL GCHARA( 90 ) CALL GCHAR( 'HORIZON/LAYER COLORS$', X, Y, HT010 ) C ------------------------------------------- C C DISPLAY HORIZON INVERSION PARAMETERS C IF( CHFLAG(1) .NE. 'DISP' .AND. CHFLAG(1) .NE. 'PHAN' ) THEN X = X - 3.0 C Y = 17.50 CALL GCHAR( 'NUMBER OF PASSES: $', X, Y, HT008 ) Y = Y + 0.5 CALL GCHAR( 'DIAGNOSTICS LEVEL: $', X, Y, HT008 ) Y = Y + 0.5 CALL GCHAR( 'CDP WINDOW WIDTH: $', X, Y, HT008 ) Y = Y + 0.5 CALL GCHAR( 'OFFSET WINDOW WIDTH: $', X, Y, HT008 ) Y = Y + 0.5 CALL GCHAR( 'VELOCITY SMOOTHING LENGTH:$', X, Y, HT008 ) Y = Y + 0.5 CALL GCHAR( 'CRIT OFFSET SMOOTHING LENGTH:$', X, Y, HT008 ) Y = Y + 0.5 CALL GCHAR( 'DIP ANGLE SMOOTHING LENGTH:$', X, Y, HT008 ) Y = Y + 0.5 CALL GCHAR( 'ELEVATION SMOOTHING LENGTH:$', X, Y, HT008 ) Y = Y + 0.5 CALL GCHAR( ' LEFT END REGRESSION LENGTH: $', X, Y, HT008 ) Y = Y + 0.5 CALL GCHAR( 'RIGHT END REGRESSION LENGTH: $', X, Y, HT008 ) C Y = Y + 0.5 CALL GCHAR( ' LEFT END EXTRAP. OPTION: $', X, Y, HT008 ) Y = Y + 0.5 CALL GCHAR( 'RIGHT END EXTRAP. OPTION: $', X, Y, HT008 ) C X = X - 0.5 Y = 19.00 CALL GCHARA( 90 ) CALL GCHAR( ' (LENGTHS IN CDP INTERVALS)$', X, Y, HT008 ) C X = X - 0.25 CALL GCHARA( 90 ) CALL GCHAR( 'INVERSION CONTROL PARAMETERS$', X, Y, HT008 ) C Y = 17.50 DO 185 INDEX = 1, 10 X = 7.05 C DO 180 CURHRZ = NUMHRZ, 1, -1 X1 = INVPRM(CURHRZ,INDEX) CALL GCHARA( 90 ) C IF( INDEX .LE. 4 .OR. X1 .GT. 0.0 ) THEN CALL GNUMB( X1, X, Y, HT008, 0 ) ELSE CALL GCHAR( 'DEF$', X, Y, HT008 ) ENDIF C X = X - 0.25 180 CONTINUE C Y = Y + 0.5 185 CONTINUE C DO 195 INDEX = 1, 2 X = 7.05 C DO 190 CURHRZ = NUMHRZ, 1, -1 CHTEMP(1:4) = EXTOPT(CURHRZ,INDEX) C CALL GCHARA( 90 ) CALL GCHAR( CHTEMP, X, Y, HT008 ) C X = X - 0.25 190 CONTINUE C Y = Y + 0.5 195 CONTINUE ENDIF ENDIF C C*********************************************************************** C*** **** C*** TIME-PICK DISPLAYS **** C*** **** C*********************************************************************** C C DRAW TIME PICKS C C IN/OUT ARGUMENT TYPE DESCRIPTION C C IN TPPLOT I4 SIDE OF SHOT INDICATOR C 1 FOR LOW SIDE (BATCH) C 2 FOR HIGH SIDE C 3 FOR LOW SIDE (INTERACTIVE) C IN TPAXIS CH4 HORIZONTAL AXIS INDICATOR C 'RECV' FOR RECEIVER C 'CDPN' FOR CDP LOCATION C IN REFHRZ I4 REFERENCE HORIZON C 99 FOR FIRST BREAK C IN FBNLAB CH8 FIRST-BREAK NODE LABELS C C IN NCDPN I4 NUMBER OF CDPN LOCATIONS C IN CDPNID R4 CDP IDENTIFICATION ARRAY C (1,I) = X COORDINATE (IN-LINE) C IN UNITS OF GRID-POINT POSITION C (2,I) = SURFACE ELEVATION C IN ORIGINAL UNITS C ( 2-D ARRAY DIMENSIONED: 2 BY NCDPN ) C IN CDPNUM I2 CDP NUMBERS (LABELS) C ( 1-D ARRAY DIMENSIONED: NCDPN ) C C IN NCDPT I4 MAX. NUMBER OF TRACES PER CDPN SIDE C IN CDPREF I2 CDP-TO-SHOT CROSS-REFERENCE INDICES C (1,SIDE,CDPT,CDPN) = SHOT INDEX C (2,SIDE,CDPT,CDPN) = RECEIVER INDEX C (3,SIDE,CDPT,CDPN) = ORTN (TRACE) C ( 4-D ARRAY DIMENSIONED: 3 BY 2 BY NCDPT BY NCDPN ) C C IN NSHOT I4 NUMBER OF SHOTPOINTS PICKED C IN SHOTID R4 SHOTPOINT IDENTIFICATION ARRAY C (1,I) = X COORDINATE (IN-LINE) C IN UNITS OF GRID-POINT POSITION C (2,I) = Y COORDINATE (CROSS-LINE) C IN UNITS OF GRID-POINT POSITION C (3,I) = SURFACE ELEVATION C IN ORIGINAL UNITS C (4,I) = RECIPROCAL RECEIVER NUMBER C AS INDEX PLUS FRAC. DISTANCE C (5,I) = EQUIVALENT CDPN LOCATION C AS INDEX PLUS FRAC. DISTANCE C ( 2-D ARRAY DIMENSIONED: 5 BY NSHOT ) C IN SHOTNO I2 PICKED SHOTPOINT NUMBER LIST C ( 1-D ARRAY DIMENSIONED: NSHOT ) C C IN NRECV I4 NUMBER OF UNIQUE RECEIVER POSITIONS C IN RECVID R4 RECEIVER IDENTIFICATION ARRAY C (1,I) = X COORDINATE (IN-LINE) C IN UNITS OF GRID-POINT POSITION C (2,I) = Y COORDINATE (CROSS-LINE) C IN UNITS OF GRID-POINT POSITION C (3,I) = SURFACE ELEVATION C IN ORIGINAL UNITS C (4,I) = RECIPROCAL SHOT LOCATION NUMBER C AS INDEX PLUS FRAC. DISTANCE C (5,I) = EQUIVALENT CDPN LOCATION C AS INDEX PLUS FRAC. DISTANCE C ( 2-D ARRAY DIMENSIONED: 5 BY NRECV ) C C IN LCTPSP I4 NUMBER OF TRACES PER SHOT C IN CSPREF I2 SHOT-TO-CDP CROSS-REFERENCE INDICES C (1,ORTN,SHOT) = CDPN C (2,ORTN,SHOT) = CDPT (NEG FOR LOW SIDE) C ( 3-D ARRAY DIMENSIONED: 3 BY LCTPSP BY NSHOT ) C C IN FBREAK I2 FIRST-BREAK HORIZONS (OLD AND NEW) C (ORTN,SHOT,1) = OLD (PICK FILE) C (ORTN,SHOT,2) = NEW (REMAPPED) C C THE FOLLOWING CONVENTIONS ARE USED: C 1-8 = HORIZON CODE FOR VALID PICK C 99 MISSING PICK OR KILLED BY "HCH" C C 101-108 HORIZON CODE PLUS 100 FOR C "FBN" KILLED PICK C 201-208 HORIZON CODE PLUS 200 FOR C "MXRECP/MXBULL" KILLED PICK C 301-308 HORIZON CODE PLUS 300 FOR C "MXRAYC" KILLED PICK C ( 3-D ARRAY DIMENSIONED: LCTPSP BY NSHOT BY 2 ) C C IN NUMHRZ I4 NUMBER OF HORIZONS IN ANALYSIS C IN RTIMES R4 REFRACTION TIMES IN SECONDS C SIGN INDICATES SOURCE: C POSITIVE FOR ORIGINAL PICK C ZERO FOR MISSING PICK C NEGATIVE FOR PHANTOMED PICK C ABSOLUTE VALUE GIVES PROPER TIME C ( 3-D ARRAY DIMENSIONED: LCTPSP BY NSHOT BY NUMHRZ ) C C IN NGRID I4 NUMBER OF GRID X LOCATIONS C IN X0, Y0 R4 ORIGIN OF CURRENT PLOTTING C IN DELTAX R4 STEP SIZE IN X DIRECTION C IN HT R4 CHARACTER PLOTTING HEIGHTS C 1) PRIMARY LABEL CHARACTER HEIGHT (MM) C 2) ORTN AXIS CHARACTER HEIGHT (MM) C 3) SHOT AXIS CHARACTER HEIGHT (MM) C 4) ORTN AXIS CHARACTER WIDTH IN C PLOTTING UNITS C 5) SHOT AXIS CHARACTER WIDTH IN C PLOTTING UNITS C ( 1-D ARRAY DIMENSIONED: 5 ) C IF( NUMTPD .GT. 0 ) THEN IF( XYSTEP(1,1) .LE. 0.05 ) THEN HT(3) = HT010*15.0*XYSTEP(1,1) HT(5) = 0.125*15.0*XYSTEP(1,1) ELSE HT(3) = HT010*15.0*0.05 HT(5) = 0.125*15.0*0.05 ENDIF Y0 = 19.5 - XYSIZE(2,1) C IF( NUMTPS .LE. 2 ) TPBEG = 1 IF( NUMTPS .EQ. 3 ) TPBEG = 3 C DO 275 TPPLOT = TPBEG, NUMTPS X = X0 C C CASE 1: SINGLE MAP DISPLAY C IF( TPHRZ .LE. 99 ) THEN CALL SACPICK( TPPLOT, TPAXIS, TPHRZ, FBNLAB, * NCDPN, CDPNID, CDPNUM, * NCDPT, CDPREF, * NSHOT, SHOTID, SHOTNO, * NRECV, RECVID, * LCTPSP, CSPREF, FBREAK, * NUMHRZ, RTIMES, * NGRID, X, Y0, XYSTEP, HT ) C C CASE 2: MULTIPLE HORIZON MAP DISPLAYS C ELSE DO 250 CURHRZ = 1, NUMHRZ CALL SACPICK( TPPLOT, TPAXIS, CURHRZ, FBNLAB, * NCDPN, CDPNID, CDPNUM, * NCDPT, CDPREF, * NSHOT, SHOTID, SHOTNO, * NRECV, RECVID, * LCTPSP, CSPREF, FBREAK, * NUMHRZ, RTIMES, * NGRID, X, Y0, XYSTEP, HT ) X = X + XYSIZE(1,1) 250 CONTINUE ENDIF C Y0 = Y0 + XYSIZE(2,1) 275 CONTINUE C X0 = X0 + XYSIZE(1,1)*NUMTPD ENDIF C C*********************************************************************** C*** **** C*** TIME-PICK ERROR DISPLAYS **** C*** **** C*********************************************************************** C IF( NUMTQC .GT. 0 ) THEN WRITE( IPR, 8300 ) NUMTQC, NUMSQC, NUMCQC, * XYSIZE(1,2), XYSIZE(2,2), * XYSIZE(1,3), XYSIZE(2,3) Y0 = 0.0 C DO 375 IP = 1, 12 QCPLOT = ' ' C DO 310 I = 1, 16 IF( QCLIST(I:I) .EQ. QCREF(IP:IP) ) * QCPLOT = QCREF(IP:IP) 310 CONTINUE C IF( KPBUGF .GE. 1 ) * WRITE( IPR, 8310 ) IP, QCREF(IP:IP), QCPLOT C IF( QCPLOT .NE. ' ' ) THEN X = X0 C---------------------------------------------------------------------- C C DRAW SHOT-MODE PLOTS C C IN/OUT ARGUMENT TYPE DESCRIPTION C C IN QCPLOT CH1 QC OPTION C 'H' FOR FIRST-BREAK HORIZON MAP C C 'R' RECIPROCAL TIME ERRORS C 'I' INWARD RAYPATH CANC. ERRORS C 'O' OUTWARD RAYPATH CANC. ERRORS C C '2' 2-WIDE BULL'S-EYE CANC. ERRORS C '3' 3-WIDE BULL'S-EYE CANC. ERRORS C '4' 4-WIDE BULL'S-EYE CANC. ERRORS C '5' 5-WIDE BULL'S-EYE CANC. ERRORS C '6' 6-WIDE BULL'S-EYE CANC. ERRORS C '7' 7-WIDE BULL'S-EYE CANC. ERRORS C '8' 8-WIDE BULL'S-EYE CANC. ERRORS C C 'F' PHANTOMING MAX SCATTERING C C 'M' MODEL-PREDICTION TIME ERRORS C 'Q' RECIPROCAL ERRORS IN PREDICTIONS C C '#' REFERENCE GRID FOR FBN MAPPING C C IN REFHRZ I4 REFERENCE HORIZON C 99 FOR FIRST BREAK C C IN HAXIS CH4 HORIZONTAL AXIS INDICATOR C 'SHOT' FOR SHOTPOINT C 'CDPN' FOR CDP LOCATION C C IN TSCALE R4 TIME-TO-COLOR SCALING FACTOR C IN FBNLAB CH8 FIRST-BREAK NODE LABELS C C C IN NSHOT I4 NUMBER OF SHOTPOINTS PICKED C C IN SHOTID R4 SHOTPOINT IDENTIFICATION ARRAY C (1,I) = X COORDINATE (IN-LINE) C IN UNITS OF GRID-POINT POSITION C (2,I) = Y COORDINATE (CROSS-LINE) C IN UNITS OF GRID-POINT POSITION C (3,I) = SURFACE ELEVATION C IN ORIGINAL UNITS C (4,I) = RECIPROCAL RECEIVER NUMBER C AS INDEX PLUS FRAC. DISTANCE C (5,I) = EQUIVALENT CDPN LOCATION C AS INDEX PLUS FRAC. DISTANCE C ( 2-D ARRAY DIMENSIONED: 5 BY NSHOT ) C C IN SHOTNO I2 PICKED SHOTPOINT NUMBER LIST C ( 1-D ARRAY DIMENSIONED: NSHOT ) C C IN SPNODE I2 LARGEST OFFSET ORTN PICKED FOR EACH HORIZON C (HORIZ,1,SHOT) = LOW-SIDE MAPPING C (DEFAULTS TO -999) C (HORIZ,2,SHOT) = HIGH-SIDE MAPPING C (DEFAULTS TO -999) C ( 3-D ARRAY DIMENSIONED: 8 BY 2 BY NSHOT ) C C C IN NRECV I4 NUMBER OF RECEIVERS C C IN RECVID R4 RECEIVER IDENTIFICATION ARRAY C (1,I) = X COORDINATE (IN-LINE) C IN UNITS OF GRID-POINT POSITION C (2,I) = Y COORDINATE (CROSS-LINE) C IN UNITS OF GRID-POINT POSITION C (3,I) = SURFACE ELEVATION C IN ORIGINAL UNITS C (4,I) = RECIPROCAL SHOT LOCATION NUMBER C AS INDEX PLUS FRAC. DISTANCE C (5,I) = EQUIVALENT CDPN LOCATION C AS INDEX PLUS FRAC. DISTANCE C ( 2-D ARRAY DIMENSIONED: 5 BY NRECV ) C C IN ORTNSR I2 TRACE-RECEIVER CROSS-REFERENCE C ORTNSR(I,J) = TRACE NUMBER (ORTN) C OF SHOT I AT REC J C = 0 IF OUT OF RANGE C ( 2-D ARRAY DIMENSIONED: NSHOT BY NRECV ) C C C IN NCDPN I4 NUMBER OF CDPN LOCATIONS C C IN CDPNUM I2 CDP NUMBERS (LABELS) C ( 1-D ARRAY DIMENSIONED: NCDPN ) C C C IN NCDPT I4 MAX. NUMBER OF TRACES PER CDPN SIDE C C IN CDPREF I2 CDP-TO-SHOT CROSS-REFERENCE INDICES C (1,SIDE,CDPT,CDPN) = SHOT INDEX C (2,SIDE,CDPT,CDPN) = RECEIVER INDEX C (3,SIDE,CDPT,CDPN) = ORTN (TRACE) C ( 4-D ARRAY DIMENSIONED: 3 BY 2 BY NCDPT BY NCDPN ) C C C IN NUMHRZ I4 NUMBER OF HORIZONS IN ANALYSIS C C IN IOCREF I2 REFERENCE CDPT LOCATIONS FOR INWARD AND C OUTWARD CANCELLATION C (1,SIDE,HORIZ,CDPN) = INWARD REFERENCE C FIRST BREAKS ONLY C (DEFAULTS TO -999) C (2,SIDE,HORIZ,CDPN) = OUTWARD REFERENCE C FIRST BREAKS ONLY C (DEFAULTS TO -999) C (3,SIDE,HORIZ,CDPN) = OUTWARD REFERENCE C INCLUDING PHANTOMS C (DEFAULTS TO -999) C ( 4-D ARRAY DIMENSIONED: 3 BY 2 BY NUMHRZ BY NCDPN ) C C C IN LCTPSP I4 NUMBER OF TRACES PER SHOT C C IN FBREAK I2 FIRST-BREAK HORIZONS (OLD AND NEW) C (ORTN,SHOT,1) = OLD (PICK FILE) C (ORTN,SHOT,2) = NEW (REMAPPED) C C THE FOLLOWING CONVENTIONS ARE USED: C 1-8 = HORIZON CODE FOR VALID PICK C 99 MISSING PICK OR KILLED BY "HCH" C C 101-108 HORIZON CODE PLUS 100 FOR C "FBN" KILLED PICK C 201-208 HORIZON CODE PLUS 200 FOR C "MXRECP/MXBULL" KILLED PICK C 301-308 HORIZON CODE PLUS 300 FOR C "MXRAYC" KILLED PICK C ( 3-D ARRAY DIMENSIONED: LCTPSP BY NSHOT BY 2 ) C C IN RTIMES R4 REFRACTION TIMES IN SECONDS C SIGN INDICATES SOURCE: C POSITIVE FOR ORIGINAL PICK C ZERO FOR MISSING PICK C NEGATIVE FOR PHANTOMED PICK C ABSOLUTE VALUE GIVES PROPER TIME C ( 3-D ARRAY DIMENSIONED: LCTPSP BY NSHOT BY NUMHRZ ) C C IN PHSCAT R4 PHANTOMING MAX SCATTERING IN SECONDS C ( 3-D ARRAY DIMENSIONED: LCTPSP BY NSHOT BY NUMHRZ ) C C IN MTIMES R4 MODEL-PREDICTED TIMES IN SECONDS C SIGN INDICATES SOURCE: C POSITIVE FOR MODELLED PICK C ZERO FOR MISSING PICK C NEGATIVE FOR PHANTOMED PICK C ABSOLUTE VALUE GIVES PROPER TIME C ( 3-D ARRAY DIMENSIONED: LCTPSP BY NSHOT BY NUMHRZ ) C C C IN X0, Y0 R4 ORIGIN OF CURRENT PLOTTING C ALLOW 1.0 FOR BOTTOM LABELS C 1.5 FOR SIDE LABELS C 1.5 FOR TOP LABELS C IN XYSTEP R4 STEP SIZES C 1) IN X DIRECTION C 2) IN Y DIRECTION C ( 1-D ARRAY DIMENSIONED: 2 ) C C IN HT R4 CHARACTER PLOTTING HEIGHTS C 1) PRIMARY LABEL CHARACTER HEIGHT (MM) C 2) ORTN AXIS CHARACTER HEIGHT (MM) C 3) SHOT AXIS CHARACTER HEIGHT (MM) C 4) ORTN AXIS CHARACTER WIDTH IN C PLOTTING UNITS C 5) SHOT AXIS CHARACTER WIDTH IN C PLOTTING UNITS C ( 1-D ARRAY DIMENSIONED: 5 ) C C IF( NUMSQC .GT. 0 ) THEN IF( XYSTEP(1,2) .LE. 0.05 ) THEN HT(3) = HT010*15.0*XYSTEP(1,2) HT(5) = 0.125*15.0*XYSTEP(1,2) ELSE HT(3) = HT010*15.0*0.05 HT(5) = 0.125*15.0*0.05 ENDIF C IF( KPBUGF .GE. 1 ) * WRITE( IPR, 8320 ) QCPLOT, X, Y0 C C CASE 1: SINGLE MAP DISPLAY C IF( QCHRZ .LE. 99 ) THEN CALL SACRTQC( QCPLOT, QCHRZ, * 'SHOT', TSCALE, FBNLAB, * NSHOT, SHOTID, SHOTNO, SPNODE, * NRECV, RECVID, ORTNSR, * NCDPN, CDPNUM, NCDPT, CDPREF, * NUMHRZ, IOCREF, * LCTPSP, FBREAK, RTIMES, PHSCAT, * MTIMES, * X, Y0, XYSTEP(1,2), HT ) X = X + XYSIZE(1,2) C C CASE 2: MULTIPLE HORIZON MAP DISPLAYS C ELSE DO 325 CURHRZ = 1, NUMHRZ CALL SACRTQC( QCPLOT, CURHRZ, * 'SHOT', TSCALE, FBNLAB, * NSHOT, SHOTID, SHOTNO, SPNODE, * NRECV, RECVID, ORTNSR, * NCDPN, CDPNUM, NCDPT, CDPREF, * NUMHRZ, IOCREF, * LCTPSP, FBREAK, RTIMES, PHSCAT, * MTIMES, * X, Y0, XYSTEP(1,2), HT ) X = X + XYSIZE(1,2) 325 CONTINUE ENDIF ENDIF C---------------------------------------------------------------------- C C DRAW CDPN-MODE PLOTS C IF( NUMCQC .GT. 0 ) THEN IF( XYSTEP(1,3) .LE. 0.05 ) THEN HT(3) = HT010*15.0*XYSTEP(1,3) HT(5) = 0.125*15.0*XYSTEP(1,3) ELSE HT(3) = HT010*15.0*0.05 HT(5) = 0.125*15.0*0.05 ENDIF C IF( KPBUGF .GE. 1 ) * WRITE( IPR, 8330 ) QCPLOT, X, Y0 C C CASE 1: SINGLE MAP DISPLAY C IF( QCHRZ .LE. 99 ) THEN CALL SACRTQC( QCPLOT, QCHRZ, * 'CDPN', TSCALE, FBNLAB, * NSHOT, SHOTID, SHOTNO, SPNODE, * NRECV, RECVID, ORTNSR, * NCDPN, CDPNUM, NCDPT, CDPREF, * NUMHRZ, IOCREF, * LCTPSP, FBREAK, RTIMES, PHSCAT, * MTIMES, * X, Y0, XYSTEP(1,3), HT ) C C CASE 2: MULTIPLE HORIZON MAP DISPLAYS C ELSE DO 350 CURHRZ = 1, NUMHRZ CALL SACRTQC( QCPLOT, CURHRZ, * 'CDPN', TSCALE, FBNLAB, * NSHOT, SHOTID, SHOTNO, SPNODE, * NRECV, RECVID, ORTNSR, * NCDPN, CDPNUM, NCDPT, CDPREF, * NUMHRZ, IOCREF, * LCTPSP, FBREAK, RTIMES, PHSCAT, * MTIMES, * X, Y0, XYSTEP(1,3), HT ) X = X + XYSIZE(1,3) 350 CONTINUE ENDIF ENDIF C Y0 = Y0 + XYSIZE(2,2) ENDIF 375 CONTINUE C X0 = X0 + NUMSQC*XYSIZE(1,2) + NUMCQC*XYSIZE(1,3) ENDIF C C*********************************************************************** C*** **** C*** FIRST-BREAK MAP(S) **** C*** **** C*********************************************************************** C IF( NUMFBM .GT. 0 ) THEN WRITE( IPR, 8400 ) NUMFBM, XYSIZE(1,4), XYSIZE(2,4) C IF( XYSTEP(1,4) .LE. 0.05 ) THEN HT(3) = HT010*15.0*XYSTEP(1,4) HT(5) = 0.125*15.0*XYSTEP(1,4) ELSE HT(3) = HT010*15.0*0.05 HT(5) = 0.125*15.0*0.05 ENDIF C Y0 = 0.0 C DO 475 IP = 1, 3 QCPLOT = ' ' C DO 410 I = 1, 16 IF( QCLIST(I:I) .EQ. FBREF(IP:IP) ) * QCPLOT = FBREF(IP:IP) 410 CONTINUE C IF( QCPLOT .NE. ' ' ) THEN X = X0 C IF( KPBUGF .GE. 1 ) THEN WRITE( IPR, 8310 ) IP, FBREF(IP:IP), QCPLOT C IF( FBAXIS .EQ. 'SHOT' ) THEN WRITE( IPR, 8320 ) QCPLOT, X0, Y0 ELSE WRITE( IPR, 8330 ) QCPLOT, X0, Y0 ENDIF ENDIF C CALL SACRTQC( QCPLOT, 99, FBAXIS, TSCALE, FBNLAB, * NSHOT, SHOTID, SHOTNO, SPNODE, * NRECV, RECVID, ORTNSR, * NCDPN, CDPNUM, NCDPT, CDPREF, * NUMHRZ, IOCREF, * LCTPSP, FBREAK, RTIMES, PHSCAT, MTIMES, * X0, Y0, XYSTEP(1,4), HT ) C Y0 = Y0 + XYSIZE(2,4) ENDIF 475 CONTINUE C X0 = X0 + XYSIZE(1,4) ENDIF C C*********************************************************************** C*** **** C*** INVERSION MODEL DISPLAYS **** C*** **** C*********************************************************************** C IF( NUMINV .GT. 0 ) THEN WRITE( IPR, 8500 ) NUMINV, XYSIZE(1,5), XYSIZE(2,5) IMPLOT = 0 VELFLG = CHFLAG(6) C VRTMIN = I4FLAG(4) VRTMAX = I4FLAG(5) C XSTEP = XYSTEP(1,5) YSIZE = 7.0 C Y0 = 0.0 X = X0 DO 575 IP = 1, 4 QCPLOT = ' ' C DO 510 I = 1, 16 IF( QCLIST(I:I) .EQ. IMREF(IP:IP) ) * QCPLOT = IMREF(IP:IP) 510 CONTINUE C IF( KPBUGF .GE. 1 ) * WRITE( IPR, 8510 ) IP, IMREF(IP:IP), QCPLOT C---------------------------------------------------------------------- C C DRAW MODEL DISPLAYS C C IN/OUT ARGUMENT TYPE DESCRIPTION C C IN QCPLOT CH1 QC OPTION C 'E' FOR ELEVATION C 'V' LAYER VELOCITY C 'T' VERTICAL RAY TIME C 'D' RESIDUAL ESTIMATES C C IN NRESID I4 NUMBER OF RESIDUAL ITERATIONS C ( 0 DISABLES RESIDUALS ) C C C IN VELFLG I2 VELOCITY PLOTTING DIRECTION FLAG C ' UP ' FOR UPWARD C 'DOWN' FOR DOWNWARD C IN VRTMIN I4 MINIMUM VERTICAL RAY TIME TO PLOT C IN VRTMAX I4 MAXIMUM VERTICAL RAY TIME TO PLOT C C IN NCDPN I4 NUMBER OF CDPN LOCATIONS C IN CDPNID R4 CDP IDENTIFICATION ARRAY C (1,I) = X COORDINATE (IN-LINE) C IN UNITS OF GRID-POINT POSITION C (2,I) = SURFACE ELEVATION C IN ORIGINAL UNITS C ( 2-D ARRAY DIMENSIONED: 2 BY NCDPN ) C IN CDPNUM I2 CDP NUMBERS (LABELS) C ( 1-D ARRAY DIMENSIONED: NCDPN ) C C IN NUMHRZ I4 NUMBER OF HORIZONS IN ANALYSIS C IN CMODEL R8 MODEL VALUES ASSOCIATED WITH CDP LOCATIONS C (CDPN,1) = VERTICAL RAY TIME (SEC) C (CDPN,2) = DATUM ELEVATION C (CDPN,3) = STATIC REFERENCE TIME C (CDPN,4) = "FLAT" VERTICAL RAY TIME (SEC) C ( 2-D ARRAY DIMENSIONED: NCDPN BY 4 ) C IN PSEUDO R4 PSEUDO-DATUM ELEVATION C C IN NGRID I4 NUMBER OF GRID X LOCATIONS C IN ZMODEL R4 THE ELEVATION MODEL FOR ALL HORIZONS C -- INITIALLY DEFAULTED TO SURFACE VALUES C ( 2-D ARRAY DIMENSIONED: NGRID BY 0:NUMHRZ ) C C IN PMODEL R4 THE SLOWNESS MODEL FOR THE LAYER BELOW C EACH HORIZON DEFINED FOR ZMODEL C (GRID,CURHRZ,1) = SLOWNESS ESTIMATE C (GRID,CURHRZ,1) = VELOCITY RMS ERROR C -- INITIALLY DEFAULTED TO SURFACE VALUES C ( 3-D ARRAY DIMENSIONED: NGRID BY 0:NUMHRZ BY 2 ) C C C IN NSHOT I4 NUMBER OF SHOTPOINTS PICKED C IN SHOTID R4 SHOTPOINT IDENTIFICATION ARRAY C (1,I) = X COORDINATE (IN-LINE) C IN UNITS OF GRID-POINT POSITION C (2,I) = Y COORDINATE (CROSS-LINE) C IN UNITS OF GRID-POINT POSITION C (3,I) = SURFACE ELEVATION C IN ORIGINAL UNITS C (4,I) = RECIPROCAL RECEIVER NUMBER C AS INDEX PLUS FRAC. DISTANCE C (5,I) = EQUIVALENT CDPN LOCATION C AS INDEX PLUS FRAC. DISTANCE C ( 2-D ARRAY DIMENSIONED: 5 BY NSHOT ) C C IN SRESID R4 SHOT-CONSISTENT LEAST-SQUARES RESIDUALS C (SHOT,1) = POSITIVE RAY (L-R) RESIDUAL C (SHOT,2) = NEGATIVE RAY (R-L) RESIDUAL C ( 2-D ARRAY DIMENSIONED: NSHOT BY 2 ) C C C IN NRECV I4 NUMBER OF UNIQUE RECEIVER POSITIONS C IN RECVID R4 RECEIVER IDENTIFICATION ARRAY C (1,I) = X COORDINATE (IN-LINE) C IN UNITS OF GRID-POINT POSITION C (2,I) = Y COORDINATE (CROSS-LINE) C IN UNITS OF GRID-POINT POSITION C (3,I) = SURFACE ELEVATION C IN ORIGINAL UNITS C (4,I) = RECIPROCAL SHOT LOCATION NUMBER C AS INDEX PLUS FRAC. DISTANCE C (5,I) = EQUIVALENT CDPN LOCATION C AS INDEX PLUS FRAC. DISTANCE C ( 2-D ARRAY DIMENSIONED: 5 BY NRECV ) C C IN RRESID R4 RECV-CONSISTENT OVERBURDEN VALUES C (RECV,1) = POSITIVE RAY (L-R) RESIDUAL C (RECV,2) = NEGATIVE RAY (R-L) RESIDUAL C ( 2-D ARRAY DIMENSIONED: NRECV BY 2 ) C C C IN X0, Y0 R4 ORIGIN OF CURRENT PLOTTING C IN XSTEP R4 STEP SIZE IN X DIRECTION C IN YSIZE R4 MAX. SIZE IN Y DIRECTION C IN HT R4 CHARACTER PLOTTING HEIGHTS C 1) PRIMARY LABEL CHARACTER HEIGHT (MM) C 2) Y-AXIS CHARACTER HEIGHT (MM) C 3) X-AXIS CHARACTER HEIGHT (MM) C 4) Y-AXIS CHARACTER WIDTH IN C PLOTTING UNITS C 5) X-AXIS CHARACTER WIDTH IN C PLOTTING UNITS C ( 1-D ARRAY DIMENSIONED: 5 ) C C WORK WORKXC R4 WORK ARRAY FOR PLOTTING (X COORDS) C ( 1-D ARRAY DIMENSIONED: 999 ) C WORK WORKYC R4 WORK ARRAY FOR PLOTTING (Y COORDS) C ( 1-D ARRAY DIMENSIONED: 999 ) C C IF( QCPLOT .NE. ' ' ) THEN IF( KPBUGF .GE. 1 ) * WRITE( IPR, 8520 ) QCPLOT, X, Y0 C CALL SACRMOD( QCPLOT, NRESID, * VELFLG, VRTMIN, VRTMAX, * NCDPN, CDPNID, CDPNUM, * NUMHRZ, CMODEL, PSEUDO, * NGRID, ZMODEL, PMODEL, * NSHOT, SHOTID, SRESID, * NRECV, RECVID, RRESID, * X, Y0, XSTEP, YSIZE, HT, * WORKXC, WORKYC ) C IMPLOT = IMPLOT + 1 C IF( IMPLOT .EQ. 4 ) THEN X = X + XYSIZE(1,5) Y0 = 0.0 ELSE Y0 = Y0 + 9.75 ENDIF ENDIF 575 CONTINUE C X0 = X0 + NUMIMC*XYSIZE(1,5) ENDIF C C*********************************************************************** C*** **** C*** CLOSE PLOTTER **** C*** **** C*********************************************************************** C C CLOSE UINRAS PLOT FILE C AND ADD PLOT TO OUTPUT QUEUE C C IN/OUT ARGUMENT TYPE DESCRIPTION C C IN PLCODE CH4 PLOTTER INITIALIZATION CODE C 'META' = PC G/GX METAFILE C 'VERC' = COLOR VERSATEC C IN YMAX R4 MAXIMUM PLOTTING LIMIT (Y-AXIS) C C IN PLTNUM I4 PLOT SEQUENCE NUMBER (1 FOR FIRST PLOT) C IN NUMPLT I4 TOTAL NUMBER OF PLOTS C C C IN/OUT DSNAME CH44 NAME OF META-FILE ALLOCATED C (IN: 'META' OPTION ONLY) C (OUT: 'VERC' OPTION ONLY) C C WORK PLTWRK I2 WORK AREA (16385 HALFWORDS) C C C OUT ERR1 I4 ERROR CODE. C 1 = NO ERROR C 2 = INVALID DATA SET TYPE (FIRST CARD COL 40) C 3 = SEISTRAN FILE ACCESS FAILURE C 4 = LINE NAME BLANK ON LINE CARD. C 5 = LINE NAME CONTAINS EMBEDDED BLANKS. C 6 = LINE NAME INVALID C 7 = INVALID PLOTTER CODE (FIRST CARD COL 76) C 8 = SVC 99 ENVIRONMENTAL ERROR (SEE ERR2) C 9 = SVC 99 INSTALLATION ERROR (SEE ERR2) C 10 = SVC 99 PARAMETER ERROR (SEE ERR2) C 11 = NOT USED C 12 = DCB MEMORY ALLOCATION FAILURE C 13 = NOT USED C 14 = NOT USED C 15 = DATA SET NAME ALL BLANKS. C 16 = ZERO OR NEGATIVE NUMBER OF RECORDS C 18 = INVALID BLOCKSIZE C 19 = BLOCKSIZE/RECORD LENGTH MISMATCH C 20 = BLOCKSIZE/RECORD LENGTH (SEISMIC). C 21 = INVALID TYPE OF PLOT C 22 = TSO USERID RETRIEVEL ERROR C 23 = NO DATA CARDS FOR PROCESS. C 24 = PLOTNO > KPDBGN & FAT'S EXIST. C 25 = NOT USED C 26 = OUTPUT TOO LARGE FOR INTERACTIVE C 27 = INVALID RECORD COUNT C 28 = INVALID BLOCKSIZE C 29 = EXCESSIVE VOLUME COUNT C C 102 = SVC 99 ENVIRONMENTAL ERROR (SEE ERR2) C 103 = SVC 99 INSTALLATION ERROR (SEE ERR2) C 104 = SVC 99 PARAMETER ERROR (SEE ERR2) C 105 = ATTEMPT TO CLOSE DATA SET FAILED. C 107 = DCB AREA NOT RELEASED BY FREEMAIN. C 108 = DDNAME IN DCB IS ALL BLANKS. C C C OUT ERR2 I4 CODES FROM DYNAMIC ALLOCATION (SVC 99). C BYTES 1 AND 2 = ERROR CODE, C BYTES 3 AND 4 = INFORMATION CODE. C C SEE IBM MANUAL GC28-0627-2, OS/VS2 MVS C SYSTEM PROGRAMMING LIBRARY: C JOB MANAGEMENT, PAGES 28 TO 31.0. C PLTNUM = 1 NUMPLT = 1 C CALL SACENDP( CHFLAG(7), YMAX, PLTNUM, NUMPLT, DSNAME, * PLTWRK, ERR1, ERR2 ) 999 RETURN C C*********************************************************************** C*** **** C*** FORMAT STATEMENTS **** C*** **** C*********************************************************************** C 8000 FORMAT(' ',130('=')//50X,'COLOR PLOTTING'//' OPTIONS = ',A16/) C 8300 FORMAT('0TIME-PICK ERROR PLOTTING:'/ * ' NUMBER OF OPTIONS: ',I5/ * ' NUMBER OF SHOT GRIDS PER OPTION: ',I5/ * ' NUMBER OF CDPN GRIDS PER OPTION: ',I5// * ' SHOT-MODE DISPLAYS SCALED ',F8.1,' BY ',F8.1/ * ' CDPN-MODE DISPLAYS SCALED ',F8.1,' BY ',F8.1/) C 8310 FORMAT(10X,'IP = ',I2,' -- QCREF = ',A1,' -- QCPLOT = ',A1) 8320 FORMAT(15X,'SHOT-MODE PLOT OF ',A1,' -- ORIGIN = ',2F8.1) 8330 FORMAT(15X,'CDPN-MODE PLOT OF ',A1,' -- ORIGIN = ',2F8.1) C 8400 FORMAT('0FIRST-BREAK MAP PLOTTING:'/ * ' NUMBER OF OPTIONS: ',I5/ * ' DISPLAYS SCALED ',F8.1,' BY ',F8.1/) C 8500 FORMAT('0INVERSION MODEL PLOTTING:'/ * ' NUMBER OF OPTIONS: ',I5/ * ' INVERSION DISPLAYS SCALED ',F8.1,' BY ',F8.1/) 8510 FORMAT(10X,'IP = ',I2,' -- IMREF = ',A1,' -- QCPLOT = ',A1) 8520 FORMAT(10X,' INVERSION PLOT OF ',A1,' -- ORIGIN = ',2F8.1) END