将大量变量传递给子程序v / s在子程序中声明变量

时间:2016-08-08 21:06:01

标签: function parameter-passing fortran90 function-declaration

我试图将两个Fortran-90子程序集成到一个主函数中。两个子程序中使用的算法在逻辑上相似但在数组大小上不同(例如,使用4个参数来计算值而不是3等)。

我可以声明数组,在main函数中分配内存并将其作为参数传递给子程序,或让子程序在调用时执行。在前一种情况下,我将最终传递大量的参数,在后一种情况下,我将最终分配和解除分配变量很多次,但在子程序调用期间只传递少量参数。

由于代码可能最终调用子程序数千次,我想确保选择有效的方法来实现我的目标。有人可以对此有所了解吗?

1 个答案:

答案 0 :(得分:0)

如果参数在概念上是链接的,您可以创建一个包含要用作参数的参数的对象(派生数据类型),并将该对象传递给子例程。