Directory of image this file is from
This file as a plain text file
C PROGRAM GFIC
C "GFIC" DRAWS GRAPHS IN TWO AND THREE DIMENSIONS,ROTATE THE IMAGE,
C AND EXPANDS AND CONTRACTS IT.IN ADDITION,IT HAS ALL THE HOUSEKEEPING
C FUNCTIONS.
C B 2-DIMENSIONAL GRAPHING (COEFFICIENTS,DOMAINS,ORIGINS)
C D CHAINS TO DRAW.SV
C E ERASES SCREEN
C G 3-DIMENSIONAL GRAPHING (COEFFIZIENTS,DOMAINS,ORIGINS)
C I INITIALIZES TABLE
C R ROTATION (DIRECTION,DEGREES)
C S SCALING (EXPANSION FACTOR)
C T CHAINS TO TAPE.SV
C W WRITES ALL VECTORS IN TABLE
C X EXITS FROM PROGRAM
C F CHAINS TO MODIFY.SV
C FORTRAN II
C SR : ERASE.FT / FDIS.FT / ALPHA.FT / RKB.FT
C CH : TAPE.SV / MODIFY.SV / DRAW.SV
C BEARBEITUNG VON DECUS #8-773
COMMON NTAB,IPT
DIMENSION NTAB(500,3)
GOTO 2
1 IPT=0
2 N3=1
N5=1
Q4=1.
J2=70
GOTO 4
3 CALL ERASE
4 CALL FDIS(0,0,767)
CALL ALPHA
CALL RKB(K)
C G-GRAPH,I-INIT,B-BILEVEL,S-SIZE,R-ROTATE,X-EXIT,W-WRITE,
C E-ERASE,T-TAPE,D-DRAW,F-MODIFY
IF (K-480) 5,22,5
5 IF (K-608) 6,1,6
6 IF (K-160) 7,36,7
7 IF (K-1248) 8,37,8
8 IF (K-1184) 9,40,9
9 IF (K-288) 10,17,10
10 IF (K-1568) 11,21,11
11 IF (K-1504) 12,18,12
12 IF (K-352) 13,3,13
13 IF (K-1312)14,16,14
14 IF (K-416) 4,15,4
15 CALL CHAIN('MODIFY')
16 CALL CHAIN('TAPE')
17 CALL CHAIN('DRAW')
C WRITING ROUTINE
18 N5=2
GOTO (19,38,45),N3
19 CALL FDIS(0,NTAB(1,2),NTAB(1,3))
DO 20 N=1,IPT
20 CALL FDIS (NTAB(N,1),NTAB(N,2),NTAB(N,3))
N3=1
N5=1
GOTO 4
21 CALL EXIT
C GRAPHING ROUTINE
22 CALL ALPHA
READ (1,100)A1,A2,A3,A4,A5,A6,A7
100 FORMAT('ENTER COEFF"S IN ORDER (1X**2+3Z**4+5)**6*7',
17(' ',F4.2))
READ (1,101) D,R,OX,OZ
101 FORMAT('ENTER D,R,OX,OZ F4.2 ',4(' 'F4.2))
Z=-OZ
DO 35 I2=1,767,J2
IPT=0
DO 31 I=0,1023,30
X=-OX+FLOAT(I)*D/1023.
Y=(A1*X**A2+A3*Z**A4+A5)**A6*A7
IF(Y)25,25,26
25 Y=1.
26 IF(Y-767.) 28,28,27
27 Y=767.
28 IPT=IPT+1
IF (IPT-500) 29,29,30
29 NTAB(IPT,1)=1
NTAB(IPT,2)=I
NTAB(IPT,3)=IFIX(Y)
GOTO 31
30 WRITE (1,103)
103 FORMAT ('MATRIX FILLED')
GOTO 32
31 CONTINUE
32 CALL ERASE
GOTO (33,38,45),N3
33 CALL FDIS(0,NTAB(1,2),NTAB(1,3))
DO 34 N=1,IPT
34 CALL FDIS (NTAB(N,1),NTAB(N,2),NTAB(N,3))
Z=-OZ+FLOAT(I2)*R/767.
35 CONTINUE
N3=1
GOTO 4
C BILEVEL FUNCTION
36 CALL ALPHA
J2=767
Q4=-1.
WRITE(1,104)
104 FORMAT('ENTER Z-LEVEL FOR OZ')
GOTO 22
C SCALING ROUTINE
37 CALL ALPHA
READ (1,105) S
105 FORMAT ('EXPANSION FACTOR (F4.2)',F4.2)
N3=2
GOTO 4
38 DO 39 N=1,IPT
T=(FLOAT(NTAB(N,2))-512.)*S+512.
R=(FLOAT(NTAB(N,3))-384.)*S+384.
NTAB(N,2)=IFIX(T)
NTAB(N,3)=IFIX(R)
39 CONTINUE
GOTO (33,19),N5
C ROTATE FUNCTION
40 CALL ALPHA
READ (1,106) NT2
106 FORMAT ('DIRECTION (W=CLOCKWISE,C=C-CLOCKWISE) ',A1)
IF (NT2-1504) 41,42,41
41 IF (NT2-224) 4,43,4
C CLOCKWISE ROTATION
42 Q3=-1.
GOTO 44
43 Q3=1.
44 READ (1,107) T
107 FORMAT ('DEGREES F3.0 ',F3.0)
Q2=T*3.1415925/180.*Q3
Q3=COS(Q2)
Q2=SIN(Q2)
N3=3
GOTO 4
45 DO 46 N=1,IPT
Q=Q3*FLOAT(NTAB(N,2)-512)+Q2*FLOAT(NTAB(N,3)-383)
Q4=-Q2*FLOAT(NTAB(N,2)-512)+Q3*FLOAT(NTAB(N,3)-383)
NTAB(N,2)=IFIX(Q)+512
46 NTAB(N,3)=IFIX(Q4)+383
GOTO (33,19),N5
END