http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49336
--- Comment #3 from ahn567 at gmail dot com 2011-06-10 00:33:41 UTC --- (In reply to comment #2) > ahn567: Do you rely on atan (+/-0, x< 0) returning PI instead of -PI? If it is > really needed, on could add a special handling for -fno-signed-zeros. However, > that would be slower - and other compilers also follow IEEE/POSIX/F2003 - even > if they do not print signed zeros by default. Hence, I would prefer to just > update the gfortran documentation. No, I do not rely on this. I was just surprised that the following program would ever output "T F" program main double precision :: y1, y2 y1 = +0d0 y2 = -0d0 write(*,*) y1==y2, atan2(y1,-1d0)==atan2(y2,-1d0) end program The output is "T F" for both of these compilation commands, gfortran prog.f90 gfortran -std=f95 prog.f90 Apparently this is correct standard Fortran behaviour, eg. according to ISO/IEC JTC 1/SC 22/WG 5/N1826. I had not come across signed zero before. For anyone interested... http://en.wikipedia.org/wiki/Signed_zero Updating the gfortran documentation would seem to be the proper thing to do eg., as per page 331 of the above standard. (The docs for SQRT, SIGN, LOG,... might also need checking.)