1*> \brief \b ZERRAB
2*
3*  =========== DOCUMENTATION ===========
4*
5* Online html documentation available at
6*            http://www.netlib.org/lapack/explore-html/
7*
8*  Definition:
9*  ===========
10*
11*       SUBROUTINE ZERRAB( NUNIT )
12*
13*       .. Scalar Arguments ..
14*       INTEGER            NUNIT
15*       ..
16*
17*
18*> \par Purpose:
19*  =============
20*>
21*> \verbatim
22*>
23*> DERRAB tests the error exits for ZCGESV.
24*> \endverbatim
25*
26*  Arguments:
27*  ==========
28*
29*> \param[in] NUNIT
30*> \verbatim
31*>          NUNIT is INTEGER
32*>          The unit number for output.
33*> \endverbatim
34*
35*  Authors:
36*  ========
37*
38*> \author Univ. of Tennessee
39*> \author Univ. of California Berkeley
40*> \author Univ. of Colorado Denver
41*> \author NAG Ltd.
42*
43*> \date November 2011
44*
45*> \ingroup complex16_lin
46*
47*  =====================================================================
48      SUBROUTINE ZERRAB( NUNIT )
49*
50*  -- LAPACK test routine (version 3.4.0) --
51*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
52*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
53*     November 2011
54*
55*     .. Scalar Arguments ..
56      INTEGER            NUNIT
57*     ..
58*
59*  =====================================================================
60*
61*     .. Parameters ..
62      INTEGER            NMAX
63      PARAMETER          ( NMAX = 4 )
64*     ..
65*     .. Local Scalars ..
66      INTEGER            I, INFO, ITER, J
67*     ..
68*     .. Local Arrays ..
69      INTEGER            IP( NMAX )
70      COMPLEX*16         A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
71     $                   C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
72     $                   W( 2*NMAX ), X( NMAX )
73      COMPLEX*16         WORK(1)
74      COMPLEX            SWORK(1)
75      DOUBLE PRECISION   RWORK(1)
76*     ..
77*     .. External Functions ..
78*     ..
79*     .. External Subroutines ..
80      EXTERNAL           CHKXER, ZCGESV
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
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 ) = 1.D0 / DBLE( I+J )
104            AF( I, J ) = 1.D0 / DBLE( I+J )
105   10    CONTINUE
106         B( J ) = 0.D0
107         R1( J ) = 0.D0
108         R2( J ) = 0.D0
109         W( J ) = 0.D0
110         X( J ) = 0.D0
111         C( J ) = 0.D0
112         R( J ) = 0.D0
113         IP( J ) = J
114   20 CONTINUE
115      OK = .TRUE.
116*
117      SRNAMT = 'ZCGESV'
118      INFOT = 1
119      CALL ZCGESV(-1,0,A,1,IP,B,1,X,1,WORK,SWORK,RWORK,ITER,INFO)
120      CALL CHKXER( 'ZCGESV', INFOT, NOUT, LERR, OK )
121      INFOT = 2
122      CALL ZCGESV(0,-1,A,1,IP,B,1,X,1,WORK,SWORK,RWORK,ITER,INFO)
123      CALL CHKXER( 'ZCGESV', INFOT, NOUT, LERR, OK )
124      INFOT = 4
125      CALL ZCGESV(2,1,A,1,IP,B,2,X,2,WORK,SWORK,RWORK,ITER,INFO)
126      CALL CHKXER( 'ZCGESV', INFOT, NOUT, LERR, OK )
127      INFOT = 7
128      CALL ZCGESV(2,1,A,2,IP,B,1,X,2,WORK,SWORK,RWORK,ITER,INFO)
129      CALL CHKXER( 'ZCGESV', INFOT, NOUT, LERR, OK )
130      INFOT = 9
131      CALL ZCGESV(2,1,A,2,IP,B,2,X,1,WORK,SWORK,RWORK,ITER,INFO)
132      CALL CHKXER( 'ZCGESV', INFOT, NOUT, LERR, OK )
133*
134*     Print a summary line.
135*
136      IF( OK ) THEN
137         WRITE( NOUT, FMT = 9999 )'ZCGESV'
138      ELSE
139         WRITE( NOUT, FMT = 9998 )'ZCGESV'
140      END IF
141*
142 9999 FORMAT( 1X, A6, ' drivers passed the tests of the error exits' )
143 9998 FORMAT( ' *** ', A6, ' drivers failed the tests of the error ',
144     $      'exits ***' )
145*
146      RETURN
147*
148*     End of ZERRAB
149*
150      END
151