Результаты БПФ расходятся .. (Fortran / MKL) - PullRequest
0 голосов
/ 16 июня 2020

Я попытался провести 2-мерное БПФ с визуальным Fortran и Intel MKL . Но результат продолжает расти. Как я могу это исправить? Буду признателен, если вы ответите на мой вопрос. Вот мой код: \\\\\ Сначала я создал синусоидальную волну

real(8), allocatable:: Wave_ini_2D(:,:) ! [nx, nt] dimensional

с длительностью x: [- 40,40], t: [0:10 ] с разрешением nx и nt соответственно.

И волна передается в подпрограмму следующим образом:

    subroutine FFTF2_R2C(nx, nt, L1, Wave_ini_2D,  Wave_fft_2D)
        integer, intent(in)::       L1(2), nx, nt
        real(8), intent(in)::       Wave_ini_2D(nx, nt)
        complex(8), intent(out)::    Wave_fft_2D(L1(1), L1(2))

        type(DFTI_DESCRIPTOR), POINTER :: My_Desc2_Handle       !   FFT handler
        real(8):: Win(nx*nt)
        integer:: status, i

        Win = reshape(Wave_ini_2D, shape(Win))

        Status = DftiCreateDescriptor( My_Desc2_Handle, DFTI_SINGLE, DFTI_REAL, 2, L1)
        Status = DftiCommitDescriptor( My_Desc2_Handle)
        Status = DftiComputeForward( My_Desc2_Handle, Win)
        Status = DftiFreeDescriptor(My_Desc2_Handle)

        Wave_fft_2D = reshape(Win, shape(Wave_fft_2D))

    end subroutine
...