ALLOCATED — 할당 가능한 개체의 할당 상태 확인
ALLOCATED — 할당 가능한 개체의 할당 상태 확인
할당 가능(allocatable) 배열이나 스칼라를 쓰기 전에, 실제로 메모리가 할당되어 있는지 확인하고 싶을 때가 있어요. 할당되지 않은 상태에서 접근하면 문제가 생길 수 있으니까요. 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 이상.