      subroutine mul66(rt,rtt,r)
      real*8 rt(6,6),r(6,6),rtt(6,6)
      do i=1,6
        do j=1,6
          do ia=1,6
            rtt(i,ia)=rt(i,j)*r(j,ia)+rtt(i,ia)
          end do
        end do
      end do
      end

      program test
      real*8 xj(6,6),w(6,6),w1(6,6)
      parameter(idump=0)
      integer i,j

      do i=1,6
        do j=1,6
          xj(i,j) = 0.0d0
          w1(i,j) = 0.0d0
          w(i,j) = i * 10.0d0 + j;
        end do
      end do

      xj(1,2) =  1.0d0
      xj(2,1) = -1.0d0
      xj(3,4) =  1.0d0
      xj(4,3) = -1.0d0
      xj(5,6) =  1.0d0
      xj(6,5) = -1.0d0

      call mul66(xj,w1,w)

      if (idump.ne.0) then
        write(6,*) 'w1 after call to mul66'
        do i = 1,6
          do j = 1,6
            write(6,'(D15.7)') w1(i,j)
          end do
        end do
      end if

      if (w1(1,1).ne.21.0d0) then
        STOP 1
      end if

      end
