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*> \date December 2016
65*
66*> \ingroup complex16_lin
67*
68*  =====================================================================
69      LOGICAL FUNCTION ZGENND (M, N, A, LDA)
70*
71*  -- LAPACK test routine (version 3.7.0) --
72*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
73*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
74*     December 2016
75*
76*     .. Scalar Arguments ..
77      INTEGER M, N, LDA
78*     ..
79*     .. Array Arguments ..
80      COMPLEX*16 A( LDA, * )
81*     ..
82*
83*  =====================================================================
84*
85*     .. Parameters ..
86      REAL               ZERO
87      PARAMETER          ( ZERO = 0.0E0 )
88*     ..
89*     .. Local Scalars ..
90      INTEGER I, K
91      COMPLEX*16 AII
92*     ..
93*     .. Intrinsics ..
94      INTRINSIC MIN, DBLE, DIMAG
95*     ..
96*     .. Executable Statements ..
97      K = MIN( M, N )
98      DO I = 1, K
99         AII = A( I, I )
100         IF( DBLE( AII ).LT.ZERO.OR.DIMAG( AII ).NE.ZERO ) THEN
101            ZGENND = .FALSE.
102            RETURN
103         END IF
104      END DO
105      ZGENND = .TRUE.
106      RETURN
107      END
108