Fortran模块程序在模块外部

时间:2012-09-14 11:29:50

标签: module fortran

我在谷歌找不到任何东西,所以......

我尝试使用Fortran 90的所有面向对象的功能,并为某些特定的工作创建模块(比如C ++中的类)。我写过这样的话:

module test

integer, PRIVATE :: dummy
PUBLIC :: sub

contains 

subroutine sub()
dummy = 1
end subroutine sub

end module test

但是,我有大约10个这样的子程序,将它们全部放在一个文件中是非常糟糕的。是否有可能告诉编译器,sub是模块子例程,但是将它放在另一个文件中?因为,看起来这个代码只有在我定义sub的主体时才会被编译。

1 个答案:

答案 0 :(得分:1)

有可能。我不知道它是否好,但它是可能的。您可以使用include "filename"或使用预处理器#include "filename"

这样,您可以在include语句的位置包含来自任何其他文件的文本。但这是有争议的,如果它是一个积极的事情,因为一个文件中的10个程序通常不是太多,如果它们不是很长(并且你可能应该更改它们)。

(我必须要小心,上次我提到包含可能是因为不喜欢它的人强烈反对。)

另请注意,Fortran 2003带来了更多面向对象,包括类型绑定过程,如果您需要更多对象实例,则可能值得考虑。