2017-12-19 20 views
2

Fortran 77でC言語で "#pragma GCC optimize(" o3 ")"のような関数固有のオプションプラグマを使用したいとします。 しかし、それを.fコードに適用しないでください。何か案は?gfortranで "プラグマGCC最適化"を使用する

foo.f:

 ... 
    call hoge 
    ... 
    subroutine hoge 

    IMPLICIT REAL*4(a-h,o-z) 
    ... 
end 

hoge.f:

 ... 
    call hoge 
    ... 
!$pragma GCC optimize("O3") 
    subroutine hoge 

    IMPLICIT REAL*4(a-h,o-z) 
    ... 
end 

ターミナル:

$ gfortran -O0 foo.f -o o0 
$ gfortran -O0 hoge.f -o o3 
$ cmp o0 o3 
$ 
+0

すべてのFortran質問について、tag [tag:fortran]を使用してください。そのようなプラグマはFortranでサポートされるべきだと思いますか?マニュアルで見つけましたか?私は彼らがサポートされているとは思わない。 –

+0

返信いただきありがとうございます。レガシーコードを最適化するために、f77の各関数にコンパイラオプションを適用したかったのです。私はそれを行う方法を検索したとき、私はC言語用のプラグマGCC最適化ディレクティブを見つけました。私は同様の方法でf77コードにコンパイラオプションを適用できると思った。 私はfortran77に精通していません。だから、もしアイデアがあれば教えてください。 機能固有のオプションプラグマ(GCC):https://gcc.gnu.org/onlinedocs/gcc/Function-Specific-Option-Pragmas.html#Function-Specific-Option-Pragmas –

+1

珍しい機能や文書化されていない機能を試すときは、 *少なくとも非常に良い理由*を持っていることは良いことです。コンパイラフラグを使用せず、完全なファイルを最適化しないのはなぜですか? –

答えて

0

the manualにおけるこれらのディレクティブについての言及はありません。 Fortranではサポートされていません。たとえそうであったとしても、構文は異なります。 Fortranでは、ディレクティブは!GCC$であり、pragmaではありません。

関連する問題