pscad中关于保存上一时刻值问题
大家好,我在pscad中用fortran语言写了一段程序,是关于求整个过程中某一个变量的最大值,程序如下: #STORAGE REAL:1 #LOCAL REAL X#LOCAL REAL Y
#LOCAL INTEGER MY_NSTORF
MY_NSTORF=NSTORF+1
NSTORF=NSTORF+1
IF(TIMEZERO) THEN
STORF(MY_NSTORF)=0
ENDIF
X=STORF(MY_NSTORF)
Y=$CZ
IF(Y>X) THEN
$ZZ=Y
ELSE
$ZZ=X
ENDIF
STORF(MY_NSTORF)=$ZZ
在新建的工程里面是可以运行的,且是对的,但是放在我自己建立的另外一个比较复杂的工程里运行时,会导致我原来的工程运行不正常,求高手解答。 顶楼主一下 MY_NSTORF=NSTORF+1改成MY_NSTORF=NSTORF试试? 回复 3# monsoon
不行啊,大概是什么原因造成的。 回复 4# acsef
可能是系统中还有其他的模块中变量用到了存储数组,也就是说指针NSTORF被多次赋值、调用,当你要NSTORF指向自己想要保存的变量X时,其实NSTORF的地址已经被其他变量的调用命令改变了,结果就不再指向变量X。 回复 4# acsef
这样也就解释了,为什么在新建工程中程序可以跑、复杂工程中不行。因为新建工程中没有别的模块变量,而复杂工程中有很多模块用到了存储数组。 关注一下。 回复 6# liaoma010101
那要如何对它进行修改呢! 很好,非常有用,谢谢了好东西呀, 学习了
页:
[1]