Fortran编译器/查看器让您看到给定模块的依赖关系

问题描述:

我正在使用PowerGREP查找模块和Fortran代码模块变量的所有依赖关系,但它不是一个理想化的接口。任何人都可以为此提出任何其他工具吗?Fortran编译器/查看器让您看到给定模块的依赖关系

例如,我希望看到每个使用day标签的类型的.f90文件(请参见下面的代码)。

我使用的是Windows 7,但也可以随意提及任何适用于Linux的东西。

! $Id: ESMF_DateMod.F,v 1.1.6.1 2002/04/24 03:25:46 erik Exp $ 
module ESMF_DateMod 
!=============================================================================== 
!BOP 
! !MODULE: ESMF_DateMod 
! 
! !USES: 
use ESMF_TODMod 
use ESMF_CalendarMod 
use ESMF_TimeMod 
! 
! !PUBLIC TYPES: 
type ESMF_Date 
private 
sequence 
type(ESMF_Calendar) calendar 
integer(8) year 
integer(8) month 
integer(8) day 
type(ESMF_TOD) tod 
integer(8) julianDay 
integer(8) dayOfYear 
end type ESMF_Date 
+0

投票将此移动到*(它属于)。 – Rook

不是一个编译器,但有SciTools Understand,支持多国语言,Fortran语言包括(他们也与时并进的对于最新的标准)。如果我正确地理解你的问题,它就是一种专门用于这种分析的工具。

+0

酷 - 谢谢!是的,我不需要编译器 - 只是一个查看器。我现在正在尝试它,但完整的计划成本为995美元。 =/ – InquilineKea

+1

@InquilineKea - 我曾经使用一个旧版本(不知道哪一个,但它是5年前,所以我可以冒险猜测)和重写/维护大型项目它是一个救生员(现代化F77/90更现代化形式的f2003 + intel的编译器扩展以及添加一些功能)。我们在办公室有几个执照,这是非常值得的价格。诚然,对个人需求来说价格有点高,但现在的软件价格不是什么?而如果商业模式稳固,软件工具的价格通常难以证明是合理的。 – Rook

+0

如果你的代码库不是太大,你可以手工完成这种工作(把自己的一张纸拿出来,然后逐字地将其画下来)。 – Rook

A UNIX and Linux Forums post建议ftnchek,这可能不是用户最友好的方式来完成这项任务,但有免费的优势。

+0

另外,有点过时了。它不支持现代Fortran功能;好吧,至少它没有我最后一次尝试它;而上述显然是新口味之一。不过+1,因为它在这里很好,至少可以作为那些使用f77代码的人员的参考。 – Rook

+0

哦 - 非常感谢!我认为我的代码是f90,但我会更多地考虑它。 – InquilineKea

+1

@InquilineKea - 您的代码绝对是f90多种或更新(取决于您使用的功能)。提示:MODULE – Rook

我对此有点迟,但我会推荐doxygen,它会自动从源代码生成文档。有关更多信息,请参阅graphs and diagrams的doxygen文档,以及的生成输出示例(请注意,此示例演示了一些C++类之间的关系,但可以为Fortran程序中的函数和子例程绘制相同的图表)。

请注意,时间答案类似于我的以前的答案,它可以在这里找到:How can I visualize Fortran (90 or later) source code, e.g. using Graphviz?这个答案包含更多关于配置doxygen的信息。