我已经在Fortran中编写了一些代码,但对于如何构建更长的代码并没有真正的自信。
我经常想要assumed-shape arrays
。使用interface block
,module
或contains
语句时,这似乎是可行的。但是,在主代码之外使用子例程,而不使用任何这些方法适用于许多情况,但不适用于assumed-shape arrays
。
在哪种情况下,这些方法都是首选,主要区别是什么?
每种方法中变量共享/继承的方式是什么?
答案 0 :(得分:2)
接口块是额外的工作。您必须编写块并在过程更改时对其进行修改。接口块对于诸如使用ISO C绑定工具调用C语言例程之类的目的非常有用。
在主程序中的“contains”下面有一个子程序,其缺点是所有局部变量都是继承的。我认为对于更加孤立的程序来说更好。
模块使程序更加孤立,变量的访问更加清晰 - 除非你过度使用模块变量。此外,它更容易重用其他程序中的模块的程序。