Previous: VERIFY, Up: Intrinsic Procedures

### 8.257 `XOR` — Bitwise logical exclusive OR

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 intrinsic and for logical arguments the `.NEQV.` operator, which are both defined by the Fortran standard.

Standard:
  GNU extension
Class:
  Function
Syntax:
  `RESULT = XOR(I, J)`
Arguments:

  I | The type shall be either a scalar `INTEGER` type or a scalar `LOGICAL` type.
  J | The type shall be the same as the type of I.

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.
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

See also:
  Fortran 95 elemental function: IEOR