For source code see attachment. The source came from http://www.netlib.org/blas/d1mach.f .
For new code, this should not be an ussue, because these numbers are supplied by the front end. Old code from sources like netlib relies on these routines, and it's a pain to have to change them. $ gfortran -v Reading specs from /home/zfkts/lib/gcc/ia64-unknown-linux-gnu/4.0.0/specs Configured with: ../gcc-4.0-20041107/configure --prefix=/home/zfkts --enable-languages=c,c++,f95 Thread model: posix gcc version 4.0.0 20041107 (experimental) $ gfortran d1mach.f && ./a.out 2.225073858507201E-308 0.00000000000000 3.182993687584259E-313 2.121995792447469E-314 0.301029995663981 $ g77 d1mach.f && ./a.out 2.22507386E-308 1.79769313E+308 1.11022302E-16 2.22044605E-16 0.301029996 $ ifort d1mach.f && ./a.out 2.225073858507201E-308 1.797693134862316E+308 1.110223024625157E-016 2.220446049250313E-016 0.301029995663981 -- Summary: d1mach(4) (BLAS) broken, g77 regression Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: Thomas dot Koenig at online dot de CC: gcc-bugs at gcc dot gnu dot org GCC host triplet: ia64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18518