Skip to content

Commit 7367af6

Browse files
authored
Merge pull request #5780 from martin-frbg/lapack1225
Calculate LWORK in CUNMLQ K=0 case like ZUNMLQ (Reference-LAPACK PR 1225)
2 parents 05ecfc6 + 0b3b486 commit 7367af6

1 file changed

Lines changed: 12 additions & 12 deletions

File tree

lapack-netlib/SRC/cunmlq.f

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,13 @@
55
* Online html documentation available at
66
* http://www.netlib.org/lapack/explore-html/
77
*
8-
*> \htmlonly
98
*> Download CUNMLQ + dependencies
109
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/cunmlq.f">
1110
*> [TGZ]</a>
1211
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/cunmlq.f">
1312
*> [ZIP]</a>
1413
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cunmlq.f">
1514
*> [TXT]</a>
16-
*> \endhtmlonly
1715
*
1816
* Definition:
1917
* ===========
@@ -165,6 +163,7 @@
165163
* =====================================================================
166164
SUBROUTINE CUNMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
167165
$ WORK, LWORK, INFO )
166+
IMPLICIT NONE
168167
*
169168
* -- LAPACK computational routine --
170169
* -- LAPACK is a software package provided by Univ. of Tennessee, --
@@ -244,13 +243,10 @@ SUBROUTINE CUNMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
244243
*
245244
* Compute the workspace requirements
246245
*
247-
IF( M.EQ.0 .OR. N.EQ.0 .OR. K.EQ.0 ) THEN
248-
LWKOPT = 1
249-
ELSE
250-
NB = MIN( NBMAX, ILAENV( 1, 'CUNMLQ', SIDE // TRANS, M, N,
251-
$ K, -1 ) )
252-
LWKOPT = NW*NB + TSIZE
253-
END IF
246+
NB = MIN( NBMAX, ILAENV( 1, 'CUNMLQ', SIDE // TRANS, M, N,
247+
$ K,
248+
$ -1 ) )
249+
LWKOPT = NW*NB + TSIZE
254250
WORK( 1 ) = SROUNDUP_LWORK(LWKOPT)
255251
END IF
256252
*
@@ -264,6 +260,7 @@ SUBROUTINE CUNMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
264260
* Quick return if possible
265261
*
266262
IF( M.EQ.0 .OR. N.EQ.0 .OR. K.EQ.0 ) THEN
263+
WORK( 1 ) = 1
267264
RETURN
268265
END IF
269266
*
@@ -274,7 +271,8 @@ SUBROUTINE CUNMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
274271
IF( NB.GT.1 .AND. NB.LT.K ) THEN
275272
IF( LWORK.LT.LWKOPT ) THEN
276273
NB = (LWORK-TSIZE) / LDWORK
277-
NBMIN = MAX( 2, ILAENV( 2, 'CUNMLQ', SIDE // TRANS, M, N, K,
274+
NBMIN = MAX( 2, ILAENV( 2, 'CUNMLQ', SIDE // TRANS, M, N,
275+
$ K,
278276
$ -1 ) )
279277
END IF
280278
END IF
@@ -283,7 +281,8 @@ SUBROUTINE CUNMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
283281
*
284282
* Use unblocked code
285283
*
286-
CALL CUNML2( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK,
284+
CALL CUNML2( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
285+
$ WORK,
287286
$ IINFO )
288287
ELSE
289288
*
@@ -339,7 +338,8 @@ SUBROUTINE CUNMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
339338
*
340339
* Apply H or H**H
341340
*
342-
CALL CLARFB( SIDE, TRANST, 'Forward', 'Rowwise', MI, NI, IB,
341+
CALL CLARFB( SIDE, TRANST, 'Forward', 'Rowwise', MI, NI,
342+
$ IB,
343343
$ A( I, I ), LDA, WORK( IWT ), LDT,
344344
$ C( IC, JC ), LDC, WORK, LDWORK )
345345
10 CONTINUE

0 commit comments

Comments
 (0)