January 1 2011 11:38:54.986 AM HB_IO_PRB FORTRAN90 version Test the routines in HB_IO. TEST01 HB_HEADER_READ reads the header of an HB file. Reading the file "rua_32.txt". 1Real unsymmetric assembled matrix based on IBM32 TOTCRD = 36 PTRCRD = 3 INDCRD = 8 VALCRD = 13 RHSCRD = 12 KEY = "RUA_32". MXTYPE = "RUA". RHSTYP = "FGX". NROW = 32 NCOL = 32 NNZERO = 126 NELTVL = 0 NRHS = 1 NRHSIX = 0 PTRFMT = "(16I5)". INDFMT = "(16I5)". VALFMT = "(10F7.1)". RHSFMT = "(10F7.1)". TEST01 HB_HEADER_READ reads the header of an HB file. Reading the file "rse_5.txt". 1Real symmetic unassembled finite element matrix TOTCRD = 4 PTRCRD = 1 INDCRD = 1 VALCRD = 2 RHSCRD = 0 KEY = "RSE_5". MXTYPE = "RSE". RHSTYP = "". NROW = 5 NCOL = 5 NNZERO = 0 NELTVL = 15 NRHS = 0 NRHSIX = 0 PTRFMT = "(16I5)". INDFMT = "(16I5)". VALFMT = "(10F7.1)". RHSFMT = "(10F7.1)". TEST02 HB_HEADER_WRITE writes the header of an HB file. Writing the file "rua_32_header.txt". TEST03 HB_STRUCTURE_READ reads the structure of an HB file. Reading the file "rua_32.txt". Reading the header. Reading the structure. 1Real unsymmetric assembled matrix based on IBM32 KEY = "RUA_32 ". NROW = 32 NCOL = 32 NNZERO = 126 NELTVL = 0 Column Begin End ---------------------------------------- 1 1 6 1 2 3 4 7 26 2 7 11 1 2 9 21 28 3 12 17 2 3 6 8 9 29 4 18 21 3 4 5 12 5 22 25 3 5 23 27 6 26 28 1 6 16 7 29 33 3 7 14 21 31 8 34 38 1 8 12 17 27 9 39 45 7 9 10 13 19 23 27 10 46 52 1 10 11 21 23 25 27 ---------------------------------------- TEST03 HB_STRUCTURE_READ reads the structure of an HB file. Reading the file "rse_5.txt". Reading the header. Reading the structure. 1Real symmetic unassembled finite element matrix KEY = "RSE_5 ". NROW = 5 NCOL = 5 NNZERO = 0 NELTVL = 15 Column Begin End ---------------------------------------- ---------------------------------------- I haven't thought about how to print an unassembled matrix yet! TEST04 HB_STRUCTURE_WRITE writes the structure of an HB file. Writing the file "rua_32_structure.txt". TEST05 HB_VALUES_READ reads the values of an HB file. Reading the file "rua_32.txt". Reading the header. Reading the structure. Reading the values. 1Real unsymmetric assembled matrix based on IBM32 KEY = "RUA_32 ". NROW = 32 NCOL = 32 NNZERO = 126 NELTVL = 0 Column Begin End ---------------------------------------- 1 1 6 101.0 102.0 103.0 104.0 107.0 126.0 2 7 11 201.0 202.0 209.0 221.0 228.0 3 12 17 302.0 303.0 306.0 308.0 309.0 329.0 4 18 21 403.0 404.0 405.0 412.0 5 22 25 503.0 505.0 523.0 527.0 (Skipping intermediate columns...) 32 124 126 3224. 3228. 3232. ---------------------------------------- TEST05 HB_VALUES_READ reads the values of an HB file. Reading the file "rse_5.txt". Reading the header. Reading the structure. Reading the values. 1Real symmetic unassembled finite element matrix KEY = "RSE_5 ". NROW = 5 NCOL = 5 NNZERO = 0 NELTVL = 15 Column Begin End ---------------------------------------- ---------------------------------------- I haven't thought about how to print an unassembled matrix yet! TEST06 HB_VALUES_WRITE writes the values of an HB file. Writing the file "rua_32_values.txt". TEST07 HB_RHS_READ reads right hand sides from an HB file. HB_GUESS_READ reads starting guesses from an HB file. HB_EXACT_READ reads exact solutions from an HB file. Reading the file "rua_32.txt". Reading the header. Reading the structure. Reading the values. Reading the right hand side. Part of RHS array Col 1 Row 1 101. 2 102. 3 103. 4 104. 5 107. Reading the starting guesses. Part of GUESS array Col 1 Row 1 1. 2 1. 3 1. 4 1. 5 1. Reading the exact solutions. Part of EXACT array Col 1 Row 1 1. 2 2. 3 3. 4 4. 5 5. TEST08 HB_RHS_WRITE writes the right hand sides to an HB file. HB_GUESS_WRITE writes starting guesses to an HB file. HB_EXACT_WRITE writes exact solutions to an HB file. Writing the file "rua_32_rhs.txt". TEST09 HB_FILE_READ reads all the data in an HB file. HB_FILE_MODULE is the module that stores the data. Reading the file "rua_32.txt". 1Real unsymmetric assembled matrix based on IBM32 TOTCRD = 36 PTRCRD = 3 INDCRD = 8 VALCRD = 13 RHSCRD = 12 KEY = "RUA_32". MXTYPE = "RUA". RHSTYP = "FGX". NROW = 32 NCOL = 32 NNZERO = 126 NELTVL = 0 NRHS = 1 NRHSIX = 0 PTRFMT = "(16I5)". INDFMT = "(16I5)". VALFMT = "(10F7.1)". RHSFMT = "(10F7.1)". Column Begin End ---------------------------------------- 1 1 6 1 2 3 4 7 26 2 7 11 1 2 9 21 28 3 12 17 2 3 6 8 9 29 4 18 21 3 4 5 12 5 22 25 3 5 23 27 6 26 28 1 6 16 7 29 33 3 7 14 21 31 8 34 38 1 8 12 17 27 9 39 45 7 9 10 13 19 23 27 10 46 52 1 10 11 21 23 25 27 ---------------------------------------- Column Begin End ---------------------------------------- 1 1 6 101.0 102.0 103.0 104.0 107.0 126.0 2 7 11 201.0 202.0 209.0 221.0 228.0 3 12 17 302.0 303.0 306.0 308.0 309.0 329.0 4 18 21 403.0 404.0 405.0 412.0 5 22 25 503.0 505.0 523.0 527.0 (Skipping intermediate columns...) 32 124 126 3224. 3228. 3232. ---------------------------------------- Part of RHS array Col 1 Row 1 101. 2 102. 3 103. 4 104. 5 107. Part of GUESS array Col 1 Row 1 1. 2 1. 3 1. 4 1. 5 1. Part of EXACT array Col 1 Row 1 1. 2 2. 3 3. 4 4. 5 5. TEST10 HB_FILE_WRITE writes an HB file. Writing the file "rua_32_file.txt". TEST11 HB_MATVEC_A_MEM multiplies a matrix times a vector. This particular version assumes: * the matrix is in "A" format (assembled), * the matrix and vectors can fit in memory, * the matrix and multiplicand have been read into memory before the routine is called. For this example, the first vector X is zero except for a 1 in row 10. This means A*X should return column 10 of A. The second vector X is all 1's. A*X should be the sum of the entries of each row. The product vectors A*X Col 1 2 Row 1 1001. 4606. 2 0. 5512. 3 0. 8424. 4 0. 3816. 5 0. 6520. 6 0. 6430. 7 0. 1721. 8 0. 3124. 9 0. 4236. 10 1010. 3730. 11 1011. 5644. 12 0. 7860. 13 0. 7952. 14 0. 5242. 15 0. 5145. 16 0. 5964. 17 0. 7868. 18 0. 8072. 19 0. 2838. 20 0. 5360. 21 1021. 6405. 22 0. 6466. 23 1023. 7815. 24 0. 12120. 25 1025. 3550. 26 0. 9830. 27 1027. 8962. 28 0. 6284. 29 0. 4387. 30 0. 4860. 31 0. 3862. 32 0. 8296. Writing the file "rua_32_ax.txt". TEST12 HB_VECMAT_A_MEM multiplies a vector times a matrix b' = x' * A, or, equivalently, computes b = A'*x. This particular version assumes: * the matrix is in "A" format (assembled), * the matrix and vectors can fit in memory, * the matrix and multiplicand have been read into memory before the routine is called. For this example, the first vector X is zero except for a 1 in row 10. This means A'*X should return row 10 of A. The second vector X is all 1's. A'*X should be the sum of the entries of each column. The product vectors A'*X Col 1 2 Row 1 0. 643. 2 0. 1061. 3 0. 1857. 4 0. 1624. 5 0. 2058. 6 0. 1823. 7 0. 3576. 8 0. 4065. 9 910. 6408. 10 1010. 7118. 11 0. 5575. 12 0. 3642. 13 0. 2624. 14 0. 2817. 15 0. 4537. 16 0. 4842. 17 0. 5137. 18 1810. 9084. 19 0. 5746. 20 0. 6044. 21 0. 6356. 22 0. 4433. 23 0. 9263. 24 0. 7262. 25 0. 12588. 26 0. 10479. 27 0. 10882. 28 0. 5637. 29 0. 14596. 30 0. 12082. 31 0. 9358. 32 0. 9684. Writing the file "rua_32_xa.txt". HB_IO_PRB: Normal end of execution. January 1 2011 11:38:54.990 AM