2
3
4
5
6
7
8
9
10
11
12
13 INTEGER INFO, N
14
15
16 COMPLEX*16 D( * ), DL( * ), DU( * )
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 INTEGER I
66 COMPLEX*16 FACT
67
68
69 INTRINSIC abs
70
71
72 EXTERNAL xerbla
73
74
75 COMPLEX*16 CZERO
76 parameter( czero = ( 0.0d+0, 0.0d+0 ) )
77
78
79
80 info = 0
81 IF( n.LT.0 ) THEN
82 info = -1
83 CALL xerbla( 'ZDTTRF', -info )
84 RETURN
85 END IF
86
87
88
89 IF( n.EQ.0 )
90 $ RETURN
91
92 DO 20 i = 1, n - 1
93 IF( dl( i ).EQ.czero ) THEN
94
95
96
97 IF( d( i ).EQ.czero .AND. info.EQ.0 )
98 $ info = i
99 ELSE
100
101 fact = dl( i ) / d( i )
102 dl( i ) = fact
103 d( i+1 ) = d( i+1 ) - fact*du( i )
104 END IF
105 20 CONTINUE
106 IF( d( n ).EQ.czero .AND. info.EQ.0 ) THEN
107 info = n
108 RETURN
109 END IF
110
111 RETURN
112
113
114