atomic_ref(atom, value)
atomically assigns the value of the variable atom
to value
. 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
.
Fortran 2008 and later; with stat
, TS 18508 or later
Atomic subroutine
call atomic_ref(value, atom [, stat])
value
- Scalar 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.stat
- (optional) Scalar default-kind integer variable.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
atomic_define, atomic_cas, iso_fortran_env, atomic_fetch_add, atomic_fetch_and, atomic_fetch_or, atomic_fetch_xor