Programmation Fortran III
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.
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
integer function exponential(n) result(z)
integer :: n
z = 1
do i = 1,n
z = z * i
end do
end function
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