Skip to content

Commit 08bc43c

Browse files
authored
Define type conversions explicitly (Reference-LAPACK PR 703)
1 parent 3529591 commit 08bc43c

16 files changed

Lines changed: 40 additions & 34 deletions

File tree

lapack-netlib/SRC/dgebak.f

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ SUBROUTINE DGEBAK( JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV,
236236
$ GO TO 40
237237
IF( I.LT.ILO )
238238
$ I = ILO - II
239-
K = SCALE( I )
239+
K = INT( SCALE( I ) )
240240
IF( K.EQ.I )
241241
$ GO TO 40
242242
CALL DSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )
@@ -250,7 +250,7 @@ SUBROUTINE DGEBAK( JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV,
250250
$ GO TO 50
251251
IF( I.LT.ILO )
252252
$ I = ILO - II
253-
K = SCALE( I )
253+
K = INT( SCALE( I ) )
254254
IF( K.EQ.I )
255255
$ GO TO 50
256256
CALL DSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )

lapack-netlib/SRC/dgees.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ SUBROUTINE DGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, WR, WI,
302302
*
303303
CALL DHSEQR( 'S', JOBVS, N, 1, N, A, LDA, WR, WI, VS, LDVS,
304304
$ WORK, -1, IEVAL )
305-
HSWORK = WORK( 1 )
305+
HSWORK = INT( WORK( 1 ) )
306306
*
307307
IF( .NOT.WANTVS ) THEN
308308
MAXWRK = MAX( MAXWRK, N + HSWORK )

lapack-netlib/SRC/dgeesx.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ SUBROUTINE DGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM,
382382
*
383383
CALL DHSEQR( 'S', JOBVS, N, 1, N, A, LDA, WR, WI, VS, LDVS,
384384
$ WORK, -1, IEVAL )
385-
HSWORK = WORK( 1 )
385+
HSWORK = INT( WORK( 1 ) )
386386
*
387387
IF( .NOT.WANTVS ) THEN
388388
MAXWRK = MAX( MAXWRK, N + HSWORK )

lapack-netlib/SRC/dgelss.f

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -254,11 +254,11 @@ SUBROUTINE DGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
254254
*
255255
* Compute space needed for DGEQRF
256256
CALL DGEQRF( M, N, A, LDA, DUM(1), DUM(1), -1, INFO )
257-
LWORK_DGEQRF=DUM(1)
257+
LWORK_DGEQRF = INT( DUM(1) )
258258
* Compute space needed for DORMQR
259259
CALL DORMQR( 'L', 'T', M, NRHS, N, A, LDA, DUM(1), B,
260260
$ LDB, DUM(1), -1, INFO )
261-
LWORK_DORMQR=DUM(1)
261+
LWORK_DORMQR = INT( DUM(1) )
262262
MM = N
263263
MAXWRK = MAX( MAXWRK, N + LWORK_DGEQRF )
264264
MAXWRK = MAX( MAXWRK, N + LWORK_DORMQR )
@@ -273,15 +273,15 @@ SUBROUTINE DGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
273273
* Compute space needed for DGEBRD
274274
CALL DGEBRD( MM, N, A, LDA, S, DUM(1), DUM(1),
275275
$ DUM(1), DUM(1), -1, INFO )
276-
LWORK_DGEBRD=DUM(1)
276+
LWORK_DGEBRD = INT( DUM(1) )
277277
* Compute space needed for DORMBR
278278
CALL DORMBR( 'Q', 'L', 'T', MM, NRHS, N, A, LDA, DUM(1),
279279
$ B, LDB, DUM(1), -1, INFO )
280-
LWORK_DORMBR=DUM(1)
280+
LWORK_DORMBR = INT( DUM(1) )
281281
* Compute space needed for DORGBR
282282
CALL DORGBR( 'P', N, N, N, A, LDA, DUM(1),
283283
$ DUM(1), -1, INFO )
284-
LWORK_DORGBR=DUM(1)
284+
LWORK_DORGBR = INT( DUM(1) )
285285
* Compute total workspace needed
286286
MAXWRK = MAX( MAXWRK, 3*N + LWORK_DGEBRD )
287287
MAXWRK = MAX( MAXWRK, 3*N + LWORK_DORMBR )
@@ -305,23 +305,23 @@ SUBROUTINE DGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
305305
* Compute space needed for DGELQF
306306
CALL DGELQF( M, N, A, LDA, DUM(1), DUM(1),
307307
$ -1, INFO )
308-
LWORK_DGELQF=DUM(1)
308+
LWORK_DGELQF = INT( DUM(1) )
309309
* Compute space needed for DGEBRD
310310
CALL DGEBRD( M, M, A, LDA, S, DUM(1), DUM(1),
311311
$ DUM(1), DUM(1), -1, INFO )
312-
LWORK_DGEBRD=DUM(1)
312+
LWORK_DGEBRD = INT( DUM(1) )
313313
* Compute space needed for DORMBR
314314
CALL DORMBR( 'Q', 'L', 'T', M, NRHS, N, A, LDA,
315315
$ DUM(1), B, LDB, DUM(1), -1, INFO )
316-
LWORK_DORMBR=DUM(1)
316+
LWORK_DORMBR = INT( DUM(1) )
317317
* Compute space needed for DORGBR
318318
CALL DORGBR( 'P', M, M, M, A, LDA, DUM(1),
319319
$ DUM(1), -1, INFO )
320-
LWORK_DORGBR=DUM(1)
320+
LWORK_DORGBR = INT( DUM(1) )
321321
* Compute space needed for DORMLQ
322322
CALL DORMLQ( 'L', 'T', N, NRHS, M, A, LDA, DUM(1),
323323
$ B, LDB, DUM(1), -1, INFO )
324-
LWORK_DORMLQ=DUM(1)
324+
LWORK_DORMLQ = INT( DUM(1) )
325325
* Compute total workspace needed
326326
MAXWRK = M + LWORK_DGELQF
327327
MAXWRK = MAX( MAXWRK, M*M + 4*M + LWORK_DGEBRD )
@@ -341,15 +341,15 @@ SUBROUTINE DGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
341341
* Compute space needed for DGEBRD
342342
CALL DGEBRD( M, N, A, LDA, S, DUM(1), DUM(1),
343343
$ DUM(1), DUM(1), -1, INFO )
344-
LWORK_DGEBRD=DUM(1)
344+
LWORK_DGEBRD = INT( DUM(1) )
345345
* Compute space needed for DORMBR
346346
CALL DORMBR( 'Q', 'L', 'T', M, NRHS, M, A, LDA,
347347
$ DUM(1), B, LDB, DUM(1), -1, INFO )
348-
LWORK_DORMBR=DUM(1)
348+
LWORK_DORMBR = INT( DUM(1) )
349349
* Compute space needed for DORGBR
350350
CALL DORGBR( 'P', M, N, M, A, LDA, DUM(1),
351351
$ DUM(1), -1, INFO )
352-
LWORK_DORGBR=DUM(1)
352+
LWORK_DORGBR = INT( DUM(1) )
353353
MAXWRK = 3*M + LWORK_DGEBRD
354354
MAXWRK = MAX( MAXWRK, 3*M + LWORK_DORMBR )
355355
MAXWRK = MAX( MAXWRK, 3*M + LWORK_DORGBR )

lapack-netlib/SRC/dggglm.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ SUBROUTINE DGGGLM( N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LWORK,
288288
*
289289
CALL DGGQRF( N, M, P, A, LDA, WORK, B, LDB, WORK( M+1 ),
290290
$ WORK( M+NP+1 ), LWORK-M-NP, INFO )
291-
LOPT = WORK( M+NP+1 )
291+
LOPT = INT( WORK( M+NP+1 ) )
292292
*
293293
* Update left-hand-side vector d = Q**T*d = ( d1 ) M
294294
* ( d2 ) N-M

lapack-netlib/SRC/dgglse.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ SUBROUTINE DGGLSE( M, N, P, A, LDA, B, LDB, C, D, X, WORK, LWORK,
276276
*
277277
CALL DGGRQF( P, M, N, B, LDB, WORK, A, LDA, WORK( P+1 ),
278278
$ WORK( P+MN+1 ), LWORK-P-MN, INFO )
279-
LOPT = WORK( P+MN+1 )
279+
LOPT = INT( WORK( P+MN+1 ) )
280280
*
281281
* Update c = Z**T *c = ( c1 ) N-P
282282
* ( c2 ) M+P-N

lapack-netlib/SRC/dggqrf.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ SUBROUTINE DGGQRF( N, M, P, A, LDA, TAUA, B, LDB, TAUB, WORK,
276276
* QR factorization of N-by-M matrix A: A = Q*R
277277
*
278278
CALL DGEQRF( N, M, A, LDA, TAUA, WORK, LWORK, INFO )
279-
LOPT = WORK( 1 )
279+
LOPT = INT( WORK( 1 ) )
280280
*
281281
* Update B := Q**T*B.
282282
*

lapack-netlib/SRC/dggrqf.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ SUBROUTINE DGGRQF( M, P, N, A, LDA, TAUA, B, LDB, TAUB, WORK,
275275
* RQ factorization of M-by-N matrix A: A = R*Q
276276
*
277277
CALL DGERQF( M, N, A, LDA, TAUA, WORK, LWORK, INFO )
278-
LOPT = WORK( 1 )
278+
LOPT = INT( WORK( 1 ) )
279279
*
280280
* Update B := B*Q**T
281281
*

lapack-netlib/SRC/dlag2s.f

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@
3434
*>
3535
*> \verbatim
3636
*>
37-
*> DLAG2S converts a DOUBLE PRECISION matrix, SA, to a SINGLE
38-
*> PRECISION matrix, A.
37+
*> DLAG2S converts a DOUBLE PRECISION matrix, A, to a SINGLE
38+
*> PRECISION matrix, SA.
3939
*>
4040
*> RMAX is the overflow for the SINGLE PRECISION arithmetic
4141
*> DLAG2S checks that all the entries of A are between -RMAX and
@@ -128,6 +128,9 @@ SUBROUTINE DLAG2S( M, N, A, LDA, SA, LDSA, INFO )
128128
REAL SLAMCH
129129
EXTERNAL SLAMCH
130130
* ..
131+
* .. Intrinsic Functions ..
132+
INTRINSIC REAL
133+
* ..
131134
* .. Executable Statements ..
132135
*
133136
RMAX = SLAMCH( 'O' )
@@ -137,7 +140,7 @@ SUBROUTINE DLAG2S( M, N, A, LDA, SA, LDSA, INFO )
137140
INFO = 1
138141
GO TO 30
139142
END IF
140-
SA( I, J ) = A( I, J )
143+
SA( I, J ) = REAL( A( I, J ) )
141144
10 CONTINUE
142145
20 CONTINUE
143146
INFO = 0

lapack-netlib/SRC/dlat2s.f

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,9 @@ SUBROUTINE DLAT2S( UPLO, N, A, LDA, SA, LDSA, INFO )
134134
LOGICAL LSAME
135135
EXTERNAL SLAMCH, LSAME
136136
* ..
137+
* .. Intrinsic Functions ..
138+
INTRINSIC REAL
139+
* ..
137140
* .. Executable Statements ..
138141
*
139142
RMAX = SLAMCH( 'O' )
@@ -146,7 +149,7 @@ SUBROUTINE DLAT2S( UPLO, N, A, LDA, SA, LDSA, INFO )
146149
INFO = 1
147150
GO TO 50
148151
END IF
149-
SA( I, J ) = A( I, J )
152+
SA( I, J ) = REAL( A( I, J ) )
150153
10 CONTINUE
151154
20 CONTINUE
152155
ELSE
@@ -157,7 +160,7 @@ SUBROUTINE DLAT2S( UPLO, N, A, LDA, SA, LDSA, INFO )
157160
INFO = 1
158161
GO TO 50
159162
END IF
160-
SA( I, J ) = A( I, J )
163+
SA( I, J ) = REAL( A( I, J ) )
161164
30 CONTINUE
162165
40 CONTINUE
163166
END IF

0 commit comments

Comments
 (0)