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
120 IF (PEN.EQ.0) CALL PL$PD
129 COMMON /PENSTA/PEN,PENX
130 IF (PEN.EQ.1) CALL PL$PU
139 COMMON /PENSTA/PEN,PENX
141 8000 IF (PENX.EQ.0) GO TO 8100
150 CCCCCC STARTWERTE AUSFUELLEN
153 INTEGER MAXI,WIDTH,CR,LF
154 COMMON /PARAM2/MAXI,WIDTH,CR,LF
155 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
156 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
171 CCCCCC SCHRITTWEITEN AUSRECHNEN
172 XSTEP = (HIGHX-LOWX)/FLOAT(WIDTH)
176 1500 FORMAT (20HDEFAULT VALUES USED.)
181 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
182 CCCCCC EINSTELLUNGEN EINLESEN
185 INTEGER MAXI,WIDTH,CR,LF
186 COMMON /PARAM2/MAXI,WIDTH,CR,LF
187 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
188 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
190 REAL XIN1,XIN2,YIN1,YIN2
203 11 FORMAT(14H X FROM : )
205 13 FORMAT(14H Y FROM : )
207 15 FORMAT(14H MAXIT (I3): )
211 CCCCCC EVENTUELL STARTWERTE TAUSCHEN:
212 CCCCCC WENN XIN2 GROESSER IST OK, ANSONSTEN TAUSCHEN
213 150 I F(XIN2.GT.XIN1) GO TO 200
218 CCCCCC WENN YIN2 GROESSER IST OK, ANSONSTEN TAUSCHEN
219 200 IF(YIN2.GT.YIN1) GO TO 201
224 CCCCCC WERTE UEBERNEHMEN
230 CCCCCC SCHRITTWEITEN AUSRECHNEN
231 XSTEP = (HIGHX-LOWX)/FLOAT(WIDTH)
238 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
239 CCCCCC EINSTELLUNGEN AUSGEBEN
242 INTEGER MAXI,WIDTH,CR,LF
243 COMMON /PARAM2/MAXI,WIDTH,CR,LF
244 REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
245 COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP
248 20 FORMAT (9HSETTINGS:)
249 WRITE (1,30) LOWX, HIGHX
250 30 FORMAT (12HX-WERTE VON ,1F8.5,5H BIS ,1F8.5)
251 WRITE (1,40) LOWY, HIGHY
252 40 FORMAT (12HY-WERTE VON ,F8.5,5H BIS ,F8.5)
253 WRITE (1,50) MAXI, MAXVAL, XSTEP, YSTEP, WIDTH
254 50 FORMAT ( 4HMAX:,I3,
263 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
267 INTEGER MAXI,WIDTH,CR,LF
268 COMMON /PARAM2/MAXI,WIDTH,CR,LF
271 245 FORMAT(25HPARAMETER RESET REQUESTED)
277 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
278 C PRELOAD VALUE OF INIT
284 CCCCCCCCCCCCCCCCCCCCCCCC