1*> \brief \b DERRTR
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 DERRTR( PATH, NUNIT )
12*
13*       .. Scalar Arguments ..
14*       CHARACTER*3        PATH
15*       INTEGER            NUNIT
16*       ..
17*
18*
19*> \par Purpose:
20*  =============
21*>
22*> \verbatim
23*>
24*> DERRTR tests the error exits for the DOUBLE PRECISION triangular
25*> routines.
26*> \endverbatim
27*
28*  Arguments:
29*  ==========
30*
31*> \param[in] PATH
32*> \verbatim
33*>          PATH is CHARACTER*3
34*>          The LAPACK path name for the routines to be tested.
35*> \endverbatim
36*>
37*> \param[in] NUNIT
38*> \verbatim
39*>          NUNIT is INTEGER
40*>          The unit number for output.
41*> \endverbatim
42*
43*  Authors:
44*  ========
45*
46*> \author Univ. of Tennessee
47*> \author Univ. of California Berkeley
48*> \author Univ. of Colorado Denver
49*> \author NAG Ltd.
50*
51*> \ingroup double_lin
52*
53*  =====================================================================
54      SUBROUTINE DERRTR( PATH, NUNIT )
55*
56*  -- LAPACK test routine --
57*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
58*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
59*
60*     .. Scalar Arguments ..
61      CHARACTER*3        PATH
62      INTEGER            NUNIT
63*     ..
64*
65*  =====================================================================
66*
67*     .. Parameters ..
68      INTEGER            NMAX
69      PARAMETER          ( NMAX = 2 )
70*     ..
71*     .. Local Scalars ..
72      CHARACTER*2        C2
73      INTEGER            INFO
74      DOUBLE PRECISION   RCOND, SCALE
75*     ..
76*     .. Local Arrays ..
77      INTEGER            IW( NMAX )
78      DOUBLE PRECISION   A( NMAX, NMAX ), B( NMAX ), R1( NMAX ),
79     $                   R2( NMAX ), W( NMAX ), X( NMAX )
80*     ..
81*     .. External Functions ..
82      LOGICAL            LSAMEN
83      EXTERNAL           LSAMEN
84*     ..
85*     .. External Subroutines ..
86      EXTERNAL           ALAESM, CHKXER, DLATBS, DLATPS, DLATRS, DTBCON,
87     $                   DTBRFS, DTBTRS, DTPCON, DTPRFS, DTPTRI, DTPTRS,
88     $                   DTRCON, DTRRFS, DTRTI2, DTRTRI, DTRTRS
89*     ..
90*     .. Scalars in Common ..
91      LOGICAL            LERR, OK
92      CHARACTER*32       SRNAMT
93      INTEGER            INFOT, NOUT
94*     ..
95*     .. Common blocks ..
96      COMMON             / INFOC / INFOT, NOUT, OK, LERR
97      COMMON             / SRNAMC / SRNAMT
98*     ..
99*     .. Executable Statements ..
100*
101      NOUT = NUNIT
102      WRITE( NOUT, FMT = * )
103      C2 = PATH( 2: 3 )
104      A( 1, 1 ) = 1.D0
105      A( 1, 2 ) = 2.D0
106      A( 2, 2 ) = 3.D0
107      A( 2, 1 ) = 4.D0
108      OK = .TRUE.
109*
110      IF( LSAMEN( 2, C2, 'TR' ) ) THEN
111*
112*        Test error exits for the general triangular routines.
113*
114*        DTRTRI
115*
116         SRNAMT = 'DTRTRI'
117         INFOT = 1
118         CALL DTRTRI( '/', 'N', 0, A, 1, INFO )
119         CALL CHKXER( 'DTRTRI', INFOT, NOUT, LERR, OK )
120         INFOT = 2
121         CALL DTRTRI( 'U', '/', 0, A, 1, INFO )
122         CALL CHKXER( 'DTRTRI', INFOT, NOUT, LERR, OK )
123         INFOT = 3
124         CALL DTRTRI( 'U', 'N', -1, A, 1, INFO )
125         CALL CHKXER( 'DTRTRI', INFOT, NOUT, LERR, OK )
126         INFOT = 5
127         CALL DTRTRI( 'U', 'N', 2, A, 1, INFO )
128         CALL CHKXER( 'DTRTRI', INFOT, NOUT, LERR, OK )
129*
130*        DTRTI2
131*
132         SRNAMT = 'DTRTI2'
133         INFOT = 1
134         CALL DTRTI2( '/', 'N', 0, A, 1, INFO )
135         CALL CHKXER( 'DTRTI2', INFOT, NOUT, LERR, OK )
136         INFOT = 2
137         CALL DTRTI2( 'U', '/', 0, A, 1, INFO )
138         CALL CHKXER( 'DTRTI2', INFOT, NOUT, LERR, OK )
139         INFOT = 3
140         CALL DTRTI2( 'U', 'N', -1, A, 1, INFO )
141         CALL CHKXER( 'DTRTI2', INFOT, NOUT, LERR, OK )
142         INFOT = 5
143         CALL DTRTI2( 'U', 'N', 2, A, 1, INFO )
144         CALL CHKXER( 'DTRTI2', INFOT, NOUT, LERR, OK )
145*
146*        DTRTRS
147*
148         SRNAMT = 'DTRTRS'
149         INFOT = 1
150         CALL DTRTRS( '/', 'N', 'N', 0, 0, A, 1, X, 1, INFO )
151         CALL CHKXER( 'DTRTRS', INFOT, NOUT, LERR, OK )
152         INFOT = 2
153         CALL DTRTRS( 'U', '/', 'N', 0, 0, A, 1, X, 1, INFO )
154         CALL CHKXER( 'DTRTRS', INFOT, NOUT, LERR, OK )
155         INFOT = 3
156         CALL DTRTRS( 'U', 'N', '/', 0, 0, A, 1, X, 1, INFO )
157         CALL CHKXER( 'DTRTRS', INFOT, NOUT, LERR, OK )
158         INFOT = 4
159         CALL DTRTRS( 'U', 'N', 'N', -1, 0, A, 1, X, 1, INFO )
160         CALL CHKXER( 'DTRTRS', INFOT, NOUT, LERR, OK )
161         INFOT = 5
162         CALL DTRTRS( 'U', 'N', 'N', 0, -1, A, 1, X, 1, INFO )
163         CALL CHKXER( 'DTRTRS', INFOT, NOUT, LERR, OK )
164         INFOT = 7
165         CALL DTRTRS( 'U', 'N', 'N', 2, 1, A, 1, X, 2, INFO )
166         CALL CHKXER( 'DTRTRS', INFOT, NOUT, LERR, OK )
167         INFOT = 9
168         CALL DTRTRS( 'U', 'N', 'N', 2, 1, A, 2, X, 1, INFO )
169         CALL CHKXER( 'DTRTRS', INFOT, NOUT, LERR, OK )
170*
171*        DTRRFS
172*
173         SRNAMT = 'DTRRFS'
174         INFOT = 1
175         CALL DTRRFS( '/', 'N', 'N', 0, 0, A, 1, B, 1, X, 1, R1, R2, W,
176     $                IW, INFO )
177         CALL CHKXER( 'DTRRFS', INFOT, NOUT, LERR, OK )
178         INFOT = 2
179         CALL DTRRFS( 'U', '/', 'N', 0, 0, A, 1, B, 1, X, 1, R1, R2, W,
180     $                IW, INFO )
181         CALL CHKXER( 'DTRRFS', INFOT, NOUT, LERR, OK )
182         INFOT = 3
183         CALL DTRRFS( 'U', 'N', '/', 0, 0, A, 1, B, 1, X, 1, R1, R2, W,
184     $                IW, INFO )
185         CALL CHKXER( 'DTRRFS', INFOT, NOUT, LERR, OK )
186         INFOT = 4
187         CALL DTRRFS( 'U', 'N', 'N', -1, 0, A, 1, B, 1, X, 1, R1, R2, W,
188     $                IW, INFO )
189         CALL CHKXER( 'DTRRFS', INFOT, NOUT, LERR, OK )
190         INFOT = 5
191         CALL DTRRFS( 'U', 'N', 'N', 0, -1, A, 1, B, 1, X, 1, R1, R2, W,
192     $                IW, INFO )
193         CALL CHKXER( 'DTRRFS', INFOT, NOUT, LERR, OK )
194         INFOT = 7
195         CALL DTRRFS( 'U', 'N', 'N', 2, 1, A, 1, B, 2, X, 2, R1, R2, W,
196     $                IW, INFO )
197         CALL CHKXER( 'DTRRFS', INFOT, NOUT, LERR, OK )
198         INFOT = 9
199         CALL DTRRFS( 'U', 'N', 'N', 2, 1, A, 2, B, 1, X, 2, R1, R2, W,
200     $                IW, INFO )
201         CALL CHKXER( 'DTRRFS', INFOT, NOUT, LERR, OK )
202         INFOT = 11
203         CALL DTRRFS( 'U', 'N', 'N', 2, 1, A, 2, B, 2, X, 1, R1, R2, W,
204     $                IW, INFO )
205         CALL CHKXER( 'DTRRFS', INFOT, NOUT, LERR, OK )
206*
207*        DTRCON
208*
209         SRNAMT = 'DTRCON'
210         INFOT = 1
211         CALL DTRCON( '/', 'U', 'N', 0, A, 1, RCOND, W, IW, INFO )
212         CALL CHKXER( 'DTRCON', INFOT, NOUT, LERR, OK )
213         INFOT = 2
214         CALL DTRCON( '1', '/', 'N', 0, A, 1, RCOND, W, IW, INFO )
215         CALL CHKXER( 'DTRCON', INFOT, NOUT, LERR, OK )
216         INFOT = 3
217         CALL DTRCON( '1', 'U', '/', 0, A, 1, RCOND, W, IW, INFO )
218         CALL CHKXER( 'DTRCON', INFOT, NOUT, LERR, OK )
219         INFOT = 4
220         CALL DTRCON( '1', 'U', 'N', -1, A, 1, RCOND, W, IW, INFO )
221         CALL CHKXER( 'DTRCON', INFOT, NOUT, LERR, OK )
222         INFOT = 6
223         CALL DTRCON( '1', 'U', 'N', 2, A, 1, RCOND, W, IW, INFO )
224         CALL CHKXER( 'DTRCON', INFOT, NOUT, LERR, OK )
225*
226*        DLATRS
227*
228         SRNAMT = 'DLATRS'
229         INFOT = 1
230         CALL DLATRS( '/', 'N', 'N', 'N', 0, A, 1, X, SCALE, W, INFO )
231         CALL CHKXER( 'DLATRS', INFOT, NOUT, LERR, OK )
232         INFOT = 2
233         CALL DLATRS( 'U', '/', 'N', 'N', 0, A, 1, X, SCALE, W, INFO )
234         CALL CHKXER( 'DLATRS', INFOT, NOUT, LERR, OK )
235         INFOT = 3
236         CALL DLATRS( 'U', 'N', '/', 'N', 0, A, 1, X, SCALE, W, INFO )
237         CALL CHKXER( 'DLATRS', INFOT, NOUT, LERR, OK )
238         INFOT = 4
239         CALL DLATRS( 'U', 'N', 'N', '/', 0, A, 1, X, SCALE, W, INFO )
240         CALL CHKXER( 'DLATRS', INFOT, NOUT, LERR, OK )
241         INFOT = 5
242         CALL DLATRS( 'U', 'N', 'N', 'N', -1, A, 1, X, SCALE, W, INFO )
243         CALL CHKXER( 'DLATRS', INFOT, NOUT, LERR, OK )
244         INFOT = 7
245         CALL DLATRS( 'U', 'N', 'N', 'N', 2, A, 1, X, SCALE, W, INFO )
246         CALL CHKXER( 'DLATRS', INFOT, NOUT, LERR, OK )
247*
248      ELSE IF( LSAMEN( 2, C2, 'TP' ) ) THEN
249*
250*        Test error exits for the packed triangular routines.
251*
252*        DTPTRI
253*
254         SRNAMT = 'DTPTRI'
255         INFOT = 1
256         CALL DTPTRI( '/', 'N', 0, A, INFO )
257         CALL CHKXER( 'DTPTRI', INFOT, NOUT, LERR, OK )
258         INFOT = 2
259         CALL DTPTRI( 'U', '/', 0, A, INFO )
260         CALL CHKXER( 'DTPTRI', INFOT, NOUT, LERR, OK )
261         INFOT = 3
262         CALL DTPTRI( 'U', 'N', -1, A, INFO )
263         CALL CHKXER( 'DTPTRI', INFOT, NOUT, LERR, OK )
264*
265*        DTPTRS
266*
267         SRNAMT = 'DTPTRS'
268         INFOT = 1
269         CALL DTPTRS( '/', 'N', 'N', 0, 0, A, X, 1, INFO )
270         CALL CHKXER( 'DTPTRS', INFOT, NOUT, LERR, OK )
271         INFOT = 2
272         CALL DTPTRS( 'U', '/', 'N', 0, 0, A, X, 1, INFO )
273         CALL CHKXER( 'DTPTRS', INFOT, NOUT, LERR, OK )
274         INFOT = 3
275         CALL DTPTRS( 'U', 'N', '/', 0, 0, A, X, 1, INFO )
276         CALL CHKXER( 'DTPTRS', INFOT, NOUT, LERR, OK )
277         INFOT = 4
278         CALL DTPTRS( 'U', 'N', 'N', -1, 0, A, X, 1, INFO )
279         CALL CHKXER( 'DTPTRS', INFOT, NOUT, LERR, OK )
280         INFOT = 5
281         CALL DTPTRS( 'U', 'N', 'N', 0, -1, A, X, 1, INFO )
282         CALL CHKXER( 'DTPTRS', INFOT, NOUT, LERR, OK )
283         INFOT = 8
284         CALL DTPTRS( 'U', 'N', 'N', 2, 1, A, X, 1, INFO )
285         CALL CHKXER( 'DTPTRS', INFOT, NOUT, LERR, OK )
286*
287*        DTPRFS
288*
289         SRNAMT = 'DTPRFS'
290         INFOT = 1
291         CALL DTPRFS( '/', 'N', 'N', 0, 0, A, B, 1, X, 1, R1, R2, W, IW,
292     $                INFO )
293         CALL CHKXER( 'DTPRFS', INFOT, NOUT, LERR, OK )
294         INFOT = 2
295         CALL DTPRFS( 'U', '/', 'N', 0, 0, A, B, 1, X, 1, R1, R2, W, IW,
296     $                INFO )
297         CALL CHKXER( 'DTPRFS', INFOT, NOUT, LERR, OK )
298         INFOT = 3
299         CALL DTPRFS( 'U', 'N', '/', 0, 0, A, B, 1, X, 1, R1, R2, W, IW,
300     $                INFO )
301         CALL CHKXER( 'DTPRFS', INFOT, NOUT, LERR, OK )
302         INFOT = 4
303         CALL DTPRFS( 'U', 'N', 'N', -1, 0, A, B, 1, X, 1, R1, R2, W,
304     $                IW, INFO )
305         CALL CHKXER( 'DTPRFS', INFOT, NOUT, LERR, OK )
306         INFOT = 5
307         CALL DTPRFS( 'U', 'N', 'N', 0, -1, A, B, 1, X, 1, R1, R2, W,
308     $                IW, INFO )
309         CALL CHKXER( 'DTPRFS', INFOT, NOUT, LERR, OK )
310         INFOT = 8
311         CALL DTPRFS( 'U', 'N', 'N', 2, 1, A, B, 1, X, 2, R1, R2, W, IW,
312     $                INFO )
313         CALL CHKXER( 'DTPRFS', INFOT, NOUT, LERR, OK )
314         INFOT = 10
315         CALL DTPRFS( 'U', 'N', 'N', 2, 1, A, B, 2, X, 1, R1, R2, W, IW,
316     $                INFO )
317         CALL CHKXER( 'DTPRFS', INFOT, NOUT, LERR, OK )
318*
319*        DTPCON
320*
321         SRNAMT = 'DTPCON'
322         INFOT = 1
323         CALL DTPCON( '/', 'U', 'N', 0, A, RCOND, W, IW, INFO )
324         CALL CHKXER( 'DTPCON', INFOT, NOUT, LERR, OK )
325         INFOT = 2
326         CALL DTPCON( '1', '/', 'N', 0, A, RCOND, W, IW, INFO )
327         CALL CHKXER( 'DTPCON', INFOT, NOUT, LERR, OK )
328         INFOT = 3
329         CALL DTPCON( '1', 'U', '/', 0, A, RCOND, W, IW, INFO )
330         CALL CHKXER( 'DTPCON', INFOT, NOUT, LERR, OK )
331         INFOT = 4
332         CALL DTPCON( '1', 'U', 'N', -1, A, RCOND, W, IW, INFO )
333         CALL CHKXER( 'DTPCON', INFOT, NOUT, LERR, OK )
334*
335*        DLATPS
336*
337         SRNAMT = 'DLATPS'
338         INFOT = 1
339         CALL DLATPS( '/', 'N', 'N', 'N', 0, A, X, SCALE, W, INFO )
340         CALL CHKXER( 'DLATPS', INFOT, NOUT, LERR, OK )
341         INFOT = 2
342         CALL DLATPS( 'U', '/', 'N', 'N', 0, A, X, SCALE, W, INFO )
343         CALL CHKXER( 'DLATPS', INFOT, NOUT, LERR, OK )
344         INFOT = 3
345         CALL DLATPS( 'U', 'N', '/', 'N', 0, A, X, SCALE, W, INFO )
346         CALL CHKXER( 'DLATPS', INFOT, NOUT, LERR, OK )
347         INFOT = 4
348         CALL DLATPS( 'U', 'N', 'N', '/', 0, A, X, SCALE, W, INFO )
349         CALL CHKXER( 'DLATPS', INFOT, NOUT, LERR, OK )
350         INFOT = 5
351         CALL DLATPS( 'U', 'N', 'N', 'N', -1, A, X, SCALE, W, INFO )
352         CALL CHKXER( 'DLATPS', INFOT, NOUT, LERR, OK )
353*
354      ELSE IF( LSAMEN( 2, C2, 'TB' ) ) THEN
355*
356*        Test error exits for the banded triangular routines.
357*
358*        DTBTRS
359*
360         SRNAMT = 'DTBTRS'
361         INFOT = 1
362         CALL DTBTRS( '/', 'N', 'N', 0, 0, 0, A, 1, X, 1, INFO )
363         CALL CHKXER( 'DTBTRS', INFOT, NOUT, LERR, OK )
364         INFOT = 2
365         CALL DTBTRS( 'U', '/', 'N', 0, 0, 0, A, 1, X, 1, INFO )
366         CALL CHKXER( 'DTBTRS', INFOT, NOUT, LERR, OK )
367         INFOT = 3
368         CALL DTBTRS( 'U', 'N', '/', 0, 0, 0, A, 1, X, 1, INFO )
369         CALL CHKXER( 'DTBTRS', INFOT, NOUT, LERR, OK )
370         INFOT = 4
371         CALL DTBTRS( 'U', 'N', 'N', -1, 0, 0, A, 1, X, 1, INFO )
372         CALL CHKXER( 'DTBTRS', INFOT, NOUT, LERR, OK )
373         INFOT = 5
374         CALL DTBTRS( 'U', 'N', 'N', 0, -1, 0, A, 1, X, 1, INFO )
375         CALL CHKXER( 'DTBTRS', INFOT, NOUT, LERR, OK )
376         INFOT = 6
377         CALL DTBTRS( 'U', 'N', 'N', 0, 0, -1, A, 1, X, 1, INFO )
378         CALL CHKXER( 'DTBTRS', INFOT, NOUT, LERR, OK )
379         INFOT = 8
380         CALL DTBTRS( 'U', 'N', 'N', 2, 1, 1, A, 1, X, 2, INFO )
381         CALL CHKXER( 'DTBTRS', INFOT, NOUT, LERR, OK )
382         INFOT = 10
383         CALL DTBTRS( 'U', 'N', 'N', 2, 0, 1, A, 1, X, 1, INFO )
384         CALL CHKXER( 'DTBTRS', INFOT, NOUT, LERR, OK )
385*
386*        DTBRFS
387*
388         SRNAMT = 'DTBRFS'
389         INFOT = 1
390         CALL DTBRFS( '/', 'N', 'N', 0, 0, 0, A, 1, B, 1, X, 1, R1, R2,
391     $                W, IW, INFO )
392         CALL CHKXER( 'DTBRFS', INFOT, NOUT, LERR, OK )
393         INFOT = 2
394         CALL DTBRFS( 'U', '/', 'N', 0, 0, 0, A, 1, B, 1, X, 1, R1, R2,
395     $                W, IW, INFO )
396         CALL CHKXER( 'DTBRFS', INFOT, NOUT, LERR, OK )
397         INFOT = 3
398         CALL DTBRFS( 'U', 'N', '/', 0, 0, 0, A, 1, B, 1, X, 1, R1, R2,
399     $                W, IW, INFO )
400         CALL CHKXER( 'DTBRFS', INFOT, NOUT, LERR, OK )
401         INFOT = 4
402         CALL DTBRFS( 'U', 'N', 'N', -1, 0, 0, A, 1, B, 1, X, 1, R1, R2,
403     $                W, IW, INFO )
404         CALL CHKXER( 'DTBRFS', INFOT, NOUT, LERR, OK )
405         INFOT = 5
406         CALL DTBRFS( 'U', 'N', 'N', 0, -1, 0, A, 1, B, 1, X, 1, R1, R2,
407     $                W, IW, INFO )
408         CALL CHKXER( 'DTBRFS', INFOT, NOUT, LERR, OK )
409         INFOT = 6
410         CALL DTBRFS( 'U', 'N', 'N', 0, 0, -1, A, 1, B, 1, X, 1, R1, R2,
411     $                W, IW, INFO )
412         CALL CHKXER( 'DTBRFS', INFOT, NOUT, LERR, OK )
413         INFOT = 8
414         CALL DTBRFS( 'U', 'N', 'N', 2, 1, 1, A, 1, B, 2, X, 2, R1, R2,
415     $                W, IW, INFO )
416         CALL CHKXER( 'DTBRFS', INFOT, NOUT, LERR, OK )
417         INFOT = 10
418         CALL DTBRFS( 'U', 'N', 'N', 2, 1, 1, A, 2, B, 1, X, 2, R1, R2,
419     $                W, IW, INFO )
420         CALL CHKXER( 'DTBRFS', INFOT, NOUT, LERR, OK )
421         INFOT = 12
422         CALL DTBRFS( 'U', 'N', 'N', 2, 1, 1, A, 2, B, 2, X, 1, R1, R2,
423     $                W, IW, INFO )
424         CALL CHKXER( 'DTBRFS', INFOT, NOUT, LERR, OK )
425*
426*        DTBCON
427*
428         SRNAMT = 'DTBCON'
429         INFOT = 1
430         CALL DTBCON( '/', 'U', 'N', 0, 0, A, 1, RCOND, W, IW, INFO )
431         CALL CHKXER( 'DTBCON', INFOT, NOUT, LERR, OK )
432         INFOT = 2
433         CALL DTBCON( '1', '/', 'N', 0, 0, A, 1, RCOND, W, IW, INFO )
434         CALL CHKXER( 'DTBCON', INFOT, NOUT, LERR, OK )
435         INFOT = 3
436         CALL DTBCON( '1', 'U', '/', 0, 0, A, 1, RCOND, W, IW, INFO )
437         CALL CHKXER( 'DTBCON', INFOT, NOUT, LERR, OK )
438         INFOT = 4
439         CALL DTBCON( '1', 'U', 'N', -1, 0, A, 1, RCOND, W, IW, INFO )
440         CALL CHKXER( 'DTBCON', INFOT, NOUT, LERR, OK )
441         INFOT = 5
442         CALL DTBCON( '1', 'U', 'N', 0, -1, A, 1, RCOND, W, IW, INFO )
443         CALL CHKXER( 'DTBCON', INFOT, NOUT, LERR, OK )
444         INFOT = 7
445         CALL DTBCON( '1', 'U', 'N', 2, 1, A, 1, RCOND, W, IW, INFO )
446         CALL CHKXER( 'DTBCON', INFOT, NOUT, LERR, OK )
447*
448*        DLATBS
449*
450         SRNAMT = 'DLATBS'
451         INFOT = 1
452         CALL DLATBS( '/', 'N', 'N', 'N', 0, 0, A, 1, X, SCALE, W,
453     $                INFO )
454         CALL CHKXER( 'DLATBS', INFOT, NOUT, LERR, OK )
455         INFOT = 2
456         CALL DLATBS( 'U', '/', 'N', 'N', 0, 0, A, 1, X, SCALE, W,
457     $                INFO )
458         CALL CHKXER( 'DLATBS', INFOT, NOUT, LERR, OK )
459         INFOT = 3
460         CALL DLATBS( 'U', 'N', '/', 'N', 0, 0, A, 1, X, SCALE, W,
461     $                INFO )
462         CALL CHKXER( 'DLATBS', INFOT, NOUT, LERR, OK )
463         INFOT = 4
464         CALL DLATBS( 'U', 'N', 'N', '/', 0, 0, A, 1, X, SCALE, W,
465     $                INFO )
466         CALL CHKXER( 'DLATBS', INFOT, NOUT, LERR, OK )
467         INFOT = 5
468         CALL DLATBS( 'U', 'N', 'N', 'N', -1, 0, A, 1, X, SCALE, W,
469     $                INFO )
470         CALL CHKXER( 'DLATBS', INFOT, NOUT, LERR, OK )
471         INFOT = 6
472         CALL DLATBS( 'U', 'N', 'N', 'N', 1, -1, A, 1, X, SCALE, W,
473     $                INFO )
474         CALL CHKXER( 'DLATBS', INFOT, NOUT, LERR, OK )
475         INFOT = 8
476         CALL DLATBS( 'U', 'N', 'N', 'N', 2, 1, A, 1, X, SCALE, W,
477     $                INFO )
478         CALL CHKXER( 'DLATBS', INFOT, NOUT, LERR, OK )
479      END IF
480*
481*     Print a summary line.
482*
483      CALL ALAESM( PATH, OK, NOUT )
484*
485      RETURN
486*
487*     End of DERRTR
488*
489      END
490