  We report on the algorithms and numerical methods used in Viriato, a novel
fluid-kinetic code that solves two distinct sets of equations: (i) the Kinetic
Reduced Electron Heating Model (KREHM) equations [Zocco & Schekochihin, Phys.
Plasmas 18, 102309 (2011)] (which reduce to the standard Reduced-MHD equations
in the appropriate limit) and (ii) the kinetic reduced MHD (KRMHD) equations
[Schekochihin et al., Astrophys. J. Suppl. 182:310 (2009)]. Two main
applications of these equations are magnetised (Alfvenic) plasma turbulence and
magnetic reconnection. Viriato uses operator splitting (Strang or Godunov) to
separate the dynamics parallel and perpendicular to the ambient magnetic field
(assumed strong). Along the magnetic field, Viriato allows for either a
second-order accurate MacCormack method or, for higher accuracy, a
spectral-like scheme composed of the combination of a total variation
diminishing (TVD) third order Runge-Kutta method for the time derivative with a
7th order upwind scheme for the fluxes. Perpendicular to the field Viriato is
pseudo-spectral, and the time integration is performed by means of an iterative
predictor-corrector scheme. In addition, a distinctive feature of Viriato is
its spectral representation of the parallel velocity-space dependence, achieved
by means of a Hermite representation of the perturbed distribution function. A
series of linear and nonlinear benchmarks and tests are presented, including a
detailed analysis of 2D and 3D Orszag-Tang-type decaying turbulence, both in
fluid and kinetic regimes.
