copyright (C) 2001  MSC-RPN COMM  %%%MC2%%%
***s/r topspng2
*

      subroutine topspng2 (wrk) 1,4
      implicit none
*
      real wrk(*)
*
**
#include "dynmem.cdk"
#include "levels.cdk"
#include "yomdyn1.cdk"
*
      integer k,kz,iter,niter
*---------------------------------------------------------------------
*
      kz  = gnk-hord_zspng
      niter= int(4.*hord_nutop+0.99)
*
      do iter=1,niter
*
*PDIR SERIAL
      call rpn_comm_xch_halo (uup,minx,maxx,miny,maxy,ldni,ldnj,
     $                    4*gnk,hx,hy,period_x,period_y,ldni,0)
*PDIR END SERIAL
*
      call smth2d (uup(1-hx,1-hy,kz),wrk,minx,maxx,miny,maxy,hord_zspng,
     $                                                      nu(kz),1,0)
      call smth2d (vvp(1-hx,1-hy,kz),wrk,minx,maxx,miny,maxy,hord_zspng,
     $                                                      nu(kz),0,1)
      call smth2d (wwp(1-hx,1-hy,kz),wrk,minx,maxx,miny,maxy,hord_zspng,
     $                                                      nu(kz),0,0)
      call smth2d (bbp(1-hx,1-hy,kz),wrk,minx,maxx,miny,maxy,hord_zspng,
     $                                                      nu(kz),0,0)
*
      end do
*
*----------------------------------------------------------------------
      return
      end