CO_BROADCAST (The GNU Fortran Compiler)

### 8.67 `CO_BROADCAST` — Copy a value to all images the current set of images ¶

Synopsis:

  `CALL CO_BROADCAST(A, SOURCE_IMAGE [, STAT, ERRMSG])`

Description:

  `CO_BROADCAST` copies the value of argument A on the image with image index `SOURCE_IMAGE` to all images in the current team. A becomes defined as if by intrinsic assignment. 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 | INTENT(INOUT) argument; shall have the same dynamic type and type parameters on all images of the current team. If it is an array, it shall have the same shape on all images.
  SOURCE_IMAGE | a scalar integer expression. 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(3)
        if (this_image() == 1) then
          val = [1, 5, 3]
        end if
        call co_broadcast (val, source_image=1)
        print *, this_image, ":", val
      end program test

Standard:

  Technical Specification (TS) 18508 or later

See also:

  `CO_MAX` — Maximal value on the current set of images,
  `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