在特定模块中使用模块(模块的收集器)

时间:2017-11-16 10:32:49

标签: fortran gfortran

这是我的代码:

Program Module_in_module

Use Module_collection

Implicit none

! Something...

End Program Module_in_module

Module Module_collection

Use Number_01
Use Number_02

End Module Module_collection

Module Number_01

Implicit none

! Something......

End Module Number_01

Module Number_02

Use Module_collection

Implicit none

! Something......

End Module Number_02

我打算使用模块Module_collection,就像一个使用项目中所有其余模块的模块一样。例如,如果我想在Module_collection中的某个其他模块中使用,那么来自Use Module_collection项目的所有模块都会收到以下消息: Fatal Error: Can't open module file 'module_collection.mod' for reading at (1): No such file or directory 是否有Only: Some_varable的等效项可用于使用Module_collection排除模块(在项目中使用所有其他模块,但在这种情况下只排除Module Number_02

1 个答案:

答案 0 :(得分:0)

现在你告诉我们

  

我也收到了这样的信息:好像你有一个循环依赖   Fortran文件。检查您的USE或INCLUDE声明。

你的错误很明显。模块module_collection使用模块number_02,模块number_02使用模块module_collection。由于Fortran要求在引用模块之前(在use语句中)编译模块,并且因为存在这种循环依赖性,所以编译器无法继续。

解决循环依赖关系。它的一个集合引用了收集器,这看起来有点奇怪。

我希望这与我还没有找到的另一个问题重复。