@@ -398,7 +398,7 @@ SUBROUTINE ZTGSJA( JOBU, JOBV, JOBQ, M, P, N, K, L, A, LDA, B,
398398* .. Parameters ..
399399 INTEGER MAXIT
400400 PARAMETER ( MAXIT = 40 )
401- DOUBLE PRECISION ZERO, ONE
401+ DOUBLE PRECISION ZERO, ONE, HUGENUM
402402 PARAMETER ( ZERO = 0.0D+0 , ONE = 1.0D+0 )
403403 COMPLEX * 16 CZERO, CONE
404404 PARAMETER ( CZERO = ( 0.0D+0 , 0.0D+0 ),
@@ -421,7 +421,8 @@ SUBROUTINE ZTGSJA( JOBU, JOBV, JOBQ, M, P, N, K, L, A, LDA, B,
421421 $ ZLASET, ZROT
422422* ..
423423* .. Intrinsic Functions ..
424- INTRINSIC ABS, DBLE, DCONJG, MAX, MIN
424+ INTRINSIC ABS, DBLE, DCONJG, MAX, MIN, HUGE
425+ PARAMETER ( HUGENUM = HUGE (ZERO) )
425426* ..
426427* .. Executable Statements ..
427428*
@@ -607,9 +608,9 @@ SUBROUTINE ZTGSJA( JOBU, JOBV, JOBQ, M, P, N, K, L, A, LDA, B,
607608*
608609 A1 = DBLE ( A( K+ I, N- L+ I ) )
609610 B1 = DBLE ( B( I, N- L+ I ) )
611+ GAMMA = B1 / A1
610612*
611- IF ( A1.NE. ZERO ) THEN
612- GAMMA = B1 / A1
613+ IF ( (GAMMA.LE. HUGENUM).AND. (GAMMA.GE. - HUGENUM) ) THEN
613614*
614615 IF ( GAMMA.LT. ZERO ) THEN
615616 CALL ZDSCAL( L- I+1 , - ONE, B( I, N- L+ I ), LDB )
0 commit comments