Intel® Fortran Compiler Classic and Intel® Fortran Compiler Developer Guide and Reference

ID 767251
Date 7/13/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

General Compiler Directives

Compiler directives are specially formatted comments in the source file which provide information to the compiler. Some directives, such as line length or conditional compilation directives provide the compiler information which is used in interpreting the source file.

Other directives, such as optimization directives provide hints or suggestions to the compiler, which, in some cases, may be ignored or overridden by the compiler based on the heuristics of the optimizer and/or code generator.

You do not need to specify a compiler option to enable general directives. If the directive is ignored by the compiler, no diagnostic message is issued.

The following general compiler directives are available:

  • ALIAS

    Specifies an alternate external name to be used when referring to external subprograms.

  • ASSUME

    Provides heuristic information to the compiler optimizer.

  • ASSUME_ALIGNED

    Specifies that an entity in memory is aligned.

  • ATTRIBUTES

    Specifies properties for data objects and procedures.

  • BLOCK_LOOP and NOBLOCK_LOOP

    Enables or disables loop blocking for the immediately following nested DO loops.

  • DECLARE and NODECLARE

    Generates or disables warnings for variables that have been used but not declared.

  • DEFINE and UNDEFINE

    Defines (or undefines) a symbolic variable whose existence (or value) can be tested during conditional compilation.

  • DISTRIBUTE POINT

    Suggests a location at which a DO loop may be split.

  • FIXEDFORMLINESIZE

    Sets the line length for fixed-form source code.

  • FMA and NOFMA

    Enables (or disables) the compiler to allow generation of fused multiply-add (FMA) instructions, also known as floating-point contractions.

  • FREEFORM and NOFREEFORM

    Specifies free-format or fixed-format source code.

  • IDENT

    Specifies an identifier for an object module.

  • IF and IF DEFINED

    Specifies a conditional compilation construct.

  • INLINE, FORCEINLINE, NOINLINE

    Tell the compiler to perform the specified inlining on routines within statements or DO loops.

  • INTEGER

    Specifies the default integer kind.

  • IVDEP

    Assists the compiler's dependence analysis of iterative DO loops.

  • LOOP COUNT

    Specifies the typical trip count for a DO loop; this assists the optimizer.

  • MESSAGE

    Specifies a character string to be sent to the standard output device during the first compiler pass.

  • NOFUSION

    Prevents a loop from fusing with adjacent loops.

  • OBJCOMMENT

    Specifies a library search path in an object file.

  • OPTIMIZE and NOOPTIMIZE

    Enables or disables optimizations for the program unit.

  • OPTIONS

    Affects data alignment and warnings about data alignment.

  • PACK

    Specifies the memory alignment of derived-type items.

  • PARALLEL and NOPARALLEL

    Facilitates or prevents auto-parallelization by assisting the compiler's dependence analysis of the immediately following DO loop. This feature is only available for ifort.

  • PREFETCH and NOPREFETCH

    Enables or disables hint to the compiler to prefetch data from memory.

  • PSECT

    Modifies certain characteristics of a common block.

  • REAL

    Specifies the default real kind.

  • SIMD

    Requires and controls SIMD vectorization of loops. This feature is only available for ifort.

  • STRICT and NOSTRICT

    Disables or enables language features not found in the language standard specified on the command line.

  • UNROLL and NOUNROLL

    Tells the compiler's optimizer how many times to unroll a DO loop or disables the unrolling of a DO loop.

  • UNROLL_AND_JAM and NOUNROLL_AND_JAM

    Enables or disables loop unrolling and jamming.

  • VECTOR and NOVECTOR

    Overrides default heuristics for vectorization of DO loops.

Product and Performance Information

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.

Notice revision #20201201