Fortran Coder

楼主: wenqiang0606
打印 上一主题 下一主题

[子程序] IVF中实参虚参类型不一致

[复制链接]

22

帖子

5

主题

0

精华

熟手

F 币
158 元
贡献
82 点
跳转到指定楼层
楼主
发表于 2018-9-25 20:06:10 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
使用的一个软件包,是linux下写的,使用了不同数据类型的实参虚参的传递,但是IVF不支持,应该怎么办?跟大家请教一下,谢谢暂时通过取消接口检查解决的问题,但是结果跟Linux下运行出来的结果不太一样。

这个是软件说明的文档。



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

22

帖子

5

主题

0

精华

熟手

F 币
158 元
贡献
82 点
沙发
 楼主| 发表于 2018-9-26 15:51:43 | 显示全部楼层
li913 发表于 2018-9-26 13:05
结果不一致,很难说哪里的问题。你最好把linux下的makefile拿出来看看,采用相同的编译参数。 ...

好的,我再看看,主要是不太清楚怎么允许这种数据传递,同时不出错

22

帖子

5

主题

0

精华

熟手

F 币
158 元
贡献
82 点
板凳
 楼主| 发表于 2018-9-26 17:06:11 | 显示全部楼层
chiangtp 发表于 2018-9-26 16:54
[mw_shl_code=fortran,true]PROGRAM a
  REAL :: x
  CALL b(x)

就是计算的结果有时候不太一样,但有时候又是一样的。
谢谢版主!

22

帖子

5

主题

0

精华

熟手

F 币
158 元
贡献
82 点
地板
 楼主| 发表于 2018-9-26 19:55:09 | 显示全部楼层
chiangtp 发表于 2018-9-26 19:47
怎的(不太一样)?

1.23456789, 1.23456987,  for 4-byte REAL, 這算正常

我只是单纯看的结果,那个软件是进行矩阵分解C=BP的,分解出来的矩阵B是C的某些列,IVF和Linux的对应的列数是不一致的。
虽然结果不太一样,但感觉应该都是对的

22

帖子

5

主题

0

精华

熟手

F 币
158 元
贡献
82 点
5#
 楼主| 发表于 2018-9-26 20:18:43 | 显示全部楼层
chiangtp 发表于 2018-9-26 20:04
non-zero (A, B) 的不一樣

相對誤差 abs(A-B)/abs(A or B)

也就是可能跟编译器的精度有关?

22

帖子

5

主题

0

精华

熟手

F 币
158 元
贡献
82 点
6#
 楼主| 发表于 2018-10-20 10:29:05 | 显示全部楼层
本帖最后由 wenqiang0606 于 2018-10-20 10:30 编辑

就是实参和虚参类型不一致。。

22

帖子

5

主题

0

精华

熟手

F 币
158 元
贡献
82 点
7#
 楼主| 发表于 2018-10-20 10:31:25 | 显示全部楼层
liudy02 发表于 2018-10-19 18:46
什么叫使用不同数据类型的实参虚参的传递啊……

就是实参虚参数据类型不一致
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-2 11:59

Powered by Tencent X3.4

© 2013-2024 Tencent

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