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