# Overview of Atomic Subroutines

Atomic subroutines are impure intrinsic procedures that perform an action on their atom argument atomically. If a reference to an atomic subroutine has an old argument, the value to be assigned to that argument is also determined atomically with the action performed on the atom argument. The evaluation or definition of any other argument is not performed atomically.

The stat argument, if present, has a value of zero if no error condition occurs during the subroutine reference.

If stat is present and an error condition occurs, any INTENT(INOUT) or INTENT(OUT) argument becomes undefined. If the atom argument is on a failed image, stat, if present, becomes defined with the value STAT_FAILED_IMAGE from the intrinsic module ISO_FORTRAN_ENV and an error condition occurs. If any other error condition occurs, stat becomes defined with a processor-dependent positive integer value other than that of STAT_FAILED_IMAGE.

If an error condition occurs and stat is not present, error termination is initiated.

For a list of all atomic intrinsic subroutines, including links to the subroutine's full description, see Atomic Intrinsic Subroutines.

Parent topic: Intrinsic Procedures