Fortran · Exception
What does IEEE_UNDERFLOW — Floating-Point Underflow mean in Fortran?
Signals when a computed result is nonzero but too small in magnitude to be represented as a normal number in the destination kind, so it's flushed to a denormal value or to zero. It's usually harmless precision loss on tiny values, but a large number of underflows can indicate code dividing by unexpectedly huge numbers or multiplying by near-zero factors it shouldn't be.
Signals when a computed result is nonzero but too small in magnitude to be represented as a normal number in the destination kind, so it's flushed to a denormal value or to zero. It's usually harmless precision loss on tiny values, but a large number of underflows can indicate code dividing by unexpectedly huge numbers or multiplying by near-zero factors it shouldn't be.
Leave it untrapped in production builds — underflow rarely indicates a real bug — and only enable -ffpe-trap=underflow or IEEE_SET_HALTING_MODE(IEEE_UNDERFLOW, .TRUE.) temporarily to hunt down unexpected zeros during debugging.