# TABLE_BORDER Add zero boundary values to a table

TABLE_BORDER is a FORTRAN90 program which adds a layer of zero boundary values to a table.

To understand what's going on, assume that we begin with a set of (scalar) values on an M by N grid; we illustrate with M = 3 and N = 5:

```        11  12  13  14  15
21  22  23  24  25
31  32  33  34  35
```

Suppose that this data represents the values of some quantity on the interior points of a 5 x 7 grid, and that we'd like to make a new version of the table which includes entries for these boundary values; that is, we want the M+2 by N+2 array created by adding one row and column to the beginning and end of the original table, and setting those values to 0. For our example, this would be:

```         0   0   0   0   0   0   0
0  11  12  13  14  15   0
0  21  22  23  24  25   0
0  31  32  33  34  35   0
0   0   0   0   0   0   0
```

The TABLE_BORDER program is designed to do this, using the command line.

Now we are probably going to be dealing with much larger sets of data, stored in a file. So we have to figure out the rules for doing that:

Input file format: The initial data, which is "really" an M by N array, is to be thought of as a vector of length M * N, created by listing the first column, the second column, and so on to the last column. This data is stored in a file using the TABLE format. Our example data would be:

```        # Comments are OK in a file if preceded by the comment character!
#
11
21
31
12
22
...
34
15
25
35
```
We will presume this file is called "u.txt".

(Pie in the Sky): In a future version of this program, the data at each node will be allowed to be vector-valued. That's one reason we are forcing the data currently to be listed with just a single value per line in the file!

### Usage:

table_border u.txt v.txt m n
reads the input file u.txt, and the name of the output file v.txt, as well as m, the number of rows, and n, the number of columns, in the original spatial grid.

### Languages:

TABLE_BORDER is available in a C++ version and a FORTRAN90 version.

### Related Data and Programs:

TABLE_BARPLOT_PPMA, a FORTRAN90 program which reads a table file and creates an ASCII Portable Pixel Map (PPM) bargraph of the data.

TABLE_DELAUNAY, a FORTRAN90 program which computes the Delaunay triangulation of a set of points.

TABLE_HISTOGRAM, a FORTRAN90 program which can make a histogram of a set of points stored in a table file.

TABLE_IO, a FORTRAN90 library which supplies the routines used to read the TABLE file.

TABLE_LATINIZE, a FORTRAN90 program which reads a file of points and creates a "latinized" version by adjusting the data.

TABLE_MERGE, a FORTRAN90 program which reads a file of points, and removes duplicates, and points that are close to each other.

TABLE_ORTHONORMALIZE, a FORTRAN90 program which reads a file of points and orthonormalizes the columns.

TABLE_QUALITY, a FORTRAN90 program which reads a file of points and computes the quality of dispersion.

TABLE_RECORD_MATCH, a FORTRAN90 program which finds close records in a table file.

TABLE_SCALE, a FORTRAN90 program which multiplies the entries of a table file by a scale vector.

TABLE_SHIFT, a FORTRAN90 program which shifts the entries of a table file by a shift vector.

TABLE_STATS, a FORTRAN90 program which reads a table file and computes certain statistics.

TABLE_TET_MESH, a FORTRAN90 program which reads a table file of 3D data, and computes a tetrahedral mesh.

TABLE_TOP, a FORTRAN90 program which reads a table file of M-dimensional data and makes a table of plots of all pairs of coordinates.

TABLE_UNBORDER, a FORTRAN90 program which removes the border from a table file.

TABLE_UNIFORM_NOISE, a FORTRAN90 program which adds a uniform noise term to the data in a table file.

TABLE_VORONOI, a FORTRAN90 program which computes information about the Voronoi diagram of the points.

### Examples and Tests:

Our test data is the results of the command

table_border u_01.txt v_01.txt 3 5
Note that the program will automatically repeat the command on a numerical sequence of input files! Test files you may copy include:
• u_01.txt, input file #1, a 3 by 5 set of data.
• u_02.txt, input file #2, a 3 by 5 set of data.
• u_03.txt, input file #3, a 3 by 5 set of data.
• v_01.txt, output file #1, a 5 by 7 set of data.
• v_02.txt, output file #2, a 5 by 7 set of data.
• v_03.txt, output file #3, a 5 by 7 set of data.

### List of Routines:

• MAIN is the main program for TABLE_BORDER.
• CH_CAP capitalizes a single character.
• CH_EQI is a case insensitive comparison of two characters for equality.
• CH_IS_DIGIT returns TRUE if a character is a decimal digit.
• CH_TO_DIGIT returns the integer value of a base 10 digit.
• DTABLE_DATA_WRITE writes data to a double precision table file.
• DTABLE_PRINT prints a double precision matrix.
• DTABLE_PRINT_SOME prints some of a double precision matrix.
• DTABLE_WRITE writes a double precision table file.
• FILE_COLUMN_COUNT counts the number of columns in the first line of a file.
• FILE_EXIST reports whether a file exists.
• FILE_NAME_INC generates the next filename in a series.
• FILE_ROW_COUNT counts the number of row records in a file.
• GET_UNIT returns a free FORTRAN unit number.
• I4_INPUT prints a prompt string and reads an integer from the user.
• S_BLANK_DELETE removes blanks from a string, left justifying the remainder.
• S_INPUT prints a prompt string and reads a string from the user.
• S_TO_I4 reads an I4 from a string.
• S_TO_R8 reads an R8 from a string.
• S_TO_R8VEC reads an R8VEC from a string.
• S_WORD_COUNT counts the number of "words" in a string.
• TIMESTAMP prints the current YMDHMS date as a time stamp.
• TIMESTRING writes the current YMDHMS date into a string.

You can go up one level to the FORTRAN90 source codes.

Last revised on 13 November 2006.