| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770 |
- !===============================================================================
- ! Copyright 2002-2022 Intel Corporation.
- !
- ! This software and the related documents are Intel copyrighted materials, and
- ! your use of them is governed by the express license under which they were
- ! provided to you (License). Unless the License provides otherwise, you may not
- ! use, modify, copy, publish, distribute, disclose or transmit this software or
- ! the related documents without Intel's prior written permission.
- !
- ! This software and the related documents are provided as is, with no express
- ! or implied warranties, other than those that are expressly stated in the
- ! License.
- !===============================================================================
- ! Content:
- ! Intel(R) oneAPI Math Kernel Library (oneMKL)
- ! Discrete Fourier Transform Interface (DFTI)
- !*****************************************************************************
- MODULE MKL_DFT_TYPE
- TYPE, PUBLIC :: DFTI_DESCRIPTOR
- PRIVATE
- INTEGER :: dontuse
- ! Structure of this type is not used in Fortran code
- ! the pointer to this type is used only
- END TYPE DFTI_DESCRIPTOR
- !======================================================================
- ! These real type kind parameters are not for direct use
- !======================================================================
- INTEGER, PARAMETER :: DFTI_SPKP = SELECTED_REAL_KIND(6,37)
- INTEGER, PARAMETER :: DFTI_DPKP = SELECTED_REAL_KIND(15,307)
- !======================================================================
- ! Descriptor configuration parameters [default values in brackets]
- !======================================================================
- ! Domain for forward transform. No default value
- INTEGER, PARAMETER :: DFTI_FORWARD_DOMAIN = 0
- ! Dimensionality, or rank. No default value
- INTEGER, PARAMETER :: DFTI_DIMENSION = 1
- ! Length(s) of transform. No default value
- INTEGER, PARAMETER :: DFTI_LENGTHS = 2
- ! Floating point precision. No default value
- INTEGER, PARAMETER :: DFTI_PRECISION = 3
- ! Scale factor for forward transform [1.0]
- INTEGER, PARAMETER :: DFTI_FORWARD_SCALE = 4
- ! Scale factor for backward transform [1.0]
- INTEGER, PARAMETER :: DFTI_BACKWARD_SCALE = 5
- ! Exponent sign for forward transform [DFTI_NEGATIVE]
- ! INTEGER, PARAMETER :: DFTI_FORWARD_SIGN = 6 ! NOT IMPLEMENTED
- ! Number of data sets to be transformed [1]
- INTEGER, PARAMETER :: DFTI_NUMBER_OF_TRANSFORMS = 7
- ! Storage of finite complex-valued sequences in complex domain
- ! [DFTI_COMPLEX_COMPLEX]
- INTEGER, PARAMETER :: DFTI_COMPLEX_STORAGE = 8
- ! Storage of finite real-valued sequences in real domain
- ! [DFTI_REAL_REAL]
- INTEGER, PARAMETER :: DFTI_REAL_STORAGE = 9
- ! Storage of finite complex-valued sequences in conjugate-even
- ! domain [DFTI_COMPLEX_REAL]
- INTEGER, PARAMETER :: DFTI_CONJUGATE_EVEN_STORAGE = 10
- ! Placement of result [DFTI_INPLACE]
- INTEGER, PARAMETER :: DFTI_PLACEMENT = 11
- ! Generalized strides for input data layout
- ! [tight, col-major for Fortran]
- INTEGER, PARAMETER :: DFTI_INPUT_STRIDES = 12
- ! Generalized strides for output data layout
- ! [tight, col-major for Fortran]
- INTEGER, PARAMETER :: DFTI_OUTPUT_STRIDES = 13
- ! Distance between first input elements for multiple transforms [0]
- INTEGER, PARAMETER :: DFTI_INPUT_DISTANCE = 14
- ! Distance between first output elements for multiple transforms [0]
- INTEGER, PARAMETER :: DFTI_OUTPUT_DISTANCE = 15
- ! Effort spent in initialization [DFTI_MEDIUM]
- ! INTEGER, PARAMETER :: DFTI_INITIALIZATION_EFFORT = 16 ! NOT IMPLEMENTED
- ! Use of workspace during computation [DFTI_ALLOW]
- INTEGER, PARAMETER :: DFTI_WORKSPACE = 17
- ! Ordering of the result [DFTI_ORDERED]
- INTEGER, PARAMETER :: DFTI_ORDERING = 18
- ! Possible transposition of result [DFTI_NONE]
- INTEGER, PARAMETER :: DFTI_TRANSPOSE = 19
- ! User-settable descriptor name [""]
- INTEGER, PARAMETER :: DFTI_DESCRIPTOR_NAME = 20
- ! Packing format for DFTI_COMPLEX_REAL storage of finite
- ! conjugate-even sequences [DFTI_CCS_FORMAT]
- INTEGER, PARAMETER :: DFTI_PACKED_FORMAT = 21
- ! Commit status of the descriptor. Read-only parameter
- INTEGER, PARAMETER :: DFTI_COMMIT_STATUS = 22
- ! Version string for this DFTI implementation. Read-only parameter
- INTEGER, PARAMETER :: DFTI_VERSION = 23
- ! Ordering of the forward transform. Read-only parameter
- ! INTEGER, PARAMETER :: DFTI_FORWARD_ORDERING = 24 ! NOT IMPLEMENTED
- ! Ordering of the backward transform. Read-only parameter
- ! INTEGER, PARAMETER :: DFTI_BACKWARD_ORDERING = 25 ! NOT IMPLEMENTED
- ! Number of user threads that share the descriptor [1]
- INTEGER, PARAMETER :: DFTI_NUMBER_OF_USER_THREADS = 26
- ! Limit the number of threads used by this descriptor [0 = don't care]
- INTEGER, PARAMETER :: DFTI_THREAD_LIMIT = 27
- !======================================================================
- ! Values of the descriptor configuration parameters
- !======================================================================
- ! DFTI_COMMIT_STATUS
- INTEGER, PARAMETER :: DFTI_COMMITTED = 30
- INTEGER, PARAMETER :: DFTI_UNCOMMITTED = 31
- ! DFTI_FORWARD_DOMAIN
- INTEGER, PARAMETER :: DFTI_COMPLEX = 32
- INTEGER, PARAMETER :: DFTI_REAL = 33
- ! INTEGER, PARAMETER :: DFTI_CONJUGATE_EVEN = 34 ! NOT IMPLEMENTED
- ! DFTI_PRECISION
- INTEGER, PARAMETER :: DFTI_SINGLE = 35
- INTEGER, PARAMETER :: DFTI_DOUBLE = 36
- ! DFTI_PRECISION for reduced size of statically linked application.
- ! Recommended use: modify statement 'USE MKL_DFTI' in your program,
- ! so that it reads as either of:
- ! USE MKL_DFTI, FORGET=>DFTI_SINGLE, DFTI_SINGLE=>DFTI_SINGLE_R
- ! USE MKL_DFTI, FORGET=>DFTI_DOUBLE, DFTI_DOUBLE=>DFTI_DOUBLE_R
- ! where word 'FORGET' can be any name not used in the program.
- REAL(DFTI_SPKP), PARAMETER :: DFTI_SINGLE_R = REAL(35)
- REAL(DFTI_DPKP), PARAMETER :: DFTI_DOUBLE_R = REAL(36)
- ! DFTI_FORWARD_SIGN
- ! INTEGER, PARAMETER :: DFTI_NEGATIVE = 37 ! NOT IMPLEMENTED
- ! INTEGER, PARAMETER :: DFTI_POSITIVE = 38 ! NOT IMPLEMENTED
- ! DFTI_COMPLEX_STORAGE and DFTI_CONJUGATE_EVEN_STORAGE
- INTEGER, PARAMETER :: DFTI_COMPLEX_COMPLEX = 39
- INTEGER, PARAMETER :: DFTI_COMPLEX_REAL = 40
- ! DFTI_REAL_STORAGE
- INTEGER, PARAMETER :: DFTI_REAL_COMPLEX = 41
- INTEGER, PARAMETER :: DFTI_REAL_REAL = 42
- ! DFTI_PLACEMENT
- INTEGER, PARAMETER :: DFTI_INPLACE = 43 ! Result overwrites input
- INTEGER, PARAMETER :: DFTI_NOT_INPLACE = 44 ! Have another place for result
- ! DFTI_INITIALIZATION_EFFORT
- ! INTEGER, PARAMETER :: DFTI_LOW = 45 ! NOT IMPLEMENTED
- ! INTEGER, PARAMETER :: DFTI_MEDIUM = 46 ! NOT IMPLEMENTED
- ! INTEGER, PARAMETER :: DFTI_HIGH = 47 ! NOT IMPLEMENTED
- ! DFTI_ORDERING
- INTEGER, PARAMETER :: DFTI_ORDERED = 48
- INTEGER, PARAMETER :: DFTI_BACKWARD_SCRAMBLED = 49
- ! INTEGER, PARAMETER :: DFTI_FORWARD_SCRAMBLED = 50 ! NOT IMPLEMENTED
- ! Allow/avoid certain usages
- INTEGER, PARAMETER :: DFTI_ALLOW = 51 ! Allow transposition or workspace
- INTEGER, PARAMETER :: DFTI_AVOID = 52 ! Avoid auxiliary storage
- INTEGER, PARAMETER :: DFTI_NONE = 53
- ! DFTI_PACKED_FORMAT
- ! (for storing congugate-even finite sequence in real array)
- INTEGER, PARAMETER :: DFTI_CCS_FORMAT = 54 ! Complex conjugate-symmetric
- INTEGER, PARAMETER :: DFTI_PACK_FORMAT = 55 ! Pack format for real DFT
- INTEGER, PARAMETER :: DFTI_PERM_FORMAT = 56 ! Perm format for real DFT
- INTEGER, PARAMETER :: DFTI_CCE_FORMAT = 57 ! Complex conjugate-even
- !======================================================================
- ! Error classes
- !======================================================================
- INTEGER, PARAMETER :: DFTI_NO_ERROR = 0
- INTEGER, PARAMETER :: DFTI_MEMORY_ERROR = 1
- INTEGER, PARAMETER :: DFTI_INVALID_CONFIGURATION = 2
- INTEGER, PARAMETER :: DFTI_INCONSISTENT_CONFIGURATION = 3
- INTEGER, PARAMETER :: DFTI_MULTITHREADED_ERROR = 4
- INTEGER, PARAMETER :: DFTI_BAD_DESCRIPTOR = 5
- INTEGER, PARAMETER :: DFTI_UNIMPLEMENTED = 6
- INTEGER, PARAMETER :: DFTI_MKL_INTERNAL_ERROR = 7
- INTEGER, PARAMETER :: DFTI_NUMBER_OF_THREADS_ERROR = 8
- INTEGER, PARAMETER :: DFTI_1D_LENGTH_EXCEEDS_INT32 = 9
- INTEGER, PARAMETER :: DFTI_1D_MEMORY_EXCEEDS_INT32 = 9
- ! Maximum length of error string
- INTEGER, PARAMETER :: DFTI_MAX_MESSAGE_LENGTH = 80
- ! Maximum length of user-settable descriptor name
- INTEGER, PARAMETER :: DFTI_MAX_NAME_LENGTH = 10
- ! Maximum length of oneMKL version string
- INTEGER, PARAMETER :: DFTI_VERSION_LENGTH = 198
- END MODULE MKL_DFT_TYPE
- MODULE MKL_DFTI
- USE MKL_DFT_TYPE
- INTERFACE DftiCreateDescriptor
- ! overloading of DftiCreateDescriptor for 1D DFT
- FUNCTION dfti_create_descriptor_1d(desc, precision, domain, dim, length)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_create_descriptor_1d
- !DEC$ ATTRIBUTES REFERENCE :: dfti_create_descriptor_1d
- INTEGER dfti_create_descriptor_1d
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- INTEGER, INTENT(IN) :: precision
- INTEGER, INTENT(IN) :: domain
- INTEGER, INTENT(IN) :: dim, length
- END FUNCTION dfti_create_descriptor_1d
- ! overloading of DftiCreateDescriptor for nD DFT
- FUNCTION dfti_create_descriptor_highd(desc, precision, domain, dim,length)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_create_descriptor_highd
- !DEC$ ATTRIBUTES REFERENCE :: dfti_create_descriptor_highd
- INTEGER dfti_create_descriptor_highd
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- INTEGER, INTENT(IN) :: precision
- INTEGER, INTENT(IN) :: domain
- INTEGER, INTENT(IN) :: dim
- INTEGER, INTENT(IN), DIMENSION(*) :: length
- END FUNCTION dfti_create_descriptor_highd
- ! overloading of DftiCreateDescriptor for SP 1D DFT
- ! second parameter (precision) should be any REAL*4 value
- ! for dispatching during compile time
- FUNCTION dfti_create_descriptor_s_1d(desc, s, dom, one, dim)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_create_descriptor_s_1d
- !DEC$ ATTRIBUTES REFERENCE :: dfti_create_descriptor_s_1d
- INTEGER dfti_create_descriptor_s_1d
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- REAL(DFTI_SPKP), INTENT(IN) :: s
- INTEGER, INTENT(IN) :: dom
- INTEGER, INTENT(IN) :: one
- INTEGER, INTENT(IN) :: dim
- END FUNCTION dfti_create_descriptor_s_1d
- ! overloading of DftiCreateDescriptor for SP nD DFT
- ! second parameter (precision) should be any REAL*4 value
- ! for dispatching during compile time
- FUNCTION dfti_create_descriptor_s_md(desc, s, dom, many, dims)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_create_descriptor_s_md
- !DEC$ ATTRIBUTES REFERENCE :: dfti_create_descriptor_s_md
- INTEGER dfti_create_descriptor_s_md
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- REAL(DFTI_SPKP), INTENT(IN) :: s
- INTEGER, INTENT(IN) :: dom
- INTEGER, INTENT(IN) :: many
- INTEGER, INTENT(IN), DIMENSION(*) :: dims
- END FUNCTION dfti_create_descriptor_s_md
- ! overloading of DftiCreateDescriptor for DP 1D DFT
- ! second parameter (precision) should be any REAL*8 value
- ! for dispatching during compile time
- FUNCTION dfti_create_descriptor_d_1d(desc, d, dom, one, dim)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_create_descriptor_d_1d
- !DEC$ ATTRIBUTES REFERENCE :: dfti_create_descriptor_d_1d
- INTEGER dfti_create_descriptor_d_1d
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- REAL(DFTI_DPKP), INTENT(IN) :: d
- INTEGER, INTENT(IN) :: dom
- INTEGER, INTENT(IN) :: one
- INTEGER, INTENT(IN) :: dim
- END FUNCTION dfti_create_descriptor_d_1d
- ! overloading of DftiCreateDescriptor for DP nD DFT
- ! second parameter (precision) should be any REAL*8 value
- ! for dispatching during compile time
- FUNCTION dfti_create_descriptor_d_md(desc, d, dom, many, dims)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_create_descriptor_d_md
- !DEC$ ATTRIBUTES REFERENCE :: dfti_create_descriptor_d_md
- INTEGER dfti_create_descriptor_d_md
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- REAL(DFTI_DPKP), INTENT(IN) :: d
- INTEGER, INTENT(IN) :: dom
- INTEGER, INTENT(IN) :: many
- INTEGER, INTENT(IN), DIMENSION(*) :: dims
- END FUNCTION dfti_create_descriptor_d_md
- END INTERFACE
- INTERFACE DftiCopyDescriptor
- FUNCTION dfti_copy_descriptor_external(desc, new_desc)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_copy_descriptor_external
- !DEC$ ATTRIBUTES REFERENCE :: dfti_copy_descriptor_external
- INTEGER dfti_copy_descriptor_external
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- TYPE(DFTI_DESCRIPTOR), POINTER :: new_desc
- END FUNCTION dfti_copy_descriptor_external
- END INTERFACE
- INTERFACE DftiCommitDescriptor
- FUNCTION dfti_commit_descriptor_external(desc)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_commit_descriptor_external
- !DEC$ ATTRIBUTES REFERENCE :: dfti_commit_descriptor_external
- INTEGER dfti_commit_descriptor_external
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- END FUNCTION dfti_commit_descriptor_external
- END INTERFACE
- INTERFACE DftiSetValue
- ! overloading of DftiSetValue for integer value
- FUNCTION dfti_set_value_intval(desc, OptName, IntVal)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_set_value_intval
- !DEC$ ATTRIBUTES REFERENCE :: dfti_set_value_intval
- INTEGER dfti_set_value_intval
- INTEGER, INTENT(IN) :: OptName
- INTEGER, INTENT(IN) :: IntVal
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- END FUNCTION dfti_set_value_intval
- ! overloading of DftiSetValue for SP value
- FUNCTION dfti_set_value_sglval(desc, OptName, sglval)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_set_value_sglval
- !DEC$ ATTRIBUTES REFERENCE :: dfti_set_value_sglval
- INTEGER dfti_set_value_sglval
- INTEGER, INTENT(IN) :: OptName
- REAL(DFTI_SPKP), INTENT(IN) :: sglval
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- END FUNCTION dfti_set_value_sglval
- ! overloading of DftiSetValue for DP value
- FUNCTION dfti_set_value_dblval(desc, OptName, DblVal)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_set_value_dblval
- !DEC$ ATTRIBUTES REFERENCE :: dfti_set_value_dblval
- INTEGER dfti_set_value_dblval
- INTEGER, INTENT(IN) :: OptName
- REAL(DFTI_DPKP), INTENT(IN) :: DblVal
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- END FUNCTION dfti_set_value_dblval
- ! overloading of DftiSetValue for integer vector
- FUNCTION dfti_set_value_intvec(desc, OptName, IntVec)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_set_value_intvec
- !DEC$ ATTRIBUTES REFERENCE :: dfti_set_value_intvec
- INTEGER dfti_set_value_intvec
- INTEGER, INTENT(IN) :: OptName
- INTEGER, INTENT(IN), DIMENSION(*) :: IntVec
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- END FUNCTION dfti_set_value_intvec
- ! overloading of DftiSetValue for char vector
- FUNCTION dfti_set_value_chars(desc, OptName, Chars)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_set_value_chars
- !DEC$ ATTRIBUTES REFERENCE :: dfti_set_value_chars
- INTEGER dfti_set_value_chars
- INTEGER, INTENT(IN) :: OptName
- CHARACTER(*), INTENT(IN) :: Chars
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- END FUNCTION dfti_set_value_chars
- END INTERFACE
- INTERFACE DftiGetValue
- ! overloading of DftiGetValue for integer value
- FUNCTION dfti_get_value_intval(desc, OptName, IntVal)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_get_value_intval
- !DEC$ ATTRIBUTES REFERENCE :: dfti_get_value_intval
- INTEGER dfti_get_value_intval
- INTEGER, INTENT(IN) :: OptName
- INTEGER, INTENT(OUT) :: IntVal
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- END FUNCTION dfti_get_value_intval
- ! overloading of DftiGetValue for SP value
- FUNCTION dfti_get_value_sglval(desc, OptName, sglval)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_get_value_sglval
- !DEC$ ATTRIBUTES REFERENCE :: dfti_get_value_sglval
- INTEGER dfti_get_value_sglval
- INTEGER, INTENT(IN) :: OptName
- REAL(DFTI_SPKP), INTENT(OUT) :: sglval
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- END FUNCTION dfti_get_value_sglval
- ! overloading of DftiGetValue for DP value
- FUNCTION dfti_get_value_dblval(desc, OptName, DblVal)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_get_value_dblval
- !DEC$ ATTRIBUTES REFERENCE :: dfti_get_value_dblval
- INTEGER dfti_get_value_dblval
- INTEGER, INTENT(IN) :: OptName
- REAL(DFTI_DPKP), INTENT(OUT) :: DblVal
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- END FUNCTION dfti_get_value_dblval
- ! overloading of DftiGetValue for integer vector
- FUNCTION dfti_get_value_intvec(desc, OptName, IntVec)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_get_value_intvec
- !DEC$ ATTRIBUTES REFERENCE :: dfti_get_value_intvec
- INTEGER dfti_get_value_intvec
- INTEGER, INTENT(IN) :: OptName
- INTEGER, INTENT(OUT), DIMENSION(*) :: IntVec
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- END FUNCTION dfti_get_value_intvec
- ! overloading of DftiGetValue for char vector
- FUNCTION dfti_get_value_chars(desc, OptName, Chars)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_get_value_chars
- !DEC$ ATTRIBUTES REFERENCE :: dfti_get_value_chars
- INTEGER dfti_get_value_chars
- INTEGER, INTENT(IN) :: OptName
- CHARACTER(*), INTENT(OUT) :: Chars
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- END FUNCTION dfti_get_value_chars
- END INTERFACE
- INTERFACE DftiComputeForward
- ! overloading of DftiComputeForward for SP R2C DFT (inplace)
- FUNCTION dfti_compute_forward_s(desc,sSrcDst)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_forward_s
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_s
- INTEGER dfti_compute_forward_s
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- REAL(DFTI_SPKP), INTENT(INOUT), DIMENSION(*) :: sSrcDst
- END FUNCTION dfti_compute_forward_s
- ! overloading of DftiComputeForward for SP C2C DFT (inplace)
- FUNCTION dfti_compute_forward_c(desc,cSrcDst)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_forward_c
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_c
- INTEGER dfti_compute_forward_c
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- COMPLEX(DFTI_SPKP), INTENT(INOUT), DIMENSION(*) :: cSrcDst
- END FUNCTION dfti_compute_forward_c
- ! overloading of DftiComputeForward for SP C2C DFT (inplace, split complex)
- FUNCTION dfti_compute_forward_ss(desc,sSrcDstRe,sSrcDstIm)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_forward_ss
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_ss
- INTEGER dfti_compute_forward_ss
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- REAL(DFTI_SPKP), DIMENSION(*) :: sSrcDstRe
- REAL(DFTI_SPKP), DIMENSION(*) :: sSrcDstIm
- END FUNCTION dfti_compute_forward_ss
- ! overloading of DftiComputeForward for SP R2C DFT (out-of-place)
- FUNCTION dfti_compute_forward_sc(desc,sSrc,cDst)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_forward_sc
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_sc
- INTEGER dfti_compute_forward_sc
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- REAL(DFTI_SPKP), INTENT(IN), DIMENSION(*) :: sSrc
- COMPLEX(DFTI_SPKP), INTENT(OUT), DIMENSION(*) :: cDst
- END FUNCTION dfti_compute_forward_sc
- ! overloading of DftiComputeForward for SP C2C DFT (out-of-place)
- FUNCTION dfti_compute_forward_cc(desc,cSrc,cDst)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_forward_cc
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_cc
- INTEGER dfti_compute_forward_cc
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- COMPLEX(DFTI_SPKP), INTENT(IN), DIMENSION(*) :: cSrc
- COMPLEX(DFTI_SPKP), INTENT(OUT), DIMENSION(*) :: cDst
- END FUNCTION dfti_compute_forward_cc
- ! overloading of DftiComputeForward for SP C2C DFT (out-of-place, split
- ! complex)
- FUNCTION dfti_compute_forward_ssss(desc,sSrcRe,sSrcIm,sDstRe,sDstIm)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_forward_ssss
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_ssss
- INTEGER dfti_compute_forward_ssss
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- REAL(DFTI_SPKP), INTENT(IN), DIMENSION(*) :: sSrcRe
- REAL(DFTI_SPKP), INTENT(IN), DIMENSION(*) :: sSrcIm
- REAL(DFTI_SPKP), INTENT(OUT), DIMENSION(*) :: sDstRe
- REAL(DFTI_SPKP), INTENT(OUT), DIMENSION(*) :: sDstIm
- END FUNCTION dfti_compute_forward_ssss
- ! overloading of DftiComputeForward for DP R2C DFT (inplace)
- FUNCTION dfti_compute_forward_d(desc,dSrcDst)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_forward_d
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_d
- INTEGER dfti_compute_forward_d
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- REAL(DFTI_DPKP), INTENT(INOUT), DIMENSION(*) :: dSrcDst
- END FUNCTION dfti_compute_forward_d
- ! overloading of DftiComputeForward for DP C2C DFT (inplace)
- FUNCTION dfti_compute_forward_z(desc,zSrcDst)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_forward_z
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_z
- INTEGER dfti_compute_forward_z
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- COMPLEX(DFTI_DPKP), INTENT(INOUT), DIMENSION(*) :: zSrcDst
- END FUNCTION dfti_compute_forward_z
- ! overloading of DftiComputeForward for DP C2C DFT (inplace, split complex)
- FUNCTION dfti_compute_forward_dd(desc,dSrcDstRe,dSrcDstIm)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_forward_dd
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_dd
- INTEGER dfti_compute_forward_dd
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- REAL(DFTI_DPKP), DIMENSION(*) :: dSrcDstRe
- REAL(DFTI_DPKP), DIMENSION(*) :: dSrcDstIm
- END FUNCTION dfti_compute_forward_dd
- ! overloading of DftiComputeForward for DP R2C DFT (out-of-place)
- FUNCTION dfti_compute_forward_dz(desc,dSrc,zDst)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_forward_dz
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_dz
- INTEGER dfti_compute_forward_dz
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- REAL(DFTI_DPKP), INTENT(IN), DIMENSION(*) :: dSrc
- COMPLEX(DFTI_DPKP), INTENT(OUT), DIMENSION(*) :: zDst
- END FUNCTION dfti_compute_forward_dz
- ! overloading of DftiComputeForward for DP C2C DFT (out-of-place)
- FUNCTION dfti_compute_forward_zz(desc,zSrc,zDst)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_forward_zz
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_zz
- INTEGER dfti_compute_forward_zz
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- COMPLEX(DFTI_DPKP), INTENT(IN), DIMENSION(*) :: zSrc
- COMPLEX(DFTI_DPKP), INTENT(OUT), DIMENSION(*) :: zDst
- END FUNCTION dfti_compute_forward_zz
- ! overloading of DftiComputeForward for DP C2C DFT (out-of-place, split
- ! complex)
- FUNCTION dfti_compute_forward_dddd(desc,dSrcRe,dSrcIm,dDstRe,dDstIm)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_forward_dddd
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_forward_dddd
- INTEGER dfti_compute_forward_dddd
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- REAL(DFTI_DPKP), INTENT(IN), DIMENSION(*) :: dSrcRe
- REAL(DFTI_DPKP), INTENT(IN), DIMENSION(*) :: dSrcIm
- REAL(DFTI_DPKP), INTENT(OUT), DIMENSION(*) :: dDstRe
- REAL(DFTI_DPKP), INTENT(OUT), DIMENSION(*) :: dDstIm
- END FUNCTION dfti_compute_forward_dddd
- END INTERFACE DftiComputeForward
- INTERFACE DftiComputeBackward
- ! overloading of DftiComputeBackward for SP C2R DFT (inplace)
- FUNCTION dfti_compute_backward_s(desc,sSrcDst)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_backward_s
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_s
- INTEGER dfti_compute_backward_s
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- REAL(DFTI_SPKP), INTENT(INOUT), DIMENSION(*) :: sSrcDst
- END FUNCTION dfti_compute_backward_s
- ! overloading of DftiComputeBackward for SP C2C DFT (inplace)
- FUNCTION dfti_compute_backward_c(desc,cSrcDst)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_backward_c
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_c
- INTEGER dfti_compute_backward_c
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- COMPLEX(DFTI_SPKP), INTENT(INOUT), DIMENSION(*) :: cSrcDst
- END FUNCTION dfti_compute_backward_c
- ! overloading of DftiComputeBackward for SP C2C DFT (inplace, split complex)
- FUNCTION dfti_compute_backward_ss(desc,sSrcDstRe,sSrcDstIm)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_backward_ss
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_ss
- INTEGER dfti_compute_backward_ss
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- REAL(DFTI_SPKP), DIMENSION(*) :: sSrcDstRe
- REAL(DFTI_SPKP), DIMENSION(*) :: sSrcDstIm
- END FUNCTION dfti_compute_backward_ss
- ! overloading of DftiComputeBackward for SP C2R DFT (out-of-place)
- FUNCTION dfti_compute_backward_cs(desc,cSrc,sDst)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_backward_cs
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_cs
- INTEGER dfti_compute_backward_cs
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- COMPLEX(DFTI_SPKP), INTENT(IN), DIMENSION(*) :: cSrc
- REAL(DFTI_SPKP), INTENT(OUT), DIMENSION(*) :: sDst
- END FUNCTION dfti_compute_backward_cs
- ! overloading of DftiComputeBackward for SP C2C DFT (out-of-place)
- FUNCTION dfti_compute_backward_cc(desc,cSrc,cDst)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_backward_cc
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_cc
- INTEGER dfti_compute_backward_cc
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- COMPLEX(DFTI_SPKP), INTENT(IN), DIMENSION(*) :: cSrc
- COMPLEX(DFTI_SPKP), INTENT(OUT), DIMENSION(*) :: cDst
- END FUNCTION dfti_compute_backward_cc
- ! overloading of DftiComputeBackward for SP C2C DFT (out-of-place, split
- ! complex)
- FUNCTION dfti_compute_backward_ssss(desc,sSrcRe,sSrcIm,sDstRe,sDstIm)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_backward_ssss
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_ssss
- INTEGER dfti_compute_backward_ssss
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- REAL(DFTI_SPKP), INTENT(IN), DIMENSION(*) :: sSrcRe
- REAL(DFTI_SPKP), INTENT(IN), DIMENSION(*) :: sSrcIm
- REAL(DFTI_SPKP), INTENT(OUT), DIMENSION(*) :: sDstRe
- REAL(DFTI_SPKP), INTENT(OUT), DIMENSION(*) :: sDstIm
- END FUNCTION dfti_compute_backward_ssss
- ! overloading of DftiComputeBackward for DP C2R DFT (inplace)
- FUNCTION dfti_compute_backward_d(desc,dSrcDst)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_backward_d
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_d
- INTEGER dfti_compute_backward_d
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- REAL(DFTI_DPKP), INTENT(INOUT), DIMENSION(*) :: dSrcDst
- END FUNCTION dfti_compute_backward_d
- ! overloading of DftiComputeBackward for DP C2C DFT (inplace)
- FUNCTION dfti_compute_backward_z(desc,zSrcDst)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_backward_z
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_z
- INTEGER dfti_compute_backward_z
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- COMPLEX(DFTI_DPKP), INTENT(INOUT), DIMENSION(*) :: zSrcDst
- END FUNCTION dfti_compute_backward_z
- ! overloading of DftiComputeBackward for DP C2C DFT (inplace, split complex)
- FUNCTION dfti_compute_backward_dd(desc,dSrcDstRe,dSrcDstIm)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_backward_dd
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_dd
- INTEGER dfti_compute_backward_dd
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- REAL(DFTI_DPKP), DIMENSION(*) :: dSrcDstRe
- REAL(DFTI_DPKP), DIMENSION(*) :: dSrcDstIm
- END FUNCTION dfti_compute_backward_dd
- ! overloading of DftiComputeBackward for DP C2R DFT (out-of-place)
- FUNCTION dfti_compute_backward_zd(desc,zSrc,dDst)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_backward_zd
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_zd
- INTEGER dfti_compute_backward_zd
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- COMPLEX(DFTI_DPKP), INTENT(IN), DIMENSION(*) :: zSrc
- REAL(DFTI_DPKP), INTENT(OUT), DIMENSION(*) :: dDst
- END FUNCTION dfti_compute_backward_zd
- ! overloading of DftiComputeBackward for DP C2C DFT (out-of-place)
- FUNCTION dfti_compute_backward_zz(desc,zSrc,zDst)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_backward_zz
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_zz
- INTEGER dfti_compute_backward_zz
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- COMPLEX(DFTI_DPKP), INTENT(IN), DIMENSION(*) :: zSrc
- COMPLEX(DFTI_DPKP), INTENT(OUT), DIMENSION(*) :: zDst
- END FUNCTION dfti_compute_backward_zz
- ! overloading of DftiComputeBackward for DP C2C DFT (out-of-place, split
- ! complex)
- FUNCTION dfti_compute_backward_dddd(desc,dSrcRe,dSrcIm,dDstRe,dDstIm)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_compute_backward_dddd
- !DEC$ ATTRIBUTES REFERENCE :: dfti_compute_backward_dddd
- INTEGER dfti_compute_backward_dddd
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- REAL(DFTI_DPKP), INTENT(IN), DIMENSION(*) :: dSrcRe
- REAL(DFTI_DPKP), INTENT(IN), DIMENSION(*) :: dSrcIm
- REAL(DFTI_DPKP), INTENT(OUT), DIMENSION(*) :: dDstRe
- REAL(DFTI_DPKP), INTENT(OUT), DIMENSION(*) :: dDstIm
- END FUNCTION dfti_compute_backward_dddd
- END INTERFACE DftiComputeBackward
- INTERFACE DftiFreeDescriptor
- FUNCTION dfti_free_descriptor_external(desc)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_free_descriptor_external
- !DEC$ ATTRIBUTES REFERENCE :: dfti_free_descriptor_external
- INTEGER dfti_free_descriptor_external
- TYPE(DFTI_DESCRIPTOR), POINTER :: desc
- END FUNCTION dfti_free_descriptor_external
- END INTERFACE
- INTERFACE DftiErrorClass
- FUNCTION dfti_error_class_external(Status, ErrorClass)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_error_class_external
- !DEC$ ATTRIBUTES REFERENCE :: dfti_error_class_external
- LOGICAL dfti_error_class_external
- INTEGER, INTENT(IN) :: Status
- INTEGER, INTENT(IN) :: ErrorClass
- END FUNCTION dfti_error_class_external
- END INTERFACE
- INTERFACE DftiErrorMessage
- FUNCTION dfti_error_message_external(Status)
- USE MKL_DFT_TYPE
- !DEC$ ATTRIBUTES C :: dfti_error_message_external
- !DEC$ ATTRIBUTES REFERENCE :: dfti_error_message_external
- CHARACTER(LEN=DFTI_MAX_MESSAGE_LENGTH) :: dfti_error_message_external
- INTEGER, INTENT(IN) :: Status
- END FUNCTION dfti_error_message_external
- END INTERFACE
- END MODULE MKL_DFTI
|