Compiler Directives

The following table lists available compiler directives.

Some directives may perform differently on Intel® microprocessors than on non-Intel microprocessors.

Each general directive name is preceded by the prefix cDEC$; for example, cDEC$ ALIAS. Each OpenMP* Fortran directive name is preceded by the prefix c$OMP; for example, c$OMP ATOMIC. The c in either can be a c, C, *, or ! in fixed-form source code; only ! in free-form source code.

General Directives

Name

Description

ALIAS

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

ASSUME_ALIGNED

Specifies that an entity in memory is aligned.

ATTRIBUTES

Applies attributes to variables and procedures.

DECLARE

Generates warning messages for undeclared variables.

DEFINE

Creates a variable whose existence can be tested during conditional compilation.

DISTRIBUTE POINT

Specifies distribution for a DO loop.

ELSE

Marks the beginning of an alternative conditional-compilation block to an IF directive construct.

ELSEIF

Marks the beginning of an alternative conditional-compilation block to an IF directive construct.

ENDIF

Marks the end of a conditional-compilation block.

FIXEDFORMLINESIZE

Sets fixed-form line length. This directive has no effect on freeform code.

FORCEINLINE

Specifies that a routine should be inlined whenever the compiler can do so.

FREEFORM

Uses freeform format for source code.

IDENT

Specifies an identifier for an object module.

IF

Marks the beginning of a conditional-compilation block.

IF DEFINED

Marks the beginning of a conditional-compilation block.

INLINE

Specifies that the routines can be inlined.

INTEGER

Selects default integer size.

IVDEP

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

LOOP COUNT

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

MESSAGE

Sends a character string to the standard output device.

NODECLARE

(Default) Turns off warning messages for undeclared variables.

NOFREEFORM

(Default) Uses standard FORTRAN 77 code formatting column rules.

NOFUSION

Prevents a loop from fusing with adjacent loops.

NOINLINE

Specifies that a routine should not be inlined.

NOPARALLEL

Disables auto-parallelization for an immediately following DO loop.

NOOPTIMIZE

Disables optimizations.

NOPREFETCH

Disables a data prefetch from memory.

NOSTRICT

(Default) Disables a previous STRICT directive.

NOUNROLL

Disables the unrolling of a DO loop.

NOUNROLL_AND_JAM

Disables loop unrolling and jamming.

NOVECTOR

Disables vectorization of a DO loop.

OBJCOMMENT

Specifies a library search path in an object file.

OPTIMIZE

Enables optimizations.

OPTIONS

Controls whether fields in records and data items in common blocks are naturally aligned or packed on arbitrary byte boundaries.

PACK

Specifies the memory starting addresses of derived-type items.

PARALLEL

Enables auto-parallelization for an immediately following DO loop.

PREFETCH

Enables a data prefetch from memory.

PSECT

Modifies certain characteristics of a common block.

REAL

Selects default real size.

SIMD

Controls SIMD vectorization of loops.

STRICT

Disables Intel® Fortran features not in the language standard specified on the command line.

UNDEFINE

Removes a symbolic variable name created with the DEFINE directive.

UNROLL

Tells the compiler's optimizer how many times to unroll a DO loop.

UNROLL_AND_JAM

Enables loop unrolling and jamming.

VECTOR

Controls vectorization of DO loops.

To use the following directives, you must specify compiler option -openmp (Linux* and Mac OS* X) or /Qopenmp (Windows*).

For more information on compiler option -openmp (Linux* and Mac OS* X) and /Qopenmp (Windows*), refer to the option description in the Compiler Options reference.

OpenMP* Fortran Directives

Name

Description

ATOMIC

Specifies that a specific memory location is to be updated dynamically.

BARRIER

Synchronizes all the threads in a team.

CRITICAL

Restricts access for a block of code to only one thread at a time.

DO

Specifies that the iterations of the immediately following DO loop must be executed in parallel.

FLUSH

Specifies synchronization points where the implementation must have a consistent view of memory.

MASTER

Specifies a block of code to be executed by the master thread of the team.

ORDERED

Specifies a block of code to be executed sequentially.

PARALLEL

Defines a parallel region.

PARALLEL DO

Defines a parallel region that contains a single DO directive.

PARALLEL SECTIONS

Defines a parallel region that contains SECTIONS directives.

PARALLEL WORKSHARE

Defines a parallel region that contains a single WORKSHARE directive.

SECTIONS

Specifies a block of code to be divided among threads in a team (a worksharing area).

SINGLE

Specifies a block of code to be executed by only one thread in a team.

TASK

Defines a task region.

TASKWAIT

Specifies a wait on the completion of child tasks generated since the beginning of the current task.

TASKYIELD

Specifies that the current task can be suspended in favor of execution of a different task.

THREADPRIVATE

Makes named common blocks private to a thread but global within the thread.

WORKSHARE

Divides the work of executing a block of statements or constructs into separate units.

最適化に関する注意事項

インテル® コンパイラー、関連ライブラリーおよび関連開発ツールには、インテル製マイクロプロセッサーおよび互換マイクロプロセッサーで利用可能な命令セット (SIMD 命令セットなど) 向けの最適化オプションが含まれているか、あるいはオプションを利用している可能性がありますが、両者では結果が異なります。また、インテル® コンパイラー用の特定のコンパイラー・オプション (インテル® マイクロアーキテクチャーに非固有のオプションを含む) は、インテル製マイクロプロセッサー向けに予約されています。これらのコンパイラー・オプションと関連する命令セットおよび特定のマイクロプロセッサーの詳細は、『インテル® コンパイラー・ユーザー・リファレンス・ガイド』の「コンパイラー・オプション」を参照してください。インテル® コンパイラー製品のライブラリー・ルーチンの多くは、互換マイクロプロセッサーよりもインテル製マイクロプロセッサーでより高度に最適化されます。インテル® コンパイラー製品のコンパイラーとライブラリーは、選択されたオプション、コード、およびその他の要因に基づいてインテル製マイクロプロセッサーおよび互換マイクロプロセッサー向けに最適化されますが、インテル製マイクロプロセッサーにおいてより優れたパフォーマンスが得られる傾向にあります。

インテル® コンパイラー、関連ライブラリーおよび関連開発ツールは、互換マイクロプロセッサー向けには、インテル製マイクロプロセッサー向けと同等レベルの最適化が行われない可能性があります。これには、インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2)、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3) 命令セットに関連する最適化およびその他の最適化が含まれます。インテルでは、インテル製ではないマイクロプロセッサーに対して、最適化の提供、機能、効果を保証していません。本製品のマイクロプロセッサー固有の最適化は、インテル製マイクロプロセッサーでの使用を目的としています。

インテルでは、インテル® コンパイラーおよびライブラリーがインテル製マイクロプロセッサーおよび互換マイクロプロセッサーにおいて、優れたパフォーマンスを引き出すのに役立つ選択肢であると信じておりますが、お客様の要件に最適なコンパイラーを選択いただくよう、他のコンパイラーの評価を行うことを推奨しています。インテルでは、あらゆるコンパイラーやライブラリーで優れたパフォーマンスが引き出され、お客様のビジネスの成功のお役に立ちたいと願っております。お気づきの点がございましたら、お知らせください。

改訂 #20110307

関連情報


このヘルプトピックについてのフィードバックを送信

© 1996-2011 Intel Corporation. 無断での引用、転載を禁じます。