fortran66のブログ

fortran について書きます。

M.Metcalf et. al. の "fortran95/2003 explained" §11.2 によると、
"Within Fortran, -0 is treated as the ssame as a zero in all intrinsic operations and comparisons, but it can be detected by the 'sign' function and is respected on formatted output."
という事なので、昨日の件はあれでいいのかもしれない。

しかし、
"The IEEE standard also specified that 'sqrt' properly rounds the exact result and returns -0 for √-0."
とあるが、これは Intel Fortran V11.0 ではオプションで指定しないとそうならない。

PROGRAM test
IMPLICIT NONE
PRINT *, SQRT(-0.0)
STOP
END PROGRAM test