Compilation Fortran by hcw25539

VIEWS: 582 PAGES: 3

									Compilation Fortran :

Option communes à tous les compilateurs (FC représente le compilateur utilisée)

­o : spécifie le nom de l'exécutable produit

Exemple : FC source.f ­o exécutable 


­c : produit un fichier 'objet', les liens entre les programmes et librairies ne sont pas établis ; le 
fichier objet s'appelle par défaut source.o

Exemple : FC ­c source.f


­On : spécifie le niveau d'optimisation de l'exécutable, n vaut le plus souvent 0, 1, 2 ou 3 : les 
instructions sont réordonnées par le compilateur afin d'optimiser la vitesse d'exécution ; 
l'optimisation doit être utilisée avec précautions, elle peut introduire des erreurs.

Exemple : FC ­O2 source.f ­o exécutable


­g : produit un exécutable fournissant des information de debuggage et utilisable par un debugger

Exemple : FC ­g source.f ­o exécutable_debug


­lnom : spécifie le nom de la librairie, correspondant généralement au fichier libnom.a, devant être 
liée statiquement à l'exécutable et où se trouvent des routines utilisées dans l'exécutable.

Exemple : FC source.f ­o exécutable ­llapack  
pour utiliser des routines ou fonctions de la librairie liblapack.a 


­Ichemin et ­Lchemin : spécifie un répertoire où le compilateur doit chercher un fichier inclus (­I) 
ou une librairie que l'on souhaite lier (­L)

Exemple : FC ­I/usr/local/include ­L/usr/local/lib source.f ­o exécutable ­llapack 
pour compiler un exécutable utilisant la librairie liblapack.a située dans /usr/local/lib et incluant 
un fichier situé dans /usr/local/include
Options spécifiques à chaque compilateur :

Compilateurs considérés : GCC (gfortran 4.2.3)  , Absoft (f90 10.1), Intel (ifort 10.0) et Portland 
Group (pgf90 6.0­5)

–   Interprétation des instructions OpenMP :
    gfortran ­fopenmp source.f
    ifort ­openmp source.f
    f90 : non inclus dans la version standard, nécessite VAST
    pgf90 ­mp source.f

–   Utilisation de variables réelles (type real) double précision par défaut :
    gfortran ­fdefault­real­8 source.f
    ifort ­r8 source.f
    f90 ­N113 source.f
    pgf90 ­Mr8 source.f

–   Utilisation de variables entières (type integer) double précision par défaut :
    gfortran ­fdefault­integer­8 source.f
    ifort ­i8 source.f
    f90 ­i8 source.f
    pgf90 ­i8 source.f

–   Interprétation du code par le preprocesseur : dans tous les cas, renommer le fichier .f en .F ou 
    .f90 en .F90 force l'utilisation du preprocesseur, et les directives sont données par ­Dnom
    gfortran ­x f77­cpp­input source.f   ou gfortran ­x f95­cpp­input source.f90
    ifort ­fpp source.f  ou ifort ­cpp source.f
    f90 : pas d'option de compilation
    pgf90 ­Mpreprocess source.f

–   Ajout d'un second underscore (_) à la fin des noms de fonctions/routines : le comportement de 
    ces options étant spécifique à chaque compilateur, référez vous à la documentation du 
    compilateur (man) pour une description détaillée
    gfortran ­assume 2underscores  source.f
    ifort ­fsecond­underscore source.f
    f90 ­B108 source.f
    pgf90 ­Msecond_underscore source.f

–   Pas d'ajout d'underscore à la fin des noms de fonctions/routines :
    gfortran ­assume nounderscore source.f
    ifort ­fno­underscoring source.f
    f90 : pas d'option
    pgf90 ­Mnounderscoring source.f

–   Activation de tous les « warnings » et autres messages d'information à la compilation :
    gfortran ­Wall source.f
    ifort ­warn all source.f
    f90 ­m0 source.f
    pgf90 ­Minform=inform source.f
–   Vérification des indices de tableaux (ces options n'ont pas exactement la même signification 
    selon le compilateur) :
    gfortran ­fbounds­check source.f
    ifort ­check bounds source.f
    f90 ­Rb source.f
    pgf90 ­Mbounds source.f

–   Pour le compilateur Absoft : compatibilité Unix (utilisation de fonctions telles que getarg ou 
    iargc) assurée par une librairie
    f90 ­lU77 source.f

–   Parallélisation automatique des boucles (multithreading) :
    ifort ­O2 ­parallel source.f
    pgf90 ­Mconcur source.f
    Il existe une option permettant de paralléliser automatiquement des boucles dans la version 4.3 
    de gfortran.

								
To top