ATOMIC_REF — Obtaining the value of a variable atomically¶
- ATOMIC_REF()¶
ATOMIC_DEFINE(ATOM, VALUE)
atomically assigns the value of the variableATOM
toVALUE
. WhenSTAT
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 coindexedATOM
, if the remote image has stopped, it is assigned the value ofISO_FORTRAN_ENV
‘sSTAT_STOPPED_IMAGE
and if the remote image has failed, the valueSTAT_FAILED_IMAGE
.- Parameters
VALUE – Scalar of the same type as
ATOM
. If the kind is different, the value is converted to the kind ofATOM
.ATOM – Scalar coarray or coindexed variable of either integer type with
ATOMIC_INT_KIND
kind or logical type withATOMIC_LOGICAL_KIND
kind.STAT – (optional) Scalar default-kind integer variable.
Standard:
Fortran 2008 and later; with
STAT
, TS 18508 or laterClass:
Atomic subroutine
Syntax:
CALL ATOMIC_REF(VALUE, ATOM [, STAT])
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, ATOMIC_CAS, ISO_FORTRAN_ENV, ATOMIC_FETCH_ADD, ATOMIC_FETCH_AND, ATOMIC_FETCH_OR, ATOMIC_FETCH_XOR