!&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
      subroutine llwinds_oc(usd, vsd, ull, vll,lsd)
!     ******************************************************************
!     *                                                                *
!     *   Convert covariant to ll winds on a octagon grid              *
!     *                                                                *
!     ******************************************************************
!-----------------------------------------------------------------------
      include 'param_o.h'
      include 'graph.comm'
!-----------------------------------------------------------------------
      integer::lsd
!-----------------------------------------------------------------------
      real, dimension(0:im+1,0:jm+1,nm,lsd)::  usd, vsd, ull, vll
!-----------------------------------------------------------------------   
!-----------------------------------------------------------------------   
       dimension  &
       us(lsd), vs(lsd)
!-----------------------------------------------------------------------
      do n=1,nm
      do j=1,jm1
      do i=1,im1
        us(:) = usd(i,j,n,:)
        vs(:) = vsd(i,j,n,:)
        ull(i,j,n,:) = u2us(i,j,n) * us(:) + v2us(i,j,n) * vs(:)
        vll(i,j,n,:) = u2vs(i,j,n) * us(:) + v2vs(i,j,n) * vs(:)
      end do
      end do
      end do
!-----------------------------------------------------------------------
      end subroutine llwinds_oc
