110 SUBROUTINE cgetc2( N, A, LDA, IPIV, JPIV, INFO )
120 INTEGER IPIV( * ), JPIV( * )
128 parameter( zero = 0.0e+0, one = 1.0e+0 )
131 INTEGER I, IP, IPV, J, JP, JPV
132 REAL BIGNUM, EPS, SMIN, SMLNUM, XMAX
142 INTRINSIC abs, cmplx, max
156 smlnum = slamch(
'S' ) / eps
157 bignum = one / smlnum
158 CALL slabad( smlnum, bignum )
165 IF( abs( a( 1, 1 ) ).LT.smlnum )
THEN 167 a( 1, 1 ) = cmplx( smlnum, zero )
182 IF( abs( a( ip, jp ) ).GE.xmax )
THEN 183 xmax = abs( a( ip, jp ) )
190 $ smin = max( eps*xmax, smlnum )
195 $
CALL cswap( n, a( ipv, 1 ), lda, a( i, 1 ), lda )
201 $
CALL cswap( n, a( 1, jpv ), 1, a( 1, i ), 1 )
206 IF( abs( a( i, i ) ).LT.smin )
THEN 208 a( i, i ) = cmplx( smin, zero )
211 a( j, i ) = a( j, i ) / a( i, i )
213 CALL cgeru( n-i, n-i, -cmplx( one ), a( i+1, i ), 1,
214 $ a( i, i+1 ), lda, a( i+1, i+1 ), lda )
217 IF( abs( a( n, n ) ).LT.smin )
THEN 219 a( n, n ) = cmplx( smin, zero )
subroutine slabad(SMALL, LARGE)
SLABAD
subroutine cgeru(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
CGERU
subroutine cgetc2(N, A, LDA, IPIV, JPIV, INFO)
CGETC2 computes the LU factorization with complete pivoting of the general n-by-n matrix...
subroutine cswap(N, CX, INCX, CY, INCY)
CSWAP