38,760
edits
No edit summary |
(Updating to match new version of source page) |
||
Line 3: | Line 3: | ||
Fortran est un langage compilé disponible sur les ordinateurs de Calcul Canada où sont installés les compilateurs <tt>gfortran</tt> et <tt>ifort</tt>. En général, les langages compilés offrent une meilleure performance; nous vous encourageons donc à écrire vos programmes en Fortran, C ou C++. | Fortran est un langage compilé disponible sur les ordinateurs de Calcul Canada où sont installés les compilateurs <tt>gfortran</tt> et <tt>ifort</tt>. En général, les langages compilés offrent une meilleure performance; nous vous encourageons donc à écrire vos programmes en Fortran, C ou C++. | ||
<div class="mw-translate-fuzzy"> | |||
== Options utiles de compilation == | == Options utiles de compilation == | ||
</div> | |||
La plupart des compilateurs Fortran modernes offrent des options utiles pour le débogage. | La plupart des compilateurs Fortran modernes offrent des options utiles pour le débogage. | ||
Line 10: | Line 12: | ||
* pendant les tests, utilisez <tt>-O0</tt> pour désactiver les optimisations et <tt>-g</tt> pour ajouter les symboles de débogage. | * pendant les tests, utilisez <tt>-O0</tt> pour désactiver les optimisations et <tt>-g</tt> pour ajouter les symboles de débogage. | ||
<div class="mw-translate-fuzzy"> | |||
==Algèbre linéaire numérique== | ==Algèbre linéaire numérique== | ||
</div> | |||
À partir de Fortran 90, de nouvelles fonctions sont disponibles pour le traitement des opérations de base : <tt>matmul</tt> et <tt>dot_product</tt> pour les multiplications avec matrices et vecteurs; <tt>transpose</tt> pour la transposition de matrices. Utilisez toujours ces fonctions ou les librairies BLAS/LAPACK fournies et n'essayez jamais de créer vos propres méthodes, à moins que ce ne soit pour des motifs d'apprentissage. La routine BLAS pour la multiplication de matrices peut s'avérer 100 fois plus rapide que l'algorithme primaire avec trois boucles imbriquées. | À partir de Fortran 90, de nouvelles fonctions sont disponibles pour le traitement des opérations de base : <tt>matmul</tt> et <tt>dot_product</tt> pour les multiplications avec matrices et vecteurs; <tt>transpose</tt> pour la transposition de matrices. Utilisez toujours ces fonctions ou les librairies BLAS/LAPACK fournies et n'essayez jamais de créer vos propres méthodes, à moins que ce ne soit pour des motifs d'apprentissage. La routine BLAS pour la multiplication de matrices peut s'avérer 100 fois plus rapide que l'algorithme primaire avec trois boucles imbriquées. | ||
<div class="mw-translate-fuzzy"> | |||
==Erreurs de segmentation== | ==Erreurs de segmentation== | ||
</div> | |||
Une erreur fréquemment observée avec un exécutable Fortran provient de problèmes d'interface. Ces problèmes surviennent lorsque l'on transmet comme argument d'une sous-routine un pointeur, un tableau alloué dynamiquement ou encore un pointeur de fonctions. À la compilation il n'y a pas de problème, cependant à l'exécution vous obtiendrez par exemple le message suivant : | Une erreur fréquemment observée avec un exécutable Fortran provient de problèmes d'interface. Ces problèmes surviennent lorsque l'on transmet comme argument d'une sous-routine un pointeur, un tableau alloué dynamiquement ou encore un pointeur de fonctions. À la compilation il n'y a pas de problème, cependant à l'exécution vous obtiendrez par exemple le message suivant : |