      SUBROUTINE UPDATE(A)
C$$$  SUBPROGRAM DOCUMENTATION BLOCK
C                .      .    .
C SUBPROGRAM:    EXCH2       EXCHANGE TWO HALO ROWS
C   PRGRMMR: TUCCILLO        ORG: IBM
C
C ABSTRACT:
C     EXCHANGE TWO HALO ROWS
C   .
C
C PROGRAM HISTORY LOG:
C   00-01-06  TUCCILLO - ORIGINAL
C
C USAGE:    CALL EXCH2(A)
C   INPUT ARGUMENT LIST:
C      A - ARRAY TO HAVE HALOS EXCHANGED
C
C   OUTPUT ARGUMENT LIST:
C      A - ARRAY WITH HALOS EXCHANGED
C
C   OUTPUT FILES:
C     STDOUT  - RUN TIME STANDARD OUT.
C
C   SUBPROGRAMS CALLED:
C       MPI_SENDRECV
C     UTILITIES:
C       NONE
C     LIBRARY:
C       COMMON - CTLBLK.comm
C
C   ATTRIBUTES:
C     LANGUAGE: FORTRAN
C     MACHINE : IBM RS/6000 SP
C$$$
      include "parmeta"
      include "PARA.comm"
      include 'mpif.h'
      include 'mpp.h'
      real a ( IM ,MY_JSD:MY_JED )
      integer status(MPI_STATUS_SIZE)
c
      if ( num_procs .eq. 1 ) return
C      print*,'in update'
C
      call mpi_sendrecv(a(1,jend_i-1),2*im,MPI_REAL,iup,1,
     &                  a(1,jsta_i-2),2*im,MPI_REAL,idn,1,
     &                  mpi_comm_comp,status,ierr)
      call mpi_sendrecv(a(1,jsta_i  ),2*im,MPI_REAL,idn,1,
     &                  a(1,jend_i+1),2*im,MPI_REAL,iup,1,
     &                  mpi_comm_comp,status,ierr)
c
      end
