table_io, a FORTRAN90 code which can read or write a TABLE file.
A TABLE file is a simple format for storing a double-indexed array of data. We regard this is a situation involving N points in M dimensions, with M relatively small (often just 2 or 3, but possibly 10 or 20) while N can be "enormous" (10, 100, 1,000 or 10,000).
To keep things simple, then, the data is written to an ASCII file, with optional comment lines (which must start with the '#' character) and blank lines (which are ignored). The point data is stored by writing the coordinates of each point on a separate line. No information about M or N is explicitly included in the file. It is up to the I/O program to determine this.
The code supplies routines by which a TABLE file can easily be written or read. A typical write operation for a double precision real table simply calls routine R8MAT_WRITE. A typical read operation will probably first want to call R8MAT_HEADER_READ to determine the values of M and N, and then allocate space for the table, and then call R8MAT_DATA_READ to read the data.
The code includes routines to read and write table datasets whose entries are integers (I4MAT) or double precision reals (R8MAT).
The computer code and data files described and made available on this web page are distributed under the MIT license
table_io is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version and a Python version and
TABLE_COLUMNS, a FORTRAN90 code which can extract specific columns of data from a table file.
TABLE_QUALITY, a FORTRAN90 code which reads a file of points and computes the quality of dispersion.
TABLE_TOP, a FORTRAN90 code which reads a table file of M-dimensional data and makes a table of plots of all pairs of coordinates.