acsef 发表于 2013-6-23 16:49:16

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
在新建的工程里面是可以运行的,且是对的,但是放在我自己建立的另外一个比较复杂的工程里运行时,会导致我原来的工程运行不正常,求高手解答。

redplum 发表于 2013-6-23 23:53:57

顶楼主一下

monsoon 发表于 2013-6-24 07:24:19

MY_NSTORF=NSTORF+1改成MY_NSTORF=NSTORF试试?

acsef 发表于 2013-6-24 11:17:43

回复 3# monsoon

不行啊,大概是什么原因造成的。

liaoma010101 发表于 2013-6-24 15:35:04

回复 4# acsef
可能是系统中还有其他的模块中变量用到了存储数组,也就是说指针NSTORF被多次赋值、调用,当你要NSTORF指向自己想要保存的变量X时,其实NSTORF的地址已经被其他变量的调用命令改变了,结果就不再指向变量X。

liaoma010101 发表于 2013-6-24 15:38:55

回复 4# acsef
这样也就解释了,为什么在新建工程中程序可以跑、复杂工程中不行。因为新建工程中没有别的模块变量,而复杂工程中有很多模块用到了存储数组。

mingyu 发表于 2013-6-24 21:23:59

关注一下。

acsef 发表于 2013-6-27 11:20:55

回复 6# liaoma010101


   那要如何对它进行修改呢!

段书记 发表于 2013-12-6 15:10:10

很好,非常有用,谢谢了好东西呀,

gezhi3lee 发表于 2014-8-19 21:25:19

学习了
页: [1]
查看完整版本: pscad中关于保存上一时刻值问题

招聘斑竹