modifié le

Application à Fortran

Historiquement, Fortran est le premier langage pour le calcul scientifique.

1. Fortran par l’exemple

Les exemples ci-dessous permettent à un programmeur Python de faire une idée du langage Fortran.

1.1. Les entrées/sorties

python
#!/bin/env python3
import math

x = float(input("entrer un nombre : "))
if x>=0:
    print(math.sqrt(x))
fortran
program racine
real :: i

write (*,fmt="(a)",advance="no") 'entrer un nombre : '
read *,i
if (i>=0) then
  print *,sqrt(i)
endif
end program racine

1.2. La boucle for / do

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

1.3. La boucle while

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

1.4. Définition d’une fonction

python
#!/bin/env python3

def f(k):
    return k**2 + k**3

for i in range(1,11):
    print(f"sum of the square and cube of {i} is {f(i)}")
fortran
function f(k) result(j)
    integer, intent (in) :: k
    integer :: j

    j = k**2 + k**3
end function

program fonction
integer :: i
integer :: f

do i = 1, 10
    print*, "sum of the square and cube of", i, "is", f(i)
enddo
end program fonction

1.5. récursivité

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

2. Performances

Question fo1.1

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Question fo1.2

Calculer, à l’aide du programme ci-dessus, quelques coefficients du binôme : C(20,10), C(25,5), C(30,10), C(35,30), C(35,15), C(40,20). Mesurer le temps nécessaire à leur calcul.

Question fo1.3

Ecrire un programme Fortran équivalent. Comparer les temps d’exécution.