56 SUBROUTINE sgegssv(N, A, B, X, MAX_ITER, TOL, OMEGA, INFO)
64 INTEGER :: N, MAX_ITER, INFO
65 REAL :: A(*), B(N), X(N), TOL, OMEGA
69 INTEGER :: I, J, K, INDEX
71 REAL :: S1, S2, DIFF, MAX_DIFF
86 index = (i - 1) * n + j
87 s1 = s1 + a(index) * x_new(j)
92 index = (i - 1) * n + j
93 s2 = s2 + a(index) * x(j)
97 index = (i - 1) * n + i
98 IF (a(index) .EQ. 0.0)
THEN
104 x_new(i) = (b(i) - s1 - s2) / a(index)
105 x_new(i) = x(i) + omega * (x_new(i) - x(i))
112 diff = abs(x_new(i) - x(i))
113 IF (diff .GT. max_diff) max_diff = diff
117 IF (max_diff .LT. tol)
THEN
subroutine sgegssv(n, a, b, x, max_iter, tol, omega, info)