Skip to content

Commit f01a4d7

Browse files
kleine_likleine_li
authored andcommitted
Apply ROUNDUP_LWORK func in lapack
1 parent 4174d8d commit f01a4d7

File tree

213 files changed

+876
-709
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

213 files changed

+876
-709
lines changed

SRC/cgees.f

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,8 @@ SUBROUTINE CGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, VS,
235235
* .. External Functions ..
236236
LOGICAL LSAME
237237
INTEGER ILAENV
238-
REAL CLANGE, SLAMCH
239-
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH
238+
REAL CLANGE, SLAMCH, SROUNDUP_LWORK
239+
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH, SROUNDUP_LWORK
240240
* ..
241241
* .. Intrinsic Functions ..
242242
INTRINSIC MAX, SQRT
@@ -292,7 +292,7 @@ SUBROUTINE CGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, VS,
292292
MAXWRK = MAX( MAXWRK, HSWORK )
293293
END IF
294294
END IF
295-
WORK( 1 ) = MAXWRK
295+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
296296
*
297297
IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN
298298
INFO = -12
@@ -412,7 +412,7 @@ SUBROUTINE CGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, VS,
412412
CALL CCOPY( N, A, LDA+1, W, 1 )
413413
END IF
414414
*
415-
WORK( 1 ) = MAXWRK
415+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
416416
RETURN
417417
*
418418
* End of CGEES

SRC/cgeesx.f

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -279,8 +279,8 @@ SUBROUTINE CGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, W,
279279
* .. External Functions ..
280280
LOGICAL LSAME
281281
INTEGER ILAENV
282-
REAL CLANGE, SLAMCH
283-
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH
282+
REAL CLANGE, SLAMCH, SROUNDUP_LWORK
283+
EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH, SROUNDUP_LWORK
284284
* ..
285285
* .. Intrinsic Functions ..
286286
INTRINSIC MAX, SQRT
@@ -350,7 +350,7 @@ SUBROUTINE CGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, W,
350350
IF( .NOT.WANTSN )
351351
$ LWRK = MAX( LWRK, ( N*N )/2 )
352352
END IF
353-
WORK( 1 ) = LWRK
353+
WORK( 1 ) = SROUNDUP_LWORK(LWRK)
354354
*
355355
IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN
356356
INFO = -15
@@ -487,7 +487,7 @@ SUBROUTINE CGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, W,
487487
END IF
488488
END IF
489489
*
490-
WORK( 1 ) = MAXWRK
490+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
491491
RETURN
492492
*
493493
* End of CGEESX

SRC/cgeev.f

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,9 @@ SUBROUTINE CGEEV( JOBVL, JOBVR, N, A, LDA, W, VL, LDVL, VR, LDVR,
218218
* .. External Functions ..
219219
LOGICAL LSAME
220220
INTEGER ISAMAX, ILAENV
221-
REAL SLAMCH, SCNRM2, CLANGE
222-
EXTERNAL LSAME, ISAMAX, ILAENV, SLAMCH, SCNRM2, CLANGE
221+
REAL SLAMCH, SCNRM2, CLANGE, SROUNDUP_LWORK
222+
EXTERNAL LSAME, ISAMAX, ILAENV, SLAMCH, SCNRM2, CLANGE,
223+
$ SROUNDUP_LWORK
223224
* ..
224225
* .. Intrinsic Functions ..
225226
INTRINSIC REAL, CMPLX, CONJG, AIMAG, MAX, SQRT
@@ -291,7 +292,7 @@ SUBROUTINE CGEEV( JOBVL, JOBVR, N, A, LDA, W, VL, LDVL, VR, LDVR,
291292
HSWORK = INT( WORK(1) )
292293
MAXWRK = MAX( MAXWRK, HSWORK, MINWRK )
293294
END IF
294-
WORK( 1 ) = MAXWRK
295+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
295296
*
296297
IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN
297298
INFO = -12
@@ -492,7 +493,7 @@ SUBROUTINE CGEEV( JOBVL, JOBVR, N, A, LDA, W, VL, LDVL, VR, LDVR,
492493
END IF
493494
END IF
494495
*
495-
WORK( 1 ) = MAXWRK
496+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
496497
RETURN
497498
*
498499
* End of CGEEV

SRC/cgeevx.f

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -330,8 +330,9 @@ SUBROUTINE CGEEVX( BALANC, JOBVL, JOBVR, SENSE, N, A, LDA, W, VL,
330330
* .. External Functions ..
331331
LOGICAL LSAME
332332
INTEGER ISAMAX, ILAENV
333-
REAL SLAMCH, SCNRM2, CLANGE
334-
EXTERNAL LSAME, ISAMAX, ILAENV, SLAMCH, SCNRM2, CLANGE
333+
REAL SLAMCH, SCNRM2, CLANGE, SROUNDUP_LWORK
334+
EXTERNAL LSAME, ISAMAX, ILAENV, SLAMCH, SCNRM2, CLANGE,
335+
$ SROUNDUP_LWORK
335336
* ..
336337
* .. Intrinsic Functions ..
337338
INTRINSIC REAL, CMPLX, CONJG, AIMAG, MAX, SQRT
@@ -434,7 +435,7 @@ SUBROUTINE CGEEVX( BALANC, JOBVL, JOBVR, SENSE, N, A, LDA, W, VL,
434435
END IF
435436
MAXWRK = MAX( MAXWRK, MINWRK )
436437
END IF
437-
WORK( 1 ) = MAXWRK
438+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
438439
*
439440
IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY ) THEN
440441
INFO = -20
@@ -656,7 +657,7 @@ SUBROUTINE CGEEVX( BALANC, JOBVL, JOBVR, SENSE, N, A, LDA, W, VL,
656657
END IF
657658
END IF
658659
*
659-
WORK( 1 ) = MAXWRK
660+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
660661
RETURN
661662
*
662663
* End of CGEEVX

SRC/cgehrd.f

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,8 @@ SUBROUTINE CGEHRD( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO )
201201
* ..
202202
* .. External Functions ..
203203
INTEGER ILAENV
204-
EXTERNAL ILAENV
204+
REAL SROUNDUP_LWORK
205+
EXTERNAL ILAENV, SROUNDUP_LWORK
205206
* ..
206207
* .. Executable Statements ..
207208
*
@@ -227,7 +228,7 @@ SUBROUTINE CGEHRD( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO )
227228
*
228229
NB = MIN( NBMAX, ILAENV( 1, 'CGEHRD', ' ', N, ILO, IHI, -1 ) )
229230
LWKOPT = N*NB + TSIZE
230-
WORK( 1 ) = LWKOPT
231+
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
231232
END IF
232233
*
233234
IF( INFO.NE.0 ) THEN
@@ -344,7 +345,7 @@ SUBROUTINE CGEHRD( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO )
344345
* Use unblocked code to reduce the rest of the matrix
345346
*
346347
CALL CGEHD2( N, I, IHI, A, LDA, TAU, WORK, IINFO )
347-
WORK( 1 ) = LWKOPT
348+
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
348349
*
349350
RETURN
350351
*

SRC/cgelq.f

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,8 @@ SUBROUTINE CGELQ( M, N, A, LDA, T, TSIZE, WORK, LWORK,
192192
* ..
193193
* .. External Functions ..
194194
LOGICAL LSAME
195-
EXTERNAL LSAME
195+
REAL SROUNDUP_LWORK
196+
EXTERNAL LSAME, SROUNDUP_LWORK
196197
* ..
197198
* .. External Subroutines ..
198199
EXTERNAL CGELQT, CLASWLQ, XERBLA
@@ -294,9 +295,9 @@ SUBROUTINE CGELQ( M, N, A, LDA, T, TSIZE, WORK, LWORK,
294295
T( 2 ) = MB
295296
T( 3 ) = NB
296297
IF( MINW ) THEN
297-
WORK( 1 ) = LWMIN
298+
WORK( 1 ) = SROUNDUP_LWORK(LWMIN)
298299
ELSE
299-
WORK( 1 ) = LWREQ
300+
WORK( 1 ) = SROUNDUP_LWORK(LWREQ)
300301
END IF
301302
END IF
302303
IF( INFO.NE.0 ) THEN
@@ -321,7 +322,7 @@ SUBROUTINE CGELQ( M, N, A, LDA, T, TSIZE, WORK, LWORK,
321322
$ LWORK, INFO )
322323
END IF
323324
*
324-
WORK( 1 ) = LWREQ
325+
WORK( 1 ) = SROUNDUP_LWORK(LWREQ)
325326
*
326327
RETURN
327328
*

SRC/cgelqf.f

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,8 @@ SUBROUTINE CGELQF( M, N, A, LDA, TAU, WORK, LWORK, INFO )
167167
* ..
168168
* .. External Functions ..
169169
INTEGER ILAENV
170-
EXTERNAL ILAENV
170+
REAL SROUNDUP_LWORK
171+
EXTERNAL ILAENV, SROUNDUP_LWORK
171172
* ..
172173
* .. Executable Statements ..
173174
*
@@ -176,7 +177,7 @@ SUBROUTINE CGELQF( M, N, A, LDA, TAU, WORK, LWORK, INFO )
176177
INFO = 0
177178
NB = ILAENV( 1, 'CGELQF', ' ', M, N, -1, -1 )
178179
LWKOPT = M*NB
179-
WORK( 1 ) = LWKOPT
180+
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
180181
LQUERY = ( LWORK.EQ.-1 )
181182
IF( M.LT.0 ) THEN
182183
INFO = -1
@@ -266,7 +267,7 @@ SUBROUTINE CGELQF( M, N, A, LDA, TAU, WORK, LWORK, INFO )
266267
$ CALL CGELQ2( M-I+1, N-I+1, A( I, I ), LDA, TAU( I ), WORK,
267268
$ IINFO )
268269
*
269-
WORK( 1 ) = IWS
270+
WORK( 1 ) = SROUNDUP_LWORK(IWS)
270271
RETURN
271272
*
272273
* End of CGELQF

SRC/cgelsd.f

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -254,8 +254,8 @@ SUBROUTINE CGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
254254
* ..
255255
* .. External Functions ..
256256
INTEGER ILAENV
257-
REAL CLANGE, SLAMCH
258-
EXTERNAL CLANGE, SLAMCH, ILAENV
257+
REAL CLANGE, SLAMCH, SROUNDUP_LWORK
258+
EXTERNAL CLANGE, SLAMCH, ILAENV, SROUNDUP_LWORK
259259
* ..
260260
* .. Intrinsic Functions ..
261261
INTRINSIC INT, LOG, MAX, MIN, REAL
@@ -367,7 +367,7 @@ SUBROUTINE CGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
367367
END IF
368368
END IF
369369
MINWRK = MIN( MINWRK, MAXWRK )
370-
WORK( 1 ) = MAXWRK
370+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
371371
IWORK( 1 ) = LIWORK
372372
RWORK( 1 ) = LRWORK
373373
*
@@ -646,7 +646,7 @@ SUBROUTINE CGELSD( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
646646
END IF
647647
*
648648
10 CONTINUE
649-
WORK( 1 ) = MAXWRK
649+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
650650
IWORK( 1 ) = LIWORK
651651
RWORK( 1 ) = LRWORK
652652
RETURN

SRC/cgelss.f

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,8 @@ SUBROUTINE CGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
218218
* ..
219219
* .. External Functions ..
220220
INTEGER ILAENV
221-
REAL CLANGE, SLAMCH
222-
EXTERNAL ILAENV, CLANGE, SLAMCH
221+
REAL CLANGE, SLAMCH, SROUNDUP_LWORK
222+
EXTERNAL ILAENV, CLANGE, SLAMCH, SROUNDUP_LWORK
223223
* ..
224224
* .. Intrinsic Functions ..
225225
INTRINSIC MAX, MIN
@@ -361,7 +361,7 @@ SUBROUTINE CGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
361361
END IF
362362
MAXWRK = MAX( MINWRK, MAXWRK )
363363
END IF
364-
WORK( 1 ) = MAXWRK
364+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
365365
*
366366
IF( LWORK.LT.MINWRK .AND. .NOT.LQUERY )
367367
$ INFO = -12
@@ -758,7 +758,7 @@ SUBROUTINE CGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
758758
CALL CLASCL( 'G', 0, 0, BIGNUM, BNRM, N, NRHS, B, LDB, INFO )
759759
END IF
760760
70 CONTINUE
761-
WORK( 1 ) = MAXWRK
761+
WORK( 1 ) = SROUNDUP_LWORK(MAXWRK)
762762
RETURN
763763
*
764764
* End of CGELSS

SRC/cgelst.f

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -224,15 +224,15 @@ SUBROUTINE CGELST( TRANS, M, N, NRHS, A, LDA, B, LDB, WORK, LWORK,
224224
* .. External Functions ..
225225
LOGICAL LSAME
226226
INTEGER ILAENV
227-
REAL SLAMCH, CLANGE
228-
EXTERNAL LSAME, ILAENV, SLAMCH, CLANGE
227+
REAL SLAMCH, CLANGE, SROUNDUP_LWORK
228+
EXTERNAL LSAME, ILAENV, SLAMCH, CLANGE, SROUNDUP_LWORK
229229
* ..
230230
* .. External Subroutines ..
231231
EXTERNAL CGELQT, CGEQRT, CGEMLQT, CGEMQRT,
232232
$ CLASCL, CLASET, CTRTRS, XERBLA
233233
* ..
234234
* .. Intrinsic Functions ..
235-
INTRINSIC REAL, MAX, MIN
235+
INTRINSIC MAX, MIN
236236
* ..
237237
* .. Executable Statements ..
238238
*
@@ -270,7 +270,7 @@ SUBROUTINE CGELST( TRANS, M, N, NRHS, A, LDA, B, LDB, WORK, LWORK,
270270
*
271271
MNNRHS = MAX( MN, NRHS )
272272
LWOPT = MAX( 1, (MN+MNNRHS)*NB )
273-
WORK( 1 ) = REAL( LWOPT )
273+
WORK( 1 ) = SROUNDUP_LWORK( LWOPT )
274274
*
275275
END IF
276276
*
@@ -285,7 +285,7 @@ SUBROUTINE CGELST( TRANS, M, N, NRHS, A, LDA, B, LDB, WORK, LWORK,
285285
*
286286
IF( MIN( M, N, NRHS ).EQ.0 ) THEN
287287
CALL CLASET( 'Full', MAX( M, N ), NRHS, CZERO, CZERO, B, LDB )
288-
WORK( 1 ) = REAL( LWOPT )
288+
WORK( 1 ) = SROUNDUP_LWORK( LWOPT )
289289
RETURN
290290
END IF
291291
*
@@ -333,7 +333,7 @@ SUBROUTINE CGELST( TRANS, M, N, NRHS, A, LDA, B, LDB, WORK, LWORK,
333333
* Matrix all zero. Return zero solution.
334334
*
335335
CALL CLASET( 'Full', MAX( M, N ), NRHS, CZERO, CZERO, B, LDB )
336-
WORK( 1 ) = REAL( LWOPT )
336+
WORK( 1 ) = SROUNDUP_LWORK( LWOPT )
337337
RETURN
338338
END IF
339339
*
@@ -523,7 +523,7 @@ SUBROUTINE CGELST( TRANS, M, N, NRHS, A, LDA, B, LDB, WORK, LWORK,
523523
$ INFO )
524524
END IF
525525
*
526-
WORK( 1 ) = REAL( LWOPT )
526+
WORK( 1 ) = SROUNDUP_LWORK( LWOPT )
527527
*
528528
RETURN
529529
*

SRC/cgeqlf.f

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,8 @@ SUBROUTINE CGEQLF( M, N, A, LDA, TAU, WORK, LWORK, INFO )
162162
* ..
163163
* .. External Functions ..
164164
INTEGER ILAENV
165-
EXTERNAL ILAENV
165+
REAL SROUNDUP_LWORK
166+
EXTERNAL ILAENV, SROUNDUP_LWORK
166167
* ..
167168
* .. Executable Statements ..
168169
*
@@ -186,7 +187,7 @@ SUBROUTINE CGEQLF( M, N, A, LDA, TAU, WORK, LWORK, INFO )
186187
NB = ILAENV( 1, 'CGEQLF', ' ', M, N, -1, -1 )
187188
LWKOPT = N*NB
188189
END IF
189-
WORK( 1 ) = LWKOPT
190+
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
190191
*
191192
IF( LWORK.LT.MAX( 1, N ) .AND. .NOT.LQUERY ) THEN
192193
INFO = -7
@@ -276,7 +277,7 @@ SUBROUTINE CGEQLF( M, N, A, LDA, TAU, WORK, LWORK, INFO )
276277
IF( MU.GT.0 .AND. NU.GT.0 )
277278
$ CALL CGEQL2( MU, NU, A, LDA, TAU, WORK, IINFO )
278279
*
279-
WORK( 1 ) = IWS
280+
WORK( 1 ) = SROUNDUP_LWORK(IWS)
280281
RETURN
281282
*
282283
* End of CGEQLF

SRC/cgeqrf.f

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,8 @@ SUBROUTINE CGEQRF( M, N, A, LDA, TAU, WORK, LWORK, INFO )
170170
* ..
171171
* .. External Functions ..
172172
INTEGER ILAENV
173-
EXTERNAL ILAENV
173+
REAL SROUNDUP_LWORK
174+
EXTERNAL ILAENV, SROUNDUP_LWORK
174175
* ..
175176
* .. Executable Statements ..
176177
*
@@ -199,7 +200,7 @@ SUBROUTINE CGEQRF( M, N, A, LDA, TAU, WORK, LWORK, INFO )
199200
ELSE
200201
LWKOPT = N*NB
201202
END IF
202-
WORK( 1 ) = LWKOPT
203+
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
203204
RETURN
204205
END IF
205206
*
@@ -274,7 +275,7 @@ SUBROUTINE CGEQRF( M, N, A, LDA, TAU, WORK, LWORK, INFO )
274275
$ CALL CGEQR2( M-I+1, N-I+1, A( I, I ), LDA, TAU( I ), WORK,
275276
$ IINFO )
276277
*
277-
WORK( 1 ) = IWS
278+
WORK( 1 ) = SROUNDUP_LWORK(IWS)
278279
RETURN
279280
*
280281
* End of CGEQRF

0 commit comments

Comments
 (0)