1       SUBROUTINE CERRVX( PATH, NUNIT )
  2 *
  3 *  -- LAPACK test routine (version 3.1.1) --
  4 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
  5 *     January 2007
  6 *
  7 *     .. Scalar Arguments ..
  8       CHARACTER*3        PATH
  9       INTEGER            NUNIT
 10 *     ..
 11 *
 12 *  Purpose
 13 *  =======
 14 *
 15 *  CERRVX tests the error exits for the COMPLEX driver routines
 16 *  for solving linear systems of equations.
 17 *
 18 *  Arguments
 19 *  =========
 20 *
 21 *  PATH    (input) CHARACTER*3
 22 *          The LAPACK path name for the routines to be tested.
 23 *
 24 *  NUNIT   (input) INTEGER
 25 *          The unit number for output.
 26 *
 27 *  =====================================================================
 28 *
 29 *     .. Parameters ..
 30       INTEGER            NMAX
 31       PARAMETER          ( NMAX = 4 )
 32 *     ..
 33 *     .. Local Scalars ..
 34       CHARACTER          EQ
 35       CHARACTER*2        C2
 36       INTEGER            I, INFO, J
 37       REAL               RCOND
 38 *     ..
 39 *     .. Local Arrays ..
 40       INTEGER            IP( NMAX )
 41       REAL               C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
 42      $                   RF( NMAX ), RW( NMAX )
 43       COMPLEX            A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
 44      $                   W( 2*NMAX ), X( NMAX )
 45 *     ..
 46 *     .. External Functions ..
 47       LOGICAL            LSAMEN
 48       EXTERNAL           LSAMEN
 49 *     ..
 50 *     .. External Subroutines ..
 51       EXTERNAL           CGBSV, CGBSVX, CGESV, CGESVX, CGTSV, CGTSVX,
 52      $                   CHESV, CHESVX, CHKXER, CHPSV, CHPSVX, CPBSV,
 53      $                   CPBSVX, CPOSV, CPOSVX, CPPSV, CPPSVX, CPTSV,
 54      $                   CPTSVX, CSPSV, CSPSVX, CSYSV, CSYSVX
 55 *     ..
 56 *     .. Scalars in Common ..
 57       LOGICAL            LERR, OK
 58       CHARACTER*32       SRNAMT
 59       INTEGER            INFOT, NOUT
 60 *     ..
 61 *     .. Common blocks ..
 62       COMMON             / INFOC / INFOT, NOUT, OK, LERR
 63       COMMON             / SRNAMC / SRNAMT
 64 *     ..
 65 *     .. Intrinsic Functions ..
 66       INTRINSIC          CMPLX, REAL
 67 *     ..
 68 *     .. Executable Statements ..
 69 *
 70       NOUT = NUNIT
 71       WRITE( NOUT, FMT = * )
 72       C2 = PATH( 23 )
 73 *
 74 *     Set the variables to innocuous values.
 75 *
 76       DO 20 J = 1, NMAX
 77          DO 10 I = 1, NMAX
 78             A( I, J ) = CMPLX1/ REAL( I+J ), -1/ REAL( I+J ) )
 79             AF( I, J ) = CMPLX1/ REAL( I+J ), -1/ REAL( I+J ) )
 80    10    CONTINUE
 81          B( J ) = 0.
 82          R1( J ) = 0.
 83          R2( J ) = 0.
 84          W( J ) = 0.
 85          X( J ) = 0.
 86          C( J ) = 0.
 87          R( J ) = 0.
 88          IP( J ) = J
 89    20 CONTINUE
 90       EQ = ' '
 91       OK = .TRUE.
 92 *
 93       IF( LSAMEN( 2, C2, 'GE' ) ) THEN
 94 *
 95 *        CGESV
 96 *
 97          SRNAMT = 'CGESV '
 98          INFOT = 1
 99          CALL CGESV( -10, A, 1, IP, B, 1, INFO )
100          CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
101          INFOT = 2
102          CALL CGESV( 0-1, A, 1, IP, B, 1, INFO )
103          CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
104          INFOT = 4
105          CALL CGESV( 21, A, 1, IP, B, 2, INFO )
106          CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
107          INFOT = 7
108          CALL CGESV( 21, A, 2, IP, B, 1, INFO )
109          CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
110 *
111 *        CGESVX
112 *
113          SRNAMT = 'CGESVX'
114          INFOT = 1
115          CALL CGESVX( '/''N'00, A, 1, AF, 1, IP, EQ, R, C, B, 1,
116      $                X, 1, RCOND, R1, R2, W, RW, INFO )
117          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
118          INFOT = 2
119          CALL CGESVX( 'N''/'00, A, 1, AF, 1, IP, EQ, R, C, B, 1,
120      $                X, 1, RCOND, R1, R2, W, RW, INFO )
121          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
122          INFOT = 3
123          CALL CGESVX( 'N''N'-10, A, 1, AF, 1, IP, EQ, R, C, B, 1,
124      $                X, 1, RCOND, R1, R2, W, RW, INFO )
125          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
126          INFOT = 4
127          CALL CGESVX( 'N''N'0-1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
128      $                X, 1, RCOND, R1, R2, W, RW, INFO )
129          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
130          INFOT = 6
131          CALL CGESVX( 'N''N'21, A, 1, AF, 2, IP, EQ, R, C, B, 2,
132      $                X, 2, RCOND, R1, R2, W, RW, INFO )
133          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
134          INFOT = 8
135          CALL CGESVX( 'N''N'21, A, 2, AF, 1, IP, EQ, R, C, B, 2,
136      $                X, 2, RCOND, R1, R2, W, RW, INFO )
137          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
138          INFOT = 10
139          EQ = '/'
140          CALL CGESVX( 'F''N'00, A, 1, AF, 1, IP, EQ, R, C, B, 1,
141      $                X, 1, RCOND, R1, R2, W, RW, INFO )
142          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
143          INFOT = 11
144          EQ = 'R'
145          CALL CGESVX( 'F''N'10, A, 1, AF, 1, IP, EQ, R, C, B, 1,
146      $                X, 1, RCOND, R1, R2, W, RW, INFO )
147          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
148          INFOT = 12
149          EQ = 'C'
150          CALL CGESVX( 'F''N'10, A, 1, AF, 1, IP, EQ, R, C, B, 1,
151      $                X, 1, RCOND, R1, R2, W, RW, INFO )
152          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
153          INFOT = 14
154          CALL CGESVX( 'N''N'21, A, 2, AF, 2, IP, EQ, R, C, B, 1,
155      $                X, 2, RCOND, R1, R2, W, RW, INFO )
156          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
157          INFOT = 16
158          CALL CGESVX( 'N''N'21, A, 2, AF, 2, IP, EQ, R, C, B, 2,
159      $                X, 1, RCOND, R1, R2, W, RW, INFO )
160          CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
161 *
162       ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
163 *
164 *        CGBSV
165 *
166          SRNAMT = 'CGBSV '
167          INFOT = 1
168          CALL CGBSV( -1000, A, 1, IP, B, 1, INFO )
169          CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
170          INFOT = 2
171          CALL CGBSV( 1-100, A, 1, IP, B, 1, INFO )
172          CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
173          INFOT = 3
174          CALL CGBSV( 10-10, A, 1, IP, B, 1, INFO )
175          CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
176          INFOT = 4
177          CALL CGBSV( 000-1, A, 1, IP, B, 1, INFO )
178          CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
179          INFOT = 6
180          CALL CGBSV( 1110, A, 3, IP, B, 1, INFO )
181          CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
182          INFOT = 9
183          CALL CGBSV( 2000, A, 1, IP, B, 1, INFO )
184          CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
185 *
186 *        CGBSVX
187 *
188          SRNAMT = 'CGBSVX'
189          INFOT = 1
190          CALL CGBSVX( '/''N'0000, A, 1, AF, 1, IP, EQ, R, C,
191      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
192          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
193          INFOT = 2
194          CALL CGBSVX( 'N''/'0000, A, 1, AF, 1, IP, EQ, R, C,
195      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
196          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
197          INFOT = 3
198          CALL CGBSVX( 'N''N'-1000, A, 1, AF, 1, IP, EQ, R, C,
199      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
200          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
201          INFOT = 4
202          CALL CGBSVX( 'N''N'1-100, A, 1, AF, 1, IP, EQ, R, C,
203      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
204          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
205          INFOT = 5
206          CALL CGBSVX( 'N''N'10-10, A, 1, AF, 1, IP, EQ, R, C,
207      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
208          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
209          INFOT = 6
210          CALL CGBSVX( 'N''N'000-1, A, 1, AF, 1, IP, EQ, R, C,
211      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
212          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
213          INFOT = 8
214          CALL CGBSVX( 'N''N'1110, A, 2, AF, 4, IP, EQ, R, C,
215      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
216          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
217          INFOT = 10
218          CALL CGBSVX( 'N''N'1110, A, 3, AF, 3, IP, EQ, R, C,
219      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
220          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
221          INFOT = 12
222          EQ = '/'
223          CALL CGBSVX( 'F''N'0000, A, 1, AF, 1, IP, EQ, R, C,
224      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
225          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
226          INFOT = 13
227          EQ = 'R'
228          CALL CGBSVX( 'F''N'1000, A, 1, AF, 1, IP, EQ, R, C,
229      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
230          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
231          INFOT = 14
232          EQ = 'C'
233          CALL CGBSVX( 'F''N'1000, A, 1, AF, 1, IP, EQ, R, C,
234      $                B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
235          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
236          INFOT = 16
237          CALL CGBSVX( 'N''N'2000, A, 1, AF, 1, IP, EQ, R, C,
238      $                B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
239          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
240          INFOT = 18
241          CALL CGBSVX( 'N''N'2000, A, 1, AF, 1, IP, EQ, R, C,
242      $                B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
243          CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
244 *
245       ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN
246 *
247 *        CGTSV
248 *
249          SRNAMT = 'CGTSV '
250          INFOT = 1
251          CALL CGTSV( -10, A( 11 ), A( 12 ), A( 13 ), B, 1,
252      $               INFO )
253          CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK )
254          INFOT = 2
255          CALL CGTSV( 0-1, A( 11 ), A( 12 ), A( 13 ), B, 1,
256      $               INFO )
257          CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK )
258          INFOT = 7
259          CALL CGTSV( 20, A( 11 ), A( 12 ), A( 13 ), B, 1, INFO )
260          CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK )
261 *
262 *        CGTSVX
263 *
264          SRNAMT = 'CGTSVX'
265          INFOT = 1
266          CALL CGTSVX( '/''N'00, A( 11 ), A( 12 ), A( 13 ),
267      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
268      $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
269          CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
270          INFOT = 2
271          CALL CGTSVX( 'N''/'00, A( 11 ), A( 12 ), A( 13 ),
272      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
273      $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
274          CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
275          INFOT = 3
276          CALL CGTSVX( 'N''N'-10, A( 11 ), A( 12 ), A( 13 ),
277      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
278      $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
279          CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
280          INFOT = 4
281          CALL CGTSVX( 'N''N'0-1, A( 11 ), A( 12 ), A( 13 ),
282      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
283      $                IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
284          CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
285          INFOT = 14
286          CALL CGTSVX( 'N''N'20, A( 11 ), A( 12 ), A( 13 ),
287      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
288      $                IP, B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
289          CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
290          INFOT = 16
291          CALL CGTSVX( 'N''N'20, A( 11 ), A( 12 ), A( 13 ),
292      $                AF( 11 ), AF( 12 ), AF( 13 ), AF( 14 ),
293      $                IP, B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
294          CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
295 *
296       ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
297 *
298 *        CPOSV
299 *
300          SRNAMT = 'CPOSV '
301          INFOT = 1
302          CALL CPOSV( '/'00, A, 1, B, 1, INFO )
303          CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
304          INFOT = 2
305          CALL CPOSV( 'U'-10, A, 1, B, 1, INFO )
306          CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
307          INFOT = 3
308          CALL CPOSV( 'U'0-1, A, 1, B, 1, INFO )
309          CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
310          INFOT = 5
311          CALL CPOSV( 'U'20, A, 1, B, 2, INFO )
312          CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
313          INFOT = 7
314          CALL CPOSV( 'U'20, A, 2, B, 1, INFO )
315          CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
316 *
317 *        CPOSVX
318 *
319          SRNAMT = 'CPOSVX'
320          INFOT = 1
321          CALL CPOSVX( '/''U'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
322      $                RCOND, R1, R2, W, RW, INFO )
323          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
324          INFOT = 2
325          CALL CPOSVX( 'N''/'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
326      $                RCOND, R1, R2, W, RW, INFO )
327          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
328          INFOT = 3
329          CALL CPOSVX( 'N''U'-10, A, 1, AF, 1, EQ, C, B, 1, X, 1,
330      $                RCOND, R1, R2, W, RW, INFO )
331          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
332          INFOT = 4
333          CALL CPOSVX( 'N''U'0-1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
334      $                RCOND, R1, R2, W, RW, INFO )
335          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
336          INFOT = 6
337          CALL CPOSVX( 'N''U'20, A, 1, AF, 2, EQ, C, B, 2, X, 2,
338      $                RCOND, R1, R2, W, RW, INFO )
339          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
340          INFOT = 8
341          CALL CPOSVX( 'N''U'20, A, 2, AF, 1, EQ, C, B, 2, X, 2,
342      $                RCOND, R1, R2, W, RW, INFO )
343          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
344          INFOT = 9
345          EQ = '/'
346          CALL CPOSVX( 'F''U'00, A, 1, AF, 1, EQ, C, B, 1, X, 1,
347      $                RCOND, R1, R2, W, RW, INFO )
348          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
349          INFOT = 10
350          EQ = 'Y'
351          CALL CPOSVX( 'F''U'10, A, 1, AF, 1, EQ, C, B, 1, X, 1,
352      $                RCOND, R1, R2, W, RW, INFO )
353          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
354          INFOT = 12
355          CALL CPOSVX( 'N''U'20, A, 2, AF, 2, EQ, C, B, 1, X, 2,
356      $                RCOND, R1, R2, W, RW, INFO )
357          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
358          INFOT = 14
359          CALL CPOSVX( 'N''U'20, A, 2, AF, 2, EQ, C, B, 2, X, 1,
360      $                RCOND, R1, R2, W, RW, INFO )
361          CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
362 *
363       ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
364 *
365 *        CPPSV
366 *
367          SRNAMT = 'CPPSV '
368          INFOT = 1
369          CALL CPPSV( '/'00, A, B, 1, INFO )
370          CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
371          INFOT = 2
372          CALL CPPSV( 'U'-10, A, B, 1, INFO )
373          CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
374          INFOT = 3
375          CALL CPPSV( 'U'0-1, A, B, 1, INFO )
376          CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
377          INFOT = 6
378          CALL CPPSV( 'U'20, A, B, 1, INFO )
379          CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
380 *
381 *        CPPSVX
382 *
383          SRNAMT = 'CPPSVX'
384          INFOT = 1
385          CALL CPPSVX( '/''U'00, A, AF, EQ, C, B, 1, X, 1, RCOND,
386      $                R1, R2, W, RW, INFO )
387          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
388          INFOT = 2
389          CALL CPPSVX( 'N''/'00, A, AF, EQ, C, B, 1, X, 1, RCOND,
390      $                R1, R2, W, RW, INFO )
391          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
392          INFOT = 3
393          CALL CPPSVX( 'N''U'-10, A, AF, EQ, C, B, 1, X, 1, RCOND,
394      $                R1, R2, W, RW, INFO )
395          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
396          INFOT = 4
397          CALL CPPSVX( 'N''U'0-1, A, AF, EQ, C, B, 1, X, 1, RCOND,
398      $                R1, R2, W, RW, INFO )
399          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
400          INFOT = 7
401          EQ = '/'
402          CALL CPPSVX( 'F''U'00, A, AF, EQ, C, B, 1, X, 1, RCOND,
403      $                R1, R2, W, RW, INFO )
404          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
405          INFOT = 8
406          EQ = 'Y'
407          CALL CPPSVX( 'F''U'10, A, AF, EQ, C, B, 1, X, 1, RCOND,
408      $                R1, R2, W, RW, INFO )
409          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
410          INFOT = 10
411          CALL CPPSVX( 'N''U'20, A, AF, EQ, C, B, 1, X, 2, RCOND,
412      $                R1, R2, W, RW, INFO )
413          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
414          INFOT = 12
415          CALL CPPSVX( 'N''U'20, A, AF, EQ, C, B, 2, X, 1, RCOND,
416      $                R1, R2, W, RW, INFO )
417          CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
418 *
419       ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
420 *
421 *        CPBSV
422 *
423          SRNAMT = 'CPBSV '
424          INFOT = 1
425          CALL CPBSV( '/'000, A, 1, B, 1, INFO )
426          CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
427          INFOT = 2
428          CALL CPBSV( 'U'-100, A, 1, B, 1, INFO )
429          CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
430          INFOT = 3
431          CALL CPBSV( 'U'1-10, A, 1, B, 1, INFO )
432          CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
433          INFOT = 4
434          CALL CPBSV( 'U'00-1, A, 1, B, 1, INFO )
435          CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
436          INFOT = 6
437          CALL CPBSV( 'U'110, A, 1, B, 2, INFO )
438          CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
439          INFOT = 8
440          CALL CPBSV( 'U'200, A, 1, B, 1, INFO )
441          CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
442 *
443 *        CPBSVX
444 *
445          SRNAMT = 'CPBSVX'
446          INFOT = 1
447          CALL CPBSVX( '/''U'000, A, 1, AF, 1, EQ, C, B, 1, X, 1,
448      $                RCOND, R1, R2, W, RW, INFO )
449          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
450          INFOT = 2
451          CALL CPBSVX( 'N''/'000, A, 1, AF, 1, EQ, C, B, 1, X, 1,
452      $                RCOND, R1, R2, W, RW, INFO )
453          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
454          INFOT = 3
455          CALL CPBSVX( 'N''U'-100, A, 1, AF, 1, EQ, C, B, 1, X,
456      $                1, RCOND, R1, R2, W, RW, INFO )
457          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
458          INFOT = 4
459          CALL CPBSVX( 'N''U'1-10, A, 1, AF, 1, EQ, C, B, 1, X,
460      $                1, RCOND, R1, R2, W, RW, INFO )
461          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
462          INFOT = 5
463          CALL CPBSVX( 'N''U'00-1, A, 1, AF, 1, EQ, C, B, 1, X,
464      $                1, RCOND, R1, R2, W, RW, INFO )
465          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
466          INFOT = 7
467          CALL CPBSVX( 'N''U'110, A, 1, AF, 2, EQ, C, B, 2, X, 2,
468      $                RCOND, R1, R2, W, RW, INFO )
469          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
470          INFOT = 9
471          CALL CPBSVX( 'N''U'110, A, 2, AF, 1, EQ, C, B, 2, X, 2,
472      $                RCOND, R1, R2, W, RW, INFO )
473          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
474          INFOT = 10
475          EQ = '/'
476          CALL CPBSVX( 'F''U'000, A, 1, AF, 1, EQ, C, B, 1, X, 1,
477      $                RCOND, R1, R2, W, RW, INFO )
478          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
479          INFOT = 11
480          EQ = 'Y'
481          CALL CPBSVX( 'F''U'100, A, 1, AF, 1, EQ, C, B, 1, X, 1,
482      $                RCOND, R1, R2, W, RW, INFO )
483          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
484          INFOT = 13
485          CALL CPBSVX( 'N''U'200, A, 1, AF, 1, EQ, C, B, 1, X, 2,
486      $                RCOND, R1, R2, W, RW, INFO )
487          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
488          INFOT = 15
489          CALL CPBSVX( 'N''U'200, A, 1, AF, 1, EQ, C, B, 2, X, 1,
490      $                RCOND, R1, R2, W, RW, INFO )
491          CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
492 *
493       ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN
494 *
495 *        CPTSV
496 *
497          SRNAMT = 'CPTSV '
498          INFOT = 1
499          CALL CPTSV( -10, R, A( 11 ), B, 1, INFO )
500          CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK )
501          INFOT = 2
502          CALL CPTSV( 0-1, R, A( 11 ), B, 1, INFO )
503          CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK )
504          INFOT = 6
505          CALL CPTSV( 20, R, A( 11 ), B, 1, INFO )
506          CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK )
507 *
508 *        CPTSVX
509 *
510          SRNAMT = 'CPTSVX'
511          INFOT = 1
512          CALL CPTSVX( '/'00, R, A( 11 ), RF, AF( 11 ), B, 1, X,
513      $                1, RCOND, R1, R2, W, RW, INFO )
514          CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
515          INFOT = 2
516          CALL CPTSVX( 'N'-10, R, A( 11 ), RF, AF( 11 ), B, 1, X,
517      $                1, RCOND, R1, R2, W, RW, INFO )
518          CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
519          INFOT = 3
520          CALL CPTSVX( 'N'0-1, R, A( 11 ), RF, AF( 11 ), B, 1, X,
521      $                1, RCOND, R1, R2, W, RW, INFO )
522          CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
523          INFOT = 9
524          CALL CPTSVX( 'N'20, R, A( 11 ), RF, AF( 11 ), B, 1, X,
525      $                2, RCOND, R1, R2, W, RW, INFO )
526          CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
527          INFOT = 11
528          CALL CPTSVX( 'N'20, R, A( 11 ), RF, AF( 11 ), B, 2, X,
529      $                1, RCOND, R1, R2, W, RW, INFO )
530          CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
531 *
532       ELSE IF( LSAMEN( 2, C2, 'HE' ) ) THEN
533 *
534 *        CHESV
535 *
536          SRNAMT = 'CHESV '
537          INFOT = 1
538          CALL CHESV( '/'00, A, 1, IP, B, 1, W, 1, INFO )
539          CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
540          INFOT = 2
541          CALL CHESV( 'U'-10, A, 1, IP, B, 1, W, 1, INFO )
542          CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
543          INFOT = 3
544          CALL CHESV( 'U'0-1, A, 1, IP, B, 1, W, 1, INFO )
545          CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
546          INFOT = 5
547          CALL CHESV( 'U'20, A, 1, IP, B, 2, W, 1, INFO )
548          CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
549          INFOT = 8
550          CALL CHESV( 'U'20, A, 2, IP, B, 1, W, 1, INFO )
551          CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
552 *
553 *        CHESVX
554 *
555          SRNAMT = 'CHESVX'
556          INFOT = 1
557          CALL CHESVX( '/''U'00, A, 1, AF, 1, IP, B, 1, X, 1,
558      $                RCOND, R1, R2, W, 1, RW, INFO )
559          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
560          INFOT = 2
561          CALL CHESVX( 'N''/'00, A, 1, AF, 1, IP, B, 1, X, 1,
562      $                RCOND, R1, R2, W, 1, RW, INFO )
563          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
564          INFOT = 3
565          CALL CHESVX( 'N''U'-10, A, 1, AF, 1, IP, B, 1, X, 1,
566      $                RCOND, R1, R2, W, 1, RW, INFO )
567          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
568          INFOT = 4
569          CALL CHESVX( 'N''U'0-1, A, 1, AF, 1, IP, B, 1, X, 1,
570      $                RCOND, R1, R2, W, 1, RW, INFO )
571          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
572          INFOT = 6
573          CALL CHESVX( 'N''U'20, A, 1, AF, 2, IP, B, 2, X, 2,
574      $                RCOND, R1, R2, W, 4, RW, INFO )
575          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
576          INFOT = 8
577          CALL CHESVX( 'N''U'20, A, 2, AF, 1, IP, B, 2, X, 2,
578      $                RCOND, R1, R2, W, 4, RW, INFO )
579          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
580          INFOT = 11
581          CALL CHESVX( 'N''U'20, A, 2, AF, 2, IP, B, 1, X, 2,
582      $                RCOND, R1, R2, W, 4, RW, INFO )
583          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
584          INFOT = 13
585          CALL CHESVX( 'N''U'20, A, 2, AF, 2, IP, B, 2, X, 1,
586      $                RCOND, R1, R2, W, 4, RW, INFO )
587          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
588          INFOT = 18
589          CALL CHESVX( 'N''U'20, A, 2, AF, 2, IP, B, 2, X, 2,
590      $                RCOND, R1, R2, W, 3, RW, INFO )
591          CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
592 *
593       ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN
594 *
595 *        CHPSV
596 *
597          SRNAMT = 'CHPSV '
598          INFOT = 1
599          CALL CHPSV( '/'00, A, IP, B, 1, INFO )
600          CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
601          INFOT = 2
602          CALL CHPSV( 'U'-10, A, IP, B, 1, INFO )
603          CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
604          INFOT = 3
605          CALL CHPSV( 'U'0-1, A, IP, B, 1, INFO )
606          CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
607          INFOT = 7
608          CALL CHPSV( 'U'20, A, IP, B, 1, INFO )
609          CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
610 *
611 *        CHPSVX
612 *
613          SRNAMT = 'CHPSVX'
614          INFOT = 1
615          CALL CHPSVX( '/''U'00, A, AF, IP, B, 1, X, 1, RCOND, R1,
616      $                R2, W, RW, INFO )
617          CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
618          INFOT = 2
619          CALL CHPSVX( 'N''/'00, A, AF, IP, B, 1, X, 1, RCOND, R1,
620      $                R2, W, RW, INFO )
621          CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
622          INFOT = 3
623          CALL CHPSVX( 'N''U'-10, A, AF, IP, B, 1, X, 1, RCOND, R1,
624      $                R2, W, RW, INFO )
625          CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
626          INFOT = 4
627          CALL CHPSVX( 'N''U'0-1, A, AF, IP, B, 1, X, 1, RCOND, R1,
628      $                R2, W, RW, INFO )
629          CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
630          INFOT = 9
631          CALL CHPSVX( 'N''U'20, A, AF, IP, B, 1, X, 2, RCOND, R1,
632      $                R2, W, RW, INFO )
633          CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
634          INFOT = 11
635          CALL CHPSVX( 'N''U'20, A, AF, IP, B, 2, X, 1, RCOND, R1,
636      $                R2, W, RW, INFO )
637          CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
638 *
639       ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
640 *
641 *        CSYSV
642 *
643          SRNAMT = 'CSYSV '
644          INFOT = 1
645          CALL CSYSV( '/'00, A, 1, IP, B, 1, W, 1, INFO )
646          CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
647          INFOT = 2
648          CALL CSYSV( 'U'-10, A, 1, IP, B, 1, W, 1, INFO )
649          CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
650          INFOT = 3
651          CALL CSYSV( 'U'0-1, A, 1, IP, B, 1, W, 1, INFO )
652          CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
653          INFOT = 8
654          CALL CSYSV( 'U'20, A, 2, IP, B, 1, W, 1, INFO )
655          CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
656 *
657 *        CSYSVX
658 *
659          SRNAMT = 'CSYSVX'
660          INFOT = 1
661          CALL CSYSVX( '/''U'00, A, 1, AF, 1, IP, B, 1, X, 1,
662      $                RCOND, R1, R2, W, 1, RW, INFO )
663          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
664          INFOT = 2
665          CALL CSYSVX( 'N''/'00, A, 1, AF, 1, IP, B, 1, X, 1,
666      $                RCOND, R1, R2, W, 1, RW, INFO )
667          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
668          INFOT = 3
669          CALL CSYSVX( 'N''U'-10, A, 1, AF, 1, IP, B, 1, X, 1,
670      $                RCOND, R1, R2, W, 1, RW, INFO )
671          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
672          INFOT = 4
673          CALL CSYSVX( 'N''U'0-1, A, 1, AF, 1, IP, B, 1, X, 1,
674      $                RCOND, R1, R2, W, 1, RW, INFO )
675          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
676          INFOT = 6
677          CALL CSYSVX( 'N''U'20, A, 1, AF, 2, IP, B, 2, X, 2,
678      $                RCOND, R1, R2, W, 4, RW, INFO )
679          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
680          INFOT = 8
681          CALL CSYSVX( 'N''U'20, A, 2, AF, 1, IP, B, 2, X, 2,
682      $                RCOND, R1, R2, W, 4, RW, INFO )
683          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
684          INFOT = 11
685          CALL CSYSVX( 'N''U'20, A, 2, AF, 2, IP, B, 1, X, 2,
686      $                RCOND, R1, R2, W, 4, RW, INFO )
687          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
688          INFOT = 13
689          CALL CSYSVX( 'N''U'20, A, 2, AF, 2, IP, B, 2, X, 1,
690      $                RCOND, R1, R2, W, 4, RW, INFO )
691          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
692          INFOT = 18
693          CALL CSYSVX( 'N''U'20, A, 2, AF, 2, IP, B, 2, X, 2,
694      $                RCOND, R1, R2, W, 3, RW, INFO )
695          CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
696 *
697       ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
698 *
699 *        CSPSV
700 *
701          SRNAMT = 'CSPSV '
702          INFOT = 1
703          CALL CSPSV( '/'00, A, IP, B, 1, INFO )
704          CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
705          INFOT = 2
706          CALL CSPSV( 'U'-10, A, IP, B, 1, INFO )
707          CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
708          INFOT = 3
709          CALL CSPSV( 'U'0-1, A, IP, B, 1, INFO )
710          CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
711          INFOT = 7
712          CALL CSPSV( 'U'20, A, IP, B, 1, INFO )
713          CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
714 *
715 *        CSPSVX
716 *
717          SRNAMT = 'CSPSVX'
718          INFOT = 1
719          CALL CSPSVX( '/''U'00, A, AF, IP, B, 1, X, 1, RCOND, R1,
720      $                R2, W, RW, INFO )
721          CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
722          INFOT = 2
723          CALL CSPSVX( 'N''/'00, A, AF, IP, B, 1, X, 1, RCOND, R1,
724      $                R2, W, RW, INFO )
725          CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
726          INFOT = 3
727          CALL CSPSVX( 'N''U'-10, A, AF, IP, B, 1, X, 1, RCOND, R1,
728      $                R2, W, RW, INFO )
729          CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
730          INFOT = 4
731          CALL CSPSVX( 'N''U'0-1, A, AF, IP, B, 1, X, 1, RCOND, R1,
732      $                R2, W, RW, INFO )
733          CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
734          INFOT = 9
735          CALL CSPSVX( 'N''U'20, A, AF, IP, B, 1, X, 2, RCOND, R1,
736      $                R2, W, RW, INFO )
737          CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
738          INFOT = 11
739          CALL CSPSVX( 'N''U'20, A, AF, IP, B, 2, X, 1, RCOND, R1,
740      $                R2, W, RW, INFO )
741          CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
742       END IF
743 *
744 *     Print a summary line.
745 *
746       IF( OK ) THEN
747          WRITE( NOUT, FMT = 9999 )PATH
748       ELSE
749          WRITE( NOUT, FMT = 9998 )PATH
750       END IF
751 *
752  9999 FORMAT1X, A3, ' drivers passed the tests of the error exits' )
753  9998 FORMAT' *** ', A3, ' drivers failed the tests of the error ',
754      $      'exits ***' )
755 *
756       RETURN
757 *
758 *     End of CERRVX
759 *
760       END