mkl_sparse_handle.f90 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. MODULE MKL_SPARSE_HANDLE
  22. USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_INTPTR_T
  23. ENUM, BIND(C)
  24. ENUMERATOR :: MKL_ZERO_BASED, MKL_ONE_BASED
  25. END ENUM
  26. ENUM, BIND(C)
  27. ENUMERATOR :: MKL_C_STYLE, MKL_FORTRAN_STYLE
  28. END ENUM
  29. ENUM, BIND(C)
  30. ENUMERATOR :: MKL_NO_PRINT, MKL_PRINT
  31. END ENUM
  32. ENUM, BIND(C)
  33. ENUMERATOR :: MKL_GENERAL_STRUCTURE, MKL_UPPER_TRIANGULAR, MKL_LOWER_TRIANGULAR, MKL_STRUCTURAL_SYMMETRIC
  34. END ENUM
  35. ENUM, BIND(C)
  36. ENUMERATOR :: MKL_CSR
  37. END ENUM
  38. TYPE, BIND(C) :: SPARSE_STRUCT
  39. INTEGER N
  40. INTEGER (C_INTPTR_T) :: CSR_IA
  41. INTEGER (C_INTPTR_T) :: CSR_JA
  42. INTEGER CHECK_RESULT(3)
  43. INTEGER(KIND=4) INDEXING
  44. INTEGER(KIND=4) MATRIX_STRUCTURE
  45. INTEGER(KIND=4) MATRIX_FORMAT
  46. INTEGER(KIND=4) MESSAGE_LEVEL
  47. INTEGER(KIND=4) PRINT_STYLE
  48. END TYPE SPARSE_STRUCT
  49. INTERFACE
  50. FUNCTION sparse_matrix_checker(PT)
  51. IMPORT SPARSE_STRUCT
  52. TYPE(SPARSE_STRUCT), INTENT(INOUT) :: PT
  53. INTEGER sparse_matrix_checker
  54. END
  55. SUBROUTINE sparse_matrix_checker_init(PT)
  56. IMPORT SPARSE_STRUCT
  57. TYPE(SPARSE_STRUCT), INTENT(INOUT) :: PT
  58. END
  59. END INTERFACE
  60. INTEGER, PARAMETER :: MKL_SPARSE_CHECKER_SUCCESS = 0
  61. INTEGER, PARAMETER :: MKL_SPARSE_CHECKER_NON_MONOTONIC = 21
  62. INTEGER, PARAMETER :: MKL_SPARSE_CHECKER_OUT_OF_RANGE = 22
  63. INTEGER, PARAMETER :: MKL_SPARSE_CHECKER_NONTRIANGULAR = 23
  64. INTEGER, PARAMETER :: MKL_SPARSE_CHECKER_NONORDERED = 24
  65. END MODULE MKL_SPARSE_HANDLE