COUNT (The GNU Fortran Compiler)

### 8.85 `COUNT` — Count function ¶

Synopsis:

  `RESULT = COUNT(MASK [, DIM, KIND])`

Description:

  Counts the number of `.TRUE.` elements in a logical MASK, or, if the DIM argument is supplied, counts the number of elements along each row of the array in the DIM direction. If the array has zero size, or all of the elements of MASK are `.FALSE.`, then the result is `0`.

Class:

  Transformational function

Arguments:

  MASK | The type shall be `LOGICAL`.
  DIM | (Optional) The type shall be `INTEGER`.
  KIND | (Optional) A scalar `INTEGER` constant expression indicating the kind parameter of the result.

Return value:

  The return value is of type `INTEGER` and of kind KIND. If KIND is absent, the return value is of default integer kind. If DIM is present, the result is an array with a rank one less than the rank of ARRAY, and a size corresponding to the shape of ARRAY with the DIM dimension removed.

Example:

      program test_count
          integer, dimension(2,3) :: a, b
          logical, dimension(2,3) :: mask
          a = reshape( (/ 1, 2, 3, 4, 5, 6 /), (/ 2, 3 /))
          b = reshape( (/ 0, 7, 3, 4, 5, 8 /), (/ 2, 3 /))
          print '(3i3)', a(1,:)
          print '(3i3)', a(2,:)
          print *
          print '(3i3)', b(1,:)
          print '(3i3)', b(2,:)
          print *
          mask = a.ne.b
          print '(3l3)', mask(1,:)
          print '(3l3)', mask(2,:)
          print *
          print '(3i3)', count(mask)
          print *
          print '(3i3)', count(mask, 1)
          print *
          print '(3i3)', count(mask, 2)
      end program test_count

Standard:

  Fortran 90 and later, with KIND argument Fortran 2003 and later