1 SUBROUTINE ZERRQR( PATH, NUNIT )
2 *
3 * -- LAPACK test routine ((version 3.3.0)) --
4 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5 * November 2010
6 *
7 * .. Scalar Arguments ..
8 CHARACTER*3 PATH
9 INTEGER NUNIT
10 * ..
11 *
12 * Purpose
13 * =======
14 *
15 * ZERRQR tests the error exits for the COMPLEX*16 routines
16 * that use the QR decomposition of a general matrix.
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 = 2 )
32 * ..
33 * .. Local Scalars ..
34 INTEGER I, INFO, J
35 * ..
36 * .. Local Arrays ..
37 COMPLEX*16 A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
38 $ W( NMAX ), X( NMAX )
39 * ..
40 * .. External Subroutines ..
41 EXTERNAL ALAESM, CHKXER, ZGEQR2, ZGEQR2P, ZGEQRF,
42 $ ZGEQRFP, ZGEQRS, ZUNG2R, ZUNGQR, ZUNM2R,
43 $ ZUNMQR
44 * ..
45 * .. Scalars in Common ..
46 LOGICAL LERR, OK
47 CHARACTER*32 SRNAMT
48 INTEGER INFOT, NOUT
49 * ..
50 * .. Common blocks ..
51 COMMON / INFOC / INFOT, NOUT, OK, LERR
52 COMMON / SRNAMC / SRNAMT
53 * ..
54 * .. Intrinsic Functions ..
55 INTRINSIC DBLE, DCMPLX
56 * ..
57 * .. Executable Statements ..
58 *
59 NOUT = NUNIT
60 WRITE( NOUT, FMT = * )
61 *
62 * Set the variables to innocuous values.
63 *
64 DO 20 J = 1, NMAX
65 DO 10 I = 1, NMAX
66 A( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
67 $ -1.D0 / DBLE( I+J ) )
68 AF( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
69 $ -1.D0 / DBLE( I+J ) )
70 10 CONTINUE
71 B( J ) = 0.D0
72 W( J ) = 0.D0
73 X( J ) = 0.D0
74 20 CONTINUE
75 OK = .TRUE.
76 *
77 * Error exits for QR factorization
78 *
79 * ZGEQRF
80 *
81 SRNAMT = 'ZGEQRF'
82 INFOT = 1
83 CALL ZGEQRF( -1, 0, A, 1, B, W, 1, INFO )
84 CALL CHKXER( 'ZGEQRF', INFOT, NOUT, LERR, OK )
85 INFOT = 2
86 CALL ZGEQRF( 0, -1, A, 1, B, W, 1, INFO )
87 CALL CHKXER( 'ZGEQRF', INFOT, NOUT, LERR, OK )
88 INFOT = 4
89 CALL ZGEQRF( 2, 1, A, 1, B, W, 1, INFO )
90 CALL CHKXER( 'ZGEQRF', INFOT, NOUT, LERR, OK )
91 INFOT = 7
92 CALL ZGEQRF( 1, 2, A, 1, B, W, 1, INFO )
93 CALL CHKXER( 'ZGEQRF', INFOT, NOUT, LERR, OK )
94 *
95 * ZGEQRFP
96 *
97 SRNAMT = 'ZGEQRFP'
98 INFOT = 1
99 CALL ZGEQRFP( -1, 0, A, 1, B, W, 1, INFO )
100 CALL CHKXER( 'ZGEQRFP', INFOT, NOUT, LERR, OK )
101 INFOT = 2
102 CALL ZGEQRFP( 0, -1, A, 1, B, W, 1, INFO )
103 CALL CHKXER( 'ZGEQRFP', INFOT, NOUT, LERR, OK )
104 INFOT = 4
105 CALL ZGEQRFP( 2, 1, A, 1, B, W, 1, INFO )
106 CALL CHKXER( 'ZGEQRFP', INFOT, NOUT, LERR, OK )
107 INFOT = 7
108 CALL ZGEQRFP( 1, 2, A, 1, B, W, 1, INFO )
109 CALL CHKXER( 'ZGEQRFP', INFOT, NOUT, LERR, OK )
110 *
111 * ZGEQR2
112 *
113 SRNAMT = 'ZGEQR2'
114 INFOT = 1
115 CALL ZGEQR2( -1, 0, A, 1, B, W, INFO )
116 CALL CHKXER( 'ZGEQR2', INFOT, NOUT, LERR, OK )
117 INFOT = 2
118 CALL ZGEQR2( 0, -1, A, 1, B, W, INFO )
119 CALL CHKXER( 'ZGEQR2', INFOT, NOUT, LERR, OK )
120 INFOT = 4
121 CALL ZGEQR2( 2, 1, A, 1, B, W, INFO )
122 CALL CHKXER( 'ZGEQR2', INFOT, NOUT, LERR, OK )
123 *
124 * ZGEQR2P
125 *
126 SRNAMT = 'ZGEQR2P'
127 INFOT = 1
128 CALL ZGEQR2P( -1, 0, A, 1, B, W, INFO )
129 CALL CHKXER( 'ZGEQR2P', INFOT, NOUT, LERR, OK )
130 INFOT = 2
131 CALL ZGEQR2P( 0, -1, A, 1, B, W, INFO )
132 CALL CHKXER( 'ZGEQR2P', INFOT, NOUT, LERR, OK )
133 INFOT = 4
134 CALL ZGEQR2P( 2, 1, A, 1, B, W, INFO )
135 CALL CHKXER( 'ZGEQR2P', INFOT, NOUT, LERR, OK )
136 *
137 * ZGEQRS
138 *
139 SRNAMT = 'ZGEQRS'
140 INFOT = 1
141 CALL ZGEQRS( -1, 0, 0, A, 1, X, B, 1, W, 1, INFO )
142 CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
143 INFOT = 2
144 CALL ZGEQRS( 0, -1, 0, A, 1, X, B, 1, W, 1, INFO )
145 CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
146 INFOT = 2
147 CALL ZGEQRS( 1, 2, 0, A, 2, X, B, 2, W, 1, INFO )
148 CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
149 INFOT = 3
150 CALL ZGEQRS( 0, 0, -1, A, 1, X, B, 1, W, 1, INFO )
151 CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
152 INFOT = 5
153 CALL ZGEQRS( 2, 1, 0, A, 1, X, B, 2, W, 1, INFO )
154 CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
155 INFOT = 8
156 CALL ZGEQRS( 2, 1, 0, A, 2, X, B, 1, W, 1, INFO )
157 CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
158 INFOT = 10
159 CALL ZGEQRS( 1, 1, 2, A, 1, X, B, 1, W, 1, INFO )
160 CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
161 *
162 * ZUNGQR
163 *
164 SRNAMT = 'ZUNGQR'
165 INFOT = 1
166 CALL ZUNGQR( -1, 0, 0, A, 1, X, W, 1, INFO )
167 CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
168 INFOT = 2
169 CALL ZUNGQR( 0, -1, 0, A, 1, X, W, 1, INFO )
170 CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
171 INFOT = 2
172 CALL ZUNGQR( 1, 2, 0, A, 1, X, W, 2, INFO )
173 CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
174 INFOT = 3
175 CALL ZUNGQR( 0, 0, -1, A, 1, X, W, 1, INFO )
176 CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
177 INFOT = 3
178 CALL ZUNGQR( 1, 1, 2, A, 1, X, W, 1, INFO )
179 CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
180 INFOT = 5
181 CALL ZUNGQR( 2, 2, 0, A, 1, X, W, 2, INFO )
182 CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
183 INFOT = 8
184 CALL ZUNGQR( 2, 2, 0, A, 2, X, W, 1, INFO )
185 CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
186 *
187 * ZUNG2R
188 *
189 SRNAMT = 'ZUNG2R'
190 INFOT = 1
191 CALL ZUNG2R( -1, 0, 0, A, 1, X, W, INFO )
192 CALL CHKXER( 'ZUNG2R', INFOT, NOUT, LERR, OK )
193 INFOT = 2
194 CALL ZUNG2R( 0, -1, 0, A, 1, X, W, INFO )
195 CALL CHKXER( 'ZUNG2R', INFOT, NOUT, LERR, OK )
196 INFOT = 2
197 CALL ZUNG2R( 1, 2, 0, A, 1, X, W, INFO )
198 CALL CHKXER( 'ZUNG2R', INFOT, NOUT, LERR, OK )
199 INFOT = 3
200 CALL ZUNG2R( 0, 0, -1, A, 1, X, W, INFO )
201 CALL CHKXER( 'ZUNG2R', INFOT, NOUT, LERR, OK )
202 INFOT = 3
203 CALL ZUNG2R( 2, 1, 2, A, 2, X, W, INFO )
204 CALL CHKXER( 'ZUNG2R', INFOT, NOUT, LERR, OK )
205 INFOT = 5
206 CALL ZUNG2R( 2, 1, 0, A, 1, X, W, INFO )
207 CALL CHKXER( 'ZUNG2R', INFOT, NOUT, LERR, OK )
208 *
209 * ZUNMQR
210 *
211 SRNAMT = 'ZUNMQR'
212 INFOT = 1
213 CALL ZUNMQR( '/', 'N', 0, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
214 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
215 INFOT = 2
216 CALL ZUNMQR( 'L', '/', 0, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
217 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
218 INFOT = 3
219 CALL ZUNMQR( 'L', 'N', -1, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
220 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
221 INFOT = 4
222 CALL ZUNMQR( 'L', 'N', 0, -1, 0, A, 1, X, AF, 1, W, 1, INFO )
223 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
224 INFOT = 5
225 CALL ZUNMQR( 'L', 'N', 0, 0, -1, A, 1, X, AF, 1, W, 1, INFO )
226 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
227 INFOT = 5
228 CALL ZUNMQR( 'L', 'N', 0, 1, 1, A, 1, X, AF, 1, W, 1, INFO )
229 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
230 INFOT = 5
231 CALL ZUNMQR( 'R', 'N', 1, 0, 1, A, 1, X, AF, 1, W, 1, INFO )
232 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
233 INFOT = 7
234 CALL ZUNMQR( 'L', 'N', 2, 1, 0, A, 1, X, AF, 2, W, 1, INFO )
235 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
236 INFOT = 7
237 CALL ZUNMQR( 'R', 'N', 1, 2, 0, A, 1, X, AF, 1, W, 1, INFO )
238 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
239 INFOT = 10
240 CALL ZUNMQR( 'L', 'N', 2, 1, 0, A, 2, X, AF, 1, W, 1, INFO )
241 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
242 INFOT = 12
243 CALL ZUNMQR( 'L', 'N', 1, 2, 0, A, 1, X, AF, 1, W, 1, INFO )
244 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
245 INFOT = 12
246 CALL ZUNMQR( 'R', 'N', 2, 1, 0, A, 1, X, AF, 2, W, 1, INFO )
247 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
248 *
249 * ZUNM2R
250 *
251 SRNAMT = 'ZUNM2R'
252 INFOT = 1
253 CALL ZUNM2R( '/', 'N', 0, 0, 0, A, 1, X, AF, 1, W, INFO )
254 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
255 INFOT = 2
256 CALL ZUNM2R( 'L', '/', 0, 0, 0, A, 1, X, AF, 1, W, INFO )
257 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
258 INFOT = 3
259 CALL ZUNM2R( 'L', 'N', -1, 0, 0, A, 1, X, AF, 1, W, INFO )
260 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
261 INFOT = 4
262 CALL ZUNM2R( 'L', 'N', 0, -1, 0, A, 1, X, AF, 1, W, INFO )
263 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
264 INFOT = 5
265 CALL ZUNM2R( 'L', 'N', 0, 0, -1, A, 1, X, AF, 1, W, INFO )
266 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
267 INFOT = 5
268 CALL ZUNM2R( 'L', 'N', 0, 1, 1, A, 1, X, AF, 1, W, INFO )
269 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
270 INFOT = 5
271 CALL ZUNM2R( 'R', 'N', 1, 0, 1, A, 1, X, AF, 1, W, INFO )
272 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
273 INFOT = 7
274 CALL ZUNM2R( 'L', 'N', 2, 1, 0, A, 1, X, AF, 2, W, INFO )
275 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
276 INFOT = 7
277 CALL ZUNM2R( 'R', 'N', 1, 2, 0, A, 1, X, AF, 1, W, INFO )
278 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
279 INFOT = 10
280 CALL ZUNM2R( 'L', 'N', 2, 1, 0, A, 2, X, AF, 1, W, INFO )
281 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
282 *
283 * Print a summary line.
284 *
285 CALL ALAESM( PATH, OK, NOUT )
286 *
287 RETURN
288 *
289 * End of ZERRQR
290 *
291 END
2 *
3 * -- LAPACK test routine ((version 3.3.0)) --
4 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
5 * November 2010
6 *
7 * .. Scalar Arguments ..
8 CHARACTER*3 PATH
9 INTEGER NUNIT
10 * ..
11 *
12 * Purpose
13 * =======
14 *
15 * ZERRQR tests the error exits for the COMPLEX*16 routines
16 * that use the QR decomposition of a general matrix.
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 = 2 )
32 * ..
33 * .. Local Scalars ..
34 INTEGER I, INFO, J
35 * ..
36 * .. Local Arrays ..
37 COMPLEX*16 A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
38 $ W( NMAX ), X( NMAX )
39 * ..
40 * .. External Subroutines ..
41 EXTERNAL ALAESM, CHKXER, ZGEQR2, ZGEQR2P, ZGEQRF,
42 $ ZGEQRFP, ZGEQRS, ZUNG2R, ZUNGQR, ZUNM2R,
43 $ ZUNMQR
44 * ..
45 * .. Scalars in Common ..
46 LOGICAL LERR, OK
47 CHARACTER*32 SRNAMT
48 INTEGER INFOT, NOUT
49 * ..
50 * .. Common blocks ..
51 COMMON / INFOC / INFOT, NOUT, OK, LERR
52 COMMON / SRNAMC / SRNAMT
53 * ..
54 * .. Intrinsic Functions ..
55 INTRINSIC DBLE, DCMPLX
56 * ..
57 * .. Executable Statements ..
58 *
59 NOUT = NUNIT
60 WRITE( NOUT, FMT = * )
61 *
62 * Set the variables to innocuous values.
63 *
64 DO 20 J = 1, NMAX
65 DO 10 I = 1, NMAX
66 A( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
67 $ -1.D0 / DBLE( I+J ) )
68 AF( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
69 $ -1.D0 / DBLE( I+J ) )
70 10 CONTINUE
71 B( J ) = 0.D0
72 W( J ) = 0.D0
73 X( J ) = 0.D0
74 20 CONTINUE
75 OK = .TRUE.
76 *
77 * Error exits for QR factorization
78 *
79 * ZGEQRF
80 *
81 SRNAMT = 'ZGEQRF'
82 INFOT = 1
83 CALL ZGEQRF( -1, 0, A, 1, B, W, 1, INFO )
84 CALL CHKXER( 'ZGEQRF', INFOT, NOUT, LERR, OK )
85 INFOT = 2
86 CALL ZGEQRF( 0, -1, A, 1, B, W, 1, INFO )
87 CALL CHKXER( 'ZGEQRF', INFOT, NOUT, LERR, OK )
88 INFOT = 4
89 CALL ZGEQRF( 2, 1, A, 1, B, W, 1, INFO )
90 CALL CHKXER( 'ZGEQRF', INFOT, NOUT, LERR, OK )
91 INFOT = 7
92 CALL ZGEQRF( 1, 2, A, 1, B, W, 1, INFO )
93 CALL CHKXER( 'ZGEQRF', INFOT, NOUT, LERR, OK )
94 *
95 * ZGEQRFP
96 *
97 SRNAMT = 'ZGEQRFP'
98 INFOT = 1
99 CALL ZGEQRFP( -1, 0, A, 1, B, W, 1, INFO )
100 CALL CHKXER( 'ZGEQRFP', INFOT, NOUT, LERR, OK )
101 INFOT = 2
102 CALL ZGEQRFP( 0, -1, A, 1, B, W, 1, INFO )
103 CALL CHKXER( 'ZGEQRFP', INFOT, NOUT, LERR, OK )
104 INFOT = 4
105 CALL ZGEQRFP( 2, 1, A, 1, B, W, 1, INFO )
106 CALL CHKXER( 'ZGEQRFP', INFOT, NOUT, LERR, OK )
107 INFOT = 7
108 CALL ZGEQRFP( 1, 2, A, 1, B, W, 1, INFO )
109 CALL CHKXER( 'ZGEQRFP', INFOT, NOUT, LERR, OK )
110 *
111 * ZGEQR2
112 *
113 SRNAMT = 'ZGEQR2'
114 INFOT = 1
115 CALL ZGEQR2( -1, 0, A, 1, B, W, INFO )
116 CALL CHKXER( 'ZGEQR2', INFOT, NOUT, LERR, OK )
117 INFOT = 2
118 CALL ZGEQR2( 0, -1, A, 1, B, W, INFO )
119 CALL CHKXER( 'ZGEQR2', INFOT, NOUT, LERR, OK )
120 INFOT = 4
121 CALL ZGEQR2( 2, 1, A, 1, B, W, INFO )
122 CALL CHKXER( 'ZGEQR2', INFOT, NOUT, LERR, OK )
123 *
124 * ZGEQR2P
125 *
126 SRNAMT = 'ZGEQR2P'
127 INFOT = 1
128 CALL ZGEQR2P( -1, 0, A, 1, B, W, INFO )
129 CALL CHKXER( 'ZGEQR2P', INFOT, NOUT, LERR, OK )
130 INFOT = 2
131 CALL ZGEQR2P( 0, -1, A, 1, B, W, INFO )
132 CALL CHKXER( 'ZGEQR2P', INFOT, NOUT, LERR, OK )
133 INFOT = 4
134 CALL ZGEQR2P( 2, 1, A, 1, B, W, INFO )
135 CALL CHKXER( 'ZGEQR2P', INFOT, NOUT, LERR, OK )
136 *
137 * ZGEQRS
138 *
139 SRNAMT = 'ZGEQRS'
140 INFOT = 1
141 CALL ZGEQRS( -1, 0, 0, A, 1, X, B, 1, W, 1, INFO )
142 CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
143 INFOT = 2
144 CALL ZGEQRS( 0, -1, 0, A, 1, X, B, 1, W, 1, INFO )
145 CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
146 INFOT = 2
147 CALL ZGEQRS( 1, 2, 0, A, 2, X, B, 2, W, 1, INFO )
148 CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
149 INFOT = 3
150 CALL ZGEQRS( 0, 0, -1, A, 1, X, B, 1, W, 1, INFO )
151 CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
152 INFOT = 5
153 CALL ZGEQRS( 2, 1, 0, A, 1, X, B, 2, W, 1, INFO )
154 CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
155 INFOT = 8
156 CALL ZGEQRS( 2, 1, 0, A, 2, X, B, 1, W, 1, INFO )
157 CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
158 INFOT = 10
159 CALL ZGEQRS( 1, 1, 2, A, 1, X, B, 1, W, 1, INFO )
160 CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
161 *
162 * ZUNGQR
163 *
164 SRNAMT = 'ZUNGQR'
165 INFOT = 1
166 CALL ZUNGQR( -1, 0, 0, A, 1, X, W, 1, INFO )
167 CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
168 INFOT = 2
169 CALL ZUNGQR( 0, -1, 0, A, 1, X, W, 1, INFO )
170 CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
171 INFOT = 2
172 CALL ZUNGQR( 1, 2, 0, A, 1, X, W, 2, INFO )
173 CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
174 INFOT = 3
175 CALL ZUNGQR( 0, 0, -1, A, 1, X, W, 1, INFO )
176 CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
177 INFOT = 3
178 CALL ZUNGQR( 1, 1, 2, A, 1, X, W, 1, INFO )
179 CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
180 INFOT = 5
181 CALL ZUNGQR( 2, 2, 0, A, 1, X, W, 2, INFO )
182 CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
183 INFOT = 8
184 CALL ZUNGQR( 2, 2, 0, A, 2, X, W, 1, INFO )
185 CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
186 *
187 * ZUNG2R
188 *
189 SRNAMT = 'ZUNG2R'
190 INFOT = 1
191 CALL ZUNG2R( -1, 0, 0, A, 1, X, W, INFO )
192 CALL CHKXER( 'ZUNG2R', INFOT, NOUT, LERR, OK )
193 INFOT = 2
194 CALL ZUNG2R( 0, -1, 0, A, 1, X, W, INFO )
195 CALL CHKXER( 'ZUNG2R', INFOT, NOUT, LERR, OK )
196 INFOT = 2
197 CALL ZUNG2R( 1, 2, 0, A, 1, X, W, INFO )
198 CALL CHKXER( 'ZUNG2R', INFOT, NOUT, LERR, OK )
199 INFOT = 3
200 CALL ZUNG2R( 0, 0, -1, A, 1, X, W, INFO )
201 CALL CHKXER( 'ZUNG2R', INFOT, NOUT, LERR, OK )
202 INFOT = 3
203 CALL ZUNG2R( 2, 1, 2, A, 2, X, W, INFO )
204 CALL CHKXER( 'ZUNG2R', INFOT, NOUT, LERR, OK )
205 INFOT = 5
206 CALL ZUNG2R( 2, 1, 0, A, 1, X, W, INFO )
207 CALL CHKXER( 'ZUNG2R', INFOT, NOUT, LERR, OK )
208 *
209 * ZUNMQR
210 *
211 SRNAMT = 'ZUNMQR'
212 INFOT = 1
213 CALL ZUNMQR( '/', 'N', 0, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
214 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
215 INFOT = 2
216 CALL ZUNMQR( 'L', '/', 0, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
217 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
218 INFOT = 3
219 CALL ZUNMQR( 'L', 'N', -1, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
220 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
221 INFOT = 4
222 CALL ZUNMQR( 'L', 'N', 0, -1, 0, A, 1, X, AF, 1, W, 1, INFO )
223 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
224 INFOT = 5
225 CALL ZUNMQR( 'L', 'N', 0, 0, -1, A, 1, X, AF, 1, W, 1, INFO )
226 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
227 INFOT = 5
228 CALL ZUNMQR( 'L', 'N', 0, 1, 1, A, 1, X, AF, 1, W, 1, INFO )
229 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
230 INFOT = 5
231 CALL ZUNMQR( 'R', 'N', 1, 0, 1, A, 1, X, AF, 1, W, 1, INFO )
232 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
233 INFOT = 7
234 CALL ZUNMQR( 'L', 'N', 2, 1, 0, A, 1, X, AF, 2, W, 1, INFO )
235 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
236 INFOT = 7
237 CALL ZUNMQR( 'R', 'N', 1, 2, 0, A, 1, X, AF, 1, W, 1, INFO )
238 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
239 INFOT = 10
240 CALL ZUNMQR( 'L', 'N', 2, 1, 0, A, 2, X, AF, 1, W, 1, INFO )
241 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
242 INFOT = 12
243 CALL ZUNMQR( 'L', 'N', 1, 2, 0, A, 1, X, AF, 1, W, 1, INFO )
244 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
245 INFOT = 12
246 CALL ZUNMQR( 'R', 'N', 2, 1, 0, A, 1, X, AF, 2, W, 1, INFO )
247 CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
248 *
249 * ZUNM2R
250 *
251 SRNAMT = 'ZUNM2R'
252 INFOT = 1
253 CALL ZUNM2R( '/', 'N', 0, 0, 0, A, 1, X, AF, 1, W, INFO )
254 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
255 INFOT = 2
256 CALL ZUNM2R( 'L', '/', 0, 0, 0, A, 1, X, AF, 1, W, INFO )
257 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
258 INFOT = 3
259 CALL ZUNM2R( 'L', 'N', -1, 0, 0, A, 1, X, AF, 1, W, INFO )
260 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
261 INFOT = 4
262 CALL ZUNM2R( 'L', 'N', 0, -1, 0, A, 1, X, AF, 1, W, INFO )
263 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
264 INFOT = 5
265 CALL ZUNM2R( 'L', 'N', 0, 0, -1, A, 1, X, AF, 1, W, INFO )
266 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
267 INFOT = 5
268 CALL ZUNM2R( 'L', 'N', 0, 1, 1, A, 1, X, AF, 1, W, INFO )
269 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
270 INFOT = 5
271 CALL ZUNM2R( 'R', 'N', 1, 0, 1, A, 1, X, AF, 1, W, INFO )
272 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
273 INFOT = 7
274 CALL ZUNM2R( 'L', 'N', 2, 1, 0, A, 1, X, AF, 2, W, INFO )
275 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
276 INFOT = 7
277 CALL ZUNM2R( 'R', 'N', 1, 2, 0, A, 1, X, AF, 1, W, INFO )
278 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
279 INFOT = 10
280 CALL ZUNM2R( 'L', 'N', 2, 1, 0, A, 2, X, AF, 1, W, INFO )
281 CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
282 *
283 * Print a summary line.
284 *
285 CALL ALAESM( PATH, OK, NOUT )
286 *
287 RETURN
288 *
289 * End of ZERRQR
290 *
291 END