ALLOCATED — 할당 가능한 개체의 할당 상태 확인

ALLOCATED — 할당 가능한 개체의 할당 상태 확인

할당 가능(allocatable) 배열이나 스칼라를 쓰기 전에, 실제로 메모리가 할당되어 있는지 확인하고 싶을 때가 있어요. 할당되지 않은 상태에서 접근하면 문제가 생길 수 있으니까요. ALLOCATED는 그 할당 상태를 참/거짓으로 알려주는 함수입니다.

출처: gfortran 공식 문서 - ALLOCATED

본문

시그니처(Synopsis)

RESULT = ALLOCATED(ARRAY)
RESULT = ALLOCATED(SCALAR)

설명(Description)

ALLOCATED(ARRAY)ALLOCATED(SCALAR)는 각각 배열 ARRAY와 스칼라 SCALAR의 할당 상태를 확인해요.

분류(Class)

조사 함수(Inquiry function)

인자(Arguments)

  • ARRAY: ALLOCATABLE 배열이어야 해요.
  • SCALAR: ALLOCATABLE 스칼라여야 해요.

반환값

기본 논리 종류 매개변수의 스칼라 LOGICAL 값을 반환해요. 인자가 할당되어 있으면 .TRUE., 그렇지 않으면 .FALSE.를 반환합니다.

예제

program test_allocated
  integer :: i = 4
  real(4), allocatable :: x(:)
  if (.not. allocated(x)) allocate(x(i))
end program test_allocated

할당 가능 배열 x가 아직 할당되지 않았는지 allocated로 확인하고, 할당되지 않았다면 크기 i로 할당하는 예시예요. 배열을 쓰기 전에 안전하게 할당 여부를 점검하는 패턴을 보여줍니다.

표준(Standard)

Fortran 90 이상. SCALAR= 키워드와 할당 가능 스칼라 개체에 대해서는 Fortran 2003 이상.