Intel® Fortran Compiler XE 13.1 User and Reference Guides

Using Standard Features and Extensions

Standard Features

Use standard language features to achieve the greatest degree of portability for your Intel Fortran programs. You can design a robust implementation to improve the portability of your program, or you can choose to use extensions to the standard to increase the readability, functionality, and efficiency of your programs.

You can ensure your program enforces a particular Fortran standard by using the -stand (Linux* OS and OS X*) or /stand (Windows* OS) compiler option with the appropriate keyword (f90, f95,f03, or f08) to flag extensions. The none keyword turns off enforcement of a particular Fortran standard. You can also use the following compiler options to set the Fortran standard: -std90 or /std90, -std95 or /std95, -std03 or /std03or -std08 or /std08.

You can use the -standard-semantics (Linux* OS and OS X*) or /standard-semantics (Windows* OS) compiler option to enable all of the options that implement the current Fortran Standard behavior of the compiler.

Standard Extensions

Not all extensions to the Fortran standard cause problems when porting to other platforms. Many extensions are supported on a wide range of platforms, and if a system you are porting a program to supports an extension, there is no reason to avoid using it. There is no guarantee, however, that the same feature on another system will be implemented in the same way as it is in Intel Fortran. Only the Fortran standard is guaranteed to coexist uniformly on all platforms.

Intel® Fortran supports many language extensions on multiple platforms, including Windows, Linux, and OS X operating systems. The Intel® Fortran Language Reference Manual identifies whether each language element is supported on other platforms.

It is a good programming practice to declare any external procedures either in an EXTERNAL statement or in a procedure interface block, for the following reasons:

If you do not explicitly declare the external procedures and the name duplicates an intrinsic procedure, the processor calls the intrinsic procedure, not your external routine. For more information on how the Fortran compiler resolves name definitions, see Resolving Procedure References.

See Also


Submit feedback on this help topic