LAPACK  3.10.0
LAPACK: Linear Algebra PACKage

◆ cerrql()

subroutine cerrql ( character*3  PATH,
integer  NUNIT 
)

CERRQL

Purpose:
 CERRQL tests the error exits for the COMPLEX 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 cerrql.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 A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
76  $ W( NMAX ), X( NMAX )
77 * ..
78 * .. External Subroutines ..
79  EXTERNAL alaesm, cgeql2, cgeqlf, cgeqls, chkxer, cung2l,
80  $ cungql, cunm2l, cunmql
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 cmplx, real
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 ) = cmplx( 1. / real( i+j ), -1. / real( i+j ) )
104  af( i, j ) = cmplx( 1. / real( i+j ), -1. / real( i+j ) )
105  10 CONTINUE
106  b( j ) = 0.
107  w( j ) = 0.
108  x( j ) = 0.
109  20 CONTINUE
110  ok = .true.
111 *
112 * Error exits for QL factorization
113 *
114 * CGEQLF
115 *
116  srnamt = 'CGEQLF'
117  infot = 1
118  CALL cgeqlf( -1, 0, a, 1, b, w, 1, info )
119  CALL chkxer( 'CGEQLF', infot, nout, lerr, ok )
120  infot = 2
121  CALL cgeqlf( 0, -1, a, 1, b, w, 1, info )
122  CALL chkxer( 'CGEQLF', infot, nout, lerr, ok )
123  infot = 4
124  CALL cgeqlf( 2, 1, a, 1, b, w, 1, info )
125  CALL chkxer( 'CGEQLF', infot, nout, lerr, ok )
126  infot = 7
127  CALL cgeqlf( 1, 2, a, 1, b, w, 1, info )
128  CALL chkxer( 'CGEQLF', infot, nout, lerr, ok )
129 *
130 * CGEQL2
131 *
132  srnamt = 'CGEQL2'
133  infot = 1
134  CALL cgeql2( -1, 0, a, 1, b, w, info )
135  CALL chkxer( 'CGEQL2', infot, nout, lerr, ok )
136  infot = 2
137  CALL cgeql2( 0, -1, a, 1, b, w, info )
138  CALL chkxer( 'CGEQL2', infot, nout, lerr, ok )
139  infot = 4
140  CALL cgeql2( 2, 1, a, 1, b, w, info )
141  CALL chkxer( 'CGEQL2', infot, nout, lerr, ok )
142 *
143 * CGEQLS
144 *
145  srnamt = 'CGEQLS'
146  infot = 1
147  CALL cgeqls( -1, 0, 0, a, 1, x, b, 1, w, 1, info )
148  CALL chkxer( 'CGEQLS', infot, nout, lerr, ok )
149  infot = 2
150  CALL cgeqls( 0, -1, 0, a, 1, x, b, 1, w, 1, info )
151  CALL chkxer( 'CGEQLS', infot, nout, lerr, ok )
152  infot = 2
153  CALL cgeqls( 1, 2, 0, a, 1, x, b, 1, w, 1, info )
154  CALL chkxer( 'CGEQLS', infot, nout, lerr, ok )
155  infot = 3
156  CALL cgeqls( 0, 0, -1, a, 1, x, b, 1, w, 1, info )
157  CALL chkxer( 'CGEQLS', infot, nout, lerr, ok )
158  infot = 5
159  CALL cgeqls( 2, 1, 0, a, 1, x, b, 2, w, 1, info )
160  CALL chkxer( 'CGEQLS', infot, nout, lerr, ok )
161  infot = 8
162  CALL cgeqls( 2, 1, 0, a, 2, x, b, 1, w, 1, info )
163  CALL chkxer( 'CGEQLS', infot, nout, lerr, ok )
164  infot = 10
165  CALL cgeqls( 1, 1, 2, a, 1, x, b, 1, w, 1, info )
166  CALL chkxer( 'CGEQLS', infot, nout, lerr, ok )
167 *
168 * CUNGQL
169 *
170  srnamt = 'CUNGQL'
171  infot = 1
172  CALL cungql( -1, 0, 0, a, 1, x, w, 1, info )
173  CALL chkxer( 'CUNGQL', infot, nout, lerr, ok )
174  infot = 2
175  CALL cungql( 0, -1, 0, a, 1, x, w, 1, info )
176  CALL chkxer( 'CUNGQL', infot, nout, lerr, ok )
177  infot = 2
178  CALL cungql( 1, 2, 0, a, 1, x, w, 2, info )
179  CALL chkxer( 'CUNGQL', infot, nout, lerr, ok )
180  infot = 3
181  CALL cungql( 0, 0, -1, a, 1, x, w, 1, info )
182  CALL chkxer( 'CUNGQL', infot, nout, lerr, ok )
183  infot = 3
184  CALL cungql( 1, 1, 2, a, 1, x, w, 1, info )
185  CALL chkxer( 'CUNGQL', infot, nout, lerr, ok )
186  infot = 5
187  CALL cungql( 2, 1, 0, a, 1, x, w, 1, info )
188  CALL chkxer( 'CUNGQL', infot, nout, lerr, ok )
189  infot = 8
190  CALL cungql( 2, 2, 0, a, 2, x, w, 1, info )
191  CALL chkxer( 'CUNGQL', infot, nout, lerr, ok )
192 *
193 * CUNG2L
194 *
195  srnamt = 'CUNG2L'
196  infot = 1
197  CALL cung2l( -1, 0, 0, a, 1, x, w, info )
198  CALL chkxer( 'CUNG2L', infot, nout, lerr, ok )
199  infot = 2
200  CALL cung2l( 0, -1, 0, a, 1, x, w, info )
201  CALL chkxer( 'CUNG2L', infot, nout, lerr, ok )
202  infot = 2
203  CALL cung2l( 1, 2, 0, a, 1, x, w, info )
204  CALL chkxer( 'CUNG2L', infot, nout, lerr, ok )
205  infot = 3
206  CALL cung2l( 0, 0, -1, a, 1, x, w, info )
207  CALL chkxer( 'CUNG2L', infot, nout, lerr, ok )
208  infot = 3
209  CALL cung2l( 2, 1, 2, a, 2, x, w, info )
210  CALL chkxer( 'CUNG2L', infot, nout, lerr, ok )
211  infot = 5
212  CALL cung2l( 2, 1, 0, a, 1, x, w, info )
213  CALL chkxer( 'CUNG2L', infot, nout, lerr, ok )
214 *
215 * CUNMQL
216 *
217  srnamt = 'CUNMQL'
218  infot = 1
219  CALL cunmql( '/', 'N', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
220  CALL chkxer( 'CUNMQL', infot, nout, lerr, ok )
221  infot = 2
222  CALL cunmql( 'L', '/', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
223  CALL chkxer( 'CUNMQL', infot, nout, lerr, ok )
224  infot = 3
225  CALL cunmql( 'L', 'N', -1, 0, 0, a, 1, x, af, 1, w, 1, info )
226  CALL chkxer( 'CUNMQL', infot, nout, lerr, ok )
227  infot = 4
228  CALL cunmql( 'L', 'N', 0, -1, 0, a, 1, x, af, 1, w, 1, info )
229  CALL chkxer( 'CUNMQL', infot, nout, lerr, ok )
230  infot = 5
231  CALL cunmql( 'L', 'N', 0, 0, -1, a, 1, x, af, 1, w, 1, info )
232  CALL chkxer( 'CUNMQL', infot, nout, lerr, ok )
233  infot = 5
234  CALL cunmql( 'L', 'N', 0, 1, 1, a, 1, x, af, 1, w, 1, info )
235  CALL chkxer( 'CUNMQL', infot, nout, lerr, ok )
236  infot = 5
237  CALL cunmql( 'R', 'N', 1, 0, 1, a, 1, x, af, 1, w, 1, info )
238  CALL chkxer( 'CUNMQL', infot, nout, lerr, ok )
239  infot = 7
240  CALL cunmql( 'L', 'N', 2, 1, 0, a, 1, x, af, 2, w, 1, info )
241  CALL chkxer( 'CUNMQL', infot, nout, lerr, ok )
242  infot = 7
243  CALL cunmql( 'R', 'N', 1, 2, 0, a, 1, x, af, 1, w, 1, info )
244  CALL chkxer( 'CUNMQL', infot, nout, lerr, ok )
245  infot = 10
246  CALL cunmql( 'L', 'N', 2, 1, 0, a, 2, x, af, 1, w, 1, info )
247  CALL chkxer( 'CUNMQL', infot, nout, lerr, ok )
248  infot = 12
249  CALL cunmql( 'L', 'N', 1, 2, 0, a, 1, x, af, 1, w, 1, info )
250  CALL chkxer( 'CUNMQL', infot, nout, lerr, ok )
251  infot = 12
252  CALL cunmql( 'R', 'N', 2, 1, 0, a, 1, x, af, 2, w, 1, info )
253  CALL chkxer( 'CUNMQL', infot, nout, lerr, ok )
254 *
255 * CUNM2L
256 *
257  srnamt = 'CUNM2L'
258  infot = 1
259  CALL cunm2l( '/', 'N', 0, 0, 0, a, 1, x, af, 1, w, info )
260  CALL chkxer( 'CUNM2L', infot, nout, lerr, ok )
261  infot = 2
262  CALL cunm2l( 'L', '/', 0, 0, 0, a, 1, x, af, 1, w, info )
263  CALL chkxer( 'CUNM2L', infot, nout, lerr, ok )
264  infot = 3
265  CALL cunm2l( 'L', 'N', -1, 0, 0, a, 1, x, af, 1, w, info )
266  CALL chkxer( 'CUNM2L', infot, nout, lerr, ok )
267  infot = 4
268  CALL cunm2l( 'L', 'N', 0, -1, 0, a, 1, x, af, 1, w, info )
269  CALL chkxer( 'CUNM2L', infot, nout, lerr, ok )
270  infot = 5
271  CALL cunm2l( 'L', 'N', 0, 0, -1, a, 1, x, af, 1, w, info )
272  CALL chkxer( 'CUNM2L', infot, nout, lerr, ok )
273  infot = 5
274  CALL cunm2l( 'L', 'N', 0, 1, 1, a, 1, x, af, 1, w, info )
275  CALL chkxer( 'CUNM2L', infot, nout, lerr, ok )
276  infot = 5
277  CALL cunm2l( 'R', 'N', 1, 0, 1, a, 1, x, af, 1, w, info )
278  CALL chkxer( 'CUNM2L', infot, nout, lerr, ok )
279  infot = 7
280  CALL cunm2l( 'L', 'N', 2, 1, 0, a, 1, x, af, 2, w, info )
281  CALL chkxer( 'CUNM2L', infot, nout, lerr, ok )
282  infot = 7
283  CALL cunm2l( 'R', 'N', 1, 2, 0, a, 1, x, af, 1, w, info )
284  CALL chkxer( 'CUNM2L', infot, nout, lerr, ok )
285  infot = 10
286  CALL cunm2l( 'L', 'N', 2, 1, 0, a, 2, x, af, 1, w, info )
287  CALL chkxer( 'CUNM2L', infot, nout, lerr, ok )
288 *
289 * Print a summary line.
290 *
291  CALL alaesm( path, ok, nout )
292 *
293  RETURN
294 *
295 * End of CERRQL
296 *
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
Definition: cblat2.f:3196
subroutine alaesm(PATH, OK, NOUT)
ALAESM
Definition: alaesm.f:63
subroutine cgeqls(M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
CGEQLS
Definition: cgeqls.f:122
subroutine cgeqlf(M, N, A, LDA, TAU, WORK, LWORK, INFO)
CGEQLF
Definition: cgeqlf.f:138
subroutine cgeql2(M, N, A, LDA, TAU, WORK, INFO)
CGEQL2 computes the QL factorization of a general rectangular matrix using an unblocked algorithm.
Definition: cgeql2.f:123
subroutine cunm2l(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, INFO)
CUNM2L multiplies a general matrix by the unitary matrix from a QL factorization determined by cgeqlf...
Definition: cunm2l.f:159
subroutine cunmql(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
CUNMQL
Definition: cunmql.f:168
subroutine cung2l(M, N, K, A, LDA, TAU, WORK, INFO)
CUNG2L generates all or part of the unitary matrix Q from a QL factorization determined by cgeqlf (un...
Definition: cung2l.f:114
subroutine cungql(M, N, K, A, LDA, TAU, WORK, LWORK, INFO)
CUNGQL
Definition: cungql.f:128
Here is the call graph for this function:
Here is the caller graph for this function: