使用Fortran中的公共/私有语句的首选样式?

use*_*279 4 fortran scope private public

例如:

module m_a
  private
  integer :: x, y
  public :: x
end module m_a

module m_b
  public
  integer :: x, y
  private :: y
end module m_b
Run Code Online (Sandbox Code Playgroud)

显然,变量xy在模块等效范围m_am_b.我的问题是从编程风格的角度来看哪一个更受欢迎?

在Fortran 90/95的大多数教程中,采用了模块样式m_a.但是,对于包含数百个模块的复杂层次结构的大型项目,我注意到sytle的编译时间明显长于m_a样式m_b.

我没有找到类似的主题讨论.也许我public/private在模块层次结构中误用了语句?有什么建议?

M. *_* B. 6

样式m_a是首选,其中默认为私有,并且项目显式声明为public.通过这种方法,程序员可以容易地识别模块导出(公共)哪些项目.使用另一种方法,很难弄清楚这些信息.协助程序员理解模块比编译时更重要.