내장 모듈
내장 모듈 (Intrinsic Modules)
Fortran으로 프로그램을 작성하다 보면 컴파일러가 기본적으로 제공해 주는 모듈들이 있어요. 이런 모듈을 내장 모듈(intrinsic module)이라고 부르는데, 특정 타입이나 상수, 병렬 처리(PARALLEL) 관련 기능 등을 쓸 때 유용해요. 이 글에서는 GNU Fortran이 제공하는 내장 모듈들의 목록을 살펴볼게요.
본문
GNU Fortran에서 기본적으로 제공되는 내장 모듈들은 다음과 같아요.
ISO_FORTRAN_ENVISO_C_BINDING- IEEE 모듈:
IEEE_EXCEPTIONS,IEEE_ARITHMETIC,IEEE_FEATURES - OpenMP 모듈:
OMP_LIB,OMP_LIB_KINDS - OpenACC 모듈:
OPENACC
각 모듈이 어떤 용도로 쓰이는지 간단히 짚어 보면 이래요.
ISO_FORTRAN_ENV는 표준에서 정의한 환경 상수들, 예를 들어INT64,REAL64같은 종류 관련 이름 상수들이나ERROR_UNIT같은 입출력 단위 상수 등을 제공해요.ISO_C_BINDING은 C 언어와의 상호 운용을 위한 종류 상수들을 제공해요. C의int,double,_Bool같은 타입에 대응하는 종류를 지정할 수 있게 해 주죠.- IEEE 모듈들은 IEEE 754 부동소수점 표준과 관련된 기능을 다뤄요. 예외 처리와 산술 연산, 특성 조회 등을 제공해요.
- OpenMP 모듈은 공유 메모리 병렬 프로그래밍 표준인 OpenMP를 Fortran에서 사용할 때 필요한 함수와 종류 상수를 제공해요.
- OpenACC 모듈은 GPU 가속을 위한 OpenACC 지시어를 프로그래밍 방식으로 제어할 때 필요한 상수들을 제공해요.
이 모듈들은 각각 고유한 목적을 가지고 있으니, 필요에 따라 USE 문으로 가져와서 사용하면 돼요.
더 알아보기
- C와의 상호 운용에서
ISO_C_BINDING을 어떻게 쓰는지는 Interoperability with C 문서에서 확인할 수 있어요. - 내장 프로시저 전체 목록은 Intrinsic Procedures 문서에서 다뤄요.
- 기본 타입의 종류(kind)에 대한 자세한 내용은 KIND Type Parameters 문서를 참고해 보세요.