0

書いているコードをコンパイルしようとすると、奇妙なエラーが発生します。線形代数の計算に使用する Fortran モジュールがいくつかあります。アプリケーションでそれらすべてを使用しなければならないようにしたくないので、それらの周りにラッパー モジュールを作成しました。

module linear_algebra_mod
    use sparse_matrix_mod
    use csr_matrix_mod
    (etc.)

エンドユーザーがuse linear_algebra_modそれらすべてを取得するために書き込むことができるようにします。ただし、線形代数モジュールをコンパイルすると、次のエラーが発生します。

gfortran -c sparse_matrix_mod.f90
gfortran -c csr_matrix_mod.f90
gfortran -c linear_algebra_mod.f90
linear_algebra_mod.f90:5.8:

use csr_matrix_mod
    1
Internal Error at (1):
free_pi_tree(): Unresolved fixup

これは、ここここのバグレポートで取り上げられましたが、私が何をすべきかをそれらから収集することができませんでした.

代わりに csr_matrix モジュールを最初に使用すると、次のようになります。

module linear_algebra_mod
    use csr_matrix_mod
    use sparse_matrix_mod

エラーが消えます。

この背景情報が役立つ場合: sparse_matrix モジュールは、csr_matrix モジュールが拡張して実際に実装する抽象データ型を定義します。

4

1 に答える 1

2

内部コンパイラ エラーは、常にコンパイラのバグを示しています。コンパイラの最新バージョンを使用しているかどうかを確認し、最新バージョンを使用している場合は、バグ レポートを提出してください (他の誰かによって既に報告されているかどうかを確認するために、オープン バグ セクションを参照することもできますが、バグが 2 回報告されたのは、1 回も報告されなかった場合よりも 2 回報告されているため、重複したバグ報告を提出する可能性についてあまり心配する必要はありません)。

于 2013-04-14T23:43:25.837 に答える