home

Programmation Fortran III Procédures

Programmation Fortran III

Fonctions et sous-routines

Dés que vos programmes deviennent plus complexes, il est utile d'avoir recours aux procédures afin d'extraire des morceaux de code redondants. En fortran, il y a deux manières d'obtenir ce résultat: fonctions et sous-routines.

Fonctions

Les fonctions fortran sont calquées sur le modèle d'une fonction mathématique établissant une correspondance entre un ensemble d'arguments et un résultat.

$$ \begin{align} f\colon \mathcal{I} &\to \mathcal{O}\\ \text{arguments} &\mapsto \text{résultat}. \end{align} $$

En fortran, cette fonction s'écrit, pour une fonction de deux arguments a et b réels à valeur réelle:

real function my_prod(a, b)
    real :: a, b

    my_prod = a + b

end function

On remarque que cette fonction calcule la somme de a et b et l'assigne à la variable my_prod qui n'est autre que la variable de retour de la fonction.

Le nom de cette variable de retour peut être modifié (par défaut c'est le nom de la fonction) de la manière suivante:

real function my_prod(a, b) result(c)
    real :: a, b

    c = a + b

end function

Exemple: Calcul d'une factorielle en fonction

integer function exponential(n) result(z)
    integer :: n
    z = 1
    do i = 1,n
        z = z * i
    end do
end function

Sous-routines

La syntaxe d'une sous-routine est légèrement différente, elle représente une section de code et non une fonction mathématique.

subroutine print_hi(name)
    print '(A,x,A,x,A)', "Hello", name, ", how are you?"
end subroutine

Typiquement, les arguments d'une sous-routine peuvent être modifiés. Elles sont destinées à deux opérations complexes employant et modifiant plusieurs variables.

home