クリーンアップしている古いFortranコードがあります。この時点で、各プロシージャについて、ローカルではない変数のリストを取得したいと思います。コードはグローバル変数を使用(悪用)し、グローバル変数への参照をできるだけ多く削除したいと思います。手作業で行うのは面倒なので、これを行うためのコンパイラオプションを探していましたが、まだ何も見つかりませんでした。ポインタはありますか?
ありがとう、アンヘル・デ・ビセンテ
クリーンアップしている古いFortranコードがあります。この時点で、各プロシージャについて、ローカルではない変数のリストを取得したいと思います。コードはグローバル変数を使用(悪用)し、グローバル変数への参照をできるだけ多く削除したいと思います。手作業で行うのは面倒なので、これを行うためのコンパイラオプションを探していましたが、まだ何も見つかりませんでした。ポインタはありますか?
ありがとう、アンヘル・デ・ビセンテ
最初に「implicit none」または同等のコンパイラ オプションを使用します。宣言されていない変数が多すぎないことを願っています。ほとんどのコンパイラには、すべてのプロシージャに「implicit none」を追加する手間を省くオプションがあります。未宣言の変数がない場合は次の手順に進み、そうでない場合は宣言します。宣言されていない変数が多すぎると、うまくいきません。次に、特定の手順で共通ブロックをコメントアウトし、共通ブロックとモジュール使用ステートメントをプルする行を含めます。どの変数が宣言されていないかを確認し、「implicit none」を介して警告を生成します。これにより、共通ブロックとモジュールのどの変数がその手順で実際に使用されているかが明らかになります。
型宣言と変数宣言の両方を含むモジュールがある場合、これは機能しない可能性があります。型と宣言を別々のモジュールに配置して、変数宣言を含むモジュールだけをコメントアウトできるようにする必要がある場合があります。しかし、グローバル変数を悪用する古いコードではそうはいきません。
あなたの痛みが分かります。悲しいことに、私が提供しなければならないのはほぼ同情だけです。最近使用した Fortran コンパイラ (ほとんどすべて、過去 6 年間かそこらで使用したもの) を特定するオプションは見つかりませんでした。
Understanding for FortranやFortran Lintなどのツールは役に立ちますが、費用がかかります。無償で評価版をダウンロードできる場合もあります。
そのようなツールがない場合、私は一般的に次のことを行います。
IMPLICIT NONE
やっているでしょう。