2016-09-30 29 views
1

我在Fortran中编写了一些代码,但对如何构造更长的代码没有真正的信心。使用包含,接口,模块还是单独的子例程?

我经常想要assumed-shape arrays。当使用interface blockmodulecontains陈述时,这似乎是可能的。但是,在主代码外部使用子程序时,如果不使用这些方法中的任何一种,则适用于许多情况,但不适用于assumed-shape arrays

在什么情况下,这些方法都是首选,哪些是主要区别?

在每种方法中共享/继承变量的方式是什么?

+0

你最后一点是一个单独的问题,在别的地方询问它。但首先要搜索一下,这里有关于这个的其他问题。 –

+0

我删除了最后一个问题。是的,在“重复”中的答案是有帮助的!但是我没有用我用过的关键词来找到它。 –

+0

某些级别的重复是很好的,因为它可以帮助人们在不同的措辞中找到他们的答案,所以不用担心。重点是在这里复制另一个问题的答案是毫无意义的。 –

回答

1

接口块是额外的工作。您必须编写该程序块并在程序更改时对其进行修改。接口块适用于诸如使用ISO C绑定工具调用C语言例程的目的。

在主程序的“contains”下有一个子例程有一个缺点,就是所有的局部变量都被继承了。我认为程序更加孤立是更好的选择。

模块使程序更加独立,变量的访问更清晰 - 除非您过度使用模块变量。另外,它更容易重用其他程序中模块的过程。

+0

因此'contains'语句之后的子例程不会相互继承变量?我可以安全地在同一'contains'块中的子例程中使用重叠的变量名集,无论它是在主代码还是在模块中?或者,被调用者是否从调用子例程继承,例如? –

+0

如果您必须回答基本上与答案中相同的单词,则表明它可能是重复的。 –

相关问题