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

内部编译器错误始终表明编译器中存在错误。检查您是否拥有最新版本的编译器,如果有,请提交错误报告(您可以查看打开的错误部分以查看是否已被其他人报告,但最好有一个错误报告了两次而不是根本没有报告,所以不要太担心可能会提交重复的错误报告)。

于 2013-04-14T23:43:25.837 回答