Fortran 90最棘手的问题之一是缺乏命名空间。在Pete的先前问题“如何使用Fortran 90模块数据”中已经讨论了USE行为类似于Python中的“from module import *”的主要问题:在导入模块的范围内,所有声明为公共的内容都会原样导入。没有前缀。这使得在阅读代码时非常难以理解给定标识符来自哪里,以及是否仍在使用给定模块。
在我上面链接的问题中讨论的一个可能的解决方案是使用ONLY关键字来限制导入的标识符并记录它们来自哪里,尽管当模块非常大时,这非常费时。保持模块小,并始终使用USE:ONLY是解决Fortran 9X中缺乏命名空间和合格前缀的潜在良策。
还有其他(不一定更好的)解决策略吗?Fortran 2k3标准是否对命名空间支持有任何说明?
在我上面链接的问题中讨论的一个可能的解决方案是使用ONLY关键字来限制导入的标识符并记录它们来自哪里,尽管当模块非常大时,这非常费时。保持模块小,并始终使用USE:ONLY是解决Fortran 9X中缺乏命名空间和合格前缀的潜在良策。
还有其他(不一定更好的)解决策略吗?Fortran 2k3标准是否对命名空间支持有任何说明?
Fortran 03
可以在面向对象编程中使用%
https://fortranwiki.org/fortran/show/Object-oriented+programming,有点类似于命名空间::
。 - AlphaF20