title: SuperLU dgstrf returns a memory allocation failure when I increase the size of my sparse matrix
body: <p>I am creating a FEA program and I am dealing with matrices on the order 290-96 thousand squared or 27-9 billion elements. These matrices are largely sparse so I am using SuperLU to solve them. I have been able to successfully use SuperLU to solve the problem which has matched up with validation data reasonably well with smaller matrices. However, as I increase the size of my matrices, SuperLU's dgstrf function is outputting an info value of roughly 900 million (914459273 one time, 893813121 another).</p>
  
  <p>The documentation says that this info value is "number of bytes allocated when memory allocation failure occurred, plus A->ncol." However this does not give any information on how to work through this error. What is limiting the memory in this case? Does the library limit the memory? Is it hard coded into the library or is it determined during compilation? Is the memory limited in the compilation of my Fortran code?</p>
  
  <p>I am writing my code in Fortran and am using the prebuilt c_fortran_dgssv.c file to link with SuperLU. This file does allow the system to "allocate space internally by system malloc" (lwork=0). Is this something that I could change in order to have more space.</p>
  
  <p>I am calling the code using similar calls as the fortran example.</p>
  
  <pre><code>nrhs = 1
  ldb = Dim3DFull
  iopt = 1
  call c_fortran_dgssv(iopt,Dim3DFull,TotalNonZeroElements_BCs,nrhs, &amp;
      Global_Matrix_T_Value_BC_CSC,Global_Matrix_T_Row_BC_CSC, &amp;
      Global_Matrix_T_Col_BC_CSC,Global_Temp,ldb,factors,info)
  if (info .eq. 0) then
      write (*,*) 'Factorization succeeded'
  else
      write(*,*) 'INFO from factorization = ', info
  endif
  !Second, solve the system using the existing factors.
  iopt = 2
  call c_fortran_dgssv(iopt,Dim3DFull,TotalNonZeroElements_BCs,nrhs, &amp;
      Global_Matrix_T_Value_BC_CSC,Global_Matrix_T_Row_BC_CSC, &amp;
      Global_Matrix_T_Col_BC_CSC,Global_Temp,ldb,factors,info)
  if (info .eq. 0) then
      write (*,*) 'Solve succeeded'
  else
      write(*,*) 'INFO from triangular solve = ', info
  endif
  !Last, free the storage allocated inside SuperLU
  iopt = 3
  call c_fortran_dgssv(iopt,Dim3DFull,TotalNonZeroElements_BCs,nrhs, &amp;
      Global_Matrix_T_Value_BC_CSC,Global_Matrix_T_Row_BC_CSC, &amp;
      Global_Matrix_T_Col_BC_CSC,Global_Temp,ldb,factors,info)
  </code></pre>