1 C APFELMAENNCHEN-PROGRAMM, 02.APRIL.2006 PHILIPP HACHTMANN
4 C THIS VERSION SHOULD RUN A BIT FASTER BECAUSE THE SQUARE
8 C SENSE-SWITCH 1: IF SET, ASK FOR PARAMETERS
9 C SENSE-SWITCH 2: IF SET, DON'T PRINT PARAMETERS ON START
10 C SENSE-SWITCH 3: IF SET, RESTORE PARAMETERS TO DEFAULT VALUES
12 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
13 C COMMON BLOCK DECLARATIONS
15 INTEGER MAXI,WIDTH,CR,LF,POSI,NEGA
16 COMMON /PARAM2/MAXI,WIDTH,CR,LF,POSI,NEGA
18 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
19 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
24 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
27 10 FORMAT (46HMANDELBROT-DEMO 3RC1 02.04.2006, PH. HACHTMANN,
28 + 20H - PRELIMIMARY ISSUE)
30 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
32 CCCCCC RESET DO DEFAULT VALUES?
36 CCCCCC ON THE FIRST START OR IF DESIRED
37 IF(INIT.EQ.0) CALL STVAL
39 CCCCCC DO WE HAVE TO ASK FOR PARAMETERS?
41 IF (I.EQ.1) CALL GETCFG
43 CCCCCC OUTPUT SETTINGS?
45 IF(I.EQ.2) CALL OUTCFG
55 CCCCCC BREAK WITH 7 in A REG, THEN START OVER
61 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
62 CCCCCC THE MANDELBROT SET CALCULATION
65 INTEGER MAXI,WIDTH,CR,LF
66 COMMON /PARAM2/MAXI,WIDTH,CR,LF
67 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
68 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
74 CCCCCC ENTER THE CALCULATION
75 299 CMPVAL=MAXVAL*MAXVAL
79 CCCCCC EINSTIEG IN DEN AKTUELLEN PUNKT
84 CCCCCC HIER DER ITERIERTE TEIL
90 IF ((ZR*ZR+ZI*ZI).GE.CMPVAL) GO TO 410
92 IF (COUNT.GE.MAXI) GO TO 410
97 IF (COUNT.GE.8) NOUT=46
98 IF (COUNT.GE.23) NOUT=43
99 IF (COUNT.EQ.MAXI) NOUT=64
104 CCCCCC NEUEN PUNKT MACHEN
106 CCCCCC ZEILE NOCH NICHT VOLL?
107 IF (X.LE.HIGHX) GO TO 300
108 CCCCCC X AN ANFANG SETZTEN, CR+LF DRUCKEN
112 CCCCCC Y WEITERRUECKEN - NEGATIV WEIL WIR VON OBEN KOMMEN
114 IF (Y.GE.LOWY) GO TO 300
116 CCCCCC HIER IST DAS BILD FERTIG.
119 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
120 CCCCCC STARTWERTE AUSFUELLEN
123 INTEGER MAXI,WIDTH,CR,LF
124 COMMON /PARAM2/MAXI,WIDTH,CR,LF
125 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
126 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
141 CCCCCC SCHRITTWEITEN AUSRECHNEN
142 XSTEP = (HIGHX-LOWX)/FLOAT(WIDTH)
146 1500 FORMAT (20HDEFAULT VALUES USED.)
151 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
152 CCCCCC EINSTELLUNGEN EINLESEN
155 INTEGER MAXI,WIDTH,CR,LF
156 COMMON /PARAM2/MAXI,WIDTH,CR,LF
157 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
158 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
160 REAL XIN1,XIN2,YIN1,YIN2
173 11 FORMAT(14H X FROM : )
175 13 FORMAT(14H Y FROM : )
177 15 FORMAT(14H MAXIT (I3): )
181 CCCCCC EVENTUELL STARTWERTE TAUSCHEN:
182 CCCCCC WENN XIN2 GROESSER IST OK, ANSONSTEN TAUSCHEN
183 150 I F(XIN2.GT.XIN1) GO TO 200
188 CCCCCC WENN YIN2 GROESSER IST OK, ANSONSTEN TAUSCHEN
189 200 IF(YIN2.GT.YIN1) GO TO 201
194 CCCCCC WERTE UEBERNEHMEN
200 CCCCCC SCHRITTWEITEN AUSRECHNEN
201 XSTEP = (HIGHX-LOWX)/FLOAT(WIDTH)
208 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
209 CCCCCC EINSTELLUNGEN AUSGEBEN
212 INTEGER MAXI,WIDTH,CR,LF
213 COMMON /PARAM2/MAXI,WIDTH,CR,LF
214 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
215 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
218 20 FORMAT (9HSETTINGS:)
219 WRITE (1,30) LOWX, HIGHX
220 30 FORMAT (12HX-WERTE VON ,1F8.5,5H BIS ,1F8.5)
221 WRITE (1,40) LOWY, HIGHY
222 40 FORMAT (12HY-WERTE VON ,F8.5,5H BIS ,F8.5)
223 WRITE (1,50) MAXI, MAXVAL, XSTEP, YSTEP, WIDTH
224 50 FORMAT ( 4HMAX:,I3,
233 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
237 INTEGER MAXI,WIDTH,CR,LF
238 COMMON /PARAM2/MAXI,WIDTH,CR,LF
241 245 FORMAT(25HPARAMETER RESET REQUESTED)
247 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
248 C PRELOAD VALUE OF INIT
254 CCCCCCCCCCCCCCCCCCCCCCCC