60 DOUBLE PRECISION :: A(*), B(N), X(N)
64 INTEGER :: I, INDEX_D, INDEX_L, INDEX_U
65 DOUBLE PRECISION :: FACT
76 index_l = (i-1) * n + (i-1)
77 index_d = (i-2) * n + (i-1)
78 index_u = (i-2) * n + i
81 IF (a(index_d) .EQ. 0.0d0)
THEN
86 fact = a(index_l) / a(index_d)
89 index_d = (i-1) * n + i
90 a(index_d) = a(index_d) - fact * a(index_u)
93 b(i) = b(i) - fact * b(i-1)
96 IF (a(index_d) .EQ. 0.0d0)
THEN
104 index_d = (n-1) * n + n
105 x(n) = b(n) / a(index_d)
108 index_d = (i-1) * n + i
109 index_u = (i-1) * n + (i+1)
110 x(i) = (b(i) - a(index_u) * x(i+1)) / a(index_d)