Fortran Coder

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

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

[复制链接]

22

帖子

5

主题

0

精华

熟手

F 币
158 元
贡献
82 点
5#
 楼主| 发表于 2018-9-26 17:06:11 | 只看该作者
chiangtp 发表于 2018-9-26 16:54
[mw_shl_code=fortran,true]PROGRAM a
  REAL :: x
  CALL b(x)

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

130

帖子

10

主题

0

精华

大师

F 币
617 元
贡献
372 点

贡献勋章管理勋章帅哥勋章元老勋章星光勋章规矩勋章

地板
发表于 2018-9-26 16:54:36 | 只看该作者
[Fortran] 纯文本查看 复制代码
PROGRAM a
  REAL :: x
  CALL b(x)
CONTAINS
  SUBROUTINE b(i)
      INTEGER ::i
  END SUBROUTINE b
END PROGRAM a

a 與 b 之間為 explicit interface, (type inconsistent) -> (compile-time fatal error, all compilers)

[Fortran] 纯文本查看 复制代码
PROGRAM aa
  REAL ::xx
  CALL bb(xx)
END PROGRAM aa
SUBROUTINE bb(ii)
  INTEGER :: ii
END SUBROUTINE bb

aa 與 bb 之間為 implicit interface, (type inconsistent) -> (compile-time fatal error or warn 是 compiler or compile-time-option dependent)

aa 與 bb 放在兩個不同的file (aa.f90, bb.f90), 分開compile (王不見王, 沒有type inconsistent的問題), 就OK

==========================
IVF结果跟Linux下运行出来的结果不太一样
==========================
怎的(不太一样)?

不一樣的程度遠高於precision的容忍度, 你 call FFTPack 的 "codes" 出錯的機會極大
uninitialised variables, array out-of-bounds, unsaved local variables, ...

22

帖子

5

主题

0

精华

熟手

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

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

801

帖子

2

主题

0

精华

大宗师

F 币
3804 元
贡献
2273 点
沙发
发表于 2018-9-26 13:05:30 | 只看该作者
结果不一致,很难说哪里的问题。你最好把linux下的makefile拿出来看看,采用相同的编译参数。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-19 18:26

Powered by Tencent X3.4

© 2013-2024 Tencent

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