Fortran Coder

查看: 12716|回复: 6
打印 上一主题 下一主题

[数值问题] 变量值变成NaN的原因

[复制链接]

3

帖子

1

主题

0

精华

新人

F 币
20 元
贡献
10 点
跳转到指定楼层
楼主
发表于 2020-4-9 18:20:45 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
模拟粒子产生的程序,不知为什么有时程序将粒子的动量赋值为NaN? 见程序的2362行:      if(isnan(e1))write(*,*) P(1,I1),P(2,I1),P(3,I1),
     &                        lb(i1)。 输出结果出现NaN.没找到原因?第一次发帖,请求大神帮助。多谢!

artnew3.f

978.03 KB, 下载次数: 6

源程序

input.dat

14.78 KB, 下载次数: 1

输入量

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

3

帖子

1

主题

0

精华

新人

F 币
20 元
贡献
10 点
沙发
 楼主| 发表于 2020-4-12 17:04:30 | 显示全部楼层
vvt 发表于 2020-4-9 21:53
NaN 产生的原因一般是数学错误,分母为零,log取负数等等。

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

多谢指点

3

帖子

1

主题

0

精华

新人

F 币
20 元
贡献
10 点
板凳
 楼主| 发表于 2020-4-12 17:05:45 | 显示全部楼层
necrohan 发表于 2020-4-10 17:09
我把 MAXSTR=8000000 都改为 300,没有出现问题

谢谢指点,但是,但是那个数不能太小。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-15 06:27

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表