Fortran Coder

标题: 请问迭代结果都是NaN是啥原因 [打印本页]

作者: 旅人    时间: 2021-3-8 22:00
标题: 请问迭代结果都是NaN是啥原因
有没有大佬帮看看,我写这代码最终输出结果如图所示,都是NaN,这是啥原因,新手上路,请多指教

7PR$O~QZ9TL}G48OK{_)6JR.png (61.67 KB, 下载次数: 511)

输出结果

输出结果

陈亮3.8.1.f90

14.45 KB, 下载次数: 4


作者: necrohan    时间: 2021-3-8 23:03
pshr2=0,导致
flowep(1)=(sqrt(2.0)/3.0)*(1/sqrt(pshr2))*(2*pstrain(1)-pstrain(2)-pstrain(3))
这里有问题
作者: 旅人    时间: 2021-3-9 10:50
necrohan 发表于 2021-3-8 23:03
pshr2=0,导致
flowep(1)=(sqrt(2.0)/3.0)*(1/sqrt(pshr2))*(2*pstrain(1)-pstrain(2)-pstrain(3))
这里有 ...

谢谢大佬,我先去看看
作者: 旅人    时间: 2021-3-11 10:38
necrohan 发表于 2021-3-8 23:03
pshr2=0,导致
flowep(1)=(sqrt(2.0)/3.0)*(1/sqrt(pshr2))*(2*pstrain(1)-pstrain(2)-pstrain(3))
这里有 ...

大佬,我把这个公式换了之后,这个循环能进行一部分了,但是后面还是出现NaN,可能又有公式出现了问题,最近我看了下单步调试,但没咋看懂,请问这个断点的设置有什么规则么,怎么知道应该在哪设置断点?

(8]9~B}OIIPAX`82R4FDL87.png (132.3 KB, 下载次数: 451)

(8]9~B}OIIPAX`82R4FDL87.png

陈亮程序3.10.1.f90

13.89 KB, 下载次数: 1


作者: kellsi    时间: 2021-3-11 11:13
中间计算的数太大了,超过了显示范围,我之前计算的结果有出现过这样的情况
作者: 旅人    时间: 2021-3-11 12:03
kellsi 发表于 2021-3-11 11:13
中间计算的数太大了,超过了显示范围,我之前计算的结果有出现过这样的情况 ...

可能逻辑出现了点问题 这个本来都是小数点后几位的数 突然变成了个位数,大哥你之前咋解决的
作者: kellsi    时间: 2021-3-11 15:45
旅人 发表于 2021-3-11 12:03
可能逻辑出现了点问题 这个本来都是小数点后几位的数 突然变成了个位数,大哥你之前咋解决的 ...

如果是做案例的话,先把带入计算值设置成一个合理的小值去验算整个程序的代码对不对,之后再调整这个数值到正常值
作者: 旅人    时间: 2021-3-11 18:45
kellsi 发表于 2021-3-11 15:45
如果是做案例的话,先把带入计算值设置成一个合理的小值去验算整个程序的代码对不对,之后再调整这个数值 ...

这是按一篇论文里面的计算流程来搞的,找不到论文原来的代码,只有论文里的图来参考一下最终的数据结果,我太难了
作者: necrohan    时间: 2021-3-11 20:47
旅人 发表于 2021-3-11 18:45
这是按一篇论文里面的计算流程来搞的,找不到论文原来的代码,只有论文里的图来参考一下最终的数据结果, ...

逻辑问题,不是专业的,爱莫能助
作者: party-    时间: 2021-8-30 16:59
请问最后解决了吗?同样遇到了这种情况





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