      subroutine init(model)

      implicit double precision(a-h,o-z)

      common g(650),x(650),rho(650),yliq(4,650),ray(4,650)
      common/eig1/rint(4,650),h(650),f(650),part(650)
      common/ms/mr(650)
      common/misc/l,lhat,lindex,nsurf
      common/dmisc/period,grav,pi,pi4,p43,eps,verg,eig,eigt,y3i,y3t,
     1  amass
      common/rs/r(650)
      common/setup/isetup
      common/mfac/m
      common/yfacs/y1(650),y2(650),y3(650),y4(650),y5(650)
      real*8 l,lhat,lindex,mr,mr_tmp

      COMMON/tape28a/blum,amass_tmp,nmod,nsurf_tmp
      COMMON/tape28b/x_tmp(650),r_tmp(650),g_tmp(650),
     &               rho_tmp(650),mr_tmp(650)
      COMMON/tape29/y1_tmp(650),y2_tmp(650),y3_tmp(650),
     &              y4_tmp(650),y5_tmp(650)

      isetup = 1
      amass = amass_tmp
      verg=1.00d-07 
      eps=1.00d-03
      nsurf = nsurf_tmp
      grav=6.67259d-08
      pi=3.1415926535898
      p43=4.*pi/3.
      pi4=4.*pi
*
* transfer contents of COMMON block
*
      do i=1,nsurf
         x(i)   = x_tmp(i+1)
         r(i)   = r_tmp(i+1)
         g(i)   = g_tmp(i+1)
         rho(i) = rho_tmp(i+1)
         mr(i)  = mr_tmp(i+1)
      enddo

      do 11 i=1,nsurf
        mr(i)=mr(i)/mr(nsurf) 
11    continue

      m = nsurf
*
*  if there are too many shells for the arrays, terminate execution.
*
      if(m.gt.650)then
        stop
      endif
*
* transfer contents of COMMON block
*
      do 100 i=1,m
         y1(i) = y1_tmp(i+1)
         y2(i) = y2_tmp(i+1)
         y3(i) = y3_tmp(i+1)
         y4(i) = y4_tmp(i+1)
         y5(i) = y5_tmp(i+1)
100   continue

      return
      end 

************************************************************************

