From a13c3737894510731ffbad3799799e9d1ba87aa5 Mon Sep 17 00:00:00 2001 From: Dmitry Baksheev Date: Tue, 9 Feb 2016 16:12:36 +0700 Subject: [PATCH] ?TGSEN(IJOB=0,...,LWORK=-1...) should not access array SELECT See http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=13&t=4902 --- SRC/ctgsen.f | 2 ++ SRC/dtgsen.f | 2 ++ SRC/stgsen.f | 2 ++ SRC/ztgsen.f | 2 ++ 4 files changed, 8 insertions(+) diff --git a/SRC/ctgsen.f b/SRC/ctgsen.f index 4df4ab7..332a767 100644 --- a/SRC/ctgsen.f +++ b/SRC/ctgsen.f @@ -588,6 +588,7 @@ c * subspaces. * M = 0 + IF( .NOT.LQUERY .OR. IJOB.NE.0 ) THEN DO 10 K = 1, N ALPHA( K ) = A( K, K ) BETA( K ) = B( K, K ) @@ -599,6 +600,7 @@ c $ M = M + 1 END IF 10 CONTINUE + END IF * IF( IJOB.EQ.1 .OR. IJOB.EQ.2 .OR. IJOB.EQ.4 ) THEN LWMIN = MAX( 1, 2*M*(N-M) ) diff --git a/SRC/dtgsen.f b/SRC/dtgsen.f index 7b50fa6..dfafc23 100644 --- a/SRC/dtgsen.f +++ b/SRC/dtgsen.f @@ -593,6 +593,7 @@ c * M = 0 PAIR = .FALSE. + IF( .NOT.LQUERY .OR. IJOB.NE.0 ) THEN DO 10 K = 1, N IF( PAIR ) THEN PAIR = .FALSE. @@ -612,6 +613,7 @@ c END IF END IF 10 CONTINUE + END IF * IF( IJOB.EQ.1 .OR. IJOB.EQ.2 .OR. IJOB.EQ.4 ) THEN LWMIN = MAX( 1, 4*N+16, 2*M*( N-M ) ) diff --git a/SRC/stgsen.f b/SRC/stgsen.f index f736647..ee860e6 100644 --- a/SRC/stgsen.f +++ b/SRC/stgsen.f @@ -588,6 +588,7 @@ c * M = 0 PAIR = .FALSE. + IF( .NOT.LQUERY .OR. IJOB.NE.0 ) THEN DO 10 K = 1, N IF( PAIR ) THEN PAIR = .FALSE. @@ -607,6 +608,7 @@ c END IF END IF 10 CONTINUE + END IF * IF( IJOB.EQ.1 .OR. IJOB.EQ.2 .OR. IJOB.EQ.4 ) THEN LWMIN = MAX( 1, 4*N+16, 2*M*(N-M) ) diff --git a/SRC/ztgsen.f b/SRC/ztgsen.f index e91b5f9..cc23a88 100644 --- a/SRC/ztgsen.f +++ b/SRC/ztgsen.f @@ -584,6 +584,7 @@ c * subspaces. * M = 0 + IF( .NOT.LQUERY .OR. IJOB.NE.0 ) THEN DO 10 K = 1, N ALPHA( K ) = A( K, K ) BETA( K ) = B( K, K ) @@ -595,6 +596,7 @@ c $ M = M + 1 END IF 10 CONTINUE + END IF * IF( IJOB.EQ.1 .OR. IJOB.EQ.2 .OR. IJOB.EQ.4 ) THEN LWMIN = MAX( 1, 2*M*( N-M ) ) -- 2.6.3