shift

Date:

02-06-2023

NAME

SHIFT - Performs a left circular shift

SYNOPSIS

SHIFT ([I=]i,[J=]j)

STANDARDS

Fortran extension

DESCRIPTION

SHIFT performs a left circular shift of i by j bits. It accepts the following arguments:

i

The value to be shifted. i can be of type Boolean, integer, real, or Cray pointer.

j

The number of bits to shift the value. Must be of type integer or Boolean. j must be within the range 0 <= j <= size, where size is the size, in bits, of i. That is, if i is a 64-bit object, j must be within the range 0 <= j <= 64.

For values of j outside these ranges, SHIFT returns an undefined result.

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

NOTES

This is an outmoded routine. Refer to the Cray Fortran Reference Manual for information about outmoded features and their preferred standard alternatives.

EXAMPLES

The following section of Fortran code shows the SHIFT function used in the case where i is of type integer. For simplicity, a 16-bit object is used. The bit pattern of i and the bit pattern of the result are also given.

INTEGER I1, I2, I3
...
I2 = 5
I3 = SHIFT(I1,I2)
 ---------------------------------------------------------------
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
 ---------------------------------------------------------------
                                 I1 (i)
 ---------------------------------------------------------------
| 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 |
 ---------------------------------------------------------------
                                I3 (result)

SEE ALSO

shift(3i)