The following code crashes with a floating point exception:
atan-bug.f90 (301 Bytes)
Compiling and running with nvfortran-20.11 on x86:
% nvfortran -O -gopt -Ktrap=fp atan-bug.f90 && ./a.out
0.1000000000000000 2.2250738585072014E-308 2.2250738585072014E-307
Gleitkomma-Ausnahme (Speicherabzug geschrieben)
Thus a small argument to atan works, but not zero.
(I know that a workaround here would be to use atan2()).
Running under gdb:
Using host libthread_db library “/lib64/libthread_db.so.1”.
0.1000000000000000 2.2250738585072014E-308 2.2250738585072014E-307
Program received signal SIGFPE, Arithmetic exception.
0x00001555539982a5 in __fd_atan_1_avx2 ()
from /work/nvidia/hpc_sdk/Linux_x86_64/20.11/compilers/lib/libnvcpumath.so
Is this a known issue? Or should I rather avoid using -Ktrap=fp?