mkl_sparse_handle.fi 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. !===============================================================================
  2. ! Copyright 2004-2022 Intel Corporation.
  3. !
  4. ! This software and the related documents are Intel copyrighted materials, and
  5. ! your use of them is governed by the express license under which they were
  6. ! provided to you (License). Unless the License provides otherwise, you may not
  7. ! use, modify, copy, publish, distribute, disclose or transmit this software or
  8. ! the related documents without Intel's prior written permission.
  9. !
  10. ! This software and the related documents are provided as is, with no express
  11. ! or implied warranties, other than those that are expressly stated in the
  12. ! License.
  13. !===============================================================================
  14. ! Content:
  15. ! Intel(R) oneAPI Math Kernel Library (oneMKL) DSS Fortran header file
  16. !
  17. ! Contains more detailed information on internal datatypes and
  18. ! constants used by DSS interface to PARDISO.
  19. !
  20. !*******************************************************************************
  21. ENUM, BIND(C)
  22. ENUMERATOR :: MKL_ZERO_BASED, MKL_ONE_BASED
  23. END ENUM
  24. ENUM, BIND(C)
  25. ENUMERATOR :: MKL_C_STYLE, MKL_FORTRAN_STYLE
  26. END ENUM
  27. ENUM, BIND(C)
  28. ENUMERATOR :: MKL_NO_PRINT, MKL_PRINT
  29. END ENUM
  30. ENUM, BIND(C)
  31. ENUMERATOR :: MKL_GENERAL_STRUCTURE, MKL_UPPER_TRIANGULAR,
  32. & MKL_LOWER_TRIANGULAR, MKL_STRUCTURAL_SYMMETRIC
  33. END ENUM
  34. ENUM, BIND(C)
  35. ENUMERATOR :: MKL_CSR
  36. END ENUM
  37. TYPE, BIND(C) :: SPARSE_STRUCT
  38. INTEGER N
  39. INTEGER (C_INTPTR_T) :: CSR_IA
  40. INTEGER (C_INTPTR_T) :: CSR_JA
  41. INTEGER CHECK_RESULT(3)
  42. INTEGER(KIND=4) INDEXING
  43. INTEGER(KIND=4) MATRIX_STRUCTURE
  44. INTEGER(KIND=4) MATRIX_FORMAT
  45. INTEGER(KIND=4) MESSAGE_LEVEL
  46. INTEGER(KIND=4) PRINT_STYLE
  47. END TYPE SPARSE_STRUCT
  48. INTERFACE
  49. FUNCTION sparse_matrix_checker(PT)
  50. IMPORT SPARSE_STRUCT
  51. TYPE(SPARSE_STRUCT), INTENT(INOUT) :: PT
  52. INTEGER sparse_matrix_checker
  53. END
  54. SUBROUTINE sparse_matrix_checker_init(PT)
  55. IMPORT SPARSE_STRUCT
  56. TYPE(SPARSE_STRUCT), INTENT(INOUT) :: PT
  57. END
  58. END INTERFACE
  59. INTEGER, PARAMETER :: MKL_SPARSE_CHECKER_SUCCESS = 0
  60. INTEGER, PARAMETER :: MKL_SPARSE_CHECKER_NON_MONOTONIC = 21
  61. INTEGER, PARAMETER :: MKL_SPARSE_CHECKER_OUT_OF_RANGE = 22
  62. INTEGER, PARAMETER :: MKL_SPARSE_CHECKER_NONTRIANGULAR = 23
  63. INTEGER, PARAMETER :: MKL_SPARSE_CHECKER_NONORDERED = 24