subroutine symm_ed(im, lamda, theta)
! Make grid symmetrical to i=im/2+1
integer im
real(ESMF_KIND_R8) lamda(im+1,im+1)
real(ESMF_KIND_R8) theta(im+1,im+1)
integer i,j,ip,jp
real(ESMF_KIND_R8) avg
do j=2,im+1
do i=2,im
lamda(i,j) = lamda(i,1)
enddo
enddo
do j=1,im+1
do i=1,im/2
ip = im + 2 - i
avg = 0.5*(lamda(i,j)-lamda(ip,j))
lamda(i, j) = avg + pi
lamda(ip,j) = pi - avg
avg = 0.5*(theta(i,j)+theta(ip,j))
theta(i, j) = avg
theta(ip,j) = avg
enddo
enddo
! Make grid symmetrical to j=im/2+1
do j=1,im/2
jp = im + 2 - j
do i=2,im
avg = 0.5*(lamda(i,j)+lamda(i,jp))
lamda(i, j) = avg
lamda(i,jp) = avg
avg = 0.5*(theta(i,j)-theta(i,jp))
theta(i, j) = avg
theta(i,jp) = -avg
enddo
enddo
end subroutine symm_ed