SUBROUTINE OSNDGPF(PSND,KSND)

!     Purpose.
!     --------
!     Send this processors part of a distributed grid point field 

!     Explicit arguments :
!     --------------------
!       PSND   : grid point field to send
!       KSND   : processor we want to send to

!     Author.
!     -------
!        MPP Group *ECMWF*

!     Modifications.
!     --------------
!        Original : 96-03-19
!        Modified : 00-09-01 by D.Dent : MPE to MPL conversion
!                   01-01-19 Y.Tremolet: some cleaning
!        M.Hamrud      01-Oct-2003 CY28 Cleaning
!     ------------------------------------------------------------------

USE PARKIND1  ,ONLY : JPIM     ,JPRB
USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK

USE YOMMP    , ONLY : NPRCIDS
USE YOMTAG   , ONLY : MTAGDISTGP
USE YOMCT0   , ONLY : NPROC
USE YOMGEM   , ONLY : NGPTOT
USE MPL_MODULE

IMPLICIT NONE

REAL(KIND=JPRB)   ,INTENT(IN)    :: PSND(NGPTOT) 
INTEGER(KIND=JPIM),INTENT(IN)    :: KSND 
INTEGER(KIND=JPIM) :: ITAG
REAL(KIND=JPRB) :: ZHOOK_HANDLE

IF (LHOOK) CALL DR_HOOK('OSNDGPF',0,ZHOOK_HANDLE)
CALL GSTATS(693,0)
IF( NPROC > 1.AND. NGPTOT > 0 )THEN
  ITAG = MTAGDISTGP
  CALL MPL_SEND(PSND(1:NGPTOT),KDEST=NPRCIDS(KSND),KTAG=ITAG, &
   & CDSTRING='OSNDGPF:')  
ENDIF
CALL GSTATS(693,1)

IF (LHOOK) CALL DR_HOOK('OSNDGPF',1,ZHOOK_HANDLE)
END SUBROUTINE OSNDGPF
