I\'ve written a small snippet of code, trying to adhere to the Fortran 2003 standard. The code is available on github.
This is my makefile:
FC = gfor
There is nothing in the standard that specifies the suffix of the files. Intel always stated, that they treat *.f90
as the suffix for the free source format irrespective of the standard version. It is just a convention not based on any standard document.
Maybe the f90
suffix is little unfortunate, looking like just for Fortran 90, but you shouldn't hesitate to use it for every free-format source file.
Personally, I also do not like the practice of .f95
,.f03
, .f08
files. Should I rename the source file just because I call some intrinsic from a newer standard?
You can specify the source form used in a source file using the -free and -fixed ifort command line options, for free and fixed form respectively.
As a separate issue, you can set the standard to issue diagnostics against using the -stand[:xxx] option. This doesn't change the code generated by the compiler, it just changes the diagnostics that the compiler issues. This is the equivalent of gfortran's -std=xxx option.
As another separate issue, you can specify that the compiler should change its behaviour to match that specified using the Fortran standard using the -standard-semantics compiler option. This covers scenarios where the compiler's behaviour historically was different from what the Fortran standard has ended up requiring or recommending.
As recommended in the comments and Vladimir's answer - the easiest option is to just use .f90 for any free form source file (which will be treated as free form source by ifort in the absence of the -fixed command line option), regardless of the standard that it has been written to.