subroutine tgslz(a,x,r,m,l,lda)
integer m,l,lda
double complex a(lda,1),x(m,l),r(1)
c
c tgslz calls tgslz1 to solve the double complex linear system
c a * x = b
c with the tg - matrix a .
c
c on entry
c
c a double complex(m**2,2*l - 1)
c the first row of blocks of the tg - matrix
c followed by its first column of blocks beginning
c with the second block. each block is represented
c by columns. on return a is unaltered .
c
c x double complex(m*l)
c the right hand side vector b .
c
c r double complex(m**2*(2*l + 3) + m)
c a work vector .
c
c m integer
c the order of the blocks of the matrix a .
c
c l integer
c the number of blocks in a row or column
c of the matrix a .
c
c lda integer
c the leading dimension of the array a .
c
c on return
c
c x the solution vector .
c
c toeplitz package. this version dated 07/23/82 .
c
c subroutines and functions
c
c toeplitz package ... tgslz1
c
c internal variables
c
integer mm,mml,mml1,mml2,mml3,mml4,mml5,mml6
c
c call subroutine tgslz1
c
mm = m**2
mml = mm*(l - 1) + 1
mml1 = 2*mml - 1
mml2 = mml1 + mm
mml3 = mml2 + mm
mml4 = mml3 + mm
mml5 = mml4 + mm
mml6 = mml5 + mm
c
call tgslz1(a,a(1,l+1),x,x,r,r(mml),r(mml1),r(mml2),
* r(mml3),r(mml4),r(mml5),r(mml6),m,l,lda)
c
return
end
.