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