LMDZ
mkl_dfti.f90
Go to the documentation of this file.
1 !*****************************************************************************
2 ! Copyright(C) 2002-2011 Intel Corporation. All Rights Reserved.
3 !
4 ! The source code, information and material ("Material") contained herein is
5 ! owned by Intel Corporation or its suppliers or licensors, and title to such
6 ! Material remains with Intel Corporation or its suppliers or licensors. The
7 ! Material contains proprietary information of Intel or its suppliers and
8 ! licensors. The Material is protected by worldwide copyright laws and treaty
9 ! provisions. No part of the Material may be used, copied, reproduced,
10 ! modified, published, uploaded, posted, transmitted, distributed or disclosed
11 ! in any way without Intel's prior express written permission. No license
12 ! under any patent, copyright or other intellectual property rights in the
13 ! Material is granted to or conferred upon you, either expressly, by
14 ! implication, inducement, estoppel or otherwise. Any license under such
15 ! intellectual property rights must be express and approved by Intel in
16 ! writing.
17 !
18 ! *Third Party trademarks are the property of their respective owners.
19 !
20 ! Unless otherwise agreed by Intel in writing, you may not remove or alter
21 ! this notice or any other notice embedded in Materials by Intel or Intel's
22 ! suppliers or licensors in any way.
23 !
24 !*****************************************************************************
25 ! Content:
26 ! Intel(R) Math Kernel Library (MKL)
27 ! Discrete Fourier Transform Interface (DFTI)
28 !*****************************************************************************
29 
30 
31 MODULE mkl_dfti
32 
33  USE mkl_dft_type
34 
36 
37  FUNCTION dfti_create_descriptor_1d(desc, precision, domain, dim, length)
39  !DEC$ ATTRIBUTES C :: dfti_create_descriptor_1d
40  !DEC$ ATTRIBUTES REFERENCE :: dfti_create_descriptor_1d
41  INTEGER dfti_create_descriptor_1d
42  TYPE(dfti_descriptor), POINTER :: desc
43  INTEGER, INTENT(IN) :: precision
44  INTEGER, INTENT(IN) :: domain
45  INTEGER, INTENT(IN) :: dim, length
46  END FUNCTION dfti_create_descriptor_1d
47 
48  FUNCTION dfti_create_descriptor_highd(desc, precision, domain, dim,length)
50  !DEC$ ATTRIBUTES C :: dfti_create_descriptor_highd
51  !DEC$ ATTRIBUTES REFERENCE :: dfti_create_descriptor_highd
52  INTEGER dfti_create_descriptor_highd
53  TYPE(dfti_descriptor), POINTER :: desc
54  INTEGER, INTENT(IN) :: precision
55  INTEGER, INTENT(IN) :: domain
56  INTEGER, INTENT(IN) :: dim
57  INTEGER, INTENT(IN), DIMENSION(*) :: length
58  END FUNCTION dfti_create_descriptor_highd
59 
60  FUNCTION dfti_create_descriptor_s_1d(desc, s, dom, one, dim)
62  !DEC$ ATTRIBUTES C :: dfti_create_descriptor_s_1d
63  !DEC$ ATTRIBUTES REFERENCE :: dfti_create_descriptor_s_1d
64  INTEGER dfti_create_descriptor_s_1d
65  TYPE(dfti_descriptor), POINTER :: desc
66  REAL(DFTI_SPKP), INTENT(IN) :: s
67  INTEGER, INTENT(IN) :: dom
68  INTEGER, INTENT(IN) :: one
69  INTEGER, INTENT(IN) :: dim
70  END FUNCTION dfti_create_descriptor_s_1d
71 
72  FUNCTION dfti_create_descriptor_s_md(desc, s, dom, many, dims)
74  !DEC$ ATTRIBUTES C :: dfti_create_descriptor_s_md
75  !DEC$ ATTRIBUTES REFERENCE :: dfti_create_descriptor_s_md
76  INTEGER dfti_create_descriptor_s_md
77  TYPE(dfti_descriptor), POINTER :: desc
78  REAL(DFTI_SPKP), INTENT(IN) :: s
79  INTEGER, INTENT(IN) :: dom
80  INTEGER, INTENT(IN) :: many
81  INTEGER, INTENT(IN), DIMENSION(*) :: dims
82  END FUNCTION dfti_create_descriptor_s_md
83 
84  FUNCTION dfti_create_descriptor_d_1d(desc, d, dom, one, dim)
86  !DEC$ ATTRIBUTES C :: dfti_create_descriptor_d_1d
87  !DEC$ ATTRIBUTES REFERENCE :: dfti_create_descriptor_d_1d
88  INTEGER dfti_create_descriptor_d_1d
89  TYPE(dfti_descriptor), POINTER :: desc
90  REAL(DFTI_DPKP), INTENT(IN) :: d
91  INTEGER, INTENT(IN) :: dom
92  INTEGER, INTENT(IN) :: one
93  INTEGER, INTENT(IN) :: dim
94  END FUNCTION dfti_create_descriptor_d_1d
95 
96  FUNCTION dfti_create_descriptor_d_md(desc, d, dom, many, dims)
98  !DEC$ ATTRIBUTES C :: dfti_create_descriptor_d_md
99  !DEC$ ATTRIBUTES REFERENCE :: dfti_create_descriptor_d_md
100  INTEGER dfti_create_descriptor_d_md
101  TYPE(dfti_descriptor), POINTER :: desc
102  REAL(DFTI_DPKP), INTENT(IN) :: d
103  INTEGER, INTENT(IN) :: dom
104  INTEGER, INTENT(IN) :: many
105  INTEGER, INTENT(IN), DIMENSION(*) :: dims
106  END FUNCTION dfti_create_descriptor_d_md
107 
108  END INTERFACE
109 
111 
112  FUNCTION dfti_copy_descriptor_external(desc, new_desc)
114  !DEC$ ATTRIBUTES C :: dfti_copy_descriptor_external
115  !DEC$ ATTRIBUTES REFERENCE :: dfti_copy_descriptor_external
116  INTEGER dfti_copy_descriptor_external
117  TYPE(dfti_descriptor), POINTER :: desc
118  TYPE(dfti_descriptor), POINTER :: new_desc
119  END FUNCTION dfti_copy_descriptor_external
120 
121  END INTERFACE
122 
124 
125  FUNCTION dfti_commit_descriptor_external(desc)
127  !DEC$ ATTRIBUTES C :: dfti_commit_descriptor_external
128  !DEC$ ATTRIBUTES REFERENCE :: dfti_commit_descriptor_external
129  INTEGER dfti_commit_descriptor_external
130  TYPE(dfti_descriptor), POINTER :: desc
131  END FUNCTION dfti_commit_descriptor_external
132 
133  END INTERFACE
134 
135  INTERFACE dftisetvalue
136 
137  FUNCTION dfti_set_value_intval(desc, OptName, IntVal)
139  !DEC$ ATTRIBUTES C :: dfti_set_value_intval
140  !DEC$ ATTRIBUTES REFERENCE :: dfti_set_value_intval
141  INTEGER dfti_set_value_intval
142  INTEGER, INTENT(IN) :: OptName
143  INTEGER, INTENT(IN) :: IntVal
144  TYPE(dfti_descriptor), POINTER :: desc
145  END FUNCTION dfti_set_value_intval
146 
147  FUNCTION dfti_set_value_sglval(desc, OptName, sglval)
149  !DEC$ ATTRIBUTES C :: dfti_set_value_sglval
150  !DEC$ ATTRIBUTES REFERENCE :: dfti_set_value_sglval
151  INTEGER dfti_set_value_sglval
152  INTEGER, INTENT(IN) :: OptName
153  REAL(DFTI_SPKP), INTENT(IN) :: sglval
154  TYPE(dfti_descriptor), POINTER :: desc
155  END FUNCTION dfti_set_value_sglval
156 
157  FUNCTION dfti_set_value_dblval(desc, OptName, DblVal)
159  !DEC$ ATTRIBUTES C :: dfti_set_value_dblval
160  !DEC$ ATTRIBUTES REFERENCE :: dfti_set_value_dblval
161  INTEGER dfti_set_value_dblval
162  INTEGER, INTENT(IN) :: OptName
163  REAL(DFTI_DPKP), INTENT(IN) :: DblVal
164  TYPE(dfti_descriptor), POINTER :: desc
165  END FUNCTION dfti_set_value_dblval
166 
167  FUNCTION dfti_set_value_intvec(desc, OptName, IntVec)
169  !DEC$ ATTRIBUTES C :: dfti_set_value_intvec
170  !DEC$ ATTRIBUTES REFERENCE :: dfti_set_value_intvec
171  INTEGER dfti_set_value_intvec
172  INTEGER, INTENT(IN) :: OptName
173  INTEGER, INTENT(IN), DIMENSION(*) :: IntVec
174  TYPE(dfti_descriptor), POINTER :: desc
175  END FUNCTION dfti_set_value_intvec
176 
177  FUNCTION dfti_set_value_chars(desc, OptName, Chars)
179  !DEC$ ATTRIBUTES C :: dfti_set_value_chars
180  !DEC$ ATTRIBUTES REFERENCE :: dfti_set_value_chars
181  INTEGER dfti_set_value_chars
182  INTEGER, INTENT(IN) :: OptName
183  CHARACTER(*), INTENT(IN) :: Chars
184  TYPE(dfti_descriptor), POINTER :: desc
185  END FUNCTION dfti_set_value_chars
186 
187  END INTERFACE
188 
189  INTERFACE dftigetvalue
190 
191  FUNCTION dfti_get_value_intval(desc, OptName, IntVal)
193  !DEC$ ATTRIBUTES C :: dfti_get_value_intval
194  !DEC$ ATTRIBUTES REFERENCE :: dfti_get_value_intval
195  INTEGER dfti_get_value_intval
196  INTEGER, INTENT(IN) :: OptName
197  INTEGER, INTENT(OUT) :: IntVal
198  TYPE(dfti_descriptor), POINTER :: desc
199  END FUNCTION dfti_get_value_intval
200 
201  FUNCTION dfti_get_value_sglval(desc, OptName, sglval)
203  !DEC$ ATTRIBUTES C :: dfti_get_value_sglval
204  !DEC$ ATTRIBUTES REFERENCE :: dfti_get_value_sglval
205  INTEGER dfti_get_value_sglval
206  INTEGER, INTENT(IN) :: OptName
207  REAL(DFTI_SPKP), INTENT(OUT) :: sglval
208  TYPE(dfti_descriptor), POINTER :: desc
209  END FUNCTION dfti_get_value_sglval
210 
211  FUNCTION dfti_get_value_dblval(desc, OptName, DblVal)
213  !DEC$ ATTRIBUTES C :: dfti_get_value_dblval
214  !DEC$ ATTRIBUTES REFERENCE :: dfti_get_value_dblval
215  INTEGER dfti_get_value_dblval
216  INTEGER, INTENT(IN) :: OptName
217  REAL(DFTI_DPKP), INTENT(OUT) :: DblVal
218  TYPE(dfti_descriptor), POINTER :: desc
219  END FUNCTION dfti_get_value_dblval
220 
221  FUNCTION dfti_get_value_intvec(desc, OptName, IntVec)
223  !DEC$ ATTRIBUTES C :: dfti_get_value_intvec
224  !DEC$ ATTRIBUTES REFERENCE :: dfti_get_value_intvec
225  INTEGER dfti_get_value_intvec
226  INTEGER, INTENT(IN) :: OptName
227  INTEGER, INTENT(OUT), DIMENSION(*) :: IntVec
228  TYPE(dfti_descriptor), POINTER :: desc
229  END FUNCTION dfti_get_value_intvec
230 
231  FUNCTION dfti_get_value_chars(desc, OptName, Chars)
233  !DEC$ ATTRIBUTES C :: dfti_get_value_chars
234  !DEC$ ATTRIBUTES REFERENCE :: dfti_get_value_chars
235  INTEGER dfti_get_value_chars
236  INTEGER, INTENT(IN) :: OptName
237  CHARACTER(*), INTENT(OUT) :: Chars
238  TYPE(dfti_descriptor), POINTER :: desc
239  END FUNCTION dfti_get_value_chars
240 
241  END INTERFACE
242 
244 
245  FUNCTION dfti_compute_forward_s(desc,sSrcDst)
247  !DEC$ ATTRIBUTES C :: dfti_compute_forward_s
248  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_s
249  INTEGER dfti_compute_forward_s
250  TYPE(dfti_descriptor), POINTER :: desc
251  REAL(DFTI_SPKP), INTENT(INOUT), DIMENSION(*) :: sSrcDst
252  END FUNCTION dfti_compute_forward_s
253 
254  FUNCTION dfti_compute_forward_c(desc,cSrcDst)
256  !DEC$ ATTRIBUTES C :: dfti_compute_forward_c
257  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_c
258  INTEGER dfti_compute_forward_c
259  TYPE(dfti_descriptor), POINTER :: desc
260  COMPLEX(DFTI_SPKP), INTENT(INOUT), DIMENSION(*) :: cSrcDst
261  END FUNCTION dfti_compute_forward_c
262 
263  FUNCTION dfti_compute_forward_ss(desc,sSrcDstRe,sSrcDstIm)
265  !DEC$ ATTRIBUTES C :: dfti_compute_forward_ss
266  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_ss
267  INTEGER dfti_compute_forward_ss
268  TYPE(dfti_descriptor), POINTER :: desc
269  REAL(DFTI_SPKP), DIMENSION(*) :: sSrcDstRe
270  REAL(DFTI_SPKP), DIMENSION(*) :: sSrcDstIm
271  END FUNCTION dfti_compute_forward_ss
272 
273  FUNCTION dfti_compute_forward_sc(desc,sSrc,cDst)
275  !DEC$ ATTRIBUTES C :: dfti_compute_forward_sc
276  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_sc
277  INTEGER dfti_compute_forward_sc
278  TYPE(dfti_descriptor), POINTER :: desc
279  REAL(DFTI_SPKP), INTENT(IN), DIMENSION(*) :: sSrc
280  COMPLEX(DFTI_SPKP), INTENT(OUT), DIMENSION(*) :: cDst
281  END FUNCTION dfti_compute_forward_sc
282 
283  FUNCTION dfti_compute_forward_cc(desc,cSrc,cDst)
285  !DEC$ ATTRIBUTES C :: dfti_compute_forward_cc
286  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_cc
287  INTEGER dfti_compute_forward_cc
288  TYPE(dfti_descriptor), POINTER :: desc
289  COMPLEX(DFTI_SPKP), INTENT(IN), DIMENSION(*) :: cSrc
290  COMPLEX(DFTI_SPKP), INTENT(OUT), DIMENSION(*) :: cDst
291  END FUNCTION dfti_compute_forward_cc
292 
293  FUNCTION dfti_compute_forward_ssss(desc,sSrcRe,sSrcIm,sDstRe,sDstIm)
295  !DEC$ ATTRIBUTES C :: dfti_compute_forward_ssss
296  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_ssss
297  INTEGER dfti_compute_forward_ssss
298  TYPE(dfti_descriptor), POINTER :: desc
299  REAL(DFTI_SPKP), INTENT(IN), DIMENSION(*) :: sSrcRe
300  REAL(DFTI_SPKP), INTENT(IN), DIMENSION(*) :: sSrcIm
301  REAL(DFTI_SPKP), INTENT(OUT), DIMENSION(*) :: sDstRe
302  REAL(DFTI_SPKP), INTENT(OUT), DIMENSION(*) :: sDstIm
303  END FUNCTION dfti_compute_forward_ssss
304 
305  FUNCTION dfti_compute_forward_d(desc,dSrcDst)
307  !DEC$ ATTRIBUTES C :: dfti_compute_forward_d
308  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_d
309  INTEGER dfti_compute_forward_d
310  TYPE(dfti_descriptor), POINTER :: desc
311  REAL(DFTI_DPKP), INTENT(INOUT), DIMENSION(*) :: dSrcDst
312  END FUNCTION dfti_compute_forward_d
313 
314  FUNCTION dfti_compute_forward_z(desc,zSrcDst)
316  !DEC$ ATTRIBUTES C :: dfti_compute_forward_z
317  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_z
318  INTEGER dfti_compute_forward_z
319  TYPE(dfti_descriptor), POINTER :: desc
320  COMPLEX(DFTI_DPKP), INTENT(INOUT), DIMENSION(*) :: zSrcDst
321  END FUNCTION dfti_compute_forward_z
322 
323  FUNCTION dfti_compute_forward_dd(desc,dSrcDstRe,dSrcDstIm)
325  !DEC$ ATTRIBUTES C :: dfti_compute_forward_dd
326  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_dd
327  INTEGER dfti_compute_forward_dd
328  TYPE(dfti_descriptor), POINTER :: desc
329  REAL(DFTI_DPKP), DIMENSION(*) :: dSrcDstRe
330  REAL(DFTI_DPKP), DIMENSION(*) :: dSrcDstIm
331  END FUNCTION dfti_compute_forward_dd
332 
333  FUNCTION dfti_compute_forward_dz(desc,dSrc,zDst)
335  !DEC$ ATTRIBUTES C :: dfti_compute_forward_dz
336  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_dz
337  INTEGER dfti_compute_forward_dz
338  TYPE(dfti_descriptor), POINTER :: desc
339  REAL(DFTI_DPKP), INTENT(IN), DIMENSION(*) :: dSrc
340  COMPLEX(DFTI_DPKP), INTENT(OUT), DIMENSION(*) :: zDst
341  END FUNCTION dfti_compute_forward_dz
342 
343  FUNCTION dfti_compute_forward_zz(desc,zSrc,zDst)
345  !DEC$ ATTRIBUTES C :: dfti_compute_forward_zz
346  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_zz
347  INTEGER dfti_compute_forward_zz
348  TYPE(dfti_descriptor), POINTER :: desc
349  COMPLEX(DFTI_DPKP), INTENT(IN), DIMENSION(*) :: zSrc
350  COMPLEX(DFTI_DPKP), INTENT(OUT), DIMENSION(*) :: zDst
351  END FUNCTION dfti_compute_forward_zz
352 
353  FUNCTION dfti_compute_forward_dddd(desc,dSrcRe,dSrcIm,dDstRe,dDstIm)
355  !DEC$ ATTRIBUTES C :: dfti_compute_forward_dddd
356  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_dddd
357  INTEGER dfti_compute_forward_dddd
358  TYPE(dfti_descriptor), POINTER :: desc
359  REAL(DFTI_DPKP), INTENT(IN), DIMENSION(*) :: dSrcRe
360  REAL(DFTI_DPKP), INTENT(IN), DIMENSION(*) :: dSrcIm
361  REAL(DFTI_DPKP), INTENT(OUT), DIMENSION(*) :: dDstRe
362  REAL(DFTI_DPKP), INTENT(OUT), DIMENSION(*) :: dDstIm
363  END FUNCTION dfti_compute_forward_dddd
364 
365  END INTERFACE dfticomputeforward
366 
368 
369  FUNCTION dfti_compute_backward_s(desc,sSrcDst)
371  !DEC$ ATTRIBUTES C :: dfti_compute_backward_s
372  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_s
373  INTEGER dfti_compute_backward_s
374  TYPE(dfti_descriptor), POINTER :: desc
375  REAL(DFTI_SPKP), INTENT(INOUT), DIMENSION(*) :: sSrcDst
376  END FUNCTION dfti_compute_backward_s
377 
378  FUNCTION dfti_compute_backward_c(desc,cSrcDst)
380  !DEC$ ATTRIBUTES C :: dfti_compute_backward_c
381  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_c
382  INTEGER dfti_compute_backward_c
383  TYPE(dfti_descriptor), POINTER :: desc
384  COMPLEX(DFTI_SPKP), INTENT(INOUT), DIMENSION(*) :: cSrcDst
385  END FUNCTION dfti_compute_backward_c
386 
387  FUNCTION dfti_compute_backward_ss(desc,sSrcDstRe,sSrcDstIm)
389  !DEC$ ATTRIBUTES C :: dfti_compute_backward_ss
390  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_ss
391  INTEGER dfti_compute_backward_ss
392  TYPE(dfti_descriptor), POINTER :: desc
393  REAL(DFTI_SPKP), DIMENSION(*) :: sSrcDstRe
394  REAL(DFTI_SPKP), DIMENSION(*) :: sSrcDstIm
395  END FUNCTION dfti_compute_backward_ss
396 
397  FUNCTION dfti_compute_backward_cs(desc,cSrc,sDst)
399  !DEC$ ATTRIBUTES C :: dfti_compute_backward_cs
400  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_cs
401  INTEGER dfti_compute_backward_cs
402  TYPE(dfti_descriptor), POINTER :: desc
403  COMPLEX(DFTI_SPKP), INTENT(IN), DIMENSION(*) :: cSrc
404  REAL(DFTI_SPKP), INTENT(OUT), DIMENSION(*) :: sDst
405  END FUNCTION dfti_compute_backward_cs
406 
407  FUNCTION dfti_compute_backward_cc(desc,cSrc,cDst)
409  !DEC$ ATTRIBUTES C :: dfti_compute_backward_cc
410  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_cc
411  INTEGER dfti_compute_backward_cc
412  TYPE(dfti_descriptor), POINTER :: desc
413  COMPLEX(DFTI_SPKP), INTENT(IN), DIMENSION(*) :: cSrc
414  COMPLEX(DFTI_SPKP), INTENT(OUT), DIMENSION(*) :: cDst
415  END FUNCTION dfti_compute_backward_cc
416 
417  FUNCTION dfti_compute_backward_ssss(desc,sSrcRe,sSrcIm,sDstRe,sDstIm)
419  !DEC$ ATTRIBUTES C :: dfti_compute_backward_ssss
420  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_ssss
421  INTEGER dfti_compute_backward_ssss
422  TYPE(dfti_descriptor), POINTER :: desc
423  REAL(DFTI_SPKP), INTENT(IN), DIMENSION(*) :: sSrcRe
424  REAL(DFTI_SPKP), INTENT(IN), DIMENSION(*) :: sSrcIm
425  REAL(DFTI_SPKP), INTENT(OUT), DIMENSION(*) :: sDstRe
426  REAL(DFTI_SPKP), INTENT(OUT), DIMENSION(*) :: sDstIm
427  END FUNCTION dfti_compute_backward_ssss
428 
429  FUNCTION dfti_compute_backward_d(desc,dSrcDst)
431  !DEC$ ATTRIBUTES C :: dfti_compute_backward_d
432  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_d
433  INTEGER dfti_compute_backward_d
434  TYPE(dfti_descriptor), POINTER :: desc
435  REAL(DFTI_DPKP), INTENT(INOUT), DIMENSION(*) :: dSrcDst
436  END FUNCTION dfti_compute_backward_d
437 
438  FUNCTION dfti_compute_backward_z(desc,zSrcDst)
440  !DEC$ ATTRIBUTES C :: dfti_compute_backward_z
441  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_z
442  INTEGER dfti_compute_backward_z
443  TYPE(dfti_descriptor), POINTER :: desc
444  COMPLEX(DFTI_DPKP), INTENT(INOUT), DIMENSION(*) :: zSrcDst
445  END FUNCTION dfti_compute_backward_z
446 
447  FUNCTION dfti_compute_backward_dd(desc,dSrcDstRe,dSrcDstIm)
449  !DEC$ ATTRIBUTES C :: dfti_compute_backward_dd
450  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_dd
451  INTEGER dfti_compute_backward_dd
452  TYPE(dfti_descriptor), POINTER :: desc
453  REAL(DFTI_DPKP), DIMENSION(*) :: dSrcDstRe
454  REAL(DFTI_DPKP), DIMENSION(*) :: dSrcDstIm
455  END FUNCTION dfti_compute_backward_dd
456 
457  FUNCTION dfti_compute_backward_zd(desc,zSrc,dDst)
459  !DEC$ ATTRIBUTES C :: dfti_compute_backward_zd
460  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_zd
461  INTEGER dfti_compute_backward_zd
462  TYPE(dfti_descriptor), POINTER :: desc
463  COMPLEX(DFTI_DPKP), INTENT(IN), DIMENSION(*) :: zSrc
464  REAL(DFTI_DPKP), INTENT(OUT), DIMENSION(*) :: dDst
465  END FUNCTION dfti_compute_backward_zd
466 
467  FUNCTION dfti_compute_backward_zz(desc,zSrc,zDst)
469  !DEC$ ATTRIBUTES C :: dfti_compute_backward_zz
470  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_zz
471  INTEGER dfti_compute_backward_zz
472  TYPE(dfti_descriptor), POINTER :: desc
473  COMPLEX(DFTI_DPKP), INTENT(IN), DIMENSION(*) :: zSrc
474  COMPLEX(DFTI_DPKP), INTENT(OUT), DIMENSION(*) :: zDst
475  END FUNCTION dfti_compute_backward_zz
476 
477  FUNCTION dfti_compute_backward_dddd(desc,dSrcRe,dSrcIm,dDstRe,dDstIm)
479  !DEC$ ATTRIBUTES C :: dfti_compute_backward_dddd
480  !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_dddd
481  INTEGER dfti_compute_backward_dddd
482  TYPE(dfti_descriptor), POINTER :: desc
483  REAL(DFTI_DPKP), INTENT(IN), DIMENSION(*) :: dSrcRe
484  REAL(DFTI_DPKP), INTENT(IN), DIMENSION(*) :: dSrcIm
485  REAL(DFTI_DPKP), INTENT(OUT), DIMENSION(*) :: dDstRe
486  REAL(DFTI_DPKP), INTENT(OUT), DIMENSION(*) :: dDstIm
487  END FUNCTION dfti_compute_backward_dddd
488 
489  END INTERFACE dfticomputebackward
490 
492 
493  FUNCTION dfti_free_descriptor_external(desc)
495  !DEC$ ATTRIBUTES C :: dfti_free_descriptor_external
496  !DEC$ ATTRIBUTES REFERENCE :: dfti_free_descriptor_external
497  INTEGER dfti_free_descriptor_external
498  TYPE(dfti_descriptor), POINTER :: desc
499  END FUNCTION dfti_free_descriptor_external
500 
501  END INTERFACE
502 
503  INTERFACE dftierrorclass
504 
505  FUNCTION dfti_error_class_external(Status, ErrorClass)
507  !DEC$ ATTRIBUTES C :: dfti_error_class_external
508  !DEC$ ATTRIBUTES REFERENCE :: dfti_error_class_external
509  LOGICAL dfti_error_class_external
510  INTEGER, INTENT(IN) :: Status
511  INTEGER, INTENT(IN) :: ErrorClass
512  END FUNCTION dfti_error_class_external
513 
514  END INTERFACE
515 
517 
518  FUNCTION dfti_error_message_external(Status)
520  !DEC$ ATTRIBUTES C :: dfti_error_message_external
521  !DEC$ ATTRIBUTES REFERENCE :: dfti_error_message_external
522  CHARACTER(LEN=DFTI_MAX_MESSAGE_LENGTH) :: dfti_error_message_external
523  INTEGER, INTENT(IN) :: Status
524  END FUNCTION dfti_error_message_external
525 
526  END INTERFACE
527 
528 END MODULE mkl_dfti