HB_IO
Harwell Boeing Matrix File
Read and Write Utilities
HB_IO is a FORTRAN90 library,
using double precision arithmetic,
which can read and
write files in the Harwell Boeing sparse matrix format, used by the
Harwell Boeing Sparse Matrix Collection.
A special feature of HB_IO is the routine HB_FILE_READ,
which can read all the information from an HBSMC file of arbitrary
size. The data can then be accessed by the user by "using"
the module HB_FILE_MODULE. Suggestions on how to compile,
store and access the module are sketched out in the sample problem
source code and in the command files.
Note that the most common "flavor" of HBSMC file is an assembled
sparse matrix, but that there are some lesser used options,
including storage of the matrix as unassembled finite element
matrices, and corresponding storage of vectors. These secondary
options are less well documented, and are only marginally supported
in this package.
Related Data and Programs:
DLAP_IO is a package of routines for reading and writing matrices
in a variety of formats, and includes a routine for reading
matrices in HB format.
The HB dataset directory
contains a collection of sparse matrices in the HB format.
HB_IO is also available in
a C++ version and
a MATLAB version.
HB_TO_MSM is a MATLAB script which reads an HB file and
converts the matrix to MATLAB's sparse matrix format.
HB_TO_ST is an executable FORTRAN77 program which
converts the sparse matrix information stored in a Harwell-Boeing
file into a sparse triplet file.
LINPLUS is a linear algebra package which contains some
routines to manipulate matrices stored in the HB sparse matrix
format.
MM_IO
is a FORTRAN90 library for reading and writing
matrices in the Matrix Market format.
MSM_TO_HB
is a MATLAB script which takes a matrix in MATLAB's sparse
matrix format and writes it out in the HB format.
SUPER_LU
includes routines which can read and write matrices in the HB format.
Reference:
-
Iain Duff, Roger Grimes, John Lewis,
User's Guide for the Harwell-Boeing Sparse Matrix Collection,
Technical Report TR/PA/92/86, CERFACS,
October 1992,
Available online at
../../pdf/hbsmc.pdf.
-
Iain Duff, Roger Grimes, John Lewis,
Sparse Matrix Test Problems,
ACM Transactions on Mathematical Software,
Volume 15, pages 1-14, March 1989.
-
http://math.nist.gov/MatrixMarket/data/Harwell-Boeing/
the Harwell-Boeing area of the MatrixMarket web site.
Source Code:
Examples and Tests:
-
hb_io_prb.f90,
a sample calling program.
-
hb_io_prb.csh,
commands to compile and run the sample program.
-
hb_io_prb_output.txt,
the output from a run of the sample program.
-
rse_5.txt,
a sample HBSMC symmetric unassembled "element" matrix file.
-
rua_32.txt,
a sample HBSMC unsymmetric assembled sparse matrix file.
-
rua_32_file.txt,
a full version of "rua_32.txt" written by HB_FILE_WRITE.
-
rua_32_header.txt,
the header of "rua_32.txt" written by HB_HEADER_WRITE.
-
rua_32_rhs.txt,
the headers, structure, values and right hand side of
"rua_32.txt".
-
rua_32_structure.txt,
the headers and structure of "rua_32.txt".
-
rua_32_values.txt,
the headers, structure, and values of "rua_32.txt".
-
rua_32_ax.txt,
a sample HBSMC unsymmetric assembled sparse matrix file,
with exact solutions, and two right hand side vectors
computed from the exact solutions by calling HB_MATVEC_A_MEM.
List of Routines:
-
HB_FILE_MODULE is a module which can store data from an HB file.
-
GET_UNIT returns a free FORTRAN unit number.
-
HB_EXACT_READ reads the exact solution vectors in an HB file.
-
HB_EXACT_WRITE writes the exact solution vectors to an HB file.
-
HB_FILE_READ reads an HB file.
-
HB_FILE_WRITE writes an HB file.
-
HB_GUESS_READ reads the starting guess vectors in an HB file.
-
HB_GUESS_WRITE writes the starting guess vectors to an HB file.
-
HB_HEADER_PRINT prints the header of an HB file.
-
HB_HEADER_READ reads the header of an HB file.
-
HB_HEADER_WRITE writes the header of an HB file.
-
HB_MATVEC_A_MEM multiplies an assembled Harwell Boeing matrix times a vector.
-
HB_RHS_READ reads the right hand side information in an HB file.
-
HB_RHS_WRITE writes the right hand side information to an HB file.
-
HB_STRUCTURE_PRINT prints the structure of an HB matrix.
-
HB_STRUCTURE_READ reads the structure of an HB matrix.
-
HB_STRUCTURE_WRITE writes the structure of an HB matrix.
-
HB_UA_COLUMN_INDEX creates a column index for an unsymmetric assembled matrix.
-
HB_VALUES_PRINT prints the values of an HB matrix.
-
HB_VALUES_READ reads the values of an HB matrix.
-
HB_VALUES_WRITE writes the values of an HB matrix.
-
HB_VECMAT_A_MEM multiplies a vector times an assembled Harwell Boeing matrix.
-
I4VEC_PRINT prints an I4VEC.
-
I4VEC_PRINT_SOME prints "some" of an I4VEC.
-
R8MAT_PRINT prints an R8MAT.
-
R8MAT_PRINT_SOME prints some of an R8MAT.
-
R8VEC_PRINT prints an R8VEC.
-
R8VEC_PRINT_SOME prints "some" of an R8VEC.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 21 October 2006.