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
55 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
56 CCCCCC THE MANDELBROT SET CALCULATION
59 INTEGER MAXI,WIDTH,CR,LF
60 COMMON /PARAM2/MAXI,WIDTH,CR,LF
61 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
62 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
68 CCCCCC ENTER THE CALCULATION
69 299 CMPVAL=MAXVAL*MAXVAL
73 CCCCCC EINSTIEG IN DEN AKTUELLEN PUNKT
78 CCCCCC HIER DER ITERIERTE TEIL
84 IF ((ZR*ZR+ZI*ZI).GE.CMPVAL) GO TO 410
86 IF (COUNT.GE.MAXI) GO TO 410
90 410 IF (COUNT.EQ.MAXI) CALL BLACK
91 IF (COUNT.LT.MAXI) CALL WHITE
92 CCCCCC NEUEN PUNKT MACHEN
94 CCCCCC ZEILE NOCH NICHT VOLL?
95 IF (X.LE.HIGHX) GO TO 300
96 CCCCCC X AN ANFANG SETZTEN, CR+LF DRUCKEN
101 CCCCCC Y WEITERRUECKEN - NEGATIV WEIL WIR VON OBEN KOMMEN
103 IF (Y.GE.LOWY) GO TO 300
105 CCCCCC HIER IST DAS BILD FERTIG.
108 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
111 COMMON /PENSTA/PEN,PENX
122 COMMON /PENSTA/PEN,PENX
124 IF (PEN.EQ.0) CALL PL$PD
135 COMMON /PENSTA/PEN,PENX
136 IF (PEN.EQ.1) CALL PL$PU
146 COMMON /PENSTA/PEN,PENX
148 8000 IF (PENX.EQ.0) GO TO 8100
158 CCCCCC STARTWERTE AUSFUELLEN
161 INTEGER MAXI,WIDTH,CR,LF
162 COMMON /PARAM2/MAXI,WIDTH,CR,LF
163 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
164 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
179 CCCCCC SCHRITTWEITEN AUSRECHNEN
180 XSTEP = (HIGHX-LOWX)/FLOAT(WIDTH)
184 1500 FORMAT (20HDEFAULT VALUES USED.)
189 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
190 CCCCCC EINSTELLUNGEN EINLESEN
193 INTEGER MAXI,WIDTH,CR,LF
194 COMMON /PARAM2/MAXI,WIDTH,CR,LF
195 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
196 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
198 REAL XIN1,XIN2,YIN1,YIN2
211 11 FORMAT(14H X FROM : )
213 13 FORMAT(14H Y FROM : )
215 15 FORMAT(14H MAXIT (I3): )
219 CCCCCC EVENTUELL STARTWERTE TAUSCHEN:
220 CCCCCC WENN XIN2 GROESSER IST OK, ANSONSTEN TAUSCHEN
221 150 I F(XIN2.GT.XIN1) GO TO 200
226 CCCCCC WENN YIN2 GROESSER IST OK, ANSONSTEN TAUSCHEN
227 200 IF(YIN2.GT.YIN1) GO TO 201
232 CCCCCC WERTE UEBERNEHMEN
238 CCCCCC SCHRITTWEITEN AUSRECHNEN
239 XSTEP = (HIGHX-LOWX)/FLOAT(WIDTH)
246 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
247 CCCCCC EINSTELLUNGEN AUSGEBEN
250 INTEGER MAXI,WIDTH,CR,LF
251 COMMON /PARAM2/MAXI,WIDTH,CR,LF
252 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
253 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
256 20 FORMAT (9HSETTINGS:)
257 WRITE (1,30) LOWX, HIGHX
258 30 FORMAT (12HX-WERTE VON ,1F8.5,5H BIS ,1F8.5)
259 WRITE (1,40) LOWY, HIGHY
260 40 FORMAT (12HY-WERTE VON ,F8.5,5H BIS ,F8.5)
261 WRITE (1,50) MAXI, MAXVAL, XSTEP, YSTEP, WIDTH
262 50 FORMAT ( 4HMAX:,I3,
271 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
275 INTEGER MAXI,WIDTH,CR,LF
276 COMMON /PARAM2/MAXI,WIDTH,CR,LF
279 245 FORMAT(25HPARAMETER RESET REQUESTED)
285 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
286 C PRELOAD VALUE OF INIT
292 CCCCCCCCCCCCCCCCCCCCCCCC