Index: SRC/cuncsd2by1.f =================================================================== --- SRC/cuncsd2by1.f (revision 1501) +++ SRC/cuncsd2by1.f (working copy) @@ -698,8 +698,6 @@ END DO CALL CLACPY( 'L', P-1, M-Q-1, X11(2,1), LDX11, U1(2,2), $ LDU1 ) - CALL CUNGQR( P, P, M-Q, U1, LDU1, WORK(ITAUP1), - $ WORK(IORGQR), LORGQR, CHILDINFO ) END IF IF( WANTU2 .AND. M-P .GT. 0 ) THEN CALL CCOPY( M-P, WORK(IORBDB+P), 1, U2, 1 ) @@ -708,6 +706,12 @@ END DO CALL CLACPY( 'L', M-P-1, M-Q-1, X21(2,1), LDX21, U2(2,2), $ LDU2 ) + END IF + IF( WANTU1 .AND. P .GT. 0 ) THEN + CALL CUNGQR( P, P, M-Q, U1, LDU1, WORK(ITAUP1), + $ WORK(IORGQR), LORGQR, CHILDINFO ) + END IF + IF( WANTU2 .AND. M-P .GT. 0 ) THEN CALL CUNGQR( M-P, M-P, M-Q, U2, LDU2, WORK(ITAUP2), $ WORK(IORGQR), LORGQR, CHILDINFO ) END IF Index: SRC/dorcsd2by1.f =================================================================== --- SRC/dorcsd2by1.f (revision 1501) +++ SRC/dorcsd2by1.f (working copy) @@ -656,8 +656,6 @@ END DO CALL DLACPY( 'L', P-1, M-Q-1, X11(2,1), LDX11, U1(2,2), $ LDU1 ) - CALL DORGQR( P, P, M-Q, U1, LDU1, WORK(ITAUP1), - $ WORK(IORGQR), LORGQR, CHILDINFO ) END IF IF( WANTU2 .AND. M-P .GT. 0 ) THEN CALL DCOPY( M-P, WORK(IORBDB+P), 1, U2, 1 ) @@ -666,6 +664,12 @@ END DO CALL DLACPY( 'L', M-P-1, M-Q-1, X21(2,1), LDX21, U2(2,2), $ LDU2 ) + END IF + IF( WANTU1 .AND. P .GT. 0 ) THEN + CALL DORGQR( P, P, M-Q, U1, LDU1, WORK(ITAUP1), + $ WORK(IORGQR), LORGQR, CHILDINFO ) + END IF + IF( WANTU2 .AND. M-P .GT. 0 ) THEN CALL DORGQR( M-P, M-P, M-Q, U2, LDU2, WORK(ITAUP2), $ WORK(IORGQR), LORGQR, CHILDINFO ) END IF Index: SRC/sorcsd2by1.f =================================================================== --- SRC/sorcsd2by1.f (revision 1501) +++ SRC/sorcsd2by1.f (working copy) @@ -652,8 +652,6 @@ END DO CALL SLACPY( 'L', P-1, M-Q-1, X11(2,1), LDX11, U1(2,2), $ LDU1 ) - CALL SORGQR( P, P, M-Q, U1, LDU1, WORK(ITAUP1), - $ WORK(IORGQR), LORGQR, CHILDINFO ) END IF IF( WANTU2 .AND. M-P .GT. 0 ) THEN CALL SCOPY( M-P, WORK(IORBDB+P), 1, U2, 1 ) @@ -662,6 +660,12 @@ END DO CALL SLACPY( 'L', M-P-1, M-Q-1, X21(2,1), LDX21, U2(2,2), $ LDU2 ) + END IF + IF( WANTU1 .AND. P .GT. 0 ) THEN + CALL SORGQR( P, P, M-Q, U1, LDU1, WORK(ITAUP1), + $ WORK(IORGQR), LORGQR, CHILDINFO ) + END IF + IF( WANTU2 .AND. M-P .GT. 0 ) THEN CALL SORGQR( M-P, M-P, M-Q, U2, LDU2, WORK(ITAUP2), $ WORK(IORGQR), LORGQR, CHILDINFO ) END IF Index: SRC/zuncsd2by1.f =================================================================== --- SRC/zuncsd2by1.f (revision 1501) +++ SRC/zuncsd2by1.f (working copy) @@ -697,8 +697,6 @@ END DO CALL ZLACPY( 'L', P-1, M-Q-1, X11(2,1), LDX11, U1(2,2), $ LDU1 ) - CALL ZUNGQR( P, P, M-Q, U1, LDU1, WORK(ITAUP1), - $ WORK(IORGQR), LORGQR, CHILDINFO ) END IF IF( WANTU2 .AND. M-P .GT. 0 ) THEN CALL ZCOPY( M-P, WORK(IORBDB+P), 1, U2, 1 ) @@ -707,6 +705,12 @@ END DO CALL ZLACPY( 'L', M-P-1, M-Q-1, X21(2,1), LDX21, U2(2,2), $ LDU2 ) + END IF + IF( WANTU1 .AND. P .GT. 0 ) THEN + CALL ZUNGQR( P, P, M-Q, U1, LDU1, WORK(ITAUP1), + $ WORK(IORGQR), LORGQR, CHILDINFO ) + END IF + IF( WANTU2 .AND. M-P .GT. 0 ) THEN CALL ZUNGQR( M-P, M-P, M-Q, U2, LDU2, WORK(ITAUP2), $ WORK(IORGQR), LORGQR, CHILDINFO ) END IF