source: LMDZ6/trunk/libf/filtrez/mkl_dft_type.f90 @ 3981

Last change on this file since 3981 was 1907, checked in by lguez, 10 years ago

Added a copyright property to every file of the distribution, except
for the fcm files (which have their own copyright). Use svn propget on
a file to see the copyright. For instance:

$ svn propget copyright libf/phylmd/physiq.F90
Name of program: LMDZ
Creation date: 1984
Version: LMDZ5
License: CeCILL version 2
Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
See the license file in the root directory

Also added the files defining the CeCILL version 2 license, in French
and English, at the top of the LMDZ tree.

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
File size: 8.9 KB
Line 
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
30MODULE MKL_DFT_TYPE
31
32  TYPE, PUBLIC :: DFTI_DESCRIPTOR
33     PRIVATE
34     INTEGER :: dontuse
35     ! Structure of this type is not used in Fortran code
36     ! the pointer to this type is used only
37  END TYPE DFTI_DESCRIPTOR
38
39  !======================================================================
40  ! These real type kind parameters are not for direct use
41  !======================================================================
42
43  INTEGER, PARAMETER :: DFTI_SPKP = SELECTED_REAL_KIND(6,37)
44  INTEGER, PARAMETER :: DFTI_DPKP = SELECTED_REAL_KIND(15,307)
45
46  !======================================================================
47  ! Descriptor configuration parameters [default values in brackets]
48  !======================================================================
49
50  ! Domain for forward transform. No default value
51  INTEGER, PARAMETER :: DFTI_FORWARD_DOMAIN = 0
52
53  ! Dimensionality, or rank. No default value
54  INTEGER, PARAMETER :: DFTI_DIMENSION = 1
55
56  ! Length(s) of transform. No default value
57  INTEGER, PARAMETER :: DFTI_LENGTHS = 2
58
59  ! Floating point precision. No default value
60  INTEGER, PARAMETER :: DFTI_PRECISION = 3
61
62  ! Scale factor for forward transform [1.0]
63  INTEGER, PARAMETER :: DFTI_FORWARD_SCALE = 4
64
65  ! Scale factor for backward transform [1.0]
66  INTEGER, PARAMETER :: DFTI_BACKWARD_SCALE = 5
67
68  ! Exponent sign for forward transform [DFTI_NEGATIVE]
69  ! INTEGER, PARAMETER :: DFTI_FORWARD_SIGN = 6 ! NOT IMPLEMENTED
70
71  ! Number of data sets to be transformed [1]
72  INTEGER, PARAMETER :: DFTI_NUMBER_OF_TRANSFORMS = 7
73
74  ! Storage of finite complex-valued sequences in complex domain
75  ! [DFTI_COMPLEX_COMPLEX]
76  INTEGER, PARAMETER :: DFTI_COMPLEX_STORAGE = 8
77
78  ! Storage of finite real-valued sequences in real domain
79  ! [DFTI_REAL_REAL]
80  INTEGER, PARAMETER :: DFTI_REAL_STORAGE = 9
81
82  ! Storage of finite complex-valued sequences in conjugate-even
83  ! domain [DFTI_COMPLEX_REAL]
84  INTEGER, PARAMETER :: DFTI_CONJUGATE_EVEN_STORAGE = 10
85
86  ! Placement of result [DFTI_INPLACE]
87  INTEGER, PARAMETER :: DFTI_PLACEMENT = 11
88
89  ! Generalized strides for input data layout
90  ! [tigth, col-major for Fortran]
91  INTEGER, PARAMETER :: DFTI_INPUT_STRIDES = 12
92
93  ! Generalized strides for output data layout
94  ! [tigth, col-major for Fortran]
95  INTEGER, PARAMETER :: DFTI_OUTPUT_STRIDES = 13
96
97  ! Distance between first input elements for multiple transforms [0]
98  INTEGER, PARAMETER :: DFTI_INPUT_DISTANCE = 14
99
100  ! Distance between first output elements for multiple transforms [0]
101  INTEGER, PARAMETER :: DFTI_OUTPUT_DISTANCE = 15
102
103  ! Effort spent in initialization [DFTI_MEDIUM]
104  ! INTEGER, PARAMETER :: DFTI_INITIALIZATION_EFFORT = 16 ! NOT IMPLEMENTED
105
106  ! Use of workspace during computation [DFTI_ALLOW]
107  INTEGER, PARAMETER :: DFTI_WORKSPACE = 17
108
109  ! Ordering of the result [DFTI_ORDERED]
110  INTEGER, PARAMETER :: DFTI_ORDERING = 18
111
112  ! Possible transposition of result [DFTI_NONE]
113  INTEGER, PARAMETER :: DFTI_TRANSPOSE = 19
114
115  ! User-settable descriptor name [""]
116  INTEGER, PARAMETER :: DFTI_DESCRIPTOR_NAME = 20
117
118  ! Packing format for DFTI_COMPLEX_REAL storage of finite
119  ! conjugate-even sequences [DFTI_CCS_FORMAT]
120  INTEGER, PARAMETER :: DFTI_PACKED_FORMAT = 21
121
122  ! Commit status of the descriptor. Read-only parameter
123  INTEGER, PARAMETER :: DFTI_COMMIT_STATUS = 22
124
125  ! Version string for this DFTI implementation. Read-only parameter
126  INTEGER, PARAMETER :: DFTI_VERSION = 23
127
128  ! Ordering of the forward transform. Read-only parameter
129  ! INTEGER, PARAMETER :: DFTI_FORWARD_ORDERING = 24 ! NOT IMPLEMENTED
130
131  ! Ordering of the backward transform. Read-only parameter
132  ! INTEGER, PARAMETER :: DFTI_BACKWARD_ORDERING = 25 ! NOT IMPLEMENTED
133
134  ! Number of user threads that share the descriptor [1]
135  INTEGER, PARAMETER :: DFTI_NUMBER_OF_USER_THREADS = 26
136
137  !======================================================================
138  ! Values of the descriptor configuration parameters
139  !======================================================================
140
141  ! DFTI_COMMIT_STATUS
142  INTEGER, PARAMETER :: DFTI_COMMITTED = 30
143  INTEGER, PARAMETER :: DFTI_UNCOMMITTED = 31
144
145  ! DFTI_FORWARD_DOMAIN
146  INTEGER, PARAMETER :: DFTI_COMPLEX = 32
147  INTEGER, PARAMETER :: DFTI_REAL = 33
148  ! INTEGER, PARAMETER :: DFTI_CONJUGATE_EVEN = 34 ! NOT IMPLEMENTED
149
150  ! DFTI_PRECISION
151  INTEGER, PARAMETER :: DFTI_SINGLE = 35
152  INTEGER, PARAMETER :: DFTI_DOUBLE = 36
153
154  ! DFTI_PRECISION for reduced size of statically linked application.
155  ! Recommended use: modify statement 'USE MKL_DFTI' in your program,
156  ! so that it reads as either of:
157  ! USE MKL_DFTI, FORGET=>DFTI_SINGLE, DFTI_SINGLE=>DFTI_SINGLE_R
158  ! USE MKL_DFTI, FORGET=>DFTI_DOUBLE, DFTI_DOUBLE=>DFTI_DOUBLE_R
159  ! where word 'FORGET' can be any name not used in the program.
160  REAL(DFTI_SPKP), PARAMETER :: DFTI_SINGLE_R = 35
161  REAL(DFTI_DPKP), PARAMETER :: DFTI_DOUBLE_R = 36
162
163  ! DFTI_FORWARD_SIGN
164  ! INTEGER, PARAMETER :: DFTI_NEGATIVE = 37 ! NOT IMPLEMENTED
165  ! INTEGER, PARAMETER :: DFTI_POSITIVE = 38 ! NOT IMPLEMENTED
166
167  ! DFTI_COMPLEX_STORAGE and DFTI_CONJUGATE_EVEN_STORAGE
168  INTEGER, PARAMETER :: DFTI_COMPLEX_COMPLEX = 39
169  INTEGER, PARAMETER :: DFTI_COMPLEX_REAL = 40
170
171  ! DFTI_REAL_STORAGE
172  INTEGER, PARAMETER :: DFTI_REAL_COMPLEX = 41
173  INTEGER, PARAMETER :: DFTI_REAL_REAL = 42
174
175  ! DFTI_PLACEMENT
176  INTEGER, PARAMETER :: DFTI_INPLACE = 43 ! Result overwrites input
177  INTEGER, PARAMETER :: DFTI_NOT_INPLACE  = 44 ! Have another place for result
178
179  ! DFTI_INITIALIZATION_EFFORT
180  ! INTEGER, PARAMETER :: DFTI_LOW = 45 ! NOT IMPLEMENTED
181  ! INTEGER, PARAMETER :: DFTI_MEDIUM = 46 ! NOT IMPLEMENTED
182  ! INTEGER, PARAMETER :: DFTI_HIGH = 47 ! NOT IMPLEMENTED
183
184  ! DFTI_ORDERING
185  INTEGER, PARAMETER :: DFTI_ORDERED = 48
186  INTEGER, PARAMETER :: DFTI_BACKWARD_SCRAMBLED = 49
187  ! INTEGER, PARAMETER :: DFTI_FORWARD_SCRAMBLED  = 50 ! NOT IMPLEMENTED
188
189  ! Allow/avoid certain usages
190  INTEGER, PARAMETER :: DFTI_ALLOW = 51 ! Allow transposition or workspace
191  INTEGER, PARAMETER :: DFTI_AVOID = 52 ! Avoid auxiliary storage
192  INTEGER, PARAMETER :: DFTI_NONE = 53
193
194  ! DFTI_PACKED_FORMAT
195  ! (for storing congugate-even finite sequence in real array)
196  INTEGER, PARAMETER :: DFTI_CCS_FORMAT = 54  ! Complex conjugate-symmetric
197  INTEGER, PARAMETER :: DFTI_PACK_FORMAT = 55 ! Pack format for real DFT
198  INTEGER, PARAMETER :: DFTI_PERM_FORMAT = 56 ! Perm format for real DFT
199  INTEGER, PARAMETER :: DFTI_CCE_FORMAT = 57  ! Complex conjugate-even
200
201  !======================================================================
202  ! Error classes
203  !======================================================================
204  INTEGER, PARAMETER :: DFTI_NO_ERROR = 0
205  INTEGER, PARAMETER :: DFTI_MEMORY_ERROR = 1
206  INTEGER, PARAMETER :: DFTI_INVALID_CONFIGURATION = 2
207  INTEGER, PARAMETER :: DFTI_INCONSISTENT_CONFIGURATION = 3
208  INTEGER, PARAMETER :: DFTI_MULTITHREADED_ERROR = 4
209  INTEGER, PARAMETER :: DFTI_BAD_DESCRIPTOR = 5
210  INTEGER, PARAMETER :: DFTI_UNIMPLEMENTED = 6
211  INTEGER, PARAMETER :: DFTI_MKL_INTERNAL_ERROR = 7
212  INTEGER, PARAMETER :: DFTI_NUMBER_OF_THREADS_ERROR = 8
213  INTEGER, PARAMETER :: DFTI_1D_LENGTH_EXCEEDS_INT32 = 9
214
215  ! Maximum length of error string
216  INTEGER, PARAMETER :: DFTI_MAX_MESSAGE_LENGTH = 80
217
218  ! Maximum length of user-settable descriptor name
219  INTEGER, PARAMETER :: DFTI_MAX_NAME_LENGTH = 10
220
221  ! Maximum length of MKL version string
222  INTEGER, PARAMETER :: DFTI_VERSION_LENGTH = 198
223
224  ! (deprecated parameter)
225  INTEGER, PARAMETER :: DFTI_ERROR_CLASS = 60
226
227END MODULE MKL_DFT_TYPE
Note: See TracBrowser for help on using the repository browser.