"floating" error messages

"floating" error messages

For the longest time, I and others have been confounded by the lack of specificity in compilation and runtime error messages.  A good example of these is the floating * error messages one gets at runtime.  Back in July (http://software.intel.com/en-us/forums/topic/277207#191012), I got a "M6201 error DOMAIN" message.  After adding a critical switch ( /fp:0 ), I got this error:

forrtl: error(73): floating divide by zero

which helped me trace the problem (a "constant" wasn't very constant after all).  I fixed the problem.

Now, for a different reason and at a different spot,  I'm getting:

forrtl: error(65): floating invalid

The actual problem at the choke point isn't obvious and is being investigated.  But meanwhile, I really wonder if anyone can please enlighten me as to what the difference is between error(73) and error(65).

5 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Error 73 (floating divide by zero) is exactly what it says - you did a floating divide by zero and used /fpe0 to disable normal IEEE semantics for this operation (which normally would produce an IEEE "Not a Number" (NaN). Error 65 is what happens when you "touch" a NaN and have used /fpe0. Where that NaN came from you have to investigate, as it was produced earlier in the program.

Steve

Steve,

Maybe I didn't pose my question as well as I might have.  Of course you are right - forrtl: error(73): floating divide by zero "is exactly what it says" it is.  The name for the error is unambiguous.  My question aims more at the nebulous forrtl: error(65): floating invalid which would leave many scratching their head as to exactly what it is.  Floating invalid?  In tracing the problem that inspired this post, I have deduced that the trouble indeed triggered when a divisor mysteriously went to zero.  So one might well wonder why the error(73) didn't trigger in this case.

"floating invalid" is a common term for this, but I understand it may be unfamiliar to you. A NaN can be created in many different ways, not just a zerodivide.

Steve

And just to be clear, the recent error message (forrtl: error(65): floating invalid ) didn't include anything about NaN.  It just crashed at runtime.  In tracing, it was determined to be a zero divisor.

Login to leave a comment.