yonggc 发表于 2020-4-9 18:20:45

变量值变成NaN的原因

模拟粒子产生的程序,不知为什么有时程序将粒子的动量赋值为NaN? 见程序的2362行:      if(isnan(e1))write(*,*) P(1,I1),P(2,I1),P(3,I1),
   &                        lb(i1)。 输出结果出现NaN.没找到原因?第一次发帖,请求大神帮助。多谢!

vvt 发表于 2020-4-9 21:53:33

NaN 产生的原因一般是数学错误,分母为零,log取负数等等。

你可以下断点,单步调试分析一下,检查原因。

关于单步调试,你可以参考本站文章: http://debug.w.fcode.cn 获视频教程 http://v.fcode.cn/video-debugger.html

necrohan 发表于 2020-4-10 17:09:55

我把 MAXSTR=8000000 都改为 300,没有出现问题

yonggc 发表于 2020-4-12 17:04:30

vvt 发表于 2020-4-9 21:53
NaN 产生的原因一般是数学错误,分母为零,log取负数等等。

你可以下断点,单步调试分析一下,检查原因。


多谢指点

yonggc 发表于 2020-4-12 17:05:45

necrohan 发表于 2020-4-10 17:09
我把 MAXSTR=8000000 都改为 300,没有出现问题

谢谢指点,但是,但是那个数不能太小。

necrohan 发表于 2020-4-13 08:00:41

yonggc 发表于 2020-4-12 17:05
谢谢指点,但是,但是那个数不能太小。

太大我的计算机不支持。小的数没问题说明程序逻辑有问题。

wawewen 发表于 2020-4-15 16:45:36

回旋加速器?
页: [1]
查看完整版本: 变量值变成NaN的原因