1 SUBROUTINE ZERRGE( PATH, NUNIT )
2 *
3 * -- LAPACK test routine (version 3.1) --
4 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5 * November 2006
6 *
7 * .. Scalar Arguments ..
8 CHARACTER*3 PATH
9 INTEGER NUNIT
10 * ..
11 *
12 * Purpose
13 * =======
14 *
15 * ZERRGE tests the error exits for the COMPLEX*16 routines
16 * for general matrices.
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*2 C2
35 INTEGER I, INFO, J
36 DOUBLE PRECISION ANRM, CCOND, RCOND
37 * ..
38 * .. Local Arrays ..
39 INTEGER IP( NMAX )
40 DOUBLE PRECISION R( NMAX ), R1( NMAX ), R2( NMAX )
41 COMPLEX*16 A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
42 $ W( 2*NMAX ), X( NMAX )
43 * ..
44 * .. External Functions ..
45 LOGICAL LSAMEN
46 EXTERNAL LSAMEN
47 * ..
48 * .. External Subroutines ..
49 EXTERNAL ALAESM, CHKXER, ZGBCON, ZGBEQU, ZGBRFS, ZGBTF2,
50 $ ZGBTRF, ZGBTRS, ZGECON, ZGEEQU, ZGERFS, ZGETF2,
51 $ ZGETRF, ZGETRI, ZGETRS
52 * ..
53 * .. Scalars in Common ..
54 LOGICAL LERR, OK
55 CHARACTER*32 SRNAMT
56 INTEGER INFOT, NOUT
57 * ..
58 * .. Common blocks ..
59 COMMON / INFOC / INFOT, NOUT, OK, LERR
60 COMMON / SRNAMC / SRNAMT
61 * ..
62 * .. Intrinsic Functions ..
63 INTRINSIC DBLE, DCMPLX
64 * ..
65 * .. Executable Statements ..
66 *
67 NOUT = NUNIT
68 WRITE( NOUT, FMT = * )
69 C2 = PATH( 2: 3 )
70 *
71 * Set the variables to innocuous values.
72 *
73 DO 20 J = 1, NMAX
74 DO 10 I = 1, NMAX
75 A( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
76 $ -1.D0 / DBLE( I+J ) )
77 AF( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
78 $ -1.D0 / DBLE( I+J ) )
79 10 CONTINUE
80 B( J ) = 0.D0
81 R1( J ) = 0.D0
82 R2( J ) = 0.D0
83 W( J ) = 0.D0
84 X( J ) = 0.D0
85 IP( J ) = J
86 20 CONTINUE
87 OK = .TRUE.
88 *
89 * Test error exits of the routines that use the LU decomposition
90 * of a general matrix.
91 *
92 IF( LSAMEN( 2, C2, 'GE' ) ) THEN
93 *
94 * ZGETRF
95 *
96 SRNAMT = 'ZGETRF'
97 INFOT = 1
98 CALL ZGETRF( -1, 0, A, 1, IP, INFO )
99 CALL CHKXER( 'ZGETRF', INFOT, NOUT, LERR, OK )
100 INFOT = 2
101 CALL ZGETRF( 0, -1, A, 1, IP, INFO )
102 CALL CHKXER( 'ZGETRF', INFOT, NOUT, LERR, OK )
103 INFOT = 4
104 CALL ZGETRF( 2, 1, A, 1, IP, INFO )
105 CALL CHKXER( 'ZGETRF', INFOT, NOUT, LERR, OK )
106 *
107 * ZGETF2
108 *
109 SRNAMT = 'ZGETF2'
110 INFOT = 1
111 CALL ZGETF2( -1, 0, A, 1, IP, INFO )
112 CALL CHKXER( 'ZGETF2', INFOT, NOUT, LERR, OK )
113 INFOT = 2
114 CALL ZGETF2( 0, -1, A, 1, IP, INFO )
115 CALL CHKXER( 'ZGETF2', INFOT, NOUT, LERR, OK )
116 INFOT = 4
117 CALL ZGETF2( 2, 1, A, 1, IP, INFO )
118 CALL CHKXER( 'ZGETF2', INFOT, NOUT, LERR, OK )
119 *
120 * ZGETRI
121 *
122 SRNAMT = 'ZGETRI'
123 INFOT = 1
124 CALL ZGETRI( -1, A, 1, IP, W, 1, INFO )
125 CALL CHKXER( 'ZGETRI', INFOT, NOUT, LERR, OK )
126 INFOT = 3
127 CALL ZGETRI( 2, A, 1, IP, W, 2, INFO )
128 CALL CHKXER( 'ZGETRI', INFOT, NOUT, LERR, OK )
129 INFOT = 6
130 CALL ZGETRI( 2, A, 2, IP, W, 1, INFO )
131 CALL CHKXER( 'ZGETRI', INFOT, NOUT, LERR, OK )
132 *
133 * ZGETRS
134 *
135 SRNAMT = 'ZGETRS'
136 INFOT = 1
137 CALL ZGETRS( '/', 0, 0, A, 1, IP, B, 1, INFO )
138 CALL CHKXER( 'ZGETRS', INFOT, NOUT, LERR, OK )
139 INFOT = 2
140 CALL ZGETRS( 'N', -1, 0, A, 1, IP, B, 1, INFO )
141 CALL CHKXER( 'ZGETRS', INFOT, NOUT, LERR, OK )
142 INFOT = 3
143 CALL ZGETRS( 'N', 0, -1, A, 1, IP, B, 1, INFO )
144 CALL CHKXER( 'ZGETRS', INFOT, NOUT, LERR, OK )
145 INFOT = 5
146 CALL ZGETRS( 'N', 2, 1, A, 1, IP, B, 2, INFO )
147 CALL CHKXER( 'ZGETRS', INFOT, NOUT, LERR, OK )
148 INFOT = 8
149 CALL ZGETRS( 'N', 2, 1, A, 2, IP, B, 1, INFO )
150 CALL CHKXER( 'ZGETRS', INFOT, NOUT, LERR, OK )
151 *
152 * ZGERFS
153 *
154 SRNAMT = 'ZGERFS'
155 INFOT = 1
156 CALL ZGERFS( '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, W,
157 $ R, INFO )
158 CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
159 INFOT = 2
160 CALL ZGERFS( 'N', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2,
161 $ W, R, INFO )
162 CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
163 INFOT = 3
164 CALL ZGERFS( 'N', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2,
165 $ W, R, INFO )
166 CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
167 INFOT = 5
168 CALL ZGERFS( 'N', 2, 1, A, 1, AF, 2, IP, B, 2, X, 2, R1, R2, W,
169 $ R, INFO )
170 CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
171 INFOT = 7
172 CALL ZGERFS( 'N', 2, 1, A, 2, AF, 1, IP, B, 2, X, 2, R1, R2, W,
173 $ R, INFO )
174 CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
175 INFOT = 10
176 CALL ZGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 1, X, 2, R1, R2, W,
177 $ R, INFO )
178 CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
179 INFOT = 12
180 CALL ZGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 2, X, 1, R1, R2, W,
181 $ R, INFO )
182 CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
183 *
184 * ZGECON
185 *
186 SRNAMT = 'ZGECON'
187 INFOT = 1
188 CALL ZGECON( '/', 0, A, 1, ANRM, RCOND, W, R, INFO )
189 CALL CHKXER( 'ZGECON', INFOT, NOUT, LERR, OK )
190 INFOT = 2
191 CALL ZGECON( '1', -1, A, 1, ANRM, RCOND, W, R, INFO )
192 CALL CHKXER( 'ZGECON', INFOT, NOUT, LERR, OK )
193 INFOT = 4
194 CALL ZGECON( '1', 2, A, 1, ANRM, RCOND, W, R, INFO )
195 CALL CHKXER( 'ZGECON', INFOT, NOUT, LERR, OK )
196 *
197 * ZGEEQU
198 *
199 SRNAMT = 'ZGEEQU'
200 INFOT = 1
201 CALL ZGEEQU( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
202 CALL CHKXER( 'ZGEEQU', INFOT, NOUT, LERR, OK )
203 INFOT = 2
204 CALL ZGEEQU( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
205 CALL CHKXER( 'ZGEEQU', INFOT, NOUT, LERR, OK )
206 INFOT = 4
207 CALL ZGEEQU( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
208 CALL CHKXER( 'ZGEEQU', INFOT, NOUT, LERR, OK )
209 *
210 * Test error exits of the routines that use the LU decomposition
211 * of a general band matrix.
212 *
213 ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
214 *
215 * ZGBTRF
216 *
217 SRNAMT = 'ZGBTRF'
218 INFOT = 1
219 CALL ZGBTRF( -1, 0, 0, 0, A, 1, IP, INFO )
220 CALL CHKXER( 'ZGBTRF', INFOT, NOUT, LERR, OK )
221 INFOT = 2
222 CALL ZGBTRF( 0, -1, 0, 0, A, 1, IP, INFO )
223 CALL CHKXER( 'ZGBTRF', INFOT, NOUT, LERR, OK )
224 INFOT = 3
225 CALL ZGBTRF( 1, 1, -1, 0, A, 1, IP, INFO )
226 CALL CHKXER( 'ZGBTRF', INFOT, NOUT, LERR, OK )
227 INFOT = 4
228 CALL ZGBTRF( 1, 1, 0, -1, A, 1, IP, INFO )
229 CALL CHKXER( 'ZGBTRF', INFOT, NOUT, LERR, OK )
230 INFOT = 6
231 CALL ZGBTRF( 2, 2, 1, 1, A, 3, IP, INFO )
232 CALL CHKXER( 'ZGBTRF', INFOT, NOUT, LERR, OK )
233 *
234 * ZGBTF2
235 *
236 SRNAMT = 'ZGBTF2'
237 INFOT = 1
238 CALL ZGBTF2( -1, 0, 0, 0, A, 1, IP, INFO )
239 CALL CHKXER( 'ZGBTF2', INFOT, NOUT, LERR, OK )
240 INFOT = 2
241 CALL ZGBTF2( 0, -1, 0, 0, A, 1, IP, INFO )
242 CALL CHKXER( 'ZGBTF2', INFOT, NOUT, LERR, OK )
243 INFOT = 3
244 CALL ZGBTF2( 1, 1, -1, 0, A, 1, IP, INFO )
245 CALL CHKXER( 'ZGBTF2', INFOT, NOUT, LERR, OK )
246 INFOT = 4
247 CALL ZGBTF2( 1, 1, 0, -1, A, 1, IP, INFO )
248 CALL CHKXER( 'ZGBTF2', INFOT, NOUT, LERR, OK )
249 INFOT = 6
250 CALL ZGBTF2( 2, 2, 1, 1, A, 3, IP, INFO )
251 CALL CHKXER( 'ZGBTF2', INFOT, NOUT, LERR, OK )
252 *
253 * ZGBTRS
254 *
255 SRNAMT = 'ZGBTRS'
256 INFOT = 1
257 CALL ZGBTRS( '/', 0, 0, 0, 1, A, 1, IP, B, 1, INFO )
258 CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
259 INFOT = 2
260 CALL ZGBTRS( 'N', -1, 0, 0, 1, A, 1, IP, B, 1, INFO )
261 CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
262 INFOT = 3
263 CALL ZGBTRS( 'N', 1, -1, 0, 1, A, 1, IP, B, 1, INFO )
264 CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
265 INFOT = 4
266 CALL ZGBTRS( 'N', 1, 0, -1, 1, A, 1, IP, B, 1, INFO )
267 CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
268 INFOT = 5
269 CALL ZGBTRS( 'N', 1, 0, 0, -1, A, 1, IP, B, 1, INFO )
270 CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
271 INFOT = 7
272 CALL ZGBTRS( 'N', 2, 1, 1, 1, A, 3, IP, B, 2, INFO )
273 CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
274 INFOT = 10
275 CALL ZGBTRS( 'N', 2, 0, 0, 1, A, 1, IP, B, 1, INFO )
276 CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
277 *
278 * ZGBRFS
279 *
280 SRNAMT = 'ZGBRFS'
281 INFOT = 1
282 CALL ZGBRFS( '/', 0, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
283 $ R2, W, R, INFO )
284 CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
285 INFOT = 2
286 CALL ZGBRFS( 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
287 $ R2, W, R, INFO )
288 CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
289 INFOT = 3
290 CALL ZGBRFS( 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
291 $ R2, W, R, INFO )
292 CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
293 INFOT = 4
294 CALL ZGBRFS( 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
295 $ R2, W, R, INFO )
296 CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
297 INFOT = 5
298 CALL ZGBRFS( 'N', 1, 0, 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1,
299 $ R2, W, R, INFO )
300 CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
301 INFOT = 7
302 CALL ZGBRFS( 'N', 2, 1, 1, 1, A, 2, AF, 4, IP, B, 2, X, 2, R1,
303 $ R2, W, R, INFO )
304 CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
305 INFOT = 9
306 CALL ZGBRFS( 'N', 2, 1, 1, 1, A, 3, AF, 3, IP, B, 2, X, 2, R1,
307 $ R2, W, R, INFO )
308 CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
309 INFOT = 12
310 CALL ZGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 1, X, 2, R1,
311 $ R2, W, R, INFO )
312 CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
313 INFOT = 14
314 CALL ZGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 2, X, 1, R1,
315 $ R2, W, R, INFO )
316 CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
317 *
318 * ZGBCON
319 *
320 SRNAMT = 'ZGBCON'
321 INFOT = 1
322 CALL ZGBCON( '/', 0, 0, 0, A, 1, IP, ANRM, RCOND, W, R, INFO )
323 CALL CHKXER( 'ZGBCON', INFOT, NOUT, LERR, OK )
324 INFOT = 2
325 CALL ZGBCON( '1', -1, 0, 0, A, 1, IP, ANRM, RCOND, W, R, INFO )
326 CALL CHKXER( 'ZGBCON', INFOT, NOUT, LERR, OK )
327 INFOT = 3
328 CALL ZGBCON( '1', 1, -1, 0, A, 1, IP, ANRM, RCOND, W, R, INFO )
329 CALL CHKXER( 'ZGBCON', INFOT, NOUT, LERR, OK )
330 INFOT = 4
331 CALL ZGBCON( '1', 1, 0, -1, A, 1, IP, ANRM, RCOND, W, R, INFO )
332 CALL CHKXER( 'ZGBCON', INFOT, NOUT, LERR, OK )
333 INFOT = 6
334 CALL ZGBCON( '1', 2, 1, 1, A, 3, IP, ANRM, RCOND, W, R, INFO )
335 CALL CHKXER( 'ZGBCON', INFOT, NOUT, LERR, OK )
336 *
337 * ZGBEQU
338 *
339 SRNAMT = 'ZGBEQU'
340 INFOT = 1
341 CALL ZGBEQU( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
342 $ INFO )
343 CALL CHKXER( 'ZGBEQU', INFOT, NOUT, LERR, OK )
344 INFOT = 2
345 CALL ZGBEQU( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
346 $ INFO )
347 CALL CHKXER( 'ZGBEQU', INFOT, NOUT, LERR, OK )
348 INFOT = 3
349 CALL ZGBEQU( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
350 $ INFO )
351 CALL CHKXER( 'ZGBEQU', INFOT, NOUT, LERR, OK )
352 INFOT = 4
353 CALL ZGBEQU( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM,
354 $ INFO )
355 CALL CHKXER( 'ZGBEQU', INFOT, NOUT, LERR, OK )
356 INFOT = 6
357 CALL ZGBEQU( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM,
358 $ INFO )
359 CALL CHKXER( 'ZGBEQU', INFOT, NOUT, LERR, OK )
360 END IF
361 *
362 * Print a summary line.
363 *
364 CALL ALAESM( PATH, OK, NOUT )
365 *
366 RETURN
367 *
368 * End of ZERRGE
369 *
370 END
2 *
3 * -- LAPACK test routine (version 3.1) --
4 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5 * November 2006
6 *
7 * .. Scalar Arguments ..
8 CHARACTER*3 PATH
9 INTEGER NUNIT
10 * ..
11 *
12 * Purpose
13 * =======
14 *
15 * ZERRGE tests the error exits for the COMPLEX*16 routines
16 * for general matrices.
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*2 C2
35 INTEGER I, INFO, J
36 DOUBLE PRECISION ANRM, CCOND, RCOND
37 * ..
38 * .. Local Arrays ..
39 INTEGER IP( NMAX )
40 DOUBLE PRECISION R( NMAX ), R1( NMAX ), R2( NMAX )
41 COMPLEX*16 A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
42 $ W( 2*NMAX ), X( NMAX )
43 * ..
44 * .. External Functions ..
45 LOGICAL LSAMEN
46 EXTERNAL LSAMEN
47 * ..
48 * .. External Subroutines ..
49 EXTERNAL ALAESM, CHKXER, ZGBCON, ZGBEQU, ZGBRFS, ZGBTF2,
50 $ ZGBTRF, ZGBTRS, ZGECON, ZGEEQU, ZGERFS, ZGETF2,
51 $ ZGETRF, ZGETRI, ZGETRS
52 * ..
53 * .. Scalars in Common ..
54 LOGICAL LERR, OK
55 CHARACTER*32 SRNAMT
56 INTEGER INFOT, NOUT
57 * ..
58 * .. Common blocks ..
59 COMMON / INFOC / INFOT, NOUT, OK, LERR
60 COMMON / SRNAMC / SRNAMT
61 * ..
62 * .. Intrinsic Functions ..
63 INTRINSIC DBLE, DCMPLX
64 * ..
65 * .. Executable Statements ..
66 *
67 NOUT = NUNIT
68 WRITE( NOUT, FMT = * )
69 C2 = PATH( 2: 3 )
70 *
71 * Set the variables to innocuous values.
72 *
73 DO 20 J = 1, NMAX
74 DO 10 I = 1, NMAX
75 A( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
76 $ -1.D0 / DBLE( I+J ) )
77 AF( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
78 $ -1.D0 / DBLE( I+J ) )
79 10 CONTINUE
80 B( J ) = 0.D0
81 R1( J ) = 0.D0
82 R2( J ) = 0.D0
83 W( J ) = 0.D0
84 X( J ) = 0.D0
85 IP( J ) = J
86 20 CONTINUE
87 OK = .TRUE.
88 *
89 * Test error exits of the routines that use the LU decomposition
90 * of a general matrix.
91 *
92 IF( LSAMEN( 2, C2, 'GE' ) ) THEN
93 *
94 * ZGETRF
95 *
96 SRNAMT = 'ZGETRF'
97 INFOT = 1
98 CALL ZGETRF( -1, 0, A, 1, IP, INFO )
99 CALL CHKXER( 'ZGETRF', INFOT, NOUT, LERR, OK )
100 INFOT = 2
101 CALL ZGETRF( 0, -1, A, 1, IP, INFO )
102 CALL CHKXER( 'ZGETRF', INFOT, NOUT, LERR, OK )
103 INFOT = 4
104 CALL ZGETRF( 2, 1, A, 1, IP, INFO )
105 CALL CHKXER( 'ZGETRF', INFOT, NOUT, LERR, OK )
106 *
107 * ZGETF2
108 *
109 SRNAMT = 'ZGETF2'
110 INFOT = 1
111 CALL ZGETF2( -1, 0, A, 1, IP, INFO )
112 CALL CHKXER( 'ZGETF2', INFOT, NOUT, LERR, OK )
113 INFOT = 2
114 CALL ZGETF2( 0, -1, A, 1, IP, INFO )
115 CALL CHKXER( 'ZGETF2', INFOT, NOUT, LERR, OK )
116 INFOT = 4
117 CALL ZGETF2( 2, 1, A, 1, IP, INFO )
118 CALL CHKXER( 'ZGETF2', INFOT, NOUT, LERR, OK )
119 *
120 * ZGETRI
121 *
122 SRNAMT = 'ZGETRI'
123 INFOT = 1
124 CALL ZGETRI( -1, A, 1, IP, W, 1, INFO )
125 CALL CHKXER( 'ZGETRI', INFOT, NOUT, LERR, OK )
126 INFOT = 3
127 CALL ZGETRI( 2, A, 1, IP, W, 2, INFO )
128 CALL CHKXER( 'ZGETRI', INFOT, NOUT, LERR, OK )
129 INFOT = 6
130 CALL ZGETRI( 2, A, 2, IP, W, 1, INFO )
131 CALL CHKXER( 'ZGETRI', INFOT, NOUT, LERR, OK )
132 *
133 * ZGETRS
134 *
135 SRNAMT = 'ZGETRS'
136 INFOT = 1
137 CALL ZGETRS( '/', 0, 0, A, 1, IP, B, 1, INFO )
138 CALL CHKXER( 'ZGETRS', INFOT, NOUT, LERR, OK )
139 INFOT = 2
140 CALL ZGETRS( 'N', -1, 0, A, 1, IP, B, 1, INFO )
141 CALL CHKXER( 'ZGETRS', INFOT, NOUT, LERR, OK )
142 INFOT = 3
143 CALL ZGETRS( 'N', 0, -1, A, 1, IP, B, 1, INFO )
144 CALL CHKXER( 'ZGETRS', INFOT, NOUT, LERR, OK )
145 INFOT = 5
146 CALL ZGETRS( 'N', 2, 1, A, 1, IP, B, 2, INFO )
147 CALL CHKXER( 'ZGETRS', INFOT, NOUT, LERR, OK )
148 INFOT = 8
149 CALL ZGETRS( 'N', 2, 1, A, 2, IP, B, 1, INFO )
150 CALL CHKXER( 'ZGETRS', INFOT, NOUT, LERR, OK )
151 *
152 * ZGERFS
153 *
154 SRNAMT = 'ZGERFS'
155 INFOT = 1
156 CALL ZGERFS( '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, W,
157 $ R, INFO )
158 CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
159 INFOT = 2
160 CALL ZGERFS( 'N', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2,
161 $ W, R, INFO )
162 CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
163 INFOT = 3
164 CALL ZGERFS( 'N', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2,
165 $ W, R, INFO )
166 CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
167 INFOT = 5
168 CALL ZGERFS( 'N', 2, 1, A, 1, AF, 2, IP, B, 2, X, 2, R1, R2, W,
169 $ R, INFO )
170 CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
171 INFOT = 7
172 CALL ZGERFS( 'N', 2, 1, A, 2, AF, 1, IP, B, 2, X, 2, R1, R2, W,
173 $ R, INFO )
174 CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
175 INFOT = 10
176 CALL ZGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 1, X, 2, R1, R2, W,
177 $ R, INFO )
178 CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
179 INFOT = 12
180 CALL ZGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 2, X, 1, R1, R2, W,
181 $ R, INFO )
182 CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
183 *
184 * ZGECON
185 *
186 SRNAMT = 'ZGECON'
187 INFOT = 1
188 CALL ZGECON( '/', 0, A, 1, ANRM, RCOND, W, R, INFO )
189 CALL CHKXER( 'ZGECON', INFOT, NOUT, LERR, OK )
190 INFOT = 2
191 CALL ZGECON( '1', -1, A, 1, ANRM, RCOND, W, R, INFO )
192 CALL CHKXER( 'ZGECON', INFOT, NOUT, LERR, OK )
193 INFOT = 4
194 CALL ZGECON( '1', 2, A, 1, ANRM, RCOND, W, R, INFO )
195 CALL CHKXER( 'ZGECON', INFOT, NOUT, LERR, OK )
196 *
197 * ZGEEQU
198 *
199 SRNAMT = 'ZGEEQU'
200 INFOT = 1
201 CALL ZGEEQU( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
202 CALL CHKXER( 'ZGEEQU', INFOT, NOUT, LERR, OK )
203 INFOT = 2
204 CALL ZGEEQU( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
205 CALL CHKXER( 'ZGEEQU', INFOT, NOUT, LERR, OK )
206 INFOT = 4
207 CALL ZGEEQU( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
208 CALL CHKXER( 'ZGEEQU', INFOT, NOUT, LERR, OK )
209 *
210 * Test error exits of the routines that use the LU decomposition
211 * of a general band matrix.
212 *
213 ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
214 *
215 * ZGBTRF
216 *
217 SRNAMT = 'ZGBTRF'
218 INFOT = 1
219 CALL ZGBTRF( -1, 0, 0, 0, A, 1, IP, INFO )
220 CALL CHKXER( 'ZGBTRF', INFOT, NOUT, LERR, OK )
221 INFOT = 2
222 CALL ZGBTRF( 0, -1, 0, 0, A, 1, IP, INFO )
223 CALL CHKXER( 'ZGBTRF', INFOT, NOUT, LERR, OK )
224 INFOT = 3
225 CALL ZGBTRF( 1, 1, -1, 0, A, 1, IP, INFO )
226 CALL CHKXER( 'ZGBTRF', INFOT, NOUT, LERR, OK )
227 INFOT = 4
228 CALL ZGBTRF( 1, 1, 0, -1, A, 1, IP, INFO )
229 CALL CHKXER( 'ZGBTRF', INFOT, NOUT, LERR, OK )
230 INFOT = 6
231 CALL ZGBTRF( 2, 2, 1, 1, A, 3, IP, INFO )
232 CALL CHKXER( 'ZGBTRF', INFOT, NOUT, LERR, OK )
233 *
234 * ZGBTF2
235 *
236 SRNAMT = 'ZGBTF2'
237 INFOT = 1
238 CALL ZGBTF2( -1, 0, 0, 0, A, 1, IP, INFO )
239 CALL CHKXER( 'ZGBTF2', INFOT, NOUT, LERR, OK )
240 INFOT = 2
241 CALL ZGBTF2( 0, -1, 0, 0, A, 1, IP, INFO )
242 CALL CHKXER( 'ZGBTF2', INFOT, NOUT, LERR, OK )
243 INFOT = 3
244 CALL ZGBTF2( 1, 1, -1, 0, A, 1, IP, INFO )
245 CALL CHKXER( 'ZGBTF2', INFOT, NOUT, LERR, OK )
246 INFOT = 4
247 CALL ZGBTF2( 1, 1, 0, -1, A, 1, IP, INFO )
248 CALL CHKXER( 'ZGBTF2', INFOT, NOUT, LERR, OK )
249 INFOT = 6
250 CALL ZGBTF2( 2, 2, 1, 1, A, 3, IP, INFO )
251 CALL CHKXER( 'ZGBTF2', INFOT, NOUT, LERR, OK )
252 *
253 * ZGBTRS
254 *
255 SRNAMT = 'ZGBTRS'
256 INFOT = 1
257 CALL ZGBTRS( '/', 0, 0, 0, 1, A, 1, IP, B, 1, INFO )
258 CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
259 INFOT = 2
260 CALL ZGBTRS( 'N', -1, 0, 0, 1, A, 1, IP, B, 1, INFO )
261 CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
262 INFOT = 3
263 CALL ZGBTRS( 'N', 1, -1, 0, 1, A, 1, IP, B, 1, INFO )
264 CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
265 INFOT = 4
266 CALL ZGBTRS( 'N', 1, 0, -1, 1, A, 1, IP, B, 1, INFO )
267 CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
268 INFOT = 5
269 CALL ZGBTRS( 'N', 1, 0, 0, -1, A, 1, IP, B, 1, INFO )
270 CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
271 INFOT = 7
272 CALL ZGBTRS( 'N', 2, 1, 1, 1, A, 3, IP, B, 2, INFO )
273 CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
274 INFOT = 10
275 CALL ZGBTRS( 'N', 2, 0, 0, 1, A, 1, IP, B, 1, INFO )
276 CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
277 *
278 * ZGBRFS
279 *
280 SRNAMT = 'ZGBRFS'
281 INFOT = 1
282 CALL ZGBRFS( '/', 0, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
283 $ R2, W, R, INFO )
284 CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
285 INFOT = 2
286 CALL ZGBRFS( 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
287 $ R2, W, R, INFO )
288 CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
289 INFOT = 3
290 CALL ZGBRFS( 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
291 $ R2, W, R, INFO )
292 CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
293 INFOT = 4
294 CALL ZGBRFS( 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
295 $ R2, W, R, INFO )
296 CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
297 INFOT = 5
298 CALL ZGBRFS( 'N', 1, 0, 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1,
299 $ R2, W, R, INFO )
300 CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
301 INFOT = 7
302 CALL ZGBRFS( 'N', 2, 1, 1, 1, A, 2, AF, 4, IP, B, 2, X, 2, R1,
303 $ R2, W, R, INFO )
304 CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
305 INFOT = 9
306 CALL ZGBRFS( 'N', 2, 1, 1, 1, A, 3, AF, 3, IP, B, 2, X, 2, R1,
307 $ R2, W, R, INFO )
308 CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
309 INFOT = 12
310 CALL ZGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 1, X, 2, R1,
311 $ R2, W, R, INFO )
312 CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
313 INFOT = 14
314 CALL ZGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 2, X, 1, R1,
315 $ R2, W, R, INFO )
316 CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
317 *
318 * ZGBCON
319 *
320 SRNAMT = 'ZGBCON'
321 INFOT = 1
322 CALL ZGBCON( '/', 0, 0, 0, A, 1, IP, ANRM, RCOND, W, R, INFO )
323 CALL CHKXER( 'ZGBCON', INFOT, NOUT, LERR, OK )
324 INFOT = 2
325 CALL ZGBCON( '1', -1, 0, 0, A, 1, IP, ANRM, RCOND, W, R, INFO )
326 CALL CHKXER( 'ZGBCON', INFOT, NOUT, LERR, OK )
327 INFOT = 3
328 CALL ZGBCON( '1', 1, -1, 0, A, 1, IP, ANRM, RCOND, W, R, INFO )
329 CALL CHKXER( 'ZGBCON', INFOT, NOUT, LERR, OK )
330 INFOT = 4
331 CALL ZGBCON( '1', 1, 0, -1, A, 1, IP, ANRM, RCOND, W, R, INFO )
332 CALL CHKXER( 'ZGBCON', INFOT, NOUT, LERR, OK )
333 INFOT = 6
334 CALL ZGBCON( '1', 2, 1, 1, A, 3, IP, ANRM, RCOND, W, R, INFO )
335 CALL CHKXER( 'ZGBCON', INFOT, NOUT, LERR, OK )
336 *
337 * ZGBEQU
338 *
339 SRNAMT = 'ZGBEQU'
340 INFOT = 1
341 CALL ZGBEQU( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
342 $ INFO )
343 CALL CHKXER( 'ZGBEQU', INFOT, NOUT, LERR, OK )
344 INFOT = 2
345 CALL ZGBEQU( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
346 $ INFO )
347 CALL CHKXER( 'ZGBEQU', INFOT, NOUT, LERR, OK )
348 INFOT = 3
349 CALL ZGBEQU( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
350 $ INFO )
351 CALL CHKXER( 'ZGBEQU', INFOT, NOUT, LERR, OK )
352 INFOT = 4
353 CALL ZGBEQU( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM,
354 $ INFO )
355 CALL CHKXER( 'ZGBEQU', INFOT, NOUT, LERR, OK )
356 INFOT = 6
357 CALL ZGBEQU( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM,
358 $ INFO )
359 CALL CHKXER( 'ZGBEQU', INFOT, NOUT, LERR, OK )
360 END IF
361 *
362 * Print a summary line.
363 *
364 CALL ALAESM( PATH, OK, NOUT )
365 *
366 RETURN
367 *
368 * End of ZERRGE
369 *
370 END