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 C IF (COUNT.GE.8) NOUT=46
98 C IF (COUNT.GE.23) NOUT=43
99 C IF (COUNT.EQ.MAXI) NOUT=64
100 IF (COUNT.GE.8) NOUT=46
101 IF (COUNT.GE.23) NOUT=43
102 IF (COUNT.EQ.MAXI) NOUT=64
107 CCCCCC NEUEN PUNKT MACHEN
109 CCCCCC ZEILE NOCH NICHT VOLL?
110 IF (X.LE.HIGHX) GO TO 300
111 CCCCCC X AN ANFANG SETZTEN, CR+LF DRUCKEN
115 CCCCCC Y WEITERRUECKEN - NEGATIV WEIL WIR VON OBEN KOMMEN
117 IF (Y.GE.LOWY) GO TO 300
119 CCCCCC HIER IST DAS BILD FERTIG.
122 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
123 CCCCCC STARTWERTE AUSFUELLEN
126 INTEGER MAXI,WIDTH,CR,LF
127 COMMON /PARAM2/MAXI,WIDTH,CR,LF
128 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
129 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
144 CCCCCC SCHRITTWEITEN AUSRECHNEN
145 XSTEP = (HIGHX-LOWX)/FLOAT(WIDTH)
149 1500 FORMAT (20HDEFAULT VALUES USED.)
154 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
155 CCCCCC EINSTELLUNGEN EINLESEN
158 INTEGER MAXI,WIDTH,CR,LF
159 COMMON /PARAM2/MAXI,WIDTH,CR,LF
160 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
161 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
163 REAL XIN1,XIN2,YIN1,YIN2
176 11 FORMAT(14H X FROM : )
178 13 FORMAT(14H Y FROM : )
180 15 FORMAT(14H MAXIT (I3): )
184 CCCCCC EVENTUELL STARTWERTE TAUSCHEN:
185 CCCCCC WENN XIN2 GROESSER IST OK, ANSONSTEN TAUSCHEN
186 150 I F(XIN2.GT.XIN1) GO TO 200
191 CCCCCC WENN YIN2 GROESSER IST OK, ANSONSTEN TAUSCHEN
192 200 IF(YIN2.GT.YIN1) GO TO 201
197 CCCCCC WERTE UEBERNEHMEN
203 CCCCCC SCHRITTWEITEN AUSRECHNEN
204 XSTEP = (HIGHX-LOWX)/FLOAT(WIDTH)
211 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
212 CCCCCC EINSTELLUNGEN AUSGEBEN
215 INTEGER MAXI,WIDTH,CR,LF
216 COMMON /PARAM2/MAXI,WIDTH,CR,LF
217 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
218 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
221 20 FORMAT (9HSETTINGS:)
222 WRITE (1,30) LOWX, HIGHX
223 30 FORMAT (12HX-WERTE VON ,1F8.5,5H BIS ,1F8.5)
224 WRITE (1,40) LOWY, HIGHY
225 40 FORMAT (12HY-WERTE VON ,F8.5,5H BIS ,F8.5)
226 WRITE (1,50) MAXI, MAXVAL, XSTEP, YSTEP, WIDTH
227 50 FORMAT ( 4HMAX:,I3,
236 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
240 INTEGER MAXI,WIDTH,CR,LF
241 COMMON /PARAM2/MAXI,WIDTH,CR,LF
244 245 FORMAT(25HPARAMETER RESET REQUESTED)
250 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
251 C PRELOAD VALUE OF INIT
257 CCCCCCCCCCCCCCCCCCCCCCCC