Pages : 1
#1 Le 13/02/2008, à 13:35
- Moi-2008
format d'écriture réel en fortran
Bonjour à Tous!
Voila j'ai un petit soucis avec un code en fortran (pseudo 77 ...)
J'ai dans le code une instruction WRITE(*,'(f8)') variable
Mon soucis c'est que le format f8 n'existe pas dans le norme il manque la valeur décimale (fn.d),
la plus pars des compilateurs dont gfortran l'acceptent
mais j'aimerai remplacer ce format par un format normalisé.
Mon probleme c'est que je sais pas comment le compilateur interprete ce format ?
J'enviseage d'y mettre un f8.0 mais j'ai un doute que je n'arrive à lever,
voila si quelq'un peut m'aider ce serai cool
Merci
#2 Le 13/02/2008, à 14:13
- JBF
Re : format d'écriture réel en fortran
Salut,
Le format décimal fixe en Fortran c'est donc Fn.p ou p est le nombre de décimales. Il faut donc que n > p+2 car il faut compter le signe et le séparateur décimal.
En écriture ce n'est pas une bonne idée de mettre F8.0 : pas de décimale ! Autant mettre un format d'entier (I8) mais il faut faire la conversion d'abord : write(*,'(i8)') int(x)
En lecture pas de problème en revanche si le champ lu contient bien un point car c'est le nombre effectif de décimales qui est lu. J'utilise le plus souvent le format f10.0 en lecture de flottants.
Pour revenir sur le choix du nombre de décimales à afficher, ça dépend de ce que tu veux voir et de l'ordre de grandeur des valeurs à afficher. par exemple un temps à la micro-seconde ça ne rentre pas si ce temps est supérieur ou égal à 10 secondes ou inférieur à -1. Dans ce cas le code affichera ########.
Si tu veux te ménager une large gamme de valeur regarde plutà´t du coté des formats E et G. G est un format mixte qui bascule automatiquement entre E et F selon la taille des nombres.
JBF
LibreOffice : https://fr.libreoffice.org/ (téléchargement, documentation, FAQ, assistance, contribuer, ...)
Aide pour LibreOffice par la communauté francophone : Ask LibreOffice
Hors ligne