I'm a bit confused regarding the usage of ieee modules in gfortran. I know gfortran 5.x support ieee modules. I have a code (with *.f90 extension plus one .f03 file for declaring wrapper data types to interface with an external library written in C++. The .f03 file is used in a .f90 module via include command) that was written in days of gfortran 4.x, as such no explicit way of exception handling was used. But now, it seems to me that 5.x tries to signal exceptions whenever they occur. This is known to me because output text from my code includes this signal message even when I don't trap them.
Does that mean floating point rounding,adding,division,multiplication and square roots, now conform to ieee standards implicitly?In other words, wherever I've set precision using selected_real_kind, I can use ieee_selected_real_kind and then all arithmetic conforms to ieee standards i.e. for example, the operators +, -, /, *, etc. conform to ieee standards.
Moreover, GCC documentation says that the standard is for Fortran 2003 and later. Does it mean that for all *.f90 files have to renamed as *.f03 for the standard to take effect? If that's so I think the exception signalling I'm getting is generated by .f03 file only.
I also want to know that if I trap the error with compiler options, can I know which floating point operation in the code which caused it in the first place?