<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic DSS Error When Used in Subroutine in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DSS-Error-When-Used-in-Subroutine/m-p/813876#M4147</link>
    <description>In Subroutine Solver you have "nCols = 5"; should that have been "ncols=NEQ" ?&lt;BR /&gt;&lt;BR /&gt;</description>
    <pubDate>Thu, 13 Oct 2011 11:45:48 GMT</pubDate>
    <dc:creator>mecej4</dc:creator>
    <dc:date>2011-10-13T11:45:48Z</dc:date>
    <item>
      <title>DSS Error When Used in Subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DSS-Error-When-Used-in-Subroutine/m-p/813874#M4145</link>
      <description>I am attempting to get DSS to operate through Visual Studio 2008 to solve the sparse matrix problem Ax=B where A=GLK and B=BL. The code first converts A=GLK to CDR format, assigns BL, then calls Solver to deploy the DSS functions. The program runs fine through the call to DSS_CREATE, then exits with an error at line DSS_DEFINE_STRUCTURE. Error and code are below.&lt;DIV&gt;&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;Since the first DSS function executes, I am assuming compiler configurations for MKL library are fine. Is there a way to debug to find the problem in execution of DSS_DEFINE_STRUCTURE? How do we interpret code -8?&lt;BR /&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;DIV&gt;Many thanks for any help.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;**********ERROR*************&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;DIV id="_mcePaste"&gt;The program '[5004] doudican_current.exe: Native' has exited with code -8 (0xfffffff8).&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;*******CODE***********&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;DIV id="_mcePaste"&gt;&lt;DIV id="_mcePaste"&gt;!***********************************************************************&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;   SUBROUTINE DOUDICAN_SOLVE (GLK, BL, SOLUTION)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!   THIS SUBROUTINE&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;USE all&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;implicit none&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;REAL(KIND=DBL), INTENT(IN), DIMENSION(NEQ, NEQ) :: GLK&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;REAL(KIND=DBL), INTENT(IN), DIMENSION(NEQ) :: BL&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;REAL(KIND=DBL), INTENT(OUT), DIMENSION(NEQ) :: SOLUTION&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;REAL(KIND=DBL), ALLOCATABLE, DIMENSION(:) :: RHS, VALUES&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER, ALLOCATABLE, DIMENSION(:) :: COLUMNS&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER, DIMENSION(NEQ+1) :: ROWINDEX&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER ::I, J, KOUNT,NROWS&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!  ALTERNATVE DIRECT SPARSE SOLVER&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;KOUNT=COUNT(GLK/=0d0)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;ALLOCATE ( VALUES(KOUNT), COLUMNS(KOUNT) )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;KOUNT = 0&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;ROWINDEX(1)=1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;DO J=1,NEQ&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  ROWINDEX(J+1)=ROWINDEX(J)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  DO I=1,NEQ&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    IF (GLK(J,I)/=0) THEN&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      ROWINDEX(J+1)=ROWINDEX(J+1)+1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      KOUNT=KOUNT+1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      VALUES(KOUNT)=GLK(J,I)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      COLUMNS(KOUNT)=I&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    END IF&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  END DO  &lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;END DO&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;NROWS = NEQ&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;ALLOCATE ( RHS(NROWS) )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;RHS = BL&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;CALL SOLVER ( VALUES, COLUMNS, ROWINDEX, RHS, KOUNT, NROWS, SOLUTION )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;   RETURN&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;   END SUBROUTINE DOUDICAN_SOLVE&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!***********************************************************************&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!***********************************************************************&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;SUBROUTINE SOLVER ( VALUES, COLUMNS, ROWINDEX, RHS, KOUNT, NROWS, SOLUTION )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;USE ALL&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;use mkl_dss&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;IMPLICIT NONE&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER, PARAMETER :: dp = KIND(1.0D0)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER :: error&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER :: i, KOUNT&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER, PARAMETER :: bufLen = 20&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;! Define the data arrays and the solution and rhs vectors.&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER, DIMENSION(KOUNT) :: columns&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER :: nCols&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER :: nNonZeros&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER :: nRhs&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER :: nRows&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;REAL(KIND=DP), DIMENSION(NROWS) :: rhs&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER, DIMENSION(NEQ+1) :: rowIndex&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;REAL(KIND=DBL), DIMENSION(NEQ) :: solution&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;REAL(KIND=DP), DIMENSION(KOUNT) :: values&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;TYPE(MKL_DSS_HANDLE) :: handle ! Allocate storage for the solver handle.&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;REAL(KIND=DP),ALLOCATABLE::statOUt( : )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;CHARACTER*15 statIn&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER perm(1)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER buff(bufLen)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;! Set the problem to be solved.&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;nCols = 5&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;nNonZeros = KOUNT&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;nRhs = 1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;perm(1) = 0&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;! Initialize the solver.&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;error = DSS_CREATE( handle, MKL_DSS_DEFAULTS )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;IF (error /= MKL_DSS_SUCCESS) GOTO 999&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;! Define the non-zero structure of the matrix.&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;! *NOTE: ERROR OCCURS IN NEXT LINE*&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;error = DSS_DEFINE_STRUCTURE( handle, MKL_DSS_SYMMETRIC, rowIndex, nRows, &amp;amp;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&amp;amp; nCols, columns, nNonZeros )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;IF (error /= MKL_DSS_SUCCESS) GOTO 999&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;! Reorder the matrix.&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;error = DSS_REORDER( handle, MKL_DSS_DEFAULTS, perm )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;IF (error /= MKL_DSS_SUCCESS) GOTO 999&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;! Factor the matrix.&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;error = DSS_FACTOR_REAL( handle, MKL_DSS_DEFAULTS, values )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;IF (error /= MKL_DSS_SUCCESS) GOTO 999&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;! Solve the problem.&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;error = DSS_SOLVE_REAL(handle, MKL_DSS_DEFAULTS, rhs, nRhs, solution )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;IF (error /= MKL_DSS_SUCCESS) GOTO 999&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;! Deallocate solver storage and various local arrays.&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;error = DSS_DELETE( handle, MKL_DSS_DEFAULTS )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;IF (error /= MKL_DSS_SUCCESS ) GOTO 999&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;! Print the solution vector, deallocate it and exit&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;WRITE(*,"('Solution Array: '(5F10.3))") ( solution(i), i = 1, nCols )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;GOTO 1000&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;! Print an error message and exit&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;999 WRITE(*,*) "Solver returned error code ", error&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;STOP 1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;1000 CONTINUE&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;pause&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;END SUBROUTINE SOLVER&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!***********************************************************************&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 12 Oct 2011 15:19:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DSS-Error-When-Used-in-Subroutine/m-p/813874#M4145</guid>
      <dc:creator>Brad_Doudican</dc:creator>
      <dc:date>2011-10-12T15:19:26Z</dc:date>
    </item>
    <item>
      <title>DSS Error When Used in Subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DSS-Error-When-Used-in-Subroutine/m-p/813875#M4146</link>
      <description>&lt;DIV&gt;that's mean your input matrix is not square:&lt;/DIV&gt;&lt;DIV&gt;DSS software operates only on square matrices, sonRowsmust be equal tonCols.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;see mkl_dss.h file as an example: #define MKL_DSS_NOT_SQUARE   	-8&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;--Gennady&lt;/DIV&gt;</description>
      <pubDate>Thu, 13 Oct 2011 11:23:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DSS-Error-When-Used-in-Subroutine/m-p/813875#M4146</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2011-10-13T11:23:10Z</dc:date>
    </item>
    <item>
      <title>DSS Error When Used in Subroutine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DSS-Error-When-Used-in-Subroutine/m-p/813876#M4147</link>
      <description>In Subroutine Solver you have "nCols = 5"; should that have been "ncols=NEQ" ?&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 13 Oct 2011 11:45:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DSS-Error-When-Used-in-Subroutine/m-p/813876#M4147</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2011-10-13T11:45:48Z</dc:date>
    </item>
  </channel>
</rss>

