I've cut this problem down into a test program to keep this straight to the point:

A test fortran program:

program simple
implicit none
real*8 test
test = 0.0277777777777776
write(*,*) 'test = ',test
end program simple

A test run compiling and testing between gfortran versions:

C:\MinGW-GCC462>PATH=.\bin;.\lib
C:\MinGW-GCC462>gfortran.exe --version
GNU Fortran (GCC) 4.6.2
...
C:\MinGW-GCC462>gfortran -m32 -o test.exe test.f
C:\MinGW-GCC462>test.exe
 test =   2.77777779847383499E-002 <-- 17 Significant digits.

C:\MinGW-GCC462>cd C:\MinGW-GCC472
C:\MinGW-GCC472>gfortran.exe --version
GNU Fortran (GCC) 4.7.2
...
C:\MinGW-GCC472>gfortran -m32 -o test.exe test.f
C:\MinGW-GCC472>gfortran -m32 -o test.exe test.f
C:\MinGW-GCC472>test
 test =   2.7777777984738350E-002 <-- 16 Significant digits.

Why does a GCC 4.7.2 produced binary spit double precision FPs out to 16 places instead of 17 now by default. How annoying? Any thoughts?

-- Daniel