ATOMIC_FETCH_AND — Atomic bitwise AND operation with prior fetch#
-
ATOMIC_FETCH_AND(ATOM, VALUE, OLD, STAT)#
ATOMIC_AND(ATOM, VALUE)
atomically stores the value ofATOM
inOLD
and definesATOM
with the bitwise AND between the values ofATOM
andVALUE
. 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:
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 ofATOM
.OLD – Scalar of the same type and kind as
ATOM
.STAT – (optional) Scalar default-kind integer variable.
- Standard:
TS 18508 or later
- Class:
Atomic subroutine
- Syntax:
CALL ATOMIC_FETCH_AND (ATOM, VALUE, OLD [, STAT])
- Example:
program atomic use iso_fortran_env integer(atomic_int_kind) :: atom[*], old call atomic_fetch_and (atom[1], int(b'10100011101'), old) end program atomic
- See also:
ATOMIC_DEFINE — Setting a variable atomically, ATOMIC_AND — Atomic bitwise AND operation, ISO_FORTRAN_ENV, ATOMIC_FETCH_ADD — Atomic ADD operation with prior fetch, ATOMIC_FETCH_OR — Atomic bitwise OR operation with prior fetch, ATOMIC_FETCH_XOR — Atomic bitwise XOR operation with prior fetch