2012-08-15 84 views
3

我剛剛閱讀了有關在Fortran中使用模塊的正確方法的非常好的問題/回答here。通過在模塊中編寫子例程,除了闡明代碼之外,還可以使它們變得明確。多個文件中的單個Fortran模塊

據我所知,一個模塊必須放在一個文件中,例如「mod_exemple.f90」。 我寫的程序通常很長,有很多子程序可以按目的進行排序,因此可以放在模塊中。問題:那會做非常長模塊文件,數百行。

你可以在多個文件上分割一個模塊嗎?建議嗎?爲什麼?你有其他建議,分裂?

回答

8

我會冒昧地將一個模塊分割成多個文件,這不是標準的練習,我會發現比所有相關的例程都在同一個文件中更難以閱讀/理解。如果你的模塊太大,我強烈建議重新思考模塊的邏輯,看看你是否不能將常用代碼和實用程序分解到它們自己的模塊中。無論您的相關代碼是否分佈在多個文件中,您都可以獲得有據可查的良好格式的單個文件模塊源代碼,無論需要多少行,都是最佳解決方案。

+3

我同意。我還評論說,對於我們中的一些人來說,一個有100行代碼的模塊不是'**非常長'。 1000年可能有資格獲得該榮譽。 – 2012-08-15 10:42:39

1

是的,你可以,但你必須使用include,或CPP的#include,或子,未得到廣泛支持2003 Fortran語言的特點

如果長期logicaly獨立的單元在同一落得文件出於某種原因(例如子模塊尚不可用),我沒有看到使用單獨文件和include這些文件有什麼不好。

+2

準確的子模塊不是Fortran 2003的一部分。它們首先在技術報告ISO/IEC TR 19767:2005(E)中定義,該標準捲入Fortran 2008標準。無論如何,它們還沒有被廣泛實施。 – 2012-08-15 09:58:11

+0

你是對的,但他們通常被認爲與Fortran 2003相連(它們是Fortran 95/2003的一部分,例如解釋),與可分配的派生類型組件連接到Fortran 95相同。 – 2012-08-15 10:20:44