Fix array overruns in the LIN part of the LAPACK testsuitetags/v0.3.11^2
@@ -372,13 +372,13 @@ | |||||
END IF | END IF | ||||
* Compute workspace needed for CGELSY | * Compute workspace needed for CGELSY | ||||
CALL CGELSY( M, N, NRHS, A, LDA, B, LDB, | CALL CGELSY( M, N, NRHS, A, LDA, B, LDB, | ||||
$ IWQ, RCOND, CRANK, WQ, -1, RWORK, | |||||
$ IWQ, RCOND, CRANK, WQ, -1, RWQ, | |||||
$ INFO ) | $ INFO ) | ||||
LWORK_CGELSY = INT( WQ( 1 ) ) | LWORK_CGELSY = INT( WQ( 1 ) ) | ||||
LRWORK_CGELSY = 2*N | LRWORK_CGELSY = 2*N | ||||
* Compute workspace needed for CGELSS | * Compute workspace needed for CGELSS | ||||
CALL CGELSS( M, N, NRHS, A, LDA, B, LDB, S, | CALL CGELSS( M, N, NRHS, A, LDA, B, LDB, S, | ||||
$ RCOND, CRANK, WQ, -1, RWORK, INFO ) | |||||
$ RCOND, CRANK, WQ, -1, RWQ, INFO ) | |||||
LWORK_CGELSS = INT( WQ( 1 ) ) | LWORK_CGELSS = INT( WQ( 1 ) ) | ||||
LRWORK_CGELSS = 5*MNMIN | LRWORK_CGELSS = 5*MNMIN | ||||
* Compute workspace needed for CGELSD | * Compute workspace needed for CGELSD | ||||
@@ -564,7 +564,7 @@ | |||||
CALL CLARNV( 2, ISEED, NCOLS*NRHS, | CALL CLARNV( 2, ISEED, NCOLS*NRHS, | ||||
$ WORK ) | $ WORK ) | ||||
CALL CSCAL( NCOLS*NRHS, | CALL CSCAL( NCOLS*NRHS, | ||||
$ ONE / REAL( NCOLS ), WORK, | |||||
$ CONE / REAL( NCOLS ), WORK, | |||||
$ 1 ) | $ 1 ) | ||||
END IF | END IF | ||||
CALL CGEMM( TRANS, 'No transpose', NROWS, | CALL CGEMM( TRANS, 'No transpose', NROWS, | ||||
@@ -77,7 +77,7 @@ | |||||
* .. | * .. | ||||
* .. Local Arrays .. | * .. Local Arrays .. | ||||
DOUBLE PRECISION A( NMAX, NMAX ), T( NMAX, NMAX ), W( NMAX ), | DOUBLE PRECISION A( NMAX, NMAX ), T( NMAX, NMAX ), W( NMAX ), | ||||
$ C( NMAX, NMAX ), TAU(NMAX) | |||||
$ C( NMAX, NMAX ), TAU(NMAX*2) | |||||
* .. | * .. | ||||
* .. External Subroutines .. | * .. External Subroutines .. | ||||
EXTERNAL ALAESM, CHKXER, DGEQR, | EXTERNAL ALAESM, CHKXER, DGEQR, | ||||
@@ -137,6 +137,8 @@ | |||||
* | * | ||||
TAU(1)=1 | TAU(1)=1 | ||||
TAU(2)=1 | TAU(2)=1 | ||||
TAU(3)=1 | |||||
TAU(4)=1 | |||||
SRNAMT = 'DGEMQR' | SRNAMT = 'DGEMQR' | ||||
NB=1 | NB=1 | ||||
INFOT = 1 | INFOT = 1 | ||||
@@ -77,7 +77,7 @@ | |||||
* .. | * .. | ||||
* .. Local Arrays .. | * .. Local Arrays .. | ||||
REAL A( NMAX, NMAX ), T( NMAX, NMAX ), W( NMAX ), | REAL A( NMAX, NMAX ), T( NMAX, NMAX ), W( NMAX ), | ||||
$ C( NMAX, NMAX ), TAU(NMAX) | |||||
$ C( NMAX, NMAX ), TAU(NMAX*2) | |||||
* .. | * .. | ||||
* .. External Subroutines .. | * .. External Subroutines .. | ||||
EXTERNAL ALAESM, CHKXER, SGEQR, | EXTERNAL ALAESM, CHKXER, SGEQR, | ||||
@@ -137,6 +137,8 @@ | |||||
* | * | ||||
TAU(1)=1 | TAU(1)=1 | ||||
TAU(2)=1 | TAU(2)=1 | ||||
TAU(3)=1 | |||||
TAU(4)=1 | |||||
SRNAMT = 'SGEMQR' | SRNAMT = 'SGEMQR' | ||||
NB=1 | NB=1 | ||||
INFOT = 1 | INFOT = 1 | ||||
@@ -372,12 +372,12 @@ | |||||
END IF | END IF | ||||
* Compute workspace needed for ZGELSY | * Compute workspace needed for ZGELSY | ||||
CALL ZGELSY( M, N, NRHS, A, LDA, B, LDB, IWQ, | CALL ZGELSY( M, N, NRHS, A, LDA, B, LDB, IWQ, | ||||
$ RCOND, CRANK, WQ, -1, RWORK, INFO ) | |||||
$ RCOND, CRANK, WQ, -1, RWQ, INFO ) | |||||
LWORK_ZGELSY = INT( WQ( 1 ) ) | LWORK_ZGELSY = INT( WQ( 1 ) ) | ||||
LRWORK_ZGELSY = 2*N | LRWORK_ZGELSY = 2*N | ||||
* Compute workspace needed for ZGELSS | * Compute workspace needed for ZGELSS | ||||
CALL ZGELSS( M, N, NRHS, A, LDA, B, LDB, S, | CALL ZGELSS( M, N, NRHS, A, LDA, B, LDB, S, | ||||
$ RCOND, CRANK, WQ, -1 , RWORK, | |||||
$ RCOND, CRANK, WQ, -1 , RWQ, | |||||
$ INFO ) | $ INFO ) | ||||
LWORK_ZGELSS = INT( WQ( 1 ) ) | LWORK_ZGELSS = INT( WQ( 1 ) ) | ||||
LRWORK_ZGELSS = 5*MNMIN | LRWORK_ZGELSS = 5*MNMIN | ||||
@@ -564,7 +564,7 @@ | |||||
CALL ZLARNV( 2, ISEED, NCOLS*NRHS, | CALL ZLARNV( 2, ISEED, NCOLS*NRHS, | ||||
$ WORK ) | $ WORK ) | ||||
CALL ZSCAL( NCOLS*NRHS, | CALL ZSCAL( NCOLS*NRHS, | ||||
$ ONE / DBLE( NCOLS ), WORK, | |||||
$ CONE / DBLE( NCOLS ), WORK, | |||||
$ 1 ) | $ 1 ) | ||||
END IF | END IF | ||||
CALL ZGEMM( TRANS, 'No transpose', NROWS, | CALL ZGEMM( TRANS, 'No transpose', NROWS, | ||||