1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
SUBROUTINE SPRTB2( LAB1, LAB2, LAB3, NN, NVAL, NLDA, RESLTS, LDR1,
$ LDR2, NOUT )
*
* -- LAPACK timing routine (version 3.0) --
* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
* Courant Institute, Argonne National Lab, and Rice University
* March 31, 1993
*
* .. Scalar Arguments ..
CHARACTER*( * ) LAB1, LAB2, LAB3
INTEGER LDR1, LDR2, NLDA, NN, NOUT
* ..
* .. Array Arguments ..
INTEGER NVAL( NN )
REAL RESLTS( LDR1, LDR2, * )
* ..
*
* Purpose
* =======
*
* SPRTB2 prints a table of timing data for the solve routines.
* There are 4 rows to each table, corresponding to
* NRHS = 1, 2, N/2, and N, or NRHS = 1, 2, K/2, K for the
* band routines.
*
* Arguments
* =========
*
* LAB1 (input) CHARACTER*(*)
* The label for the rows.
*
* LAB2 (input) CHARACTER*(*)
* The label for the columns.
*
* LAB3 CHARACTER*(*)
* The name of the variable used in the row headers (usually
* N or K).
*
* NN (input) INTEGER
* The number of values of NVAL, and also the number of columns
* of the table.
*
* NVAL (input) INTEGER array, dimension (NN)
* The values of LAB2 used for the data in each column.
*
* NLDA (input) INTEGER
* The number of values of LDA, hence the number of rows for
* each value of NRHS.
*
* RESLTS (input) REAL array, dimension (LDR1, LDR2, NLDA)
* The timing results for each value of N, K, and LDA.
*
* LDR1 (input) INTEGER
* The first dimension of RESLTS. LDR1 >= 4.
*
* LDR2 (input) INTEGER
* The second dimension of RESLTS. LDR2 >= max( 1, NN ).
*
* NOUT (input) INTEGER
* The unit number on which the table is to be printed.
* NOUT >= 0.
*
* =====================================================================
*
* .. Local Scalars ..
CHARACTER*6 COLLAB
INTEGER I, IC, INB, J, K, LNB
* ..
* .. Intrinsic Functions ..
INTRINSIC LEN, MAX
* ..
* .. Executable Statements ..
*
IF( NOUT.LE.0 )
$ RETURN
WRITE( NOUT, FMT = 9999 )LAB2, ( NVAL( I ), I = 1, NN )
WRITE( NOUT, FMT = 9998 )LAB1
*
* Find the first and last non-blank characters in LAB3.
*
INB = 0
DO 10 I = 1, LEN( LAB3 )
IF( INB.EQ.0 .AND. LAB3( I: I ).NE.' ' )
$ INB = I
IF( LAB3( I: I ).NE.' ' )
$ LNB = I
10 CONTINUE
IF( INB.EQ.0 ) THEN
INB = 1
LNB = 1
END IF
*
DO 50 I = 1, 4
IF( I.EQ.1 ) THEN
COLLAB = ' 1'
ELSE IF( I.EQ.2 ) THEN
COLLAB = ' 2'
ELSE IF( I.EQ.3 ) THEN
COLLAB = ' /2'
DO 20 J = LNB, MAX( INB, LNB-3 ), -1
IC = 4 - ( LNB-J )
COLLAB( IC: IC ) = LAB3( J: J )
20 CONTINUE
ELSE IF( I.EQ.4 ) THEN
COLLAB = ' '
DO 30 J = LNB, MAX( INB, LNB-5 ), -1
IC = 6 - ( LNB-J )
COLLAB( IC: IC ) = LAB3( J: J )
30 CONTINUE
END IF
WRITE( NOUT, FMT = 9997 )COLLAB,
$ ( RESLTS( I, J, 1 ), J = 1, NN )
DO 40 K = 2, NLDA
WRITE( NOUT, FMT = 9996 )( RESLTS( I, J, K ), J = 1, NN )
40 CONTINUE
IF( NLDA.GT.1 )
$ WRITE( NOUT, FMT = * )
50 CONTINUE
IF( NLDA.EQ.1 )
$ WRITE( NOUT, FMT = * )
*
9999 FORMAT( 6X, A4, I6, 11I8 )
9998 FORMAT( 3X, A4 )
9997 FORMAT( 1X, A6, 1X, 12F8.1 )
9996 FORMAT( 8X, 12F8.1 )
*
RETURN
*
* End of SPRTB2
*
END
|