Visible to Intel only — GUID: GUID-292A8020-CE20-44EB-B6CB-A828324A4DB0
Visible to Intel only — GUID: GUID-292A8020-CE20-44EB-B6CB-A828324A4DB0
ATOMIC_FETCH_AND
Atomic Intrinsic Subroutine (Generic): Performs atomic fetch and bitwise AND.
CALL ATOMIC_FETCH_AND (atom, value, old [, stat])
atom |
(Input; output) Must be a scalar coarray or coindexed object and of type integer with kind ATOMIC_INT_KIND. It becomes defined with the value of iand (atom, int (value, ATOMIC_INT_KIND)) if no error occurs. Otherwise, it becomes undefined. ATOMIC_INT_KIND is a named constant in the intrinsic module ISO_FORTRAN_ENV. |
value |
(Input) Must be a scalar integer. The value of value must be representable as an integer with kind ATOMIC_INT_KIND. |
old |
(Output) Must be a scalar of the same type as atom. It becomes undefined if an error occurs. Otherwise, it becomes defined with the value atom has at the beginning of the atomic operation. |
stat |
(Output; optional) Must be a non-coindexed integer scalar with a decimal exponent range of at least four (KIND=2 or greater). The value assigned to stat is specified in Overview of Atomic Subroutines. If stat is not present and an error condition occurs, error termination is initiated. |
Consider the following:
CALL ATOMIC_FETCH_AND (N[4], 29, M)
If the value of N on image 4 was 23 when the atomic operation is initiated, N on image 4 is defined with the value 21, and M is defined with the value 23 when the operation completes and no error occurs during the subroutine reference.