102 IMPLICIT NONE
103
104
105
106
107
108
109 LOGICAL TSTERR
110 INTEGER NM, NN, NNB, NOUT
111 DOUBLE PRECISION THRESH
112
113
114 INTEGER MVAL( * ), NBVAL( * ), NVAL( * )
115
116
117
118
119
120 INTEGER NTESTS
121 parameter( ntests = 6 )
122
123
124 CHARACTER*3 PATH
125 INTEGER I, J, K, T, M, N, NB, NFAIL, NERRS, NRUN, INB,
126 $ MINMN, MB, IMB
127
128
129 DOUBLE PRECISION RESULT( NTESTS )
130
131
134
135
136 INTRINSIC max, min
137
138
139 LOGICAL LERR, OK
140 CHARACTER*32 SRNAMT
141 INTEGER INFOT, NUNIT
142
143
144 COMMON / infoc / infot, nunit, ok, lerr
145 COMMON / srnamc / srnamt
146
147
148
149
150
151 path( 1: 1 ) = 'D'
152 path( 2: 3 ) = 'TS'
153 nrun = 0
154 nfail = 0
155 nerrs = 0
156
157
158
161 IF( tsterr )
CALL derrtsqr( path, nout )
162 infot = 0
163
164
165
166 DO i = 1, nm
167 m = mval( i )
168
169
170
171 DO j = 1, nn
172 n = nval( j )
173 IF (min(m,n).NE.0) THEN
174 DO inb = 1, nnb
175 mb = nbval( inb )
177 DO imb = 1, nnb
178 nb = nbval( imb )
180
181
182
183 CALL dtsqr01(
'TS', m, n, mb, nb, result )
184
185
186
187
188 DO t = 1, ntests
189 IF( result( t ).GE.thresh ) THEN
190 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
191 $
CALL alahd( nout, path )
192 WRITE( nout, fmt = 9999 )m, n, mb, nb,
193 $ t, result( t )
194 nfail = nfail + 1
195 END IF
196 END DO
197 nrun = nrun + ntests
198 END DO
199 END DO
200 END IF
201 END DO
202 END DO
203
204
205
206 DO i = 1, nm
207 m = mval( i )
208
209
210
211 DO j = 1, nn
212 n = nval( j )
213 IF (min(m,n).NE.0) THEN
214 DO inb = 1, nnb
215 mb = nbval( inb )
217 DO imb = 1, nnb
218 nb = nbval( imb )
220
221
222
223 CALL dtsqr01(
'SW', m, n, mb, nb, result )
224
225
226
227
228 DO t = 1, ntests
229 IF( result( t ).GE.thresh ) THEN
230 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
231 $
CALL alahd( nout, path )
232 WRITE( nout, fmt = 9998 )m, n, mb, nb,
233 $ t, result( t )
234 nfail = nfail + 1
235 END IF
236 END DO
237 nrun = nrun + ntests
238 END DO
239 END DO
240 END IF
241 END DO
242 END DO
243
244
245
246 CALL alasum( path, nout, nfail, nrun, nerrs )
247
248 9999 FORMAT( 'TS: M=', i5, ', N=', i5, ', MB=', i5,
249 $ ', NB=', i5,' test(', i2, ')=', g12.5 )
250 9998 FORMAT( 'SW: M=', i5, ', N=', i5, ', MB=', i5,
251 $ ', NB=', i5,' test(', i2, ')=', g12.5 )
252 RETURN
253
254
255
subroutine alasum(type, nout, nfail, nrun, nerrs)
ALASUM
subroutine xlaenv(ispec, nvalue)
XLAENV
subroutine alaerh(path, subnam, info, infoe, opts, m, n, kl, ku, n5, imat, nfail, nerrs, nout)
ALAERH
subroutine alahd(iounit, path)
ALAHD
subroutine derrtsqr(path, nunit)
DERRTSQR
subroutine dtsqr01(tssw, m, n, mb, nb, result)
DTSQR01