c-----------------------------------------------------------
c Chapter 24: Invert a Triangular Array(p226)
c-----------------------------------------------------------
c   Name of subroutine: INVERT 
c
c   Algorithm:Invert upper trianular matrix.
c
c-----------------------------------------------------------

c-----The driver program is in invert_2.f-------------------

c-----Subroutine begins here--------------------------------
      subroutine invert (n,a,ainv)
      integer a,ainv,sum
      dimension a(n,n),ainv(n,n)
      j=n
10    i=n
20    sum=0
      if (i.eq.j) sum=1
      k=i+1
25    if (k.gt.j) go to 30
      sum=sum-a(i,k)*ainv(k,j)
      k=k+1
      go to 25
30    ainv (i,j)=sum
      i=i-1
      if (i.gt.0) go to 20
      j=j-1
      if (j.gt.0) go to 10
      return
      end


