ReaxFF library

Aidan Thompson, Sandia National Labs
athomps at sandia.gov
Jan 2008

--------------

This library is an implementation of the ReaxFF potential,
specifically designed to work with LAMMPS. It is derived from Adri van
Duin's original serial code, with intervening incarnations in CMDF and
GRASP.

This library can be built with any decent Fortran compiler, before
LAMMPS is built, so LAMMPS can link against it. The compiler must
produce object files compatible with the LAMMPS C++ compiler. If not,
the LAMMPS build will fail during linking.

Build the library using one of the provided Makefiles or create your
own, specific to your compiler and system.  For example:

make -f Makefile.g95

If the build is successful, you should end up with a libreax.a file.

Note that the include file reax_defs.h is used by both the ReaxFF
library source files and the LAMMPS pair_reax.cpp source file (from
module REAX).  It contains dimensions of statically-allocated arrays
created by the ReaxFF library. The size of these arrays must be set
small enough to avoid exceeding the available machine memory, and
large enough to fit the actual data generated by ReaxFF. If you change
the values in reax_defs.h, you must first rebuild the library and then
rebuild LAMMPS.

This library is called by functions in pair_reax.cpp.
The C++ to FORTRAN function calls in pair_reax.cpp
assume that FORTRAN object names are converted to C object names by 
appending an underscore character. This is generally the case, but 
on machines that do not conform to this convention, you will need to 
modify either the C++ code or your compiler settings. The name conversion
is handled by the preprocessor macro called FORTRAN in the file 
pair_reax_fortran.h, which is included by pair_reax.cpp.
Different definitions of this macro can be obtained by adding a 
machine-specific macro definition to the CCFLAGS variable in your 
your LAMMPS Makefile e.g. -D_IBM. See pair_reax_fortran.h for more info.

