anchor.diff:  !   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
   !   FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
   !   DEALINGS IN THE SOFTWARE.
  -! 
  +!
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   
   subroutine estimateRateCoefficients_CSE(T, P, E, Mcoll0, E0, densStates, &
  
positive.code:         eqDist(index,i+nIsom) = 1.0
      end do
  
      ! Construct the rate constant matrix
      do j = 1, nIsom+nReac
          do r = 1, nGrains
              do i = 1, nIsom
                  index = indices(r,i)
                  if (index > 0) then
                      K(i,j) = K(i,j) + sum(M(index,:) * eqDist(:,j))
                  end if
              end do
          end do
          do i = 1, nReac
              index = nRows - nReac + i
              K(i+nIsom,j) = sum(M(index,:) * eqDist(:,j))
          end do
      end do
  
      ! Clean up
      deallocate( Mcoll, Mrxn, M, S, Sinv, V0, work, eqDist, X, V, Xinv )
  
  end subroutine
  
  
negative.code:     integer, dimension(1:nGrains,1:nIsom) :: indices
  
      ! Intermediate matrices
      real(8), dimension(:,:), allocatable :: Mcoll, Mrxn, M, X, Xinv, eqDist, dXij
      real(8), dimension(:), allocatable :: S, Sinv, V0, V, C
  
      ! BLAS and LAPACK temporary variables
      real(8), dimension(:), allocatable :: work
      integer info
  
      ! Indices
      integer i, j, n, r, h, index, count
  
      ! Construct accounting matrix
  	! Row is grain number, column is well number, value is index into matrix
  