  We present a Fortran 95 code for simulating the evolution of astrophysical
systems using particles to represent the underlying fluid flow. The code is
designed to be versatile, flexible and extensible, with modular options that
can be selected either at compile time or at run time. We include a number of
general purpose modules describing a variety of physical processes commonly
required in the astrophysical community. The code can be used as an N-body code
to evolve a set of particles in two or three dimensions using either a Leapfrog
or Runge-Kutta-Fehlberg integrator, with or without individual timesteps for
each particle. Particles may interact gravitationally as $N$-body particles,
and all or any subset may also interact hydrodynamically, using the Smoothed
Particle Hydrodynamic (SPH) method. Massive point particles (`stars') which may
accrete nearby SPH or $N$-body particles may also be included. The default free
boundary conditions can be replaced by a module to include periodic boundaries.
Cosmological expansion may also be included. An interface with special purpose
`GRAPE' hardware may also be selected. If available, forces obtained from the
GRAPE coprocessors may be transparently substituted for those obtained from the
default tree based calculation. The code may be run without modification on
single processors or in parallel using OpenMP compiler directives on large
scale, shared memory parallel machines. In comparison to the Gadget-2 code of
Springel 2005, the gravitational force calculation is $\approx 3.5 - 4.8$ times
faster with VINE when run on 8 Itanium~2 processors in an SGI Altix, while
producing nearly identical outcomes in our test problems. We present
simulations of several test problems, including a merger simulation of two
elliptical galaxies with 800000 particles.
