Fortran Coder

标题: 关于计算值出错,不影响运行问题,补充多图 [打印本页]

作者: SNZB0405    时间: 2015-3-9 20:19
标题: 关于计算值出错,不影响运行问题,补充多图
本帖最后由 SNZB0405 于 2015-3-10 11:15 编辑

这个子函数用来计算X ,Y方向各个节点值。正常来说,应该是x(i=0~16,1) ,x(0~32,2) ,x(0~64,3),x(0~128,4),x(0~256,5)这些值不为0(y数组与x数组类似)。但是实际计算结果却是除了最开始的x(i=0~16,1) ,其他计算出来的结果全是0.
另,在3L 又补充了两张图,这个子函数是用来计算初始值的,所以它计算出错应该跟后续部分程序没有关系。而且这部分代码在计算nx(t),dx(t)时没有错误,就到计算x(i,t),y(j,t)时出现了错误。而且这个错误是它的计算错误,并不影响程序的运行,但是因为它计算的初始值的错误,导致后面的计算结果不正常的。想不通为什么,求助。。。

45.png (18.14 KB, 下载次数: 244)

45.png

43.png (10.3 KB, 下载次数: 237)

43.png

46.png (7.9 KB, 下载次数: 226)

46.png

53.png (6.87 KB, 下载次数: 234)

53.png

作者: 楚香饭    时间: 2015-3-10 10:24
你这样给一些debug的截图,其实对你的问题帮助并不大。
至少我们不知道当时的断点在哪里。
最好是给全部代码+数据。

从代码上看,你可以检查一下 nx(t) 是不是 = 16,也就是说,17就没计算。


作者: SNZB0405    时间: 2015-3-10 10:51
楚香饭 发表于 2015-3-10 10:24
你这样给一些debug的截图,其实对你的问题帮助并不大。
至少我们不知道当时的断点在哪里。
最好是给全部代 ...

嗯。这个子函数计算的是一些初始数据,跟其他的程序部分没有关系,而且这个子函数的运行没有问题,也就是说虽然计算的数据是错的,但是却可以顺利运行。这个nx(t)的值我检查了,应该没有问题,包括利用nx(t)计算dx(t)这步应该也没有问题,dx(t)的值也是正确的。所以我实在想不出来为什么只在计算x(i,t)和y(j,t)的时候会出错。。。
您说的全部数据怎么调出来,然后上传呢?这两张图片都是表示后续的一部分数据,也就是这个x(i,t)和y(j,t)后面都被计算成0了,除了最开始的那16个节点值。。。。

51.png (26.35 KB, 下载次数: 255)

51.png

52.png (26.9 KB, 下载次数: 241)

52.png

作者: 楚香饭    时间: 2015-3-10 11:18
1.全部代码
2.如果有屏幕输入,告诉我应该输入什么。如果有文件输入,上传文件。(这就是我说的全部数据)
3.我觉得你应该多学习一下如何 Debug,我觉得你的问题都可以用 Debug 来观察解决。




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2