========================= Coordinate (Coord) Format ========================= This standard data format consists of the following data: .. code-block:: Fortran integer :: m ! number of rows (unsymmetric only) integer :: n ! number of columns integer :: ne ! number of entries in matrix (may have type long) integer, size(ne) :: row ! row indices integer, size(ne) :: col ! column indices real, size(ne) :: val ! numerical values The arrays should be set such that the ``k``-th entry is in row ``row(k)`` and column ``col(k)`` with value ``val(k)``. Entries that are zero, including those on the diagonal, need not be specified. For **symmetric matrices**, only the lower *or* upper triangular entries of :math:`A` should be supplied. For **unsymmetric matrices**, all entries in the matrix should be supplied. Duplicate entries will be summed and out-of-range entries will be ignored. Some SPRAL routines offer only input in :doc:`CSC format`, you may need to use routines from the :f:mod:`spral_matrix_util` package to convert data from Coordinate to CSC format. To illustrate the Coordinate format, the matrix .. math:: \left( \begin{array}{ccccc} 1.1 & 2.2 & & 3.3 & \\ 2.2 & & 4.4 & & \\ & 4.4 & 5.5 & & 6.6 \\ 3.3 & & & 7.7 & 8.8 \\ & & 6.6 & 8.8 & 9.9 \end{array} \right) is described by the following data: .. code-block:: fortran n = 5 ne = 9 row(1:9) = (/ 1, 2, 3, 4, 3, 5, 4, 5, 5 /) col(1:9) = (/ 1, 1, 2, 1, 3, 3, 4, 4, 5 /) val(1:9) = (/ 1.1, 2.2, 4.4, 3.3, 5.5, 6.6, 7.7, 8.8, 9.9 /)