125 SUBROUTINE zgttrf( N, DL, D, DU, DU2, IPIV, INFO )
137 COMPLEX*16 D( * ), DL( * ), DU( * ), DU2( * )
143 DOUBLE PRECISION ZERO
144 parameter ( zero = 0.0d+0 )
148 COMPLEX*16 FACT, TEMP, ZDUM
154 INTRINSIC abs, dble, dimag
157 DOUBLE PRECISION CABS1
160 cabs1( zdum ) = abs( dble( zdum ) ) + abs( dimag( zdum ) )
167 CALL xerbla(
'ZGTTRF', -info )
186 IF( cabs1( d( i ) ).GE.cabs1( dl( i ) ) )
THEN
190 IF( cabs1( d( i ) ).NE.zero )
THEN
191 fact = dl( i ) / d( i )
193 d( i+1 ) = d( i+1 ) - fact*du( i )
199 fact = d( i ) / dl( i )
204 d( i+1 ) = temp - fact*d( i+1 )
206 du( i+1 ) = -fact*du( i+1 )
212 IF( cabs1( d( i ) ).GE.cabs1( dl( i ) ) )
THEN
213 IF( cabs1( d( i ) ).NE.zero )
THEN
214 fact = dl( i ) / d( i )
216 d( i+1 ) = d( i+1 ) - fact*du( i )
219 fact = d( i ) / dl( i )
224 d( i+1 ) = temp - fact*d( i+1 )
232 IF( cabs1( d( i ) ).EQ.zero )
THEN
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zgttrf(N, DL, D, DU, DU2, IPIV, INFO)
ZGTTRF