File: AXISW.FT of Tape: Various/ETH/f2
(Source file text)
SUBROUTINE AXIS(XAX,YAX,TITLE,NCHR,AXLEN,ANG,NUM,FV,DV,SIZEP) DIMENSION ARRAY(3) DATA PFCT/'.10'/ ICW=-1 IF(NCHR.GE.0)ICW=1 ICWT=ICW IF(AXLEN.LT.0.) ICWT=-ICWT C- TRIG. POSITIVE SIDE ZANG=ANG 4 IF(ZANG.LT.0.)ZANG=ZANG+360. IF(ZANG.GT.360.)ZANG=ZANG-360. IF(ZANG.GT.360.).OR.(ZANG.LT.0.)GO TO 4 CALL XYPLOT(XAX,YAX,3) C MOVE TO START OF AXIS XPT=ZANG*.017453294 CANGL=2.5*COS(XPT) SANGL=2.5*SIN(XPT) AFV=.1*SANGL*ICWT ADV=.1*CANGL*ICWT XPT=XAX YPT=YAX IXLEN=IABS(AXLEN) DO 10 ICHAR=0,IXLEN CALL XYPLOT(XPT,YPT,2) XTIC=XPT-AFV YTIC=YPT+ADV C DRAW THE TIC MARKS CALL XYPLOT(XTIC,YTIC,2) CALL XYPLOT(XPT,YPT,3) XPT=CANGL*(ICHAR+1)+XAX YPT=SANGL*(ICHAR+1)+YAX 10 CONTINUE IEXP=0 PWR=1. C IEXP=EXPONENT, PWR=POWER IN 10S AFV=ABS(FV) ADV=ABS(FV+DV*IXLEN) IF(AFV.LT.ADV)AFV=ADV 30 XTIC=AFV/PWR IF(XTIC.LT.1000.) GOTO 40 PWR=PWR*10. IEXP=IEXP+1 GOTO 30 40 IF(XTIC.GT..99) GOTO 20 PWR=PWR/10. IEXP=IEXP-1 GOTO 30 20 YTIC=(FV+(DV*IXLEN))/PWR SIZE=ABS(SIZEP) CHOV2=SIZE*3./(7.*2.5) DIS=.05*(ICWT*ICW+1)+CHOV2*(3-ICW*ICWT)/2 XPT=CANGL*(IXLEN-CHOV2)-((DIS+CHOV2)*ICW-CHOV2)*SANGL+XAX YPT=SANGL*(IXLEN-CHOV2)+((DIS+CHOV2)*ICW-CHOV2)*CANGL+YAX DO 50 ICHAR=0,IXLEN CALL NUMBER(XPT,YPT,SIZE,YTIC,ZANG,NUM) C LABEL THE TIC MARK XPT=XPT-CANGL YPT=YPT-SANGL YTIC=YTIC-DV/PWR IF (ABS(YTIC).LT.1./10**(NUM+1))YTIC=0. 50 CONTINUE DIS=DIS+CHOV2*4 SIZE=SIZE+.07 CHOV2=SIZE*3./(7.*2.5) ICWT=0 55 IF(IABS(IEXP).LT.10**ICWT)GO TO 60 ICWT=ICWT+1 GO TO 55 60 ICHAR=IABS(NCHR) IF(IEXP.NE.0)ICWT=ICWT+3 IF(IEXP.LT.0)ICWT=ICWT+1 C FOR THE 10* CHARACTERS, PWR= # OF DIGITS ADV=IXLEN/2.-(ICHAR+ICWT)*SIZE/5. XTIC=ADV*CANGL-(ICW*(DIS+CHOV2)-CHOV2)*SANGL+XAX YPT=ADV*SANGL+(ICW*(DIS+CHOV2)-CHOV2)*CANGL+YAX CALL SYMBOL(XTIC,YPT,SIZE,TITLE,ZANG,ICHAR) C PRINT THE TITLE IF(IEXP.EQ.0)GO TO 70 CALL WHERE(XTIC,YTIC,XPT) CALL SYMBOL(XTIC,YTIC,SIZE,PFCT,ZANG,3) CALL WHERE(XTIC,YTIC,XPT) XTIC=XTIC-CHOV2*SANGL YTIC=YTIC+CHOV2*CANGL SIZE=SIZE-.07 CALL NUMBER(XTIC,YTIC,SIZE,IEXP,ZANG,-1) C PRINT THE EXPONENT 70 RETURN END