PARITY (The GNU Fortran Compiler)

### 8.221 `PARITY` — Reduction with exclusive OR ¶

Synopsis:

  `RESULT = PARITY(MASK[, DIM])`

Description:

  Calculates the parity, i.e. the reduction using `.XOR.`, of MASK along dimension DIM.

Class:

  Transformational function

Arguments:

  MASK | Shall be an array of type `LOGICAL`
  DIM | (Optional) shall be a scalar of type `INTEGER` with a value in the range from 1 to n, where n equals the rank of MASK.

Return value:

  The result is of the same type as MASK.

  If DIM is absent, a scalar with the parity of all elements in MASK is returned, i.e. true if an odd number of elements is `.true.` and false otherwise. If DIM is present, an array of rank n-1, where n equals the rank of ARRAY, and a shape similar to that of MASK with dimension DIM dropped is returned.

Example:

      PROGRAM test_sum
        LOGICAL :: x(2) = [ .true., .false. ]
        print *, PARITY(x) ! prints "T" (true).
      END PROGRAM

Standard:

  Fortran 2008 and later