fixed
authorlangou <langou@users.noreply.github.com>
Fri, 11 Nov 2011 20:18:50 +0000 (20:18 +0000)
committerlangou <langou@users.noreply.github.com>
Fri, 11 Nov 2011 20:18:50 +0000 (20:18 +0000)
SRC/cungbr.f
SRC/dorgbr.f
SRC/sorgbr.f
SRC/zungbr.f

index a9d36e5..7440aa9 100644 (file)
       END IF
 *
       IF( INFO.EQ.0 ) THEN
+         WORK( 1 ) = 1
          IF( WANTQ ) THEN
             IF( M.GE.K ) THEN
                CALL CUNGQR( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
             ELSE
-               CALL CUNGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK,
-     $                      -1, IINFO )
+               IF( M.GT.1 ) THEN
+                  CALL CUNGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK,
+     $                         -1, IINFO )
+               END IF
             END IF
          ELSE
             IF( K.LT.N ) THEN
                CALL CUNGLQ( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
             ELSE
-               CALL CUNGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK,
-     $                      -1, IINFO )
+               IF( N.GT.1 ) THEN
+                  CALL CUNGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK,
+     $                         -1, IINFO )
+               END IF
             END IF
          END IF
          LWKOPT = WORK( 1 )
index 671f8d7..710883b 100644 (file)
       END IF
 *
       IF( INFO.EQ.0 ) THEN
+         WORK( 1 ) = 1
          IF( WANTQ ) THEN
             IF( M.GE.K ) THEN
                CALL DORGQR( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
             ELSE
-               CALL DORGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK,
-     $                      -1, IINFO )
+               IF( M.GT.1 ) THEN
+                  CALL DORGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK,
+     $                         -1, IINFO )
+               END IF
             END IF
          ELSE
             IF( K.LT.N ) THEN
                CALL DORGLQ( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
             ELSE
-               CALL DORGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK,
-     $                      -1, IINFO )
+               IF( N.GT.1 ) THEN
+                  CALL DORGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK,
+     $                         -1, IINFO )
+               END IF
             END IF
          END IF
          LWKOPT = WORK( 1 )
index 081f407..c028ac1 100644 (file)
       END IF
 *
       IF( INFO.EQ.0 ) THEN
+         WORK( 1 ) = 1
          IF( WANTQ ) THEN
             IF( M.GE.K ) THEN
                CALL SORGQR( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
             ELSE
-               CALL SORGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK,
-     $                      -1, IINFO )
+               IF( M.GT.1 ) THEN
+                  CALL SORGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK,
+     $                         -1, IINFO )
+               END IF
             END IF
          ELSE
             IF( K.LT.N ) THEN
                CALL SORGLQ( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
             ELSE
-               CALL SORGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK,
-     $                      -1, IINFO )
+               IF( N.GT.1 ) THEN
+                  CALL SORGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK,
+     $                         -1, IINFO )
+               END IF
             END IF
          END IF
          LWKOPT = WORK( 1 )
index 8da8326..02b051d 100644 (file)
       END IF
 *
       IF( INFO.EQ.0 ) THEN
+         WORK( 1 ) = 1
          IF( WANTQ ) THEN
             IF( M.GE.K ) THEN
                CALL ZUNGQR( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
             ELSE
-               CALL ZUNGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK,
-     $                      -1, IINFO )
+               IF( M.GT.1 ) THEN
+                  CALL ZUNGQR( M-1, M-1, M-1, A( 2, 2 ), LDA, TAU, WORK,
+     $                         -1, IINFO )
+               END IF
             END IF
          ELSE
             IF( K.LT.N ) THEN
                CALL ZUNGLQ( M, N, K, A, LDA, TAU, WORK, -1, IINFO )
             ELSE
-               CALL ZUNGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK,
-     $                      -1, IINFO )
+               IF( N.GT.1 ) THEN
+                  CALL ZUNGLQ( N-1, N-1, N-1, A( 2, 2 ), LDA, TAU, WORK,
+     $                         -1, IINFO )
+               END IF
             END IF
          END IF
          LWKOPT = WORK( 1 )