在我们的 Fortran 项目中,我们广泛使用模块,因为我们在 Fortran 2003 中进行面向对象的编程。我们现在有大约 7 个不同级别的对象层次结构。对我们来说,问题是高层的模块和文件需要很长时间才能编译,即使它们只包含几行。
查看创建的文件,我认为可能的原因是正在编写的非常大的 .mod 文件。探索这些文件(例如对于 gfortran 4.6),我可以看到所有递归使用的对象和模块的完整接口都包含在每个高级 .mod 文件中。这些文件在 gfortran 4.9 中要小得多,它们以压缩格式存储,但它们仍然很大并且减慢了编译时间。
我们已经尝试在每个模块中使用私有语句(这样底层使用的模块不能仅通过使用当前模块来查看),但这不会影响生成的 .mod 文件的大小。
是否有任何编程实践或编译器指令可以解决这个问题?