0

すべてのサブルーチンで SAVE を前提とする Compaq コンパイラを使用して、Fortran 77 で以前に書かれた大きなソフトウェア パッケージがあるため、コード内に明示的な SAVE を持つサブルーチンはありません。

Linuxでgfortranを使用して動作させるには、再利用して変更する必要がありました。Gfortran は実際には f90 コンパイラですが、いくつかの最小限の変更と追加のフラグだけで動作しました。ただし、欠落している SAVE ステートメントに問題があります。一部の共通構造体は保存されていませんが、一部は保存されており、プラットフォーム (Windows/Linux) と gfortran のバージョンに依存しているようです。

フラグ -fno-automatic を試しましたが、一部の COMMON ブロックはまだ保存されていません。man ページにあるように、-fno-automatic は COMMON ブロックには影響しません。

gfortranを使用してすべてのサブルーチンでSAVEを強制するにはどうすればよいですか? すべてのサブルーチンを変更することは避けたいと思います。

ありがとうございました。

4

2 に答える 2

0

コンパイル オプション -fno-automatic を試してください

于 2013-05-23T15:54:43.827 に答える
0

-fno-automatic コンパイラ オプションと、すべての名前付き共通ブロックの名前を含む save ステートメントを使用する必要がある場合があります。共通ブロックの「保存」を参照してください

于 2013-05-23T17:49:44.997 に答える