<?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 Civil engineer trying to program using MKL library Pardiso in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Civil-engineer-trying-to-program-using-MKL-library-Pardiso/m-p/820282#M4667</link>
    <description>Hi Gennady - thanks for the insight. Can I just enter the parameter definition as follows, or do I have to spec all 64 components of IPARM?&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV id="_mcePaste"&gt;!  DEFINE PARAMETERS&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;DO I=1,64&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  PT(I)=0&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  IPARM(I)=0&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;END DO&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;IPARM(27)= 1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;MAXFCT =1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;MNUM = 1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;MTYPE = 2&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;PHASE = 11&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;NRHS = 1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;MSGLVL = 0&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Wed, 05 Oct 2011 14:33:56 GMT</pubDate>
    <dc:creator>Brad_Doudican</dc:creator>
    <dc:date>2011-10-05T14:33:56Z</dc:date>
    <item>
      <title>Civil engineer trying to program using MKL library Pardiso</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Civil-engineer-trying-to-program-using-MKL-library-Pardiso/m-p/820276#M4661</link>
      <description>I'm in the final stages of a finite element program, and need to solve the basic Ax=B matrix for x. I'm attempting to use MKL Pardiso, as the matrix is large and sparse. I've got the code operating up until the actual call to pardiso. Error I'm getting is "Unhandled exception at 0x000000014018b14b in doudican_current.exe: 0xC0000005: Access violation writing location 0x0000000050000163."&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Any thoughts? See code below.&lt;/DIV&gt;&lt;DIV&gt;&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;   SUBROUTINE DOUDICAN_SOLVE (GLK, BL, SOLUTION)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&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_PARDISO&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(:) :: Astar&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER, ALLOCATABLE, DIMENSION(:) :: JA&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER, DIMENSION(NEQ) :: IA&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER, DIMENSION(64) :: PT&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER, DIMENSION(64) :: IPARM&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER, DIMENSION(NEQ) :: PERM&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER :: MAXFCT, MNUM, MTYPE, PHASE, NRHS, MSGLVL, ERROR, M, N,    &amp;amp;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;COUNT, COUNT1, COUNT2, COUNT2OLD, I, J&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!  MODIFY GLK TO BECOME Astar&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;COUNT=0&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;DO I=1,NEQ&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  DO J=1,NEQ&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    IF (GLK(I,J)/=0) THEN&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      COUNT=COUNT+1&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;ALLOCATE ( Astar(COUNT), JA(COUNT) )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;COUNT1=0&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;COUNT2=0&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;COUNT2OLD=0&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;DO I=1,NEQ&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  COUNT2=COUNT2+1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  DO J=1,NEQ&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    IF (GLK(I,J)/=0) THEN&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      COUNT1=COUNT1+1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      Astar(COUNT1)=GLK(I,J)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      JA(COUNT1)=J&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      IF (COUNT2OLD&lt;COUNT2&gt;&lt;DIV id="_mcePaste"&gt;        IA(COUNT2)=COUNT1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;        COUNT2OLD=COUNT2&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      END IF&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;!  DEFINE PARAMETERS&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;DO I=1,64&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  PT(I)=0&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  IPARM(I)=0&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;END DO&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;MAXFCT =1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;MNUM = 1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;MTYPE = 2&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;PHASE = 11&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;NRHS=1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;MSGLVL = 0&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!  CALL THE SPARSE MATRIX SOLVER PARDISO&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;CALL PARDISO_ (PT, MAXFCT, MNUM, MTYPE, PHASE, NEQ, Astar, IA, JA, PERM, IPARM, MSGLVL, BL, SOLUTION, ERROR)&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;/COUNT2&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Sat, 01 Oct 2011 01:27:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Civil-engineer-trying-to-program-using-MKL-library-Pardiso/m-p/820276#M4661</guid>
      <dc:creator>Brad_Doudican</dc:creator>
      <dc:date>2011-10-01T01:27:02Z</dc:date>
    </item>
    <item>
      <title>Civil engineer trying to program using MKL library Pardiso</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Civil-engineer-trying-to-program-using-MKL-library-Pardiso/m-p/820277#M4662</link>
      <description>Recompile with /traceback and run again to correlate the IP with source file name and line number. We don't even know in which routine the crash occurred from the information given.&lt;BR /&gt;&lt;BR /&gt;Show the declarations of the arguments to DOUDICAN_SOLVE that were made in the routine that called it.</description>
      <pubDate>Sat, 01 Oct 2011 01:40:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Civil-engineer-trying-to-program-using-MKL-library-Pardiso/m-p/820277#M4662</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2011-10-01T01:40:53Z</dc:date>
    </item>
    <item>
      <title>Civil engineer trying to program using MKL library Pardiso</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Civil-engineer-trying-to-program-using-MKL-library-Pardiso/m-p/820278#M4663</link>
      <description>You can see how little computer science experience I have. Please tell me if this is helpful or what you were looking for.&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV id="_mcePaste"&gt;LRC=     704&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;forrtl: severe (157): Program Exception - access violation&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;Image       PC        Routine      Line    Source&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;doudican_current. 000000014018B14B Unknown        Unknown Unknown&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;doudican_current. 000000014018AF31 Unknown        Unknown Unknown&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;doudican_current. 0000000140093B6F DOUDICAN_SOLVE      4599 doudican.f90&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;doudican_current. 0000000140007F95 MAIN__          404 doudican.f90&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;doudican_current. 000000014051C09C Unknown        Unknown Unknown&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;doudican_current. 0000000140119BE7 Unknown        Unknown Unknown&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;doudican_current. 0000000140119AEE Unknown        Unknown Unknown&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;kernel32.dll    &lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt; 00000000773D652D Unknown        Unknown Unknown&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;ntdll.dll     0000000077ACC521 Unknown        Unknown Unknown&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;Line 4599 is the Call to Pardiso&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;Line 404 is the Call from the main program to Doudican_Solve&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;Declarations to the argumenst to Doudican_solve&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;DIV id="_mcePaste"&gt;REAL(KIND=DBL), ALLOCATABLE, DIMENSION(:) :: BL,SOLUTION&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;REAL(KIND=DBL), ALLOCATABLE, DIMENSION(:,:) :: GLK&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;with KIND=DBL defined in a module as follows:&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;DIV id="_mcePaste"&gt;MODULE all&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;IMPLICIT NONE&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;SAVE&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!Determine processor KIND number for single and double precision&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER, PARAMETER :: SGL = SELECTED_REAL_KIND(p=6,r=37)  !p=decimal digits of precision&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER, PARAMETER :: DBL = SELECTED_REAL_KIND(p=13,r=200) !r=maximum range &amp;gt; 10^r&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Sat, 01 Oct 2011 02:27:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Civil-engineer-trying-to-program-using-MKL-library-Pardiso/m-p/820278#M4663</guid>
      <dc:creator>Brad_Doudican</dc:creator>
      <dc:date>2011-10-01T02:27:06Z</dc:date>
    </item>
    <item>
      <title>Civil engineer trying to program using MKL library Pardiso</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Civil-engineer-trying-to-program-using-MKL-library-Pardiso/m-p/820279#M4664</link>
      <description>The traceback establishes that the crash was inside MKL/Pardiso. Usually, this is caused not by an error in Pardiso but by the user passing erroneous values of the index vectors IA, JA. Pardiso does check the input arguments, but it is possible to get erroneous input past those checks. The C0000005 trap is a second line of defence against such errors.&lt;BR /&gt;&lt;BR /&gt;You have to examine whether the arguments to Pardiso satisfy the specifications, either using a debugger or by printing the contents just before the call. &lt;BR /&gt;&lt;BR /&gt;I note at least one error: in the packed column storage convention, the start-of-column index array IA has dimension (NEQ+1). You have not filled in a value for the last element of the array. Here is a simpler version of the code for full matrix to packed column conversion:&lt;BR /&gt;&lt;BR /&gt;&lt;PRE&gt;[fortran]      KOUNT=COUNT(GLK /= 0d0)
!
      ALLOCATE ( Astar(KOUNT), JA(KOUNT) )
!
      KOUNT=0
      IA(1)=1
      DO J=1,NEQ        ! process columns 1, 2, ...
         IA(J+1)=IA(J)  ! cumulate
         DO I=1,NEQ
              IF (GLK(I,J)/=0) THEN
                  IA(J+1)=IA(J+1)+1
                  KOUNT=KOUNT+1
                  Astar(KOUNT)=GLK(I,J)
                  JA(KOUNT)=I
              END IF
          END DO
      END DO
[/fortran]&lt;/PRE&gt; &lt;BR /&gt;&lt;BR /&gt;How does subroutine Doudican_Solv know the value of NEQ?&lt;BR /&gt;</description>
      <pubDate>Sat, 01 Oct 2011 03:02:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Civil-engineer-trying-to-program-using-MKL-library-Pardiso/m-p/820279#M4664</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2011-10-01T03:02:00Z</dc:date>
    </item>
    <item>
      <title>Civil engineer trying to program using MKL library Pardiso</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Civil-engineer-trying-to-program-using-MKL-library-Pardiso/m-p/820280#M4665</link>
      <description>also, first of all in such cases, we'd recommend to check the input matrix representation by settingparm&lt;SAMP class="codeph"&gt;(27)=1&lt;/SAMP&gt;&lt;DIV&gt;see the description of it into manual.&lt;/DIV&gt;&lt;DIV&gt;--Gennady&lt;/DIV&gt;</description>
      <pubDate>Sun, 02 Oct 2011 15:46:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Civil-engineer-trying-to-program-using-MKL-library-Pardiso/m-p/820280#M4665</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2011-10-02T15:46:12Z</dc:date>
    </item>
    <item>
      <title>Civil engineer trying to program using MKL library Pardiso</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Civil-engineer-trying-to-program-using-MKL-library-Pardiso/m-p/820281#M4666</link>
      <description>Thanks mecej4 - good catch and fix on IA. I'm still debugging (error still hits), but to answer your question NEQ is passed in from Module "all". It is the dimension of the original sparse matrix (NEQ x NEQ).</description>
      <pubDate>Wed, 05 Oct 2011 14:30:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Civil-engineer-trying-to-program-using-MKL-library-Pardiso/m-p/820281#M4666</guid>
      <dc:creator>Brad_Doudican</dc:creator>
      <dc:date>2011-10-05T14:30:24Z</dc:date>
    </item>
    <item>
      <title>Civil engineer trying to program using MKL library Pardiso</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Civil-engineer-trying-to-program-using-MKL-library-Pardiso/m-p/820282#M4667</link>
      <description>Hi Gennady - thanks for the insight. Can I just enter the parameter definition as follows, or do I have to spec all 64 components of IPARM?&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV id="_mcePaste"&gt;!  DEFINE PARAMETERS&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;DO I=1,64&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  PT(I)=0&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  IPARM(I)=0&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;END DO&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;IPARM(27)= 1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;MAXFCT =1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;MNUM = 1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;MTYPE = 2&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;PHASE = 11&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;NRHS = 1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;MSGLVL = 0&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 05 Oct 2011 14:33:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Civil-engineer-trying-to-program-using-MKL-library-Pardiso/m-p/820282#M4667</guid>
      <dc:creator>Brad_Doudican</dc:creator>
      <dc:date>2011-10-05T14:33:56Z</dc:date>
    </item>
    <item>
      <title>Civil engineer trying to program using MKL library Pardiso</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Civil-engineer-trying-to-program-using-MKL-library-Pardiso/m-p/820283#M4668</link>
      <description>&lt;DIV id="_mcePaste"&gt;Thanks for all your help. After some more work, I've gotten it this far. The code below bonks out, giving a "Program Exception - Access Violation" at the Call to Pardiso. Any thoughts on why that might be?&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;USE MKL_PARDISO&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(:) :: Astar&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER, ALLOCATABLE, DIMENSION(:) :: JA&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER, DIMENSION(NEQ+1) :: IA&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!INTEGER, DIMENSION(64) :: PT&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;TYPE(MKL_PARDISO_HANDLE), ALLOCATABLE :: PT(:)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER, ALLOCATABLE :: IPARM(:)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER, DIMENSION(NEQ) :: PERM&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;INTEGER :: MAXFCT, MNUM, MTYPE, PHASE, NRHS, MSGLVL, ERROR, M, N,    &amp;amp;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;COUNT, COUNT1, COUNT2, COUNT2OLD, I, J, KOUNT, DUMMY&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!  MODIFY GLK TO BECOME Astar&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 ( Astar(KOUNT), JA(KOUNT) )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;KOUNT = 0&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;IA(1)=1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;DO J=1,NEQ&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  IA(J+1)=IA(J)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  DO I=1,NEQ&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;    IF (GLK(I,J)/=0) THEN&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      IA(J+1)=IA(J+1)+1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      KOUNT=KOUNT+1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      Astar(KOUNT)=GLK(I,J)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;      JA(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;!  DEFINE PARAMETERS&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;ALLOCATE ( PT (64) )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;ALLOCATE ( IPARM (64) )&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;DO I=1,64&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  IPARM(I)=0&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  PT(I)%DUMMY=0&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;IPARM(1) = 0 ! solver default&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;IPARM(27) = 1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;MTYPE = 2&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;MAXFCT =1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;MNUM = 1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;NRHS = 1&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;MSGLVL = 0&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;ERROR = 0&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!  CALL THE SPARSE MATRIX SOLVER PARDISO&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;PHASE = 13&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;CALL PARDISO_ (PT, MAXFCT, MNUM, MTYPE, PHASE, NEQ, Astar, IA, JA, PERM, NRHS, IPARM, MSGLVL, BL, SOLUTION, ERROR)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;!&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;</description>
      <pubDate>Wed, 05 Oct 2011 14:37:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Civil-engineer-trying-to-program-using-MKL-library-Pardiso/m-p/820283#M4668</guid>
      <dc:creator>Brad_Doudican</dc:creator>
      <dc:date>2011-10-05T14:37:28Z</dc:date>
    </item>
  </channel>
</rss>

