Fortran Coder

查看: 41|回复: 4

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

[复制链接]

6

帖子

2

主题

0

精华

入门

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

1.jpg

2.jpg
回复

使用道具 举报

1286

帖子

12

主题

5

精华

论坛跑堂

Fcode跑堂伙计

F 币
415 元
贡献
138 点

新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2018-9-7 09:37:38 | 显示全部楼层
把虚参定义一下就好了

6

帖子

2

主题

0

精华

入门

F 币
38 元
贡献
20 点
 楼主| 发表于 2018-9-7 09:43:50 | 显示全部楼层
本帖最后由 wenqiang0606 于 2018-9-7 09:46 编辑
fcode 发表于 2018-9-7 09:37
把虚参定义一下就好了

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

4.jpg


1286

帖子

12

主题

5

精华

论坛跑堂

Fcode跑堂伙计

F 币
415 元
贡献
138 点

新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 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 即可。

6

帖子

2

主题

0

精华

入门

F 币
38 元
贡献
20 点
 楼主| 发表于 2018-9-7 10:31:46 | 显示全部楼层
fcode 发表于 2018-9-7 10:03
这些代码是 Numerical Analysis Library 这个函数库里的
(见 https://people.sc.fsu.edu/~jburkardt/f_src ...

好的,我再看一下,多谢
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2018-9-25 15:05

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

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