Fortran Coder

FFTPack中ZFFTB函数的数组传递问题

查看数: 11665 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-9-7 09:14

正文摘要:

编译一个软件包里的程序遇到了一个问题,程序在gfortran编译器上可以编译,但是在IVF上编译有问题。 主要问题是实参和虚参类型不一致,实参是双精度,虚参是单精度,暂时没想到好的办法解决这个问题,请教一下大家。 ...

回复

wenqiang0606 发表于 2018-9-26 15:50:10
chiangtp 发表于 2018-9-26 00:37
1. "实参和虚参类型不一致" 是老Fortran的"技巧"
2. 如果牽涉廣泛, 不建議你revise這樣的用法
3. "type不 ...

对,是fortran77写的一个程序,那就是在命令行下编译然后再链接成库函数是吗?谢谢
chiangtp 发表于 2018-9-26 00:37:43
wenqiang0606 发表于 2018-9-7 10:31
好的,我再看一下,多谢

1. "实参和虚参类型不一致" 是老Fortran的"技巧"
2. 如果牽涉廣泛, 不建議你revise這樣的用法
3. "type不一致"的各個程式, 分開(王不見王)compile, 再link, 就不會有問題了
wenqiang0606 发表于 2018-9-7 10:31:46
fcode 发表于 2018-9-7 10:03
这些代码是 Numerical Analysis Library 这个函数库里的
(见 https://people.sc.fsu.edu/~jburkardt/f_src ...

好的,我再看一下,多谢
fcode 发表于 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 即可。
fcode 发表于 2018-9-7 09:37:38
把虚参定义一下就好了

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

GMT+8, 2024-5-15 09:40

Powered by Tencent X3.4

© 2013-2024 Tencent

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