如何在Fortran中编写模块的正确方法。

3
假设我有一个模块:
module module_1
end module module_1

还有一个模块使用了第一个模块。

  • 我是这样编写的(在主要部分中使用模块)
module module_2
use module_1

contains
    function func_1
    end function func_1

    subroutine sub_1
    end subroutine sub_1
end module_2
  • 或者我应该这样写(在每个函数和子程序中使用模块)
module module_2

contains
    function func_1
    use module_1
    end function func_1

    subroutine sub_1
    use module_1
    end subroutine sub_1
end module_2
1个回答

5

回答你应该做什么是很主观的,因此超出了主题范围。从技术上讲,两者都是可能的。

我们可以告诉你的是它们的区别。如果在整个模块中使用module_1,它也将通过主机关联在module_2中添加的任何未来函数或子程序中可访问。它还可以被使用关联并且对于module_2中的所有类型定义和模块变量定义都可用。你可能想要这样做,也可能不想要。决定只取决于你。我肯定已经多次使用过这两种可能性。

如果你有理由仅在函数和子例程中使用module_1来限制名称空间污染,那就继续这样做。但是原因必须由你评估,没有通用的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接