CO_MAX (The GNU Fortran Compiler)

### 8.68 `CO_MAX` — Maximal value on the current set of images ¶

Synopsis:

  `CALL CO_MAX(A [, RESULT_IMAGE, STAT, ERRMSG])`

Description:

  `CO_MAX` determines element-wise the maximal value of A on all images of the current team. If RESULT_IMAGE is present, the maximum values are returned in A on the specified image only and the value of A on the other images become undefined. If RESULT_IMAGE is not present, the value is returned on all images. If the execution was successful and STAT is present, it is assigned the value zero. If the execution failed, STAT gets assigned a nonzero value and, if present, ERRMSG gets assigned a value describing the occurred error.

Class:

  Collective subroutine

Arguments:

  A | shall be an integer, real or character variable, which has the same type and type parameters on all images of the team.
  RESULT_IMAGE | (optional) a scalar integer expression; if present, it shall have the same value on all images and refer to an image of the current team.
  STAT | (optional) a scalar integer variable
  ERRMSG | (optional) a scalar character variable

Example:

      program test
        integer :: val
        val = this_image ()
        call co_max (val, result_image=1)
        if (this_image() == 1) then
          write(*,*) "Maximal value", val  ! prints num_images()
        end if
      end program test

Standard:

  Technical Specification (TS) 18508 or later

See also:

  `CO_MIN` — Minimal value on the current set of images,
  `CO_SUM` — Sum of values on the current set of images,
  `CO_REDUCE` — Reduction of values on the current set of images,
  `CO_BROADCAST` — Copy a value to all images the current set of images