o see http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=2&t=529 (forum topic 529)
o Increase MAXIT to 200 (was 20 before)
o Add some XERBLA calls when INFO is not zero.
*
* .. Parameters ..
INTEGER MAXIT
- PARAMETER ( MAXIT = 20 )
+ PARAMETER ( MAXIT = 200 )
DOUBLE PRECISION ZERO, ONE, TWO, THREE, FOUR, EIGHT, TEN
PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0, TWO = 2.0D+0,
$ THREE = 3.0D+0, FOUR = 4.0D+0, EIGHT = 8.0D+0,
CALL DLASD8( ICOMPQ, K, D, Z, VF, VL, DIFL, DIFR, LDGNUM,
$ WORK( ISIGMA ), WORK( IW ), INFO )
*
+* Handle error returned
+*
+ IF( INFO.NE.0 ) THEN
+ CALL XERBLA( 'DLASD8', -INFO )
+ RETURN
+ END IF
+*
* Save the poles if ICOMPQ = 1.
*
IF( ICOMPQ.EQ.1 ) THEN
* If the root finder fails, the computation is terminated.
*
IF( INFO.NE.0 ) THEN
+ CALL XERBLA( 'DLASD4', -INFO )
RETURN
END IF
WORK( IWK3I+J ) = WORK( IWK3I+J )*WORK( J )*WORK( IWK2I+J )
*
* .. Parameters ..
INTEGER MAXIT
- PARAMETER ( MAXIT = 20 )
+ PARAMETER ( MAXIT = 200 )
REAL ZERO, ONE, TWO, THREE, FOUR, EIGHT, TEN
PARAMETER ( ZERO = 0.0E+0, ONE = 1.0E+0, TWO = 2.0E+0,
$ THREE = 3.0E+0, FOUR = 4.0E+0, EIGHT = 8.0E+0,
CALL SLASD8( ICOMPQ, K, D, Z, VF, VL, DIFL, DIFR, LDGNUM,
$ WORK( ISIGMA ), WORK( IW ), INFO )
*
+* Handle error returned
+*
+ IF( INFO.NE.0 ) THEN
+ CALL XERBLA( 'SLASD8', -INFO )
+ RETURN
+ END IF
+*
* Save the poles if ICOMPQ = 1.
*
IF( ICOMPQ.EQ.1 ) THEN
* If the root finder fails, the computation is terminated.
*
IF( INFO.NE.0 ) THEN
+ CALL XERBLA( 'SLASD4', -INFO )
RETURN
END IF
WORK( IWK3I+J ) = WORK( IWK3I+J )*WORK( J )*WORK( IWK2I+J )