24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1958  |  回复: 0

ssyyswjtu

金虫 (正式写手)

[求助] Fortran调用MKL进行FFT计算

我这里有一段程序代码,但计算结果是错误的,请帮我看一下错在哪个地方,谢谢!

program main
    Use MKL_DFTI

    real(8)::Xre_in(7)
    real(8)::Xim_in(7)
    real(8)::Xre_out(7)
    real(8)::Xim_out(7)
    Integer :: Dim = 1, Len = 7, Status
    Type(DFTI_DESCRIPTOR), POINTER :: My_Desc_Handle

    Xre_in(1)=0.34907D0
    Xre_in(2)=0.54890D0
    Xre_in(3)=0.74776D0
    Xre_in(4)=0.94459D0
    Xre_in(5)=1.13850D0
    Xre_in(6)=1.32850D0
    Xre_in(7)=1.51370D0

    Xim_in(1)=0.0D0
    Xim_in(2)=0.0D0
    Xim_in(3)=0.0D0
    Xim_in(4)=0.0D0
    Xim_in(5)=0.0D0
    Xim_in(6)=0.0D0
    Xim_in(7)=0.0D0
    Status = DftiCreateDescriptor (My_Desc_Handle, DFTI_DOUBLE , DFTI_REAL, Dim, Len)
    Status = DftiSetValue(My_Desc_Handle, DFTI_COMPLEX_STORAGE, DFTI_REAL_REAL);
    Status = DftiCommitDescriptor (My_Desc_Handle)
    Status = DftiComputeBackward (My_Desc_Handle, Xre_in, Xim_in)
    Status = DftiFreeDescriptor (My_Desc_Handle)
   
    do i=1,7
        print*,Xre_in(i),Xim_in(i)
    end do
   read(*,*)
end program main

也就是将复数的实部和虚部分开,调用的重载形式为status = DftiComputeBackward( desc_handle, xre_inout, xim_inout )

如果调用的重载形式为status = DftiComputeBackward( desc_handle, x_inout ),代码如下,结果是对的:
program main
    Use MKL_DFTI
    complex(8)::X_in(7)
    complex(8)::X_out(7)
    Integer :: Dim = 1, Len = 7, Status
    Type(DFTI_DESCRIPTOR), POINTER :: My_Desc_Handle
     X_in(1)=(0.34907D0,0D0)
     X_in(2)=(0.54890D0,0D0)
     X_in(3)=(0.74776D0,0D0)
     X_in(4)=(0.94459D0,0D0)
     X_in(5)=(1.13850D0,0D0)
     X_in(6)=(1.32850D0,0D0)
     X_in(7)=(1.51370D0,0D0)

    Status = DftiCreateDescriptor (My_Desc_Handle, DFTI_DOUBLE,  DFTI_COMPLEX, Dim, Len)
    Status = DftiSetValue(My_Desc_Handle, DFTI_PLACEMENT,DFTI_INPLACE);
    Status = DftiCommitDescriptor (My_Desc_Handle)
    Status = DftiComputeBackward(My_Desc_Handle, X_in)
    Status = DftiFreeDescriptor(My_Desc_Handle)
   do i=1,7
        print*,X_in(i)
    end do
   read(*,*)
end program main

[ Last edited by ssyyswjtu on 2012-4-17 at 08:36 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

找到一些相关的精华帖子,希望有用哦~

科研从小木虫开始,人人为我,我为人人
相关版块跳转 我要订阅楼主 ssyyswjtu 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料考研调剂 +5 Gs大王 2026-04-02 5/250 2026-04-02 07:02 by yjolah
[考研] 材料调剂 +12 一样YWY 2026-04-01 12/600 2026-04-02 00:21 by 百秒光年
[考研] 070300化学279求调剂 +15 哈哈哈^_^ 2026-03-31 17/850 2026-04-01 21:37 by 给你你注意休息
[考研] 085601材料工程找调剂 +20 oatmealR 2026-03-29 21/1050 2026-04-01 21:00 by lijunpoly
[考研] 294分080500材料科学与工程求调剂 +15 柳溪边 2026-03-26 16/800 2026-04-01 17:07 by 七度不信任
[考研] 一志愿中国科学院大学265求调剂 +8 恬淡ye 2026-03-31 9/450 2026-04-01 14:34 by 逆水乘风
[考研] 314求调剂 +6 1xiaojun23 2026-03-31 6/300 2026-04-01 11:28 by 今天星期八LQ
[考研] 358求调剂 +3 王向阳花 2026-03-31 3/150 2026-04-01 09:56 by zzchen2000
[考研] 339求调剂 +5 zjjkt 2026-03-31 5/250 2026-04-01 09:18 by JourneyLucky
[考研] 0856材料与化工调剂,339 +10 10213207 2026-03-31 10/500 2026-04-01 08:28 by Linda Hu
[考研] 各位老师好,我的一志愿为北京科技大学085601材料专硕 +12 Koxui 2026-03-28 12/600 2026-03-31 23:17 by wwytracy
[考研] 085602 307分 求调剂 +10 不知道叫什么! 2026-03-26 10/500 2026-03-31 19:53 by Dyhoer
[考研] 346求调剂 一志愿070303有机化学 +11 萝卜炖青菜 2026-03-28 12/600 2026-03-31 17:54 by xhai2011
[考研] 343求调剂 +8 爱羁绊 2026-03-28 8/400 2026-03-31 16:12 by 不吃魚的貓
[考研] 081200-11408-276学硕求调剂 +4 崔wj 2026-03-31 4/200 2026-03-31 11:56 by jp9609
[考研] 342求调剂 +4 加油a李zs 2026-03-26 4/200 2026-03-30 16:39 by 晶体之美
[考研] 348求调剂 +6 小懒虫不懒了 2026-03-28 6/300 2026-03-30 10:29 by Evan_Liu
[考研] 一志愿北京工业大学,324分求调剂 +6 零八# 2026-03-28 6/300 2026-03-29 21:20 by nanaliuyun
[考研] 295求调剂 +5 1428151015 2026-03-27 6/300 2026-03-28 04:04 by fmesaito
[考研] 一志愿211院校 344分 东北农业大学生物学学硕,求调剂 +5 丶风雪夜归人丶 2026-03-26 8/400 2026-03-27 19:22 by 丶风雪夜归人丶
信息提示
请填处理意见