Gfortran fait des fractales

Autant j'ai été il y a longtempse très fluent en FORTRAN77, autant je n'ai jamais vraiment pris le temps de regarder les version modernes. Il suffit parfois d'un bon tutoriel accompagné d'un bon bouquin pour se lancer et y prendre gout.

program hello
    implicit none
    print *, "hello world"
end

Point suivant ? Ré-apprendre à coder, savoir faire un module, écrire un .pnm valide, dessiner un hello world.

Le tout début

Aussitôt dit, aussi tôt fait. Je passe pudiquement sur le module qui va écrire le fichier image résultant. Mais je vais vous montrer le cœur de l'action, le calcul qui est fait pour chaque pixel de l'image. la partie escape time fractal.

       !----------------------------------------------
       !     working on the current pixel
       za     = complex ( 0.2, 0.1 )
       cste   = complex ( fx, fy )
       iter   = 0
       escape = .FALSE.
       do while (iter .lt. maxiter)
           zb = (za * za) + cste
           if (modulus2(zb) .gt. 4.0) then
               escape = .TRUE.
               exit
           endif
           za = zb
           iter = iter + 1
       end do
       if (escape) then
           pic(ix, iy) = iter          ! inside
       else
           pic(ix, iy) = maxiter / 20  ! outside
       endif
       !----------------------------------------------

Et une fois enrobé par les boucles qui vont bien, on a notre image.

Mandelbrot en Gfortran

Et la suite ?

Étape suivante ? Il y en a plusieurs au menu : faire une vidéo, nettoyer puis publier le code, rajouter de la couleur et du relief, découvrir d'autres variantes, comme les attracteurs étranges, que de belles choses à découvrir...