LAPACK  3.10.0
LAPACK: Linear Algebra PACKage

◆ zerrql()

subroutine zerrql ( character*3  PATH,
integer  NUNIT 
)

ZERRQL

Purpose:
 ZERRQL tests the error exits for the COMPLEX*16 routines
 that use the QL decomposition of a general matrix.
Parameters
[in]PATH
          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.
[in]NUNIT
          NUNIT is INTEGER
          The unit number for output.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.

Definition at line 54 of file zerrql.f.

55 *
56 * -- LAPACK test routine --
57 * -- LAPACK is a software package provided by Univ. of Tennessee, --
58 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
59 *
60 * .. Scalar Arguments ..
61  CHARACTER*3 PATH
62  INTEGER NUNIT
63 * ..
64 *
65 * =====================================================================
66 *
67 * .. Parameters ..
68  INTEGER NMAX
69  parameter( nmax = 2 )
70 * ..
71 * .. Local Scalars ..
72  INTEGER I, INFO, J
73 * ..
74 * .. Local Arrays ..
75  COMPLEX*16 A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
76  $ W( NMAX ), X( NMAX )
77 * ..
78 * .. External Subroutines ..
79  EXTERNAL alaesm, chkxer, zgeql2, zgeqlf, zgeqls, zung2l,
80  $ zungql, zunm2l, zunmql
81 * ..
82 * .. Scalars in Common ..
83  LOGICAL LERR, OK
84  CHARACTER*32 SRNAMT
85  INTEGER INFOT, NOUT
86 * ..
87 * .. Common blocks ..
88  COMMON / infoc / infot, nout, ok, lerr
89  COMMON / srnamc / srnamt
90 * ..
91 * .. Intrinsic Functions ..
92  INTRINSIC dble, dcmplx
93 * ..
94 * .. Executable Statements ..
95 *
96  nout = nunit
97  WRITE( nout, fmt = * )
98 *
99 * Set the variables to innocuous values.
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 * Error exits for QL factorization
115 *
116 * ZGEQLF
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 * ZGEQL2
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 * ZGEQLS
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 * ZUNGQL
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 * ZUNG2L
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 * ZUNMQL
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 * ZUNM2L
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 * Print a summary line.
292 *
293  CALL alaesm( path, ok, nout )
294 *
295  RETURN
296 *
297 * End of ZERRQL
298 *
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
Definition: cblat2.f:3196
subroutine alaesm(PATH, OK, NOUT)
ALAESM
Definition: alaesm.f:63
subroutine zgeqls(M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
ZGEQLS
Definition: zgeqls.f:122
subroutine zgeqlf(M, N, A, LDA, TAU, WORK, LWORK, INFO)
ZGEQLF
Definition: zgeqlf.f:138
subroutine zgeql2(M, N, A, LDA, TAU, WORK, INFO)
ZGEQL2 computes the QL factorization of a general rectangular matrix using an unblocked algorithm.
Definition: zgeql2.f:123
subroutine zunmql(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
ZUNMQL
Definition: zunmql.f:167
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...
Definition: zunm2l.f:159
subroutine zungql(M, N, K, A, LDA, TAU, WORK, LWORK, INFO)
ZUNGQL
Definition: zungql.f:128
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...
Definition: zung2l.f:114
Here is the call graph for this function:
Here is the caller graph for this function: