SUBROUTINE AXIS(XPAGE,YPAGE,IBCD,NCHAR,AXLEN,ANGLE,FIRSTV,DELTAV) C C PARAMETER SETZEN : C C CALL AXIS (XTICS,YTICS,0,MODUL,999.,Z,T,0.0) C DIMENSION IBCD(2) C EQUIVALENCE (XLS,B),(XLC,D),(YVAL,A) C C STANDARD WERTE FUER TIC - LAENGE UND ZEICHENHOEHE C STANDARD WERTE FUER TIC - ABSTAND UND BESCHRIFTUNG C C DATA T,Z,ZH,Z2,XTICS,YTICS / 0.2 , 0.27 , 0.135 , 0.54 , C 1 1.0 , 2.0 / C T = 0.2 Z = 0.35 ZH = 0.175 Z2 = 0.7 XTICS = 1. YTICS = 2. C C PARAMETER SETZEN ? C IF (AXLEN-999.) 50,1100,50 C 50 S = TSIN(ANGLE) C = TCOS(ANGLE) A = 1.0 B = 2.0 D = 1.0 IEX = 0 NC = NCHAR C IF (NC) 100,300,300 100 A = -A B = 3.0 D = 3.0 NC = -NC C 300 LFLAG = 0 DELT = ABS(DELTAV) 400 IF (DELT-100.) 500,450,450 450 DELT = DELT*0.1 IEX = IEX-1 GOTO 400 500 IF (DELT-0.01) 550,600,600 550 IF (DELT-1.0) 560,600,600 560 DELT = DELT*10.0 IEX = IEX+1 GOTO 550 600 X10 = 10.0**IEX XVAL = FIRSTV*X10 DELT = DELTAV*X10 C DX = -Z DY = A*(D*ZH+T) XN = XPAGE+DX*C-DY*S YN = YPAGE+DX*S+DY*C C DX = AXLEN*0.5-FLOAT(NC)*ZH IF (IEX) 650,660,650 650 DX = DX-ZH*FLOAT(IABS(IEX)) 660 DY = A*(B*Z+T) XT = XPAGE+DX*C-DY*S YT = YPAGE+DX*S+DY*C C XMOD = ABS(XVAL)+ABS(DELT*AXLEN)+ABS(X10) IF (IMOD) 670,680,670 670 XMOD=IMOD 680 XL = XPAGE YL = YPAGE XLS = XTICS*S XLC = XTICS*C C DY = T*A DX = S*DY DY = C*DY C MAX = AXLEN/YTICS DO 1000 I = 0 , MAX YVAL = AMOD(XVAL,XMOD) J = 2 IF (AINT(YVAL)-YVAL) 700,690,700 690 J = -1 700 CALL NUMBER (XN,YN,Z,YVAL,ANGLE,J) IF (LFLAG) 720,710,720 710 IF (I-MAX/2) 720,715,720 715 LFLAG = 1 720 IF (LFLAG) 900,900,730 730 CALL SYMBOL (XT,YT,Z,IBCD,ANGLE,NC) IF (IEX) 740,800,740 740 CALL SYMBOL (999.,999.,Z,' * ',ANGLE,3) IEX1 = IEX IF (IEX1) 750,760,760 750 IEX1 = -1 760 CALL NUMBER (999.,999.,Z,10.0**(-IEX),ANGLE,IEX1) 800 LFLAG = -1 900 XN = XN+YTICS*C YN = YN+YTICS*S XVAL = XVAL+YTICS*DELT CALL PLOT (XL,YL,3) IF (I-MAX) 910,1050,910 910 K = YTICS/AMOD(XTICS,YTICS+1.0E-6) DO 950 J = 1 , K CALL PLOT (XL-DX,YL+DY,2) CALL PLOT (XL,YL,2) XL = XL+XLC YL = YL+XLS CALL PLOT (XL,YL,2) CALL PLOT (XL-DX,YL+DY,2) 950 CONTINUE 1000 CONTINUE 1050 RETURN C C PARAMETER UEBERNEHMEN C 1100 IF (ANGLE) 1110,1150,1110 1110 Z = ANGLE Z2 = 2.0*Z ZH = 0.5*Z 1150 IF (FIRSTV) 1160,1170,1160 1160 T = FIRSTV 1170 IF (XPAGE) 1180,1190,1180 1180 XTICS = XPAGE 1190 IF (YPAGE) 1200,1210,1200 1200 YTICS = YPAGE 1210 IMOD = NCHAR RETURN END