このオプションは .F、.F90、.F95、および .F03 ソースファイルだけに適用します。
-Dname=def name が値 def を持つものと定義します。
-Dname name を 1 と定義します。
このオプションはコマンド行で name を、
#define name[=def]
とソースファイルに記述されている場合のように定義します。= def の指定がないと、シンボル名 name は値 1 として定義されます。マイクロシンボル name はプリプロセッサ fpp (または cpp。-xpp オプションを参照)に渡されて展開されます。
事前定義されたマクロシンボルの前には 2 つの下線を付けます。Fortran 構文には事前定義されたマクロの実際の値は使用できません。事前定義されたマクロは、fpp か cpp のプリプロセッサ指令内だけで使用してください (初めに付く 2 つの下線に注意)。
製品バージョンは、_ _SUNPRO_F90、および _ _SUNPRO_F95 に 16 進数で事前定義されています。たとえば、_ _SUNPRO_F95 は、Sun Studio 12 release では 0x830 です。
次のマクロは、該当するシステム上でそれぞれ事前定義されています。
_ _sparc、_ _unix、_ _sun、_ _SVR4、__i386、_ _SunOS_5_6、_ _SunOS_5_7、_ _SunOS_5_8、_ _SunOS_5_9、_ _SunOS_5_10
たとえば、SPARC システム上では、_ _sparc 値が定義されています。
sparc、unix、sun は、下線なしで事前定義されていますが、将来のリリースで削除される可能性があります。
SPARC V9 システムでは、_ _sparcv9 マクロも定義されています。
64 ビット x86 システムでは、__amd64 および __x86_64 マクロが定義されています。
コンパイラが作成した定義を表示するには、冗長メッセージオプション (-v) を付けてコンパイルします。
これらの値は、次のようなプリプロセッサ条件で使用することができます。
#ifdef _ _sparc
f95 は、デフォルトで fpp(1) プリプロセッサを使用します。C プリプロセッサ cpp(1) と同様に、fpp はソースコードマクロを展開して、コードを条件付きでコンパイルすることができます。ただし、cpp とは異なり、fpp は Fortran 構文を理解できるので、Fortran プリプロセッサとしてはこちらを使用することをお勧めします。-xpp=cpp フラグを使用すると、コンパイラは fpp ではなく cpp を使用します。