17faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \brief \b ILADLR
27faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
37faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  =========== DOCUMENTATION ===========
47faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
57faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* Online html documentation available at
67faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*            http://www.netlib.org/lapack/explore-html/
77faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
87faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \htmlonly
97faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> Download ILADLR + dependencies
107faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/iladlr.f">
117faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> [TGZ]</a>
127faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/iladlr.f">
137faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> [ZIP]</a>
147faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/iladlr.f">
157faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> [TXT]</a>
167faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \endhtmlonly
177faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
187faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  Definition:
197faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  ===========
207faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
217faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*       INTEGER FUNCTION ILADLR( M, N, A, LDA )
227faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
237faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*       .. Scalar Arguments ..
247faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*       INTEGER            M, N, LDA
257faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*       ..
267faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*       .. Array Arguments ..
277faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*       DOUBLE PRECISION   A( LDA, * )
287faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*       ..
297faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
307faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
317faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \par Purpose:
327faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  =============
337faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>
347faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \verbatim
357faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>
367faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> ILADLR scans A for its last non-zero row.
377faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \endverbatim
387faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
397faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  Arguments:
407faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  ==========
417faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
427faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \param[in] M
437faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \verbatim
447faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          M is INTEGER
457faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          The number of rows of the matrix A.
467faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \endverbatim
477faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>
487faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \param[in] N
497faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \verbatim
507faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          N is INTEGER
517faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          The number of columns of the matrix A.
527faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \endverbatim
537faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>
547faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \param[in] A
557faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \verbatim
567faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          A is DOUBLE PRECISION array, dimension (LDA,N)
577faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          The m by n matrix A.
587faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \endverbatim
597faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>
607faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \param[in] LDA
617faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \verbatim
627faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          LDA is INTEGER
637faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          The leading dimension of the array A. LDA >= max(1,M).
647faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \endverbatim
657faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
667faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  Authors:
677faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  ========
687faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
697faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \author Univ. of Tennessee
707faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \author Univ. of California Berkeley
717faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \author Univ. of Colorado Denver
727faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \author NAG Ltd.
737faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
747faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \date April 2012
757faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
767faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \ingroup auxOTHERauxiliary
777faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
787faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  =====================================================================
797faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      INTEGER FUNCTION ILADLR( M, N, A, LDA )
807faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
817faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  -- LAPACK auxiliary routine (version 3.4.1) --
827faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
837faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
847faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     April 2012
857faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
867faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     .. Scalar Arguments ..
877faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      INTEGER            M, N, LDA
887faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     ..
897faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     .. Array Arguments ..
907faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      DOUBLE PRECISION   A( LDA, * )
917faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     ..
927faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
937faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  =====================================================================
947faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
957faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     .. Parameters ..
967faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      DOUBLE PRECISION ZERO
977faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      PARAMETER ( ZERO = 0.0D+0 )
987faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     ..
997faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     .. Local Scalars ..
1007faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      INTEGER I, J
1017faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     ..
1027faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     .. Executable Statements ..
1037faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
1047faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     Quick test for the common case where one corner is non-zero.
1057faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      IF( M.EQ.0 ) THEN
1067faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         ILADLR = M
1077faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      ELSE IF( A(M, 1).NE.ZERO .OR. A(M, N).NE.ZERO ) THEN
1087faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         ILADLR = M
1097faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      ELSE
1107faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     Scan up each column tracking the last zero row seen.
1117faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         ILADLR = 0
1127faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         DO J = 1, N
1137faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez            I=M
1147faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez            DO WHILE((A(MAX(I,1),J).EQ.ZERO).AND.(I.GE.1))
1157faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez               I=I-1
1167faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez            ENDDO
1177faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez            ILADLR = MAX( ILADLR, I )
1187faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         END DO
1197faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      END IF
1207faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      RETURN
1217faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      END
122