LAPACK 3.12.0 LAPACK: Linear Algebra PACKage
Searching...
No Matches
schkqrtp.f
Go to the documentation of this file.
1*> \brief \b SCHKQRTP
2*
3* =========== DOCUMENTATION ===========
4*
5* Online html documentation available at
6* http://www.netlib.org/lapack/explore-html/
7*
8* Definition:
9* ===========
10*
11* SUBROUTINE SCHKQRTP( THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB,
12* NBVAL, NOUT )
13*
14* .. Scalar Arguments ..
15* LOGICAL TSTERR
16* INTEGER NM, NN, NNB, NOUT
17* REAL THRESH
18* ..
19* .. Array Arguments ..
20* INTEGER MVAL( * ), NBVAL( * ), NVAL( * )
21*
22*> \par Purpose:
23* =============
24*>
25*> \verbatim
26*>
27*> SCHKQRTP tests STPQRT and STPMQRT.
28*> \endverbatim
29*
30* Arguments:
31* ==========
32*
33*> \param[in] THRESH
34*> \verbatim
35*> THRESH is REAL
36*> The threshold value for the test ratios. A result is
37*> included in the output file if RESULT >= THRESH. To have
38*> every test ratio printed, use THRESH = 0.
39*> \endverbatim
40*>
41*> \param[in] TSTERR
42*> \verbatim
43*> TSTERR is LOGICAL
44*> Flag that indicates whether error exits are to be tested.
45*> \endverbatim
46*>
47*> \param[in] NM
48*> \verbatim
49*> NM is INTEGER
50*> The number of values of M contained in the vector MVAL.
51*> \endverbatim
52*>
53*> \param[in] MVAL
54*> \verbatim
55*> MVAL is INTEGER array, dimension (NM)
56*> The values of the matrix row dimension M.
57*> \endverbatim
58*>
59*> \param[in] NN
60*> \verbatim
61*> NN is INTEGER
62*> The number of values of N contained in the vector NVAL.
63*> \endverbatim
64*>
65*> \param[in] NVAL
66*> \verbatim
67*> NVAL is INTEGER array, dimension (NN)
68*> The values of the matrix column dimension N.
69*> \endverbatim
70*>
71*> \param[in] NNB
72*> \verbatim
73*> NNB is INTEGER
74*> The number of values of NB contained in the vector NBVAL.
75*> \endverbatim
76*>
77*> \param[in] NBVAL
78*> \verbatim
79*> NBVAL is INTEGER array, dimension (NNB)
80*> The values of the blocksize NB.
81*> \endverbatim
82*>
83*> \param[in] NOUT
84*> \verbatim
85*> NOUT is INTEGER
86*> The unit number for output.
87*> \endverbatim
88*
89* Authors:
90* ========
91*
92*> \author Univ. of Tennessee
93*> \author Univ. of California Berkeley
94*> \author Univ. of Colorado Denver
95*> \author NAG Ltd.
96*
97*> \ingroup single_lin
98*
99* =====================================================================
100 SUBROUTINE schkqrtp( THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB,
101 \$ NBVAL, NOUT )
102 IMPLICIT NONE
103*
104* -- LAPACK test routine --
105* -- LAPACK is a software package provided by Univ. of Tennessee, --
106* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
107*
108* .. Scalar Arguments ..
109 LOGICAL TSTERR
110 INTEGER NM, NN, NNB, NOUT
111 REAL THRESH
112* ..
113* .. Array Arguments ..
114 INTEGER MVAL( * ), NBVAL( * ), NVAL( * )
115* ..
116*
117* =====================================================================
118*
119* .. Parameters ..
120 INTEGER NTESTS
121 parameter( ntests = 6 )
122* ..
123* .. Local Scalars ..
124 CHARACTER*3 PATH
125 INTEGER I, J, K, T, L, M, N, NB, NFAIL, NERRS, NRUN,
126 \$ minmn
127* ..
128* .. Local Arrays ..
129 REAL RESULT( NTESTS )
130* ..
131* .. External Subroutines ..
132 EXTERNAL alaerh, alahd, alasum, serrqrtp, sqrt05
133* ..
134* .. Scalars in Common ..
135 LOGICAL LERR, OK
136 CHARACTER*32 SRNAMT
137 INTEGER INFOT, NUNIT
138* ..
139* .. Common blocks ..
140 COMMON / infoc / infot, nunit, ok, lerr
141 COMMON / srnamc / srnamt
142* ..
143* .. Executable Statements ..
144*
145* Initialize constants
146*
147 path( 1: 1 ) = 'S'
148 path( 2: 3 ) = 'QX'
149 nrun = 0
150 nfail = 0
151 nerrs = 0
152*
153* Test the error exits
154*
155 IF( tsterr ) CALL serrqrtp( path, nout )
156 infot = 0
157*
158* Do for each value of M
159*
160 DO i = 1, nm
161 m = mval( i )
162*
163* Do for each value of N
164*
165 DO j = 1, nn
166 n = nval( j )
167*
168* Do for each value of L
169*
170 minmn = min( m, n )
171 DO l = 0, minmn, max( minmn, 1 )
172*
173* Do for each possible value of NB
174*
175 DO k = 1, nnb
176 nb = nbval( k )
177*
178* Test STPQRT and STPMQRT
179*
180 IF( (nb.LE.n).AND.(nb.GT.0) ) THEN
181 CALL sqrt05( m, n, l, nb, result )
182*
183* Print information about the tests that did not
184* pass the threshold.
185*
186 DO t = 1, ntests
187 IF( result( t ).GE.thresh ) THEN
188 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
189 \$ CALL alahd( nout, path )
190 WRITE( nout, fmt = 9999 )m, n, nb, l,
191 \$ t, result( t )
192 nfail = nfail + 1
193 END IF
194 END DO
195 nrun = nrun + ntests
196 END IF
197 END DO
198 END DO
199 END DO
200 END DO
201*
202* Print a summary of the results.
203*
204 CALL alasum( path, nout, nfail, nrun, nerrs )
205*
206 9999 FORMAT( ' M=', i5, ', N=', i5, ', NB=', i4, ', L=', i4,
207 \$ ' test(', i2, ')=', g12.5 )
208 RETURN
209*
210* End of SCHKQRTP
211*
212 END
subroutine alasum(type, nout, nfail, nrun, nerrs)
ALASUM
Definition alasum.f:73
subroutine alaerh(path, subnam, info, infoe, opts, m, n, kl, ku, n5, imat, nfail, nerrs, nout)
ALAERH
Definition alaerh.f:147
subroutine alahd(iounit, path)
ALAHD
Definition alahd.f:107
subroutine schkqrtp(thresh, tsterr, nm, mval, nn, nval, nnb, nbval, nout)
SCHKQRTP
Definition schkqrtp.f:102
subroutine serrqrtp(path, nunit)
SERRQRTP
Definition serrqrtp.f:55
subroutine sqrt05(m, n, l, nb, result)
SQRT05
Definition sqrt05.f:80