55
56
57
58
59
60
61 CHARACTER*3 PATH
62 INTEGER NUNIT
63
64
65
66
67
68 INTEGER NMAX
69 parameter( nmax = 2 )
70
71
72 INTEGER I, INFO, J
73
74
75 COMPLEX*16 A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
76 $ W( NMAX ), X( NMAX )
77
78
81
82
83 LOGICAL LERR, OK
84 CHARACTER*32 SRNAMT
85 INTEGER INFOT, NOUT
86
87
88 COMMON / infoc / infot, nout, ok, lerr
89 COMMON / srnamc / srnamt
90
91
92 INTRINSIC dble, dcmplx
93
94
95
96 nout = nunit
97 WRITE( nout, fmt = * )
98
99
100
101 DO 20 j = 1, nmax
102 DO 10 i = 1, nmax
103 a( i, j ) = dcmplx( 1.d0 / dble( i+j ),
104 $ -1.d0 / dble( i+j ) )
105 af( i, j ) = dcmplx( 1.d0 / dble( i+j ),
106 $ -1.d0 / dble( i+j ) )
107 10 CONTINUE
108 b( j ) = 0.d0
109 w( j ) = 0.d0
110 x( j ) = 0.d0
111 20 CONTINUE
112 ok = .true.
113
114
115
116
117
118 srnamt = 'ZGEQLF'
119 infot = 1
120 CALL zgeqlf( -1, 0, a, 1, b, w, 1, info )
121 CALL chkxer(
'ZGEQLF', infot, nout, lerr, ok )
122 infot = 2
123 CALL zgeqlf( 0, -1, a, 1, b, w, 1, info )
124 CALL chkxer(
'ZGEQLF', infot, nout, lerr, ok )
125 infot = 4
126 CALL zgeqlf( 2, 1, a, 1, b, w, 1, info )
127 CALL chkxer(
'ZGEQLF', infot, nout, lerr, ok )
128 infot = 7
129 CALL zgeqlf( 1, 2, a, 1, b, w, 1, info )
130 CALL chkxer(
'ZGEQLF', infot, nout, lerr, ok )
131
132
133
134 srnamt = 'ZGEQL2'
135 infot = 1
136 CALL zgeql2( -1, 0, a, 1, b, w, info )
137 CALL chkxer(
'ZGEQL2', infot, nout, lerr, ok )
138 infot = 2
139 CALL zgeql2( 0, -1, a, 1, b, w, info )
140 CALL chkxer(
'ZGEQL2', infot, nout, lerr, ok )
141 infot = 4
142 CALL zgeql2( 2, 1, a, 1, b, w, info )
143 CALL chkxer(
'ZGEQL2', infot, nout, lerr, ok )
144
145
146
147 srnamt = 'ZGEQLS'
148 infot = 1
149 CALL zgeqls( -1, 0, 0, a, 1, x, b, 1, w, 1, info )
150 CALL chkxer(
'ZGEQLS', infot, nout, lerr, ok )
151 infot = 2
152 CALL zgeqls( 0, -1, 0, a, 1, x, b, 1, w, 1, info )
153 CALL chkxer(
'ZGEQLS', infot, nout, lerr, ok )
154 infot = 2
155 CALL zgeqls( 1, 2, 0, a, 1, x, b, 1, w, 1, info )
156 CALL chkxer(
'ZGEQLS', infot, nout, lerr, ok )
157 infot = 3
158 CALL zgeqls( 0, 0, -1, a, 1, x, b, 1, w, 1, info )
159 CALL chkxer(
'ZGEQLS', infot, nout, lerr, ok )
160 infot = 5
161 CALL zgeqls( 2, 1, 0, a, 1, x, b, 2, w, 1, info )
162 CALL chkxer(
'ZGEQLS', infot, nout, lerr, ok )
163 infot = 8
164 CALL zgeqls( 2, 1, 0, a, 2, x, b, 1, w, 1, info )
165 CALL chkxer(
'ZGEQLS', infot, nout, lerr, ok )
166 infot = 10
167 CALL zgeqls( 1, 1, 2, a, 1, x, b, 1, w, 1, info )
168 CALL chkxer(
'ZGEQLS', infot, nout, lerr, ok )
169
170
171
172 srnamt = 'ZUNGQL'
173 infot = 1
174 CALL zungql( -1, 0, 0, a, 1, x, w, 1, info )
175 CALL chkxer(
'ZUNGQL', infot, nout, lerr, ok )
176 infot = 2
177 CALL zungql( 0, -1, 0, a, 1, x, w, 1, info )
178 CALL chkxer(
'ZUNGQL', infot, nout, lerr, ok )
179 infot = 2
180 CALL zungql( 1, 2, 0, a, 1, x, w, 2, info )
181 CALL chkxer(
'ZUNGQL', infot, nout, lerr, ok )
182 infot = 3
183 CALL zungql( 0, 0, -1, a, 1, x, w, 1, info )
184 CALL chkxer(
'ZUNGQL', infot, nout, lerr, ok )
185 infot = 3
186 CALL zungql( 1, 1, 2, a, 1, x, w, 1, info )
187 CALL chkxer(
'ZUNGQL', infot, nout, lerr, ok )
188 infot = 5
189 CALL zungql( 2, 1, 0, a, 1, x, w, 1, info )
190 CALL chkxer(
'ZUNGQL', infot, nout, lerr, ok )
191 infot = 8
192 CALL zungql( 2, 2, 0, a, 2, x, w, 1, info )
193 CALL chkxer(
'ZUNGQL', infot, nout, lerr, ok )
194
195
196
197 srnamt = 'ZUNG2L'
198 infot = 1
199 CALL zung2l( -1, 0, 0, a, 1, x, w, info )
200 CALL chkxer(
'ZUNG2L', infot, nout, lerr, ok )
201 infot = 2
202 CALL zung2l( 0, -1, 0, a, 1, x, w, info )
203 CALL chkxer(
'ZUNG2L', infot, nout, lerr, ok )
204 infot = 2
205 CALL zung2l( 1, 2, 0, a, 1, x, w, info )
206 CALL chkxer(
'ZUNG2L', infot, nout, lerr, ok )
207 infot = 3
208 CALL zung2l( 0, 0, -1, a, 1, x, w, info )
209 CALL chkxer(
'ZUNG2L', infot, nout, lerr, ok )
210 infot = 3
211 CALL zung2l( 2, 1, 2, a, 2, x, w, info )
212 CALL chkxer(
'ZUNG2L', infot, nout, lerr, ok )
213 infot = 5
214 CALL zung2l( 2, 1, 0, a, 1, x, w, info )
215 CALL chkxer(
'ZUNG2L', infot, nout, lerr, ok )
216
217
218
219 srnamt = 'ZUNMQL'
220 infot = 1
221 CALL zunmql(
'/',
'N', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
222 CALL chkxer(
'ZUNMQL', infot, nout, lerr, ok )
223 infot = 2
224 CALL zunmql(
'L',
'/', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
225 CALL chkxer(
'ZUNMQL', infot, nout, lerr, ok )
226 infot = 3
227 CALL zunmql(
'L',
'N', -1, 0, 0, a, 1, x, af, 1, w, 1, info )
228 CALL chkxer(
'ZUNMQL', infot, nout, lerr, ok )
229 infot = 4
230 CALL zunmql(
'L',
'N', 0, -1, 0, a, 1, x, af, 1, w, 1, info )
231 CALL chkxer(
'ZUNMQL', infot, nout, lerr, ok )
232 infot = 5
233 CALL zunmql(
'L',
'N', 0, 0, -1, a, 1, x, af, 1, w, 1, info )
234 CALL chkxer(
'ZUNMQL', infot, nout, lerr, ok )
235 infot = 5
236 CALL zunmql(
'L',
'N', 0, 1, 1, a, 1, x, af, 1, w, 1, info )
237 CALL chkxer(
'ZUNMQL', infot, nout, lerr, ok )
238 infot = 5
239 CALL zunmql(
'R',
'N', 1, 0, 1, a, 1, x, af, 1, w, 1, info )
240 CALL chkxer(
'ZUNMQL', infot, nout, lerr, ok )
241 infot = 7
242 CALL zunmql(
'L',
'N', 2, 1, 0, a, 1, x, af, 2, w, 1, info )
243 CALL chkxer(
'ZUNMQL', infot, nout, lerr, ok )
244 infot = 7
245 CALL zunmql(
'R',
'N', 1, 2, 0, a, 1, x, af, 1, w, 1, info )
246 CALL chkxer(
'ZUNMQL', infot, nout, lerr, ok )
247 infot = 10
248 CALL zunmql(
'L',
'N', 2, 1, 0, a, 2, x, af, 1, w, 1, info )
249 CALL chkxer(
'ZUNMQL', infot, nout, lerr, ok )
250 infot = 12
251 CALL zunmql(
'L',
'N', 1, 2, 0, a, 1, x, af, 1, w, 1, info )
252 CALL chkxer(
'ZUNMQL', infot, nout, lerr, ok )
253 infot = 12
254 CALL zunmql(
'R',
'N', 2, 1, 0, a, 1, x, af, 2, w, 1, info )
255 CALL chkxer(
'ZUNMQL', infot, nout, lerr, ok )
256
257
258
259 srnamt = 'ZUNM2L'
260 infot = 1
261 CALL zunm2l(
'/',
'N', 0, 0, 0, a, 1, x, af, 1, w, info )
262 CALL chkxer(
'ZUNM2L', infot, nout, lerr, ok )
263 infot = 2
264 CALL zunm2l(
'L',
'/', 0, 0, 0, a, 1, x, af, 1, w, info )
265 CALL chkxer(
'ZUNM2L', infot, nout, lerr, ok )
266 infot = 3
267 CALL zunm2l(
'L',
'N', -1, 0, 0, a, 1, x, af, 1, w, info )
268 CALL chkxer(
'ZUNM2L', infot, nout, lerr, ok )
269 infot = 4
270 CALL zunm2l(
'L',
'N', 0, -1, 0, a, 1, x, af, 1, w, info )
271 CALL chkxer(
'ZUNM2L', infot, nout, lerr, ok )
272 infot = 5
273 CALL zunm2l(
'L',
'N', 0, 0, -1, a, 1, x, af, 1, w, info )
274 CALL chkxer(
'ZUNM2L', infot, nout, lerr, ok )
275 infot = 5
276 CALL zunm2l(
'L',
'N', 0, 1, 1, a, 1, x, af, 1, w, info )
277 CALL chkxer(
'ZUNM2L', infot, nout, lerr, ok )
278 infot = 5
279 CALL zunm2l(
'R',
'N', 1, 0, 1, a, 1, x, af, 1, w, info )
280 CALL chkxer(
'ZUNM2L', infot, nout, lerr, ok )
281 infot = 7
282 CALL zunm2l(
'L',
'N', 2, 1, 0, a, 1, x, af, 2, w, info )
283 CALL chkxer(
'ZUNM2L', infot, nout, lerr, ok )
284 infot = 7
285 CALL zunm2l(
'R',
'N', 1, 2, 0, a, 1, x, af, 1, w, info )
286 CALL chkxer(
'ZUNM2L', infot, nout, lerr, ok )
287 infot = 10
288 CALL zunm2l(
'L',
'N', 2, 1, 0, a, 2, x, af, 1, w, info )
289 CALL chkxer(
'ZUNM2L', infot, nout, lerr, ok )
290
291
292
293 CALL alaesm( path, ok, nout )
294
295 RETURN
296
297
298
subroutine alaesm(path, ok, nout)
ALAESM
subroutine chkxer(srnamt, infot, nout, lerr, ok)
subroutine zgeql2(m, n, a, lda, tau, work, info)
ZGEQL2 computes the QL factorization of a general rectangular matrix using an unblocked algorithm.
subroutine zgeqlf(m, n, a, lda, tau, work, lwork, info)
ZGEQLF
subroutine zung2l(m, n, k, a, lda, tau, work, info)
ZUNG2L generates all or part of the unitary matrix Q from a QL factorization determined by cgeqlf (un...
subroutine zungql(m, n, k, a, lda, tau, work, lwork, info)
ZUNGQL
subroutine zunm2l(side, trans, m, n, k, a, lda, tau, c, ldc, work, info)
ZUNM2L multiplies a general matrix by the unitary matrix from a QL factorization determined by cgeqlf...
subroutine zunmql(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info)
ZUNMQL
subroutine zgeqls(m, n, nrhs, a, lda, tau, b, ldb, work, lwork, info)
ZGEQLS