Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Martin_Fuchs
Beginner
42 Views

Problem

Hi everyone, I am trying to run a simple fft from dfti routine of the latest MKL modules... I used:
...
USE mkl_dfti
...
TYPE(DFTI_DESCRIPTOR), POINTER :: My_Desc_Handle
...
status = DftiCreateDescriptor(My_Desc_Handle, DFTI_DOUBLE, &
DFTI_REAL, 1, alpha+2)
WRITE(*,*) 'Status 1',status,alpha
status = DftiSetValue(My_Desc_Handle, DFTI_PLACEMENT, DFTI_NOT_INPLACE)
WRITE(*,*) 'Status 2',status
status = DftiCommitDescriptor(My_Desc_Handle)
WRITE(*,*) 'Status 3',status
status = DftiComputeForward(My_Desc_Handle, Vlm, DFTV)
WRITE(*,*) 'Status 4',status
status = DftiFreeDescriptor(My_Desc_Handle)
WRITE(*,*) 'Status 5',status

... alpha= 20
I get as status
2
5
5
5
5
The DFTV array coming from the routine is zero...
I compiled with the command on a linux machine:

$(f90) /DGFI16/home/fuchs/intel/Compiler/11.1/072/mkl/include/mkl_dfti.f90 Constants.f90 Flmk.f90 /DGFI16/home/fuchs/intel/Compiler/11.1/072/mkl/include/lapack.f90 SubsTWFD.f90 Legendre.f90 vecmat.f90
ar -rv $(lib) mkl_dfti.o Constants.o Flmk.o lapack.o SubsTWFD.o Legendre.o vecmat.o

can someone tell me what went wrong ???





0 Kudos
3 Replies
barragan_villanueva_
Valued Contributor I
42 Views

Hi,

It's possibleto get DFTI-messages on given statuses instead of numbers.
See $MKLROOT/examples/dftf/sources for details.

E.g.
Status = DftiCreateDescriptor(hand, DFTI_DOUBLE, DFTI_REAL, 1, n)
if (.NOT. DftiErrorClass(Status, DFTI_NO_ERROR)) then
print *,'Status 1:', DftiErrorMessage(Status)
end if

As to your problem: could you please send small standalone test-case and compilation line with MKL-libraries to reproduce that?
Martin_Fuchs
Beginner
42 Views

Thanks Victor I think I managed the problem, it might be the ilp64 library; instead I used the lp64 library... Now I good some memory problem... But at least the dfti return is not zero
barragan_villanueva_
Valued Contributor I
42 Views

Well, to get correct Fortran code to work with MKL ILP64 library it needs to use compiler options:
-i8 for Intel Fortran
-fdefault-integer-8 for GNU Fortran
Reply