Found at http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/2fc107eda65d9065
The following code WRITE (*,'(1PD24.15E4)') 1.0d0 end is rejected in gfortran 4.2 to 4.4 with: Error: Period required in format specifier at (1) (and ifort, NAG f95 and g95 also reject it). It is accepted with openf95, sunf95 and gfortran 4.1 [the latter with a warning matching the error message above], and it is said to be accepted with g77. The compiled programs then prints: 1.000000000000000D+0000 (note the "D") Using the run-time version of the format string, i.e. character(len=25) :: str str = '(1PD24.15E4)' WRITE (*,str) 1.0d0 end it works with gfortran (4.1 to 4.4) and with g95. The PD edit descriptor was always invalid according to the Fortran standard, using '(1PE24.15E4)' works with all compilers and is valid (but it prints "...E+0000" not "D"). The question is now whether a) One accepts it with, e.g., -std=legacy. (The error message should then point to the -std=legacy option) -- or -- b) One checks whether on can get rid of the "D" support in libgfortran to save some microseconds; libgfortran should then also print a run-time error message. -- Summary: I/O PD edit descriptor inconsistency Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: burnus at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38439