`ATOMIC_OR` — 원자적 비트 OR

ATOMIC_OR — 원자적 비트 OR

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

출처: gfortran 문서 — ATOMIC_OR

본문

시그니처

CALL ATOMIC_OR (ATOM, VALUE [, STAT])

설명

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

확인 필요: 위 gfortran 본문에는 '비트 AND'로 적혀 있지만, 함수 이름과 동작은 OR예요. 문서의 표기 오타로 보이니 혼동하지 않게 OR로 해석하면 돼요.

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_or (atom[1], int(b'10100011101'))
end program atomic

이 예제는 atom[1]에 이진수 10100011101의 비트 OR을 원자적으로 적용해요.

표준

TS 18508 이상

함께 보기