Defining Macros, -D, -U and -A

You can use the -D option to define the assertion and macro names to be used during preprocessing. The -U option directs the preprocessor to suppress an automatic definition of a macro.

Use the -D option to define a macro. This option performs the same function as the #define preprocessor directive. The format of this option is -Dname[=value({#|text})] where

name

The name of the macro to define.

value[={#|text}]

Indicates a value to be substituted for name.

If you do not enter a value, name is set to 1. The value should be in quotation marks if it contains non-alphanumerics.

Preprocessing replaces every occurrence of name   with the specified value. For example, to define a macro called SIZE with the value 100 use the following command:

IA-32 applications:

prompt>ifc -DSIZE=100 prog1.f

Itanium(TM)-based applications:

prompt>efc -DSIZE=100 prog1.f

Preprocessing replaces all occurrences of SIZE with the specified value before passing the preprocessed source code to the compiler. Suppose the program contains the declaration:

REAL  VECTOR(SIZE)

In the code sent to the compiler, the value 100 replaces SIZE in this declaration, and in every other occurrence of the name SIZE.

Use the -Uname option to suppress any macro definition currently in effect for the specified name. The -U option performs the same function as an #undef preprocessor directive.

To remove all of the predefined macros, use the -A option. Note that the -A- option issues a warning if OpenMP function does not work correctly.

Predefined Macros

The predefined macros available for the Intel® Fortran Compiler are described in the table below. The Default column describes whether the macro is enabled (ON) or disabled (OFF) by default. The Disable column lists the option which disables the macro.

Macro Name

Default

Disable

Description - When Used

IA-32 and Itanium compilers

_MT

OFF

_u

Defined if you specify -MD or -MT

 

 

_M_IX86=n

 

 

ON,n=600

 

 

_u

Defined based on the processor option you specify:

n=500 if you specify -tpp5

n=600 if you specify -tpp6

n=700 if you specify -tpp7

IA-32

__linux__

ON

_u

Defined for Linux applications

__IFC

ON

no

Identifies the Intel Fortran Compiler

Itanium compiler

_M_IA64_linux

ON

_u

Defined for Itanium-based Linux applications

__EFC

ON

no

Identifies the Intel Fortran Compiler