5

私は、さまざまなFortranコンパイラーと連携する必要のあるFortranコードを使用しています(C ++コードとJavaコードの両方と対話しています)。現在、gfortranとg95で動作していますが、ifortで動作させるには何が必要かを調査しています。最初の問題は、ソースコードでifortを使用しているかどうかを判断する方法を見つけることです。いいえ。

たとえば、私は現在次のコードを持っています:

#if defined(__GFORTRAN__)
// Macro to add name-mangling bits to fortran symbols. Currently for gfortran only
#define MODFUNCNAME(mod,fname) __ ## mod ## _MOD_ ## fname
#else
// Macro to add name-mangling bits to fortran symbols. Currently for g95 only
#define MODFUNCNAME(mod,fname) mod ## _MP_ ## fname
#endif // if __GFORTRAN__

ifortのマクロは何ですか?IFORTを試しましたが、それは正しくなく、さらに推測することは生産的ではないようです。ifort -helpまた、、、およびGoogleを使用してmanページを読んでみました。

4

2 に答える 2

9

http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/fortran/win/compiler_f/bldaps_for/common/bldaps_use_presym.htm__INTEL_COMPILERで定義されているように、あなたは後を追っています

于 2010-03-25T21:33:28.740 に答える
2

彼らのドキュメントによると、彼らは__INTEL_COMPILER=910を定義しています。910はバージョン番号である可能性がありますが、おそらく#ifdefだけでかまいません。

/ fppフラグを使用して明示的にオンにしない限り、ifortはマクロを許可しないことに注意してください。

于 2010-03-25T21:36:54.427 に答える