Next: ISNAN, Previous: ISHFT, Up: Intrinsic Procedures

### 8.160 `ISHFTC` — Shift bits circularly

Description:
  `ISHFTC` returns a value corresponding to I with the rightmost SIZE bits shifted circularly SHIFT places; that is, bits shifted out one end are shifted into the opposite end. A value of SHIFT greater than zero corresponds to a left shift, a value of zero corresponds to no shift, and a value less than zero corresponds to a right shift. The absolute value of SHIFT must be less than SIZE. If the SIZE argument is omitted, it is taken to be equivalent to `BIT_SIZE(I)`.
Standard:
  Fortran 90 and later, has overloads that are GNU extensions
Class:
  Elemental function
Syntax:
  `RESULT = ISHFTC(I, SHIFT [, SIZE])`
Arguments:

  I | The type shall be `INTEGER`.
  SHIFT | The type shall be `INTEGER`.
  SIZE | (Optional) The type shall be `INTEGER`; the value must be greater than zero and less than or equal to `BIT_SIZE(I)`.

Return value:
  The return value is of type `INTEGER` and of the same kind as I.
Specific names:

  Name | Argument | Return type | Standard
  --- | --- | --- | ---
  `ISHFTC(A)` | `INTEGER A` | `INTEGER` | Fortran 90 and later
  `BSHFTC(A)` | `INTEGER(1) A` | `INTEGER(1)` | GNU extension
  `IISHFTC(A)` | `INTEGER(2) A` | `INTEGER(2)` | GNU extension
  `JISHFTC(A)` | `INTEGER(4) A` | `INTEGER(4)` | GNU extension
  `KISHFTC(A)` | `INTEGER(8) A` | `INTEGER(8)` | GNU extension

See also:
  ISHFT