anchor.diff:          end do
       end do
       
  +    ! Check: The eigenvector corresponding to the zero eigenvalue should
  +    ! be identical to eqRatios
  +    !do j = 1, nIsom+nProd
  +    !    if (abs(X(j,nIsom+nProd) - eqRatios(j)) / eqRatios(j) > 0.001) then
  +    !        return
  +    !    end if
  +    !end do
  +
       ! Invert the chemical eigenvector matrix
       Xinv = X
       allocate(iPiv(1:nIsom+nProd))
  
positive.code:     
      ! The indices of the master equation matrix
      integer, dimension(1:nGrains,1:nIsom) :: indices
      
      ! Intermediate matrices
      real(8), dimension(:,:), allocatable :: Mcoll, Mrxn, M, X, Xinv
      real(8), dimension(:), allocatable :: S, Sinv, V0, V
  
negative.code:     end do
  
  	! DEBUG: Check that the matrix has been properly symmetrized
      !do i = 1, nRows
      !    do j = 1, i
      !        if (M(i,j) /= 0.0) then
      !            if (abs(M(i,j) - M(j,i)) / M(i,j) > 0.01) then
      !                write (*,*) i, j, M(i,j), M(j,i)
      !            end if
      !        end if
      !    end do
      !end do
  
      ! Zero phenomenological rate constant matrix
      do i = 1, nIsom + nProd
          do j = 1, nIsom + nProd
              K(i,j) = 0.0
          end do
      end do
  
      ! Calculate the eigenvalues and eigenvectors
      allocate( V0(1:nRows), work(1:6*nRows) )
  