c    @(#)eltran.f	1.1
c
      subroutine eltran(nm,n,low,igh,a,int,z)
      integer i,j,n,kl,mm,mp,nm,igh,low,mp1
      real a(nm,igh),z(nm,n)
      integer int(igh)
      do 80 i = 1, n
         do 60 j = 1, n
   60    z(i,j) = 0.0
         z(i,i) = 1.0
   80 continue
      kl = igh - low - 1
      if (kl .lt. 1) go to 200
      do 140 mm = 1, kl
         mp = igh - mm
         mp1 = mp + 1
         do 100 i = mp1, igh
  100    z(i,mp) = a(i,mp-1)
         i = int(mp)
         if (i .eq. mp) go to 140
         do 130 j = mp, igh
            z(mp,j) = z(i,j)
            z(i,j) = 0.0
  130    continue
         z(i,mp) = 1.0
  140 continue
  200 return
      end
