ieee_real

Date:

10-12-2011

NAME

IEEE_REAL - (To be replaced) Converts x to a real value

SYNOPSIS

IEEE_REAL ([X=]x [,[Y=]y])

IMPLEMENTATION

Cray Linux Environment (CLE)

STANDARDS

Fortran extension

IEEE Standard for Binary Floating-point Arithmetic

DESCRIPTION

The IEEE_REAL intrinsic function converts x to a real value according to the rounding mode currently in effect. It accepts the following arguments:

x

Can be of type real or integer. It can be scalar or an array.

y

If specified, must be scalar and of type real.

IEEE_REAL is an elemental function. The name of this intrinsic cannot be passed as an argument.

RETURN VALUES

The result type and type parameters are as follows. If y is absent, the result type and type parameter are default real. If y is present, the result type and type parameter are the same type and type parameter as y. If x is an array, the result is an array of the same shape as x.

If y is absent, the result is a default real rounded from x according to the rounding mode currently in effect. When x is of type integer, this form of IEEE_REAL is useful for converting an integer value that has more significant bits than the number of bits in the mantissa of the default real format or the format of y. IEEE_REAL, in this case, rounds the integer according to the number of bits in the mantissa. For example, suppose that on some machine an integer can hold 5 decimal digits, but the floating-point format of the same size can only hold 4. The result of IEEE_REAL(10126) on this machine would be 1.013E+3 if the current rounding mode is round-to-nearest. This form of IEEE_REAL is also useful when converting a double-precision y to (default) single precision and, in the process, rounding the fractional value in the mantissa according to the rounding mode currently in effect.

If y is present, the result is of type real with the same kind type parameter value as y and whose value is rounded from x according to the rounding mode currently in effect. This form of IEEE_REAL has essentially the same uses as those described in the previous paragraph, but it allows you to specify a result type of something other than default real.

If x is scalar, the result is scalar.

If x is an array, the result is an array in which each element is the value of xi rounded to the type and type parameter of y.

EXAMPLES

! Assume that the following program is compiled and executed on
! a 32-bit machine.
INTEGER k

   !X is filled with a value that
   !has more than 32 significant bits
PRINT *, IEEE_REAL(k)

Variable k is converted to type default real and rounded to fit into 23 bits according to the rounding mode currently in effect.