Building and Running RMHD2D:

1. Edit one of the machine-dependent Makefiles,
   e.g. Make.reynolds-linux, to set up the various compilers, compiler
   flags, libraries, and Fortran-to-C translation directives.  
   NOTE: this version of the code is designed to interface with
   sundials versions 2.4.0 or 2.5.0, although it may work with
   older/newer versions as well.  However, for versions <= 2.3.0, when
   installing sundials you must ensure that the source code file
   is copied to the installation directory.  Unfortunately, this is
   not the default behavior when building/installing in a different
   directory than where it is installed.

2. Link this machine-dependent Makefile to Make.machine: e.g.
   ln -fs Make.reynolds-linux Make.machine

3. Edit one of the problem configuration makefiles,
   e.g. Make.config-KH, to set up the appropriate dimensionality (2D
   vs 2.5D), boundary conditions, flux discretization choices,
   parallelism, and preconditioning for the type of problem that you
   wish to run.  

4. Link this problem-dependent Makefile to Make.config: e.g.
   ln -s Make.config-KH Make.config

5. Type 'make <target>', where <target> specifies the type of executable
   (problem type and time integration algorithm) that you wish to
   build.  Typing 'make' alone will bring up a list of possible

6. Copy problem-specific input files to the run-time directory from
   the ./inputs directory.  You will need the files mhd.inp, prop.inp
   and mesh.inp for all problems (remove the problem specifier suffix
   from the file name).  For some problems, you will also need the
   problem-specific input parameter files provided in this directory,
   e.g. the Kelvin-Helmholtz problem requires kh_init.inp.  If the 
   time-integration algorithm is KINSOL, you will also need
   kincontrol.inp; if it is CVODE, you will need cvcontrol.inp.

7. Edit the input files to your tastes and run your executable.
   * To set the problem size and parallelism topology, edit the
     mesh.inp file to set the problem size (nx, ny and nz give the
     total problem dimensions) along with the parallelism topology
     information (xprocs, yprocs and zprocs give the number of
     processors in each Cartesian dimension).