Voici les options principales du compilateur fortran ifort.
Les variables déclarées à l'aide des types par défaut INTEGER,
REAL ou COMPLEX font l'objet d'une réservation en
mémoire basée sur des mots de 4 octets. Le paramètre optionnel
KIND=n indiqué à la suite du type permet d'influer sur cette
taille ; c'est la façon la plus explicite et la plus sûre de le faire.
Il existe en outre des options de compilation permettant de modifier de façon globale la longueur des variables :
-integer-size 16/32/64 force la réservation en mémoire sur
des mots de 2/4/8 octets (4 par défaut) des entiers et logiques déclarés
avec le type INTEGER ou LOGICAL (sans
spécification du paramètre KIND=n) ;-real-size 32/64/128 : les entités déclarées avec le type
REAL ou COMPLEX (sans
spécification du paramètre KIND) sont promues
respectivement sur 4, 8 et 16 octets.C'est l'option -O (la lettre majuscule O) qui permet de
gérer l'optimisation d'un code. A sa suite, il est possible d'indiquer un
niveau d'optimisation (entre 0 et 3). L'option -O0 permet
d'inhiber l'optimisation faite par le compilateur. L'écriture
-O est équivalente à -O2.
Dans une phase de débogage, les options suivantes peuvent être d'une aide précieuse :
-g génère les informations de débogages et désactive les
optimisations (-O0) sauf si -O2 (ou autres
options O) est spécifiée.-traceback génère les informations pour renseigner les
informations du traceback qui s'affiche lorsqu'un exécutable
s'interrompt à cause d'une erreur importante. Cette option n'ayant aucun
impact sur les performances, il est conseillé de toujours l'activer.-warn all affiche les avertissements du compilateur
lorsqu'il rencontre des lignes suspectes dans le code-check all provoque l'arrêt du programme dès qu'une
opération suspecte est faite comme l'utilisation d'une variable non
initialisée, le dépassement des bords d'un tableau, ...-fpe0 provoque l'arrêt du programme dès qu'une exception
flottante apparaît.-mp1 améliore la précision des calculs au détriment de la
vitesse d'exécution.-p permet de faire du profilage de code avec gprof.-mcmodel=medium -shared-intel indispensable si vous obtenez des messages à l'édition de liens du type :
relocation truncated to fit: R_X86_64_PC32 against symbol ...Ces messages peuvent apparaître lorsque l'on utilise des gros tableaux statiques.
Exemple pour lire un fichier binaire Fortran écrit en big-endian sur l'unité 12 :
ulam : ifort -o prog_big_endian prog_big_endian.f90 ulam : export F_UFMTENDIAN="big:12" ulam : ./prog_big_endianDans le cas d'un fichier à accès direct, attention, sur Ulam, par défaut la taille de l'enregistrement spécifié avec RECL est en mot. Pour la spécifier en octet, il faut compiler avec l'option "-assume byterecl".
ulam : ifort -assume byterecl -o prog_big_endian prog_big_endian.f90 ulam : export F_UFMTENDIAN="big:12" ulam : ./prog_big_endianPour plus d'informations, ici