Fortran 使用包含、接口、模块或单独的子例程?
我已经用Fortran编写了一些代码,但对如何构造更长的代码没有信心 我经常想要Fortran 使用包含、接口、模块或单独的子例程?,fortran,fortran90,gfortran,f2py,Fortran,Fortran90,Gfortran,F2py,我已经用Fortran编写了一些代码,但对如何构造更长的代码没有信心 我经常想要假定形状数组。当使用接口块、模块或包含语句时,这似乎是可能的。但是,将子例程置于主代码之外,而不使用任何这些方法在许多情况下都有效,但对于假定形状数组 在什么情况下,每种方法都是首选的,主要区别是什么 在每种方法中,变量是以何种方式共享/继承的?接口块是额外的工作。您必须编写程序块,并在程序更改时对其进行修改。接口块对于使用ISO C绑定工具调用C语言例程等用途非常有用 在主程序的“contains”下有一个子例程的
假定形状数组
。当使用接口块
、模块
或包含
语句时,这似乎是可能的。但是,将子例程置于主代码之外,而不使用任何这些方法在许多情况下都有效,但对于假定形状数组
在什么情况下,每种方法都是首选的,主要区别是什么
在每种方法中,变量是以何种方式共享/继承的?接口块是额外的工作。您必须编写程序块,并在程序更改时对其进行修改。接口块对于使用ISO C绑定工具调用C语言例程等用途非常有用 在主程序的“contains”下有一个子例程的缺点是所有局部变量都是继承的。我认为程序应该更加孤立
模块使过程更加隔离,变量的访问更加清晰——除非您过度使用模块变量。此外,重用其他程序中模块的过程更容易。最后一点是另一个问题,请在其他地方询问。但首先搜索,这里还有其他问题。我删除了最后一个问题。是的,“副本”中的答案很有帮助!但是我没有找到我使用的关键词。一定程度的重复是好的,因为它可以帮助人们在不同措辞的问题中找到答案,所以不用担心。关键是,在这里抄袭另一个问题的答案是毫无意义的。试着在你的帖子里只写一个问题(见过于宽泛的结尾)。继承也可能是一个单独的问题。当涉及到访问变量时,它发生在主机关联中。
中包含的任何内容都可以访问主机的变量。模块过程可以访问模块变量,内部过程可以访问宿主程序或宿主过程。因此包含的语句后面的子例程不会相互继承变量吗?我可以安全地在同一包含的块中的子例程中使用重叠的变量名集,无论它是在主代码中还是在模块中?或者被调用方是从调用子例程继承的吗?例如,如果您必须回答与答案中基本相同的单词,则表明它可能是重复的。