I'm having an error using the DftiFreeDescriptor command on the FFT computation. I'm using Intel Parallel Studio XE Cluster Edition (2016 - Student download) with Visual Studio Community 2015. And here is the code:
seqc = CMPLX(seq) Status1 = DftiCreateDescriptor(My_Desc2_Handle, DFTI_DOUBLE, DFTI_COMPLEX, 1, npts) Status1 = DftiCommitDescriptor(My_Desc2_Handle) Status1 = DftiComputeForward(My_Desc2_Handle, seqc) Status1 = DftiFreeDescriptor(My_Desc2_Handle)
I start with this real(8)::seq(npts) and convert it to the complex seqc(npts), where npts is something between 2000 and 6000.
Debuging each step I have the following values for Status1 and My_Desc2_Handle:
Status1 = 0 / My_Desc2_Handle: Undefined address
Status1 = DftiCreateDescriptor(My_Desc2_Handle, DFTI_DOUBLE, DFTI_COMPLEX, 1, npts)
Status1 = 0 / My_Desc2_Handle = 0
Status1 = DftiCommitDescriptor(My_Desc2_Handle)
Status1 = 0 / My_Desc2_Handle = -620492544
Status1 = DftiComputeForward(My_Desc2_Handle, seqc)
Status1 = 0 / My_Desc2_Handle = -620492544
Status1 = DftiFreeDescriptor(My_Desc2_Handle)
Error, where in the output i get this: Invalid address specified to RtlValidateHeap( 0000000011FA0000, 0000000014312970 )
So, I've tested changing npts to values around 100, than My_desc2_Handle receives a positive value and I don't get errors with the DftiFreeDescriptor command. But if I put it up to 200, My_Desc2_Handle gets negative and the error happens again. So I guess it is something with the DftiCommitDescriptor, where it can't allocate/address the memory correctly. If I don't add the DftiFreeDescriptor command, I just get my FFT normaly, but I'm not sure if the memory is leaking each time I run it.