Fortran 2008 지원 현황

Fortran 2008 지원 현황

GNU Fortran이 Fortran 2008 표준을 어디까지 구현했는지 정리한 페이지예요. 거의 모든 기능을 지원하지만, 아직 미지원인 몇 가지가 있어요. 어떤 것들이 아직 안 되는지 이 장에서 확인해 보세요.

출처: Fortran 2008 status (The GNU Fortran Compiler)

본문

GNU Fortran 컴파일러는 Fortran 2008의 거의 모든 기능을 지원해요. wiki에 현재 구현 현황에 대한 정보가 있어요. 특히 다음은 아직 지원되지 않아요:

  • DO CONCURRENTFORALL은 루프 헤더에서 타입 지정(type-spec)을 인식하지 못해요.

  • DATA 문의 첨자(subscript)와 중첩된 implied-do 한계값(limit)에서 임의 상수 표현식을 허용하도록 바꾼 부분이 아직 구현되지 않았어요.

즉, Fortran 2008 기능을 쓸 때 대부분은 문제없지만, 위 두 가지는 주의가 필요한 부분이에요. DO CONCURRENTFORALL 루프 헤더에 타입 지정을 쓰거나, DATA 문에서 첨자·implied-do 한계값에 상수 표현식을 쓰는 코드는 GNU Fortran에서 기대한 대로 동작하지 않을 수 있어요.

정리하면 GNU Fortran은 Fortran 2008의 기능 대부분을 완성했고, 남은 차이는 위와 같은 가장자리(edge) 동작에 집중돼 있어요. Fortran 2008을 목표 표준(-std=f2008)으로 잡고 작업한다면, 흔히 쓰는 병렬·집합 기능부터 최신 내장 함수까지 대부분 그대로 쓸 수 있다고 보면 돼요. 프로젝트에서 위 두 가지 패턴을 쓸 계획이라면 다른 표준 위에서 동작을 우회하거나 위키의 구현 현황을 확인해 보는 걸 권해요.

더 알아보기