Preprocessor symbols (macros) let you substitute values in a program before it is compiled. The substitution is performed in the preprocessing phase.
Some preprocessor symbols are predefined by the compiler system and are available to compiler directives and fpp. If you want to use others, you need to specify them on the command line.
The predefined preprocessor symbols available for the Intel® Fortran compiler are described in the table below. The Default column describes whether the preprocessor symbol is enabled (on) or disabled (off) by default.
Symbol Name |
Default |
IA-32, Intel® EM64T, Itanium®-based? |
Description |
__INTEL_COMPILER=n |
On, n=900 |
All |
Identifies the Intel Fortran Compiler |
__INTEL_COMPILER_BUILD_DATE |
|
All |
Identifies the Intel Fortran Compiler build date |
__linux__ |
|
All |
Defined at the start of compilation |
__i386__ |
|
IA-32 |
Identifies the architecture for the target hardware for which programs are being compiled |
__ia64__ |
|
Itanium® |
Identifies the architecture for the target hardware for which programs are being compiled |
__x86_64 |
|
Intel® EM64T |
Identifies the architecture for the target hardware for which programs are being compiled. |
_OPENMP=n |
n=200011 |
All |
Takes the form YYYYMM, where YYYY is the year and MM is the month of the OpenMP Fortran specification supported. This preprocessor symbol can be used in both fpp and the Fortran compiler conditional compilation. It is available only when -openmp is specified. |
_PGO_INSTRUMENT |
Off |
All |
Defined when -prof_gen is specified. |
You can use the -D option to define the symbol names to be used during preprocessing. This option performs the same function as the #define preprocessor directive.
Preprocessing replaces every occurrence of the defined symbol name with the specified value.
For more information, see the following topic:
-D compiler option
You can use the -U option to suppress an automatic definition of a preprocessor symbol. This option suppresses any symbol definition currently in effect for the specified name. The -U option performs the same function as an #undef preprocessor directive.
For more information, see the following topic:
-U compiler option