*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> f90/disable_ieee_interrupt (3)              
Title
Content
Arch
Section
 

Contents


DISABLE_IEEE_INTERRUPT(3I)			       Last changed: 1-6-98

NAME    [Toc]    [Back]

     DISABLE_IEEE_INTERRUPT - Disables floating-point interrupt

SYNOPSIS    [Toc]    [Back]

     DISABLE_IEEE_INTERRUPT ([INTERRUPT=]interrupt)

IMPLEMENTATION    [Toc]    [Back]

     UNICOS/mk and IRIX	systems

     CRAY T90 systems that support IEEE	floating-point arithmetic

STANDARDS    [Toc]    [Back]

     CF90 and MIPSpro 7	Fortran	90 compiler extension to Fortran 90

     IEEE Standard for Binary Floating-point Arithmetic

DESCRIPTION    [Toc]    [Back]

     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    [Toc]    [Back]

     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.

     On	UNICOS/mk systems, you cannot use DISABLE_IEEE_INTERRUPT to set	the
     following bits:

     * Bit 49, invalid operation disable

     * Bit 50, division	by zero	disable

     * Bit 51, overflow	disable

     The hardware ignores attempts to set these	bits.

RETURN VALUES    [Toc]    [Back]

     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    [Toc]    [Back]

     The following program can be run on a UNICOS, UNICOS/mk, or IRIX
     system:

	  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

SEE ALSO    [Toc]    [Back]

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

DISABLE_IEEE_INTERRUPT(3I)			       Last changed: 1-6-98

NAME    [Toc]    [Back]

     DISABLE_IEEE_INTERRUPT - Disables floating-point interrupt

SYNOPSIS    [Toc]    [Back]

     DISABLE_IEEE_INTERRUPT ([INTERRUPT=]interrupt)

IMPLEMENTATION    [Toc]    [Back]

     UNICOS/mk and IRIX	systems

     CRAY T90 systems that support IEEE	floating-point arithmetic

STANDARDS    [Toc]    [Back]

     CF90 and MIPSpro 7	Fortran	90 compiler extension to Fortran 90

     IEEE Standard for Binary Floating-point Arithmetic

DESCRIPTION    [Toc]    [Back]

     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    [Toc]    [Back]

     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.

     On	UNICOS/mk systems, you cannot use DISABLE_IEEE_INTERRUPT to set	the
     following bits:

     * Bit 49, invalid operation disable

     * Bit 50, division	by zero	disable

     * Bit 51, overflow	disable

     The hardware ignores attempts to set these	bits.

RETURN VALUES    [Toc]    [Back]

     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    [Toc]    [Back]

     The following program can be run on a UNICOS, UNICOS/mk, or IRIX
     system:

	  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

SEE ALSO    [Toc]    [Back]

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

[ Back ]
 Similar pages
Name OS Title
enable_ieee_interrupt IRIX Enables floating-point interrupt
get_ieee_interrupts IRIX floating-point interrupt status
test_ieee_interrupt IRIX Returns the state of a floating-point interrupt
set_ieee_interrupts IRIX Restores floating-point interrupt status before exiting a procedure
fpgetmask IRIX floating-point units
fpgetsticky FreeBSD IEEE floating point interface
fpgetround FreeBSD IEEE floating point interface
isgreaterequal FreeBSD compare two floating-point numbers
get_ieee_exceptions IRIX floating-point exception status
fpsetround FreeBSD IEEE floating point interface
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service