Le Fortran ::..

Le fortran, dont le nom provient de (FORmula TRANslator), est le premier langage de programmation de haut niveau écrit par John Backus dans la fin des années 1950.
Présenté en 1954, la version Fortran I est sortie en 1957. Ce langage est toujours utilisé dans les milieux scientifiques, des mathématiques, astronomie, de la recherche etc, car on y trouve des milliers de librairies écrites par les chercheurs et étudiants.

Les versions fortran II, III, IV et V puis fortran 66, fortran 77, fortran 90, fortran 95, fortran 2003 et fortran 2008 ont accompagné les étudiants, les scientifiques at autres chercheurs sur plusieurs générations !

Le FORTRAN est un langage compilé, ce qui signifie que les programmes écrits en FORTRAN doivent être traduits en langage machine avant d'être exécutés. Depuis sa création, FORTRAN a connu plusieurs évolutions avec de nouvelles fonctionnalités et améliorations.

Le FORTRAN est particulièrement adapté aux simulations numériques et aux modèles mathématiques utilisés en astronomie, tels que les simulations de formation des galaxies, les modèles de dynamique stellaire, la modélisation des atmosphères planétaires et la génération de données d'observation.

En résumé, le FORTRAN est un langage de programmation important en mathématique, sciences etastronomie, car il est bien adapté pour la résolution de problèmes numériques complexes dans ces domaines scientifique.

Index :.

Edition & compilation
Syntaxe
Trucs
Fichiers
Liens


Edition & compilation :.

Edition

  • Plusieurs versions du fortran circulent encore, mais les fichiers sources sont en principe révélateurs de ces versions avec leur extensions, par exemple: sinus .f ou .for ou sinus.f90 ou sinus.f95

    Vous pouvez utiliser votre éditeur préféré tel que vi, nano, joe, emacs ou 'Visual Studio Code'... En effet on travail souvent en mode console pour ces applications de calcul.

    
    $ joe sinus.f95 
    
    
    Voici un exemple d'appel depuis la console pour l'édition du fichier source sinus.f95
      
    sinus2.f95          Row 13   Col 1   10:27  Ctrl-K H for help
    
    program sinus
    
      implicit none
    
      double precision  val = 45.0
      double precision, parameter :: pi = 3.14159265359d0
    
      print *, 'Sinus de ',val,' = ', sin(val*(pi/180.0))
    
    end program sinus
    
        
    Avec l'éditeur de texte sous console "joe"

    Compilation

  • Pour vos merveilles, pas de problème sous Linux avec "gfortran"

    
    $ gfortran -o sinus sinus.f95 
    
    

    Exécution

    Vous pouvez exécuter après la compilation votre programme dans le répertoire de travail .

    Ne pas oublier de changer le mode du fichier avec la commande

    
    $ chmod +x sinus
    
    

    Pour ce faire il suffit de lancer la commande en spécifiant d'où doit être exécuté le programme de la manière suivante :

    
    $ ./sinus
    
    

    Si vous souhaitez produire des fichiers objets .o avec les fichiers .f95 par exemple, il suffit de tapper la commande

    
    $ gfortran -c fraction.f95
    
    

    le résultat de cet opération donnera un fichier "fraction.o" dans le répertoire.


    Syntaxe :.

  • Un programme est un module souvent composé de plusieurs modules internes ou externes.

    
    !-prog principal----------------------
    program calcul
      ...
      call affiche
      ...
      
    contains
    
    !-subroutines--------------------------
      subroutine affiche
        ...
        ...
        return
      end subroutine affiche
    
    !-fonctions-----------------------------
      function sinus(val)
        ...
        ...
      end function sinus
    
    end program calcul
    !--------------------------------------
    
    



    Trucs :.

  • La déclaration des variables est facultative en Fortran.
    Sans déclaration, les variables sont par défaut de type REAL sauf pour les variables dont le nom commence par une les lettres I, J, K, L, M ou N. Elles sont alors de type INTEGER par défaut.

    
    jp@URANUS:~/progra/fortran$ cat var.f95
    !
    ! Travail avec des variables non définies
    !
    ! Jean-Pierre Perroud, mai 2010
    !
    
    ! debut du programme
    program var
    
    ! boucle d'écriture avec i non définit
            do i = 1,5
                    print 10,'Valeur de i = ', i
            end do
    
    ! assignation de valeur aux variables non définies
            juste = 44
            somme = 12.0
    
            print 10,'Var juste = ',juste
            print 20,'Var Somme = ',somme
    
    ! formats de mise en page
    10 format (a,i4)
    20 format (a,f4.1)
    
    end program var
    ! fin du programme
    
    jp@URANUS:~/progra/fortran$ 
    
    

    Ce qui donne en faisant tourner le programme ...

    
    jp@URANUS:~/progra/fortran$ ./var
    Valeur de i =    1
    Valeur de i =    2
    Valeur de i =    3
    Valeur de i =    4
    Valeur de i =    5
    Var juste =   44
    Var Somme = 12.0
    jp@URANUS:~/progra/fortran$
    
    

    On voit bien que la variable "i" qui n'étant pas définie dans le programme, est bien de type "integer" .
    On note aussi que "juste" qui commence par un "j" est bien aussi de type "integer",
    alors que "Somme" qui n'est pas définie et ne comporte pas une première lettre dans la liste i,j,k,l,m et n est bien un variable de type "real", cqfd !

    En résumé, même si la déclaration des variables n'est pas obligatoire, je trouve plus intéressant de définir toutes celles que nous utiliserons.
    Sur des programmes plus gros, cela simplifie tout de même le debuguage de ceux-ci et nous oblige à plus de rigueur.

    Il est a noter que l'on peut modifier la liste des variables implicites en modifiant ou ajutant des définitions.

    
        implicit real*8 (S)
    
      

    Ce qui va donner que toutes les variables utilisées commençant pas "S" seront de type real double précision.

    Travail sur les fichiers :.



    Regardons maintenant comment créer un fichier puis comment lirce fichier
    Un bout de code pour créer un fichier

    program creation_fichier
    
    implicit none
    integer :: file_unit
    character(len=30) :: nom_fichier = "mon_fichier.txt"
    character(len=100) :: texte = "Contenu du fichier"
    
    ! Ouvrir le fichier
    open(newunit=file_unit, file=nom_fichier, status="new")
    
    ! Écrire dans le fichier
    write(file_unit,*) texte
    
    ! Fermer le fichier
    close(file_unit)
    
    end program creation_fichier
      

    Ce programme crée un nouveau fichier nommé "mon_fichier.txt" dans le répertoire de travail avec le contenu "Contenu du fichier". La commande "newunit" dans la commande OPEN indique que Fortran doit choisir un numéro de fichier disponible pour vous. Vous pouvez également spécifier un numéro de fichier avec le paramètre "unit" si vous préférez utiliser un numéro spécifique.
    Notez que les noms de fichier et les chemins d'accès peuvent varier selon votre système d'exploitation. Assurez-vous de spécifier le nom et le chemin de votre fichier correctement pour qu'il soit créé dans le bon répertoire.

    Voici un exemple de programme pour ouvrir un fichier.


        program ouverture_de_fichier
        implicit none
    
        ! Déclaration des variables
        character(len=100) :: nom_fichier
        integer :: statut, unit
    
        ! Demande le nom du fichier à ouvrir
        write(*,*) 'Entrez le nom du fichier à ouvrir :'
        read(*,*) nom_fichier
    
        ! Ouvre le fichier en mode lecture seule
        open(unit=unit, file=nom_fichier, status='old', action='read', iostat=statut)
    
        ! Vérifie si l'ouverture du fichier s'est bien passée
        if (statut /= 0) then
          write(*,*) 'Erreur lors de l''ouverture du fichier.'
          stop
        else
          write(*,*) 'Le fichier a été ouvert avec succès.'
        end if
    
        ! Ferme le fichier
        close(unit=unit)
    
      end program ouverture_de_fichier
      

    Dans ce code, nous demandons à l'utilisateur de saisir le nom du fichier à ouvrir, par exemple "mon_fichier.txt" ou un autre. Puis nous ouvrons le fichier en utilisant la commande open Nous vérifions également si l'ouverture du fichier s'est bien passée en vérifiant le code de statut renvoyé par open. Enfin, nous fermons le fichier en utilisant la commande close.


    Liens :.


       

    Jean-Pierre Perroud
    Switzerland
    Dernière mise à jour :