!&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
      subroutine bocoq(sqv,q11,q12,q22,sqh)
!     *****************************************************************
!     *                                                               *
!     *  Boundary conditions for metrics on the cubic grid            *
!     *                                                               *
!     *****************************************************************

      implicit none
      include 'param_o.h'

      real, dimension (0:im+1,0:jm+1) :: sqv, sqh
      real, dimension (0:im+1,0:jm+1,nm) :: q11, q12, q22
      integer, dimension (nm-2) :: nl, nr
      integer::n
!----------------------------------------------------------------------
      nl = (/4,1,2,3/) ; nr = (/2,3,4,1/)

!----------------------------------------------------------------------
!
! sqv
!
      sqv(1:im1,0) =sqv(1:im1,1)
      sqv(1:im1,jm) =sqv(1:im1,jm1)
      sqv(0,1:jm1) =sqv(1,1:jm1) 
      sqv(im,1:jm1) =sqv(im1,1:jm1) 
!
! sqh
!
      sqh(1:im,0) = sqh(1:im,2)
      sqh(1:im,jm+1) =sqh(1:im,jm1)
      sqh(0,1:jm) =sqh(2,1:jm) 
      sqh(im+1,1:jm) =sqh(im1,1:jm) 

!
! q11, q12 and q22
!
! F1 - F5 (Symmetrical)
      q11(1:im1,jm,1) = q11(1:im1,1,5)
      q22(1:im1,jm,1) = q22(1:im1,1,5)
      q12(1:im1,jm,1) = q12(1:im1,1,5)

      q11(1:im1,0,5) = q11(1:im1,jm1,1)
      q22(1:im1,0,5) = q22(1:im1,jm1,1)
      q12(1:im1,0,5) = q12(1:im1,jm1,1)

! F2 - F5 (Assymetrical)
      q11(1:im1,jm,2) = q22(im1,1:jm1,5)
      q22(1:im1,jm,2) = q11(im1,1:jm1,5)
      q12(1:im1,jm,2) =-q12(im1,1:jm1,5)

      q11(im,1:jm1,5) = q22(1:im1,jm1,2)
      q22(im,1:jm1,5) = q11(1:im1,jm1,2)
      q12(im,1:jm1,5) =-q12(1:im1,jm1,2)

! F3 - F5 (S)
      q11(1:im1,jm,3) = q11(im1:1:-1,jm1,5)
      q22(1:im1,jm,3) = q22(im1:1:-1,jm1,5)
      q12(1:im1,jm,3) = q12(im1:1:-1,jm1,5)

      q11(1:im1,jm,5) = q11(im1:1:-1,jm1,3)
      q22(1:im1,jm,5) = q22(im1:1:-1,jm1,3)
      q12(1:im1,jm,5) = q12(im1:1:-1,jm1,3)

! F4 - F5 (A)
      q11(1:im1,jm,4) = q22(1,jm1:1:-1,5)
      q22(1:im1,jm,4) = q11(1,jm1:1:-1,5)
      q12(1:im1,jm,4) =-q12(1,jm1:1:-1,5)

      q11(0,1:jm1,5) = q22(im1:1:-1,jm1,4)
      q22(0,1:jm1,5) = q11(im1:1:-1,jm1,4)
      q12(0,1:jm1,5) =-q12(im1:1:-1,jm1,4)

! F1 - F2 - F3 - F4 (S)
              DO n=1,4
      q11(0,1:jm1,n) = q11(im1,1:jm1,nl(n))
      q22(0,1:jm1,n) = q22(im1,1:jm1,nl(n))
      q12(0,1:jm1,n) = q12(im1,1:jm1,nl(n))

      q11(im,1:jm1,n) = q11(1,1:jm1,nr(n))
      q22(im,1:jm1,n) = q22(1,1:jm1,nr(n))
      q12(im,1:jm1,n) = q12(1,1:jm1,nr(n))
              END DO

! F1 - F6 (S)
      q11(1:im1,0,1) = q11(1:im1,jm1,6)
      q22(1:im1,0,1) = q22(1:im1,jm1,6)
      q12(1:im1,0,1) = q12(1:im1,jm1,6)

      q11(1:im1,jm,6) = q11(1:im1,1,1)
      q22(1:im1,jm,6) = q22(1:im1,1,1)
      q12(1:im1,jm,6) = q12(1:im1,1,1)

! F2 - F6 (A)
      q11(1:im1,0,2) = q22(im1,jm1:1:-1,6)
      q22(1:im1,0,2) = q11(im1,jm1:1:-1,6)
      q12(1:im1,0,2) =-q12(im1,jm1:1:-1,6)

      q11(im,1:jm1,6) = q22(im1:1:-1,1,2)
      q22(im,1:jm1,6) = q11(im1:1:-1,1,2)
      q12(im,1:jm1,6) =-q12(im1:1:-1,1,2)

! F3 - F6 (S)
      q11(1:im1,0,3) = q11(im1:1:-1,1,6)
      q22(1:im1,0,3) = q22(im1:1:-1,1,6)
      q12(1:im1,0,3) = q12(im1:1:-1,1,6)

      q11(1:im1,0,6) = q11(im1:1:-1,1,3)
      q22(1:im1,0,6) = q22(im1:1:-1,1,3)
      q12(1:im1,0,6) = q12(im1:1:-1,1,3)

! F4 - F6 (A)
      q11(1:im1,0,4) = q22(1,1:jm1,6)
      q22(1:im1,0,4) = q11(1,1:jm1,6)
      q12(1:im1,0,4) =-q12(1,1:jm1,6)

      q11(0,1:jm1,6) = q22(1:im1,1,4)
      q22(0,1:jm1,6) = q11(1:im1,1,4)
      q12(0,1:jm1,6) =-q12(1:im1,1,4)
!----------------------------------------------------------------------
      end subroutine bocoq
