Coordinate (Coord) Format¶

This standard data format consists of the following data:

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 $$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 CSC format, you may need to use routines from the spral_matrix_util package to convert data from Coordinate to CSC format.

To illustrate the Coordinate format, the matrix

$\begin{split}\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)\end{split}$

is described by the following data:

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 /)