Print a real rectangular matrix with a given format and labels.
TITLE — Character
string specifying the title. (Input)
TITLE set equal to a
blank character(s) suppresses printing of the title.
A — NRA by NCA matrix to be printed. (Input)
RLABEL — CHARACTER * (*) vector of labels
for rows of A. (Input)
If rows are to be numbered consecutively 1, 2, …, NRA, use RLABEL(1) = 'NUMBER'. If no row
labels are desired, use RLABEL(1) = 'NONE'. Otherwise,
RLABEL is a
vector of length NRA containing the
labels.
CLABEL — CHARACTER * (*) vector of labels
for columns of A. (Input)
If columns are to be numbered consecutively 1, 2, …, NCA, use CLABEL(1) = 'NUMBER'. If no column
labels are desired, use CLABEL(1) = 'NONE'. Otherwise,
CLABEL(1) is the
heading for the row labels, and either CLABEL(2) must be
'NUMBER'or 'NONE', or CLABEL must be a
vector of length NCA + 1 with
CLABEL(1 + j)
containing the column heading for the j-th column.
NRA — Number of
rows. (Input)
Default: NRA = size
(A,1).
NCA — Number of
columns. (Input)
Default: NCA = size
(A,2).
LDA — Leading
dimension of A
exactly as specified in the dimension statement in the calling
program. (Input)
Default: LDA = size
(A,1).
ITRING — Triangle
option. (Input)
Default: ITRING = 0.
ITRING Action
0 Full matrix is printed.
1 Upper triangle of A is printed, including the diagonal.
2 Upper triangle of A excluding the diagonal of A is printed.
−1 Lower triangle of A is printed, including the diagonal.
−2 Lower triangle of A excluding the diagonal of A is printed.
FMT — Character
string containing formats. (Input)
If FMT is set to a blank
character(s), the format used is specified by WROPT. Otherwise, FMT must contain
exactly one set of parentheses and one or more edit descriptors. For example,
FMT = '(F10.3)' specifies this F format for the
entire matrix.
FMT = '(2E10.3, 3F10.3)' specifies an E format for columns 1
and 2 and an F
format for columns 3, 4 and 5. If the end of FMT is encountered and
if some columns of the matrix remain, format control continues with the first
format in FMT.
Even though the matrix A is real, an I format can be used
to print the integer part of matrix elements of A. The most useful
formats are special formats, called the V and W formats, that can be
used to specify pretty formats automatically. Set FMT = '(V10.4)' if you want a single
D, E, or F format selected
automatically with field width 10 and with 4 significant digits. Set FMT = '(W10.4)' if you want a single
D, E, F, or I format selected
automatically with field width 10 and with 4 significant digits. While the V format prints
trailing zeroes and a trailing decimal point, the W format does not. See
Comment 4 for general descriptions of the V and W formats. FMT may contain only
D, E, F, G, I, V, or W edit descriptors,
e.g., the X
descriptor is not allowed.
Default: FMT = ‘ ‘.
Generic: CALL WRRRL (TITLE, A, RLABEL, CLABEL [,…])
Specific: The specific interface names are S_WRRRL and D_WRRRL for two dimensional arrays, and S_WRRRL1D and D_WRRRL1D for one dimensional arrays.
Single: CALL WRRRL (TITLE, NRA, NCA, A, LDA, ITRING, FMT, RLABEL, CLABEL)
Double: The double precision name is DWRRRL.
Routine WRRRL prints a real rectangular matrix (stored in A) with row and column labels (specified by RLABEL and CLABEL, respectively) according to a given format (stored in FMT). WRRRL can restrict printing to the elements of upper or lower triangles of matrices via the ITRING option. Generally, ITRING ≠ 0 is used with symmetric matrices.
In addition, one-dimensional arrays can be printed as column or row vectors. For a column vector, set NRA to the length of the array and set NCA = 1. For a row vector, set NRA = 1 and set NCA to the length of the array. In both cases, set LDA = NRA, and set ITRING = 0.
1. Workspace may be explicitly provided, if desired, by use of W2RRL/DW2RRL. The reference is:
CALL W2RRL (TITLE, NRA, NCA, A, LDA, ITRING, FMT, RLABEL, CLABEL, CHWK)
The additional argument is:
CHWK — CHARACTER * 10 work vector of length NCA. This workspace is referenced only if all three conditions indicated at the beginning of this comment are met. Otherwise, CHWK is not referenced and can be a CHARACTER * 10 vector of length one.
2. The output appears in the following form:
TITLE
CLABEL(1) |
CLABEL(2) |
CLABEL(3) |
CLABEL(4) |
RLABEL(1) |
Xxxxx |
Xxxxx |
Xxxxx |
RLABEL(2) |
Xxxxx |
Xxxxx |
Xxxxx |
3. Use “% /” within titles or labels to create a new line. Long titles or labels are automatically wrapped.
4. For printing numbers whose magnitudes are unknown, the G format in FORTRAN is useful; however, the decimal points will generally not be aligned when printing a column of numbers. The V and W formats are special formats used by this routine to select a D, E, F, or I format so that the decimal points will be aligned. The V and W formats are specified as Vn.d and Wn.d. Here, n is the field width and d is the number of significant digits generally printed. Valid values for n are 3, 4,…, 40. Valid values for d are 1, 2, …, n − 2. If FMT specifies one format and that format is a V or W format, all elements of the matrix A are examined to determine one FORTRAN format for printing. If FMT specifies more than one format, FORTRAN formats are generated separately from each V or W format.
5. A page width of 78 characters is used. Page width and page length can be reset by invoking PGOPT .
6. Horizontal centering, method for printing large matrices, paging, method for printing NaN (not a number), printing a title on each page, and many other options can be selected by invoking WROPT .
7. Output is written to the unit specified by UMACH (see Reference Material).
The following example prints all of a 3 × 4 matrix A where aij = (i + j/10)10j-3.
USE WRRRL_INT
IMPLICIT NONE
INTEGER ITRING, LDA, NCA, NRA
PARAMETER (ITRING=0, LDA=10, NCA=4, NRA=3)
!
INTEGER I, J
REAL A(LDA,NCA)
CHARACTER CLABEL(5)*5, FMT*8, RLABEL(3)*5
!
DATA FMT/'(W10.6)'/
DATA CLABEL/' ', 'Col 1', 'Col 2', 'Col 3', 'Col 4'/
DATA RLABEL/'Row 1', 'Row 2', 'Row 3'/
!
DO 20 I=1, NRA
DO 10 J=1, NCA
A(I,J) = (I+J*0.1)*10.0**(J-3)
10 CONTINUE
20 CONTINUE
! Write A matrix.
CALL WRRRL ('A', A, RLABEL, CLABEL, NRA=NRA, FMT=FMT)
END
A
Col
1 Col 2
Col 3 Col 4
Row
1 0.011
0.120 1.300
14.000
Row 2
0.021
0.220 2.300
24.000
Row 3
0.031
0.320 3.300
34.000
Visual Numerics, Inc. PHONE: 713.784.3131 FAX:713.781.9260 |