1 SUBROUTINE CERRQP( 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 * CERRQP tests the error exits for CGEQPF and CGEQP3.
16 *
17 * Arguments
18 * =========
19 *
20 * PATH (input) CHARACTER*3
21 * The LAPACK path name for the routines to be tested.
22 *
23 * NUNIT (input) INTEGER
24 * The unit number for output.
25 *
26 * =====================================================================
27 *
28 * .. Parameters ..
29 INTEGER NMAX
30 PARAMETER ( NMAX = 3 )
31 * ..
32 * .. Local Scalars ..
33 CHARACTER*2 C2
34 INTEGER INFO, LW
35 * ..
36 * .. Local Arrays ..
37 INTEGER IP( NMAX )
38 REAL RW( 2*NMAX )
39 COMPLEX A( NMAX, NMAX ), TAU( NMAX ),
40 $ W( 2*NMAX+3*NMAX )
41 * ..
42 * .. External Functions ..
43 LOGICAL LSAMEN
44 EXTERNAL LSAMEN
45 * ..
46 * .. External Subroutines ..
47 EXTERNAL ALAESM, CGEQP3, CGEQPF, CHKXER
48 * ..
49 * .. Scalars in Common ..
50 LOGICAL LERR, OK
51 CHARACTER*32 SRNAMT
52 INTEGER INFOT, NOUT
53 * ..
54 * .. Common blocks ..
55 COMMON / INFOC / INFOT, NOUT, OK, LERR
56 COMMON / SRNAMC / SRNAMT
57 * ..
58 * .. Intrinsic Functions ..
59 INTRINSIC CMPLX
60 * ..
61 * .. Executable Statements ..
62 *
63 NOUT = NUNIT
64 C2 = PATH( 2: 3 )
65 LW = NMAX + 1
66 A( 1, 1 ) = CMPLX( 1.0E+0, -1.0E+0 )
67 A( 1, 2 ) = CMPLX( 2.0E+0, -2.0E+0 )
68 A( 2, 2 ) = CMPLX( 3.0E+0, -3.0E+0 )
69 A( 2, 1 ) = CMPLX( 4.0E+0, -4.0E+0 )
70 OK = .TRUE.
71 WRITE( NOUT, FMT = * )
72 *
73 * Test error exits for QR factorization with pivoting
74 *
75 IF( LSAMEN( 2, C2, 'QP' ) ) THEN
76 *
77 * CGEQPF
78 *
79 SRNAMT = 'CGEQPF'
80 INFOT = 1
81 CALL CGEQPF( -1, 0, A, 1, IP, TAU, W, RW, INFO )
82 CALL CHKXER( 'CGEQPF', INFOT, NOUT, LERR, OK )
83 INFOT = 2
84 CALL CGEQPF( 0, -1, A, 1, IP, TAU, W, RW, INFO )
85 CALL CHKXER( 'CGEQPF', INFOT, NOUT, LERR, OK )
86 INFOT = 4
87 CALL CGEQPF( 2, 0, A, 1, IP, TAU, W, RW, INFO )
88 CALL CHKXER( 'CGEQPF', INFOT, NOUT, LERR, OK )
89 *
90 * CGEQP3
91 *
92 SRNAMT = 'CGEQP3'
93 INFOT = 1
94 CALL CGEQP3( -1, 0, A, 1, IP, TAU, W, LW, RW, INFO )
95 CALL CHKXER( 'CGEQP3', INFOT, NOUT, LERR, OK )
96 INFOT = 2
97 CALL CGEQP3( 1, -1, A, 1, IP, TAU, W, LW, RW, INFO )
98 CALL CHKXER( 'CGEQP3', INFOT, NOUT, LERR, OK )
99 INFOT = 4
100 CALL CGEQP3( 2, 3, A, 1, IP, TAU, W, LW, RW, INFO )
101 CALL CHKXER( 'CGEQP3', INFOT, NOUT, LERR, OK )
102 INFOT = 8
103 CALL CGEQP3( 2, 2, A, 2, IP, TAU, W, LW-10, RW, INFO )
104 CALL CHKXER( 'CGEQP3', INFOT, NOUT, LERR, OK )
105 END IF
106 *
107 * Print a summary line.
108 *
109 CALL ALAESM( PATH, OK, NOUT )
110 *
111 RETURN
112 *
113 * End of CERRQP
114 *
115 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 * CERRQP tests the error exits for CGEQPF and CGEQP3.
16 *
17 * Arguments
18 * =========
19 *
20 * PATH (input) CHARACTER*3
21 * The LAPACK path name for the routines to be tested.
22 *
23 * NUNIT (input) INTEGER
24 * The unit number for output.
25 *
26 * =====================================================================
27 *
28 * .. Parameters ..
29 INTEGER NMAX
30 PARAMETER ( NMAX = 3 )
31 * ..
32 * .. Local Scalars ..
33 CHARACTER*2 C2
34 INTEGER INFO, LW
35 * ..
36 * .. Local Arrays ..
37 INTEGER IP( NMAX )
38 REAL RW( 2*NMAX )
39 COMPLEX A( NMAX, NMAX ), TAU( NMAX ),
40 $ W( 2*NMAX+3*NMAX )
41 * ..
42 * .. External Functions ..
43 LOGICAL LSAMEN
44 EXTERNAL LSAMEN
45 * ..
46 * .. External Subroutines ..
47 EXTERNAL ALAESM, CGEQP3, CGEQPF, CHKXER
48 * ..
49 * .. Scalars in Common ..
50 LOGICAL LERR, OK
51 CHARACTER*32 SRNAMT
52 INTEGER INFOT, NOUT
53 * ..
54 * .. Common blocks ..
55 COMMON / INFOC / INFOT, NOUT, OK, LERR
56 COMMON / SRNAMC / SRNAMT
57 * ..
58 * .. Intrinsic Functions ..
59 INTRINSIC CMPLX
60 * ..
61 * .. Executable Statements ..
62 *
63 NOUT = NUNIT
64 C2 = PATH( 2: 3 )
65 LW = NMAX + 1
66 A( 1, 1 ) = CMPLX( 1.0E+0, -1.0E+0 )
67 A( 1, 2 ) = CMPLX( 2.0E+0, -2.0E+0 )
68 A( 2, 2 ) = CMPLX( 3.0E+0, -3.0E+0 )
69 A( 2, 1 ) = CMPLX( 4.0E+0, -4.0E+0 )
70 OK = .TRUE.
71 WRITE( NOUT, FMT = * )
72 *
73 * Test error exits for QR factorization with pivoting
74 *
75 IF( LSAMEN( 2, C2, 'QP' ) ) THEN
76 *
77 * CGEQPF
78 *
79 SRNAMT = 'CGEQPF'
80 INFOT = 1
81 CALL CGEQPF( -1, 0, A, 1, IP, TAU, W, RW, INFO )
82 CALL CHKXER( 'CGEQPF', INFOT, NOUT, LERR, OK )
83 INFOT = 2
84 CALL CGEQPF( 0, -1, A, 1, IP, TAU, W, RW, INFO )
85 CALL CHKXER( 'CGEQPF', INFOT, NOUT, LERR, OK )
86 INFOT = 4
87 CALL CGEQPF( 2, 0, A, 1, IP, TAU, W, RW, INFO )
88 CALL CHKXER( 'CGEQPF', INFOT, NOUT, LERR, OK )
89 *
90 * CGEQP3
91 *
92 SRNAMT = 'CGEQP3'
93 INFOT = 1
94 CALL CGEQP3( -1, 0, A, 1, IP, TAU, W, LW, RW, INFO )
95 CALL CHKXER( 'CGEQP3', INFOT, NOUT, LERR, OK )
96 INFOT = 2
97 CALL CGEQP3( 1, -1, A, 1, IP, TAU, W, LW, RW, INFO )
98 CALL CHKXER( 'CGEQP3', INFOT, NOUT, LERR, OK )
99 INFOT = 4
100 CALL CGEQP3( 2, 3, A, 1, IP, TAU, W, LW, RW, INFO )
101 CALL CHKXER( 'CGEQP3', INFOT, NOUT, LERR, OK )
102 INFOT = 8
103 CALL CGEQP3( 2, 2, A, 2, IP, TAU, W, LW-10, RW, INFO )
104 CALL CHKXER( 'CGEQP3', INFOT, NOUT, LERR, OK )
105 END IF
106 *
107 * Print a summary line.
108 *
109 CALL ALAESM( PATH, OK, NOUT )
110 *
111 RETURN
112 *
113 * End of CERRQP
114 *
115 END