File: AXIS.LS of Disk: V50/Source/Source-Listing-RALF-1
(Source file text)
FORTRAN IV 5AAAA (A6) 8-APR-92 PAGE ONE 0002 SUBROUTINE AXIS(XAX,YAX,TITLE,NCHR,AXLEN,ANG,FV,DV) C VERSION 50A 30-MAY-80 WVDM 0003 INTEGER PWR 0004 DIMENSION ARRAY(3) 0005 DATA PFCT/'.10'/ 0006 ICW=-1 0007 IF(NCHR.GE.0)ICW=1 0010 ZANG=ANG 0011 4 IF(ZANG.LT.0.)ZANG=ZANG+360. 0012 IF(ZANG.GT.360.)ZANG=ZANG-360. 0013 IF(ZANG.GT.360.).OR.(ZANG.LT.0.)GO TO 4 0014 CALL XYPLOT(XAX,YAX,-3) C MOVE TO START OF AXIS 0015 XPT=ZANG*.017453294 0016 CANGL=COS(XPT) 0017 SANGL=SIN(XPT) 0020 AFV=.1*SANGL*ICW 0021 ADV=.1*CANGL*ICW 0022 XPT=0 0023 YPT=0 0024 IXLEN=ABS(AXLEN) 0025 DO 10 ICHAR=0,IXLEN 0026 CALL XYPLOT(XPT,YPT,2) 0027 XTIC=XPT-AFV 0030 YTIC=YPT+ADV C DRAW THE TIC MARKS 0031 CALL XYPLOT(XTIC,YTIC,2) 0032 CALL XYPLOT(XPT,YPT,3) 0033 XPT=CANGL*(ICHAR+1) 0034 YPT=SANGL*(ICHAR+1) 0035 10 CONTINUE 0036 IEXP=1 0037 PWR=1 0040 AFV=ABS(FV) 0041 IF(AFV.EQ.0)AFV=ABS(DV) 0042 IF(AFV.GE.100) GO TO 30 0043 IF(AFV.LT.0.01) GO TO 40 C IEXP=EXPONENT, PWR=POWER IN 10S 0044 20 YTIC=(FV+(DV*IXLEN))/PWR 0045 XPT=CANGL*IXLEN-(.2*ICW-.05)*SANGL-.0857*CANGL 0046 YPT=SANGL*IXLEN+(.2*ICW-.05)*CANGL-.0857*SANGL 0047 DO 50 ICHAR=0,IXLEN 0050 CALL NUMBER(XPT,YPT,.14,YTIC,ZANG,2) C LABEL THE TIC MARK 0051 XPT=XPT-CANGL 0052 YPT=YPT-SANGL 0053 YTIC=YTIC-DV/PWR 0054 50 CONTINUE 0055 PWR=0 0056 55 IF(IEXP/(10**PWR).LT.10)GO TO 60 0057 PWR=PWR+1 0060 GO TO 55 0061 60 ICHAR=IABS(NCHR) 0062 IF(IEXP.GT.1) PWR=PWR+4 C FOR THE 10* CHARACTERS, PWR= # OF DIGITS FORTRAN IV 5AAAA (A6) 8-APR-92 PAGE TWO 0063 ADV=(IXLEN-(ICHAR+PWR)*.14)/2 0064 XTIC=ADV*CANGL-ICW*.6*SANGL 0065 YPT=ADV*SANGL+ICW*.6*CANGL 0066 CALL SYMBOL(XTIC,YPT,.14,TITLE,ZANG,ICHAR) C PRINT THE TITLE 0067 IF(IEXP.LE.1)GO TO 70 0070 CALL WHERE(XTIC,YTIC,XPT) 0071 CALL SYMBOL(XTIC,YTIC,.14,PFCT,ZANG,3) 0072 IF (AFV.LT..01) IEXP=-IEXP+2 0073 CALL WHERE(XTIC,YTIC,XPT) 0074 CALL NUMBER(XTIC-.09*SANGL,YTIC+.09*CANGL,.14,IEXP-1,ZANG,-1) C PRINT THE EXPONENT 0075 70 RETURN 0076 30 XTIC=AFV/PWR 0077 IF(XTIC.LT.100.) GOTO 20 0100 PWR=AINT(PWR*10) 0101 IEXP=IEXP+1 0102 GOTO 30 0103 40 XTIC=AFV*PWR 0104 IF(XTIC.GE.0.01) GOTO 45 0105 PWR=PWR*10 0106 IEXP=IEXP+1 0107 GOTO 40 0110 45 PWR=1/PWR C FOR THE DIVISION ABOVE 0111 GO TO 20 0112 END