GNU Fortran에서 구현된 확장
GNU Fortran에서 구현된 확장
GNU Fortran은 표준 Fortran 위에 여러 확장 기능을 구현하고 있어요. 이 장에서는 그 확장들의 문법과 의미를 설명해요. 이 확장들은 크게 두 종류로 나뉘는데, 어떤 표준이 제공하는 기능보다 더 많은 기능을 제공하는 것과, 옛 컴파일러와의 호환성을 위해 순수하게 유지하는 것이에요.
출처: Extensions implemented in GNU Fortran (The GNU Fortran Compiler)
본문
GNU Fortran은 표준 Fortran 위에 여러 확장 기능을 구현해요. 이 장에는 그 확장들의 문법과 의미에 대한 정보가 담겨 있어요. 현재 GNU Fortran 확장에는 두 가지 범주가 있어요. 하나는 어떤 표준도 제공하지 못하는 기능을 더해주는 것이고, 다른 하나는 옛 컴파일러(legacy compiler)와의 하위 호환성을 위해 GNU Fortran이 순수하게 지원하는 것이에요.
기본적으로 -std=gnu는 두 종류의 확장을 모두 허용하지만, 후자의 사용에 대해서는 경고해요. -std=f95, -std=f2003, -std=f2008, -std=f2018 중 어떤 걸 지정해도 두 종류의 확장이 모두 꺼지고, -std=legacy는 경고 없이 둘 다 허용해요. 특별한 컴파일 플래그인 -fdec는 -std=legacy가 켜는 확장과 함께 추가적인 호환 확장을 켜요.
구현된 확장은 다음과 같아요:
- 올드 스타일 kind 지정 (Old-style kind specifications)
- 올드 스타일 변수 초기화 (Old-style variable initialization)
- namelist 확장 (Extensions to namelist)
- 개수 필드가 없는 X 포맷 지시자 (X format descriptor without count field)
FORMAT지정에서의 쉼표 (Commas in FORMAT specifications)FORMAT지정에서 빠진 마침표 (Missing period in FORMAT specifications)'F','G','I'포맷 지시자의 기본 너비 (Default widths for 'F', 'G' and 'I' format descriptors)- I/O 항목 목록 (I/O item lists)
'Q'지수 문자 (Q exponent-letter)- BOZ 리터럴 상수 (BOZ literal constants)
- 실수 배열 인덱스 (Real array indices)
- 단항 연산자 (Unary operators)
LOGICAL과INTEGER값의 암시적 변환 (Implicitly convert LOGICAL and INTEGER values)- Hollerith 상수 지원 (Hollerith constants support)
- 문자 변환 (Character conversion)
- Cray 포인터 (Cray pointers)
CONVERT지정자 (CONVERT specifier)- OpenMP
- OpenACC
- 인자 목록 함수
%VAL,%REF,%LOC(Argument list functions) - EOF 마커 이후 읽기/쓰기 (Read/Write after EOF marker)
STRUCTURE와RECORDUNION과MAP- 정수 내장 함수의 타입 변형 (Type variants for integer intrinsics)
AUTOMATIC과STATIC속성- 공백으로서의 폼 피드 (Form feed as whitespace)
PRINT의 별칭인TYPE(TYPE as an alias for PRINT)- rvalue로서의
%LOC .XOR.연산자- 비트 논리 연산자 (Bitwise logical operators)
- 확장된 I/O 지정자 (Extended I/O specifiers)
- 옛
PARAMETER문 (Legacy PARAMETER statements) - 기본 지수 (Default exponents)
- 부호 없는 정수 (Unsigned integers)
더 알아보기
- GNU Fortran에서 미구현된 확장 (Extensions not implemented in GNU Fortran): 지원되지 않는 확장과 그것들을 GNU Fortran에서 돌리기 위한 조언이에요.
- GNU Fortran 표준 호환성 (Standards): Fortran 표준별 지원 현황이에요.