找回密码
 注册
查看: 2519|回复: 3

关于fortran程序的一个疑问

[复制链接]
发表于 2005-10-8 11:42:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
最近在做湍流直接数值模拟时,遇到一个问题,原来的一个fortran77写的程序,用fortran90重新改写了一下,数据类型都一样,都是real*8,但结果有偏差,误差在小数点的第十四位,我检查过了程序代码是一致的,不知道为什么会产生误差,望高手指点。文字[color=#1E90FF]文字
发表于 2005-10-8 12:49:28 | 显示全部楼层

关于fortran程序的一个疑问

为什么重写呢?用原来不行么?
是谱方法还是差分?
发表于 2005-10-8 12:56:35 | 显示全部楼层

关于fortran程序的一个疑问

编译器,编译选项,优化选项的不同都会造成不同的截断误差,尤其是对于存在减法的问题。real*8的有效位数是15(?16)位,当减法把有效位数减少时,计算顺序的不同(由优化选项决定)就会产生这样的效果。
如果不加入代码控制截断误差,优化选项不同时,我的fortran程序在8-12位就会产生不同。查一下“截断误差”就明白了很多。
 楼主| 发表于 2005-10-8 14:35:10 | 显示全部楼层

关于fortran程序的一个疑问

我用的是差分方法。
非常谢谢kingburg的指点。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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