F/G/I 형식 기술자의 기본 폭(Default widths)
F/G/I 형식 기술자의 기본 폭(Default widths)
옛 코드를 돌리려다 보면 FORMAT 문에서 폭(width)을 생략해 놓은 경우를 만날 때가 있어요. 표준을 엄격히 따르면 이렇게 쓰면 안 되지만, 레거시 코드를 지탱하기 위해 GNU Fortran은 특정 명령 줄 옵션 아래에서 기본 폭을 쓰는 걸 허용해요.
출처: gfortran — Default widths for 'F', 'G' and 'I' format descriptors
본문
레거시 코드를 지원하기 위해, GNU Fortran은 명령 줄에 -fdec-format-defaults를 준 경우에만 형식 명세에서 폭을 생략할 수 있게 해요. 이때 기본 폭(default widths)이 사용돼요. 다만 이는 표준에 맞지 않는(non-conforming) 코드로 간주되며 권장되지 않아요.
예를 들어 폭 없이 쓴 FORMAT 문은 다음과 같아요.
REAL :: value1
INTEGER :: value2
WRITE(*,10) value1, value1, value2
10 FORMAT ('F, G, I')
F, G, I 기술자 뒤에 폭(F10.3처럼)을 붙이지 않았어요. -fdec-format-defaults 옵션이 있어야 이런 형식이 동작하고, 지정한 옵션에 해당하는 기본 폭이 적용돼요.
더 알아보기
- 이 옵션에 대한 자세한 내용은 gfortran 컴파일 옵션에서
-fdec-format-defaults항목을 살펴보세요. - 비슷하게 생략을 다루는 '형식 명세의 마침표 누락(Missing period)' 규칙과 함께 보면 DEC 호환 처리 흐름을 이해하기 쉬워요.