Fortran Coder

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

[数学库] FFTPack中ZFFTB函数的数组传递问题

[复制链接]

22

帖子

5

主题

0

精华

熟手

F 币
158 元
贡献
82 点
跳转到指定楼层
楼主
发表于 2018-9-7 09:14:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
编译一个软件包里的程序遇到了一个问题,程序在gfortran编译器上可以编译,但是在IVF上编译有问题。
主要问题是实参和虚参类型不一致,实参是双精度,虚参是单精度,暂时没想到好的办法解决这个问题,请教一下大家。
下面是部分程序截图,提示939行,wase矩阵实参虚参类型不一致,应该是wase(iw2)出现问题。




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

2015

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1572 元
贡献
676 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2018-9-7 09:37:38 | 只看该作者
把虚参定义一下就好了

22

帖子

5

主题

0

精华

熟手

F 币
158 元
贡献
82 点
板凳
 楼主| 发表于 2018-9-7 09:43:50 | 只看该作者
本帖最后由 wenqiang0606 于 2018-9-7 09:46 编辑
fcode 发表于 2018-9-7 09:37
把虚参定义一下就好了

虚参在子函数中还要传递给其他参数,后面这个58行也类似。





2015

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1572 元
贡献
676 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

地板
发表于 2018-9-7 10:03:37 | 只看该作者
这些代码是 Numerical Analysis Library 这个函数库里的
(见 https://people.sc.fsu.edu/~jburkardt/f_src/nms/nms.html

原来的代码中有以下注释:
!     WSAVE   A REAL WORK ARRAY WHICH MUST BE DIMENSIONED AT LEAST 4N+1
!             IN THE PROGRAM THAT CALLS CFFTF. THE WSAVE ARRAY MUST BE
!             INITIALIZED BY CALLING SUBROUTINE CFFTI(N,WSAVE) AND A
!             DIFFERENT WSAVE ARRAY MUST BE USED FOR EACH DIFFERENT
!             VALUE OF N. THIS INITIALIZATION DOES NOT HAVE TO BE
!             REPEATED SO LONG AS N REMAINS UNCHANGED THUS SUBSEQUENT
!             TRANSFORMS CAN BE OBTAINED FASTER THAN THE FIRST.
!             THE SAME WSAVE ARRAY CAN BE USED BY CFFTF AND CFFTB.


这个 wsave 是用来存储 FFT 的交叉顺序,所以应该是整数类型。
用 ZFFTI 获得值以后,可以供 ZFFTF 和 ZFFTB 使用。所以你只要把他们都定义为 integer 即可。

22

帖子

5

主题

0

精华

熟手

F 币
158 元
贡献
82 点
5#
 楼主| 发表于 2018-9-7 10:31:46 | 只看该作者
fcode 发表于 2018-9-7 10:03
这些代码是 Numerical Analysis Library 这个函数库里的
(见 https://people.sc.fsu.edu/~jburkardt/f_src ...

好的,我再看一下,多谢

130

帖子

10

主题

0

精华

大师

F 币
617 元
贡献
372 点

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

6#
发表于 2018-9-26 00:37:43 | 只看该作者
wenqiang0606 发表于 2018-9-7 10:31
好的,我再看一下,多谢

1. "实参和虚参类型不一致" 是老Fortran的"技巧"
2. 如果牽涉廣泛, 不建議你revise這樣的用法
3. "type不一致"的各個程式, 分開(王不見王)compile, 再link, 就不會有問題了

22

帖子

5

主题

0

精华

熟手

F 币
158 元
贡献
82 点
7#
 楼主| 发表于 2018-9-26 15:50:10 | 只看该作者
chiangtp 发表于 2018-9-26 00:37
1. "实参和虚参类型不一致" 是老Fortran的"技巧"
2. 如果牽涉廣泛, 不建議你revise這樣的用法
3. "type不 ...

对,是fortran77写的一个程序,那就是在命令行下编译然后再链接成库函数是吗?谢谢
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-11-1 07:23

Powered by Tencent X3.4

© 2013-2024 Tencent

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