Я попытался провести 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