      subroutine toxyz(alpha,delta,r,vec)

      implicit real*8 (a-h,o-z)
      real*8 vec(3)

      vec(1)=r*cos(delta)*cos(alpha)
      vec(2)=r*cos(delta)*sin(alpha)
      vec(3)=r*sin(delta)

      return
      end

      subroutine fromxyz(vec,alpha,delta,r)

      implicit real*8 (a-h,o-z)
      real*8 vec(3)
      data twopi/6.283185307d0/

      r=sqrt(vec(1)**2 + vec(2)**2 + vec(3)**2)
      alpha=atan2(vec(2),vec(1))
      if(alpha.lt.0.d0) alpha=alpha+twopi
      delta=asin(vec(3)/r)

      return
      end
