- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hello!

I was trying to learn about the MKL's FFT Function and wrote a small 1D program to show the forward transformed values. From my understanding, the arguments for the forward function - mentioned in the comment in the program (italicised and not in bold) - should be right and it should perform fine.

When I try to run this, I get 0 as my transformed value (the array y1). Now I am confused about why that happens and what the error in the code is for me to get this error.

Could someone help me to understand the issue?

I am attaching the program file(test.f90), the executable link file (link1.txt - might have to use chmod 700) and the output text file (text.txt).

Thanks!

- Adhyanth

**PROGRAM test***! IMPLICIT NONE*** USE MKL_DFTI REAL(KIND = DFTI_DPKP), DIMENSION(201) :: x,y,z COMPLEX(KIND = DFTI_DPKP), DIMENSION(201) ::x1, y1 INTEGER :: i, status TYPE(DFTI_DESCRIPTOR), POINTER :: plan plan => null()DO i=1,201 x(i) = REAL(i-101)/100 y(i)= 5*SIN(2*x(i))END DO**

**OPEN(9, file='text.txt', form = 'FORMATTED')WRITE(9,*) 'Y values'WRITE(9,*) ystatus = dfti_create_descriptor_1d(plan, DFTI_DOUBLE, DFTI_COMPLEX, 1, 200)status = dfti_commit_descriptor_external(plan)DO i=1,201status = dfti_compute_forward_dz(plan, y(i), y1(i))**

*!Using the(desc,xreinout,ximinout) argument format*

**ENDDO**

status = dfti_free_descriptor_external(plan)

WRITE(9,*) 'Y1 Values'

WRITE(9,*) y1

WRITE(9,*) 'Y values - After Transform'

WRITE(9,*) y

status = dfti_free_descriptor_external(plan)

WRITE(9,*) 'Y1 Values'

WRITE(9,*) y1

WRITE(9,*) 'Y values - After Transform'

WRITE(9,*) y

**END PROGRAM test**

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi Adhyanth,

You are trying to do the R2C out-of-place transform. However, you are not setting the right parameter values.

DftiSetValue(plan, DFTI_PLACEMENT, DFTI_NOT_INPLACE)

Also, you call the Fortran function directly

dfti_compute_forward_dz(plan, y, y1)

You should call the interface, instead.

Please look at the example basic_dp_real_dft_1d.f90 in the examples folder.

Hope this helps!

Khang

Link Copied

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi Adhyanth,

You are trying to do the R2C out-of-place transform. However, you are not setting the right parameter values.

DftiSetValue(plan, DFTI_PLACEMENT, DFTI_NOT_INPLACE)

Also, you call the Fortran function directly

dfti_compute_forward_dz(plan, y, y1)

You should call the interface, instead.

Please look at the example basic_dp_real_dft_1d.f90 in the examples folder.

Hope this helps!

Khang

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi Khang,

The code worked now. Thanks a ton!

- Adhyanth

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi dhyanth,

I am glad that you find it helpful.

Khang

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi Adhyanth,

I apologize for typing you name incorrectly.

Khang

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hey Khang,

No worries.

- Adhyanth

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page