Julia set: Difference between revisions

Line 1,278:
<b>Fortran 77</b> version using ASCII art for the display.
 
Use the <code>PARAMETER</code> statement, on line 4, to modify the display. '''SRC''' and '''SI''' areis the seed components '''''C = Sr + i*Si'''''.<br>
The procedure calls, on lines 12 and 13, control the display window on the complex plane.
 
<lang fortran>C PROGRAM JULIA==================================================================
INTEGERPROGRAM NMAP,NROW,NCOLJULIA
C ------------------------------------------------------------------
DOUBLE PRECISION SR, SI
PARAMETER(INTEGER NMAP=11,NROW=40,NCOL=100,SR=-0.798D0,SI=0.1618D0)
COMPLEX*16 C
PARAMETER(NMAP=11,NROW=40,NCOL=100,C=(-0.798D0,0.1618D0))
CHARACTER*1 MAP(NMAP)
DATA MAP /' ','.',':','-','=','+','*','#','%','$','@'/
DOUBLEREAL*8 PRECISION X(NCOL), Y(NROW), ZR, ZI, TT
INTEGER IR, IC, I, J, MX
CHARACTER*1 CLR, LINE(NCOL)
COMPLEX*16 Z
 
MX = (NMAP-1)*5
Line 1,299 ⟶ 1,302:
DO 110 IR=1,NROW
DO 100 IC=1,NCOL
ZRZ = DCMPLX( X(IC), Y(IR) )
ZI = Y(IR)
I = 1
CLR = ' '
10 CONTINUE
TTZ = ZRZ*ZR - ZI*ZIZ + SRC
ZIIF =( ZR*ZI*2.0D0 .LT. CDABS(Z) +) SITHEN
ZR = TT
IF ( 4.0D0 .LT. (ZR*ZR + ZI*ZI) ) THEN
CLR = MAP(MOD(I,NMAP-1)+1)
GOTO 20
Line 1,322:
END
 
C ==================================================================
SUBROUTINE LINSPACE( N, A, S, F )
C ------------------------------------------------------------------
INTEGER N
DOUBLEREAL*8 PRECISION N A(N), S, F
INTEGER I
DOUBLEREAL*8 PRECISION D
D = (F-S)/DBLE(N-1)
A(1) = S
Anonymous user