Fortran 2008 지원 현황
Fortran 2008 지원 현황
GNU Fortran이 Fortran 2008 표준을 어디까지 구현했는지 정리한 페이지예요. 거의 모든 기능을 지원하지만, 아직 미지원인 몇 가지가 있어요. 어떤 것들이 아직 안 되는지 이 장에서 확인해 보세요.
본문
GNU Fortran 컴파일러는 Fortran 2008의 거의 모든 기능을 지원해요. wiki에 현재 구현 현황에 대한 정보가 있어요. 특히 다음은 아직 지원되지 않아요:
-
DO CONCURRENT와FORALL은 루프 헤더에서 타입 지정(type-spec)을 인식하지 못해요. -
DATA문의 첨자(subscript)와 중첩된 implied-do 한계값(limit)에서 임의 상수 표현식을 허용하도록 바꾼 부분이 아직 구현되지 않았어요.
즉, Fortran 2008 기능을 쓸 때 대부분은 문제없지만, 위 두 가지는 주의가 필요한 부분이에요. DO CONCURRENT나 FORALL 루프 헤더에 타입 지정을 쓰거나, DATA 문에서 첨자·implied-do 한계값에 상수 표현식을 쓰는 코드는 GNU Fortran에서 기대한 대로 동작하지 않을 수 있어요.
정리하면 GNU Fortran은 Fortran 2008의 기능 대부분을 완성했고, 남은 차이는 위와 같은 가장자리(edge) 동작에 집중돼 있어요. Fortran 2008을 목표 표준(-std=f2008)으로 잡고 작업한다면, 흔히 쓰는 병렬·집합 기능부터 최신 내장 함수까지 대부분 그대로 쓸 수 있다고 보면 돼요. 프로젝트에서 위 두 가지 패턴을 쓸 계획이라면 다른 표준 위에서 동작을 우회하거나 위키의 구현 현황을 확인해 보는 걸 권해요.
더 알아보기
- Fortran 2003 지원 현황 (Fortran 2003 status): 이전 Fortran 표준의 구현 현황이에요.
- Fortran 2018 지원 현황 (Fortran 2018 status): 다음 Fortran 표준의 구현 현황이에요.
- GNU Fortran 표준 호환성 (Standards): 여러 Fortran 표준 전반에 대한 GNU Fortran의 지원 개요예요.