pro setup_slab
   fin1='grid_10x10x10'
   fin2='grid_12x12x12'
  
   readnew,fin1,h1,'HEAD'
   readnew,fin1,xin1,'POS'
   readnew,fin2,h2,'HEAD'
   readnew,fin2,xin2,'POS'
  
   xin1[*,*] /= h1.BOXSIZE
   Nin1 = TOTAL(h1.npart,/int)

   xin2[*,*] /= h2.BOXSIZE
   Nin2 = TOTAL(h2.npart,/int)

   Ndup = 20L
   fout='slab.ic'
  
   Np = Ndup * (Nin1+Nin2)
   x=fltarr(3,Np)

   i=0L
   FOR ix=0,Ndup-1 DO BEGIN
      FOR j=0L,Nin1-1 DO BEGIN
         x[0,i] = xin1[0,j] + ix 
         x[1,i] = xin1[1,j]
         x[2,i] = xin1[2,j]
         i++
      END
   END

   FOR ix=0,Ndup-1 DO BEGIN
      FOR j=0L,Nin2-1 DO BEGIN
         x[0,i] = xin2[0,j] + Ndup + ix 
         x[1,i] = xin2[1,j]
         x[2,i] = xin2[2,j]
         i++
      END
   END

   v = fltarr(3,Np)
   u=fltarr(Np)
   m=fltarr(Np)
   id=lindgen(Np)

   h1.BOXSIZE=1
   h1.MASSARR[*]=0

   m[*]=1.0/Nin1

   rho1 = m[0] * Nin1
   rho2 = m[0] * Nin2
  
   gamma=5./3.
   P1 = 1.0
   P2 = 0.5

   jj=where(x[0,*] LT Ndup)
   u[jj] = P1/(gamma-1)/rho1

   jj=where(x[0,*] GE Ndup)
   u[jj] = P2/(gamma-1)/rho2

   h1.npart[*]=0
   h1.npart[0]=Np

   h1.PARTTOTAL[*]=0
   h1.PARTTOTAL[0]=Np

   write_head,fout,h1
   add_block,fout,x,'POS '
   add_block,fout,v,'VEL '
   add_block,fout,id,'ID  '
   add_block,fout,m,'MASS'
   add_block,fout,u,'U   '

end
