!***************************************************************************** ! Copyright(C) 2002-2011 Intel Corporation. All Rights Reserved. ! The source code, information and material ("Material") contained herein is ! owned by Intel Corporation or its suppliers or licensors, and title to such ! Material remains with Intel Corporation or its suppliers or licensors. The ! Material contains proprietary information of Intel or its suppliers and ! licensors. The Material is protected by worldwide copyright laws and treaty ! provisions. No part of the Material may be used, copied, reproduced, ! modified, published, uploaded, posted, transmitted, distributed or disclosed ! in any way without Intel's prior express written permission. No license ! under any patent, copyright or other intellectual property rights in the ! Material is granted to or conferred upon you, either expressly, by ! implication, inducement, estoppel or otherwise. Any license under such ! intellectual property rights must be express and approved by Intel in ! writing. ! *Third Party trademarks are the property of their respective owners. ! Unless otherwise agreed by Intel in writing, you may not remove or alter ! this notice or any other notice embedded in Materials by Intel or Intel's ! suppliers or licensors in any way. !***************************************************************************** ! Content: ! Intel(R) Math Kernel Library (MKL) ! Discrete Fourier Transform Interface (DFTI) !***************************************************************************** MODULE MKL_DFTI USE MKL_DFT_TYPE INTERFACE DftiCreateDescriptor 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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