```       SUBROUTINE XXGTSL( N  , D  , DU , DL , B  , IFAIL )
C----------------------------------------------------------------------
C
C  ****************** FORTRAN77 SUBROUTINE: XXGTSL *********************
C
C  PURPOSE: GIVEN A GENERAL TRIDIAGONAL MATRIX AND A RIGHT HAND SIDE
C           WILL FIND THE SOLUTION OF THE ASSOCIATED SYSTEM OF LINEAR
C           EQUATIONS.
C
C  CALLING PROGRAM: GENERAL USE
C
C  SUBROUTINE:
C  INPUT :    (I*4)  N       = ORDER OF TRIDIAGONAL MATRIX
C
C  INPUT :    (R*8)  DL()    = SUBDIAGONAL OF THE MATRIX.  DL(2) THROUGH
C                              DL(N) SHOULD CONTAIN THE SUBDIAGONAL. ON
C                              OUTPUT DL IS DESTROYED
C  INPUT :    (R*8)  D()     = DIAGONAL OF THE MATRIX.  ON OUTPUT D
C                              IS DESTROYED
C  INPUT :    (R*8)  DU()    = SUPERDIAGONAL OF THE MATRIX. DU(2) THROUGH
C                              DU(N) SHOULD CONTAIN THE SUPERDIAGONAL.
C                              OUTPUT DU IS DESTROYED
C  INPUT :    (R*8)  B()     = RIGHT HAND SIDE VECTOR
C
C  OUTPUT:    (R*8)  B()     = SOLUTION VECTOR
C
C  OUTPUT:    (I*4)  IFAIL   = 0 - NORMAL VALUE
C                            = K - IF THE KTH PIVOT ELEMENT BECOMES
C                                  BECOMES EXACTLY ZERO.  THE ROUTINE
C                                  RETURNS WHEN THIS IS THE CASE.
C
C             (I*4)  K       = GENERAL INTEGER
C             (I*4)  KB      = GENERAL INTEGER
C             (I*4)  KP1     = K+1
C             (I*4)  NM1     = N-1
C             (I*4)  NM2     = N-2
C             (R*8)  T       = GENERAL REAL
C
C ROUTINES:  NONE
C
C NOTE:
C            TRANSCRIBED FROM LINPACK PUBLICATION.  VERSION DATED
C            08/14/78, JACK DONGARRA, ARGONNE NATIONAL LABORATORY
C
C AUTHOR:  H. P. SUMMERS, UNIVERSITY OF STRATHCLYDE
C          JA8.08
C          TEL. 0141-553-4196
C
C DATE:    04/07/95
C
C DATE:    10/07/95			VERSION 1.1
C UPDATE:  TIM HAMMOND, TESSELLA SUPPORT SERVICES PLC
C	   - UNIX PORT
C
C-----------------------------------------------------------------------
C
C-----------------------------------------------------------------------
INTEGER             IFAIL,       N
REAL*8              B(N),        D(N),        DL(N),       DU(N)
```