1 C APFELMAENNCHEN-PROGRAMM, 06.FEBRUARY.2007 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
26 CCCCCC RESET DO DEFAULT VALUES?
30 CCCCCC ON THE FIRST START OR IF DESIRED
31 IF(INIT.EQ.0) CALL STVAL
33 CCCCCC DO WE HAVE TO ASK FOR PARAMETERS?
35 IF (I.EQ.1) CALL GETCFG
37 CCCCCC OUTPUT SETTINGS?
39 IF(I.EQ.2) CALL OUTCFG
54 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
55 CCCCCC THE MANDELBROT SET CALCULATION
58 INTEGER MAXI,WIDTH,CR,LF
59 COMMON /PARAM2/MAXI,WIDTH,CR,LF
60 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
61 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
67 CCCCCC ENTER THE CALCULATION
68 299 CMPVAL=MAXVAL*MAXVAL
72 CCCCCC EINSTIEG IN DEN AKTUELLEN PUNKT
77 CCCCCC HIER DER ITERIERTE TEIL
83 IF ((ZR*ZR+ZI*ZI).GE.CMPVAL) GO TO 410
85 IF (COUNT.GE.MAXI) GO TO 410
89 410 IF (COUNT.EQ.MAXI) CALL BLACK
90 IF (COUNT.LT.MAXI) CALL WHITE
91 CCCCCC NEUEN PUNKT MACHEN
93 CCCCCC ZEILE NOCH NICHT VOLL?
94 IF (X.LE.HIGHX) GO TO 300
95 CCCCCC X AN ANFANG SETZTEN, CR+LF DRUCKEN
100 CCCCCC Y WEITERRUECKEN - NEGATIV WEIL WIR VON OBEN KOMMEN
102 IF (Y.GE.LOWY) GO TO 300
104 CCCCCC HIER IST DAS BILD FERTIG.
107 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
110 COMMON /PENSTA/PEN,PENX
119 COMMON /PENSTA/PEN,PENX
121 IF (PEN.EQ.0) CALL PL$PD
132 COMMON /PENSTA/PEN,PENX
133 IF (PEN.EQ.1) CALL PL$PU
143 COMMON /PENSTA/PEN,PENX
145 8000 IF (PENX.EQ.0) GO TO 8100
155 CCCCCC STARTWERTE AUSFUELLEN
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
176 CCCCCC SCHRITTWEITEN AUSRECHNEN
177 XSTEP = (HIGHX-LOWX)/FLOAT(WIDTH)
181 1500 FORMAT (20HDEFAULT VALUES USED.)
186 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
187 CCCCCC EINSTELLUNGEN EINLESEN
190 INTEGER MAXI,WIDTH,CR,LF
191 COMMON /PARAM2/MAXI,WIDTH,CR,LF
192 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
193 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
195 REAL XIN1,XIN2,YIN1,YIN2
208 11 FORMAT(14H X FROM : )
210 13 FORMAT(14H Y FROM : )
212 15 FORMAT(14H MAXIT (I3): )
216 CCCCCC EVENTUELL STARTWERTE TAUSCHEN:
217 CCCCCC WENN XIN2 GROESSER IST OK, ANSONSTEN TAUSCHEN
218 150 I F(XIN2.GT.XIN1) GO TO 200
223 CCCCCC WENN YIN2 GROESSER IST OK, ANSONSTEN TAUSCHEN
224 200 IF(YIN2.GT.YIN1) GO TO 201
229 CCCCCC WERTE UEBERNEHMEN
235 CCCCCC SCHRITTWEITEN AUSRECHNEN
236 XSTEP = (HIGHX-LOWX)/FLOAT(WIDTH)
243 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
244 CCCCCC EINSTELLUNGEN AUSGEBEN
247 INTEGER MAXI,WIDTH,CR,LF
248 COMMON /PARAM2/MAXI,WIDTH,CR,LF
249 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
250 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
253 20 FORMAT (9HSETTINGS:)
254 WRITE (1,30) LOWX, HIGHX
255 30 FORMAT (12HX-WERTE VON ,1F8.5,5H BIS ,1F8.5)
256 WRITE (1,40) LOWY, HIGHY
257 40 FORMAT (12HY-WERTE VON ,F8.5,5H BIS ,F8.5)
258 WRITE (1,50) MAXI, MAXVAL, XSTEP, YSTEP, WIDTH
259 50 FORMAT ( 4HMAX:,I3,
268 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
272 INTEGER MAXI,WIDTH,CR,LF
273 COMMON /PARAM2/MAXI,WIDTH,CR,LF
276 245 FORMAT(25HPARAMETER RESET REQUESTED)
282 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
283 C PRELOAD VALUE OF INIT
289 CCCCCCCCCCCCCCCCCCCCCCCC