CTITLESAVS20 -- PLOTS ANNOTATED AXES FOR PROCESS VSPA 00000100 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR P. D. HUDDLESTON AOGC R&D 00000200 CA DESIGNER R. D. HUDDLESTON 00000300 CA LANGUAGE FORTRAN H 00000400 CA SYSTEM S/370 00000500 CA WRITTEN AUG/1981 00000600 C REVISED MAR 82 -- REWRITTEN FOR SPARC BY RDK 00000700 C REVISED DEC 83 -- ADD SCALE FACTOR TO CONTROL ANNOTATION 00000800 CA 00000900 CA CALL SAVS20 ( XST, YST, ISTART, STEPS, BIAS, SCALE, NDEC, 00001000 CA * IFLAG, XORIGN, YORIGN ) 00001100 CA 00001200 CA IN/OUT ARGUMENT TYPE DESCRIPTION 00001300 CA 00001400 CA IN XST R4 X ORIGIN OF AXIS 00001500 CA IN YST R4 Y ORIGIN OF AXIS 00001600 CA IN ISTART I4 STEP NUMBER OF START OF AXIS 00001700 CA IN STEPS R4 NUMBER OF STEPS IN THE AXIS 00001800 CA IN BIAS R4 INITIAL BIAS AT STEP 1 00001900 CA IN SCALE R4 AXIS SCALE IN UNITS/INCH 00002000 CA IN NDEC I4 NUMBER OF DECIMALS TO USE IN LABELS 00002100 CA IN IFLAG I4 TRAVEL TIMES TO RECEIVERS AT DEPTH 00002200 CA > 0 CREATES VERTICAL AXIS 00002300 CA < 0 CREATES HORIZONTAL AXIS 00002400 CA IN XORIGN R4 X ORIGIN OF CURRENT PANEL TO PLOT 00002500 CA IN YORIGN R4 Y ORIGIN OF CURRENT PANEL TO PLOT 00002600 CA 00002700 CA THIS ROUTINE PLOTS A VERTICAL OR HORIZONTAL ANNOTATED AXIS ALONG 00002800 CA THE PERIMETER OF THE CURRENT PANEL FOR USE BY PROCESS VSPA. AXIS 00002900 CA BEGINS AT (BIAS+ISTART) AND ENDS AT (BIAS+STEPS). AXIS LENGTH IS 00003000 CA (STEPS-ISTART)/SCALE. TIC MARKS OCCUR AT THE BEGINNING, END, AND 00003100 CA EVERY 100 STEPS. TIC LABELS OCCUR AT THE BEGINNING, THE END, AND 00003200 CA EVERY 1000 STEPS. 00003300 CA 00003400 CA EXAMPLE: 00003500 CA IF CALLED WITH ISTART=2 00003600 CA STEPS =1200 00003700 CA BIAS =4990 00003800 CA SCALE =100 00003900 CA AN 11.98 INCH AXIS WILL BE DRAWN FROM 4992.0 TO 6190.0 00004000 CA TIC MARKS WILL BE PLACED AT 4992,5000,5100,5200,5300, 00004100 CA 5400,5500,5600,5700,5800, 00004200 CA 5900,6000,6100,6190. 00004300 CA INTERMEDIATE TIC MARKS WILL BE ONE INCH APART. 00004400 CA TIC LABELS WILL APPEAR AT 4992, 6000 AND 6190. 00004500 CA NO TIC LABEL WILL APPEAR AT 5000 DUE TO PROXIMITY TO 4992. 00004600 CA 00004700 CAEND 00004800 C 00004900 SUBROUTINE SAVS20(XST,YST,ISTART,STEPS,BIAS,SCALE,NDEC,IFLAG, 00005000 * XORIGN,YORIGN ) 00005100 C 00005200 REAL LOG10 00005300 C 00005400 ZMAX = BIAS + STEPS 00005500 ISCF = - LOG10(ZMAX) + 4.0 00005600 SCF = 10.**ISCF 00005700 XBIAS= BIAS *SCF 00005800 SCALX= SCALE*SCF 00005900 C 00006000 NSTEPS=STEPS*SCF 00006100 SHITE=0.07 00006200 CENTL=0.175 00006300 WIDTH=0.07 00006400 C 00006500 XLO = XST 00006600 YLO = YST 00006700 C 00006800 XX1=XLO-0.4 00006900 X01=XLO-.25 00007000 X02=XLO-.13 00007100 YY1=YLO-0.4 00007200 Y01=YLO-.25 00007300 Y02=YLO-.13 00007400 C 00007500 Z = XLO 00007600 IF (IFLAG.GT.0) Z = YLO 00007700 C 00007800 C INITIALIZE LAST TIC MARK FLAG FOR NO NUMBER YET 00007900 C PRECOMPUTE X POSITION OF LAST NUMBER TO BE ON AXIS 00008000 C 00008100 10 ILAST=0 00008200 ZENDNO=Z+FLOAT(NSTEPS)/SCALX 00008300 C 00008400 C PRESET MINIMUM NUMBER SPACING IN FPI, ASSUME 5 DIGIT NUMBERS 00008500 C 00008600 C NPOINT=1 00008700 C IF (NDEC.LT.0) NPOINT=0 00008800 C NFRAC=NDEC 00008900 C IF (NDEC.LT.0) NFRAC=0 00009000 C ZMINNO= WIDTH * (5 + NFRAC + NPOINT ) 00009100 ZMINNO= WIDTH * 5.0 00009200 C 00009300 C DRAW FIRST TIC MARK AND FORCE NUMBER TO BE PLACED THERE 00009400 C 00009500 IF(IFLAG.GT.0) GO TO 15 00009600 CALL NUMBER(XLO-CENTL,YY1,SHITE,BIAS,0.0,NDEC) 00009700 CALL PLOT (XLO,Y01,3) 00009800 CALL PLOT (XLO,YLO,2) 00009900 GO TO 20 00010000 15 CALL NUMBER(XX1,YLO-CENTL,SHITE,BIAS,90.0,NDEC) 00010100 CALL PLOT (X01,YLO,3) 00010200 CALL PLOT (XLO,YLO,2) 00010300 C 00010400 C INITIALIZE PREV NUMBER POSITION TO FIRST TIC MARK/NUMBER 00010500 C DRAW INTERMEDIATE TIC MARKS, PUTTING IN SELECTED INTEGER NUMBERS 00010600 C USE XPRVNO, XENDNO AND XMINNO TO PREVENT PUTTING TOO CLOSE TOGETHER 00010700 C 00010800 20 ZPRVNO=Z 00010900 ISTRT1=ISTART+1 00011000 C 00011100 DO 60 I=ISTRT1,NSTEPS 00011200 K=I-ISTART 00011300 ZZ=XBIAS+FLOAT(I-1) 00011400 N1=IFIX(ZZ-1.)/100. 00011500 N2=IFIX(ZZ)/100 00011600 IF(N1.EQ.N2)GO TO 60 00011700 ZZ=Z+FLOAT(K-1)/SCALX 00011800 N1=N1/10 00011900 N2=N2/10 00012000 IF(N1.EQ.N2)GO TO 55 00012100 IF ( (ZENDNO-ZZ) .LT. ZMINNO ) GO TO 54 00012200 IF ( (ZZ-ZPRVNO) .LT. ZMINNO ) GO TO 54 00012300 C 00012400 C PUT A TIC LABEL ON THIS TIC MARK 00012500 C 00012600 DN=FLOAT(N2)*1000./SCF 00012700 IF(IFLAG.LT.0) CALL NUMBER(ZZ-CENTL,YY1,SHITE,DN,0.0,NDEC) 00012800 IF(IFLAG.GT.0) CALL NUMBER(XX1,ZZ-CENTL,SHITE,DN,90.0,NDEC) 00012900 C 00013000 C SET LAST TIC MARK FLAG AND RECORD LABEL POSITION 00013100 C 00013200 ILAST=1 00013300 ZPRVNO=ZZ 00013400 C 00013500 C DRAW A LONG (MAJOR) TIC MARK HERE 00013600 C 00013700 54 IF(IFLAG.LT.0) CALL PLOT(ZZ,Y01,3) 00013800 IF(IFLAG.LT.0) CALL PLOT(ZZ,YLO,2) 00013900 IF(IFLAG.GT.0) CALL PLOT(X01,ZZ,3) 00014000 IF(IFLAG.GT.0) CALL PLOT(XLO,ZZ,2) 00014100 GO TO 60 00014200 C 00014300 C DRAW A SHORT (MINOR) TIC MARK HERE 00014400 C 00014500 55 IF(IFLAG.LT.0) CALL PLOT (ZZ,Y02,3) 00014600 IF(IFLAG.LT.0) CALL PLOT (ZZ,YLO,2) 00014700 IF(IFLAG.GT.0) CALL PLOT (X02,ZZ,3) 00014800 IF(IFLAG.GT.0) CALL PLOT (XLO,ZZ,2) 00014900 C 00015000 C CLEAR LAST TIC MARK FLAG 00015100 C 00015200 ILAST=0 00015300 60 CONTINUE 00015400 C 00015500 IF (ILAST.EQ.1) GO TO 70 00015600 C 00015700 ZZ=Z+FLOAT(NSTEPS)/SCALX 00015800 DN=(FLOAT(NSTEPS)+XBIAS)/SCF 00015900 IF(IFLAG.LT.0) CALL NUMBER (ZZ-CENTL,YY1,SHITE,DN,0.0,NDEC) 00016000 IF(IFLAG.LT.0) CALL PLOT (ZZ,Y01,3) 00016100 IF(IFLAG.LT.0) CALL PLOT (ZZ,YLO,2) 00016200 IF(IFLAG.GT.0) CALL NUMBER (XX1,ZZ-CENTL,SHITE,DN,90.0,NDEC) 00016300 IF(IFLAG.GT.0) CALL PLOT (X01,ZZ,3) 00016400 IF(IFLAG.GT.0) CALL PLOT (XLO,ZZ,2) 00016500 C 00016600 70 RETURN 00016700 END 00016800