Skip to content

Commit a36e22c

Browse files
authored
Merge pull request #5850 from martin-frbg/lapack1271
Update EXTERNAL declarations in various files (Reference-LAPACK PR 1271)
2 parents 1afb4c9 + cfeb270 commit a36e22c

7 files changed

Lines changed: 55 additions & 39 deletions

File tree

lapack-netlib/SRC/dlaqp2.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ SUBROUTINE DLAQP2( M, N, OFFSET, A, LDA, JPVT, TAU, VN1, VN2,
168168
DOUBLE PRECISION TEMP, TEMP2, TOL3Z
169169
* ..
170170
* .. External Subroutines ..
171-
EXTERNAL DLARF, DLARFG, DSWAP
171+
EXTERNAL DLARF1F, DLARFG, DSWAP
172172
* ..
173173
* .. Intrinsic Functions ..
174174
INTRINSIC ABS, MAX, MIN, SQRT

lapack-netlib/SRC/sgelqt.f

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
*> \param[in] MB
4141
*> \verbatim
4242
*> MB is INTEGER
43-
*> The block size to be used in the blocked QR. MIN(M,N) >= MB >= 1.
43+
*> The block size to be used in the blocked LQ. MIN(M,N) >= MB >= 1.
4444
*> \endverbatim
4545
*>
4646
*> \param[in,out] A
@@ -75,7 +75,10 @@
7575
*>
7676
*> \param[out] WORK
7777
*> \verbatim
78-
*> WORK is REAL array, dimension (MB*N)
78+
*> WORK is REAL array, dimension (MB*M).
79+
*> Note: A smaller workspace of MB*(M-MB) may also be sufficient, but
80+
*> that is yet to be proven. MB*M is a conservative estimate and the
81+
*> recommended value to use.
7982
*> \endverbatim
8083
*>
8184
*> \param[out] INFO
@@ -101,7 +104,7 @@
101104
*> \verbatim
102105
*>
103106
*> The matrix V stores the elementary reflectors H(i) in the i-th row
104-
*> above the diagonal. For example, if M=5 and N=3, the matrix V is
107+
*> above the diagonal. For example, if M=3 and N=5, the matrix V is
105108
*>
106109
*> V = ( 1 v1 v1 v1 v1 )
107110
*> ( 1 v2 v2 v2 )
@@ -121,6 +124,7 @@
121124
*>
122125
* =====================================================================
123126
SUBROUTINE SGELQT( M, N, MB, A, LDA, T, LDT, WORK, INFO )
127+
IMPLICIT NONE
124128
*
125129
* -- LAPACK computational routine --
126130
* -- LAPACK is a software package provided by Univ. of Tennessee, --
@@ -140,7 +144,7 @@ SUBROUTINE SGELQT( M, N, MB, A, LDA, T, LDT, WORK, INFO )
140144
INTEGER I, IB, IINFO, K
141145
* ..
142146
* .. External Subroutines ..
143-
EXTERNAL SGEQRT2, SGEQRT3, SGELQT3, SLARFB, XERBLA
147+
EXTERNAL SGELQT3, SLARFB, XERBLA
144148
* ..
145149
* .. Executable Statements ..
146150
*

lapack-netlib/SRC/sgges.f

Lines changed: 28 additions & 15 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 SGGES + dependencies
109
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/sgges.f">
1110
*> [TGZ]</a>
1211
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/sgges.f">
1312
*> [ZIP]</a>
1413
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sgges.f">
1514
*> [TXT]</a>
16-
*> \endhtmlonly
1715
*
1816
* Definition:
1917
* ===========
@@ -278,9 +276,11 @@
278276
*> \ingroup gges
279277
*
280278
* =====================================================================
281-
SUBROUTINE SGGES( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB,
279+
SUBROUTINE SGGES( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B,
280+
$ LDB,
282281
$ SDIM, ALPHAR, ALPHAI, BETA, VSL, LDVSL, VSR,
283282
$ LDVSR, WORK, LWORK, BWORK, INFO )
283+
IMPLICIT NONE
284284
*
285285
* -- LAPACK driver routine --
286286
* -- LAPACK is a software package provided by Univ. of Tennessee, --
@@ -297,8 +297,12 @@ SUBROUTINE SGGES( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB,
297297
$ VSR( LDVSR, * ), WORK( * )
298298
* ..
299299
* .. Function Arguments ..
300-
LOGICAL SELCTG
301-
EXTERNAL SELCTG
300+
INTERFACE
301+
LOGICAL FUNCTION SELCTG_PROC_TYPE(ALPHAR, ALPHAI, BETA)
302+
REAL ALPHAR, ALPHAI, BETA
303+
END FUNCTION SELCTG_PROC_TYPE
304+
END INTERFACE
305+
PROCEDURE(SELCTG_PROC_TYPE) :: SELCTG
302306
* ..
303307
*
304308
* =====================================================================
@@ -321,14 +325,16 @@ SUBROUTINE SGGES( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB,
321325
REAL DIF( 2 )
322326
* ..
323327
* .. External Subroutines ..
324-
EXTERNAL SGEQRF, SGGBAK, SGGBAL, SGGHRD, SHGEQZ, SLACPY,
325-
$ SLASCL, SLASET, SORGQR, SORMQR, STGSEN
328+
EXTERNAL SGEQRF, SGGBAK, SGGBAL, SGGHRD, SHGEQZ,
329+
$ SLACPY,
330+
$ SLASCL, SLASET, SORGQR, SORMQR, STGSEN, XERBLA
326331
* ..
327332
* .. External Functions ..
328333
LOGICAL LSAME
329334
INTEGER ILAENV
330335
REAL SLAMCH, SLANGE, SROUNDUP_LWORK
331-
EXTERNAL LSAME, ILAENV, SLAMCH, SLANGE, SROUNDUP_LWORK
336+
EXTERNAL LSAME, ILAENV, SLAMCH, SLANGE,
337+
$ SROUNDUP_LWORK
332338
* ..
333339
* .. Intrinsic Functions ..
334340
INTRINSIC ABS, MAX, SQRT
@@ -369,7 +375,8 @@ SUBROUTINE SGGES( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB,
369375
INFO = -1
370376
ELSE IF( IJOBVR.LE.0 ) THEN
371377
INFO = -2
372-
ELSE IF( ( .NOT.WANTST ) .AND. ( .NOT.LSAME( SORT, 'N' ) ) ) THEN
378+
ELSE IF( ( .NOT.WANTST ) .AND.
379+
$ ( .NOT.LSAME( SORT, 'N' ) ) ) THEN
373380
INFO = -3
374381
ELSE IF( N.LT.0 ) THEN
375382
INFO = -5
@@ -399,7 +406,8 @@ SUBROUTINE SGGES( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB,
399406
$ N*ILAENV( 1, 'SORMQR', ' ', N, 1, N, -1 ) )
400407
IF( ILVSL ) THEN
401408
MAXWRK = MAX( MAXWRK, MINWRK - N +
402-
$ N*ILAENV( 1, 'SORGQR', ' ', N, 1, N, -1 ) )
409+
$ N*ILAENV( 1, 'SORGQR', ' ', N, 1, N,
410+
$ -1 ) )
403411
END IF
404412
ELSE
405413
MINWRK = 1
@@ -544,15 +552,18 @@ SUBROUTINE SGGES( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB,
544552
$ IERR )
545553
END IF
546554
IF( ILBSCL )
547-
$ CALL SLASCL( 'G', 0, 0, BNRMTO, BNRM, N, 1, BETA, N, IERR )
555+
$ CALL SLASCL( 'G', 0, 0, BNRMTO, BNRM, N, 1, BETA, N,
556+
$ IERR )
548557
*
549558
* Select eigenvalues
550559
*
551560
DO 10 I = 1, N
552-
BWORK( I ) = SELCTG( ALPHAR( I ), ALPHAI( I ), BETA( I ) )
561+
BWORK( I ) = SELCTG( ALPHAR( I ), ALPHAI( I ),
562+
$ BETA( I ) )
553563
10 CONTINUE
554564
*
555-
CALL STGSEN( 0, ILVSL, ILVSR, BWORK, N, A, LDA, B, LDB, ALPHAR,
565+
CALL STGSEN( 0, ILVSL, ILVSR, BWORK, N, A, LDA, B, LDB,
566+
$ ALPHAR,
556567
$ ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, SDIM, PVSL,
557568
$ PVSR, DIF, WORK( IWRK ), LWORK-IWRK+1, IDUM, 1,
558569
$ IERR )
@@ -614,8 +625,10 @@ SUBROUTINE SGGES( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB,
614625
*
615626
IF( ILASCL ) THEN
616627
CALL SLASCL( 'H', 0, 0, ANRMTO, ANRM, N, N, A, LDA, IERR )
617-
CALL SLASCL( 'G', 0, 0, ANRMTO, ANRM, N, 1, ALPHAR, N, IERR )
618-
CALL SLASCL( 'G', 0, 0, ANRMTO, ANRM, N, 1, ALPHAI, N, IERR )
628+
CALL SLASCL( 'G', 0, 0, ANRMTO, ANRM, N, 1, ALPHAR, N,
629+
$ IERR )
630+
CALL SLASCL( 'G', 0, 0, ANRMTO, ANRM, N, 1, ALPHAI, N,
631+
$ IERR )
619632
END IF
620633
*
621634
IF( ILBSCL ) THEN

lapack-netlib/SRC/slaqr2.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ SUBROUTINE SLAQR2( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH,
311311
* .. External Subroutines ..
312312
EXTERNAL SCOPY, SGEHRD, SGEMM, SLACPY,
313313
$ SLAHQR,
314-
$ SLANV2, SLARF1L, SLARFG, SLASET, SORMHR,
314+
$ SLANV2, SLARF1F, SLARFG, SLASET, SORMHR,
315315
$ STREXC
316316
* ..
317317
* .. Intrinsic Functions ..

lapack-netlib/SRC/zhetrf_aa.f

Lines changed: 6 additions & 5 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 ZHETRF_AA + dependencies
109
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zhetrf_aa.f">
1110
*> [TGZ]</a>
1211
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zhetrf_aa.f">
1312
*> [ZIP]</a>
1413
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhetrf_aa.f">
1514
*> [TXT]</a>
16-
*> \endhtmlonly
1715
*
1816
* Definition:
1917
* ===========
@@ -130,7 +128,8 @@
130128
*> \ingroup hetrf_aa
131129
*
132130
* =====================================================================
133-
SUBROUTINE ZHETRF_AA( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
131+
SUBROUTINE ZHETRF_AA( UPLO, N, A, LDA, IPIV,
132+
$ WORK, LWORK, INFO )
134133
*
135134
* -- LAPACK computational routine --
136135
* -- LAPACK is a software package provided by Univ. of Tennessee, --
@@ -164,7 +163,8 @@ SUBROUTINE ZHETRF_AA( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
164163
EXTERNAL LSAME, ILAENV
165164
* ..
166165
* .. External Subroutines ..
167-
EXTERNAL ZLAHEF_AA, ZGEMM, ZGEMV, ZCOPY, ZSCAL, ZSWAP, XERBLA
166+
EXTERNAL ZLAHEF_AA, ZGEMM, ZCOPY, ZSCAL, ZSWAP,
167+
$ XERBLA
168168
* ..
169169
* .. Intrinsic Functions ..
170170
INTRINSIC DBLE, DCONJG, MAX
@@ -438,7 +438,8 @@ SUBROUTINE ZHETRF_AA( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
438438
*
439439
J3 = J2
440440
DO MJ = NJ-1, 1, -1
441-
CALL ZGEMM( 'No transpose', 'Conjugate transpose',
441+
CALL ZGEMM( 'No transpose',
442+
$ 'Conjugate transpose',
442443
$ MJ, 1, JB+1,
443444
$ -ONE, WORK( (J3-J1+1)+K1*N ), N,
444445
$ A( J3, J1-K2 ), LDA,

lapack-netlib/SRC/zlahef_aa.f

Lines changed: 3 additions & 5 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 ZLAHEF_AA + dependencies
109
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zlahef_aa.f">
1110
*> [TGZ]</a>
1211
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zlahef_aa.f">
1312
*> [ZIP]</a>
1413
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlahef_aa.f">
1514
*> [TXT]</a>
16-
*> \endhtmlonly
1715
*
1816
* Definition:
1917
* ===========
@@ -136,7 +134,7 @@
136134
*> \author Univ. of Colorado Denver
137135
*> \author NAG Ltd.
138136
*
139-
*> \ingroup complex16HEcomputational
137+
*> \ingroup lahef_aa
140138
*
141139
* =====================================================================
142140
SUBROUTINE ZLAHEF_AA( UPLO, J1, M, NB, A, LDA, IPIV,
@@ -172,8 +170,8 @@ SUBROUTINE ZLAHEF_AA( UPLO, J1, M, NB, A, LDA, IPIV,
172170
EXTERNAL LSAME, ILAENV, IZAMAX
173171
* ..
174172
* .. External Subroutines ..
175-
EXTERNAL ZGEMM, ZGEMV, ZAXPY, ZLACGV, ZCOPY, ZSCAL, ZSWAP,
176-
$ ZLASET, XERBLA
173+
EXTERNAL ZGEMV, ZAXPY, ZLACGV, ZCOPY, ZSCAL,
174+
$ ZSWAP, ZLASET, XERBLA
177175
* ..
178176
* .. Intrinsic Functions ..
179177
INTRINSIC DBLE, DCONJG, MAX

lapack-netlib/SRC/zrscl.f

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
1-
*> \brief \b ZDRSCL multiplies a vector by the reciprocal of a real scalar.
1+
*> \brief \b ZRSCL multiplies a vector by the reciprocal of a complex scalar.
22
*
33
* =========== DOCUMENTATION ===========
44
*
55
* Online html documentation available at
66
* http://www.netlib.org/lapack/explore-html/
77
*
8-
*> \htmlonly
9-
*> Download ZDRSCL + dependencies
10-
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zdrscl.f">
8+
*> Download ZRSCL + dependencies
9+
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zrscl.f">
1110
*> [TGZ]</a>
12-
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zdrscl.f">
11+
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zrscl.f">
1312
*> [ZIP]</a>
14-
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zdrscl.f">
13+
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zrscl.f">
1514
*> [TXT]</a>
16-
*> \endhtmlonly
1715
*
1816
* Definition:
1917
* ===========
@@ -81,6 +79,7 @@
8179
*
8280
* =====================================================================
8381
SUBROUTINE ZRSCL( N, A, X, INCX )
82+
IMPLICIT NONE
8483
*
8584
* -- LAPACK auxiliary routine --
8685
* -- LAPACK is a software package provided by Univ. of Tennessee, --
@@ -170,7 +169,8 @@ SUBROUTINE ZRSCL( N, A, X, INCX )
170169
ELSE IF( (ABS( UR ).GT.SAFMAX).OR.(ABS( UI ).GT.SAFMAX) ) THEN
171170
IF( (ABSR.GT.OV).OR.(ABSI.GT.OV) ) THEN
172171
* This means that a and b are both Inf. No need for scaling.
173-
CALL ZSCAL( N, DCMPLX( ONE / UR, -ONE / UI ), X, INCX )
172+
CALL ZSCAL( N, DCMPLX( ONE / UR, -ONE / UI ), X,
173+
$ INCX )
174174
ELSE
175175
CALL ZDSCAL( N, SAFMIN, X, INCX )
176176
IF( (ABS( UR ).GT.OV).OR.(ABS( UI ).GT.OV) ) THEN

0 commit comments

Comments
 (0)