Hi,
I would really appreciate any help to solve the following problem (or to point me in the direction as to where I can find a solution):
I recently installed Intel Fortran Composer XE for OS X (Snow Leopard on a new MacBook Pro) and I am trying to link a program to the fast Fourier Transform functions, but am having problems:
> ifort CGoct3D.f90 -L$MKLPATH -I$MKLINCLUDE -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -openmp -lpthread
CGoct3D.f90(171): error #6284: There is no matching specific function for this generic function reference. [DFTICREATEDESCRIPTOR]
StatusBig(1) = DftiCreateDescriptor(FFT_BIG, DFTI_DOUBLE, DFTI_COMPLEX, 2, DimBig)
---------------^
CGoct3D.f90(176): error #6284: There is no matching specific function for this generic function reference. [DFTICOMPUTEFORWARD]
StatusBig(i) = DftiComputeForward(FFT_BIG,newA(:,:,i),DFTBig(:,:,i))
-------------------^
CGoct3D.f90(227): error #6284: There is no matching specific function for this generic function reference. [DFTICOMPUTEBACKWARD]
StatusBig(i) = DftiComputeBackward(FFT_Big,rmatBig(:,:,i))
---------------^
CGoct3D.f90(240): error #6284: There is no matching specific function for this generic function reference. [DFTICOMPUTEFORWARD]
StatusBig(i) = DftiComputeForward(FFT_BIG,bmat(:,:,i),DFTBig(:,:,i))
-------------------^
compilation aborted for CGoct3D.f90 (code 1)
>
I had compiled mkl_dfti.f90 as root:
> cd /opt/intel/composerxe-2011.3.167/mkl/include
include > ifort -I$MKLINCLUDE -c mkl_dfti.f90
include >
> ls -l mkl_dft*
-rwxrwxrwx 1 kornak staff 9577 Apr 30 16:19 mkl_dft_type.mod
-r--r--r-- 1 27945 wheel 28055 Mar 18 03:42 mkl_dfti.f90
-r--r--r-- 1 27945 wheel 10561 Mar 18 03:42 mkl_dfti.h
-rwxrwxrwx 1 kornak staff 52484 Apr 30 16:19 mkl_dfti.mod
-rw-r--r-- 1 root wheel 783 Apr 30 16:19 mkl_dfti.o
In addition, I have the following environment variables set:
> echo $MKLROOT
/opt/intel/composerxe-2011.3.167/mkl
> echo $MKLPATH
/opt/intel/composerxe-2011.3.167/mkl/lib
> echo $MKLINCLUDE
/opt/intel/composerxe-2011.3.167/mkl/include
>
Finally, here are the relevant parts of the frotran 90 code:
[bash]PROGRAM bayes3D
! .. Use Statements ..
Use MKL_DFTI
! none in USE
! .. Implicit None Statement ..
IMPLICIT NONE
! .. Default Accessibility ..
! --- snip !
ALLOCATE (DimBig(2))
DimBig(1) = nl1
DimBig(2) = nl2
StatusBig(1) = DftiCreateDescriptor(FFT_BIG, DFTI_DOUBLE, DFTI_COMPLEX, 2, DimBig)
StatusBig(1) = DftiCommitDescriptor(FFT_BIG)
ALLOCATE (DFTBig(nl1,nl2,zl))
DO i=1,zl
StatusBig(i) = DftiComputeForward(FFT_BIG,newA(:,:,i),DFTBig(:,:,i))
END DO[/bash] Thanks for any insight.
Cheers
John
链接已复制
Thank you for the very quick response.
I apologize for the incomplete information. I assumed that I was having a problem linking to the library without considering alternatives!
Redirecting me to realize it was a problem with my coding meant that I was able to debug it and get my code running correctly.
Thanks again
Cheers
John
I am facing the same question as you once did. how did you solve your problem? Can you give me some help . I am looking forward to your reply.
My codes is as follows:
error #6284: There is no matching specific function for this generic function reference. [FFT]
USE FOURIER, ONLY : &
FFT, & ! The Fast Fourier Transform routine.
GetFFTDims, &
CleanFFT, &
GetFFTComplexDims
VWPot = 0.5 * FFT( FFT(VWPot) * qTable**2 ) / VWPot
Yuan Z.:
Show the interface for function FFT, and the declarations of the variables VWPot and qTable. Apparently, your module Fourier contains one or more specific functions with the generic name FFT, and the type of the argument in the invocation of the function FFT does not match the types of the arguments of any of the specific functions.