<?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 Using Pardiso in a dll in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-Pardiso-in-a-dll/m-p/779644#M1342</link>
    <description>Hello jpharvey1981&lt;BR /&gt;&lt;BR /&gt;A remote remote chance, but perhaps were you using /gen-interfaces and /warn-interfaces? If so, did you make any modifications in the interface of the subroutines? If so, did you happen to do a "clean" project before you built it again?&lt;BR /&gt;&lt;BR /&gt;Hope this is not too much a digression.&lt;BR /&gt;&lt;BR /&gt;Abhi</description>
    <pubDate>Thu, 15 Jul 2010 19:28:00 GMT</pubDate>
    <dc:creator>abhimodak</dc:creator>
    <dc:date>2010-07-15T19:28:00Z</dc:date>
    <item>
      <title>Using Pardiso in a dll</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-Pardiso-in-a-dll/m-p/779641#M1339</link>
      <description>I am using the Pardiso routine in a dll (The code is a copy/paste from the pardiso_sym_f.f available in the example folder of mkl... I just removed theWRITE statements)and I get the following error message on compilation:&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;...The type of the actual argument differs from the type of the dummy argument...&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;However, when using the exact same code in a console application, there are no error messages, I can run the application, see the results, etc. &lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Why am I not able to compile my dll while the exact same code in an application console is working properly?&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Wed, 14 Jul 2010 23:20:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-Pardiso-in-a-dll/m-p/779641#M1339</guid>
      <dc:creator>jpharvey1981</dc:creator>
      <dc:date>2010-07-14T23:20:35Z</dc:date>
    </item>
    <item>
      <title>Using Pardiso in a dll</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-Pardiso-in-a-dll/m-p/779642#M1340</link>
      <description>Hello jpharvel, &lt;BR /&gt;&lt;BR /&gt;How do you call the Pardiso Routine in a dll? Could you attached a small test case? &lt;BR /&gt;&lt;BR /&gt;According tothe error message, I check in Intel Fortran compiler forum, &lt;A href="http://software.intel.com/en-us/forums/showthread.php?t=61735"&gt;http://software.intel.com/en-us/forums/showthread.php?t=61735&lt;/A&gt;. The problem seems hint itself. There is parameter ormodule, which actual argument is diff from the dummy arguments.&lt;BR /&gt;&lt;BR /&gt;Other discussion like &lt;A href="http://coding.derkeiler.com/Archive/Fortran/comp.lang.fortran/2005-10/msg00640.html"&gt;http://coding.derkeiler.com/Archive/Fortran/comp.lang.fortran/2005-10/msg00640.html&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;BestRegards,&lt;BR /&gt;Ying</description>
      <pubDate>Thu, 15 Jul 2010 03:34:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-Pardiso-in-a-dll/m-p/779642#M1340</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2010-07-15T03:34:08Z</dc:date>
    </item>
    <item>
      <title>Using Pardiso in a dll</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-Pardiso-in-a-dll/m-p/779643#M1341</link>
      <description>&lt;BR /&gt;Dear Ying,&lt;BR /&gt;&lt;BR /&gt;I tried to reproduce the error message that I got yesterday but now the code can be compiledproperly...&lt;BR /&gt;&lt;BR /&gt;I honestly does not have any clues how I made it work... &lt;BR /&gt;&lt;BR /&gt;Here is the test code for the dll:&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;P&gt;subroutine test()&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;!DEC$ ATTRIBUTES DLLEXPORT :: test &lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;!DEC$ ATTRIBUTES STDCALL :: test &lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;!DEC$ ATTRIBUTES REFERENCE :: test&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;C.. Internal solver memory pointer for 64-bit architectures&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;C.. INTEGER*8 pt(64)&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;C.. Internal solver memory pointer for 32-bit architectures&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;C.. INTEGER*4 pt(64)&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;C.. This is OK in both cases&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;INTEGER*8 pt(64)&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;C.. All other variables&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;INTEGER maxfct, mnum, mtype, phase, n, nrhs, error, msglvl&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;INTEGER iparm(64)&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;INTEGER ia(9)&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;INTEGER ja(18)&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;REAL*8 a(18)&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;REAL*8 b(8)&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;REAL*8 x(8)&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;INTEGER i, idum&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;REAL*8 waltime1, waltime2, ddum&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;C.. Fill all arrays containing matrix data.&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;DATA n /8/, nrhs /1/, maxfct /1/, mnum /1/&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;DATA ia /1,5,8,10,12,15,17,18,19/&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;DATA ja&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;1 /1, 3, 6,7,&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;2 2,3, 5,&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;3 3, 8,&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;4 4, 7,&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;5 5,6,7,&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;6 6, 8,&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;7 7,&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;8 8/&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;DATA a&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;1 /7.d0, 1.d0, 2.d0,7.d0,&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;2 -4.d0,8.d0, 2.d0,&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;3 1.d0, 5.d0,&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;4 7.d0, 9.d0,&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;5 5.d0,1.d0,5.d0,&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;6 -1.d0, 5.d0,&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;7 11.d0,&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;8 5.d0/&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;C..&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;C.. Set up PARDISO control parameter&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;C..&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;do i = 1, 64&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt; iparm(i) = 0&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;end do&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(1) = 1 ! no solver default&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(2) = 2 ! fill-in reordering from METIS&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(3) = 1 ! numbers of processors&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(4) = 0 ! no iterative-direct algorithm&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(5) = 0 ! no user fill-in reducing permutation&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(6) = 0 ! =0 solution on the first n compoments of x&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(7) = 0 ! not in use&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(8) = 9 ! numbers of iterative refinement steps&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(9) = 0 ! not in use&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(10) = 13 ! perturbe the pivot elements with 1E-13&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(11) = 1 ! use nonsymmetric permutation and scaling MPS&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(12) = 0 ! not in use&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(13) = 0 ! maximum weighted matching algorithm is switched-off (default for symmetric). Try iparm(13) = 1 in case of inappropriate accuracy&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(14) = 0 ! Output: number of perturbed pivots&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(15) = 0 ! not in use&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(16) = 0 ! not in use&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(17) = 0 ! not in use&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(18) = -1 ! Output: number of nonzeros in the factor LU&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(19) = -1 ! Output: Mflops for LU factorization&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(20) = 0 ! Output: Numbers of CG Iterations&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;error = 0 ! initialize error flag&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;msglvl = 1 ! print statistical information&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;mtype = -2 ! symmetric, indefinite&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;C.. Initiliaze the internal solver memory pointer. This is only&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;C necessary for the FIRST call of the PARDISO solver.&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;do i = 1, 64&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt; pt(i) = 0&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;end do&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;C.. Reordering and Symbolic Factorization, This step also allocates&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;C all memory that is necessary for the factorization&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;phase = 11 ! only reordering and symbolic factorization&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;CALL PARDISO (pt, maxfct, mnum, mtype, phase, n, a, ia, ja,&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;1 idum, nrhs, iparm, msglvl, ddum, ddum, error)&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;WRITE(*,*) 'Reordering completed ... '&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;IF (error .NE. 0) THEN&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt; WRITE(*,*) 'The following ERROR was detected: ', error&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;STOP 1&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;END IF&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;WRITE(*,*) 'Number of nonzeros in factors = ',iparm(18)&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;WRITE(*,*) 'Number of factorization MFLOPS = ',iparm(19)&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;C.. Factorization.&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;phase = 22 ! only factorization&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;CALL pardiso (pt, maxfct, mnum, mtype, phase, n, a, ia, ja,&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;1 idum, nrhs, iparm, msglvl, ddum, ddum, error)&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;WRITE(*,*) 'Factorization completed ... '&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;IF (error .NE. 0) THEN&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt; WRITE(*,*) 'The following ERROR was detected: ', error&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;STOP 1&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;ENDIF&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;C.. Back substitution and iterative refinement&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;iparm(8) = 2 ! max numbers of iterative refinement steps&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;phase = 33 ! only factorization&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;do i = 1, n&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;b(i) = 1.d0&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;end do&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;CALL pardiso (pt, maxfct, mnum, mtype, phase, n, a, ia, ja,&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;1 idum, nrhs, iparm, msglvl, b, x, error)&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;WRITE(*,*) 'Solve completed ... '&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;WRITE(*,*) 'The solution of the system is '&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;DO i = 1, n&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt; WRITE(*,*) ' x(',i,') = ', x(i)&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;END DO&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;C.. Termination and release of memory&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;phase = -1 ! release internal memory&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;CALL pardiso (pt, maxfct, mnum, mtype, phase, n, ddum, idum, idum,&lt;/P&gt;&lt;P style="padding-left: 20pt;"&gt;1 idum, nrhs, iparm, msglvl, ddum, ddum, error)&lt;/P&gt;&lt;P&gt;END&lt;BR /&gt;&lt;BR /&gt;I was also able to use successfully a similar dll in my delphi project so sorry about my thread!&lt;BR /&gt;&lt;BR /&gt;thank you for your attention&lt;/P&gt;</description>
      <pubDate>Thu, 15 Jul 2010 14:31:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-Pardiso-in-a-dll/m-p/779643#M1341</guid>
      <dc:creator>jpharvey1981</dc:creator>
      <dc:date>2010-07-15T14:31:30Z</dc:date>
    </item>
    <item>
      <title>Using Pardiso in a dll</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-Pardiso-in-a-dll/m-p/779644#M1342</link>
      <description>Hello jpharvey1981&lt;BR /&gt;&lt;BR /&gt;A remote remote chance, but perhaps were you using /gen-interfaces and /warn-interfaces? If so, did you make any modifications in the interface of the subroutines? If so, did you happen to do a "clean" project before you built it again?&lt;BR /&gt;&lt;BR /&gt;Hope this is not too much a digression.&lt;BR /&gt;&lt;BR /&gt;Abhi</description>
      <pubDate>Thu, 15 Jul 2010 19:28:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-Pardiso-in-a-dll/m-p/779644#M1342</guid>
      <dc:creator>abhimodak</dc:creator>
      <dc:date>2010-07-15T19:28:00Z</dc:date>
    </item>
    <item>
      <title>Using Pardiso in a dll</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-Pardiso-in-a-dll/m-p/779645#M1343</link>
      <description>The major problem when using Microsoft Visual Studio is thatyou loose the knowledge ofthe command lines sent to the intel fortran compiler. I am an occasional user of the intel visual fortran compiler and I am not taking care of the command lines sent to the compiler...unfortunately.&lt;BR /&gt;&lt;BR /&gt;I did start aproject from scratch (clean project)this morning, knowing exactly how to solve the problematic (after a long night of trials and errors I managed to use the mkl_pardiso.f90 version)...&lt;BR /&gt;&lt;BR /&gt;JP</description>
      <pubDate>Thu, 15 Jul 2010 19:57:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Using-Pardiso-in-a-dll/m-p/779645#M1343</guid>
      <dc:creator>jpharvey1981</dc:creator>
      <dc:date>2010-07-15T19:57:20Z</dc:date>
    </item>
  </channel>
</rss>

