FORTRAN在函数调用之间擦除arg值?

时间:2010-12-14 18:39:48

标签: arguments fortran scope

太奇怪了。 FORTRAN是否要求变量在作为参数发送后重新初始化?每当我将相同的参数发送到另一个子例程时,我就会遇到分段错误。我发现在第一个调用和第二个调用之间擦除了参数值,在函数调用之间或者在任一函数中都没有重新赋值语句。这些参数的范围仅限于主程序(我没有使用任何COMMON块)。

我现在无法发布代码,因为我是通过手机写的,但有什么想法?临时解决方法是在调用第二个函数之前重新分配值。

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

Fortran通过引用传递参数,因此如果您在第一个子例程中修改它们,它们将在调用者中更改。

答案 1 :(得分:3)

当Fortran在子例程调用中用作参数时,没有任何变量。

但是,通过引用传递的参数可以通过被调用的子例程更改其值。

尝试在第二次调用之前打印变量。看看第一个子程序如何使用参数。

仅仅是我的0.02价值 - 自从我查看Fortran(IV)以来已有几十年了。