Fortran Coder

查看: 12622|回复: 10
打印 上一主题 下一主题

[通用算法] monte carlo 模拟光子传输

[复制链接]

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
楼主
发表于 2019-6-4 20:40:30 | 显示全部楼层
fortran语法没有任何限制。
但可能来自于你使用的操作系统、平台、编译器等。

具体需给出代码以便测试分析。

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
沙发
发表于 2019-6-4 21:54:10 | 显示全部楼层
没有输入文件,没法测试。

你试试把 pm , pn 定义为整数。

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
板凳
发表于 2019-6-5 09:03:10 | 显示全部楼层
pm,pn 改成整数就好了

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
地板
发表于 2019-6-5 09:42:07 | 显示全部楼层
110 PN=PN+1.0
改成
110 PN=PN+1

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
5#
发表于 2019-6-5 09:57:02 | 显示全部楼层
不定义成整数的话,就是浮点数。
浮点数是有误差的。
在数学上,17000000.0 + 1.0 = 17000001.0
但是浮点数只有7位有效数字,不能表达 17000001.0,就导致结果还是 17000000.0

所以你不管怎么加,都不能满足 IF(PN.GT.PM)
该用整数的时候,一定要用整数类型。因为整数类型是没有误差的(但是有表达的最大范围)
像计个数这种量,应该用整数类型。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-12 11:32

Powered by Tencent X3.4

© 2013-2024 Tencent

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