1 SUBROUTINE zqrt13( SCALE, M, N, A, LDA, NORMA, ISEED )
8 INTEGER lda, m, n, scale
13 COMPLEX*16 a( lda, * )
52 parameter( one = 1.0d0 )
56 DOUBLE PRECISION bignum, smlnum
59 DOUBLE PRECISION dlamch, dzasum, zlange
60 EXTERNAL dlamch, dzasum, zlange
66 INTRINSIC dble, dcmplx, sign
69 DOUBLE PRECISION dummy( 1 )
73 IF( m.LE.0 .OR. n.LE.0 )
79 CALL zlarnv( 2, iseed, m, a( 1, j ) )
81 a( j, j ) = a( j, j ) + dcmplx( sign( dzasum( m, a( 1, j ),
82 $ 1 ), dble( a( j, j ) ) ) )
89 norma = zlange(
'Max', m, n, a, lda, dummy )
90 smlnum = dlamch(
'Safe minimum' )
92 CALL
dlabad( smlnum, bignum )
93 smlnum = smlnum / dlamch(
'Epsilon' )
100 CALL
zlascl(
'General', 0, 0, norma, bignum, m, n, a, lda,
102 ELSE IF( scale.EQ.3 )
THEN
106 CALL
zlascl(
'General', 0, 0, norma, smlnum, m, n, a, lda,
111 norma = zlange(
'One-norm', m, n, a, lda, dummy )