Next: ATOMIC_AND, Previous: ATANH, Up: Intrinsic Procedures

### 8.28 `ATOMIC_ADD` — Atomic ADD operation

Description:
  `ATOMIC_ADD(ATOM, VALUE)` atomically adds the value of VALUE to the variable ATOM. When STAT is present and the invocation was successful, it is assigned the value 0. If it is present and the invocation has failed, it is assigned a positive value; in particular, for a coindexed ATOM, if the remote image has stopped, it is assigned the value of `ISO_FORTRAN_ENV`'s `STAT_STOPPED_IMAGE` and if the remote image has failed, the value `STAT_FAILED_IMAGE`.
Standard:
  TS 18508 or later
Class:
  Atomic subroutine
Syntax:
  `CALL ATOMIC_ADD (ATOM, VALUE [, STAT])`
Arguments:

  ATOM | Scalar coarray or coindexed variable of integer type with `ATOMIC_INT_KIND` kind.
  VALUE | Scalar of the same type as ATOM. If the kind is different, the value is converted to the kind of ATOM.
  STAT | (optional) Scalar default-kind integer variable.

Example:

                program atomic
                  use iso_fortran_env
                  integer(atomic_int_kind) :: atom[*]
                  call atomic_add (atom[1], this_image())
                end program atomic

See also:
  ATOMIC_DEFINE, ATOMIC_FETCH_ADD, ISO_FORTRAN_ENV, ATOMIC_AND, ATOMIC_OR, ATOMIC_XOR