function a = r8ccs_inc ( m, n, nz_num, colptr, rowind, a, i, j, aij )

%*****************************************************************************80
%
%% r8ccs_inc() increments a value of an r8ccs matrix.
%
%  Discussion:
%
%    The r8ccs format is the double precision sparse compressed column
%    format.  Associated with this format, we have an M by N matrix
%    with NZ_NUM nonzero entries.  We construct the column pointer
%    vector COL of length N+1, such that entries of column J will be
%    stored in positions COL(J) through COL(J+1)-1.  This indexing
%    refers to both the ROW and A vectors, which store the row indices
%    and the values of the nonzero entries.  The entries of the
%    ROW vector corresponding to each column are assumed to be
%    ascending sorted.
%
%    The r8ccs format is equivalent to the MATLAB "sparse" format,
%    and the Harwell Boeing "real unsymmetric assembled" (RUA) format.
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    01 September 2006
%
%  Author:
%
%    John Burkardt
%
%  Reference:
%
%    Iain Duff, Roger Grimes, John Lewis,
%    User's Guide for the Harwell-Boeing Sparse Matrix Collection,
%    October 1992
%
%  Input:
%
%    integer M, the number of rows of the matrix.
%
%    integer N, the number of columns of the matrix.
%
%    integer NZ_NUM, the number of nonzero entries.
%
%    integer COLPTR(N+1), indicate where each column's data begins.
%
%    integer ROWIND(NZ_NUM), the row indices.
%
%    real A(NZ_NUM), the nonzero entries.
%
%    integer I, J, the indices of the value to retrieve.
%
%    real AIJ, the value to be added to A(I,J).
%
%  Output:
%
%    real A(NZ_NUM), entry (I,J) has been incremented.
%

%
%  Seek sparse index K corresponding to full index (I,J).
%
  k = r8ccs_ijk ( m, n, nz_num, colptr, rowind, i, j );
%
%  If no K was found, we fail.
%
  if ( k == -1 )
    fprintf ( 1, '\n' );
    fprintf ( 1, 'r8ccs_inc - Fatal error!\n' );
    fprintf ( 1, '  r8ccs_ijk could not find the entry.\n' );
    fprintf ( 1, '  Row I = %d\n', i );
    fprintf ( 1, '  Col J = %d\n', j );
    error ( 'r8ccs_inc - Fatal error!' );
  end

  a(k) = a(k) + aij;

  return
end
