!&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
      subroutine symmet(sqv,q11,q12,q22,sqh)
!     *****************************************************************
!     *                                                               *
!     *  Summetrization of metric coefficients 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
      real, dimension (8) :: sqv_p, sqh_p, q12_p
      real, dimension (4) :: q11_p, q22_p
      integer::i,j,k,n
      real::sqv0,q11_0,q12_0,q22_0,sqh0

!----------------------------------------------------------------------
!
! sqv
!
      do j=1,jm1/2
      do i=j,im1/2
        sqv_p(1) = sqv(i,j)
        sqv_p(2) = sqv(im-i,j)
        sqv_p(3) = sqv(im-j,i) 
        sqv_p(4) = sqv(im-j,jm-i) 
        sqv_p(5) = sqv(im-i,jm-j)
        sqv_p(6) = sqv(i,jm-j)
        sqv_p(7) = sqv(j,jm-i)
        sqv_p(8) = sqv(j,i)
          sqv0 = 0
        do k=1,8
          sqv0 = sqv0 + sqv_p(k)
        end do
          sqv0 = 0.125*sqv0
        sqv(i,j)       = sqv0
        sqv(im-i,j)    = sqv0
        sqv(im-j,i)    = sqv0
        sqv(im-j,jm-i) = sqv0
        sqv(im-i,jm-j) = sqv0
        sqv(i,jm-j)    = sqv0
        sqv(j,jm-i)    = sqv0
        sqv(j,i)       = sqv0
      end do
      end do
      
!----------------------------------------------------------------------
!
! q11
!
      do j=1,jm1/2
      do i=j,im1/2
        q11_p(1) = q11(i,j,1)
        q11_p(2) = q11(j,i,1)
        q11_p(3) = q11(im-j,jm-i,1)
        q11_p(4) = q11(im-i,jm-j,1)
          q11_0 = 0.
        do k=1,4
          q11_0 = q11_0 + q11_p(k)
        end do
          q11_0 = 0.25 * q11_0
        q11(i,j,1)       = q11_0
        q11(j,i,1)       = q11_0
        q11(im-j,jm-i,1) = q11_0
        q11(im-i,jm-j,1) = q11_0
      end do
      end do

      do j=1,jm1/2
      do i=im/2+1,j
        q11_p(1) = q11(i,j,1)
        q11_p(2) = q11(im-j,jm-i,1)
        q11_p(3) = q11(im-i,jm-j,1)
        q11_p(4) = q11(j,i,1)
          q11_0 = 0.
        do k=1,4
          q11_0 = q11_0 + q11_p(k)
        end do
          q11_0 = 0.25 * q11_0
        q11(i,j,1)       = q11_0
        q11(im-j,jm-i,1) = q11_0
        q11(im-i,jm-j,1) = q11_0
        q11(j,i,1)       = q11_0
      end do
      end do

!----------------------------------------------------------------------
!
! q22
!
      do j=1,jm1/2
      do i=j,im1/2
        q22_p(1) = q22(i,j,1)
        q22_p(2) = q22(j,i,1)
        q22_p(3) = q22(im-j,jm-i,1)
        q22_p(4) = q22(im-i,jm-j,1)
          q22_0 = 0.
        do k=1,4
          q22_0 = q22_0 + q22_p(k)
        end do
          q22_0 = 0.25 * q22_0
        q22(i,j,1)       = q22_0
        q22(j,i,1)       = q22_0
        q22(im-j,jm-i,1) = q22_0
        q22(im-i,jm-j,1) = q22_0
      end do
      end do

      do j=1,jm1/2
      do i=im/2+1,j
        q22_p(1) = q22(i,j,1)
        q22_p(2) = q22(im-j,jm-i,1)
        q22_p(3) = q22(im-i,jm-j,1)
        q22_p(4) = q22(j,i,1)
          q22_0 = 0.
        do k=1,4
          q22_0 = q22_0 + q22_p(k)
        end do
          q22_0 = 0.25 * q22_0
        q22(i,j,1)       = q22_0
        q22(im-j,jm-i,1) = q22_0
        q22(im-i,jm-j,1) = q22_0
        q22(j,i,1)       = q22_0
      end do
      end do
!
! q12
!
      do j=1,jm1/2
      do i=j,im1/2
        q12_p(1) = q12(i,j,1)
        q12_p(2) = q12(im-i,j,1)
        q12_p(3) =-q12(im-j,i,1)
        q12_p(4) =-q12(im-j,jm-i,1)
        q12_p(5) = q12(im-i,jm-j,1)
        q12_p(6) = q12(i,jm-j,1)
        q12_p(7) =-q12(j,jm-i,1)
        q12_p(8) =-q12(j,i,1)
          q12_0 = 0.
        do k=1,8
          q12_0 = q12_0 + q12_p(k)
        end do
          q12_0 = 0.125 * q12_0
        q12(i,j,1)        = q12_0
        q12(im-i,j,1)     = q12_0
        q12(im-j,i,1)     =-q12_0
        q12(im-j,jm-i,1)  =-q12_0
        q12(im-i,jm-j,1)  = q12_0
        q12(i,jm-j,1)     = q12_0
        q12(j,jm-i,1)     =-q12_0
        q12(j,i,1)        =-q12_0
      end do
      end do

!----------------------------------------------------------------------
      do n=2,nm
        q11(:,:,n)       = q11(:,:,1)        
        q22(:,:,n)       = q22(:,:,1)        
        q12(:,:,n)       = q12(:,:,1)        
      end do
!----------------------------------------------------------------------
!
! sqh
!
      do j=1,jm1/2+1
      do i=j,im1/2+1
        sqh_p(1) = sqh(i,j)
        sqh_p(2) = sqh(im+1-i,j)
        sqh_p(3) = sqh(im+1-j,i) 
        sqh_p(4) = sqh(im+1-j,jm+1-i) 
        sqh_p(5) = sqh(im+1-i,jm+1-j)
        sqh_p(6) = sqh(i,jm+1-j)
        sqh_p(7) = sqh(j,jm+1-i)
        sqh_p(8) = sqh(j,i)
          sqh0 = 0
        do k=1,8
          sqh0 = sqh0 + sqh_p(k)
        end do
          sqh0 = 0.125*sqh0
        sqh(i,j)           = sqh0
        sqh(im+1-i,j)      = sqh0
        sqh(im+1-j,i)      = sqh0
        sqh(im+1-j,jm+1-i) = sqh0
        sqh(im+1-i,jm+1-j) = sqh0
        sqh(i,jm+1-j)      = sqh0
        sqh(j,jm+1-i)      = sqh0
        sqh(j,i)           = sqh0
      end do
      end do
!----------------------------------------------------------------------
      end subroutine symmet
