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

ID 767251
Date 6/24/2024
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 is an alphabetical list of general compiler directives:

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