2011-09-03 84 views
2

我正在使用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

投票將此移動到StackOverflow(它屬於)。 – Rook

回答

2

不是一個編譯器,但有SciTools Understand,支持多國語言,Fortran語言包括(他們也與時並進的對於最新的標準)。如果我正確地理解你的問題,它就是一種專門用於這種分析的工具。

+0

酷 - 謝謝!是的,我不需要編譯器 - 只是一個查看器。我現在正在嘗試它,但完整的計劃成本爲995美元。 =/ – InquilineKea

+1

@InquilineKea - 我曾經使用一箇舊版本(不知道哪一個,但它是5年前,所以我可以冒險猜測)和重寫/維護大型項目它是一個救生員(現代化F77/90更現代化形式的f2003 + intel的編譯器擴展以及添加一些功能)。我們在辦公室有幾個執照,這是非常值得的價格。誠然,對個人需求來說價格有點高,但現在的軟件價格不是什麼?而如果商業模式穩固,軟件工具的價格通常難以證明是合理的。 – Rook

+0

如果你的代碼庫不是太大,你可以手工完成這種工作(把自己的一張紙拿出來,然後逐字地將其畫下來)。 – Rook

2

A UNIX and Linux Forums post建議ftnchek,這可能不是用戶最友好的方式來完成這項任務,但有免費的優勢。

+0

另外,有點過時了。它不支持現代Fortran功能;好吧,至少它沒有我最後一次嘗試它;而上述顯然是新口味之一。不過+1,因爲它在這裏很好,至少可以作爲那些使用f77代碼的人員的參考。 – Rook

+0

哦 - 非常感謝!我認爲我的代碼是f90,但我會更多地考慮它。 – InquilineKea

+1

@InquilineKea - 您的代碼絕對是f90多種或更新(取決於您使用的功能)。提示:MODULE – Rook

1

我對此有點遲,但我會推薦doxygen,它會自動從源代碼生成文檔。有關更多信息,請參閱graphs and diagrams的doxygen文檔,以及的生成輸出示例(請注意,此示例演示了一些C++類之間的關係,但可以爲Fortran程序中的函數和子例程繪製相同的圖表)。

請注意,時間答案類似於我的以前的答案,它可以在這裏找到:How can I visualize Fortran (90 or later) source code, e.g. using Graphviz?這個答案包含更多關於配置doxygen的信息。