Utilisation de bibliothèques de procédures en Fortran

Transcription

Utilisation de bibliothèques de procédures en Fortran
Utilisation de bibliothèques de
procédures en Fortran
École normale supérieure
L3 géosciences
2015/2016
Lionel GUEZ
[email protected]
Laboratoire de météorologie dynamique
Table des matières
●
Définition d'une bibliothèque
●
Intérêt
●
Utilisation d'une bibliothèque
2/11
Définition d'une bibliothèque
●
Un ensemble de procédures en Fortran
●
Pas de programme principal
–
●
La bibliothèque ne s'exécute pas toute seule. Elle
s'utilise dans un programme extérieur à la
bibliothèque.
La bibliothèque s'utilise sous une forme déjà
compilée.
3/11
Intérêt (1/2)
●
●
●
●
Une bibliothèque contient des procédures qui
ont vocation à être utilisées dans différents
programmes.
Les procédures réutilisables sont ainsi
regroupées.
Pas de duplication des fichiers sources.
Pas de recompilation pour chaque programme
utilisateur.
4/11
Intérêt (2/2)
●
Simplification de l'utilisation :
–
toutes les procédures de la bibliothèques
apparaissent comme contenues dans un seul
module
–
une procédure de la bibliothèque peut appeler
d'autres procédures de la bibliothèque de façon
transparente
5/11
Utilisation d'une bibliothèque :
au niveau du programme en Fortran
●
●
Il faut connaître :
–
le nom du module qui contient la bibliothèque : en
général le nom de la bibliothèque
–
les noms et les arguments des procédures que
l'on veut utiliser dans la bibliothèque
Dans le programme utilisateur :
use le module qui contient la bibliothèque,
only: noms de procédures qui nous
intéressent
6/11
Exemple
use nr_util, only: zroots_unity, &
assert
pour utiliser les procédures zroots_unity et
assert qui se trouvent dans la bibliothèque
NR_util.
7/11
Forme compilée d'une bibliothèque
La bibliothèque compilée se présente sous la
forme de :
–
un fichier “archive”, dont le nom commence par
“lib” et dont le suffixe est .a
Exemple : libnr_util.a
–
un ou plusieurs fichiers .mod
Exemple : nr_util.mod
8/11
Recette pour la compilation d'un
programme utilisant une
bibliothèque (1/2)
●
●
Trouver le répertoire contenant le fichier
plouf.mod, où plouf est le nom du module à
utiliser (en général le nom de la bibliothèque)
Ajouter dans le GNUmakefile la ligne :
FFLAGS += -Irépertoire
où “ répertoire ” est le répertoire trouvé à
l'étape précédente
9/11
Recette pour la compilation d'un
programme utilisant une
bibliothèque (2/2)
●
●
Trouver le répertoire contenant le fichier
libplouf.a, où plouf est le nom de la
bibliothèque
Ajouter dans le GNUmakefile la ligne :
LDLIBS = -Lrépertoire -lplouf
où “ répertoire ” est le répertoire trouvé à
l'étape précédente
10/11
Exemple
FFLAGS += -I/users/staffs/lguez/Bureau/lib/NR_util
LDLIBS = -L/users/staffslguez/Bureau/lib/NR_util \
-lnr_util
11/11