mkl_cluster_sparse_solver.fi 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  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) CLUSTER_SPARSE_SOLVER Fortran header file.
  16. !
  17. ! Contains CLUSTER_SPARSE_SOLVER routine definition
  18. !
  19. !*******************************************************************************
  20. TYPE MKL_CLUSTER_SPARSE_SOLVER_HANDLE; INTEGER(KIND=8) DUMMY; END TYPE
  21. !
  22. ! Subroutine prototype for CLUSTER_SPARSE_SOLVER
  23. !
  24. INTERFACE CLUSTER_SPARSE_SOLVER
  25. SUBROUTINE CLUSTER_SPARSE_SOLVER_S( PT, MAXFCT, MNUM, MTYPE, PHASE,N,A,IA,
  26. & JA, PERM, NRHS, IPARM, MSGLVL, B, X, COMM, ERROR )
  27. IMPORT MKL_CLUSTER_SPARSE_SOLVER_HANDLE
  28. TYPE(MKL_CLUSTER_SPARSE_SOLVER_HANDLE), INTENT(INOUT) :: PT(*)
  29. INTEGER, INTENT(IN) :: MAXFCT
  30. INTEGER, INTENT(IN) :: MNUM
  31. INTEGER, INTENT(IN) :: MTYPE
  32. INTEGER, INTENT(IN) :: PHASE
  33. INTEGER, INTENT(IN) :: N
  34. INTEGER, INTENT(IN) :: IA(*)
  35. INTEGER, INTENT(IN) :: JA(*)
  36. INTEGER, INTENT(INOUT) :: PERM(*)
  37. INTEGER, INTENT(IN) :: NRHS
  38. INTEGER, INTENT(INOUT) :: IPARM(*)
  39. INTEGER, INTENT(IN) :: MSGLVL
  40. INTEGER, INTENT(OUT) :: ERROR
  41. INTEGER, INTENT(IN) :: COMM
  42. REAL(KIND=4), INTENT(IN) :: A(*)
  43. REAL(KIND=4), INTENT(INOUT) :: B(*)
  44. REAL(KIND=4), INTENT(OUT) :: X(*)
  45. END SUBROUTINE CLUSTER_SPARSE_SOLVER_S
  46. SUBROUTINE CLUSTER_SPARSE_SOLVER_D( PT, MAXFCT, MNUM, MTYPE, PHASE, N, A, IA,
  47. & JA, PERM, NRHS, IPARM, MSGLVL, B, X, COMM, ERROR )
  48. IMPORT MKL_CLUSTER_SPARSE_SOLVER_HANDLE
  49. TYPE(MKL_CLUSTER_SPARSE_SOLVER_HANDLE), INTENT(INOUT) :: PT(*)
  50. INTEGER, INTENT(IN) :: MAXFCT
  51. INTEGER, INTENT(IN) :: MNUM
  52. INTEGER, INTENT(IN) :: MTYPE
  53. INTEGER, INTENT(IN) :: PHASE
  54. INTEGER, INTENT(IN) :: N
  55. INTEGER, INTENT(IN) :: IA(*)
  56. INTEGER, INTENT(IN) :: JA(*)
  57. INTEGER, INTENT(INOUT) :: PERM(*)
  58. INTEGER, INTENT(IN) :: NRHS
  59. INTEGER, INTENT(INOUT) :: IPARM(*)
  60. INTEGER, INTENT(IN) :: MSGLVL
  61. INTEGER, INTENT(OUT) :: ERROR
  62. REAL(KIND=8), INTENT(IN) :: A(*)
  63. REAL(KIND=8), INTENT(INOUT) :: B(*)
  64. REAL(KIND=8), INTENT(OUT) :: X(*)
  65. INTEGER, INTENT(IN) :: COMM
  66. END SUBROUTINE CLUSTER_SPARSE_SOLVER_D
  67. SUBROUTINE CLUSTER_SPARSE_SOLVER_SC( PT, MAXFCT, MNUM, MTYPE, PHASE, N, A, IA,
  68. & JA, PERM, NRHS, IPARM, MSGLVL, B, X, COMM, ERROR )
  69. IMPORT MKL_CLUSTER_SPARSE_SOLVER_HANDLE
  70. TYPE(MKL_CLUSTER_SPARSE_SOLVER_HANDLE), INTENT(INOUT) :: PT(*)
  71. INTEGER, INTENT(IN) :: MAXFCT
  72. INTEGER, INTENT(IN) :: MNUM
  73. INTEGER, INTENT(IN) :: MTYPE
  74. INTEGER, INTENT(IN) :: PHASE
  75. INTEGER, INTENT(IN) :: N
  76. INTEGER, INTENT(IN) :: IA(*)
  77. INTEGER, INTENT(IN) :: JA(*)
  78. INTEGER, INTENT(INOUT) :: PERM(*)
  79. INTEGER, INTENT(IN) :: NRHS
  80. INTEGER, INTENT(INOUT) :: IPARM(*)
  81. INTEGER, INTENT(IN) :: MSGLVL
  82. INTEGER, INTENT(OUT) :: ERROR
  83. COMPLEX(KIND=4), INTENT(IN) :: A(*)
  84. COMPLEX(KIND=4), INTENT(INOUT) :: B(*)
  85. COMPLEX(KIND=4), INTENT(OUT) :: X(*)
  86. INTEGER, INTENT(IN) :: COMM
  87. END SUBROUTINE CLUSTER_SPARSE_SOLVER_SC
  88. SUBROUTINE CLUSTER_SPARSE_SOLVER_DC( PT, MAXFCT, MNUM, MTYPE, PHASE, N, A, IA,
  89. & JA, PERM, NRHS, IPARM, MSGLVL, B, X, COMM, ERROR )
  90. IMPORT MKL_CLUSTER_SPARSE_SOLVER_HANDLE
  91. TYPE(MKL_CLUSTER_SPARSE_SOLVER_HANDLE), INTENT(INOUT) :: PT(*)
  92. INTEGER, INTENT(IN) :: MAXFCT
  93. INTEGER, INTENT(IN) :: MNUM
  94. INTEGER, INTENT(IN) :: MTYPE
  95. INTEGER, INTENT(IN) :: PHASE
  96. INTEGER, INTENT(IN) :: N
  97. INTEGER, INTENT(IN) :: IA(*)
  98. INTEGER, INTENT(IN) :: JA(*)
  99. INTEGER, INTENT(INOUT) :: PERM(*)
  100. INTEGER, INTENT(IN) :: NRHS
  101. INTEGER, INTENT(INOUT) :: IPARM(*)
  102. INTEGER, INTENT(IN) :: MSGLVL
  103. INTEGER, INTENT(OUT) :: ERROR
  104. COMPLEX(KIND=8), INTENT(IN) :: A(*)
  105. COMPLEX(KIND=8), INTENT(INOUT) :: B(*)
  106. COMPLEX(KIND=8), INTENT(OUT) :: X(*)
  107. INTEGER, INTENT(IN) :: COMM
  108. END SUBROUTINE CLUSTER_SPARSE_SOLVER_DC
  109. END INTERFACE
  110. !
  111. ! Subroutine prototype for CLUSTER_SPARSE_SOLVER_64
  112. !
  113. INTERFACE CLUSTER_SPARSE_SOLVER_64
  114. SUBROUTINE CLUSTER_SPARSE_SOLVER_S_64( PT, MAXFCT, MNUM, MTYPE, PHASE,N,A,IA,
  115. & JA, PERM, NRHS, IPARM, MSGLVL, B, X, COMM, ERROR )
  116. IMPORT MKL_CLUSTER_SPARSE_SOLVER_HANDLE
  117. TYPE(MKL_CLUSTER_SPARSE_SOLVER_HANDLE), INTENT(INOUT) :: PT(*)
  118. INTEGER(KIND=8), INTENT(IN) :: MAXFCT
  119. INTEGER(KIND=8), INTENT(IN) :: MNUM
  120. INTEGER(KIND=8), INTENT(IN) :: MTYPE
  121. INTEGER(KIND=8), INTENT(IN) :: PHASE
  122. INTEGER(KIND=8), INTENT(IN) :: N
  123. INTEGER(KIND=8), INTENT(IN) :: IA(*)
  124. INTEGER(KIND=8), INTENT(IN) :: JA(*)
  125. INTEGER(KIND=8), INTENT(INOUT) :: PERM(*)
  126. INTEGER(KIND=8), INTENT(IN) :: NRHS
  127. INTEGER(KIND=8), INTENT(INOUT) :: IPARM(*)
  128. INTEGER(KIND=8), INTENT(IN) :: MSGLVL
  129. INTEGER(KIND=8), INTENT(OUT) :: ERROR
  130. INTEGER, INTENT(IN) :: COMM
  131. REAL(KIND=4), INTENT(IN) :: A(*)
  132. REAL(KIND=4), INTENT(INOUT) :: B(*)
  133. REAL(KIND=4), INTENT(OUT) :: X(*)
  134. END SUBROUTINE CLUSTER_SPARSE_SOLVER_S_64
  135. SUBROUTINE CLUSTER_SPARSE_SOLVER_D_64( PT, MAXFCT, MNUM, MTYPE, PHASE, N, A, IA,
  136. & JA, PERM, NRHS, IPARM, MSGLVL, B, X, COMM, ERROR )
  137. IMPORT MKL_CLUSTER_SPARSE_SOLVER_HANDLE
  138. TYPE(MKL_CLUSTER_SPARSE_SOLVER_HANDLE), INTENT(INOUT) :: PT(*)
  139. INTEGER(KIND=8), INTENT(IN) :: MAXFCT
  140. INTEGER(KIND=8), INTENT(IN) :: MNUM
  141. INTEGER(KIND=8), INTENT(IN) :: MTYPE
  142. INTEGER(KIND=8), INTENT(IN) :: PHASE
  143. INTEGER(KIND=8), INTENT(IN) :: N
  144. INTEGER(KIND=8), INTENT(IN) :: IA(*)
  145. INTEGER(KIND=8), INTENT(IN) :: JA(*)
  146. INTEGER(KIND=8), INTENT(INOUT) :: PERM(*)
  147. INTEGER(KIND=8), INTENT(IN) :: NRHS
  148. INTEGER(KIND=8), INTENT(INOUT) :: IPARM(*)
  149. INTEGER(KIND=8), INTENT(IN) :: MSGLVL
  150. INTEGER(KIND=8), INTENT(OUT) :: ERROR
  151. REAL(KIND=8), INTENT(IN) :: A(*)
  152. REAL(KIND=8), INTENT(INOUT) :: B(*)
  153. REAL(KIND=8), INTENT(OUT) :: X(*)
  154. INTEGER, INTENT(IN) :: COMM
  155. END SUBROUTINE CLUSTER_SPARSE_SOLVER_D_64
  156. SUBROUTINE CLUSTER_SPARSE_SOLVER_SC_64( PT, MAXFCT, MNUM, MTYPE, PHASE, N, A, IA,
  157. & JA, PERM, NRHS, IPARM, MSGLVL, B, X, COMM, ERROR )
  158. IMPORT MKL_CLUSTER_SPARSE_SOLVER_HANDLE
  159. TYPE(MKL_CLUSTER_SPARSE_SOLVER_HANDLE), INTENT(INOUT) :: PT(*)
  160. INTEGER(KIND=8), INTENT(IN) :: MAXFCT
  161. INTEGER(KIND=8), INTENT(IN) :: MNUM
  162. INTEGER(KIND=8), INTENT(IN) :: MTYPE
  163. INTEGER(KIND=8), INTENT(IN) :: PHASE
  164. INTEGER(KIND=8), INTENT(IN) :: N
  165. INTEGER(KIND=8), INTENT(IN) :: IA(*)
  166. INTEGER(KIND=8), INTENT(IN) :: JA(*)
  167. INTEGER(KIND=8), INTENT(INOUT) :: PERM(*)
  168. INTEGER(KIND=8), INTENT(IN) :: NRHS
  169. INTEGER(KIND=8), INTENT(INOUT) :: IPARM(*)
  170. INTEGER(KIND=8), INTENT(IN) :: MSGLVL
  171. INTEGER(KIND=8), INTENT(OUT) :: ERROR
  172. COMPLEX(KIND=4), INTENT(IN) :: A(*)
  173. COMPLEX(KIND=4), INTENT(INOUT) :: B(*)
  174. COMPLEX(KIND=4), INTENT(OUT) :: X(*)
  175. INTEGER, INTENT(IN) :: COMM
  176. END SUBROUTINE CLUSTER_SPARSE_SOLVER_SC_64
  177. SUBROUTINE CLUSTER_SPARSE_SOLVER_DC_64( PT, MAXFCT, MNUM, MTYPE, PHASE, N, A, IA,
  178. & JA, PERM, NRHS, IPARM, MSGLVL, B, X, COMM, ERROR )
  179. IMPORT MKL_CLUSTER_SPARSE_SOLVER_HANDLE
  180. TYPE(MKL_CLUSTER_SPARSE_SOLVER_HANDLE), INTENT(INOUT) :: PT(*)
  181. INTEGER(KIND=8), INTENT(IN) :: MAXFCT
  182. INTEGER(KIND=8), INTENT(IN) :: MNUM
  183. INTEGER(KIND=8), INTENT(IN) :: MTYPE
  184. INTEGER(KIND=8), INTENT(IN) :: PHASE
  185. INTEGER(KIND=8), INTENT(IN) :: N
  186. INTEGER(KIND=8), INTENT(IN) :: IA(*)
  187. INTEGER(KIND=8), INTENT(IN) :: JA(*)
  188. INTEGER(KIND=8), INTENT(INOUT) :: PERM(*)
  189. INTEGER(KIND=8), INTENT(IN) :: NRHS
  190. INTEGER(KIND=8), INTENT(INOUT) :: IPARM(*)
  191. INTEGER(KIND=8), INTENT(IN) :: MSGLVL
  192. INTEGER(KIND=8), INTENT(OUT) :: ERROR
  193. COMPLEX(KIND=8), INTENT(IN) :: A(*)
  194. COMPLEX(KIND=8), INTENT(INOUT) :: B(*)
  195. COMPLEX(KIND=8), INTENT(OUT) :: X(*)
  196. INTEGER, INTENT(IN) :: COMM
  197. END SUBROUTINE CLUSTER_SPARSE_SOLVER_DC_64
  198. END INTERFACE