如何在每次调用子程序时将所有变量设置为零?

时间:2014-11-11 13:35:03

标签: fortran subroutine

是否有一些简单的方法可以在Fortran子程序中启动变量组?像 DATA 之类的东西,但每次调用子程序时都会工作。或者唯一的解决方案是对所有变量使用x = 0.0

2 个答案:

答案 0 :(得分:2)

是的,要设置变量的值,请使用赋值(=)。

您可以创建派生类型和用户定义的分配以简化语法。

答案 1 :(得分:0)

我还需要在子程序的开头归零几个变量,这个变量被多次调用。我只是将变量声明中使用的文本复制到代码编辑器中的空白新文件中,并使用“查找和替换”将所有,替换为=0;=0.0DE0; 这是一个例子:

Double precision AP(nPor), ACCor(nThr,4), ...

将所有(nPor),(nThr,4),替换为=0.0D0;

AP=0.0D0; ACCor=0.0D0;

然后将所有变量迅速设置为零。我只是没有设法使用像(*),这样的通配符来节省时间来查看变量中使用的每种类型的参数。

如果这种转变完全不适合,你可以尝试避免子程序中的SAVE属性,如Does fortran preserve the value of internal variables through function and subroutines中提到的