STYLE: Remove trailing whitespace in Fortran files
[platform/upstream/lapack.git] / TESTING / LIN / zerrpox.f
1 *> \brief \b ZERRPOX
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 ZERRPO( 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 *> ZERRPO tests the error exits for the COMPLEX*16 routines
25 *> for Hermitian positive definite matrices.
26 *>
27 *> Note that this file is used only when the XBLAS are available,
28 *> otherwise zerrpo.f defines this subroutine.
29 *> \endverbatim
30 *
31 *  Arguments:
32 *  ==========
33 *
34 *> \param[in] PATH
35 *> \verbatim
36 *>          PATH is CHARACTER*3
37 *>          The LAPACK path name for the routines to be tested.
38 *> \endverbatim
39 *>
40 *> \param[in] NUNIT
41 *> \verbatim
42 *>          NUNIT is INTEGER
43 *>          The unit number for output.
44 *> \endverbatim
45 *
46 *  Authors:
47 *  ========
48 *
49 *> \author Univ. of Tennessee
50 *> \author Univ. of California Berkeley
51 *> \author Univ. of Colorado Denver
52 *> \author NAG Ltd.
53 *
54 *> \date November 2015
55 *
56 *> \ingroup complex16_lin
57 *
58 *  =====================================================================
59       SUBROUTINE ZERRPO( PATH, NUNIT )
60 *
61 *  -- LAPACK test routine (version 3.6.0) --
62 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
63 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
64 *     November 2015
65 *
66 *     .. Scalar Arguments ..
67       CHARACTER*3        PATH
68       INTEGER            NUNIT
69 *     ..
70 *
71 *  =====================================================================
72 *
73 *     .. Parameters ..
74       INTEGER            NMAX
75       PARAMETER          ( NMAX = 4 )
76 *     ..
77 *     .. Local Scalars ..
78       CHARACTER          EQ
79       CHARACTER*2        C2
80       INTEGER            I, INFO, J, N_ERR_BNDS, NPARAMS
81       DOUBLE PRECISION   ANRM, RCOND, BERR
82 *     ..
83 *     .. Local Arrays ..
84       DOUBLE PRECISION   S( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
85      $                   ERR_BNDS_N( NMAX, 3 ), ERR_BNDS_C( NMAX, 3 ),
86      $                   PARAMS( 1 )
87       COMPLEX*16         A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
88      $                   W( 2*NMAX ), X( NMAX )
89 *     ..
90 *     .. External Functions ..
91       LOGICAL            LSAMEN
92       EXTERNAL           LSAMEN
93 *     ..
94 *     .. External Subroutines ..
95       EXTERNAL           ALAESM, CHKXER, ZPBCON, ZPBEQU, ZPBRFS, ZPBTF2,
96      $                   ZPBTRF, ZPBTRS, ZPOCON, ZPOEQU, ZPORFS, ZPOTF2,
97      $                   ZPOTRF, ZPOTRI, ZPOTRS, ZPPCON, ZPPEQU, ZPPRFS,
98      $                   ZPPTRF, ZPPTRI, ZPPTRS, ZPOEQUB, ZPORFSX
99 *     ..
100 *     .. Scalars in Common ..
101       LOGICAL            LERR, OK
102       CHARACTER*32       SRNAMT
103       INTEGER            INFOT, NOUT
104 *     ..
105 *     .. Common blocks ..
106       COMMON             / INFOC / INFOT, NOUT, OK, LERR
107       COMMON             / SRNAMC / SRNAMT
108 *     ..
109 *     .. Intrinsic Functions ..
110       INTRINSIC          DBLE, DCMPLX
111 *     ..
112 *     .. Executable Statements ..
113 *
114       NOUT = NUNIT
115       WRITE( NOUT, FMT = * )
116       C2 = PATH( 2: 3 )
117 *
118 *     Set the variables to innocuous values.
119 *
120       DO 20 J = 1, NMAX
121          DO 10 I = 1, NMAX
122             A( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
123      $                  -1.D0 / DBLE( I+J ) )
124             AF( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
125      $                   -1.D0 / DBLE( I+J ) )
126    10    CONTINUE
127          B( J ) = 0.D0
128          R1( J ) = 0.D0
129          R2( J ) = 0.D0
130          W( J ) = 0.D0
131          X( J ) = 0.D0
132          S( J ) = 0.D0
133    20 CONTINUE
134       ANRM = 1.D0
135       OK = .TRUE.
136 *
137 *     Test error exits of the routines that use the Cholesky
138 *     decomposition of a Hermitian positive definite matrix.
139 *
140       IF( LSAMEN( 2, C2, 'PO' ) ) THEN
141 *
142 *        ZPOTRF
143 *
144          SRNAMT = 'ZPOTRF'
145          INFOT = 1
146          CALL ZPOTRF( '/', 0, A, 1, INFO )
147          CALL CHKXER( 'ZPOTRF', INFOT, NOUT, LERR, OK )
148          INFOT = 2
149          CALL ZPOTRF( 'U', -1, A, 1, INFO )
150          CALL CHKXER( 'ZPOTRF', INFOT, NOUT, LERR, OK )
151          INFOT = 4
152          CALL ZPOTRF( 'U', 2, A, 1, INFO )
153          CALL CHKXER( 'ZPOTRF', INFOT, NOUT, LERR, OK )
154 *
155 *        ZPOTF2
156 *
157          SRNAMT = 'ZPOTF2'
158          INFOT = 1
159          CALL ZPOTF2( '/', 0, A, 1, INFO )
160          CALL CHKXER( 'ZPOTF2', INFOT, NOUT, LERR, OK )
161          INFOT = 2
162          CALL ZPOTF2( 'U', -1, A, 1, INFO )
163          CALL CHKXER( 'ZPOTF2', INFOT, NOUT, LERR, OK )
164          INFOT = 4
165          CALL ZPOTF2( 'U', 2, A, 1, INFO )
166          CALL CHKXER( 'ZPOTF2', INFOT, NOUT, LERR, OK )
167 *
168 *        ZPOTRI
169 *
170          SRNAMT = 'ZPOTRI'
171          INFOT = 1
172          CALL ZPOTRI( '/', 0, A, 1, INFO )
173          CALL CHKXER( 'ZPOTRI', INFOT, NOUT, LERR, OK )
174          INFOT = 2
175          CALL ZPOTRI( 'U', -1, A, 1, INFO )
176          CALL CHKXER( 'ZPOTRI', INFOT, NOUT, LERR, OK )
177          INFOT = 4
178          CALL ZPOTRI( 'U', 2, A, 1, INFO )
179          CALL CHKXER( 'ZPOTRI', INFOT, NOUT, LERR, OK )
180 *
181 *        ZPOTRS
182 *
183          SRNAMT = 'ZPOTRS'
184          INFOT = 1
185          CALL ZPOTRS( '/', 0, 0, A, 1, B, 1, INFO )
186          CALL CHKXER( 'ZPOTRS', INFOT, NOUT, LERR, OK )
187          INFOT = 2
188          CALL ZPOTRS( 'U', -1, 0, A, 1, B, 1, INFO )
189          CALL CHKXER( 'ZPOTRS', INFOT, NOUT, LERR, OK )
190          INFOT = 3
191          CALL ZPOTRS( 'U', 0, -1, A, 1, B, 1, INFO )
192          CALL CHKXER( 'ZPOTRS', INFOT, NOUT, LERR, OK )
193          INFOT = 5
194          CALL ZPOTRS( 'U', 2, 1, A, 1, B, 2, INFO )
195          CALL CHKXER( 'ZPOTRS', INFOT, NOUT, LERR, OK )
196          INFOT = 7
197          CALL ZPOTRS( 'U', 2, 1, A, 2, B, 1, INFO )
198          CALL CHKXER( 'ZPOTRS', INFOT, NOUT, LERR, OK )
199 *
200 *        ZPORFS
201 *
202          SRNAMT = 'ZPORFS'
203          INFOT = 1
204          CALL ZPORFS( '/', 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R,
205      $                INFO )
206          CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
207          INFOT = 2
208          CALL ZPORFS( 'U', -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R,
209      $                INFO )
210          CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
211          INFOT = 3
212          CALL ZPORFS( 'U', 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R,
213      $                INFO )
214          CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
215          INFOT = 5
216          CALL ZPORFS( 'U', 2, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W, R,
217      $                INFO )
218          CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
219          INFOT = 7
220          CALL ZPORFS( 'U', 2, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W, R,
221      $                INFO )
222          CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
223          INFOT = 9
224          CALL ZPORFS( 'U', 2, 1, A, 2, AF, 2, B, 1, X, 2, R1, R2, W, R,
225      $                INFO )
226          CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
227          INFOT = 11
228          CALL ZPORFS( 'U', 2, 1, A, 2, AF, 2, B, 2, X, 1, R1, R2, W, R,
229      $                INFO )
230          CALL CHKXER( 'ZPORFS', INFOT, NOUT, LERR, OK )
231 *
232 *        ZPORFSX
233 *
234          N_ERR_BNDS = 3
235          NPARAMS = 0
236          SRNAMT = 'ZPORFSX'
237          INFOT = 1
238          CALL ZPORFSX( '/', EQ, 0, 0, A, 1, AF, 1, S, B, 1, X, 1,
239      $        RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
240      $        PARAMS, W, R, INFO )
241          CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
242          INFOT = 2
243          CALL ZPORFSX( 'U', "/", -1, 0, A, 1, AF, 1, S, B, 1, X, 1,
244      $        RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
245      $        PARAMS, W, R, INFO )
246          CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
247          EQ = 'N'
248          INFOT = 3
249          CALL ZPORFSX( 'U', EQ, -1, 0, A, 1, AF, 1, S, B, 1, X, 1,
250      $        RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
251      $        PARAMS, W, R, INFO )
252          CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
253          INFOT = 4
254          CALL ZPORFSX( 'U', EQ, 0, -1, A, 1, AF, 1, S, B, 1, X, 1,
255      $        RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
256      $        PARAMS, W, R, INFO )
257          CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
258          INFOT = 6
259          CALL ZPORFSX( 'U', EQ, 2, 1, A, 1, AF, 2, S, B, 2, X, 2,
260      $        RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
261      $        PARAMS, W, R, INFO )
262          CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
263          INFOT = 8
264          CALL ZPORFSX( 'U', EQ, 2, 1, A, 2, AF, 1, S, B, 2, X, 2,
265      $        RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
266      $        PARAMS, W, R, INFO )
267          CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
268          INFOT = 11
269          CALL ZPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 1, X, 2,
270      $        RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
271      $        PARAMS, W, R, INFO )
272          CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
273          INFOT = 13
274          CALL ZPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 2, X, 1,
275      $        RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
276      $        PARAMS, W, R, INFO )
277          CALL CHKXER( 'ZPORFSX', INFOT, NOUT, LERR, OK )
278 *
279 *        ZPOCON
280 *
281          SRNAMT = 'ZPOCON'
282          INFOT = 1
283          CALL ZPOCON( '/', 0, A, 1, ANRM, RCOND, W, R, INFO )
284          CALL CHKXER( 'ZPOCON', INFOT, NOUT, LERR, OK )
285          INFOT = 2
286          CALL ZPOCON( 'U', -1, A, 1, ANRM, RCOND, W, R, INFO )
287          CALL CHKXER( 'ZPOCON', INFOT, NOUT, LERR, OK )
288          INFOT = 4
289          CALL ZPOCON( 'U', 2, A, 1, ANRM, RCOND, W, R, INFO )
290          CALL CHKXER( 'ZPOCON', INFOT, NOUT, LERR, OK )
291          INFOT = 5
292          CALL ZPOCON( 'U', 1, A, 1, -ANRM, RCOND, W, R, INFO )
293          CALL CHKXER( 'ZPOCON', INFOT, NOUT, LERR, OK )
294 *
295 *        ZPOEQU
296 *
297          SRNAMT = 'ZPOEQU'
298          INFOT = 1
299          CALL ZPOEQU( -1, A, 1, R1, RCOND, ANRM, INFO )
300          CALL CHKXER( 'ZPOEQU', INFOT, NOUT, LERR, OK )
301          INFOT = 3
302          CALL ZPOEQU( 2, A, 1, R1, RCOND, ANRM, INFO )
303          CALL CHKXER( 'ZPOEQU', INFOT, NOUT, LERR, OK )
304 *
305 *        ZPOEQUB
306 *
307          SRNAMT = 'ZPOEQUB'
308          INFOT = 1
309          CALL ZPOEQUB( -1, A, 1, R1, RCOND, ANRM, INFO )
310          CALL CHKXER( 'ZPOEQUB', INFOT, NOUT, LERR, OK )
311          INFOT = 3
312          CALL ZPOEQUB( 2, A, 1, R1, RCOND, ANRM, INFO )
313          CALL CHKXER( 'ZPOEQUB', INFOT, NOUT, LERR, OK )
314 *
315 *     Test error exits of the routines that use the Cholesky
316 *     decomposition of a Hermitian positive definite packed matrix.
317 *
318       ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
319 *
320 *        ZPPTRF
321 *
322          SRNAMT = 'ZPPTRF'
323          INFOT = 1
324          CALL ZPPTRF( '/', 0, A, INFO )
325          CALL CHKXER( 'ZPPTRF', INFOT, NOUT, LERR, OK )
326          INFOT = 2
327          CALL ZPPTRF( 'U', -1, A, INFO )
328          CALL CHKXER( 'ZPPTRF', INFOT, NOUT, LERR, OK )
329 *
330 *        ZPPTRI
331 *
332          SRNAMT = 'ZPPTRI'
333          INFOT = 1
334          CALL ZPPTRI( '/', 0, A, INFO )
335          CALL CHKXER( 'ZPPTRI', INFOT, NOUT, LERR, OK )
336          INFOT = 2
337          CALL ZPPTRI( 'U', -1, A, INFO )
338          CALL CHKXER( 'ZPPTRI', INFOT, NOUT, LERR, OK )
339 *
340 *        ZPPTRS
341 *
342          SRNAMT = 'ZPPTRS'
343          INFOT = 1
344          CALL ZPPTRS( '/', 0, 0, A, B, 1, INFO )
345          CALL CHKXER( 'ZPPTRS', INFOT, NOUT, LERR, OK )
346          INFOT = 2
347          CALL ZPPTRS( 'U', -1, 0, A, B, 1, INFO )
348          CALL CHKXER( 'ZPPTRS', INFOT, NOUT, LERR, OK )
349          INFOT = 3
350          CALL ZPPTRS( 'U', 0, -1, A, B, 1, INFO )
351          CALL CHKXER( 'ZPPTRS', INFOT, NOUT, LERR, OK )
352          INFOT = 6
353          CALL ZPPTRS( 'U', 2, 1, A, B, 1, INFO )
354          CALL CHKXER( 'ZPPTRS', INFOT, NOUT, LERR, OK )
355 *
356 *        ZPPRFS
357 *
358          SRNAMT = 'ZPPRFS'
359          INFOT = 1
360          CALL ZPPRFS( '/', 0, 0, A, AF, B, 1, X, 1, R1, R2, W, R, INFO )
361          CALL CHKXER( 'ZPPRFS', INFOT, NOUT, LERR, OK )
362          INFOT = 2
363          CALL ZPPRFS( 'U', -1, 0, A, AF, B, 1, X, 1, R1, R2, W, R,
364      $                INFO )
365          CALL CHKXER( 'ZPPRFS', INFOT, NOUT, LERR, OK )
366          INFOT = 3
367          CALL ZPPRFS( 'U', 0, -1, A, AF, B, 1, X, 1, R1, R2, W, R,
368      $                INFO )
369          CALL CHKXER( 'ZPPRFS', INFOT, NOUT, LERR, OK )
370          INFOT = 7
371          CALL ZPPRFS( 'U', 2, 1, A, AF, B, 1, X, 2, R1, R2, W, R, INFO )
372          CALL CHKXER( 'ZPPRFS', INFOT, NOUT, LERR, OK )
373          INFOT = 9
374          CALL ZPPRFS( 'U', 2, 1, A, AF, B, 2, X, 1, R1, R2, W, R, INFO )
375          CALL CHKXER( 'ZPPRFS', INFOT, NOUT, LERR, OK )
376 *
377 *        ZPPCON
378 *
379          SRNAMT = 'ZPPCON'
380          INFOT = 1
381          CALL ZPPCON( '/', 0, A, ANRM, RCOND, W, R, INFO )
382          CALL CHKXER( 'ZPPCON', INFOT, NOUT, LERR, OK )
383          INFOT = 2
384          CALL ZPPCON( 'U', -1, A, ANRM, RCOND, W, R, INFO )
385          CALL CHKXER( 'ZPPCON', INFOT, NOUT, LERR, OK )
386          INFOT = 4
387          CALL ZPPCON( 'U', 1, A, -ANRM, RCOND, W, R, INFO )
388          CALL CHKXER( 'ZPPCON', INFOT, NOUT, LERR, OK )
389 *
390 *        ZPPEQU
391 *
392          SRNAMT = 'ZPPEQU'
393          INFOT = 1
394          CALL ZPPEQU( '/', 0, A, R1, RCOND, ANRM, INFO )
395          CALL CHKXER( 'ZPPEQU', INFOT, NOUT, LERR, OK )
396          INFOT = 2
397          CALL ZPPEQU( 'U', -1, A, R1, RCOND, ANRM, INFO )
398          CALL CHKXER( 'ZPPEQU', INFOT, NOUT, LERR, OK )
399 *
400 *     Test error exits of the routines that use the Cholesky
401 *     decomposition of a Hermitian positive definite band matrix.
402 *
403       ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
404 *
405 *        ZPBTRF
406 *
407          SRNAMT = 'ZPBTRF'
408          INFOT = 1
409          CALL ZPBTRF( '/', 0, 0, A, 1, INFO )
410          CALL CHKXER( 'ZPBTRF', INFOT, NOUT, LERR, OK )
411          INFOT = 2
412          CALL ZPBTRF( 'U', -1, 0, A, 1, INFO )
413          CALL CHKXER( 'ZPBTRF', INFOT, NOUT, LERR, OK )
414          INFOT = 3
415          CALL ZPBTRF( 'U', 1, -1, A, 1, INFO )
416          CALL CHKXER( 'ZPBTRF', INFOT, NOUT, LERR, OK )
417          INFOT = 5
418          CALL ZPBTRF( 'U', 2, 1, A, 1, INFO )
419          CALL CHKXER( 'ZPBTRF', INFOT, NOUT, LERR, OK )
420 *
421 *        ZPBTF2
422 *
423          SRNAMT = 'ZPBTF2'
424          INFOT = 1
425          CALL ZPBTF2( '/', 0, 0, A, 1, INFO )
426          CALL CHKXER( 'ZPBTF2', INFOT, NOUT, LERR, OK )
427          INFOT = 2
428          CALL ZPBTF2( 'U', -1, 0, A, 1, INFO )
429          CALL CHKXER( 'ZPBTF2', INFOT, NOUT, LERR, OK )
430          INFOT = 3
431          CALL ZPBTF2( 'U', 1, -1, A, 1, INFO )
432          CALL CHKXER( 'ZPBTF2', INFOT, NOUT, LERR, OK )
433          INFOT = 5
434          CALL ZPBTF2( 'U', 2, 1, A, 1, INFO )
435          CALL CHKXER( 'ZPBTF2', INFOT, NOUT, LERR, OK )
436 *
437 *        ZPBTRS
438 *
439          SRNAMT = 'ZPBTRS'
440          INFOT = 1
441          CALL ZPBTRS( '/', 0, 0, 0, A, 1, B, 1, INFO )
442          CALL CHKXER( 'ZPBTRS', INFOT, NOUT, LERR, OK )
443          INFOT = 2
444          CALL ZPBTRS( 'U', -1, 0, 0, A, 1, B, 1, INFO )
445          CALL CHKXER( 'ZPBTRS', INFOT, NOUT, LERR, OK )
446          INFOT = 3
447          CALL ZPBTRS( 'U', 1, -1, 0, A, 1, B, 1, INFO )
448          CALL CHKXER( 'ZPBTRS', INFOT, NOUT, LERR, OK )
449          INFOT = 4
450          CALL ZPBTRS( 'U', 0, 0, -1, A, 1, B, 1, INFO )
451          CALL CHKXER( 'ZPBTRS', INFOT, NOUT, LERR, OK )
452          INFOT = 6
453          CALL ZPBTRS( 'U', 2, 1, 1, A, 1, B, 1, INFO )
454          CALL CHKXER( 'ZPBTRS', INFOT, NOUT, LERR, OK )
455          INFOT = 8
456          CALL ZPBTRS( 'U', 2, 0, 1, A, 1, B, 1, INFO )
457          CALL CHKXER( 'ZPBTRS', INFOT, NOUT, LERR, OK )
458 *
459 *        ZPBRFS
460 *
461          SRNAMT = 'ZPBRFS'
462          INFOT = 1
463          CALL ZPBRFS( '/', 0, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
464      $                R, INFO )
465          CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
466          INFOT = 2
467          CALL ZPBRFS( 'U', -1, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
468      $                R, INFO )
469          CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
470          INFOT = 3
471          CALL ZPBRFS( 'U', 1, -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
472      $                R, INFO )
473          CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
474          INFOT = 4
475          CALL ZPBRFS( 'U', 0, 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W,
476      $                R, INFO )
477          CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
478          INFOT = 6
479          CALL ZPBRFS( 'U', 2, 1, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W,
480      $                R, INFO )
481          CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
482          INFOT = 8
483          CALL ZPBRFS( 'U', 2, 1, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W,
484      $                R, INFO )
485          CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
486          INFOT = 10
487          CALL ZPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 1, X, 2, R1, R2, W,
488      $                R, INFO )
489          CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
490          INFOT = 12
491          CALL ZPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 2, X, 1, R1, R2, W,
492      $                R, INFO )
493          CALL CHKXER( 'ZPBRFS', INFOT, NOUT, LERR, OK )
494 *
495 *        ZPBCON
496 *
497          SRNAMT = 'ZPBCON'
498          INFOT = 1
499          CALL ZPBCON( '/', 0, 0, A, 1, ANRM, RCOND, W, R, INFO )
500          CALL CHKXER( 'ZPBCON', INFOT, NOUT, LERR, OK )
501          INFOT = 2
502          CALL ZPBCON( 'U', -1, 0, A, 1, ANRM, RCOND, W, R, INFO )
503          CALL CHKXER( 'ZPBCON', INFOT, NOUT, LERR, OK )
504          INFOT = 3
505          CALL ZPBCON( 'U', 1, -1, A, 1, ANRM, RCOND, W, R, INFO )
506          CALL CHKXER( 'ZPBCON', INFOT, NOUT, LERR, OK )
507          INFOT = 5
508          CALL ZPBCON( 'U', 2, 1, A, 1, ANRM, RCOND, W, R, INFO )
509          CALL CHKXER( 'ZPBCON', INFOT, NOUT, LERR, OK )
510          INFOT = 6
511          CALL ZPBCON( 'U', 1, 0, A, 1, -ANRM, RCOND, W, R, INFO )
512          CALL CHKXER( 'ZPBCON', INFOT, NOUT, LERR, OK )
513 *
514 *        ZPBEQU
515 *
516          SRNAMT = 'ZPBEQU'
517          INFOT = 1
518          CALL ZPBEQU( '/', 0, 0, A, 1, R1, RCOND, ANRM, INFO )
519          CALL CHKXER( 'ZPBEQU', INFOT, NOUT, LERR, OK )
520          INFOT = 2
521          CALL ZPBEQU( 'U', -1, 0, A, 1, R1, RCOND, ANRM, INFO )
522          CALL CHKXER( 'ZPBEQU', INFOT, NOUT, LERR, OK )
523          INFOT = 3
524          CALL ZPBEQU( 'U', 1, -1, A, 1, R1, RCOND, ANRM, INFO )
525          CALL CHKXER( 'ZPBEQU', INFOT, NOUT, LERR, OK )
526          INFOT = 5
527          CALL ZPBEQU( 'U', 2, 1, A, 1, R1, RCOND, ANRM, INFO )
528          CALL CHKXER( 'ZPBEQU', INFOT, NOUT, LERR, OK )
529       END IF
530 *
531 *     Print a summary line.
532 *
533       CALL ALAESM( PATH, OK, NOUT )
534 *
535       RETURN
536 *
537 *     End of ZERRPO
538 *
539       END