<?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 FGMRES problem with IPAR(19) in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FGMRES-problem-with-IPAR-19/m-p/867131#M8075</link>
    <description>Hello,&lt;BR /&gt;&lt;BR /&gt;I am having an oddproblem with the FGMRES sparse solver. My first two calls to DFGMRES successfully return valuesRCI_Request = 1 and RCI_Request = 3, however, after the appropriate actions have been taken and control is returned to DFGMRES, I receive the following error in MKL_RCI_FGMRES_Log.txt:&lt;BR /&gt;&lt;BR /&gt;------------------------------------------------------------------------------&lt;BR /&gt;MKL RCI FGMRES ERROR: &lt;BR /&gt;Parameter IPAR(19)=0 must be a positive integer. Probably,&lt;BR /&gt;parameter IPAR(19) was altered by mistake outside of DFGMRES routine. The solution&lt;BR /&gt;may be wrong...&lt;BR /&gt;&lt;BR /&gt;Note that IPAR(19) = 0 immediately after calling DFGMRES_INIT, so it seems that it should have this value still during the first iteration (IPAR(19) is a service variable denoting the location of certain information in the TMP work array). I can't think of any reason for this problem, so any help would be greatly appreciated. Thanks.&lt;BR /&gt;&lt;BR /&gt;Lee</description>
    <pubDate>Tue, 30 Jun 2009 22:29:53 GMT</pubDate>
    <dc:creator>ljbetche</dc:creator>
    <dc:date>2009-06-30T22:29:53Z</dc:date>
    <item>
      <title>FGMRES problem with IPAR(19)</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FGMRES-problem-with-IPAR-19/m-p/867131#M8075</link>
      <description>Hello,&lt;BR /&gt;&lt;BR /&gt;I am having an oddproblem with the FGMRES sparse solver. My first two calls to DFGMRES successfully return valuesRCI_Request = 1 and RCI_Request = 3, however, after the appropriate actions have been taken and control is returned to DFGMRES, I receive the following error in MKL_RCI_FGMRES_Log.txt:&lt;BR /&gt;&lt;BR /&gt;------------------------------------------------------------------------------&lt;BR /&gt;MKL RCI FGMRES ERROR: &lt;BR /&gt;Parameter IPAR(19)=0 must be a positive integer. Probably,&lt;BR /&gt;parameter IPAR(19) was altered by mistake outside of DFGMRES routine. The solution&lt;BR /&gt;may be wrong...&lt;BR /&gt;&lt;BR /&gt;Note that IPAR(19) = 0 immediately after calling DFGMRES_INIT, so it seems that it should have this value still during the first iteration (IPAR(19) is a service variable denoting the location of certain information in the TMP work array). I can't think of any reason for this problem, so any help would be greatly appreciated. Thanks.&lt;BR /&gt;&lt;BR /&gt;Lee</description>
      <pubDate>Tue, 30 Jun 2009 22:29:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FGMRES-problem-with-IPAR-19/m-p/867131#M8075</guid>
      <dc:creator>ljbetche</dc:creator>
      <dc:date>2009-06-30T22:29:53Z</dc:date>
    </item>
    <item>
      <title>Re: FGMRES problem with IPAR(19)</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FGMRES-problem-with-IPAR-19/m-p/867132#M8076</link>
      <description>&lt;P&gt;Just to be clear, I do not manually modify IPAR(19) at any point. If it is helpful, the relevant portion of my code (strict F77, with the exception that some arrays are allocatable, as was suggested in my other thread of a few days ago) is given below:&lt;BR /&gt;&lt;BR /&gt; CALL DFGMRES_INIT(NEQ,XN,BN, RCIREQ,IPAR,DPAR,TMP)&lt;BR /&gt; IF(RCIREQ.NE.0) THEN&lt;BR /&gt; WRITE(ITERMO,5000)&lt;BR /&gt; GOTO 9999&lt;BR /&gt; ENDIF&lt;BR /&gt;*&lt;BR /&gt; IPAR(1) = NEQ &lt;BR /&gt; IPAR(2) = 1&lt;BR /&gt; IPAR(3) = 1&lt;BR /&gt; IPAR(4) = 0&lt;BR /&gt; IPAR(5) = MAXITS&lt;BR /&gt; IPAR(6) = 1&lt;BR /&gt; IPAR(7) = 1&lt;BR /&gt; IPAR(8) = 1&lt;BR /&gt; IPAR(9) = 1&lt;BR /&gt; IPAR(10) = 0&lt;BR /&gt; IPAR(11) = 1&lt;BR /&gt; IPAR(12) = 1&lt;BR /&gt; IPAR(13) = 0&lt;BR /&gt; IPAR(14) = 0&lt;BR /&gt; IPAR(15) = RSTITS&lt;BR /&gt; IPAR(31) = 1&lt;BR /&gt;*&lt;BR /&gt; DPAR(1) = RTOL&lt;BR /&gt; DPAR(2) = ATOL&lt;BR /&gt; DPAR(3) = 0.0&lt;BR /&gt; DPAR(4) = 0.0&lt;BR /&gt; DPAR(5) = 0.0&lt;BR /&gt; DPAR(6) = 0.0&lt;BR /&gt; DPAR(7) = 0.0&lt;BR /&gt; DPAR(8) = ZTOL&lt;BR /&gt; DPAR(31) = 10.0**(-20)&lt;BR /&gt; DPAR(32) = 10.0**(-12)&lt;BR /&gt;* &lt;BR /&gt;* Preconditioner&lt;BR /&gt;*&lt;BR /&gt; CALL NULLV(BILU0, 1,NENT,NENT)&lt;BR /&gt; CALL DCSRILU0(NEQ,AN,IA,JA, BILU0,IPAR,DPAR,IERR)&lt;BR /&gt; IF(IERR.NE.0) THEN&lt;BR /&gt; WRITE(ITERMO,5000)&lt;BR /&gt; GOTO 9999&lt;BR /&gt; ENDIF&lt;BR /&gt;*&lt;BR /&gt;* Solver&lt;BR /&gt;*&lt;BR /&gt;1000 CONTINUE&lt;BR /&gt; CALL DFGMRES(NEQ,XN,BN, RCIREQ,IPAR,DPAR,TMP)&lt;BR /&gt;*&lt;BR /&gt;* Proceed according to Reverse Communication Interface &lt;BR /&gt;* request from solver given in RCIREQ&lt;BR /&gt;*&lt;BR /&gt; IF(RCIREQ.EQ.0) THEN&lt;BR /&gt;*&lt;BR /&gt;* Solution obtained&lt;BR /&gt;*&lt;BR /&gt; GOTO 2000&lt;BR /&gt;*&lt;BR /&gt; ELSEIF(RCIREQ.EQ.1) THEN&lt;BR /&gt;*&lt;BR /&gt;* Multiply coefficient matrix by work vector and &lt;BR /&gt;* return to solver&lt;BR /&gt;*&lt;BR /&gt; COUNT = IPAR(22)&lt;BR /&gt; DO 1100 I=1,NEQ&lt;BR /&gt; WORK1(I) = TMP(COUNT)&lt;BR /&gt; COUNT = COUNT+1&lt;BR /&gt;1100 CONTINUE&lt;BR /&gt; CALL MKL_DCSRGEMV('N',NEQ,AN,IA,JA,WORK1, WORK2)&lt;BR /&gt; COUNT = IPAR(23)&lt;BR /&gt; DO 1105 I=1,NEQ&lt;BR /&gt; TMP(COUNT) = WORK2(I) &lt;BR /&gt; COUNT = COUNT+1&lt;BR /&gt;1105 CONTINUE&lt;BR /&gt; GOTO 1000&lt;BR /&gt;*&lt;BR /&gt; ELSEIF(RCIREQ.EQ.3) THEN&lt;BR /&gt;*&lt;BR /&gt;* Apply preconditioner and return to solver&lt;BR /&gt;*&lt;BR /&gt; COUNT = IPAR(22)&lt;BR /&gt; DO 1300 I=1,NEQ&lt;BR /&gt; WORK1(I) = TMP(COUNT)&lt;BR /&gt; COUNT = COUNT+1&lt;BR /&gt;1300 CONTINUE&lt;BR /&gt; CALL MKL_DCSRTRSV('L','N','U',NEQ,BILU0,IA,JA,&lt;BR /&gt; C WORK1, TRVEC)&lt;BR /&gt; CALL MKL_DCSRTRSV('U','N','N',NEQ,BILU0,IA,JA,&lt;BR /&gt; C TRVEC, WORK2)&lt;BR /&gt; COUNT = IPAR(23)&lt;BR /&gt; DO 1305 I=1,NEQ&lt;BR /&gt; TMP(COUNT) = WORK2(I) &lt;BR /&gt; COUNT = COUNT+1&lt;BR /&gt;1305 CONTINUE&lt;BR /&gt; GOTO 1000&lt;BR /&gt;*&lt;BR /&gt; ELSE&lt;BR /&gt;*&lt;BR /&gt;* Failure of solution procedure&lt;BR /&gt;*&lt;BR /&gt; WRITE(ITERMO,5000)&lt;BR /&gt; GOTO 9999&lt;BR /&gt;*&lt;BR /&gt; ENDIF&lt;BR /&gt;*&lt;BR /&gt;* Obtain solution and assign&lt;BR /&gt;*&lt;BR /&gt;2000 CONTINUE&lt;BR /&gt; CALL DFGMRES_GET(NEQ, XN,BN,RCIREQ,IPAR,DPAR,TMP,ICOUNT)&lt;BR /&gt; IF(RCIREQ.NE.0) THEN&lt;BR /&gt; WRITE(ITERMO,5000)&lt;BR /&gt; GOTO 9999&lt;BR /&gt; ENDIF&lt;BR /&gt; ROW = 1&lt;BR /&gt; DO 2010 I=IB,IE&lt;BR /&gt; DO 2005 J=1,N&lt;BR /&gt; SOL(N*(I-IB)+J) = XN(ROW)&lt;BR /&gt; ROW = ROW+1&lt;BR /&gt;2005 CONTINUE&lt;BR /&gt;2010 CONTINUE&lt;BR /&gt;&lt;BR /&gt;Lee&lt;/P&gt;</description>
      <pubDate>Tue, 30 Jun 2009 23:21:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FGMRES-problem-with-IPAR-19/m-p/867132#M8076</guid>
      <dc:creator>ljbetche</dc:creator>
      <dc:date>2009-06-30T23:21:59Z</dc:date>
    </item>
    <item>
      <title>Re: FGMRES problem with IPAR(19)</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FGMRES-problem-with-IPAR-19/m-p/867133#M8077</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="margin-top: 5px; width: 100%;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/433483"&gt;ljbetche&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;
&lt;P&gt;Just to be clear, I do not manually modify IPAR(19) at any point. If it is helpful, the relevant portion of my code (strict F77, with the exception that some arrays are allocatable, as was suggested in my other thread of a few days ago) is given below:&lt;BR /&gt;&lt;BR /&gt; CALL DFGMRES_INIT(NEQ,XN,BN, RCIREQ,IPAR,DPAR,TMP)&lt;BR /&gt; IF(RCIREQ.NE.0) THEN&lt;BR /&gt; WRITE(ITERMO,5000)&lt;BR /&gt; GOTO 9999&lt;BR /&gt; ENDIF&lt;BR /&gt;*&lt;BR /&gt; IPAR(1) = NEQ &lt;BR /&gt; IPAR(2) = 1&lt;BR /&gt; IPAR(3) = 1&lt;BR /&gt; IPAR(4) = 0&lt;BR /&gt; IPAR(5) = MAXITS&lt;BR /&gt; IPAR(6) = 1&lt;BR /&gt; IPAR(7) = 1&lt;BR /&gt; IPAR(8) = 1&lt;BR /&gt; IPAR(9) = 1&lt;BR /&gt; IPAR(10) = 0&lt;BR /&gt; IPAR(11) = 1&lt;BR /&gt; IPAR(12) = 1&lt;BR /&gt; IPAR(13) = 0&lt;BR /&gt; IPAR(14) = 0&lt;BR /&gt; IPAR(15) = RSTITS&lt;BR /&gt; IPAR(31) = 1&lt;BR /&gt;*&lt;BR /&gt; DPAR(1) = RTOL&lt;BR /&gt; DPAR(2) = ATOL&lt;BR /&gt; DPAR(3) = 0.0&lt;BR /&gt; DPAR(4) = 0.0&lt;BR /&gt; DPAR(5) = 0.0&lt;BR /&gt; DPAR(6) = 0.0&lt;BR /&gt; DPAR(7) = 0.0&lt;BR /&gt; DPAR(8) = ZTOL&lt;BR /&gt; DPAR(31) = 10.0**(-20)&lt;BR /&gt; DPAR(32) = 10.0**(-12)&lt;BR /&gt;* &lt;BR /&gt;* Preconditioner&lt;BR /&gt;*&lt;BR /&gt; CALL NULLV(BILU0, 1,NENT,NENT)&lt;BR /&gt; CALL DCSRILU0(NEQ,AN,IA,JA, BILU0,IPAR,DPAR,IERR)&lt;BR /&gt; IF(IERR.NE.0) THEN&lt;BR /&gt; WRITE(ITERMO,5000)&lt;BR /&gt; GOTO 9999&lt;BR /&gt; ENDIF&lt;BR /&gt;*&lt;BR /&gt;* Solver&lt;BR /&gt;*&lt;BR /&gt;1000 CONTINUE&lt;BR /&gt; CALL DFGMRES(NEQ,XN,BN, RCIREQ,IPAR,DPAR,TMP)&lt;BR /&gt;*&lt;BR /&gt;* Proceed according to Reverse Communication Interface &lt;BR /&gt;* request from solver given in RCIREQ&lt;BR /&gt;*&lt;BR /&gt; IF(RCIREQ.EQ.0) THEN&lt;BR /&gt;*&lt;BR /&gt;* Solution obtained&lt;BR /&gt;*&lt;BR /&gt; GOTO 2000&lt;BR /&gt;*&lt;BR /&gt; ELSEIF(RCIREQ.EQ.1) THEN&lt;BR /&gt;*&lt;BR /&gt;* Multiply coefficient matrix by work vector and &lt;BR /&gt;* return to solver&lt;BR /&gt;*&lt;BR /&gt; COUNT = IPAR(22)&lt;BR /&gt; DO 1100 I=1,NEQ&lt;BR /&gt; WORK1(I) = TMP(COUNT)&lt;BR /&gt; COUNT = COUNT+1&lt;BR /&gt;1100 CONTINUE&lt;BR /&gt; CALL MKL_DCSRGEMV('N',NEQ,AN,IA,JA,WORK1, WORK2)&lt;BR /&gt; COUNT = IPAR(23)&lt;BR /&gt; DO 1105 I=1,NEQ&lt;BR /&gt; TMP(COUNT) = WORK2(I) &lt;BR /&gt; COUNT = COUNT+1&lt;BR /&gt;1105 CONTINUE&lt;BR /&gt; GOTO 1000&lt;BR /&gt;*&lt;BR /&gt; ELSEIF(RCIREQ.EQ.3) THEN&lt;BR /&gt;*&lt;BR /&gt;* Apply preconditioner and return to solver&lt;BR /&gt;*&lt;BR /&gt; COUNT = IPAR(22)&lt;BR /&gt; DO 1300 I=1,NEQ&lt;BR /&gt; WORK1(I) = TMP(COUNT)&lt;BR /&gt; COUNT = COUNT+1&lt;BR /&gt;1300 CONTINUE&lt;BR /&gt; CALL MKL_DCSRTRSV('L','N','U',NEQ,BILU0,IA,JA,&lt;BR /&gt; C WORK1, TRVEC)&lt;BR /&gt; CALL MKL_DCSRTRSV('U','N','N',NEQ,BILU0,IA,JA,&lt;BR /&gt; C TRVEC, WORK2)&lt;BR /&gt; COUNT = IPAR(23)&lt;BR /&gt; DO 1305 I=1,NEQ&lt;BR /&gt; TMP(COUNT) = WORK2(I) &lt;BR /&gt; COUNT = COUNT+1&lt;BR /&gt;1305 CONTINUE&lt;BR /&gt; GOTO 1000&lt;BR /&gt;*&lt;BR /&gt; ELSE&lt;BR /&gt;*&lt;BR /&gt;* Failure of solution procedure&lt;BR /&gt;*&lt;BR /&gt; WRITE(ITERMO,5000)&lt;BR /&gt; GOTO 9999&lt;BR /&gt;*&lt;BR /&gt; ENDIF&lt;BR /&gt;*&lt;BR /&gt;* Obtain solution and assign&lt;BR /&gt;*&lt;BR /&gt;2000 CONTINUE&lt;BR /&gt; CALL DFGMRES_GET(NEQ, XN,BN,RCIREQ,IPAR,DPAR,TMP,ICOUNT)&lt;BR /&gt; IF(RCIREQ.NE.0) THEN&lt;BR /&gt; WRITE(ITERMO,5000)&lt;BR /&gt; GOTO 9999&lt;BR /&gt; ENDIF&lt;BR /&gt; ROW = 1&lt;BR /&gt; DO 2010 I=IB,IE&lt;BR /&gt; DO 2005 J=1,N&lt;BR /&gt; SOL(N*(I-IB)+J) = XN(ROW)&lt;BR /&gt; ROW = ROW+1&lt;BR /&gt;2005 CONTINUE&lt;BR /&gt;2010 CONTINUE&lt;BR /&gt;&lt;BR /&gt;Lee&lt;/P&gt;
&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Hi Lee,&lt;BR /&gt;To correctness you need tocall DFGMRES_CHECKbetween init of preconditioner (DCSRILU0) and main part of DFGMRES.&lt;BR /&gt;With best regards,&lt;BR /&gt;Alexander</description>
      <pubDate>Wed, 01 Jul 2009 04:18:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FGMRES-problem-with-IPAR-19/m-p/867133#M8077</guid>
      <dc:creator>Alexander_K_Intel2</dc:creator>
      <dc:date>2009-07-01T04:18:39Z</dc:date>
    </item>
    <item>
      <title>Re: FGMRES problem with IPAR(19)</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FGMRES-problem-with-IPAR-19/m-p/867134#M8078</link>
      <description>&lt;DIV style="margin:0px;"&gt;Alexander,&lt;BR /&gt;&lt;BR /&gt;I can't believe I forgot to do the check! Thank you so much. I'll try that now.&lt;BR /&gt;&lt;BR /&gt;Lee&lt;/DIV&gt;</description>
      <pubDate>Wed, 01 Jul 2009 16:57:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FGMRES-problem-with-IPAR-19/m-p/867134#M8078</guid>
      <dc:creator>ljbetche</dc:creator>
      <dc:date>2009-07-01T16:57:25Z</dc:date>
    </item>
    <item>
      <title>Re: FGMRES problem with IPAR(19)</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FGMRES-problem-with-IPAR-19/m-p/867135#M8079</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="margin-top: 5px; width: 100%;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/433483"&gt;ljbetche&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;
&lt;DIV style="margin:0px;"&gt;Alexander,&lt;BR /&gt;&lt;BR /&gt;I can't believe I forgot to do the check! Thank you so much. I'll try that now.&lt;BR /&gt;&lt;BR /&gt;Lee&lt;/DIV&gt;
&lt;/EM&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;Lee,&lt;BR /&gt;You are welcome :)&lt;BR /&gt;Alexander</description>
      <pubDate>Wed, 01 Jul 2009 17:02:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/FGMRES-problem-with-IPAR-19/m-p/867135#M8079</guid>
      <dc:creator>Alexander_K_Intel2</dc:creator>
      <dc:date>2009-07-01T17:02:45Z</dc:date>
    </item>
  </channel>
</rss>

