Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Novice
130 Views

use MKL_DFTI

Jump to solution

Hi,

I'm having some problems in using MKL_DFTI tool in IVF2020.  I wrote a few lines of Fortran code about 2D FFT according to some examples in Intel® Math Kernel Library Developer Reference.However, there are two errors saying:
error #6284: There is no matching specific function for this generic function reference.   [DFTICREATEDESCRIPTOR]        
error #6284: There is no matching specific function for this generic function reference.   [DFTISETVALUE]

I checked it carefully in many times, but found no answer.

Could anyone help me? Thanks very much!

The corresponding source code  is attached.

!!!!!!!2DFFT
    program main
    use mkl_dfti
    implicit none
    integer, parameter :: Nbeads=4 
    real(kind=8) :: X_2D(Nbeads,Nbeads)=(/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16/)
    complex(kind=8) :: Y_2D(Nbeads/2+1, Nbeads)
    real(kind=8) :: X(Nbeads*Nbeads)
    complex(kind=8) :: Y((Nbeads/2+1)*Nbeads)
    equivalence (X_2D, X)
    equivalence (Y_2D, Y)
    type(DFTI_DESCRIPTOR), POINTER :: My_fft
    integer(kind=8) :: Status, L(2)=(/Nbeads,Nbeads/)
    integer(kind=8) :: strides_out(3)=(/0, 1, Nbeads/2+1/)
    Status=DftiCreateDescriptor(My_fft, DFTI_DOUBLE, DFTI_REAL, 2, L) 
    Status=DftiSetValue(My_fft, DFTI_CONJUGATE_EVEN_STORAGE, DFTI_COMPLEX_COMPLEX) 
    Status=DftiSetValue(My_fft, DFTI_PLACEMENT, DFTI_NOT_INPLACE) 
    Status=DftiSetValue(My_fft, DFTI_OUTPUT_STRIDES, strides_out)
    Status=DftiCommitDescriptor(My_fft) 
    Status=DftiComputeForward(My_fft, X, Y)
    Status=DftiFreeDescriptor(My_fft)
    write(*,*) Y 
    pause
    end

!!!!!!!!!!!!

Fu.

0 Kudos

Accepted Solutions
Highlighted
Black Belt
130 Views

Make sure to match the argument types with the specified types in the MKL documentation for your version; L and strides_out should probably be default (4-byte) integers.

View solution in original post

0 Kudos
2 Replies
Highlighted
Black Belt
131 Views

Make sure to match the argument types with the specified types in the MKL documentation for your version; L and strides_out should probably be default (4-byte) integers.

View solution in original post

0 Kudos
Highlighted
Novice
130 Views

Hi Blackbelt,

Thanks for your help very much. It has done the trick.

Best Regards,

Fu

 

0 Kudos