Module 列出fortran模块中的所有子例程

Module 列出fortran模块中的所有子例程,module,fortran,Module,Fortran,是否可以从fortran中获取fortran模块中定义的所有函数和例程的列表?例如,在python中,我可以执行以下操作: import math dir(math) 我得到了数学模块中所有名字的列表。我正在用fortran语言寻找类似的东西(不过我没有屏住呼吸)。没有 在“Fortran”之外,一些编译器可以输出符号表,这些符号表可以通过解析来获得这些信息。在某些情况下,编译器通过编译模块生成的mod文件本身可以被解析。还有许多源代码分析工具可以修改。在Fortran 90和更高版本中,可以

是否可以从fortran中获取fortran模块中定义的所有函数和例程的列表?例如,在python中,我可以执行以下操作:

import math
dir(math)
我得到了数学模块中所有名字的列表。我正在用fortran语言寻找类似的东西(不过我没有屏住呼吸)。

没有


在“Fortran”之外,一些编译器可以输出符号表,这些符号表可以通过解析来获得这些信息。在某些情况下,编译器通过编译模块生成的mod文件本身可以被解析。还有许多源代码分析工具可以修改。

在Fortran 90和更高版本中,可以使用语法

函数foo() ... 端函数foo


子例程也是如此。然后可以通过grep查找函数和子例程的名称。

grep subroutine filename.f
?我想您是说从命令行?我想在fortran程序中这样做,这就是我所说的“从fortran内部”的意思。因此,唯一的选择是以某种方式编写解析器?对于您提出的特定问题-是的。这是否是你必须做的,以解决最初的问题,激发你问这个特定的问题是另一回事-我们需要更多关于最初问题的信息…我只是在哲学上思考为什么没有一个纯粹用fortran编写的fortran单元测试框架。例如,我研究了Ruby和RaKeForm的水果,它解析代码并创建一个fortran文件,它将运行所有的测试,FQUnUnt,我认为使用C++解析器和MaMax文件用于相同的目的。