我对 Fortran 非常陌生,所以请原谅对这个问题的任何无知。无论如何,我正在优化一些模拟软件。
为了更清楚,我正在编辑的子程序在开始时初始化了一些静态变量,无论开始条件是什么,它们都应该是相同的。
问题是我有另一段代码在它的每个时间步骤中调用这个子例程,重新初始化数百个变量,这应该保持不变。为了解决这个问题,我创建了一个派生类型,其中包括程序中其他模块的所有这些变量,并且我正在编辑软件以初始化派生类型变量而不是模块变量,以便我可以跨不同的时间步进行引用。
我的问题是,我是否在做不必要的工作。如果我只是将所有初始化内容放入主程序之外的子例程中,然后在编译时将它们链接起来,那么所有变量是否会在函数调用中保留它们的值。