私は、もともと Intel のコンパイラを対象とした大規模な Fortran コードベースを持っています。現在、gfortran でコンパイルする準備をしています。残念ながら、コードには次のような Intel スタイルの前処理ディレクティブが散らばっています。
!DEC$ IF DEFINED (MYDIRECTIVE)
REAL, DIMENSION(:,:,:), ALLOCATABLE :: my_real_var
!DEC$ ENDIF
グーグルとgfortranのドキュメントからわかることから、次のようなCスタイルの前処理以外には、gfortranの内部サポートはありません。
#if defined MYDIRECTIVE
REAL, DIMENSION(:,:,:), ALLOCATABLE :: my_real_var
#endif
他の誰かがこの問題に遭遇し、エレガントな解決策を思いつきましたか? もちろん、コンパイルのためにコードを gfortran に渡す前に、外部のプリプロセッサを呼び出すシェル スクリプトを作成することもできますが、これは私にとって素晴らしい解決策とは思えません。
何かご意見は?ありがとうSO教祖!