Bonjour, voici un code tout simple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
program test
  implicit none
 
  double precision :: a = 10.d0, b = 45.3543d12, c = 74.d0
 
  write(*,"(F8.3,1pD16.4,F8.3)") a, b, c
  write(*,"(F8.3,D16.4,F8.3)") a, b, c
 
end program test
Dans le premier write je met dans le format le 1p pour avoir un chiffre avant la virgule. Jusque là rien d'anormal. Regardez la sortie fait un peu peur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
> a.out
  10.000      4.5354D+13 740.000
  10.000      0.4535D+14  74.000
J'ai la même chose avec ifort et gfortran. C'est un truc écrit dans la norme ou c'est un bug de compilateur ?