pro setup_slab
   name='glass_10x10x10'

   fout='mhd_shock.ic'

   gamma=5./3.
   ll=50L

   nl=2L
   rhosetupl=1.0
   Psetupl=1.0

   nr=1L
   rhosetupr=0.125
   Psetupr=0.1

   readnew,name,h,'HEAD'
   readnew,name,xglass,'POS'
   readnew,name,hglass,'HSML'

   ntot=h.npart(0)*ll*(nl^3+nr^3)

   icount=0LL

   x=fltarr(3,ntot)
   v=fltarr(3,ntot)
   b=fltarr(3,ntot)
   id=lindgen(ntot)+1
   u=fltarr(ntot)
   rho=fltarr(ntot)
   hsml=fltarr(ntot)

   xbase=xglass/h.boxsize/nl
   hbase=hglass/h.boxsize/nl

   FOR ii=0,ll-1 DO BEGIN
      FOR ix=0,nl-1 DO BEGIN
         x0=float(ix)/nl+ii
         FOR iy=0,nl-1 DO BEGIN
            y0=float(iy)/nl
            FOR iz=0,nl-1 DO BEGIN
               z0=float(iz)/nl
               FOR i=0,h.npart(0)-1 DO BEGIN
                  x(0,icount)=xbase(0,i)+x0
                  x(1,icount)=xbase(1,i)+y0
                  x(2,icount)=xbase(2,i)+z0
                  v(0,icount)=0.0
                  v(1,icount)=0.0
                  v(2,icount)=0.0
                  b(0,icount)=0.75
                  b(1,icount)=1.0
                  b(2,icount)=0.0
                  u(icount)=Psetupl/(gamma-1)/rhosetupl
                  hsml(icount)=hbase(i)
                  rho(icount)=rhosetupl
                  icount++
               END
            END
         END
      END
   END

   xbase=xglass/h.boxsize/nr
   hbase=hglass/h.boxsize/nr
   FOR ii=0,ll-1 DO BEGIN
      FOR ix=0,nr-1 DO BEGIN
         x0=float(ix)/nr+ii+ll
         FOR iy=0,nr-1 DO BEGIN
            y0=float(iy)/nr
            FOR iz=0,nr-1 DO BEGIN
               z0=float(iz)/nr
               FOR i=0,h.npart(0)-1 DO BEGIN
                  x(0,icount)=xbase(0,i)+x0
                  x(1,icount)=xbase(1,i)+y0
                  x(2,icount)=xbase(2,i)+z0
                  v(0,icount)=0.0
                  v(1,icount)=0.0
                  v(2,icount)=0.0
                  b(0,icount)=0.75
                  b(1,icount)=-1.0
                  b(2,icount)=0.0
                  u(icount)=Psetupr/(gamma-1)/rhosetupr
                  hsml(icount)=hbase(i)
                  rho(icount)=rhosetupr
                  icount++
               END
            END
         END
      END
   END

   print,icount," ==?== ",ntot

   h.massarr(0)=rhosetupl/(nl^3*h.npart(0))
   h.npart(0)=ntot
   h.parttotal(0)=ntot

   write_head,fout,h
   add_block,fout,x,'POS '
   add_block,fout,v,'VEL '
   add_block,fout,id,'ID  '
   add_block,fout,u,'U   '
   add_block,fout,hsml,'HSML'
   add_block,fout,b,'BFLD'

end
