<?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 Hi Maggie,  in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040364#M20657</link>
    <description>&lt;P&gt;Hi Maggie,&amp;nbsp;&lt;/P&gt;

&lt;P&gt;There are some code errors in your code. &amp;nbsp;For example, i mentioned, the function required 1 -based index whatever in C or fortran.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;and the array ipar and dpar should be 128 . not N.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;and the&amp;nbsp;&amp;nbsp;bilu0 = (double *)calloc(*NNZ, sizeof(double)) , not NN etc.&lt;/P&gt;

&lt;P&gt;remove some correct conditions which is in original sample code, you don't need when solve the Ax=b..&amp;nbsp;&lt;/P&gt;

&lt;P&gt;I attach the modify code for your reference.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Best Regards,&lt;/P&gt;

&lt;P&gt;Ying&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;[yhu5@prc-mic01 mklex]$ make&lt;BR /&gt;
	ifort -check bounds -g -traceback -i8 -openmp -w -fast -DMKL_ILP64 -m64 -I/opt/intel/mkl/include/intel64/ilp64 -I/opt/intel/mkl/include &amp;nbsp;-c hypretest.f&lt;BR /&gt;
	icc -g -traceback -i8 -openmp -w -fast -DMKL_ILP64 -m64 -I/opt/intel/mkl/include/intel64/ilp64 -I/opt/intel/mkl/include &amp;nbsp;-c LinearSolver.c&lt;BR /&gt;
	ifort -check bounds -g -traceback hypretest.o LinearSolver.o -L/opt/intel/mkl/lib/intel64 -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_blas95_ilp64 -lmkl_lapack95_ilp64 -liomp5 -lmkl_core &amp;nbsp;-lm -lpthread -o ds&lt;BR /&gt;
	[yhu5@prc-mic01 mklex]$ ./ds&lt;BR /&gt;
	&amp;nbsp;number of rows = &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 10&lt;BR /&gt;
	&amp;nbsp;number of nonzeros = &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 28&lt;BR /&gt;
	sizetmpi= 306, sizeof(ia)= 8&lt;BR /&gt;
	N=10, NNZ= 28&lt;BR /&gt;
	LinearSolver: Line 48&lt;BR /&gt;
	dfgmres_init&lt;BR /&gt;
	dfgmres_end&lt;BR /&gt;
	ilu begin&lt;BR /&gt;
	ilu end&lt;BR /&gt;
	dfgmres check begin&lt;BR /&gt;
	dfgmres check end&lt;BR /&gt;
	Some info about the current run of RCI FGMRES method:&lt;/P&gt;

&lt;P&gt;As ipar[7]=0, the automatic test for the maximal number of iterations will be&lt;BR /&gt;
	skipped&lt;BR /&gt;
	+++&lt;BR /&gt;
	As ipar[8]=0, the automatic residual test will be skipped&lt;BR /&gt;
	+++&lt;BR /&gt;
	As ipar[9]=1 the user-defined stopping test will be requested via&lt;BR /&gt;
	RCI_request=2&lt;BR /&gt;
	+++&lt;BR /&gt;
	As ipar[10]=1, the Preconditioned FGMRES iterations will be performed, thus,&lt;BR /&gt;
	the preconditioner action will be requested via RCI_request=3&lt;BR /&gt;
	+++&lt;BR /&gt;
	As ipar[11]=0, the automatic test for the norm of the next generated vector is&lt;BR /&gt;
	not equal to zero up to rounding and computational errors will be skipped,&lt;BR /&gt;
	thus, the user-defined test will be requested via RCI_request=4&lt;BR /&gt;
	+++&lt;/P&gt;

&lt;P&gt;dfgmres begin to solve&lt;BR /&gt;
	dfgmres end of solve&lt;BR /&gt;
	dfgmres end of solve&lt;BR /&gt;
	dfgmres end of solve&lt;BR /&gt;
	dfgmres end of solve&lt;BR /&gt;
	dfgmres end of solve&lt;BR /&gt;
	dfgmres end of solve&lt;BR /&gt;
	The system has been solved&lt;/P&gt;

&lt;P&gt;Number of iterations: 1&lt;/P&gt;

&lt;P&gt;&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 5 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 6 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 7 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 8 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 9 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;10 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	[yhu5@prc-mic01 mklex]$&lt;/P&gt;</description>
    <pubDate>Wed, 01 Jul 2015 08:21:24 GMT</pubDate>
    <dc:creator>Ying_H_Intel</dc:creator>
    <dc:date>2015-07-01T08:21:24Z</dc:date>
    <item>
      <title>segment fault error for fortran code</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040353#M20646</link>
      <description>&lt;P&gt;&lt;SPAN style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;hello, everyone,&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;Newbie of the fortran code. &amp;nbsp; I was trying to use ilu0+gmres to solve Ax =b with A the csr format. But got the segment fault error when calling the subroutine. It seems that the arrays didn't pass successfully. Really confused about the error. Would anyone please help me about that? &amp;nbsp; &amp;nbsp;Thanks!&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;&amp;nbsp;The variables are defined as :&amp;nbsp;&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; integer nn, nnz&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;INTEGER, PARAMETER :: DP = SELECTED_REAL_KIND(14)&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;
	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;INTEGER, ALLOCATABLE, DIMENSION(:) :: irowJac&amp;nbsp;&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;INTEGER, ALLOCATABLE, DIMENSION(:) :: icolJac&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;REAL(KIND=DP), ALLOCATABLE, DIMENSION(:) :: valJac&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;REAL(KIND=DP), ALLOCATABLE, DIMENSION(:) :: DeltaY,DeltaX&lt;/DIV&gt;
&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;&amp;nbsp; &amp;nbsp;call&amp;nbsp;LinearSolverCSR(nn, nnz,irowJac, icolJac,valJac, DeltaY)&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;The subroutine of the linear solver &amp;nbsp;is as below:&amp;nbsp;&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;
	&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; SUBROUTINE LinearSolverCSR(N,NNZ,IA,JA,A,&lt;WBR /&gt;RHS)&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; INTEGER N&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; INTEGER NNZ&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; INTEGER SIZE&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; PARAMETER (SIZE=128)&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; INTEGER, PARAMETER :: DP = SELECTED_REAL_KIND(14)&amp;nbsp;&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; INTEGER IA(N+1), JA(NNZ)&lt;/DIV&gt;

	&lt;DIV&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp;DOUBLE PRECISION A(NNZ), RHS(N),COMPUTED_SOLUTION(N)&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; REAL(KIND=DP) A(NNZ), RHS(N),COMPUTED_SOLUTION(N), B(N)&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; DOUBLE PRECISION BILU0(NNZ), TRVEC(N)&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! Allocate storage for the ?par parameters and the solution/rhs/residual vectors&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; INTEGER IPAR(SIZE),IERR&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; DOUBLE PRECISION DPAR(SIZE), TMP(N*(2*N+1)+(N*(N+9))/2+1)&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; DOUBLE PRECISION RESIDUAL(N)&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; INTEGER MATSIZE, INCX&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; DOUBLE PRECISION REF_NORM2, NRM2&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; PARAMETER ( INCX=1)&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! Some additional variables to use with the RCI (P)FGMRES solver&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; INTEGER ITERCOUNT&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; INTEGER RCI_REQUEST, I&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; DOUBLE PRECISION DVAR&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! An external BLAS function is taken from MKL BLAS to use&lt;/DIV&gt;

	&lt;DIV&gt;! with the RCI (P)FGMRES solver&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; DOUBLE PRECISION DNRM2&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; EXTERNAL DNRM2&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! Save the right-hand side in vector B for future use&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; MATSIZE = NNZ&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; CALL DCOPY(N, RHS, 1, B, 1)&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! Initialize the solver&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; CALL DFGMRES_INIT(N, COMPUTED_SOLUTION, RHS, RCI_REQUEST, IPAR,&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 DPAR, TMP)&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IF (RCI_REQUEST.NE.0) GOTO 999&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! Calculate ILU0 preconditioner.&lt;/DIV&gt;

	&lt;DIV&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;!ATTENTION!&lt;/DIV&gt;

	&lt;DIV&gt;! DCSRILU0 routine uses some IPAR, DPAR set by DFGMRES_INIT routine.&lt;/DIV&gt;

	&lt;DIV&gt;! Important for DCSRILU0 default entries set by DFGMRES_INIT are&lt;/DIV&gt;

	&lt;DIV&gt;! ipar(2) = 6 - output of error messages to the screen,&lt;/DIV&gt;

	&lt;DIV&gt;! ipar(6) = 1 - allow output of error messages,&lt;/DIV&gt;

	&lt;DIV&gt;! ipar(31)= 0 - abort DCSRILU0 calculations if routine meets zero diagonal element.&lt;/DIV&gt;

	&lt;DIV&gt;!&lt;/DIV&gt;

	&lt;DIV&gt;! If ILU0 is going to be used out of MKL FGMRES context, than the values&lt;/DIV&gt;

	&lt;DIV&gt;! of ipar(2), ipar(6), ipar(31), dpar(31), and dpar(32) should be user&lt;/DIV&gt;

	&lt;DIV&gt;! provided before the DCSRILU0 routine call.&lt;/DIV&gt;

	&lt;DIV&gt;!&lt;/DIV&gt;

	&lt;DIV&gt;! In this example, specific for DCSRILU0 entries are set in turn:&lt;/DIV&gt;

	&lt;DIV&gt;! ipar(31)= 1 - change small diagonal value to that given by dpar(32),&lt;/DIV&gt;

	&lt;DIV&gt;! dpar(31)= 1.D-20 instead of the default value set by DFGMRES_INIT.&lt;/DIV&gt;

	&lt;DIV&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;It is a small value to compare a diagonal entry with it.&lt;/DIV&gt;

	&lt;DIV&gt;! dpar(32)= 1.D-16 instead of the default value set by DFGMRES_INIT.&lt;/DIV&gt;

	&lt;DIV&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;It is the target value of the diagonal value if it is&lt;/DIV&gt;

	&lt;DIV&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;small as compared to dpar(31) and the routine should change&lt;/DIV&gt;

	&lt;DIV&gt;! &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;it rather than abort DCSRILU0 calculations.&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IPAR(31)=1&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DPAR(31)=1.D-20&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; DPAR(32)=1.D-16&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; CALL DCSRILU0(N, A, IA, JA, BILU0, IPAR, DPAR, IERR)&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; NRM2=DNRM2(MATSIZE, BILU0, INCX)&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IF(IERR.ne.0) THEN&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WRITE(*,'(A,A,I1)') ' Error after calculation of the',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 ' preconditioner DCSRILU0',IERR&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;GOTO 998&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ENDIF&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! Set the desired parameters:&lt;/DIV&gt;

	&lt;DIV&gt;! do the restart after 2 iterations&lt;/DIV&gt;

	&lt;DIV&gt;! LOGICAL parameters:&lt;/DIV&gt;

	&lt;DIV&gt;! do not do the stopping test for the maximal number of iterations&lt;/DIV&gt;

	&lt;DIV&gt;! do the Preconditioned iterations of FGMRES method&lt;/DIV&gt;

	&lt;DIV&gt;! Set parameter IPAR(11) for preconditioner call. For this example,&lt;/DIV&gt;

	&lt;DIV&gt;! it reduces the number of iterations.&lt;/DIV&gt;

	&lt;DIV&gt;! DOUBLE PRECISION parameters&lt;/DIV&gt;

	&lt;DIV&gt;! set the relative tolerance to 1.0D-3 instead of default value 1.0D-6&lt;/DIV&gt;

	&lt;DIV&gt;! NOTE. Preconditioner may increase the number of iterations for an&lt;/DIV&gt;

	&lt;DIV&gt;! arbitrary case of the system and initial guess and even ruin the&lt;/DIV&gt;

	&lt;DIV&gt;! convergence. It is user's responsibility to use a suitable preconditioner&lt;/DIV&gt;

	&lt;DIV&gt;! and to apply it skillfully.&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IPAR(15)=2&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IPAR(8)=0&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IPAR(11)=1&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; DPAR(1)=1.0D-3&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! Check the correctness and consistency of the newly set parameters&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; CALL DFGMRES_CHECK(N, COMPUTED_SOLUTION, RHS, RCI_REQUEST,&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 IPAR, DPAR, TMP)&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IF (RCI_REQUEST.NE.0) GOTO 999&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! Print the info about the RCI FGMRES method, could be skipped 166-224&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE( *,'(A)') ' '&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE( *,'(A,A)') 'Some info about the current run of RCI FGMRES',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 ' method:'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE( *,'(A)') ' '&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IF (IPAR(8).NE.0) THEN&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WRITE(*,'(A,I1,A,A)') 'As IPAR(8)=',IPAR(8),', the automatic',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 ' test for the maximal number of iterations will be performed'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ELSE&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;WRITE(*,'(A,I1,A,A)') 'As IPAR(8)=',IPAR(8),', the automatic',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 &amp;nbsp; ' test for the maximal number of iterations will be skipped'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ENDIF&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE( *,'(A)') '+++'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IF (IPAR(9).NE.0) THEN&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;WRITE(*,'(A,I1,A,A)') 'As IPAR(9)=',IPAR(9),', the automatic',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 ' residual test will be performed'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ELSE&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;WRITE(*,'(A,I1,A,A)') 'As IPAR(9)=',IPAR(9),', the automatic',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 ' residual test will be skipped'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ENDIF&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE( *,'(A)') '+++'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IF (IPAR(10).NE.0) THEN&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;WRITE(*,'(A,I1,A,A)') 'As IPAR(10)=',IPAR(10),', the',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 ' user-defined stopping test will be requested via RCI_REQUEST=2'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ELSE&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;WRITE(*,'(A,I1,A,A,A)') 'As IPAR(10)=',IPAR(10),', the',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 ' user-defined stopping test will not be requested, thus,',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 ' RCI_REQUEST will not take the value 2'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ENDIF&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE( *,'(A)') '+++'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IF (IPAR(11).NE.0) THEN&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;WRITE(*,'(A,I1,A,A)') 'As IPAR(11)=',IPAR(11),', the',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 ' Preconditioned FGMRES iterations will be performed, thus,'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;WRITE(*,'(A,A)') 'the preconditioner action will be requested',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 ' via RCI_REQUEST=3'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ELSE&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;WRITE(*,'(A,I1,A,A)') 'As IPAR(11)=',IPAR(11),', the',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 ' Preconditioned FGMRES iterations will not be performed,'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;WRITE( *,'(A)') 'thus, RCI_REQUEST will not take the value 3'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ENDIF&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE( *,'(A)') '+++'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IF (IPAR(12).NE.0) THEN&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;WRITE(*,'(A,I1,A,A)')'As IPAR(12)=',IPAR(12),', the automatic',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 ' test for the norm of the next generated vector is not'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;WRITE( *,'(A,A)') ' equal to zero up to rounding and',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 ' computational errors will be performed,'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;WRITE( *,'(A)') 'thus, RCI_REQUEST will not take the value 4'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ELSE&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;WRITE(*,'(A,I1,A,A)')'As IPAR(12)=',IPAR(12),', the automatic',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 ' test for the norm of the next generated vector is'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;WRITE(*,'(A,A)') 'not equal to zero up to rounding and',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;' computational errors will be skipped,'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;WRITE(*,'(A,A)') 'thus, the user-defined test will be requested',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 ' via RCI_REQUEST=4'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ENDIF&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE( *,'(A)') '+++'&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! Compute the solution by RCI (P)FGMRES solver with preconditioning&lt;/DIV&gt;

	&lt;DIV&gt;! Reverse Communication starts here&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;1 &amp;nbsp; &amp;nbsp; CALL DFGMRES(N, COMPUTED_SOLUTION, RHS, RCI_REQUEST, IPAR,&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 DPAR, TMP)&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! If RCI_REQUEST=0, then the solution was found with the required precision&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IF (RCI_REQUEST.EQ.0) GOTO 3&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! If RCI_REQUEST=1, then compute the vector A*TMP(IPAR(22))&lt;/DIV&gt;

	&lt;DIV&gt;! and put the result in vector TMP(IPAR(23))&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IF (RCI_REQUEST.EQ.1) THEN&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;CALL MKL_DCSRGEMV('N',N, A, IA, JA, TMP(IPAR(22)), TMP(IPAR(23)))&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;GOTO 1&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ENDIF&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! If RCI_request=2, then do the user-defined stopping test&lt;/DIV&gt;

	&lt;DIV&gt;! The residual stopping test for the computed solution is performed here&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IF (RCI_REQUEST.EQ.2) THEN&lt;/DIV&gt;

	&lt;DIV&gt;! Request to the DFGMRES_GET routine to put the solution into B(N) via IPAR(13)&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;IPAR(13)=1&lt;/DIV&gt;

	&lt;DIV&gt;! Get the current FGMRES solution in the vector B(N)&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;CALL DFGMRES_GET(N, COMPUTED_SOLUTION, B, RCI_REQUEST, IPAR,&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 DPAR, TMP, ITERCOUNT)&lt;/DIV&gt;

	&lt;DIV&gt;! Compute the current true residual via MKL (Sparse) BLAS routines&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;CALL MKL_DCSRGEMV('N', N, A, IA, JA, B, RESIDUAL)&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;CALL DAXPY(N, -1.0D0, RHS, 1, RESIDUAL, 1)&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;DVAR=DNRM2(N, RESIDUAL, 1)&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;IF (DVAR.LT.1.0E-3) THEN&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; GOTO 3&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;ELSE&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; GOTO 1&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;SPAN style="white-space: pre-wrap;"&gt; &lt;/SPAN&gt;ENDIF&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ENDIF&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! If RCI_REQUEST=3, then apply the preconditioner on the vector&lt;/DIV&gt;

	&lt;DIV&gt;! TMP(IPAR(22)) and put the result in vector TMP(IPAR(23))&lt;/DIV&gt;

	&lt;DIV&gt;! Here is the recommended usage of the result produced by ILU0 routine&lt;/DIV&gt;

	&lt;DIV&gt;! via standard MKL Sparse Blas solver routine mkl_dcsrtrsv.&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IF (RCI_REQUEST.EQ.3) THEN&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CALL MKL_DCSRTRSV('L','N','U',N,&lt;WBR /&gt;BILU0,IA,JA,TMP(IPAR(22)),&lt;WBR /&gt;TRVEC)&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CALL MKL_DCSRTRSV('U','N','N',N,&lt;WBR /&gt;BILU0,IA,JA,TRVEC,TMP(IPAR(23)&lt;WBR /&gt;))&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;GOTO 1&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ENDIF&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! If RCI_REQUEST=4, then check if the norm of the next generated vector is&lt;/DIV&gt;

	&lt;DIV&gt;! not zero up to rounding and computational errors. The norm is contained&lt;/DIV&gt;

	&lt;DIV&gt;! in DPAR(7) parameter&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IF (RCI_REQUEST.EQ.4) THEN&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IF (DPAR(7).LT.1.0D-12) THEN&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;GOTO 3&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ELSE&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;GOTO 1&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ENDIF&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! If RCI_REQUEST=anything else, then DFGMRES subroutine failed&lt;/DIV&gt;

	&lt;DIV&gt;! to compute the solution vector: COMPUTED_SOLUTION(N)&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ELSE&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GOTO 999&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ENDIF&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! Reverse Communication ends here&lt;/DIV&gt;

	&lt;DIV&gt;! Get the current iteration number and the FGMRES solution. (DO NOT FORGET to&lt;/DIV&gt;

	&lt;DIV&gt;! call DFGMRES_GET routine as computed_solution is still containing&lt;/DIV&gt;

	&lt;DIV&gt;! the initial guess!). Request to DFGMRES_GET to put the solution into&lt;/DIV&gt;

	&lt;DIV&gt;! vector COMPUTED_SOLUTION(N) via IPAR(13)&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;3 &amp;nbsp; &amp;nbsp; IPAR(13)=0&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; CALL DFGMRES_GET(N, COMPUTED_SOLUTION, RHS, RCI_REQUEST, IPAR,&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 DPAR, TMP, ITERCOUNT)&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! Print solution vector: COMPUTED_SOLUTION(N) and&lt;/DIV&gt;

	&lt;DIV&gt;! the number of iterations: ITERCOUNT&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE( *,'(A)') ' '&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE( *,'(A)') 'The system has been solved'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE( *,'(A)') ' '&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE( *,'(A)') 'The following solution has been obtained:'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; DO I=1,N&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WRITE(*,'(A18,I1,A2,E10.3)') 'COMPUTED_SOLUTION(',I,')=',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 COMPUTED_SOLUTION(I)&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ENDDO&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE( *,'(A)') ' '&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE( *,'(A,I2)') 'Number of iterations: ',ITERCOUNT&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE( *,'(A)') ' '&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! Release internal MKL memory that might be used for computations&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; CALL MKL_FREE_BUFFERS&lt;/DIV&gt;

	&lt;DIV&gt;999 &amp;nbsp; WRITE( *,'(A,I2)') 'The solver has returned the ERROR code ',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 RCI_REQUEST&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;! Release internal MKL memory that might be used for computations&lt;/DIV&gt;

	&lt;DIV&gt;! NOTE: It is important to call the routine below to avoid memory leaks&lt;/DIV&gt;

	&lt;DIV&gt;! unless you disable MKL Memory Manager&lt;/DIV&gt;

	&lt;DIV&gt;!-----------------------------&lt;WBR /&gt;------------------------------&lt;WBR /&gt;----------------&lt;/DIV&gt;

	&lt;DIV&gt;998 &amp;nbsp; WRITE( *,'(A)') ' '&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE( *,'(A,A)') '-----------------------------&lt;WBR /&gt;----------------',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 '----------------------'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE( *,'(A,A)') 'Unfortunately, FGMRES+ILU0 Fortran example',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 ' has FAILED'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE( *,'(A,A)') '-----------------------------&lt;WBR /&gt;----------------',&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1 '----------------------'&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE( *,'(A)') ' '&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; CALL MKL_FREE_BUFFERS&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; STOP 1&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; DO I =1,N,1&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS(I) = COMPUTED_SOLUTION(I)&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ENDDO&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

	&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; END&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 15 Jun 2015 15:18:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040353#M20646</guid>
      <dc:creator>Maggie_m_</dc:creator>
      <dc:date>2015-06-15T15:18:40Z</dc:date>
    </item>
    <item>
      <title>Not much can be done with the</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040354#M20647</link>
      <description>&lt;P&gt;Not much can be done with the code fragments that you have given. The code is not complete, so it cannot be run to duplicate the seg-fault, and the parts that you gave are too long to check by visual inspection. Which MKL example code did you use as a basis for developing the code that you posted?&lt;/P&gt;</description>
      <pubDate>Mon, 15 Jun 2015 15:34:07 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040354#M20647</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2015-06-15T15:34:07Z</dc:date>
    </item>
    <item>
      <title>I used fgmres_full_funct_f.f</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040355#M20648</link>
      <description>&lt;P&gt;I used fgmres_full_funct_f.f and changed it as a subroutine. The main problem is the variables&amp;nbsp;&lt;SPAN style="font-size: 12px; line-height: 12px;"&gt;IA,JA,A,RHS have not been passed successfully. When I tried to print info of IA, JA, A in the subroutine, it turned out these variables got segment fault. &amp;nbsp;I checked the stack size&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 12px; line-height: 12px;"&gt;$limit&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 12px; line-height: 12px;"&gt;stacksize 10240 kbytes&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 12px; line-height: 12px;"&gt;The size of IA is 33140. &amp;nbsp;JA ,A &amp;nbsp;are 234808. &amp;nbsp;Not sure about whether this is because of the stack size.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 12px; line-height: 12px;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 15 Jun 2015 16:40:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040355#M20648</guid>
      <dc:creator>Maggie_m_</dc:creator>
      <dc:date>2015-06-15T16:40:02Z</dc:date>
    </item>
    <item>
      <title>Please zip (or use tar -zcf .</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040356#M20649</link>
      <description>&lt;P&gt;The TMP array is rather large and there may not be enough stack space for it.&lt;/P&gt;

&lt;P&gt;Please zip (or use tar -zcf ... to create a compressed tar archive) and attach the source code archive to a reply, using the "Attach Media" button. Someone may then look into the problem.&lt;/P&gt;</description>
      <pubDate>Mon, 15 Jun 2015 18:18:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040356#M20649</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2015-06-15T18:18:00Z</dc:date>
    </item>
    <item>
      <title>Thank for reply.  Yes, the</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040357#M20650</link>
      <description>&lt;P&gt;Thank for reply. &amp;nbsp;Yes, the reason is tmp is too large. &amp;nbsp;Don't know whether there is a better idea to figure this out since this is too large memory requirement, even more than storing the whole matrix.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 17 Jun 2015 03:01:07 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040357#M20650</guid>
      <dc:creator>Maggie_m_</dc:creator>
      <dc:date>2015-06-17T03:01:07Z</dc:date>
    </item>
    <item>
      <title>Among remedies for stack</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040358#M20651</link>
      <description>&lt;P&gt;Among remedies for stack overflow are setting larger stack or -heap-array compile option.&lt;/P&gt;</description>
      <pubDate>Wed, 17 Jun 2015 07:50:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040358#M20651</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2015-06-17T07:50:46Z</dc:date>
    </item>
    <item>
      <title>Most operating systems have a</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040359#M20652</link>
      <description>&lt;P&gt;Most operating systems have a means for raising stack limit, while most fortrans have an option like ifort -heap-arrays to cause allocations to use heap rather than stack.&amp;nbsp; You may need to use 64-bit (Intel64) mode and make the big array allocatable.&lt;/P&gt;</description>
      <pubDate>Wed, 17 Jun 2015 08:12:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040359#M20652</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2015-06-17T08:12:51Z</dc:date>
    </item>
    <item>
      <title>Quote:Maggie m. wrote:</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040360#M20653</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Maggie m. wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Thank for reply. &amp;nbsp;Yes, the reason is tmp is too large. &amp;nbsp;Don't know whether there is a better idea to figure this out since this is too large memory requirement, even more than storing the whole matrix.&amp;nbsp;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;One solution is to allocate TMP on the heap by declaring TMP as ALLOCATABLE and allocating it in the subroutine, before passing it as an argument to other subroutines.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 17 Jun 2015 12:54:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040360#M20653</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2015-06-17T12:54:15Z</dc:date>
    </item>
    <item>
      <title>I am back.  After allocating</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040361#M20654</link>
      <description>&lt;P&gt;I am back. &amp;nbsp;After allocating the parameter arrays, &amp;nbsp;I got such error in DCSRILU0:&amp;nbsp;&lt;/P&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;Intel MKL DCSRILU0 ERROR:&amp;nbsp;&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;Cannot proceed with calculations as input&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;matrix column indexes are not in increasing order.&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;ilu end&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;forrtl: severe (174): SIGSEGV, segmentation fault occurred&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;When I delete the ILU, &amp;nbsp;I got the errors:&amp;nbsp;&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;
	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;dfgmres check begin&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;dfgmres check end&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;Some info about the current run of RCI FGMRES method:&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;&amp;nbsp;&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;As ipar[7]=1, the automatic test for the maximal number of iterations will be&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;performed&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;+++&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;As ipar[8]=1, the automatic residual test will be performed&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;+++&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;As ipar[9]=0, the user-defined stopping test will not be requested, thus,&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;RCI_request will not take the value 2&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;+++&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;As ipar[10]=0, the Preconditioned FGMRES iterations will not be performed,&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;thus, RCI_request will not take the value 3&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;+++&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;As ipar[11]=1, the automatic test for the norm of the next generated vector is&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;not equal to zero up to rounding and computational errors will be performed,&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;thus, RCI_request will not take the value 4&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;+++&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;&amp;nbsp;&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;The solver has returned the ERROR code -1 .&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;&amp;nbsp;&lt;/DIV&gt;

	&lt;DIV style="color: rgb(34, 34, 34); font-family: arial, sans-serif; font-size: 12.8000001907349px; line-height: normal;"&gt;Any suggestions? &amp;nbsp;Thanks!&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 22 Jun 2015 16:45:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040361#M20654</guid>
      <dc:creator>Maggie_m_</dc:creator>
      <dc:date>2015-06-22T16:45:34Z</dc:date>
    </item>
    <item>
      <title>Please post the complete</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040362#M20655</link>
      <description>&lt;P&gt;Please post the complete source code using either (i) the {code} button at the right of the toolbar when you reply in this forum, or (ii) as a file attachment using the "Attach media/Browse" button at the bottom left of the comment window.&lt;/P&gt;</description>
      <pubDate>Mon, 22 Jun 2015 17:23:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040362#M20655</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2015-06-22T17:23:24Z</dc:date>
    </item>
    <item>
      <title>I  tried to print out the</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040363#M20656</link>
      <description>&lt;P&gt;I &amp;nbsp;tried to print out the matrix in csr format. But got another issue here.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;A href="https://software.intel.com/en-us/forums/topic/560493" target="_blank"&gt;https://software.intel.com/en-us/forums/topic/560493&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jun 2015 21:23:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040363#M20656</guid>
      <dc:creator>Maggie_m_</dc:creator>
      <dc:date>2015-06-25T21:23:02Z</dc:date>
    </item>
    <item>
      <title>Hi Maggie, </title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040364#M20657</link>
      <description>&lt;P&gt;Hi Maggie,&amp;nbsp;&lt;/P&gt;

&lt;P&gt;There are some code errors in your code. &amp;nbsp;For example, i mentioned, the function required 1 -based index whatever in C or fortran.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;and the array ipar and dpar should be 128 . not N.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;and the&amp;nbsp;&amp;nbsp;bilu0 = (double *)calloc(*NNZ, sizeof(double)) , not NN etc.&lt;/P&gt;

&lt;P&gt;remove some correct conditions which is in original sample code, you don't need when solve the Ax=b..&amp;nbsp;&lt;/P&gt;

&lt;P&gt;I attach the modify code for your reference.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Best Regards,&lt;/P&gt;

&lt;P&gt;Ying&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;[yhu5@prc-mic01 mklex]$ make&lt;BR /&gt;
	ifort -check bounds -g -traceback -i8 -openmp -w -fast -DMKL_ILP64 -m64 -I/opt/intel/mkl/include/intel64/ilp64 -I/opt/intel/mkl/include &amp;nbsp;-c hypretest.f&lt;BR /&gt;
	icc -g -traceback -i8 -openmp -w -fast -DMKL_ILP64 -m64 -I/opt/intel/mkl/include/intel64/ilp64 -I/opt/intel/mkl/include &amp;nbsp;-c LinearSolver.c&lt;BR /&gt;
	ifort -check bounds -g -traceback hypretest.o LinearSolver.o -L/opt/intel/mkl/lib/intel64 -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_blas95_ilp64 -lmkl_lapack95_ilp64 -liomp5 -lmkl_core &amp;nbsp;-lm -lpthread -o ds&lt;BR /&gt;
	[yhu5@prc-mic01 mklex]$ ./ds&lt;BR /&gt;
	&amp;nbsp;number of rows = &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 10&lt;BR /&gt;
	&amp;nbsp;number of nonzeros = &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 28&lt;BR /&gt;
	sizetmpi= 306, sizeof(ia)= 8&lt;BR /&gt;
	N=10, NNZ= 28&lt;BR /&gt;
	LinearSolver: Line 48&lt;BR /&gt;
	dfgmres_init&lt;BR /&gt;
	dfgmres_end&lt;BR /&gt;
	ilu begin&lt;BR /&gt;
	ilu end&lt;BR /&gt;
	dfgmres check begin&lt;BR /&gt;
	dfgmres check end&lt;BR /&gt;
	Some info about the current run of RCI FGMRES method:&lt;/P&gt;

&lt;P&gt;As ipar[7]=0, the automatic test for the maximal number of iterations will be&lt;BR /&gt;
	skipped&lt;BR /&gt;
	+++&lt;BR /&gt;
	As ipar[8]=0, the automatic residual test will be skipped&lt;BR /&gt;
	+++&lt;BR /&gt;
	As ipar[9]=1 the user-defined stopping test will be requested via&lt;BR /&gt;
	RCI_request=2&lt;BR /&gt;
	+++&lt;BR /&gt;
	As ipar[10]=1, the Preconditioned FGMRES iterations will be performed, thus,&lt;BR /&gt;
	the preconditioner action will be requested via RCI_request=3&lt;BR /&gt;
	+++&lt;BR /&gt;
	As ipar[11]=0, the automatic test for the norm of the next generated vector is&lt;BR /&gt;
	not equal to zero up to rounding and computational errors will be skipped,&lt;BR /&gt;
	thus, the user-defined test will be requested via RCI_request=4&lt;BR /&gt;
	+++&lt;/P&gt;

&lt;P&gt;dfgmres begin to solve&lt;BR /&gt;
	dfgmres end of solve&lt;BR /&gt;
	dfgmres end of solve&lt;BR /&gt;
	dfgmres end of solve&lt;BR /&gt;
	dfgmres end of solve&lt;BR /&gt;
	dfgmres end of solve&lt;BR /&gt;
	dfgmres end of solve&lt;BR /&gt;
	The system has been solved&lt;/P&gt;

&lt;P&gt;Number of iterations: 1&lt;/P&gt;

&lt;P&gt;&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 5 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 6 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 7 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 8 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 9 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	&amp;nbsp;b( &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;10 )= &amp;nbsp; 1.00000000000000&lt;BR /&gt;
	[yhu5@prc-mic01 mklex]$&lt;/P&gt;</description>
      <pubDate>Wed, 01 Jul 2015 08:21:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/segment-fault-error-for-fortran-code/m-p/1040364#M20657</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2015-07-01T08:21:24Z</dc:date>
    </item>
  </channel>
</rss>

