KIND 종류 매개변수
KIND 종류 매개변수 (KIND Type Parameters)
Fortran의 기본 데이터 타입은 각각 여러 개의 종류(kind)를 가질 수 있어요. 이 종류가 바로 데이터의 정밀도나 저장 크기를 결정하죠. 이 글에서는 GNU Fortran이 기본 데이터 타입에 대해 지원하는 KIND 매개변수 목록을 살펴볼게요.
본문
기본 데이터 타입의 KIND 매개변수
GNU Fortran이 기본 데이터 타입에 대해 지원하는 KIND 종류 매개변수는 다음과 같아요.
| 타입 | 지원 KIND | 기본값 |
|---|---|---|
INTEGER |
1, 2, 4, 8*, 16* | 4** |
LOGICAL |
1, 2, 4, 8*, 16* | 4** |
REAL |
4, 8, 10*, 16* | 4*** |
COMPLEX |
4, 8, 10*, 16* | 4*** |
DOUBLE PRECISION |
4, 8, 10*, 16* | 8*** |
CHARACTER |
1, 4 | 1 |
* 모든 시스템에서 사용 가능한 것은 아니에요.
** -fdefault-integer-8을 사용하지 않는 한 4예요.
*** -fdefault-real-8을 사용하지 않는 한 기본값이에요 (Options controlling Fortran dialect 참고).
KIND 값의 의미
KIND 값은 저장 크기(storage size in bytes)와 일치해요. 다만 COMPLEX는 예외인데, 저장 크기가 두 배가 돼요. (COMPLEX는 실수부와 허수부가 각각 주어진 크기의 실수 값이거든요.)
추천하는 사용법
구체적인 값을 직접 쓰기보다는, 표준화된 방법을 사용하는 편이 좋아요. SELECTED_CHAR_KIND, SELECTED_INT_KIND, SELECTED_LOGICAL_KIND, SELECTED_REAL_KIND 내장 함수를 사용하거나, ISO_FORTRAN_ENV 모듈의 INT8, INT16, INT32, INT64, REAL32, REAL64, REAL128 매개변수를 사용하는 걸 권장해요.
사용 가능한 종류 매개변수는 ISO_FORTRAN_ENV 모듈의 상수 배열 CHARACTER_KINDS, INTEGER_KINDS, LOGICAL_KINDS, REAL_KINDS에서 확인할 수 있어요. C와의 상호 운용을 위해서는 ISO_C_BINDING 모듈의 종류 매개변수를 사용해야 해요.
더 알아보기
SELECTED_INT_KIND같은 내장 함수의 상세 사용법은 Intrinsic Procedures 문서에서 확인할 수 있어요.- 내장 모듈과 상수에 대해서는 Intrinsic Modules 문서를 참고해 보세요.
LOGICAL값의 내부 표현은 LOGICAL 변수의 내부 표현 문서에서 다뤄요.