### 8.25 `ATOMIC_REF` — Obtaining the value of a variable atomically

Description:
  `ATOMIC_DEFINE(ATOM, VALUE)` atomically assigns the value of the variable ATOM to VALUE.
Standard:
  Fortran 2008 and later
Class:
  Atomic subroutine
Syntax:
  `CALL ATOMIC_REF(VALUE, ATOM)`
Arguments:

  VALURE | Scalar and of the same type as ATOM. If the kind is different, the value is converted to the kind of ATOM.
  ATOM | Scalar coarray or coindexed variable of either integer type with `ATOMIC_INT_KIND` kind or logical type with `ATOMIC_LOGICAL_KIND` kind.

Example:

                program atomic
                  use iso_fortran_env
                  logical(atomic_logical_kind) :: atom[*]
                  logical :: val
                  call atomic_ref (atom, .false.)
                  ! ...
                  call atomic_ref (atom, val)
                  if (val) then
                    print *, "Obtained"
                  end if
                end program atomic

See also:
  ATOMIC_DEFINE, ISO_FORTRAN_ENV