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
62 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
63 CCCCCC THE MANDELBROT SET CALCULATION
66 INTEGER MAXI,WIDTH,CR,LF
67 COMMON /PARAM2/MAXI,WIDTH,CR,LF
68 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
69 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
75 CCCCCC ENTER THE CALCULATION
76 299 CMPVAL=MAXVAL*MAXVAL
80 CCCCCC EINSTIEG IN DEN AKTUELLEN PUNKT
85 CCCCCC HIER DER ITERIERTE TEIL
91 IF ((ZR*ZR+ZI*ZI).GE.CMPVAL) GO TO 410
93 IF (COUNT.GE.MAXI) GO TO 410
98 C IF (COUNT.GE.8) NOUT=46
99 C IF (COUNT.GE.23) NOUT=43
100 C IF (COUNT.EQ.MAXI) NOUT=64
101 IF (COUNT.GE.8) NOUT=46
102 IF (COUNT.GE.23) NOUT=43
103 IF (COUNT.EQ.MAXI) NOUT=64
108 CCCCCC NEUEN PUNKT MACHEN
110 CCCCCC ZEILE NOCH NICHT VOLL?
111 IF (X.LE.HIGHX) GO TO 300
112 CCCCCC X AN ANFANG SETZTEN, CR+LF DRUCKEN
116 CCCCCC Y WEITERRUECKEN - NEGATIV WEIL WIR VON OBEN KOMMEN
118 IF (Y.GE.LOWY) GO TO 300
120 CCCCCC HIER IST DAS BILD FERTIG.
123 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
124 CCCCCC STARTWERTE AUSFUELLEN
127 INTEGER MAXI,WIDTH,CR,LF
128 COMMON /PARAM2/MAXI,WIDTH,CR,LF
129 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
130 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
145 CCCCCC SCHRITTWEITEN AUSRECHNEN
146 XSTEP = (HIGHX-LOWX)/FLOAT(WIDTH)
150 1500 FORMAT (20HDEFAULT VALUES USED.)
155 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
156 CCCCCC EINSTELLUNGEN EINLESEN
159 INTEGER MAXI,WIDTH,CR,LF
160 COMMON /PARAM2/MAXI,WIDTH,CR,LF
161 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
162 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
164 REAL XIN1,XIN2,YIN1,YIN2
177 11 FORMAT(14H X FROM : )
179 13 FORMAT(14H Y FROM : )
181 15 FORMAT(14H MAXIT (I3): )
185 CCCCCC EVENTUELL STARTWERTE TAUSCHEN:
186 CCCCCC WENN XIN2 GROESSER IST OK, ANSONSTEN TAUSCHEN
187 150 I F(XIN2.GT.XIN1) GO TO 200
192 CCCCCC WENN YIN2 GROESSER IST OK, ANSONSTEN TAUSCHEN
193 200 IF(YIN2.GT.YIN1) GO TO 201
198 CCCCCC WERTE UEBERNEHMEN
204 CCCCCC SCHRITTWEITEN AUSRECHNEN
205 XSTEP = (HIGHX-LOWX)/FLOAT(WIDTH)
212 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
213 CCCCCC EINSTELLUNGEN AUSGEBEN
216 INTEGER MAXI,WIDTH,CR,LF
217 COMMON /PARAM2/MAXI,WIDTH,CR,LF
218 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
219 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
222 20 FORMAT (9HSETTINGS:)
223 WRITE (1,30) LOWX, HIGHX
224 30 FORMAT (12HX-WERTE VON ,1F8.5,5H BIS ,1F8.5)
225 WRITE (1,40) LOWY, HIGHY
226 40 FORMAT (12HY-WERTE VON ,F8.5,5H BIS ,F8.5)
227 WRITE (1,50) MAXI, MAXVAL, XSTEP, YSTEP, WIDTH
228 50 FORMAT ( 4HMAX:,I3,
237 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
241 INTEGER MAXI,WIDTH,CR,LF
242 COMMON /PARAM2/MAXI,WIDTH,CR,LF
245 245 FORMAT(25HPARAMETER RESET REQUESTED)
251 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
252 C PRELOAD VALUE OF INIT
258 CCCCCCCCCCCCCCCCCCCCCCCC