1*> \brief \b ZGENND
2*
3*  =========== DOCUMENTATION ===========
4*
5* Online html documentation available at
6*            http://www.netlib.org/lapack/explore-html/
7*
8*  Definition:
9*  ===========
10*
11*       LOGICAL FUNCTION ZGENND (M, N, A, LDA)
12*
13*       .. Scalar Arguments ..
14*       INTEGER M, N, LDA
15*       ..
16*       .. Array Arguments ..
17*       COMPLEX*16 A( LDA, * )
18*       ..
19*
20*
21*> \par Purpose:
22*  =============
23*>
24*> \verbatim
25*>
26*>    ZGENND tests that its argument has a real, non-negative diagonal.
27*> \endverbatim
28*
29*  Arguments:
30*  ==========
31*
32*> \param[in] M
33*> \verbatim
34*>          M is INTEGER
35*>          The number of rows in A.
36*> \endverbatim
37*>
38*> \param[in] N
39*> \verbatim
40*>          N is INTEGER
41*>          The number of columns in A.
42*> \endverbatim
43*>
44*> \param[in] A
45*> \verbatim
46*>          A is COMPLEX*16 array, dimension (LDA, N)
47*>          The matrix.
48*> \endverbatim
49*>
50*> \param[in] LDA
51*> \verbatim
52*>          LDA is INTEGER
53*>          Leading dimension of A.
54*> \endverbatim
55*
56*  Authors:
57*  ========
58*
59*> \author Univ. of Tennessee
60*> \author Univ. of California Berkeley
61*> \author Univ. of Colorado Denver
62*> \author NAG Ltd.
63*
64*> \ingroup complex16_lin
65*
66*  =====================================================================
67      LOGICAL FUNCTION ZGENND (M, N, A, LDA)
68*
69*  -- LAPACK test routine --
70*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
71*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
72*
73*     .. Scalar Arguments ..
74      INTEGER M, N, LDA
75*     ..
76*     .. Array Arguments ..
77      COMPLEX*16 A( LDA, * )
78*     ..
79*
80*  =====================================================================
81*
82*     .. Parameters ..
83      REAL               ZERO
84      PARAMETER          ( ZERO = 0.0E0 )
85*     ..
86*     .. Local Scalars ..
87      INTEGER I, K
88      COMPLEX*16 AII
89*     ..
90*     .. Intrinsics ..
91      INTRINSIC MIN, DBLE, DIMAG
92*     ..
93*     .. Executable Statements ..
94      K = MIN( M, N )
95      DO I = 1, K
96         AII = A( I, I )
97         IF( DBLE( AII ).LT.ZERO.OR.DIMAG( AII ).NE.ZERO ) THEN
98            ZGENND = .FALSE.
99            RETURN
100         END IF
101      END DO
102      ZGENND = .TRUE.
103      RETURN
104      END
105