Skip to content

Commit 56c8d0b

Browse files
committed
Bug fix in SLAMSWLQ; fix type mismatches.
- Fix: SLAMSWLQ calls DGEMLQT instead of SGEMLQT. - Use dummy variable for ?LANGE work array argument in [CS]GETSLS. - Use 1-element array for workspace query in ?GETSLS. - Fix PARAMETER declaration type mismatches in ILASLC, IPARAM2STAGE, SGELQT3, ZHECON_3, ZHECON_ROOK, ZHETRI2X.
1 parent 68a2f71 commit 56c8d0b

11 files changed

Lines changed: 49 additions & 49 deletions

File tree

SRC/cgetsls.f

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -187,8 +187,8 @@ SUBROUTINE CGETSLS( TRANS, M, N, NRHS, A, LDA, B, LDB,
187187
INTEGER I, IASCL, IBSCL, J, MINMN, MAXMN, BROW,
188188
$ SCLLEN, MNK, TSZO, TSZM, LWO, LWM, LW1, LW2,
189189
$ WSIZEO, WSIZEM, INFO2
190-
REAL ANRM, BIGNUM, BNRM, SMLNUM
191-
COMPLEX TQ( 5 ), WORKQ
190+
REAL ANRM, BIGNUM, BNRM, SMLNUM, DUM( 1 )
191+
COMPLEX TQ( 5 ), WORKQ( 1 )
192192
* ..
193193
* .. External Functions ..
194194
LOGICAL LSAME
@@ -236,31 +236,31 @@ SUBROUTINE CGETSLS( TRANS, M, N, NRHS, A, LDA, B, LDB,
236236
IF( M.GE.N ) THEN
237237
CALL CGEQR( M, N, A, LDA, TQ, -1, WORKQ, -1, INFO2 )
238238
TSZO = INT( TQ( 1 ) )
239-
LWO = INT( WORKQ )
239+
LWO = INT( WORKQ( 1 ) )
240240
CALL CGEMQR( 'L', TRANS, M, NRHS, N, A, LDA, TQ,
241241
$ TSZO, B, LDB, WORKQ, -1, INFO2 )
242-
LWO = MAX( LWO, INT( WORKQ ) )
242+
LWO = MAX( LWO, INT( WORKQ( 1 ) ) )
243243
CALL CGEQR( M, N, A, LDA, TQ, -2, WORKQ, -2, INFO2 )
244244
TSZM = INT( TQ( 1 ) )
245-
LWM = INT( WORKQ )
245+
LWM = INT( WORKQ( 1 ) )
246246
CALL CGEMQR( 'L', TRANS, M, NRHS, N, A, LDA, TQ,
247247
$ TSZM, B, LDB, WORKQ, -1, INFO2 )
248-
LWM = MAX( LWM, INT( WORKQ ) )
248+
LWM = MAX( LWM, INT( WORKQ( 1 ) ) )
249249
WSIZEO = TSZO + LWO
250250
WSIZEM = TSZM + LWM
251251
ELSE
252252
CALL CGELQ( M, N, A, LDA, TQ, -1, WORKQ, -1, INFO2 )
253253
TSZO = INT( TQ( 1 ) )
254-
LWO = INT( WORKQ )
254+
LWO = INT( WORKQ( 1 ) )
255255
CALL CGEMLQ( 'L', TRANS, N, NRHS, M, A, LDA, TQ,
256256
$ TSZO, B, LDB, WORKQ, -1, INFO2 )
257-
LWO = MAX( LWO, INT( WORKQ ) )
257+
LWO = MAX( LWO, INT( WORKQ( 1 ) ) )
258258
CALL CGELQ( M, N, A, LDA, TQ, -2, WORKQ, -2, INFO2 )
259259
TSZM = INT( TQ( 1 ) )
260-
LWM = INT( WORKQ )
260+
LWM = INT( WORKQ( 1 ) )
261261
CALL CGEMLQ( 'L', TRANS, N, NRHS, M, A, LDA, TQ,
262262
$ TSZO, B, LDB, WORKQ, -1, INFO2 )
263-
LWM = MAX( LWM, INT( WORKQ ) )
263+
LWM = MAX( LWM, INT( WORKQ( 1 ) ) )
264264
WSIZEO = TSZO + LWO
265265
WSIZEM = TSZM + LWM
266266
END IF
@@ -305,7 +305,7 @@ SUBROUTINE CGETSLS( TRANS, M, N, NRHS, A, LDA, B, LDB,
305305
*
306306
* Scale A, B if max element outside range [SMLNUM,BIGNUM]
307307
*
308-
ANRM = CLANGE( 'M', M, N, A, LDA, WORK )
308+
ANRM = CLANGE( 'M', M, N, A, LDA, DUM )
309309
IASCL = 0
310310
IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN
311311
*
@@ -331,7 +331,7 @@ SUBROUTINE CGETSLS( TRANS, M, N, NRHS, A, LDA, B, LDB,
331331
IF ( TRAN ) THEN
332332
BROW = N
333333
END IF
334-
BNRM = CLANGE( 'M', BROW, NRHS, B, LDB, WORK )
334+
BNRM = CLANGE( 'M', BROW, NRHS, B, LDB, DUM )
335335
IBSCL = 0
336336
IF( BNRM.GT.ZERO .AND. BNRM.LT.SMLNUM ) THEN
337337
*

SRC/dgetsls.f

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ SUBROUTINE DGETSLS( TRANS, M, N, NRHS, A, LDA, B, LDB,
185185
INTEGER I, IASCL, IBSCL, J, MINMN, MAXMN, BROW,
186186
$ SCLLEN, MNK, TSZO, TSZM, LWO, LWM, LW1, LW2,
187187
$ WSIZEO, WSIZEM, INFO2
188-
DOUBLE PRECISION ANRM, BIGNUM, BNRM, SMLNUM, TQ( 5 ), WORKQ
188+
DOUBLE PRECISION ANRM, BIGNUM, BNRM, SMLNUM, TQ( 5 ), WORKQ( 1 )
189189
* ..
190190
* .. External Functions ..
191191
LOGICAL LSAME
@@ -233,31 +233,31 @@ SUBROUTINE DGETSLS( TRANS, M, N, NRHS, A, LDA, B, LDB,
233233
IF( M.GE.N ) THEN
234234
CALL DGEQR( M, N, A, LDA, TQ, -1, WORKQ, -1, INFO2 )
235235
TSZO = INT( TQ( 1 ) )
236-
LWO = INT( WORKQ )
236+
LWO = INT( WORKQ( 1 ) )
237237
CALL DGEMQR( 'L', TRANS, M, NRHS, N, A, LDA, TQ,
238238
$ TSZO, B, LDB, WORKQ, -1, INFO2 )
239-
LWO = MAX( LWO, INT( WORKQ ) )
239+
LWO = MAX( LWO, INT( WORKQ( 1 ) ) )
240240
CALL DGEQR( M, N, A, LDA, TQ, -2, WORKQ, -2, INFO2 )
241241
TSZM = INT( TQ( 1 ) )
242-
LWM = INT( WORKQ )
242+
LWM = INT( WORKQ( 1 ) )
243243
CALL DGEMQR( 'L', TRANS, M, NRHS, N, A, LDA, TQ,
244244
$ TSZM, B, LDB, WORKQ, -1, INFO2 )
245-
LWM = MAX( LWM, INT( WORKQ ) )
245+
LWM = MAX( LWM, INT( WORKQ( 1 ) ) )
246246
WSIZEO = TSZO + LWO
247247
WSIZEM = TSZM + LWM
248248
ELSE
249249
CALL DGELQ( M, N, A, LDA, TQ, -1, WORKQ, -1, INFO2 )
250250
TSZO = INT( TQ( 1 ) )
251-
LWO = INT( WORKQ )
251+
LWO = INT( WORKQ( 1 ) )
252252
CALL DGEMLQ( 'L', TRANS, N, NRHS, M, A, LDA, TQ,
253253
$ TSZO, B, LDB, WORKQ, -1, INFO2 )
254-
LWO = MAX( LWO, INT( WORKQ ) )
254+
LWO = MAX( LWO, INT( WORKQ( 1 ) ) )
255255
CALL DGELQ( M, N, A, LDA, TQ, -2, WORKQ, -2, INFO2 )
256256
TSZM = INT( TQ( 1 ) )
257-
LWM = INT( WORKQ )
257+
LWM = INT( WORKQ( 1 ) )
258258
CALL DGEMLQ( 'L', TRANS, N, NRHS, M, A, LDA, TQ,
259259
$ TSZO, B, LDB, WORKQ, -1, INFO2 )
260-
LWM = MAX( LWM, INT( WORKQ ) )
260+
LWM = MAX( LWM, INT( WORKQ( 1 ) ) )
261261
WSIZEO = TSZO + LWO
262262
WSIZEM = TSZM + LWM
263263
END IF

SRC/ilaslc.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ INTEGER FUNCTION ILASLC( M, N, A, LDA )
9494
*
9595
* .. Parameters ..
9696
REAL ZERO
97-
PARAMETER ( ZERO = 0.0D+0 )
97+
PARAMETER ( ZERO = 0.0E+0 )
9898
* ..
9999
* .. Local Scalars ..
100100
INTEGER I

SRC/iparam2stage.F

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ INTEGER FUNCTION IPARAM2STAGE( ISPEC, NAME, OPTS,
172172
INTEGER I, IC, IZ, KD, IB, LHOUS, LWORK, NTHREADS,
173173
$ FACTOPTNB, QROPTNB, LQOPTNB
174174
LOGICAL RPREC, CPREC
175-
CHARACTER PREC*1, ALGO*3, STAG*5, SUBNAM*12, VECT*3
175+
CHARACTER PREC*1, ALGO*3, STAG*5, SUBNAM*12, VECT*1
176176
* ..
177177
* .. Intrinsic Functions ..
178178
INTRINSIC CHAR, ICHAR, MAX

SRC/sgelqt3.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ RECURSIVE SUBROUTINE SGELQT3( M, N, A, LDA, T, LDT, INFO )
130130
*
131131
* .. Parameters ..
132132
REAL ONE
133-
PARAMETER ( ONE = 1.0D+00 )
133+
PARAMETER ( ONE = 1.0E+00 )
134134
* ..
135135
* .. Local Scalars ..
136136
INTEGER I, I1, J, J1, M1, M2, N1, N2, IINFO

SRC/sgetsls.f

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ SUBROUTINE SGETSLS( TRANS, M, N, NRHS, A, LDA, B, LDB,
185185
INTEGER I, IASCL, IBSCL, J, MINMN, MAXMN, BROW,
186186
$ SCLLEN, MNK, TSZO, TSZM, LWO, LWM, LW1, LW2,
187187
$ WSIZEO, WSIZEM, INFO2
188-
REAL ANRM, BIGNUM, BNRM, SMLNUM, TQ( 5 ), WORKQ
188+
REAL ANRM, BIGNUM, BNRM, SMLNUM, TQ( 5 ), WORKQ( 1 )
189189
* ..
190190
* .. External Functions ..
191191
LOGICAL LSAME
@@ -233,31 +233,31 @@ SUBROUTINE SGETSLS( TRANS, M, N, NRHS, A, LDA, B, LDB,
233233
IF( M.GE.N ) THEN
234234
CALL SGEQR( M, N, A, LDA, TQ, -1, WORKQ, -1, INFO2 )
235235
TSZO = INT( TQ( 1 ) )
236-
LWO = INT( WORKQ )
236+
LWO = INT( WORKQ( 1 ) )
237237
CALL SGEMQR( 'L', TRANS, M, NRHS, N, A, LDA, TQ,
238238
$ TSZO, B, LDB, WORKQ, -1, INFO2 )
239-
LWO = MAX( LWO, INT( WORKQ ) )
239+
LWO = MAX( LWO, INT( WORKQ( 1 ) ) )
240240
CALL SGEQR( M, N, A, LDA, TQ, -2, WORKQ, -2, INFO2 )
241241
TSZM = INT( TQ( 1 ) )
242-
LWM = INT( WORKQ )
242+
LWM = INT( WORKQ( 1 ) )
243243
CALL SGEMQR( 'L', TRANS, M, NRHS, N, A, LDA, TQ,
244244
$ TSZM, B, LDB, WORKQ, -1, INFO2 )
245-
LWM = MAX( LWM, INT( WORKQ ) )
245+
LWM = MAX( LWM, INT( WORKQ( 1 ) ) )
246246
WSIZEO = TSZO + LWO
247247
WSIZEM = TSZM + LWM
248248
ELSE
249249
CALL SGELQ( M, N, A, LDA, TQ, -1, WORKQ, -1, INFO2 )
250250
TSZO = INT( TQ( 1 ) )
251-
LWO = INT( WORKQ )
251+
LWO = INT( WORKQ( 1 ) )
252252
CALL SGEMLQ( 'L', TRANS, N, NRHS, M, A, LDA, TQ,
253253
$ TSZO, B, LDB, WORKQ, -1, INFO2 )
254-
LWO = MAX( LWO, INT( WORKQ ) )
254+
LWO = MAX( LWO, INT( WORKQ( 1 ) ) )
255255
CALL SGELQ( M, N, A, LDA, TQ, -2, WORKQ, -2, INFO2 )
256256
TSZM = INT( TQ( 1 ) )
257-
LWM = INT( WORKQ )
257+
LWM = INT( WORKQ( 1 ) )
258258
CALL SGEMLQ( 'L', TRANS, N, NRHS, M, A, LDA, TQ,
259259
$ TSZO, B, LDB, WORKQ, -1, INFO2 )
260-
LWM = MAX( LWM, INT( WORKQ ) )
260+
LWM = MAX( LWM, INT( WORKQ( 1 ) ) )
261261
WSIZEO = TSZO + LWO
262262
WSIZEM = TSZM + LWM
263263
END IF

SRC/slamswlq.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ SUBROUTINE SLAMSWLQ( SIDE, TRANS, M, N, K, MB, NB, A, LDA, T,
281281
END IF
282282
*
283283
IF((NB.LE.K).OR.(NB.GE.MAX(M,N,K))) THEN
284-
CALL DGEMLQT( SIDE, TRANS, M, N, K, MB, A, LDA,
284+
CALL SGEMLQT( SIDE, TRANS, M, N, K, MB, A, LDA,
285285
$ T, LDT, C, LDC, WORK, INFO)
286286
RETURN
287287
END IF

SRC/zgetsls.f

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -187,8 +187,8 @@ SUBROUTINE ZGETSLS( TRANS, M, N, NRHS, A, LDA, B, LDB,
187187
INTEGER I, IASCL, IBSCL, J, MINMN, MAXMN, BROW,
188188
$ SCLLEN, MNK, TSZO, TSZM, LWO, LWM, LW1, LW2,
189189
$ WSIZEO, WSIZEM, INFO2
190-
DOUBLE PRECISION ANRM, BIGNUM, BNRM, SMLNUM
191-
COMPLEX*16 TQ( 5 ), WORKQ
190+
DOUBLE PRECISION ANRM, BIGNUM, BNRM, SMLNUM, DUM( 1 )
191+
COMPLEX*16 TQ( 5 ), WORKQ( 1 )
192192
* ..
193193
* .. External Functions ..
194194
LOGICAL LSAME
@@ -236,31 +236,31 @@ SUBROUTINE ZGETSLS( TRANS, M, N, NRHS, A, LDA, B, LDB,
236236
IF( M.GE.N ) THEN
237237
CALL ZGEQR( M, N, A, LDA, TQ, -1, WORKQ, -1, INFO2 )
238238
TSZO = INT( TQ( 1 ) )
239-
LWO = INT( WORKQ )
239+
LWO = INT( WORKQ( 1 ) )
240240
CALL ZGEMQR( 'L', TRANS, M, NRHS, N, A, LDA, TQ,
241241
$ TSZO, B, LDB, WORKQ, -1, INFO2 )
242-
LWO = MAX( LWO, INT( WORKQ ) )
242+
LWO = MAX( LWO, INT( WORKQ( 1 ) ) )
243243
CALL ZGEQR( M, N, A, LDA, TQ, -2, WORKQ, -2, INFO2 )
244244
TSZM = INT( TQ( 1 ) )
245-
LWM = INT( WORKQ )
245+
LWM = INT( WORKQ( 1 ) )
246246
CALL ZGEMQR( 'L', TRANS, M, NRHS, N, A, LDA, TQ,
247247
$ TSZM, B, LDB, WORKQ, -1, INFO2 )
248-
LWM = MAX( LWM, INT( WORKQ ) )
248+
LWM = MAX( LWM, INT( WORKQ( 1 ) ) )
249249
WSIZEO = TSZO + LWO
250250
WSIZEM = TSZM + LWM
251251
ELSE
252252
CALL ZGELQ( M, N, A, LDA, TQ, -1, WORKQ, -1, INFO2 )
253253
TSZO = INT( TQ( 1 ) )
254-
LWO = INT( WORKQ )
254+
LWO = INT( WORKQ( 1 ) )
255255
CALL ZGEMLQ( 'L', TRANS, N, NRHS, M, A, LDA, TQ,
256256
$ TSZO, B, LDB, WORKQ, -1, INFO2 )
257-
LWO = MAX( LWO, INT( WORKQ ) )
257+
LWO = MAX( LWO, INT( WORKQ( 1 ) ) )
258258
CALL ZGELQ( M, N, A, LDA, TQ, -2, WORKQ, -2, INFO2 )
259259
TSZM = INT( TQ( 1 ) )
260-
LWM = INT( WORKQ )
260+
LWM = INT( WORKQ( 1 ) )
261261
CALL ZGEMLQ( 'L', TRANS, N, NRHS, M, A, LDA, TQ,
262262
$ TSZO, B, LDB, WORKQ, -1, INFO2 )
263-
LWM = MAX( LWM, INT( WORKQ ) )
263+
LWM = MAX( LWM, INT( WORKQ( 1 ) ) )
264264
WSIZEO = TSZO + LWO
265265
WSIZEM = TSZM + LWM
266266
END IF
@@ -305,7 +305,7 @@ SUBROUTINE ZGETSLS( TRANS, M, N, NRHS, A, LDA, B, LDB,
305305
*
306306
* Scale A, B if max element outside range [SMLNUM,BIGNUM]
307307
*
308-
ANRM = ZLANGE( 'M', M, N, A, LDA, WORK )
308+
ANRM = ZLANGE( 'M', M, N, A, LDA, DUM )
309309
IASCL = 0
310310
IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN
311311
*
@@ -331,7 +331,7 @@ SUBROUTINE ZGETSLS( TRANS, M, N, NRHS, A, LDA, B, LDB,
331331
IF ( TRAN ) THEN
332332
BROW = N
333333
END IF
334-
BNRM = ZLANGE( 'M', BROW, NRHS, B, LDB, WORK )
334+
BNRM = ZLANGE( 'M', BROW, NRHS, B, LDB, DUM )
335335
IBSCL = 0
336336
IF( BNRM.GT.ZERO .AND. BNRM.LT.SMLNUM ) THEN
337337
*

SRC/zhecon_3.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ SUBROUTINE ZHECON_3( UPLO, N, A, LDA, E, IPIV, ANORM, RCOND,
189189
* =====================================================================
190190
*
191191
* .. Parameters ..
192-
REAL ONE, ZERO
192+
DOUBLE PRECISION ONE, ZERO
193193
PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 )
194194
* ..
195195
* .. Local Scalars ..

SRC/zhecon_rook.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ SUBROUTINE ZHECON_ROOK( UPLO, N, A, LDA, IPIV, ANORM, RCOND, WORK,
157157
* =====================================================================
158158
*
159159
* .. Parameters ..
160-
REAL ONE, ZERO
160+
DOUBLE PRECISION ONE, ZERO
161161
PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 )
162162
* ..
163163
* .. Local Scalars ..

0 commit comments

Comments
 (0)