Import LAPACK: SRC directory
This commit is contained in:
+39
-28
@@ -211,7 +211,7 @@
|
||||
SUBROUTINE SGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, LDVT,
|
||||
$ WORK, LWORK, INFO )
|
||||
*
|
||||
* -- LAPACK driver routine (version 3.4.1) --
|
||||
* -- LAPACK driver routine (version 3.6.1) --
|
||||
* -- LAPACK is a software package provided by Univ. of Tennessee, --
|
||||
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||||
* April 2012
|
||||
@@ -314,24 +314,24 @@
|
||||
BDSPAC = 5*N
|
||||
* Compute space needed for SGEQRF
|
||||
CALL SGEQRF( M, N, A, LDA, DUM(1), DUM(1), -1, IERR )
|
||||
LWORK_SGEQRF=DUM(1)
|
||||
LWORK_SGEQRF = INT( DUM(1) )
|
||||
* Compute space needed for SORGQR
|
||||
CALL SORGQR( M, N, N, A, LDA, DUM(1), DUM(1), -1, IERR )
|
||||
LWORK_SORGQR_N=DUM(1)
|
||||
LWORK_SORGQR_N = INT( DUM(1) )
|
||||
CALL SORGQR( M, M, N, A, LDA, DUM(1), DUM(1), -1, IERR )
|
||||
LWORK_SORGQR_M=DUM(1)
|
||||
LWORK_SORGQR_M = INT( DUM(1) )
|
||||
* Compute space needed for SGEBRD
|
||||
CALL SGEBRD( N, N, A, LDA, S, DUM(1), DUM(1),
|
||||
$ DUM(1), DUM(1), -1, IERR )
|
||||
LWORK_SGEBRD=DUM(1)
|
||||
LWORK_SGEBRD = INT( DUM(1) )
|
||||
* Compute space needed for SORGBR P
|
||||
CALL SORGBR( 'P', N, N, N, A, LDA, DUM(1),
|
||||
$ DUM(1), -1, IERR )
|
||||
LWORK_SORGBR_P=DUM(1)
|
||||
LWORK_SORGBR_P = INT( DUM(1) )
|
||||
* Compute space needed for SORGBR Q
|
||||
CALL SORGBR( 'Q', N, N, N, A, LDA, DUM(1),
|
||||
$ DUM(1), -1, IERR )
|
||||
LWORK_SORGBR_Q=DUM(1)
|
||||
LWORK_SORGBR_Q = INT( DUM(1) )
|
||||
*
|
||||
IF( M.GE.MNTHR ) THEN
|
||||
IF( WNTUN ) THEN
|
||||
@@ -447,18 +447,18 @@
|
||||
*
|
||||
CALL SGEBRD( M, N, A, LDA, S, DUM(1), DUM(1),
|
||||
$ DUM(1), DUM(1), -1, IERR )
|
||||
LWORK_SGEBRD=DUM(1)
|
||||
LWORK_SGEBRD = INT( DUM(1) )
|
||||
MAXWRK = 3*N + LWORK_SGEBRD
|
||||
IF( WNTUS .OR. WNTUO ) THEN
|
||||
CALL SORGBR( 'Q', M, N, N, A, LDA, DUM(1),
|
||||
$ DUM(1), -1, IERR )
|
||||
LWORK_SORGBR_Q=DUM(1)
|
||||
LWORK_SORGBR_Q = INT( DUM(1) )
|
||||
MAXWRK = MAX( MAXWRK, 3*N+LWORK_SORGBR_Q )
|
||||
END IF
|
||||
IF( WNTUA ) THEN
|
||||
CALL SORGBR( 'Q', M, M, N, A, LDA, DUM(1),
|
||||
$ DUM(1), -1, IERR )
|
||||
LWORK_SORGBR_Q=DUM(1)
|
||||
LWORK_SORGBR_Q = INT( DUM(1) )
|
||||
MAXWRK = MAX( MAXWRK, 3*N+LWORK_SORGBR_Q )
|
||||
END IF
|
||||
IF( .NOT.WNTVN ) THEN
|
||||
@@ -475,24 +475,24 @@
|
||||
BDSPAC = 5*M
|
||||
* Compute space needed for SGELQF
|
||||
CALL SGELQF( M, N, A, LDA, DUM(1), DUM(1), -1, IERR )
|
||||
LWORK_SGELQF=DUM(1)
|
||||
LWORK_SGELQF = INT( DUM(1) )
|
||||
* Compute space needed for SORGLQ
|
||||
CALL SORGLQ( N, N, M, DUM(1), N, DUM(1), DUM(1), -1, IERR )
|
||||
LWORK_SORGLQ_N=DUM(1)
|
||||
LWORK_SORGLQ_N = INT( DUM(1) )
|
||||
CALL SORGLQ( M, N, M, A, LDA, DUM(1), DUM(1), -1, IERR )
|
||||
LWORK_SORGLQ_M=DUM(1)
|
||||
LWORK_SORGLQ_M = INT( DUM(1) )
|
||||
* Compute space needed for SGEBRD
|
||||
CALL SGEBRD( M, M, A, LDA, S, DUM(1), DUM(1),
|
||||
$ DUM(1), DUM(1), -1, IERR )
|
||||
LWORK_SGEBRD=DUM(1)
|
||||
LWORK_SGEBRD = INT( DUM(1) )
|
||||
* Compute space needed for SORGBR P
|
||||
CALL SORGBR( 'P', M, M, M, A, N, DUM(1),
|
||||
$ DUM(1), -1, IERR )
|
||||
LWORK_SORGBR_P=DUM(1)
|
||||
LWORK_SORGBR_P = INT( DUM(1) )
|
||||
* Compute space needed for SORGBR Q
|
||||
CALL SORGBR( 'Q', M, M, M, A, N, DUM(1),
|
||||
$ DUM(1), -1, IERR )
|
||||
LWORK_SORGBR_Q=DUM(1)
|
||||
LWORK_SORGBR_Q = INT( DUM(1) )
|
||||
IF( N.GE.MNTHR ) THEN
|
||||
IF( WNTVN ) THEN
|
||||
*
|
||||
@@ -608,19 +608,19 @@
|
||||
*
|
||||
CALL SGEBRD( M, N, A, LDA, S, DUM(1), DUM(1),
|
||||
$ DUM(1), DUM(1), -1, IERR )
|
||||
LWORK_SGEBRD=DUM(1)
|
||||
LWORK_SGEBRD = INT( DUM(1) )
|
||||
MAXWRK = 3*M + LWORK_SGEBRD
|
||||
IF( WNTVS .OR. WNTVO ) THEN
|
||||
* Compute space needed for SORGBR P
|
||||
CALL SORGBR( 'P', M, N, M, A, N, DUM(1),
|
||||
$ DUM(1), -1, IERR )
|
||||
LWORK_SORGBR_P=DUM(1)
|
||||
LWORK_SORGBR_P = INT( DUM(1) )
|
||||
MAXWRK = MAX( MAXWRK, 3*M+LWORK_SORGBR_P )
|
||||
END IF
|
||||
IF( WNTVA ) THEN
|
||||
CALL SORGBR( 'P', N, N, M, A, N, DUM(1),
|
||||
$ DUM(1), -1, IERR )
|
||||
LWORK_SORGBR_P=DUM(1)
|
||||
LWORK_SORGBR_P = INT( DUM(1) )
|
||||
MAXWRK = MAX( MAXWRK, 3*M+LWORK_SORGBR_P )
|
||||
END IF
|
||||
IF( .NOT.WNTUN ) THEN
|
||||
@@ -693,7 +693,10 @@
|
||||
*
|
||||
* Zero out below R
|
||||
*
|
||||
CALL SLASET( 'L', N-1, N-1, ZERO, ZERO, A( 2, 1 ), LDA )
|
||||
IF( N .GT. 1 ) THEN
|
||||
CALL SLASET( 'L', N-1, N-1, ZERO, ZERO, A( 2, 1 ),
|
||||
$ LDA )
|
||||
END IF
|
||||
IE = 1
|
||||
ITAUQ = IE + N
|
||||
ITAUP = ITAUQ + N
|
||||
@@ -1122,8 +1125,10 @@
|
||||
*
|
||||
* Zero out below R in A
|
||||
*
|
||||
CALL SLASET( 'L', N-1, N-1, ZERO, ZERO, A( 2, 1 ),
|
||||
$ LDA )
|
||||
IF( N .GT. 1 ) THEN
|
||||
CALL SLASET( 'L', N-1, N-1, ZERO, ZERO,
|
||||
$ A( 2, 1 ), LDA )
|
||||
END IF
|
||||
*
|
||||
* Bidiagonalize R in A
|
||||
* (Workspace: need 4*N, prefer 3*N+2*N*NB)
|
||||
@@ -1285,8 +1290,10 @@
|
||||
*
|
||||
* Zero out below R in A
|
||||
*
|
||||
CALL SLASET( 'L', N-1, N-1, ZERO, ZERO, A( 2, 1 ),
|
||||
$ LDA )
|
||||
IF( N .GT. 1 ) THEN
|
||||
CALL SLASET( 'L', N-1, N-1, ZERO, ZERO,
|
||||
$ A( 2, 1 ), LDA )
|
||||
END IF
|
||||
*
|
||||
* Bidiagonalize R in A
|
||||
* (Workspace: need 4*N, prefer 3*N+2*N*NB)
|
||||
@@ -1588,8 +1595,10 @@
|
||||
*
|
||||
* Zero out below R in A
|
||||
*
|
||||
CALL SLASET( 'L', N-1, N-1, ZERO, ZERO, A( 2, 1 ),
|
||||
$ LDA )
|
||||
IF( N .GT. 1 ) THEN
|
||||
CALL SLASET( 'L', N-1, N-1, ZERO, ZERO,
|
||||
$ A( 2, 1 ), LDA )
|
||||
END IF
|
||||
*
|
||||
* Bidiagonalize R in A
|
||||
* (Workspace: need 4*N, prefer 3*N+2*N*NB)
|
||||
@@ -1756,8 +1765,10 @@
|
||||
*
|
||||
* Zero out below R in A
|
||||
*
|
||||
CALL SLASET( 'L', N-1, N-1, ZERO, ZERO, A( 2, 1 ),
|
||||
$ LDA )
|
||||
IF( N .GT. 1 ) THEN
|
||||
CALL SLASET( 'L', N-1, N-1, ZERO, ZERO,
|
||||
$ A( 2, 1 ), LDA )
|
||||
END IF
|
||||
*
|
||||
* Bidiagonalize R in A
|
||||
* (Workspace: need 4*N, prefer 3*N+2*N*NB)
|
||||
|
||||
Reference in New Issue
Block a user