`ATOMIC_XOR` — 원자적 비트 XOR
ATOMIC_XOR — 원자적 비트 XOR
코어레이 변수에 비트 XOR을 원자적으로 적용하고 싶을 때 atomic_xor를 써요. 값을 읽고, XOR을 계산하고, 다시 쓰는 전체 동작이 중간에 방해받지 않도록 한 번에 처리돼요.
본문
시그니처
CALL ATOMIC_XOR (ATOM, VALUE [, STAT])
설명
ATOMIC_XOR(ATOM, VALUE)는 ATOM과 VALUE 사이의 비트 XOR 결과로 ATOM을 원자적으로 정의해요.
확인 필요: 위 gfortran 페이지 제목에 'Atomic bitwise OR operation'이라 적혀 있지만, 함수 이름과 동작은 XOR이에요. 문서 제목의 표기 오타로 보이니 XOR로 해석하면 돼요.
STAT가 주어지고 호출이 성공하면 STAT에 0을 넣어요. 호출이 실패하면 양수 값을 넣는데, coindexed ATOM의 경우 원격 이미지가 멈췄다면 ISO_FORTRAN_ENV의 STAT_STOPPED_IMAGE 값, 실패했다면 STAT_FAILED_IMAGE 값을 넣어요.
분류
원자적 서브루틴(Atomic subroutine)
인자
ATOM—ATOMIC_INT_KIND종류의 정수형 스칼라 코어레이 또는 coindexed 변수.VALUE—ATOM과 같은 타입의 스칼라. 종류가 다르면ATOM의 종류로 변환돼요.STAT(선택) — 기본 종류 정수형 스칼라 변수.
예제
program atomic
use iso_fortran_env
integer(atomic_int_kind) :: atom[*]
call atomic_xor (atom[1], int(b'10100011101'))
end program atomic
이 예제는 atom[1]에 이진수 10100011101의 비트 XOR을 원자적으로 적용해요.
표준
TS 18508 이상