subroutine getgbandscatter(me,iunit,im,jm,im_jm,jsta,jsta_2l &
      ,jend_2u,MPI_COMM_COMP,icnt,idsp,spval,VarName,jpds,jgds,kpds,buf)
!      
      implicit none
      INCLUDE "mpif.h"
!
      character(len=20),intent(in) :: VarName
      real,intent(in) :: spval
      integer,intent(in) :: me,iunit,im,jm,im_jm,jsta_2l,jend_2u,jsta, &
             MPI_COMM_COMP
      integer,intent(in) ::  ICNT(0:1023), IDSP(0:1023)
      integer,intent(in) :: JPDS(200),JGDS(200)
      integer,intent(inout) :: KPDS(200)
      real,intent(out) :: buf(im,jsta_2l:jend_2u)
      integer :: kf,k,iret,i,j
      integer KGDS(200) 
      LOGICAL*1 LB(IM,JM)
      real dummy(im,jm)
      
      if(me == 0)then
        call getgb(iunit,0,im_jm,0,jpds,jgds,kf &
         ,k,kpds,kgds,lb,dummy,iret)
        if (iret /= 0) then
         print*,VarName," not found in file-Assigned missing values"
         dummy=spval
        else
         do j=1,jm
	  do i=1,im    
	    if(.not.lb(i,j))dummy(i,j)=spval
	  end do
	 end do 
        end if
       end if
                                                                                          
       call mpi_scatterv(dummy(1,1),icnt,idsp,mpi_real &
      ,buf(1,jsta),icnt(me),mpi_real,0,MPI_COMM_COMP,iret)
      
       RETURN
       END