c performs c Mandelbrot set test c c reference: W.F. Eddy, "The DECstation 3100 - UNIX for Power Users" c Chance, V.3,N.2 (1990), pp.42-47 c c auxiliary routine: TIMER - returns elapsed cpu time in tics of .01 secs INTEGER I, J INTEGER ITICS0, ITICS1 REAL CPTIM INTEGER BIT(512,512), COUNT REAL AA, BB, D COMPLEX Z, CC, NEWZ DATA NEWZ /(0.0,0.0)/, BB /2.5/, D /1.5/ c mandelbrot set test CALL TIMER(ITICS0) AA = 3.0 / FLOAT(512) DO 30 I = 1, 512 DO 20 J = 1, 512 CC = CMPLX(AA*FLOAT(I)-BB,AA*FLOAT(J)-D) Z = NEWZ COUNT = 256 10 Z = Z * Z + CC COUNT = COUNT - 1 IF (COUNT.GT.0.AND.CABS(Z).LT.4) GOTO 10 BIT(J,I) = COUNT + 1 20 CONTINUE 30 CONTINUE AV = 0.0 DO 50 I = 1, 512 DO 40 J = 1, 512 AV = AV + ALOG(FLOAT(1+IABS(BIT(I,J)))) 40 CONTINUE 50 CONTINUE CALL TIMER(ITICS1) CPTIM = FLOAT(ITICS1-ITICS0) / 100.0 c output results to file out.dat OPEN (UNIT=6,FILE='out.dat') WRITE (6,10000) AV WRITE (6,10005) CPTIM CLOSE (6) STOP 10000 FORMAT (' Mandelbrot set timing'/' log av checksum = ',1PE12.5) 10005 FORMAT (//' Time (seconds) for Mandelbrot set: ',F12.3) END