Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-04 - decus/20-0126/apdex.for
There is 1 other file named apdex.for in the archive. Click here to see a list.
	SUBROUTINE ONEP1(TITL,NT)
C
C  Plot a set of (fairly) random data points
C
	DIMENSION TITL(1)
	DIMENSION X(8), Y(8)
C
	DATA X / 3.45, 2.67, 1.32, 4.44, 2.34, 8.00, 9.04,11.23/
	DATA Y / 2.33, 4.36, 2.84, 1.23, 4.65, 7.01,11.35,15.24/
C
	CALL ONEPLT(X,Y,8,'X data',6,'Y data',6,TITL,NT)
	END
	SUBROUTINE ONEP2(TITL,NT)
C
C  Plot a continuous diagonal wavy line
C
	DIMENSION TITL(1)
	DIMENSION X(100), Y(100)
C
	DO 100 I = 1, 100
	  X(I) = I / 2.0
	  Y(I) = SIN(X(I)) - X(I)
 100	CONTINUE
C
	CALL ONEPLT(X,Y,100,'X data',6,'Y data',6,TITL,NT)
	END
	SUBROUTINE ATOP1(TITL,NT)
C
C  Plot two sinusoidal lines, one connected, one not.
C
	DIMENSION TITL(1)
	DIMENSION X(200), Y(200), ISYM(200), NOTES(2,4)
C
	DATA (NOTES(1,I),I=1,3)/'Y=Sin(X)    and'/
	DATA (NOTES(2,I),I=1,2)/'Y=Cos(X)'/
C
	DO 100 I = 1,100
	  X(I) = I / 10.0
	  X(I+100) = X(I)
	  Y(I) = SIN(X(I))
	  Y(I+100) = COS(X(I))
	  ISYM(I) = 1
	  ISYM(I+100) = -14
 100	CONTINUE
C
	CALL ATOPLT(X,Y,ISYM,200,'X data',6,'Y data',6,
     *		    TITL,NT,NOTES,2)
	END
	INTEGER	I, N, EGS(12), A9
C
C	Read the number of examples to be plotted and the numbers
C	of the examples which are to be plotted.  Then loop plotting
C	one example each time round.
C
	OPEN(UNIT=10,ACCESS='SEQIN',FILE='APDEX.DAT')
	READ(10,1000) N, EGS
 1000	FORMAT(13I)
	CLOSE(UNIT=10)
C
C
C
	DO 600 I = 1, N
	  GOTO (10,20,30,40,50,60,70,80,90,100,110,120), EGS(I)
C
C	Simple use of ONEPLT
C
 10	  CALL ONEP1('Example 1',9)
	  GOTO 500
C
C	More simple use of ONEPLT
C
 20	  CALL ONEP2('Example 2',9)
	  GOTO 500
C
C	Simple use of ATOPLT
C
 30	  CALL ATOP1('Example 3',9)
	  GOTO 500
C
C	Using ATOPRM to cover a graph with a grid
C
 40	  CALL EX4
	  GOTO 500
C
C	Setting character labels on the X-axis
C
 50	  CALL EX5
	  GOTO 500
C
C	Plotting logarithms of the X-axis data
C
 60	  CALL EX6
	  GOTO 500
C
C	Fitting a linear least squares line to data
C
 70	  CALL ATOLSQ(1,1)
	  CALL ONEP1('Example 7',9)
	  CALL ATOLSQ(-1)
	  GOTO 500
C
C	Plotting INTEGER values as tick labels along the X-axis
C
 80	  CALL ATOGET(1,37,A8)
	  CALL ATOPRM(1,37,1.0)
	  CALL ATOP1('Example 8',9)
	  CALL ATOPRM(1,37,A8)
	  GOTO 500
C
C	Fixing the increment in values at ticks along the X-axis
C	to 0.5
C
 90	  CALL ATOGET(1,33,A9)
	  CALL ATOPRM(1,33,0.5)
	  CALL ONEP1('Example 9',9)
	  CALL ATOPRM(1,33,A9)
	  GOTO 500
C
C	Fixing the value at some tick on the X-axis to 5.0
C
 100	  CALL EX10
	  GOTO 500
C
C	Fixing the tick value at the origin of the X-axis to 3.0
C	and causing windowing of the data
C
 110	  CALL EX11
	  GOTO 500
C
C	Use of simple plotting method
C
 120	  CALL EX12
C
C
C
 500	  WRITE(6,1010) EGS(I)
 1010	  FORMAT(' Example ',I2,' plotted')
 600	CONTINUE
C
C
	END
	SUBROUTINE EX4
C
C	Cause a grid to be drawn over the graph
C
	DIMENSION I4(4), X4(4), A4(4), J4(2)
C
	DATA I4 /   7  ,  26  ,   8  ,  27  /
	DATA X4 / 220.0, 280.0,   0.0,  -2.0/
	DATA J4 /   4  ,   3/
C
	CALL ATOGET(4,I4,A4)
	CALL ATOGET(2,J4,X4)
	X4(1) = X4(1) * 0.5
	X4(2) = X4(2) * 0.5
	CALL ATOPRM(4,I4,X4)
	CALL ATOP1('Example 4',9)
	CALL ATOPRM(4,I4,A4)
	END
	SUBROUTINE EX5
C
C	Writing the tick labels as character values instead
C	of numbers
C
	DIMENSION DAYS(7), I5(3), A5(3)
	DATA DAYS/' Sun  Mon  Tue  Wed  Thu  Fri  Sat '/
	DATA I5/31, 33, 35/
C
	CALL ATOGET(3,I5,A5)
	CALL ATOCHL(1,7,DAYS,0.5,0.0)
	CALL ONEP1('Example 5',9)
	CALL ATOCHL(-1)
	CALL ATOPRM(3,I5,A5)
	END
	SUBROUTINE EX6
C
C	Plotting logarithms of data
C
	DIMENSION I6(2), X6(2), A6(2)
	DATA I6, X6 /31, 35, 2.0, 1.0/
C
	CALL ATOGET(2,I6,A6)
	CALL ATOLOG(1)
	CALL ATOPRM(2,I6,X6)
	CALL ONEP1('Example 6',9)
	CALL ATOLOG(-1)
	CALL ATOPRM(2,I6,A6)
	END
	SUBROUTINE EX10
C
C	Fixing one tick value along the X-axis
C
	DIMENSION I10(2), X10(2), A10(2)
	DATA I10, X10 /31, 35, 1.0, 5.0/
C
	CALL ATOGET(2,I10,A10)
	CALL ATOPRM(2,I10,X10)
	CALL ONEP1('Example 10',10)
	CALL ATOPRM(2,I10,A10)
	END
	SUBROUTINE EX11
C
C	Fixing the X-axis origin and windowing
C
	DIMENSION I11(2), X11(2), A11(2)
	DATA I11, X11/ 31, 35, 2.0, 3.0/
C
	CALL ATOGET(2,I11,A11)
	CALL ATOPRM(2,I11,X11)
	CALL ONEP1('Example 11',10)
	CALL ATOPRM(2,I11,A11)
	END
	SUBROUTINE EX12
C
C	Really simple stuff
C
	DIMENSION X(8), Y(8)
C
	DATA X / 1.32, 2.34, 2.67, 3.45, 4.44, 8.00, 9.04,11.23/
	DATA Y / 2.84, 4.65, 4.36, 2.33, 1.23, 7.01,11.35,15.24/
C
	CALL SIMPLT(X,Y,8)
	END