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 et astronomie, 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 :