Source Format
For decades, Fortran code was written in fixed source format, with reserved areas for statement labels and indentification fields, caused by the fixed form of Hollerith punch cards. That means, the first six characters of each line are reserved for line numbers, comment identifiers, continuation characters, and so on. Source lines were usually limited to 72 characters.
With Fortran 90, free source format was introduced, which abolished the rigid indentation style and improved readability (tab. 1). Since Fortran 95, fixed source format is declared obsolescent.
-
! f2c.f ! Example in fixed source format. PROGRAM F2C IMPLICIT NONE INTEGER :: I REAL :: C, F PRINT *, ' Fahrenheit Celsius' PRINT *, '--------------------------' ! Output table: DO I = 30, 220, 10 F = REAL(I) C = (5.0 / 9.0) * (F - 32.0) PRINT '(F13.1, F12.3)', F, C END DO END PROGRAM F2C
! f2c.f90 ! Example in free source format. program f2c implicit none integer :: i real :: c, f print *, ' Fahrenheit Celsius' print *, '--------------------------' ! Output table: do i = 30, 220, 10 f = real(i) c = (5.0 / 9.0) * (f - 32.0) print '(f13.1, f12.3)', f, c end do end program f2c
- Table 1: Fortran 95 source code in old upper-case fixed format (left), and modern free format (right)
Modern Fortran compilers provide command-line flags in order to distinguish
between the old fixed format and the modern free format. Use
-ffree-form
to force free format with GNU Fortran:
$ gfortran13 -ffree-form -o f2c f2c.f
Same with Flang:
$ flang -ffree-form -o f2c f2c.f
File Endings
Historically, the file endings of Fortran source files are .f
and .for
. These are associated with Fortran < 90, and therefore
with fixed format. Even modern compilers assume fixed format for them, unless
the free format command-line flag is used.
For this reason, file endings should be used that represent modern Fortran
versions. We can either set endings that correspond with the actual language
version (.f03
for 2003, .f08
for 2008,
.f18
for 2018, and so on) or simply use .f90
as a
default to indicate modern Fortran, with the latter being recommended. Be aware
that you must set the file ending to either .f90
or
.f95
to be recognised by
CMake.
< Editors and IDEs | [Index] | Compilation > |