--- rpl/lapack/lapack/dggglm.f 2012/12/14 14:22:30 1.12
+++ rpl/lapack/lapack/dggglm.f 2023/08/07 08:38:51 1.19
@@ -1,26 +1,26 @@
-*> \brief DGGEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for GE matrices
+*> \brief \b DGGGLM
*
* =========== DOCUMENTATION ===========
*
-* Online html documentation available at
-* http://www.netlib.org/lapack/explore-html/
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
*
*> \htmlonly
-*> Download DGGGLM + dependencies
-*>
-*> [TGZ]
-*>
-*> [ZIP]
-*>
+*> Download DGGGLM + dependencies
+*>
+*> [TGZ]
+*>
+*> [ZIP]
+*>
*> [TXT]
-*> \endhtmlonly
+*> \endhtmlonly
*
* Definition:
* ===========
*
* SUBROUTINE DGGGLM( N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LWORK,
* INFO )
-*
+*
* .. Scalar Arguments ..
* INTEGER INFO, LDA, LDB, LWORK, M, N, P
* ..
@@ -28,7 +28,7 @@
* DOUBLE PRECISION A( LDA, * ), B( LDB, * ), D( * ), WORK( * ),
* $ X( * ), Y( * )
* ..
-*
+*
*
*> \par Purpose:
* =============
@@ -172,12 +172,10 @@
* Authors:
* ========
*
-*> \author Univ. of Tennessee
-*> \author Univ. of California Berkeley
-*> \author Univ. of Colorado Denver
-*> \author NAG Ltd.
-*
-*> \date November 2011
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
*
*> \ingroup doubleOTHEReigen
*
@@ -185,10 +183,9 @@
SUBROUTINE DGGGLM( N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LWORK,
$ INFO )
*
-* -- LAPACK driver routine (version 3.4.0) --
+* -- LAPACK driver routine --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* November 2011
*
* .. Scalar Arguments ..
INTEGER INFO, LDA, LDB, LWORK, M, N, P
@@ -270,8 +267,15 @@
*
* Quick return if possible
*
- IF( N.EQ.0 )
- $ RETURN
+ IF( N.EQ.0 ) THEN
+ DO I = 1, M
+ X(I) = ZERO
+ END DO
+ DO I = 1, P
+ Y(I) = ZERO
+ END DO
+ RETURN
+ END IF
*
* Compute the GQR factorization of matrices A and B:
*
@@ -284,7 +288,7 @@
*
CALL DGGQRF( N, M, P, A, LDA, WORK, B, LDB, WORK( M+1 ),
$ WORK( M+NP+1 ), LWORK-M-NP, INFO )
- LOPT = WORK( M+NP+1 )
+ LOPT = INT( WORK( M+NP+1 ) )
*
* Update left-hand-side vector d = Q**T*d = ( d1 ) M
* ( d2 ) N-M