<?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 Call MKL Lapack subroutines and run on HPC machine in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Call-MKL-Lapack-subroutines-and-run-on-HPC-machine/m-p/917037#M12677</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&lt;I&gt;I have problems to call the fortran Lapack subroutines. I am running my fortran 95 code on the HPC machine at the University of Arizona. I need to call SYTRI and SYTRF. The sample codes attached in the machine do not work. Could you let me know what is the correct statement in fortran code to call those subroutines and what is the compiling command?&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;What I am doing is the following:&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;!module load intel&amp;nbsp;&lt;BR /&gt;ifort -O prgram.f90&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;!I call the subroutines in my code as (this is the same as the sample codes in the HPC documentation):&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;USE mkl95_PRECISION, ONLY: WP =&amp;gt; SP&amp;nbsp;&lt;BR /&gt;USE mkl95_LAPACK, ONLY: SYTRI, SYTRF&amp;nbsp;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;Implicit none&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! then&amp;nbsp;&lt;BR /&gt;CALL sytrf(MATA, 'U', IPIV, INFO)&amp;nbsp;&lt;BR /&gt;CALL SYTRI(MATA, IPIV, 'U', INFO)&amp;nbsp;&lt;BR /&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;! &amp;nbsp;The errors are:&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;matrix_inverse.f90(12): error #6285: There is no matching specific subroutine for this generic subroutine call. [SYTRF]&lt;BR /&gt; CALL sytrf(MATA, 'U', IPIV, INFO)&lt;BR /&gt;---------^&lt;BR /&gt;matrix_inverse.f90(13): error #6285: There is no matching specific subroutine for this generic subroutine call. [SYTRI]&lt;BR /&gt; CALL SYTRI(MATA, IPIV, 'U', INFO)&lt;BR /&gt;---------^&lt;BR /&gt;compilation aborted for matrix_inverse.f90 (code 1)&lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;BR /&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;BR /&gt;Thanks for your help&lt;/I&gt;&lt;/P&gt;</description>
    <pubDate>Thu, 04 Oct 2012 16:13:12 GMT</pubDate>
    <dc:creator>diandian</dc:creator>
    <dc:date>2012-10-04T16:13:12Z</dc:date>
    <item>
      <title>Call MKL Lapack subroutines and run on HPC machine</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Call-MKL-Lapack-subroutines-and-run-on-HPC-machine/m-p/917037#M12677</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&lt;I&gt;I have problems to call the fortran Lapack subroutines. I am running my fortran 95 code on the HPC machine at the University of Arizona. I need to call SYTRI and SYTRF. The sample codes attached in the machine do not work. Could you let me know what is the correct statement in fortran code to call those subroutines and what is the compiling command?&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;What I am doing is the following:&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;!module load intel&amp;nbsp;&lt;BR /&gt;ifort -O prgram.f90&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;!I call the subroutines in my code as (this is the same as the sample codes in the HPC documentation):&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;USE mkl95_PRECISION, ONLY: WP =&amp;gt; SP&amp;nbsp;&lt;BR /&gt;USE mkl95_LAPACK, ONLY: SYTRI, SYTRF&amp;nbsp;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;Implicit none&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;! then&amp;nbsp;&lt;BR /&gt;CALL sytrf(MATA, 'U', IPIV, INFO)&amp;nbsp;&lt;BR /&gt;CALL SYTRI(MATA, IPIV, 'U', INFO)&amp;nbsp;&lt;BR /&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;! &amp;nbsp;The errors are:&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;matrix_inverse.f90(12): error #6285: There is no matching specific subroutine for this generic subroutine call. [SYTRF]&lt;BR /&gt; CALL sytrf(MATA, 'U', IPIV, INFO)&lt;BR /&gt;---------^&lt;BR /&gt;matrix_inverse.f90(13): error #6285: There is no matching specific subroutine for this generic subroutine call. [SYTRI]&lt;BR /&gt; CALL SYTRI(MATA, IPIV, 'U', INFO)&lt;BR /&gt;---------^&lt;BR /&gt;compilation aborted for matrix_inverse.f90 (code 1)&lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;BR /&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;BR /&gt;Thanks for your help&lt;/I&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 04 Oct 2012 16:13:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Call-MKL-Lapack-subroutines-and-run-on-HPC-machine/m-p/917037#M12677</guid>
      <dc:creator>diandian</dc:creator>
      <dc:date>2012-10-04T16:13:12Z</dc:date>
    </item>
    <item>
      <title>There's an example int the</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Call-MKL-Lapack-subroutines-and-run-on-HPC-machine/m-p/917038#M12678</link>
      <description>There's an example int the mkl examples lapack95 folder which comes with MKL.  The message appears to indicate that the data types and array ranks don't match one of the supported combinations (IPIV a rank 1 integer array, INFO a rank 0 integer, MATA a rank 2 real or complex array).  This would happen if you omitted any of those declarations, if implicit none didn't complain first.</description>
      <pubDate>Thu, 04 Oct 2012 19:53:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Call-MKL-Lapack-subroutines-and-run-on-HPC-machine/m-p/917038#M12678</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2012-10-04T19:53:28Z</dc:date>
    </item>
    <item>
      <title>Thanks for your comments. I</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Call-MKL-Lapack-subroutines-and-run-on-HPC-machine/m-p/917039#M12679</link>
      <description>Hi, Sir:

Thanks for your comments. 
I think I define IPIV(3) , INFO as integer and MATA is a 3X3 symetric real matrix. 

Now the problem becomes:

matrix_inverse.f90:(.text+0xfc): undefined reference to `dsytrf_mkl95_'
matrix_inverse.f90:(.text+0x1bf): undefined reference to `dsytri_mkl95_'

So, there must be a problem in the US statement:

    USE mkl95_LAPACK, ONLY: SYTRI, SYTRF
But this is the code I get from the documentation within the HPC sever.</description>
      <pubDate>Thu, 04 Oct 2012 22:22:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Call-MKL-Lapack-subroutines-and-run-on-HPC-machine/m-p/917039#M12679</guid>
      <dc:creator>diandian</dc:creator>
      <dc:date>2012-10-04T22:22:48Z</dc:date>
    </item>
    <item>
      <title>You have to specify to the</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Call-MKL-Lapack-subroutines-and-run-on-HPC-machine/m-p/917040#M12680</link>
      <description>You have to specify to the linker that you want the Lapack-95 library to be searched. The "USE mkl95_LAPACK" directive instructs the compiler to look up the correct interfaces to the xxx_mkl95_ routines, but the libraries containing the object codes of those routines must be specified by the user.</description>
      <pubDate>Fri, 05 Oct 2012 10:26:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Call-MKL-Lapack-subroutines-and-run-on-HPC-machine/m-p/917040#M12680</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2012-10-05T10:26:44Z</dc:date>
    </item>
  </channel>
</rss>

