Fortran 哪些文件?哪个子程序?

Fortran 哪些文件?哪个子程序?,fortran,profiling,unused-variables,Fortran,Profiling,Unused Variables,我有一个Fortran项目,包含大约100个文件。所有这些都已编译,但并非所有这些都是运行所必需的。此外,一些文件还混合使用了/未使用的子例程 有没有办法知道运行所需的最小文件/子例程/函数集?有。 从顶层主程序开始 编译/链接它并获取未满足的引用列表 对于每个未满足的引用,添加包含它的文件 重复这两个步骤,直到不再有不满意的引用 这将删除干净生成不需要的所有文件。 是的,这是一个很大的工作。事情并不总是容易的 如果您想知道运行特定输入时不需要什么, 为此,您需要一个覆盖工具,例如。 未使用的例

我有一个Fortran项目,包含大约100个文件。所有这些都已编译,但并非所有这些都是运行所必需的。此外,一些文件还混合使用了/未使用的子例程

有没有办法知道运行所需的最小文件/子例程/函数集?

有。 从顶层主程序开始

编译/链接它并获取未满足的引用列表

对于每个未满足的引用,添加包含它的文件

重复这两个步骤,直到不再有不满意的引用

这将删除干净生成不需要的所有文件。 是的,这是一个很大的工作。事情并不总是容易的

如果您想知道运行特定输入时不需要什么, 为此,您需要一个覆盖工具,例如。 未使用的例程将显示覆盖率计数为0。 如果你真的想摆脱他们,
将它们提取到单独的源文件中,以便您可以排除它们,并确保它们未被调用。

您为什么有兴趣这样做?如果从程序中删除未使用的子例程,您的代码可能不会运行得更快。我正在评估将代码从fortran翻译到c/c++需要多少时间。我想从我需要的最小文件集开始,然后再添加其余文件。您知道一种适用于使用英特尔编译器编译的代码的替代方法吗。不幸的是,我在gfortran中遇到了一些错误,这些错误阻止了编译。“英特尔编译器代码覆盖率工具”在“注意”中进行了描述,但它们没有提到它在多大程度上使用ifort进行了测试。如果您的启动项目状态非常糟糕,以至于无法在gfortran中运行,转换到C++可能是不成熟的。把它移到C意味着更多的人可以工作。如果它起作用,那么就没有理由移动它。除非你精通c语言,否则我相信你会开始专注于让它按原样工作,或者使用Python。@Manfredo:你能用Intel或gfortran编译/链接它吗?如果是,你能运行它吗?你必须到达一垒。