disable_ieee_interrupt(3I)
DISABLE_IEEE_INTERRUPT - Disables floating-point interrupt
As shipped in IRIX 6.5.30. Last changed in IRIX 6.5.19.
NAME DISABLE_IEEE_INTERRUPT - Disables floating-point interrupt SYNOPSIS DISABLE_IEEE_INTERRUPT ([INTERRUPT=]interrupt) STANDARDS CF90 and MIPSpro 7 Fortran 90 compiler extension to Fortran 95 IEEE Standard for Binary Floating-point Arithmetic DESCRIPTION The DISABLE_IEEE_INTERRUPT intrinsic subroutine disables the specified floating-point interrupt. It accepts the following argument: interrupt Must be of an integer type that occupies a full word. If interrupt is an array, it must be 1-dimensional. The single value in the scalar argument case, or each element in the array argument case, must be set to one of the values represented by one of the following named constants: * IEEE_NTPT_CRI_INVALID_OPND (accepted only on Cray T90 systems that support IEEE floating-point arithmetic) * IEEE_NTPT_INEXACT_RESULT * IEEE_NTPT_UNDERFLOW * IEEE_NTPT_OVERFLOW * IEEE_NTPT_DIV_BY_ZERO * IEEE_NTPT_INVALID_OPR * IEEE_NTPT_ALL The name of this intrinsic cannot be passed as an argument. NOTES The IEEE intrinsic procedures use the named constants contained in a system module, so you must include the following statement in your program: USE FTN_IEEE_DEFINITIONS RETURN VALUES Upon return, the interrupt, or each element of interrupt, is disabled. If interrupt, or any element of interrupt, has the value IEEE_NTPT_ALL, all interrupts are disabled. EXAMPLES SUBROUTINE calculate USE FTN_IEEE_DEFINITIONS INTEGER interrupt_status ! Save the current floating point interrupt status. CALL GET_IEEE_INTERRUPTS(interrupt_status) ! Enable interrupt on divide by zero if it hasn't already been ! enabled. IF (.NOT. TEST_IEEE_INTERRUPT(IEEE_NTPT_DIV_BY_ZERO)) & CALL ENABLE_IEEE_INTERRUPT(IEEE_NTPT_DIV_BY_ZERO) ! Perform a floating point divide. ! If z = 0, the program error terminates. x = y / z ! Disable interrupt on divide by zero. CALL DISABLE_IEEE_INTERRUPT(IEEE_NTPT_DIV_BY_ZERO)) ! If z = 0, q = Infinity (quietly). q = y / z ! Restore the floating point interrupt status to what it was ! when this procedure was called. CALL SET_IEEE_INTERRUPTS(interrupt_status) END SUBROUTINE