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* ===========
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
0 commit comments