在 fortran 中编写模块的正确方法

Proper way to write a module in fortran

假设我有一个模块

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

回答你应该做什么是完全基于意见的,因此是题外话。从技术上讲,两者皆有可能。

我们可以告诉您的是不同之处。如果您在整个模块中使用 module_1,那么在您添加到 module_2 中的任何未来函数或子例程中也可以通过主机关联访问它。它还与使用相关,可用于 module_2 中的所有类型定义和模块变量定义。你可能想要那个,你可能不想要那个。这个决定只取决于你。我当然多次使用过任何一种可能性。

如果您有理由通过仅在函数和子例程中使用 module_1 来限制名称空间污染,请继续这样做。但是原因还得自己评价,没有万能的药方。