set_ieee_status(3I)

SET_IEEE_STATUS - Restores floating-point status

As shipped in IRIX 6.5. First release of IRIX 6.5.

NAME
     SET_IEEE_STATUS - Restores floating-point status

SYNOPSIS
     SET_IEEE_STATUS ([STATUS=]status)

IMPLEMENTATION
     UNICOS/mk and IRIX systems

     CRAY T90 systems that support IEEE floating-point arithmetic

STANDARDS
     CF90 and MIPSpro 7 Fortran 90 compiler extension to Fortran 90

     IEEE Standard for Binary Floating-point Arithmetic

DESCRIPTION
     The SET_IEEE_STATUS intrinsic subroutine is typically used to restore
     the caller's floating-point status just before exiting a procedure.
     It accepts the following argument:

     status    Must be scalar and of an integer type that occupies a full
               word.  It is an INTENT(IN) argument.

               On CRAY T90 systems that support IEEE floating-point
               arithemetic, its value (contained in a 64-bit word) is
               stored into SR0.  On other architectures, the flags are
               stored into the appropriate flag bits of the word(s) or
               register(s) that record the floating-point state.

               The value in status is assumed to have been produced through
               an invocation of GET_IEEE_STATUS(3I).

     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 one of the following statements in
     your program:

     * On UNICOS and UNICOS/mk systems:  USE CRI_IEEE_DEFINITIONS

     * On UNICOS, UNICOS/mk, and IRIX systems:  USE FTN_IEEE_DEFINITIONS

     The CRI_IEEE_DEFINITIONS module is obsolescent.  It will be removed
     for the CF90 4.0 release.

     There are 6 bits, called the IEEE Floating Point Exception Status Bits
     or the sticky bits, that indicate whether any one of 6 possible
     exceptions has occurred (the 5 exceptions specified by the IEEE
     floating-point standard and a Cray Research extension).  The user
     program begins with these bits cleared to zero.  The occurrence of any
     of the exceptions will set the corresponding bit.  Only the user can
     clear these bits.

EXAMPLES
        ! Assume this example demonstrates code for an IRIX system
        ! where default integer type occupies a full word.

        SUBROUTINE CALCULATE
        USE FTN_IEEE_DEFINITIONS
        INTEGER  IEEE_STATUS
        ...                         ! Only stmts here that can't change the
                                    ! floating point status.
        CALL GET_IEEE_STATUS(IEEE_STATUS)
        ...                         ! Body of the procedure.
        CALL SET_IEEE_STATUS(IEEE_STATUS)
        END SUBROUTINE

     GET_IEEE_STATUS(3I) is called upon entry to the example's procedure
     CALCULATE to capture the current floating-point status.  If procedure
     CALCULATE changes the floating-point status, the original
     floating-point status can be reset before exiting from CALCULATE by
     calling SET_IEEE_STATUS.

SEE ALSO
     GET_IEEE_STATUS(3I)

     Intrinsic Procedures Reference Manual, publication SR-2138, for the
     printed version of this man page.