anchor.diff:      ! The size of the master equation matrix
       integer nRows
       
  +    ! The number of chemically-significant eigenvalues
  +    integer nCSE
  +
       ! The indices of the master equation matrix
       integer, dimension(1:nGrains,1:nIsom) :: indices
   
  
positive.code:         msg = 'Chemical eigenvalues not distinct from internal energy eigenvalues.'
          return
      end if
      
      ! Check for zero eigenvalue
      if (abs(V0(nRows) / V0(nRows-1)) > 0.001) then
          write (*,fmt='(A)') 'Error: Zero eigenvalue not found.'
  
negative.code:         return
      end if
  
      ! Extract the chemically-significant eigenvalues and eigenvectors
      ! These are the last nIsom+nProd columns of M
      allocate( X(1:nIsom+nProd, 1:nCSE), V(1:nCSE), Xinv(1:nCSE, 1:nIsom+nProd))
      do i = 1, nIsom + nProd
          do j = 1, nCSE
              X(i,j) = 0.0
          end do
      end do
      do j = 1, nCSE
          count = nRows - (nIsom + nProd) + j
          V(j) = V0(count)
          do r = 1, nGrains
              do i = 1, nIsom
                  index = indices(r,i)
                  if (index > 0) then
                      ! Unsymmetrize as we go
                      X(i,j) = X(i,j) + Sinv(index) * M(index,count)
                  end if
              end do
          end do
          do i = 1, nProd
              index = nRows - nProd + i
              ! Unsymmetrize as we go
              X(i+nIsom,j) = Sinv(index) * M(index,count)
          end do
      end do
      
  