`ATOMIC_XOR` — 원자적 비트 XOR

ATOMIC_XOR — 원자적 비트 XOR

코어레이 변수에 비트 XOR을 원자적으로 적용하고 싶을 때 atomic_xor를 써요. 값을 읽고, XOR을 계산하고, 다시 쓰는 전체 동작이 중간에 방해받지 않도록 한 번에 처리돼요.

출처: gfortran 문서 — ATOMIC_XOR

본문

시그니처

CALL ATOMIC_XOR (ATOM, VALUE [, STAT])

설명

ATOMIC_XOR(ATOM, VALUE)ATOMVALUE 사이의 비트 XOR 결과로 ATOM을 원자적으로 정의해요.

확인 필요: 위 gfortran 페이지 제목에 'Atomic bitwise OR operation'이라 적혀 있지만, 함수 이름과 동작은 XOR이에요. 문서 제목의 표기 오타로 보이니 XOR로 해석하면 돼요.

STAT가 주어지고 호출이 성공하면 STAT에 0을 넣어요. 호출이 실패하면 양수 값을 넣는데, coindexed ATOM의 경우 원격 이미지가 멈췄다면 ISO_FORTRAN_ENVSTAT_STOPPED_IMAGE 값, 실패했다면 STAT_FAILED_IMAGE 값을 넣어요.

분류

원자적 서브루틴(Atomic subroutine)

인자

  • ATOMATOMIC_INT_KIND 종류의 정수형 스칼라 코어레이 또는 coindexed 변수.
  • VALUEATOM과 같은 타입의 스칼라. 종류가 다르면 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 이상

함께 보기