subroutine lastgetrads(yorad,eyorad00,xbarbrad,bighradh,bighradv,ibighradh,mraddata, &
        icxrad,predrad,npred,lbig2ges,lmetaex,rad_dat,mrad_dat,mype,ivarrad,varlats, &
         nvarlats,jpch,jpchus,npes)

!-------- final processing of data before analysis iterations.
!--------
!-------- 1.  read all obs information into memory
!-------- 2.  get scriptK, the interpolation operator (integration in vertical)

  include 'mpif.h'
         include "my_comm.h"
  include 'types.h'

  real(4) yorad(max(1,mraddata)),xbarbrad(max(1,mraddata)),bighradh(lbig2ges,max(1,mraddata))
  real(4) bighradv(2*lmetaex,max(1,mraddata)),eyorad00(max(1,mraddata))
  integer(4) ibighradh(lbig2ges,max(1,mraddata))
  type(rad_obs) rad_dat(max(1,mrad_dat))
  integer(4) icxrad(2,max(1,mraddata))
  real(4) predrad(npred+jpchus-1,max(1,mraddata))
  integer(4) ivarrad(nvarlats,jpch)
  real(4) varlats(nvarlats)

  real(4),allocatable::radlat(:),radlon(:)

  allocate(radlat(max(1,mraddata)))
  allocate(radlon(max(1,mraddata)))
  ij=0
  bighradv=0.
     kpbotmax=1
     kpbotmin=lmetaex
  if(mraddata.gt.0) then
   do i=1,mrad_dat
    nthis=rad_dat(i)%ncc
    nsig=rad_dat(i)%nsig
    do j=1,nthis
     ij=ij+1
     do m=1,lbig2ges
      bighradh(m,ij)=rad_dat(i)%wgts(m)
      ibighradh(m,ij)=rad_dat(i)%iwgts(m)
     end do
     kpbot=rad_dat(i)%kpbot
         kpbotmax=max(kpbot,kpbotmax)
         kpbotmin=min(kpbot,kpbotmin)
     do k=kpbot,lmetaex
      kr=lmetaex+1-k
      bighradv(kr,ij)=rad_dat(i)%htlto(k,j)
      bighradv(lmetaex+kr,ij)=rad_dat(i)%htlto(nsig+k,j)
     end do

!------- finally include remaining information

     yorad(ij)=rad_dat(i)%obsbt(j)
     xbarbrad(ij)=rad_dat(i)%gesbt(j)
     eyorad00(ij)=1./sqrt(rad_dat(i)%var(j))
     icxrad(1,ij)=rad_dat(i)%icx(j)
     icxrad(2,ij)=j
     predrad(:npred+nthis-1,ij)=rad_dat(i)%pred(:npred+nthis-1)
     radlon(ij)=rad_dat(i)%lon
     radlat(ij)=rad_dat(i)%lat
    end do
   end do
  end if

  if(mraddata.gt.0) then
      if(mype.eq.0)  &
         print *,' at 3 in lastgetrads, mype,ij,mraddata,kpbotmax,min,nsig,lmetaex=',mype,ij,mraddata, &
                                                  kpbotmax,kpbotmin,nsig,lmetaex
     if(ij.ne.mraddata) then
       print *,' problem in lastgetrads'
       stop
     end if
  end if

! call var_2d_rad_locs(radlon,radlat,icxrad,mraddata,ivarrad,varlats,nvarlats,npes)
  deallocate(radlon)
  deallocate(radlat)

return
end subroutine lastgetrads