내장 모듈

내장 모듈 (Intrinsic Modules)

Fortran으로 프로그램을 작성하다 보면 컴파일러가 기본적으로 제공해 주는 모듈들이 있어요. 이런 모듈을 내장 모듈(intrinsic module)이라고 부르는데, 특정 타입이나 상수, 병렬 처리(PARALLEL) 관련 기능 등을 쓸 때 유용해요. 이 글에서는 GNU Fortran이 제공하는 내장 모듈들의 목록을 살펴볼게요.

출처: Intrinsic Modules

본문

GNU Fortran에서 기본적으로 제공되는 내장 모듈들은 다음과 같아요.

  • ISO_FORTRAN_ENV
  • ISO_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 문서를 참고해 보세요.