SUBROUTINE TRIDIA ( MXN, NNODE, A , B )
IMPLICIT REAL*8 ( A-H , O-Z )
DIMENSION A(MXN,3) , B(MXN)
B(1) = B(1) / A(1,2)
A(1,2) = A(1,3) / A(1,2)
DO I = 2 , NNODE
P = A(I,2) - A(I,1) * A(I-1,2)
A(I,2) = A(I,3) / P
B(I) = ( B(I) - A(I,1)*B(I-1) ) / P
END DO
C------ BACK SUBSTITUTION ----
DO I = NNODE-1, 1,-1
B(I) = B(I) - A(I,2) * B(I+1)
END DO
RETURN
END