【问题标题】:Single fortran module in multiple files多个文件中的单个 fortran 模块
【发布时间】:2012-08-15 09:37:56
【问题描述】:

我刚刚阅读了关于在 Fortran 中使用模块的正确方法的非常好的问题/答案here。通过在模块中编写子例程,可以使它们明确化,同时使代码更清晰。

据我所知,一个模块必须放在一个文件中,例如“mod_exemple.f90”。 我写的程序通常很长,有很多子程序,它们确实可以按目的排序,因此可以放在模块中。问题:这会产生非常长的模块文件,有数百行。

您可以将一个模块拆分为多个文件吗?是否建议?为什么?你有其他的拆分建议吗?

【问题讨论】:

    标签: file module fortran explicit-interface


    【解决方案1】:

    我会避免将一个模块拆分为多个文件,这不是标准的做法,我会发现比所有相关例程都在同一个文件中更难阅读/理解。如果您的模块太大,那么我强烈建议您重新考虑模块的逻辑,看看您是否不能将通用代码和实用程序例程分解到它们自己的模块中。最好的解决方案是最好的解决方案,而不是让您的相关代码分布在多个文件中,而不管需要多少行。

    【讨论】:

    • 我同意。我还评论说,对我们中的一些人来说,一个有 100 行的模块并不是“非常”。 1000 人可能有资格获得该荣誉。
    【解决方案2】:

    是的,您可以,但您必须使用 include,或 cpp 的 #include,或子模块,这些都不是 Fortran 2003 广泛支持的功能。

    如果由于某种原因(例如,子模块尚不可用),长且逻辑上独立的单元必须在同一个文件中结束,我认为使用单独的文件和include它们没有什么不好的。

    【讨论】:

    • 准确地说,子模块不是 Fortran 2003 的一部分。它们最初是在技术报告 ISO/IEC TR 19767:2005(E) 中定义的,该报告被汇总到 Fortran 2008 标准中。不管怎样,它们仍未得到广泛实施。
    • 你是对的,但它们通常被认为与 Fortran 2003 连接(例如,它们是 Fortran 95/2003 书中解释的一部分)与可分配派生类型组件连接到 Fortran 95 的方式相同.
    猜你喜欢
    • 2018-07-13
    • 2013-11-22
    • 2015-03-08
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    相关资源
    最近更新 更多