subroutine getcon_lag(lats_nodes_a,global_lats_a,
     x                    lats_nodes_h,global_lats_h,
     x                    lonsperlat,xhalo,yhalo)
      use gfs_dyn_resol_def, only : jcap,latg,latg2,lonf
      use gfs_dyn_layout1, only : me,nodes

      use gfs_dyn_gg_def, only : colrad_a,sinlat_a
!mjr  use vert_def
!mjr  use sig_io
!mjr  use date_def
      use namelist_dynamics_def, only : shuff_lats_a
      use layout_lag   , only : ipt_lats_node_h,lat1s_h,lats_dim_h,
     &                          lats_node_h,lats_node_h_max,lon_dim_h
      implicit none
cc
      integer     yhalo,xhalo
cc
      integer     lats_nodes_a(nodes)
      integer     lats_nodes_h(nodes)
      integer    global_lats_a(latg)
      integer    global_lats_h(latg+2*yhalo*nodes)
      integer       lonsperlat(latg)
cc
      integer  i,j,k,l,lat
      integer  node,nodesio
      logical  shuffled
cc
      print 100, jcap, me
100   format ('getcon_h jcap= ',i4,2x,'me=',i3)
      do lat = 1, latg2
         lonsperlat(latg+1-lat) = lonsperlat(lat)
      end do
      nodesio=nodes
      print*,'con_h me,nodes,nodesio = ',me,nodes,nodesio

         shuff_lats_a = .false.

      print*,' shuff_lats_a = ',shuff_lats_a
      shuffled = shuff_lats_a
      print*,'  else in if shuff_lats_a=',shuff_lats_a

      call setlats_lag(lats_nodes_a,global_lats_a,
     &               lats_nodes_h,global_lats_h,yhalo)

!sela  write(6,*) ' getcon after setlats_h global_lats_a = '
!sela  write(6,830)     global_lats_a

!sela  write(6,*) ' getcon after setlats_h global_lats_h = '
!sela  write(6,830)     global_lats_h

 830   format(10(i4,1x))
      lats_dim_h=0
      do node=1,nodes
         lats_dim_h = max(lats_dim_h,lats_nodes_h(node))
      enddo
      lats_node_h = lats_nodes_h(me+1)
      lats_node_h_max=0
      do i=1,nodes
        lats_node_h_max=max(lats_node_h_max,lats_nodes_h(i))
      enddo
      ipt_lats_node_h=1
      if ( me .gt. 0 ) then
         do node=1,me
            ipt_lats_node_h = ipt_lats_node_h + lats_nodes_h(node)
         enddo
      endif
      do j=1,latg2
        sinlat_a(j) = cos(colrad_a(j))
      enddo
      do l=0,jcap
         do lat = 1, latg2
            if ( l .le. min(jcap,lonsperlat(lat)/2) ) then
               lat1s_h(l) = lat
               go to 200
            endif
         end do
  200    continue
      end do
ccmr
!mjr  allocate ( lon_dims_h_coef(lats_node_h) )
!mjr  allocate ( lon_dims_h_grid(lats_node_h) )
ccmr
!mjr  do j=1,lats_node_h
!mjr     lat = global_lats_h(ipt_lats_node_h-1+j)
!mjr     if ( lonsperlat(lat) .eq. lonf ) then
!mjr        lon_dims_h_coef(j) = lonf +2 + 2*xhalo !even
!mjr        lon_dims_h_grid(j) = lonf +1 + 2*xhalo !even/odd
!mjr     else
ccmr        lon_dims_h_coef(j) = lonsperlat(lat) +2 + 2*xhalo !even
ccmr        lon_dims_h_grid(j) = lonsperlat(lat) +1 + 2*xhalo !even/odd
!mjr        lon_dims_h_coef(j) = lonf +2 + 2*xhalo !even
!mjr        lon_dims_h_grid(j) = lonf +1 + 2*xhalo !even/odd
!mjr     endif
!mjr  enddo
!mjr
      lon_dim_h = lonf +1 + 2*xhalo !even/odd
!mjr
      return
      end