XOR (The GNU Fortran Compiler)

### 8.300 `XOR` — Bitwise logical exclusive OR ¶

Synopsis:

  `RESULT = XOR(I, J)`

Description:

  Bitwise logical exclusive or.

  This intrinsic routine is provided for backwards compatibility with GNU Fortran 77. For integer arguments, programmers should consider the use of the `IEOR` — Bitwise logical exclusive or intrinsic and for logical arguments the `.NEQV.` operator, which are both defined by the Fortran standard.

Class:

  Function

Arguments:

  I | The type shall be either a scalar `INTEGER` type or a scalar `LOGICAL` type or a boz-literal-constant.
  J | The type shall be the same as the type of I or a boz-literal-constant. I and J shall not both be boz-literal-constants. If either I and J is a boz-literal-constant, then the other argument must be a scalar `INTEGER`.

Return value:

  The return type is either a scalar `INTEGER` or a scalar `LOGICAL`. If the kind type parameters differ, then the smaller kind type is implicitly converted to larger kind, and the return has the larger kind. A boz-literal-constant is converted to an `INTEGER` with the kind type parameter of the other argument as-if a call to `INT` — Convert to integer type occurred.

Example:

      PROGRAM test_xor
        LOGICAL :: T = .TRUE., F = .FALSE.
        INTEGER :: a, b
        DATA a / Z'F' /, b / Z'3' /

        WRITE (*,*) XOR(T, T), XOR(T, F), XOR(F, T), XOR(F, F)
        WRITE (*,*) XOR(a, b)
      END PROGRAM

Standard:

  GNU extension

See also:

  Fortran 95 elemental function:
  `IEOR` — Bitwise logical exclusive or