diff --git a/doc/Eqs/pair_gauss.jpg b/doc/Eqs/pair_gauss.jpg
index ba3c08670..30991bd56 100644
Binary files a/doc/Eqs/pair_gauss.jpg and b/doc/Eqs/pair_gauss.jpg differ
diff --git a/doc/Eqs/pair_gauss.tex b/doc/Eqs/pair_gauss.tex
index 1821ae31d..9fb618f2c 100644
--- a/doc/Eqs/pair_gauss.tex
+++ b/doc/Eqs/pair_gauss.tex
@@ -1,9 +1,17 @@
 \documentclass[12pt]{article}
 
 \begin{document}
 
-$$
-   E = A \exp(-B r^2) \qquad r < r_c
-$$
+\begin{eqnarray*}
+ E & = & \frac{H}{\sigma_h\sqrt{2\pi}} \exp\left[-\frac{(r-r_{mh})^2}{2\sigma_h^2}\right] \qquad r < r_c \\
+\end{eqnarray*}
+To represent the simpler form of a Gauss potential:
+\begin{eqnarray*}
+ E & = & A \exp(-B r^2) \qquad r < r_c \\
+ & &\mbox{use:} \\
+ \sigma_h & = & \sqrt{2 B} \\
+ H & = & \frac{A}{2\sqrt{B\pi}}\\
+ r_{mh} & = & 0
+\end{eqnarray*}
 
 \end{document}
diff --git a/src/Makefile.lib b/src/Makefile.lib
index 6d6cfec7e..a1cadfb29 100644
--- a/src/Makefile.lib
+++ b/src/Makefile.lib
@@ -1,35 +1,35 @@
 # LAMMPS library multiple-machine Makefile
 
 SHELL = /bin/sh
 
 # Definitions
 
 ROOT =	lmp
 EXE =	lib$(ROOT)_$@.a
 
-SRC =	angle.cpp angle_charmm.cpp angle_class2.cpp angle_cosine.cpp angle_cosine_delta.cpp angle_cosine_squared.cpp angle_harmonic.cpp angle_hybrid.cpp angle_table.cpp atom.cpp atom_vec.cpp atom_vec_angle.cpp atom_vec_atomic.cpp atom_vec_bond.cpp atom_vec_charge.cpp atom_vec_colloid.cpp atom_vec_dipole.cpp atom_vec_ellipsoid.cpp atom_vec_full.cpp atom_vec_granular.cpp atom_vec_hybrid.cpp atom_vec_molecular.cpp atom_vec_peri.cpp bond.cpp bond_class2.cpp bond_fene.cpp bond_fene_expand.cpp bond_harmonic.cpp bond_hybrid.cpp bond_morse.cpp bond_nonlinear.cpp bond_quartic.cpp bond_table.cpp change_box.cpp comm.cpp compute.cpp compute_angle_local.cpp compute_bond_local.cpp compute_centro_atom.cpp compute_cna_atom.cpp compute_com.cpp compute_com_molecule.cpp compute_coord_atom.cpp compute_damage_atom.cpp compute_dihedral_local.cpp compute_displace_atom.cpp compute_erotate_asphere.cpp compute_erotate_sphere.cpp compute_event_displace.cpp compute_group_group.cpp compute_gyration.cpp compute_gyration_molecule.cpp compute_heat_flux.cpp compute_improper_local.cpp compute_ke.cpp compute_ke_atom.cpp compute_msd.cpp compute_msd_molecule.cpp compute_pair_local.cpp compute_pe.cpp compute_pe_atom.cpp compute_pressure.cpp compute_property_atom.cpp compute_property_local.cpp compute_property_molecule.cpp compute_rdf.cpp compute_reduce.cpp compute_reduce_region.cpp compute_stress_atom.cpp compute_temp.cpp compute_temp_asphere.cpp compute_temp_com.cpp compute_temp_deform.cpp compute_temp_partial.cpp compute_temp_profile.cpp compute_temp_ramp.cpp compute_temp_region.cpp compute_temp_sphere.cpp create_atoms.cpp create_box.cpp delete_atoms.cpp delete_bonds.cpp dihedral.cpp dihedral_charmm.cpp dihedral_class2.cpp dihedral_harmonic.cpp dihedral_helix.cpp dihedral_hybrid.cpp dihedral_multi_harmonic.cpp dihedral_opls.cpp displace_atoms.cpp displace_box.cpp domain.cpp dump.cpp dump_atom.cpp dump_cfg.cpp dump_custom.cpp dump_dcd.cpp dump_local.cpp dump_xtc.cpp dump_xyz.cpp error.cpp ewald.cpp fft3d.cpp fft3d_wrap.cpp finish.cpp fix.cpp fix_adapt.cpp fix_addforce.cpp fix_ave_atom.cpp fix_ave_correlate.cpp fix_ave_histo.cpp fix_ave_spatial.cpp fix_ave_time.cpp fix_aveforce.cpp fix_bond_break.cpp fix_bond_create.cpp fix_bond_swap.cpp fix_box_relax.cpp fix_deform.cpp fix_deposit.cpp fix_drag.cpp fix_dt_reset.cpp fix_efield.cpp fix_enforce2d.cpp fix_evaporate.cpp fix_event.cpp fix_external.cpp fix_freeze.cpp fix_gravity.cpp fix_heat.cpp fix_indent.cpp fix_langevin.cpp fix_lineforce.cpp fix_minimize.cpp fix_momentum.cpp fix_move.cpp fix_msst.cpp fix_nh.cpp fix_nh_asphere.cpp fix_nh_sphere.cpp fix_nph.cpp fix_nph_asphere.cpp fix_nph_sphere.cpp fix_npt.cpp fix_npt_asphere.cpp fix_npt_sphere.cpp fix_nve.cpp fix_nve_asphere.cpp fix_nve_limit.cpp fix_nve_noforce.cpp fix_nve_sphere.cpp fix_nvt.cpp fix_nvt_asphere.cpp fix_nvt_sllod.cpp fix_nvt_sphere.cpp fix_orient_fcc.cpp fix_peri_neigh.cpp fix_planeforce.cpp fix_pour.cpp fix_press_berendsen.cpp fix_print.cpp fix_qeq_comb.cpp fix_read_restart.cpp fix_recenter.cpp fix_respa.cpp fix_rigid.cpp fix_rigid_nve.cpp fix_rigid_nvt.cpp fix_setforce.cpp fix_shake.cpp fix_shear_history.cpp fix_spring.cpp fix_spring_rg.cpp fix_spring_self.cpp fix_store_force.cpp fix_store_state.cpp fix_temp_berendsen.cpp fix_temp_rescale.cpp fix_thermal_conductivity.cpp fix_tmd.cpp fix_ttm.cpp fix_viscosity.cpp fix_viscous.cpp fix_wall.cpp fix_wall_colloid.cpp fix_wall_gran.cpp fix_wall_harmonic.cpp fix_wall_lj126.cpp fix_wall_lj93.cpp fix_wall_reflect.cpp fix_wall_region.cpp force.cpp group.cpp improper.cpp improper_class2.cpp improper_cvff.cpp improper_harmonic.cpp improper_hybrid.cpp input.cpp integrate.cpp irregular.cpp kspace.cpp lammps.cpp lattice.cpp library.cpp  memory.cpp min.cpp min_cg.cpp min_hftn.cpp min_linesearch.cpp min_sd.cpp minimize.cpp modify.cpp neigh_bond.cpp neigh_derive.cpp neigh_full.cpp neigh_gran.cpp neigh_half_bin.cpp neigh_half_multi.cpp neigh_half_nsq.cpp neigh_list.cpp neigh_request.cpp neigh_respa.cpp neigh_stencil.cpp neighbor.cpp output.cpp pack.cpp pair.cpp pair_airebo.cpp pair_born_coul_long.cpp pair_buck.cpp pair_buck_coul_cut.cpp pair_buck_coul_long.cpp pair_colloid.cpp pair_comb.cpp pair_coul_cut.cpp pair_coul_debye.cpp pair_coul_long.cpp pair_dipole_cut.cpp pair_dpd.cpp pair_dpd_tstat.cpp pair_dsmc.cpp pair_eam.cpp pair_eam_alloy.cpp pair_eam_alloy_opt.cpp pair_eam_fs.cpp pair_eam_fs_opt.cpp pair_eam_opt.cpp pair_eim.cpp pair_gayberne.cpp pair_gran_hertz_history.cpp pair_gran_hooke.cpp pair_gran_hooke_history.cpp pair_hybrid.cpp pair_hybrid_overlay.cpp pair_lj96_cut.cpp pair_lj_charmm_coul_charmm.cpp pair_lj_charmm_coul_charmm_implicit.cpp pair_lj_charmm_coul_long.cpp pair_lj_charmm_coul_long_opt.cpp pair_lj_class2.cpp pair_lj_class2_coul_cut.cpp pair_lj_class2_coul_long.cpp pair_lj_cut.cpp pair_lj_cut_coul_cut.cpp pair_lj_cut_coul_debye.cpp pair_lj_cut_coul_long.cpp pair_lj_cut_coul_long_tip4p.cpp pair_lj_cut_opt.cpp pair_lj_expand.cpp pair_lj_gromacs.cpp pair_lj_gromacs_coul_gromacs.cpp pair_lj_smooth.cpp pair_lubricate.cpp pair_morse.cpp pair_morse_opt.cpp pair_peri_lps.cpp pair_peri_pmb.cpp pair_resquared.cpp pair_soft.cpp pair_sw.cpp pair_table.cpp pair_tersoff.cpp pair_tersoff_zbl.cpp pair_yukawa.cpp pair_yukawa_colloid.cpp pppm.cpp pppm_tip4p.cpp prd.cpp random_mars.cpp random_park.cpp read_data.cpp read_restart.cpp region.cpp region_block.cpp region_cone.cpp region_cylinder.cpp region_intersect.cpp region_plane.cpp region_prism.cpp region_sphere.cpp region_union.cpp remap.cpp remap_wrap.cpp replicate.cpp respa.cpp run.cpp set.cpp shell.cpp special.cpp temper.cpp thermo.cpp timer.cpp universe.cpp update.cpp variable.cpp velocity.cpp verlet.cpp write_restart.cpp xdr_compat.cpp 
+SRC =	angle_cg_cmm.cpp angle_charmm.cpp angle_class2.cpp angle_cosine.cpp angle_cosine_delta.cpp angle_cosine_squared.cpp angle.cpp angle_harmonic.cpp angle_hybrid.cpp angle_table.cpp atom.cpp atom_vec_angle.cpp atom_vec_atomic.cpp atom_vec_bond.cpp atom_vec_charge.cpp atom_vec_colloid.cpp atom_vec.cpp atom_vec_dipole.cpp atom_vec_electron.cpp atom_vec_ellipsoid.cpp atom_vec_full.cpp atom_vec_granular.cpp atom_vec_hybrid.cpp atom_vec_molecular.cpp atom_vec_peri.cpp bond_class2.cpp bond.cpp bond_fene.cpp bond_fene_expand.cpp bond_harmonic.cpp bond_hybrid.cpp bond_morse.cpp bond_nonlinear.cpp bond_quartic.cpp bond_table.cpp cg_cmm_parms.cpp change_box.cpp comm.cpp compute_ackland_atom.cpp compute_angle_local.cpp compute_bond_local.cpp compute_centro_atom.cpp compute_cna_atom.cpp compute_com.cpp compute_com_molecule.cpp compute_coord_atom.cpp compute.cpp compute_damage_atom.cpp compute_dihedral_local.cpp compute_displace_atom.cpp compute_erotate_asphere.cpp compute_erotate_sphere.cpp compute_event_displace.cpp compute_group_group.cpp compute_gyration.cpp compute_gyration_molecule.cpp compute_heat_flux.cpp compute_improper_local.cpp compute_ke_atom.cpp compute_ke_atom_eff.cpp compute_ke.cpp compute_ke_eff.cpp compute_msd.cpp compute_msd_molecule.cpp compute_pair_local.cpp compute_pe_atom.cpp compute_pe.cpp compute_pressure.cpp compute_property_atom.cpp compute_property_local.cpp compute_property_molecule.cpp compute_rdf.cpp compute_reduce.cpp compute_reduce_region.cpp compute_stress_atom.cpp compute_temp_asphere.cpp compute_temp_com.cpp compute_temp.cpp compute_temp_deform.cpp compute_temp_deform_eff.cpp compute_temp_eff.cpp compute_temp_partial.cpp compute_temp_profile.cpp compute_temp_ramp.cpp compute_temp_region.cpp compute_temp_region_eff.cpp compute_temp_sphere.cpp create_atoms.cpp create_box.cpp delete_atoms.cpp delete_bonds.cpp dihedral_charmm.cpp dihedral_class2.cpp dihedral_class2_omp.cpp dihedral.cpp dihedral_harmonic.cpp dihedral_harmonic_omp.cpp dihedral_helix.cpp dihedral_helix_omp.cpp dihedral_hybrid.cpp dihedral_multi_harmonic.cpp dihedral_multi_harmonic_omp.cpp dihedral_omp.cpp dihedral_opls.cpp dihedral_opls_omp.cpp displace_atoms.cpp displace_box.cpp domain.cpp dump_atom.cpp dump_cfg.cpp dump.cpp dump_custom.cpp dump_dcd.cpp dump_local.cpp dump_xtc.cpp dump_xyz.cpp error.cpp ewald_cg.cpp ewald.cpp ewald_n.cpp ewald_omp.cpp fft3d.cpp fft3d_wrap.cpp finish.cpp fix_adapt.cpp fix_addforce.cpp fix_ave_atom.cpp fix_ave_correlate.cpp fix_aveforce.cpp fix_ave_histo.cpp fix_ave_spatial.cpp fix_ave_time.cpp fix_bond_break.cpp fix_bond_create.cpp fix_bond_swap.cpp fix_box_relax.cpp fix.cpp fix_deform.cpp fix_deposit.cpp fix_drag.cpp fix_dt_reset.cpp fix_efield.cpp fix_enforce2d.cpp fix_evaporate.cpp fix_event.cpp fix_external.cpp fix_freeze.cpp fix_gravity.cpp fix_heat.cpp fix_imd.cpp fix_indent.cpp fix_langevin.cpp fix_langevin_eff.cpp fix_lineforce.cpp fix_minimize.cpp fix_momentum.cpp fix_move.cpp fix_msst.cpp fix_neb.cpp fix_nh_asphere.cpp fix_nh.cpp fix_nh_eff.cpp fix_nh_sphere.cpp fix_nph_asphere.cpp fix_nph.cpp fix_nph_eff.cpp fix_nph_sphere.cpp fix_npt_asphere.cpp fix_npt.cpp fix_npt_eff.cpp fix_npt_sphere.cpp fix_nve_asphere.cpp fix_nve.cpp fix_nve_eff.cpp fix_nve_limit.cpp fix_nve_noforce.cpp fix_nve_sphere.cpp fix_nvt_asphere.cpp fix_nvt.cpp fix_nvt_eff.cpp fix_nvt_sllod.cpp fix_nvt_sllod_eff.cpp fix_nvt_sphere.cpp fix_orient_fcc.cpp fix_peri_neigh.cpp fix_planeforce.cpp fix_pour.cpp fix_pour_omp.cpp fix_press_berendsen.cpp fix_print.cpp fix_qeq_comb.cpp fix_read_restart.cpp fix_recenter.cpp fix_respa.cpp fix_rigid.cpp fix_rigid_nve.cpp fix_rigid_nvt.cpp fix_setforce.cpp fix_shake.cpp fix_shear_history.cpp fix_shear_history_omp.cpp fix_smd.cpp fix_spring.cpp fix_spring_rg.cpp fix_spring_self.cpp fix_store_force.cpp fix_store_state.cpp fix_temp_berendsen.cpp fix_temp_rescale.cpp fix_temp_rescale_eff.cpp fix_thermal_conductivity.cpp fix_tmd.cpp fix_ttm.cpp fix_viscosity.cpp fix_viscous.cpp fix_wall_colloid.cpp fix_wall.cpp fix_wall_gran.cpp fix_wall_gran_omp.cpp fix_wall_harmonic.cpp fix_wall_lj126.cpp fix_wall_lj93.cpp fix_wall_reflect.cpp fix_wall_region.cpp force.cpp group.cpp improper_class2.cpp improper.cpp improper_cvff.cpp improper_harmonic.cpp improper_hybrid.cpp input.cpp integrate.cpp irregular.cpp kspace.cpp lammps.cpp lattice.cpp library.cpp  memory.cpp min_cg.cpp min.cpp min_fire.cpp min_hftn.cpp minimize.cpp min_linesearch.cpp min_quickmin.cpp min_sd.cpp modify.cpp neb.cpp neigh_bond.cpp neighbor.cpp neigh_derive.cpp neigh_full.cpp neigh_gran.cpp neigh_half_bin.cpp neigh_half_multi.cpp neigh_half_nsq.cpp neigh_list.cpp neigh_request.cpp neigh_respa.cpp neigh_stencil.cpp output.cpp pair_airebo.cpp pair_airebo_omp.cpp pair_algebraic_omp.cpp pair_born_coul_long.cpp pair_born_coul_long_omp.cpp pair_buck_coul.cpp pair_buck_coul_cut.cpp pair_buck_coul_cut_omp.cpp pair_buck_coul_long.cpp pair_buck_coul_long_omp.cpp pair_buck.cpp pair_buck_omp.cpp pair_cdeam.cpp pair_cg_cmm_coul_cut.cpp pair_cg_cmm_coul_long.cpp pair_cg_cmm.cpp pair_cg_cmm_omp.cpp pair_cmm_common.cpp pair_colloid.cpp pair_colloid_omp.cpp pair_comb.cpp pair_coul_cut.cpp pair_coul_cut_omp.cpp pair_coul_debye.cpp pair_coul_debye_omp.cpp pair_coul_diel.cpp pair_coul_diel_omp.cpp pair_coul_long.cpp pair_coul_long_omp.cpp pair.cpp pair_dipole_cut.cpp pair_dipole_cut_omp.cpp pair_dpd.cpp pair_dpd_omp.cpp pair_dpd_tstat.cpp pair_dpd_tstat_omp.cpp pair_dsmc.cpp pair_eam_alloy.cpp pair_eam_alloy_omp.cpp pair_eam_alloy_opt.cpp pair_eam.cpp pair_eam_fs.cpp pair_eam_fs_omp.cpp pair_eam_fs_opt.cpp pair_eam_omp.cpp pair_eam_opt.cpp pair_eff_cut.cpp pair_eim.cpp pair_gauss_cut.cpp pair_gauss_cut_omp.cpp pair_gayberne.cpp pair_gayberne_omp.cpp pair_gran_hertz_history.cpp pair_gran_hertz_history_omp.cpp pair_gran_hooke.cpp pair_gran_hooke_history.cpp pair_gran_hooke_history_omp.cpp pair_gran_hooke_omp.cpp pair_hybrid.cpp pair_hybrid_overlay.cpp pair_lj96_cut.cpp pair_lj96_cut_omp.cpp pair_lj_charmm_coul_charmm.cpp pair_lj_charmm_coul_charmm_implicit.cpp pair_lj_charmm_coul_charmm_implicit_omp.cpp pair_lj_charmm_coul_charmm_omp.cpp pair_lj_charmm_coul_long.cpp pair_lj_charmm_coul_long_omp.cpp pair_lj_charmm_coul_long_opt.cpp pair_lj_class2_coul_cut.cpp pair_lj_class2_coul_cut_omp.cpp pair_lj_class2_coul_long.cpp pair_lj_class2_coul_long_omp.cpp pair_lj_class2.cpp pair_lj_class2_omp.cpp pair_lj_coul.cpp pair_lj_cut_coul_cut.cpp pair_lj_cut_coul_cut_omp.cpp pair_lj_cut_coul_debye.cpp pair_lj_cut_coul_debye_omp.cpp pair_lj_cut_coul_long.cpp pair_lj_cut_coul_long_omp.cpp pair_lj_cut_coul_long_tip4p.cpp pair_lj_cut_coul_long_tip4p_omp.cpp pair_lj_cut.cpp pair_lj_cut_omp.cpp pair_lj_cut_opt.cpp pair_lj_expand.cpp pair_lj_expand_omp.cpp pair_lj_gromacs_coul_gromacs.cpp pair_lj_gromacs_coul_gromacs_omp.cpp pair_lj_gromacs.cpp pair_lj_gromacs_omp.cpp pair_lj_smooth.cpp pair_lj_smooth_omp.cpp pair_lubricate.cpp pair_lubricate_omp.cpp pair_morse.cpp pair_morse_omp.cpp pair_morse_opt.cpp pair_omp.cpp pair_peri_lps.cpp pair_peri_pmb.cpp pair_resquared.cpp pair_resquared_omp.cpp pair_soft.cpp pair_soft_omp.cpp pair_sw.cpp pair_sw_omp.cpp pair_table.cpp pair_table_omp.cpp pair_tersoff.cpp pair_tersoff_omp.cpp pair_tersoff_zbl.cpp pair_tersoff_zbl_omp.cpp pair_yukawa_colloid.cpp pair_yukawa_colloid_omp.cpp pair_yukawa.cpp pair_yukawa_omp.cpp pppm_cg.cpp pppm.cpp pppm_tip4p.cpp prd.cpp random_mars.cpp random_park.cpp read_data.cpp read_restart.cpp region_block.cpp region_cone.cpp region.cpp region_cylinder.cpp region_intersect.cpp region_plane.cpp region_prism.cpp region_sphere.cpp region_union.cpp remap.cpp remap_wrap.cpp replicate.cpp respa.cpp run.cpp set.cpp shell.cpp special.cpp temper.cpp thermo.cpp timer.cpp universe.cpp update.cpp variable.cpp velocity.cpp verlet.cpp write_restart.cpp xdr_compat.cpp 
 
-INC =	angle.h angle_charmm.h angle_class2.h angle_cosine.h angle_cosine_delta.h angle_cosine_squared.h angle_harmonic.h angle_hybrid.h angle_table.h atom.h atom_vec.h atom_vec_angle.h atom_vec_atomic.h atom_vec_bond.h atom_vec_charge.h atom_vec_colloid.h atom_vec_dipole.h atom_vec_ellipsoid.h atom_vec_full.h atom_vec_granular.h atom_vec_hybrid.h atom_vec_molecular.h atom_vec_peri.h bond.h bond_class2.h bond_fene.h bond_fene_expand.h bond_harmonic.h bond_hybrid.h bond_morse.h bond_nonlinear.h bond_quartic.h bond_table.h change_box.h comm.h compute.h compute_angle_local.h compute_bond_local.h compute_centro_atom.h compute_cna_atom.h compute_com.h compute_com_molecule.h compute_coord_atom.h compute_damage_atom.h compute_dihedral_local.h compute_displace_atom.h compute_erotate_asphere.h compute_erotate_sphere.h compute_event_displace.h compute_group_group.h compute_gyration.h compute_gyration_molecule.h compute_heat_flux.h compute_improper_local.h compute_ke.h compute_ke_atom.h compute_msd.h compute_msd_molecule.h compute_pair_local.h compute_pe.h compute_pe_atom.h compute_pressure.h compute_property_atom.h compute_property_local.h compute_property_molecule.h compute_rdf.h compute_reduce.h compute_reduce_region.h compute_stress_atom.h compute_temp.h compute_temp_asphere.h compute_temp_com.h compute_temp_deform.h compute_temp_partial.h compute_temp_profile.h compute_temp_ramp.h compute_temp_region.h compute_temp_sphere.h create_atoms.h create_box.h delete_atoms.h delete_bonds.h dihedral.h dihedral_charmm.h dihedral_class2.h dihedral_harmonic.h dihedral_helix.h dihedral_hybrid.h dihedral_multi_harmonic.h dihedral_opls.h displace_atoms.h displace_box.h domain.h dump.h dump_atom.h dump_cfg.h dump_custom.h dump_dcd.h dump_local.h dump_xtc.h dump_xyz.h error.h ewald.h fft3d.h fft3d_wrap.h finish.h fix.h fix_adapt.h fix_addforce.h fix_ave_atom.h fix_ave_correlate.h fix_ave_histo.h fix_ave_spatial.h fix_ave_time.h fix_aveforce.h fix_bond_break.h fix_bond_create.h fix_bond_swap.h fix_box_relax.h fix_deform.h fix_deposit.h fix_drag.h fix_dt_reset.h fix_efield.h fix_enforce2d.h fix_evaporate.h fix_event.h fix_external.h fix_freeze.h fix_gravity.h fix_heat.h fix_indent.h fix_langevin.h fix_lineforce.h fix_minimize.h fix_momentum.h fix_move.h fix_msst.h fix_nh.h fix_nh_asphere.h fix_nh_sphere.h fix_nph.h fix_nph_asphere.h fix_nph_sphere.h fix_npt.h fix_npt_asphere.h fix_npt_sphere.h fix_nve.h fix_nve_asphere.h fix_nve_limit.h fix_nve_noforce.h fix_nve_sphere.h fix_nvt.h fix_nvt_asphere.h fix_nvt_sllod.h fix_nvt_sphere.h fix_orient_fcc.h fix_peri_neigh.h fix_planeforce.h fix_pour.h fix_press_berendsen.h fix_print.h fix_qeq_comb.h fix_read_restart.h fix_recenter.h fix_respa.h fix_rigid.h fix_rigid_nve.h fix_rigid_nvt.h fix_setforce.h fix_shake.h fix_shear_history.h fix_spring.h fix_spring_rg.h fix_spring_self.h fix_store_force.h fix_store_state.h fix_temp_berendsen.h fix_temp_rescale.h fix_thermal_conductivity.h fix_tmd.h fix_ttm.h fix_viscosity.h fix_viscous.h fix_wall.h fix_wall_colloid.h fix_wall_gran.h fix_wall_harmonic.h fix_wall_lj126.h fix_wall_lj93.h fix_wall_reflect.h fix_wall_region.h force.h group.h improper.h improper_class2.h improper_cvff.h improper_harmonic.h improper_hybrid.h input.h integrate.h irregular.h kspace.h lammps.h lattice.h library.h math_extra.h memory.h min.h min_cg.h min_hftn.h min_linesearch.h min_sd.h minimize.h modify.h neigh_list.h neigh_request.h neighbor.h output.h pack.h pair.h pair_airebo.h pair_born_coul_long.h pair_buck.h pair_buck_coul_cut.h pair_buck_coul_long.h pair_colloid.h pair_comb.h pair_coul_cut.h pair_coul_debye.h pair_coul_long.h pair_dipole_cut.h pair_dpd.h pair_dpd_tstat.h pair_dsmc.h pair_eam.h pair_eam_alloy.h pair_eam_alloy_opt.h pair_eam_fs.h pair_eam_fs_opt.h pair_eam_opt.h pair_eim.h pair_gayberne.h pair_gran_hertz_history.h pair_gran_hooke.h pair_gran_hooke_history.h pair_hybrid.h pair_hybrid_overlay.h pair_lj96_cut.h pair_lj_charmm_coul_charmm.h pair_lj_charmm_coul_charmm_implicit.h pair_lj_charmm_coul_long.h pair_lj_charmm_coul_long_opt.h pair_lj_class2.h pair_lj_class2_coul_cut.h pair_lj_class2_coul_long.h pair_lj_cut.h pair_lj_cut_coul_cut.h pair_lj_cut_coul_debye.h pair_lj_cut_coul_long.h pair_lj_cut_coul_long_tip4p.h pair_lj_cut_opt.h pair_lj_expand.h pair_lj_gromacs.h pair_lj_gromacs_coul_gromacs.h pair_lj_smooth.h pair_lubricate.h pair_morse.h pair_morse_opt.h pair_peri_lps.h pair_peri_pmb.h pair_resquared.h pair_soft.h pair_sw.h pair_table.h pair_tersoff.h pair_tersoff_zbl.h pair_yukawa.h pair_yukawa_colloid.h pointers.h pppm.h pppm_tip4p.h prd.h random_mars.h random_park.h read_data.h read_restart.h region.h region_block.h region_cone.h region_cylinder.h region_intersect.h region_plane.h region_prism.h region_sphere.h region_union.h remap.h remap_wrap.h replicate.h respa.h run.h set.h shell.h special.h style_angle.h style_atom.h style_bond.h style_command.h style_compute.h style_dihedral.h style_dump.h style_fix.h style_improper.h style_integrate.h style_kspace.h style_minimize.h style_pair.h style_region.h temper.h thermo.h timer.h universe.h update.h variable.h velocity.h verlet.h version.h write_restart.h xdr_compat.h 
+INC =	angle_cg_cmm.h angle_charmm.h angle_class2.h angle_cosine_delta.h angle_cosine.h angle_cosine_squared.h angle.h angle_harmonic.h angle_hybrid.h angle_table.h atom.h atom_vec_angle.h atom_vec_atomic.h atom_vec_bond.h atom_vec_charge.h atom_vec_colloid.h atom_vec_dipole.h atom_vec_electron.h atom_vec_ellipsoid.h atom_vec_full.h atom_vec_granular.h atom_vec.h atom_vec_hybrid.h atom_vec_molecular.h atom_vec_peri.h bond_class2.h bond_fene_expand.h bond_fene.h bond.h bond_harmonic.h bond_hybrid.h bond_morse.h bond_nonlinear.h bond_quartic.h bond_table.h cg_cmm_parms.h change_box.h comm.h compute_ackland_atom.h compute_angle_local.h compute_bond_local.h compute_centro_atom.h compute_cna_atom.h compute_com.h compute_com_molecule.h compute_coord_atom.h compute_damage_atom.h compute_dihedral_local.h compute_displace_atom.h compute_erotate_asphere.h compute_erotate_sphere.h compute_event_displace.h compute_group_group.h compute_gyration.h compute_gyration_molecule.h compute.h compute_heat_flux.h compute_improper_local.h compute_ke_atom_eff.h compute_ke_atom.h compute_ke_eff.h compute_ke.h compute_msd.h compute_msd_molecule.h compute_pair_local.h compute_pe_atom.h compute_pe.h compute_pressure.h compute_property_atom.h compute_property_local.h compute_property_molecule.h compute_rdf.h compute_reduce.h compute_reduce_region.h compute_stress_atom.h compute_temp_asphere.h compute_temp_com.h compute_temp_deform_eff.h compute_temp_deform.h compute_temp_eff.h compute_temp.h compute_temp_partial.h compute_temp_profile.h compute_temp_ramp.h compute_temp_region_eff.h compute_temp_region.h compute_temp_sphere.h create_atoms.h create_box.h delete_atoms.h delete_bonds.h dihedral_charmm.h dihedral_class2.h dihedral_class2_omp.h dihedral.h dihedral_harmonic.h dihedral_harmonic_omp.h dihedral_helix.h dihedral_helix_omp.h dihedral_hybrid.h dihedral_multi_harmonic.h dihedral_multi_harmonic_omp.h dihedral_omp.h dihedral_opls.h dihedral_opls_omp.h displace_atoms.h displace_box.h domain.h dump_atom.h dump_cfg.h dump_custom.h dump_dcd.h dump.h dump_local.h dump_xtc.h dump_xyz.h error.h ewald_cg.h ewald.h ewald_n.h ewald_omp.h fft3d.h fft3d_wrap.h finish.h fix_adapt.h fix_addforce.h fix_ave_atom.h fix_ave_correlate.h fix_aveforce.h fix_ave_histo.h fix_ave_spatial.h fix_ave_time.h fix_bond_break.h fix_bond_create.h fix_bond_swap.h fix_box_relax.h fix_deform.h fix_deposit.h fix_drag.h fix_dt_reset.h fix_efield.h fix_enforce2d.h fix_evaporate.h fix_event.h fix_external.h fix_freeze.h fix_gravity.h fix.h fix_heat.h fix_imd.h fix_indent.h fix_langevin_eff.h fix_langevin.h fix_lineforce.h fix_minimize.h fix_momentum.h fix_move.h fix_msst.h fix_neb.h fix_nh_asphere.h fix_nh_eff.h fix_nh.h fix_nh_sphere.h fix_nph_asphere.h fix_nph_eff.h fix_nph.h fix_nph_sphere.h fix_npt_asphere.h fix_npt_eff.h fix_npt.h fix_npt_sphere.h fix_nve_asphere.h fix_nve_eff.h fix_nve.h fix_nve_limit.h fix_nve_noforce.h fix_nve_sphere.h fix_nvt_asphere.h fix_nvt_eff.h fix_nvt.h fix_nvt_sllod_eff.h fix_nvt_sllod.h fix_nvt_sphere.h fix_orient_fcc.h fix_peri_neigh.h fix_planeforce.h fix_pour.h fix_pour_omp.h fix_press_berendsen.h fix_print.h fix_qeq_comb.h fix_read_restart.h fix_recenter.h fix_respa.h fix_rigid.h fix_rigid_nve.h fix_rigid_nvt.h fix_setforce.h fix_shake.h fix_shear_history.h fix_shear_history_omp.h fix_smd.h fix_spring.h fix_spring_rg.h fix_spring_self.h fix_store_force.h fix_store_state.h fix_temp_berendsen.h fix_temp_rescale_eff.h fix_temp_rescale.h fix_thermal_conductivity.h fix_tmd.h fix_ttm.h fix_viscosity.h fix_viscous.h fix_wall_colloid.h fix_wall_gran.h fix_wall_gran_omp.h fix_wall.h fix_wall_harmonic.h fix_wall_lj126.h fix_wall_lj93.h fix_wall_reflect.h fix_wall_region.h force.h group.h improper_class2.h improper_cvff.h improper.h improper_harmonic.h improper_hybrid.h input.h integrate.h irregular.h kissfft.h kspace.h lammps.h lattice.h library.h math_complex.h math_extra.h math_vector.h memory.h min_cg.h min_fire.h min.h min_hftn.h minimize.h min_linesearch.h min_quickmin.h min_sd.h modify.h neb.h neighbor.h neigh_list.h neigh_request.h output.h pack.h pair_airebo.h pair_airebo_omp.h pair_algebraic_omp.h pair_born_coul_long.h pair_born_coul_long_omp.h pair_buck_coul_cut.h pair_buck_coul_cut_omp.h pair_buck_coul.h pair_buck_coul_long.h pair_buck_coul_long_omp.h pair_buck.h pair_buck_omp.h pair_cdeam.h pair_cg_cmm_coul_cut.h pair_cg_cmm_coul_long.h pair_cg_cmm.h pair_cg_cmm_omp.h pair_cmm_common.h pair_colloid.h pair_colloid_omp.h pair_comb.h pair_coul_cut.h pair_coul_cut_omp.h pair_coul_debye.h pair_coul_debye_omp.h pair_coul_diel.h pair_coul_diel_omp.h pair_coul_long.h pair_coul_long_omp.h pair_dipole_cut.h pair_dipole_cut_omp.h pair_dpd.h pair_dpd_omp.h pair_dpd_tstat.h pair_dpd_tstat_omp.h pair_dsmc.h pair_eam_alloy.h pair_eam_alloy_omp.h pair_eam_alloy_opt.h pair_eam_fs.h pair_eam_fs_omp.h pair_eam_fs_opt.h pair_eam.h pair_eam_omp.h pair_eam_opt.h pair_eff_cut.h pair_eff_inline.h pair_eim.h pair_gauss_cut.h pair_gauss_cut_omp.h pair_gayberne.h pair_gayberne_omp.h pair_gran_hertz_history.h pair_gran_hertz_history_omp.h pair_gran_hooke.h pair_gran_hooke_history.h pair_gran_hooke_history_omp.h pair_gran_hooke_omp.h pair.h pair_hybrid.h pair_hybrid_overlay.h pair_lj96_cut.h pair_lj96_cut_omp.h pair_lj_charmm_coul_charmm.h pair_lj_charmm_coul_charmm_implicit.h pair_lj_charmm_coul_charmm_implicit_omp.h pair_lj_charmm_coul_charmm_omp.h pair_lj_charmm_coul_long.h pair_lj_charmm_coul_long_omp.h pair_lj_charmm_coul_long_opt.h pair_lj_class2_coul_cut.h pair_lj_class2_coul_cut_omp.h pair_lj_class2_coul_long.h pair_lj_class2_coul_long_omp.h pair_lj_class2.h pair_lj_class2_omp.h pair_lj_coul.h pair_lj_cut_coul_cut.h pair_lj_cut_coul_cut_omp.h pair_lj_cut_coul_debye.h pair_lj_cut_coul_debye_omp.h pair_lj_cut_coul_long.h pair_lj_cut_coul_long_omp.h pair_lj_cut_coul_long_tip4p.h pair_lj_cut_coul_long_tip4p_omp.h pair_lj_cut.h pair_lj_cut_omp.h pair_lj_cut_opt.h pair_lj_expand.h pair_lj_expand_omp.h pair_lj_gromacs_coul_gromacs.h pair_lj_gromacs_coul_gromacs_omp.h pair_lj_gromacs.h pair_lj_gromacs_omp.h pair_lj_smooth.h pair_lj_smooth_omp.h pair_lubricate.h pair_lubricate_omp.h pair_morse.h pair_morse_omp.h pair_morse_opt.h pair_omp.h pair_peri_lps.h pair_peri_pmb.h pair_resquared.h pair_resquared_omp.h pair_soft.h pair_soft_omp.h pair_sw.h pair_sw_omp.h pair_table.h pair_table_omp.h pair_tersoff.h pair_tersoff_omp.h pair_tersoff_zbl.h pair_tersoff_zbl_omp.h pair_yukawa_colloid.h pair_yukawa_colloid_omp.h pair_yukawa.h pair_yukawa_omp.h pointers.h pppm_cg.h pppm.h pppm_tip4p.h prd.h random_mars.h random_park.h read_data.h read_restart.h region_block.h region_cone.h region_cylinder.h region.h region_intersect.h region_plane.h region_prism.h region_sphere.h region_union.h remap.h remap_wrap.h replicate.h respa.h run.h set.h shell.h special.h style_angle.h style_atom.h style_bond.h style_command.h style_compute.h style_dihedral.h style_dump.h style_fix.h style_improper.h style_integrate.h style_kspace.h style_minimize.h style_pair.h style_region.h temper.h thermo.h timer.h universe.h update.h variable.h velocity.h verlet.h version.h write_restart.h xdr_compat.h 
 
 OBJ =	$(SRC:.cpp=.o)
 
 # Targets
 
 help:
 	@echo 'Type "make target" where target is one of:'
 	@echo ''
 	@files="`ls MAKE/Makefile.*`"; \
 	for file in $$files; do head -1 $$file; done
 
 clean:
 	rm -rf Obj_*
 
 .DEFAULT:
 	@test -f MAKE/Makefile.$@
 	@if [ ! -d Obj_$@ ]; then mkdir Obj_$@; fi
 	@cp -p $(SRC) $(INC) Obj_$@
 	@cp MAKE/Makefile.$@ Obj_$@/Makefile
 	@cp Makefile.package Obj_$@
 	@cd Obj_$@; \
 	$(MAKE) $(MFLAGS) "OBJ = $(OBJ)" "INC = $(INC)" "EXE = ../$(EXE)" lib
 	@if [ -d Obj_$@ ]; then cd Obj_$@; rm -f $(SRC) $(INC) Makefile*; fi
diff --git a/src/Makefile.list b/src/Makefile.list
index fe4b0a96c..0a31e7ea3 100644
--- a/src/Makefile.list
+++ b/src/Makefile.list
@@ -1,35 +1,35 @@
 # LAMMPS multiple-machine Makefile with explicit file list
 
 SHELL = /bin/sh
 
 # Definitions
 
 ROOT =	lmp
 EXE =	$(ROOT)_$@
 
-SRC =	angle.cpp angle_charmm.cpp angle_cosine.cpp angle_cosine_delta.cpp angle_cosine_squared.cpp angle_harmonic.cpp angle_hybrid.cpp angle_table.cpp atom.cpp atom_vec.cpp atom_vec_angle.cpp atom_vec_atomic.cpp atom_vec_bond.cpp atom_vec_charge.cpp atom_vec_full.cpp atom_vec_hybrid.cpp atom_vec_molecular.cpp bond.cpp bond_fene.cpp bond_fene_expand.cpp bond_harmonic.cpp bond_hybrid.cpp bond_morse.cpp bond_nonlinear.cpp bond_quartic.cpp bond_table.cpp change_box.cpp comm.cpp compute.cpp compute_angle_local.cpp compute_bond_local.cpp compute_centro_atom.cpp compute_cna_atom.cpp compute_com.cpp compute_com_molecule.cpp compute_coord_atom.cpp compute_dihedral_local.cpp compute_displace_atom.cpp compute_erotate_sphere.cpp compute_group_group.cpp compute_gyration.cpp compute_gyration_molecule.cpp compute_heat_flux.cpp compute_improper_local.cpp compute_ke.cpp compute_ke_atom.cpp compute_msd.cpp compute_msd_molecule.cpp compute_pair_local.cpp compute_pe.cpp compute_pe_atom.cpp compute_pressure.cpp compute_property_atom.cpp compute_property_local.cpp compute_property_molecule.cpp compute_rdf.cpp compute_reduce.cpp compute_reduce_region.cpp compute_stress_atom.cpp compute_temp.cpp compute_temp_com.cpp compute_temp_deform.cpp compute_temp_partial.cpp compute_temp_profile.cpp compute_temp_ramp.cpp compute_temp_region.cpp compute_temp_sphere.cpp create_atoms.cpp create_box.cpp delete_atoms.cpp delete_bonds.cpp dihedral.cpp dihedral_charmm.cpp dihedral_harmonic.cpp dihedral_helix.cpp dihedral_hybrid.cpp dihedral_multi_harmonic.cpp dihedral_opls.cpp displace_atoms.cpp displace_box.cpp domain.cpp dump.cpp dump_atom.cpp dump_cfg.cpp dump_custom.cpp dump_dcd.cpp dump_local.cpp dump_xyz.cpp error.cpp ewald.cpp fft3d.cpp fft3d_wrap.cpp finish.cpp fix.cpp fix_adapt.cpp fix_addforce.cpp fix_ave_atom.cpp fix_ave_correlate.cpp fix_ave_histo.cpp fix_ave_spatial.cpp fix_ave_time.cpp fix_aveforce.cpp fix_bond_break.cpp fix_bond_create.cpp fix_bond_swap.cpp fix_box_relax.cpp fix_deform.cpp fix_deposit.cpp fix_drag.cpp fix_dt_reset.cpp fix_efield.cpp fix_enforce2d.cpp fix_evaporate.cpp fix_gravity.cpp fix_heat.cpp fix_indent.cpp fix_langevin.cpp fix_lineforce.cpp fix_minimize.cpp fix_momentum.cpp fix_move.cpp fix_nh.cpp fix_nh_sphere.cpp fix_nph.cpp fix_nph_sphere.cpp fix_npt.cpp fix_npt_sphere.cpp fix_nve.cpp fix_nve_limit.cpp fix_nve_noforce.cpp fix_nve_sphere.cpp fix_nvt.cpp fix_nvt_sllod.cpp fix_nvt_sphere.cpp fix_orient_fcc.cpp fix_planeforce.cpp fix_press_berendsen.cpp fix_print.cpp fix_qeq_comb.cpp fix_recenter.cpp fix_respa.cpp fix_rigid.cpp fix_rigid_nve.cpp fix_rigid_nvt.cpp fix_setforce.cpp fix_shake.cpp fix_shear_history.cpp fix_spring.cpp fix_spring_rg.cpp fix_spring_self.cpp fix_store_force.cpp fix_store_state.cpp fix_temp_berendsen.cpp fix_temp_rescale.cpp fix_thermal_conductivity.cpp fix_tmd.cpp fix_ttm.cpp fix_viscosity.cpp fix_viscous.cpp fix_wall.cpp fix_wall_harmonic.cpp fix_wall_lj126.cpp fix_wall_lj93.cpp fix_wall_reflect.cpp fix_wall_region.cpp force.cpp group.cpp improper.cpp improper_cvff.cpp improper_harmonic.cpp improper_hybrid.cpp input.cpp integrate.cpp kspace.cpp lammps.cpp lattice.cpp library.cpp main.cpp memory.cpp min.cpp min_cg.cpp min_hftn.cpp min_linesearch.cpp min_sd.cpp minimize.cpp modify.cpp neigh_bond.cpp neigh_derive.cpp neigh_full.cpp neigh_gran.cpp neigh_half_bin.cpp neigh_half_multi.cpp neigh_half_nsq.cpp neigh_list.cpp neigh_request.cpp neigh_respa.cpp neigh_stencil.cpp neighbor.cpp output.cpp pack.cpp pair.cpp pair_airebo.cpp pair_born_coul_long.cpp pair_buck.cpp pair_buck_coul_cut.cpp pair_buck_coul_long.cpp pair_comb.cpp pair_coul_cut.cpp pair_coul_debye.cpp pair_coul_long.cpp pair_dpd.cpp pair_dpd_tstat.cpp pair_eam.cpp pair_eam_alloy.cpp pair_eam_fs.cpp pair_eim.cpp pair_hybrid.cpp pair_hybrid_overlay.cpp pair_lj96_cut.cpp pair_lj_charmm_coul_charmm.cpp pair_lj_charmm_coul_charmm_implicit.cpp pair_lj_charmm_coul_long.cpp pair_lj_cut.cpp pair_lj_cut_coul_cut.cpp pair_lj_cut_coul_debye.cpp pair_lj_cut_coul_long.cpp pair_lj_cut_coul_long_tip4p.cpp pair_lj_expand.cpp pair_lj_gromacs.cpp pair_lj_gromacs_coul_gromacs.cpp pair_lj_smooth.cpp pair_morse.cpp pair_soft.cpp pair_sw.cpp pair_table.cpp pair_tersoff.cpp pair_tersoff_zbl.cpp pair_yukawa.cpp pppm.cpp pppm_tip4p.cpp random_mars.cpp random_park.cpp read_data.cpp read_restart.cpp region.cpp region_block.cpp region_cone.cpp region_cylinder.cpp region_intersect.cpp region_plane.cpp region_prism.cpp region_sphere.cpp region_union.cpp remap.cpp remap_wrap.cpp replicate.cpp respa.cpp run.cpp set.cpp shell.cpp special.cpp temper.cpp thermo.cpp timer.cpp universe.cpp update.cpp variable.cpp velocity.cpp verlet.cpp write_restart.cpp 
+SRC =	angle_cg_cmm.cpp angle_charmm.cpp angle_class2.cpp angle_cosine.cpp angle_cosine_delta.cpp angle_cosine_squared.cpp angle.cpp angle_harmonic.cpp angle_hybrid.cpp angle_table.cpp atom.cpp atom_vec_angle.cpp atom_vec_atomic.cpp atom_vec_bond.cpp atom_vec_charge.cpp atom_vec_colloid.cpp atom_vec.cpp atom_vec_dipole.cpp atom_vec_electron.cpp atom_vec_ellipsoid.cpp atom_vec_full.cpp atom_vec_granular.cpp atom_vec_hybrid.cpp atom_vec_molecular.cpp atom_vec_peri.cpp bond_class2.cpp bond.cpp bond_fene.cpp bond_fene_expand.cpp bond_harmonic.cpp bond_hybrid.cpp bond_morse.cpp bond_nonlinear.cpp bond_quartic.cpp bond_table.cpp cg_cmm_parms.cpp change_box.cpp comm.cpp compute_ackland_atom.cpp compute_angle_local.cpp compute_bond_local.cpp compute_centro_atom.cpp compute_cna_atom.cpp compute_com.cpp compute_com_molecule.cpp compute_coord_atom.cpp compute.cpp compute_damage_atom.cpp compute_dihedral_local.cpp compute_displace_atom.cpp compute_erotate_asphere.cpp compute_erotate_sphere.cpp compute_event_displace.cpp compute_group_group.cpp compute_gyration.cpp compute_gyration_molecule.cpp compute_heat_flux.cpp compute_improper_local.cpp compute_ke_atom.cpp compute_ke_atom_eff.cpp compute_ke.cpp compute_ke_eff.cpp compute_msd.cpp compute_msd_molecule.cpp compute_pair_local.cpp compute_pe_atom.cpp compute_pe.cpp compute_pressure.cpp compute_property_atom.cpp compute_property_local.cpp compute_property_molecule.cpp compute_rdf.cpp compute_reduce.cpp compute_reduce_region.cpp compute_stress_atom.cpp compute_temp_asphere.cpp compute_temp_com.cpp compute_temp.cpp compute_temp_deform.cpp compute_temp_deform_eff.cpp compute_temp_eff.cpp compute_temp_partial.cpp compute_temp_profile.cpp compute_temp_ramp.cpp compute_temp_region.cpp compute_temp_region_eff.cpp compute_temp_sphere.cpp create_atoms.cpp create_box.cpp delete_atoms.cpp delete_bonds.cpp dihedral_charmm.cpp dihedral_class2.cpp dihedral_class2_omp.cpp dihedral.cpp dihedral_harmonic.cpp dihedral_harmonic_omp.cpp dihedral_helix.cpp dihedral_helix_omp.cpp dihedral_hybrid.cpp dihedral_multi_harmonic.cpp dihedral_multi_harmonic_omp.cpp dihedral_omp.cpp dihedral_opls.cpp dihedral_opls_omp.cpp displace_atoms.cpp displace_box.cpp domain.cpp dump_atom.cpp dump_cfg.cpp dump.cpp dump_custom.cpp dump_dcd.cpp dump_local.cpp dump_xtc.cpp dump_xyz.cpp error.cpp ewald_cg.cpp ewald.cpp ewald_n.cpp ewald_omp.cpp fft3d.cpp fft3d_wrap.cpp finish.cpp fix_adapt.cpp fix_addforce.cpp fix_ave_atom.cpp fix_ave_correlate.cpp fix_aveforce.cpp fix_ave_histo.cpp fix_ave_spatial.cpp fix_ave_time.cpp fix_bond_break.cpp fix_bond_create.cpp fix_bond_swap.cpp fix_box_relax.cpp fix.cpp fix_deform.cpp fix_deposit.cpp fix_drag.cpp fix_dt_reset.cpp fix_efield.cpp fix_enforce2d.cpp fix_evaporate.cpp fix_event.cpp fix_external.cpp fix_freeze.cpp fix_gravity.cpp fix_heat.cpp fix_imd.cpp fix_indent.cpp fix_langevin.cpp fix_langevin_eff.cpp fix_lineforce.cpp fix_minimize.cpp fix_momentum.cpp fix_move.cpp fix_msst.cpp fix_neb.cpp fix_nh_asphere.cpp fix_nh.cpp fix_nh_eff.cpp fix_nh_sphere.cpp fix_nph_asphere.cpp fix_nph.cpp fix_nph_eff.cpp fix_nph_sphere.cpp fix_npt_asphere.cpp fix_npt.cpp fix_npt_eff.cpp fix_npt_sphere.cpp fix_nve_asphere.cpp fix_nve.cpp fix_nve_eff.cpp fix_nve_limit.cpp fix_nve_noforce.cpp fix_nve_sphere.cpp fix_nvt_asphere.cpp fix_nvt.cpp fix_nvt_eff.cpp fix_nvt_sllod.cpp fix_nvt_sllod_eff.cpp fix_nvt_sphere.cpp fix_orient_fcc.cpp fix_peri_neigh.cpp fix_planeforce.cpp fix_pour.cpp fix_pour_omp.cpp fix_press_berendsen.cpp fix_print.cpp fix_qeq_comb.cpp fix_read_restart.cpp fix_recenter.cpp fix_respa.cpp fix_rigid.cpp fix_rigid_nve.cpp fix_rigid_nvt.cpp fix_setforce.cpp fix_shake.cpp fix_shear_history.cpp fix_shear_history_omp.cpp fix_smd.cpp fix_spring.cpp fix_spring_rg.cpp fix_spring_self.cpp fix_store_force.cpp fix_store_state.cpp fix_temp_berendsen.cpp fix_temp_rescale.cpp fix_temp_rescale_eff.cpp fix_thermal_conductivity.cpp fix_tmd.cpp fix_ttm.cpp fix_viscosity.cpp fix_viscous.cpp fix_wall_colloid.cpp fix_wall.cpp fix_wall_gran.cpp fix_wall_gran_omp.cpp fix_wall_harmonic.cpp fix_wall_lj126.cpp fix_wall_lj93.cpp fix_wall_reflect.cpp fix_wall_region.cpp force.cpp group.cpp improper_class2.cpp improper.cpp improper_cvff.cpp improper_harmonic.cpp improper_hybrid.cpp input.cpp integrate.cpp irregular.cpp kspace.cpp lammps.cpp lattice.cpp library.cpp main.cpp memory.cpp min_cg.cpp min.cpp min_fire.cpp min_hftn.cpp minimize.cpp min_linesearch.cpp min_quickmin.cpp min_sd.cpp modify.cpp neb.cpp neigh_bond.cpp neighbor.cpp neigh_derive.cpp neigh_full.cpp neigh_gran.cpp neigh_half_bin.cpp neigh_half_multi.cpp neigh_half_nsq.cpp neigh_list.cpp neigh_request.cpp neigh_respa.cpp neigh_stencil.cpp output.cpp pair_airebo.cpp pair_airebo_omp.cpp pair_algebraic_omp.cpp pair_born_coul_long.cpp pair_born_coul_long_omp.cpp pair_buck_coul.cpp pair_buck_coul_cut.cpp pair_buck_coul_cut_omp.cpp pair_buck_coul_long.cpp pair_buck_coul_long_omp.cpp pair_buck.cpp pair_buck_omp.cpp pair_cdeam.cpp pair_cg_cmm_coul_cut.cpp pair_cg_cmm_coul_long.cpp pair_cg_cmm.cpp pair_cg_cmm_omp.cpp pair_cmm_common.cpp pair_colloid.cpp pair_colloid_omp.cpp pair_comb.cpp pair_coul_cut.cpp pair_coul_cut_omp.cpp pair_coul_debye.cpp pair_coul_debye_omp.cpp pair_coul_diel.cpp pair_coul_diel_omp.cpp pair_coul_long.cpp pair_coul_long_omp.cpp pair.cpp pair_dipole_cut.cpp pair_dipole_cut_omp.cpp pair_dpd.cpp pair_dpd_omp.cpp pair_dpd_tstat.cpp pair_dpd_tstat_omp.cpp pair_dsmc.cpp pair_eam_alloy.cpp pair_eam_alloy_omp.cpp pair_eam_alloy_opt.cpp pair_eam.cpp pair_eam_fs.cpp pair_eam_fs_omp.cpp pair_eam_fs_opt.cpp pair_eam_omp.cpp pair_eam_opt.cpp pair_eff_cut.cpp pair_eim.cpp pair_gauss_cut.cpp pair_gauss_cut_omp.cpp pair_gayberne.cpp pair_gayberne_omp.cpp pair_gran_hertz_history.cpp pair_gran_hertz_history_omp.cpp pair_gran_hooke.cpp pair_gran_hooke_history.cpp pair_gran_hooke_history_omp.cpp pair_gran_hooke_omp.cpp pair_hybrid.cpp pair_hybrid_overlay.cpp pair_lj96_cut.cpp pair_lj96_cut_omp.cpp pair_lj_charmm_coul_charmm.cpp pair_lj_charmm_coul_charmm_implicit.cpp pair_lj_charmm_coul_charmm_implicit_omp.cpp pair_lj_charmm_coul_charmm_omp.cpp pair_lj_charmm_coul_long.cpp pair_lj_charmm_coul_long_omp.cpp pair_lj_charmm_coul_long_opt.cpp pair_lj_class2_coul_cut.cpp pair_lj_class2_coul_cut_omp.cpp pair_lj_class2_coul_long.cpp pair_lj_class2_coul_long_omp.cpp pair_lj_class2.cpp pair_lj_class2_omp.cpp pair_lj_coul.cpp pair_lj_cut_coul_cut.cpp pair_lj_cut_coul_cut_omp.cpp pair_lj_cut_coul_debye.cpp pair_lj_cut_coul_debye_omp.cpp pair_lj_cut_coul_long.cpp pair_lj_cut_coul_long_omp.cpp pair_lj_cut_coul_long_tip4p.cpp pair_lj_cut_coul_long_tip4p_omp.cpp pair_lj_cut.cpp pair_lj_cut_omp.cpp pair_lj_cut_opt.cpp pair_lj_expand.cpp pair_lj_expand_omp.cpp pair_lj_gromacs_coul_gromacs.cpp pair_lj_gromacs_coul_gromacs_omp.cpp pair_lj_gromacs.cpp pair_lj_gromacs_omp.cpp pair_lj_smooth.cpp pair_lj_smooth_omp.cpp pair_lubricate.cpp pair_lubricate_omp.cpp pair_morse.cpp pair_morse_omp.cpp pair_morse_opt.cpp pair_omp.cpp pair_peri_lps.cpp pair_peri_pmb.cpp pair_resquared.cpp pair_resquared_omp.cpp pair_soft.cpp pair_soft_omp.cpp pair_sw.cpp pair_sw_omp.cpp pair_table.cpp pair_table_omp.cpp pair_tersoff.cpp pair_tersoff_omp.cpp pair_tersoff_zbl.cpp pair_tersoff_zbl_omp.cpp pair_yukawa_colloid.cpp pair_yukawa_colloid_omp.cpp pair_yukawa.cpp pair_yukawa_omp.cpp pppm_cg.cpp pppm.cpp pppm_tip4p.cpp prd.cpp random_mars.cpp random_park.cpp read_data.cpp read_restart.cpp region_block.cpp region_cone.cpp region.cpp region_cylinder.cpp region_intersect.cpp region_plane.cpp region_prism.cpp region_sphere.cpp region_union.cpp remap.cpp remap_wrap.cpp replicate.cpp respa.cpp run.cpp set.cpp shell.cpp special.cpp temper.cpp thermo.cpp timer.cpp universe.cpp update.cpp variable.cpp velocity.cpp verlet.cpp write_restart.cpp xdr_compat.cpp 
 
-INC =	angle.h angle_charmm.h angle_cosine.h angle_cosine_delta.h angle_cosine_squared.h angle_harmonic.h angle_hybrid.h angle_table.h atom.h atom_vec.h atom_vec_angle.h atom_vec_atomic.h atom_vec_bond.h atom_vec_charge.h atom_vec_full.h atom_vec_hybrid.h atom_vec_molecular.h bond.h bond_fene.h bond_fene_expand.h bond_harmonic.h bond_hybrid.h bond_morse.h bond_nonlinear.h bond_quartic.h bond_table.h change_box.h comm.h compute.h compute_angle_local.h compute_bond_local.h compute_centro_atom.h compute_cna_atom.h compute_com.h compute_com_molecule.h compute_coord_atom.h compute_dihedral_local.h compute_displace_atom.h compute_erotate_sphere.h compute_group_group.h compute_gyration.h compute_gyration_molecule.h compute_heat_flux.h compute_improper_local.h compute_ke.h compute_ke_atom.h compute_msd.h compute_msd_molecule.h compute_pair_local.h compute_pe.h compute_pe_atom.h compute_pressure.h compute_property_atom.h compute_property_local.h compute_property_molecule.h compute_rdf.h compute_reduce.h compute_reduce_region.h compute_stress_atom.h compute_temp.h compute_temp_com.h compute_temp_deform.h compute_temp_partial.h compute_temp_profile.h compute_temp_ramp.h compute_temp_region.h compute_temp_sphere.h create_atoms.h create_box.h delete_atoms.h delete_bonds.h dihedral.h dihedral_charmm.h dihedral_harmonic.h dihedral_helix.h dihedral_hybrid.h dihedral_multi_harmonic.h dihedral_opls.h displace_atoms.h displace_box.h domain.h dump.h dump_atom.h dump_cfg.h dump_custom.h dump_dcd.h dump_local.h dump_xyz.h error.h ewald.h fft3d.h fft3d_wrap.h finish.h fix.h fix_adapt.h fix_addforce.h fix_ave_atom.h fix_ave_correlate.h fix_ave_histo.h fix_ave_spatial.h fix_ave_time.h fix_aveforce.h fix_bond_break.h fix_bond_create.h fix_bond_swap.h fix_box_relax.h fix_deform.h fix_deposit.h fix_drag.h fix_dt_reset.h fix_efield.h fix_enforce2d.h fix_evaporate.h fix_gravity.h fix_heat.h fix_indent.h fix_langevin.h fix_lineforce.h fix_minimize.h fix_momentum.h fix_move.h fix_nh.h fix_nh_sphere.h fix_nph.h fix_nph_sphere.h fix_npt.h fix_npt_sphere.h fix_nve.h fix_nve_limit.h fix_nve_noforce.h fix_nve_sphere.h fix_nvt.h fix_nvt_sllod.h fix_nvt_sphere.h fix_orient_fcc.h fix_planeforce.h fix_press_berendsen.h fix_print.h fix_qeq_comb.h fix_recenter.h fix_respa.h fix_rigid.h fix_rigid_nve.h fix_rigid_nvt.h fix_setforce.h fix_shake.h fix_shear_history.h fix_spring.h fix_spring_rg.h fix_spring_self.h fix_store_force.h fix_store_state.h fix_temp_berendsen.h fix_temp_rescale.h fix_thermal_conductivity.h fix_tmd.h fix_ttm.h fix_viscosity.h fix_viscous.h fix_wall.h fix_wall_harmonic.h fix_wall_lj126.h fix_wall_lj93.h fix_wall_reflect.h fix_wall_region.h force.h group.h improper.h improper_cvff.h improper_harmonic.h improper_hybrid.h input.h integrate.h kspace.h lammps.h lattice.h library.h math_extra.h memory.h min.h min_cg.h min_hftn.h min_linesearch.h min_sd.h minimize.h modify.h neigh_list.h neigh_request.h neighbor.h output.h pack.h pair.h pair_airebo.h pair_born_coul_long.h pair_buck.h pair_buck_coul_cut.h pair_buck_coul_long.h pair_comb.h pair_coul_cut.h pair_coul_debye.h pair_coul_long.h pair_dpd.h pair_dpd_tstat.h pair_eam.h pair_eam_alloy.h pair_eam_fs.h pair_eim.h pair_hybrid.h pair_hybrid_overlay.h pair_lj96_cut.h pair_lj_charmm_coul_charmm.h pair_lj_charmm_coul_charmm_implicit.h pair_lj_charmm_coul_long.h pair_lj_cut.h pair_lj_cut_coul_cut.h pair_lj_cut_coul_debye.h pair_lj_cut_coul_long.h pair_lj_cut_coul_long_tip4p.h pair_lj_expand.h pair_lj_gromacs.h pair_lj_gromacs_coul_gromacs.h pair_lj_smooth.h pair_morse.h pair_soft.h pair_sw.h pair_table.h pair_tersoff.h pair_tersoff_zbl.h pair_yukawa.h pointers.h pppm.h pppm_tip4p.h random_mars.h random_park.h read_data.h read_restart.h region.h region_block.h region_cone.h region_cylinder.h region_intersect.h region_plane.h region_prism.h region_sphere.h region_union.h remap.h remap_wrap.h replicate.h respa.h run.h set.h shell.h special.h style_angle.h style_atom.h style_bond.h style_command.h style_compute.h style_dihedral.h style_dump.h style_fix.h style_improper.h style_integrate.h style_kspace.h style_minimize.h style_pair.h style_region.h temper.h thermo.h timer.h universe.h update.h variable.h velocity.h verlet.h version.h write_restart.h 
+INC =	angle_cg_cmm.h angle_charmm.h angle_class2.h angle_cosine_delta.h angle_cosine.h angle_cosine_squared.h angle.h angle_harmonic.h angle_hybrid.h angle_table.h atom.h atom_vec_angle.h atom_vec_atomic.h atom_vec_bond.h atom_vec_charge.h atom_vec_colloid.h atom_vec_dipole.h atom_vec_electron.h atom_vec_ellipsoid.h atom_vec_full.h atom_vec_granular.h atom_vec.h atom_vec_hybrid.h atom_vec_molecular.h atom_vec_peri.h bond_class2.h bond_fene_expand.h bond_fene.h bond.h bond_harmonic.h bond_hybrid.h bond_morse.h bond_nonlinear.h bond_quartic.h bond_table.h cg_cmm_parms.h change_box.h comm.h compute_ackland_atom.h compute_angle_local.h compute_bond_local.h compute_centro_atom.h compute_cna_atom.h compute_com.h compute_com_molecule.h compute_coord_atom.h compute_damage_atom.h compute_dihedral_local.h compute_displace_atom.h compute_erotate_asphere.h compute_erotate_sphere.h compute_event_displace.h compute_group_group.h compute_gyration.h compute_gyration_molecule.h compute.h compute_heat_flux.h compute_improper_local.h compute_ke_atom_eff.h compute_ke_atom.h compute_ke_eff.h compute_ke.h compute_msd.h compute_msd_molecule.h compute_pair_local.h compute_pe_atom.h compute_pe.h compute_pressure.h compute_property_atom.h compute_property_local.h compute_property_molecule.h compute_rdf.h compute_reduce.h compute_reduce_region.h compute_stress_atom.h compute_temp_asphere.h compute_temp_com.h compute_temp_deform_eff.h compute_temp_deform.h compute_temp_eff.h compute_temp.h compute_temp_partial.h compute_temp_profile.h compute_temp_ramp.h compute_temp_region_eff.h compute_temp_region.h compute_temp_sphere.h create_atoms.h create_box.h delete_atoms.h delete_bonds.h dihedral_charmm.h dihedral_class2.h dihedral_class2_omp.h dihedral.h dihedral_harmonic.h dihedral_harmonic_omp.h dihedral_helix.h dihedral_helix_omp.h dihedral_hybrid.h dihedral_multi_harmonic.h dihedral_multi_harmonic_omp.h dihedral_omp.h dihedral_opls.h dihedral_opls_omp.h displace_atoms.h displace_box.h domain.h dump_atom.h dump_cfg.h dump_custom.h dump_dcd.h dump.h dump_local.h dump_xtc.h dump_xyz.h error.h ewald_cg.h ewald.h ewald_n.h ewald_omp.h fft3d.h fft3d_wrap.h finish.h fix_adapt.h fix_addforce.h fix_ave_atom.h fix_ave_correlate.h fix_aveforce.h fix_ave_histo.h fix_ave_spatial.h fix_ave_time.h fix_bond_break.h fix_bond_create.h fix_bond_swap.h fix_box_relax.h fix_deform.h fix_deposit.h fix_drag.h fix_dt_reset.h fix_efield.h fix_enforce2d.h fix_evaporate.h fix_event.h fix_external.h fix_freeze.h fix_gravity.h fix.h fix_heat.h fix_imd.h fix_indent.h fix_langevin_eff.h fix_langevin.h fix_lineforce.h fix_minimize.h fix_momentum.h fix_move.h fix_msst.h fix_neb.h fix_nh_asphere.h fix_nh_eff.h fix_nh.h fix_nh_sphere.h fix_nph_asphere.h fix_nph_eff.h fix_nph.h fix_nph_sphere.h fix_npt_asphere.h fix_npt_eff.h fix_npt.h fix_npt_sphere.h fix_nve_asphere.h fix_nve_eff.h fix_nve.h fix_nve_limit.h fix_nve_noforce.h fix_nve_sphere.h fix_nvt_asphere.h fix_nvt_eff.h fix_nvt.h fix_nvt_sllod_eff.h fix_nvt_sllod.h fix_nvt_sphere.h fix_orient_fcc.h fix_peri_neigh.h fix_planeforce.h fix_pour.h fix_pour_omp.h fix_press_berendsen.h fix_print.h fix_qeq_comb.h fix_read_restart.h fix_recenter.h fix_respa.h fix_rigid.h fix_rigid_nve.h fix_rigid_nvt.h fix_setforce.h fix_shake.h fix_shear_history.h fix_shear_history_omp.h fix_smd.h fix_spring.h fix_spring_rg.h fix_spring_self.h fix_store_force.h fix_store_state.h fix_temp_berendsen.h fix_temp_rescale_eff.h fix_temp_rescale.h fix_thermal_conductivity.h fix_tmd.h fix_ttm.h fix_viscosity.h fix_viscous.h fix_wall_colloid.h fix_wall_gran.h fix_wall_gran_omp.h fix_wall.h fix_wall_harmonic.h fix_wall_lj126.h fix_wall_lj93.h fix_wall_reflect.h fix_wall_region.h force.h group.h improper_class2.h improper_cvff.h improper.h improper_harmonic.h improper_hybrid.h input.h integrate.h irregular.h kissfft.h kspace.h lammps.h lattice.h library.h math_complex.h math_extra.h math_vector.h memory.h min_cg.h min_fire.h min.h min_hftn.h minimize.h min_linesearch.h min_quickmin.h min_sd.h modify.h neb.h neighbor.h neigh_list.h neigh_request.h output.h pack.h pair_airebo.h pair_airebo_omp.h pair_algebraic_omp.h pair_born_coul_long.h pair_born_coul_long_omp.h pair_buck_coul_cut.h pair_buck_coul_cut_omp.h pair_buck_coul.h pair_buck_coul_long.h pair_buck_coul_long_omp.h pair_buck.h pair_buck_omp.h pair_cdeam.h pair_cg_cmm_coul_cut.h pair_cg_cmm_coul_long.h pair_cg_cmm.h pair_cg_cmm_omp.h pair_cmm_common.h pair_colloid.h pair_colloid_omp.h pair_comb.h pair_coul_cut.h pair_coul_cut_omp.h pair_coul_debye.h pair_coul_debye_omp.h pair_coul_diel.h pair_coul_diel_omp.h pair_coul_long.h pair_coul_long_omp.h pair_dipole_cut.h pair_dipole_cut_omp.h pair_dpd.h pair_dpd_omp.h pair_dpd_tstat.h pair_dpd_tstat_omp.h pair_dsmc.h pair_eam_alloy.h pair_eam_alloy_omp.h pair_eam_alloy_opt.h pair_eam_fs.h pair_eam_fs_omp.h pair_eam_fs_opt.h pair_eam.h pair_eam_omp.h pair_eam_opt.h pair_eff_cut.h pair_eff_inline.h pair_eim.h pair_gauss_cut.h pair_gauss_cut_omp.h pair_gayberne.h pair_gayberne_omp.h pair_gran_hertz_history.h pair_gran_hertz_history_omp.h pair_gran_hooke.h pair_gran_hooke_history.h pair_gran_hooke_history_omp.h pair_gran_hooke_omp.h pair.h pair_hybrid.h pair_hybrid_overlay.h pair_lj96_cut.h pair_lj96_cut_omp.h pair_lj_charmm_coul_charmm.h pair_lj_charmm_coul_charmm_implicit.h pair_lj_charmm_coul_charmm_implicit_omp.h pair_lj_charmm_coul_charmm_omp.h pair_lj_charmm_coul_long.h pair_lj_charmm_coul_long_omp.h pair_lj_charmm_coul_long_opt.h pair_lj_class2_coul_cut.h pair_lj_class2_coul_cut_omp.h pair_lj_class2_coul_long.h pair_lj_class2_coul_long_omp.h pair_lj_class2.h pair_lj_class2_omp.h pair_lj_coul.h pair_lj_cut_coul_cut.h pair_lj_cut_coul_cut_omp.h pair_lj_cut_coul_debye.h pair_lj_cut_coul_debye_omp.h pair_lj_cut_coul_long.h pair_lj_cut_coul_long_omp.h pair_lj_cut_coul_long_tip4p.h pair_lj_cut_coul_long_tip4p_omp.h pair_lj_cut.h pair_lj_cut_omp.h pair_lj_cut_opt.h pair_lj_expand.h pair_lj_expand_omp.h pair_lj_gromacs_coul_gromacs.h pair_lj_gromacs_coul_gromacs_omp.h pair_lj_gromacs.h pair_lj_gromacs_omp.h pair_lj_smooth.h pair_lj_smooth_omp.h pair_lubricate.h pair_lubricate_omp.h pair_morse.h pair_morse_omp.h pair_morse_opt.h pair_omp.h pair_peri_lps.h pair_peri_pmb.h pair_resquared.h pair_resquared_omp.h pair_soft.h pair_soft_omp.h pair_sw.h pair_sw_omp.h pair_table.h pair_table_omp.h pair_tersoff.h pair_tersoff_omp.h pair_tersoff_zbl.h pair_tersoff_zbl_omp.h pair_yukawa_colloid.h pair_yukawa_colloid_omp.h pair_yukawa.h pair_yukawa_omp.h pointers.h pppm_cg.h pppm.h pppm_tip4p.h prd.h random_mars.h random_park.h read_data.h read_restart.h region_block.h region_cone.h region_cylinder.h region.h region_intersect.h region_plane.h region_prism.h region_sphere.h region_union.h remap.h remap_wrap.h replicate.h respa.h run.h set.h shell.h special.h style_angle.h style_atom.h style_bond.h style_command.h style_compute.h style_dihedral.h style_dump.h style_fix.h style_improper.h style_integrate.h style_kspace.h style_minimize.h style_pair.h style_region.h temper.h thermo.h timer.h universe.h update.h variable.h velocity.h verlet.h version.h write_restart.h xdr_compat.h 
 
 OBJ =	$(SRC:.cpp=.o)
 
 # Targets
 
 help:
 	@echo 'Type "make target" where target is one of:'
 	@echo ''
 	@files="`ls MAKE/Makefile.*`"; \
 	for file in $$files; do head -1 $$file; done
 
 clean:
 	rm -rf Obj_*
 
 .DEFAULT:
 	@test -f MAKE/Makefile.$@
 	@if [ ! -d Obj_$@ ]; then mkdir Obj_$@; fi
 	@cp -p $(SRC) $(INC) Obj_$@
 	@cp MAKE/Makefile.$@ Obj_$@/Makefile
 	@cp Makefile.package Obj_$@
 	@cd Obj_$@; \
 	$(MAKE) $(MFLAGS) "OBJ = $(OBJ)" "INC = $(INC)" "EXE = ../$(EXE)" ../$(EXE)
 	@if [ -d Obj_$@ ]; then cd Obj_$@; rm -f $(SRC) $(INC) Makefile*; fi
diff --git a/src/STUBS/mpi.c b/src/STUBS/mpi.c
index 35ccc813b..ce6421ed2 100644
--- a/src/STUBS/mpi.c
+++ b/src/STUBS/mpi.c
@@ -1,377 +1,395 @@
 /* -----------------------------------------------------------------------
    LAMMPS 2003 (July 31) - Molecular Dynamics Simulator
    Sandia National Laboratories, www.cs.sandia.gov/~sjplimp/lammps.html
    Steve Plimpton, sjplimp@sandia.gov
 
    Copyright (2003) Sandia Corporation.  Under the terms of Contract
    DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
    certain rights in this software.  This software is distributed under 
    the GNU General Public License.
 
    See the README file in the top-level LAMMPS directory.
 ------------------------------------------------------------------------ */
 
 /* Single-processor "stub" versions of MPI routines */
 
 #include "stdlib.h"
 #include "string.h"
 #include "stdio.h"
 #include <sys/time.h>
 #include "mpi.h"
 
 /* lo-level data structure */
 
 struct _mpi_double_int {
   double value;
   int proc;
 };
 
 typedef struct _mpi_double_int double_int;
 
 /* ---------------------------------------------------------------------- */
 /* MPI Functions */
 /* ---------------------------------------------------------------------- */
 
 int MPI_Init(int *argc, char ***argv) {return 0;}
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Comm_rank(MPI_Comm comm, int *me)
 {
   *me = 0;
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Comm_size(MPI_Comm comm, int *nprocs)
 {
   *nprocs = 1;
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Abort(MPI_Comm comm, int errorcode)
 {
   exit(1);
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Finalize() {return 0;}
 
 /* ---------------------------------------------------------------------- */
 
 double MPI_Wtime()
 {
   double time;
   struct timeval tv;
 
   gettimeofday(&tv,NULL);
   time = 1.0 * tv.tv_sec + 1.0e-6 * tv.tv_usec;
   return time;
 }
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Send(void *buf, int count, MPI_Datatype datatype,
              int dest, int tag, MPI_Comm comm)
 {
   printf("MPI Stub WARNING: Should not send message to self\n");
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Rsend(void *buf, int count, MPI_Datatype datatype,
               int dest, int tag, MPI_Comm comm)
 {
   printf("MPI Stub WARNING: Should not rsend message to self\n");
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Recv(void *buf, int count, MPI_Datatype datatype,
              int source, int tag, MPI_Comm comm, MPI_Status *status)
 {
   printf("MPI Stub WARNING: Should not recv message from self\n");
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Irecv(void *buf, int count, MPI_Datatype datatype,
               int source, int tag, MPI_Comm comm, MPI_Request *request)
 {
   printf("MPI Stub WARNING: Should not recv message from self\n");
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Wait(MPI_Request *request, MPI_Status *status)
 {
   printf("MPI Stub WARNING: Should not wait on message from self\n");
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Waitall(int n, MPI_Request *request, MPI_Status *status)
 {
   printf("MPI Stub WARNING: Should not wait on message from self\n");
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Waitany(int count, MPI_Request *request, int *index, 
                 MPI_Status *status)
 {
   printf("MPI Stub WARNING: Should not wait on message from self\n");
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Sendrecv(void *sbuf, int scount, MPI_Datatype sdatatype,
                  int dest, int stag, void *rbuf, int rcount,
                  MPI_Datatype rdatatype, int source, int rtag,
                  MPI_Comm comm, MPI_Status *status)
 {
   printf("MPI Stub WARNING: Should not send message to self\n");
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Get_count(MPI_Status *status, MPI_Datatype datatype, int *count)
 {
   printf("MPI Stub WARNING: Should not get count of message to self\n");
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *comm_out)
 {
   *comm_out = comm;
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Comm_dup(MPI_Comm comm, MPI_Comm *comm_out)
 {
   *comm_out = comm;
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Comm_free(MPI_Comm *comm) {return 0;}
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Cart_create(MPI_Comm comm_old, int ndims, int *dims, int *periods,
                     int reorder, MPI_Comm *comm_cart)
 {
   *comm_cart = comm_old;
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Cart_get(MPI_Comm comm, int maxdims, int *dims, int *periods,
                  int *coords)
 {
   dims[0] = dims[1] = dims[2] = 1;
   periods[0] = periods[1] = periods[2] = 1;
   coords[0] = coords[1] = coords[2] = 0;
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Cart_shift(MPI_Comm comm, int direction, int displ,
                    int *source, int *dest)
 {
   *source = *dest = 0;
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Cart_rank(MPI_Comm comm, int *coords, int *rank)
 {
   *rank = 0;
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Barrier(MPI_Comm comm) {return 0;}
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Bcast(void *buf, int count, MPI_Datatype datatype,
               int root, MPI_Comm comm) {return 0;}
 
 /* ---------------------------------------------------------------------- */
 
 /* copy values from data1 to data2 */
 
 int MPI_Allreduce(void *sendbuf, void *recvbuf, int count,
                   MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
 {
   int n;
   if (datatype == MPI_INT) n = count*sizeof(int);
   else if (datatype == MPI_FLOAT) n = count*sizeof(float);
   else if (datatype == MPI_DOUBLE) n = count*sizeof(double);
   else if (datatype == MPI_CHAR) n = count*sizeof(char);
   else if (datatype == MPI_BYTE) n = count*sizeof(char);
   else if (datatype == MPI_DOUBLE_INT) n = count*sizeof(double_int);
 
   memcpy(recvbuf,sendbuf,n);
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 /* copy values from data1 to data2 */
 
 int MPI_Reduce(void *sendbuf, void *recvbuf, int count,
 		   MPI_Datatype datatype, MPI_Op op,
 		   int root, MPI_Comm comm)
 {
   int n;
   if (datatype == MPI_INT) n = count*sizeof(int);
   else if (datatype == MPI_FLOAT) n = count*sizeof(float);
   else if (datatype == MPI_DOUBLE) n = count*sizeof(double);
   else if (datatype == MPI_CHAR) n = count*sizeof(char);
   else if (datatype == MPI_BYTE) n = count*sizeof(char);
   else if (datatype == MPI_DOUBLE_INT) n = count*sizeof(double_int);
 
   memcpy(recvbuf,sendbuf,n);
   return 0;
 }
 
 
 /* ---------------------------------------------------------------------- */
 
 int MPI_Scan(void *sendbuf, void *recvbuf, int count,
              MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
 {
   int n;
   if (datatype == MPI_INT) n = count*sizeof(int);
   else if (datatype == MPI_FLOAT) n = count*sizeof(float);
   else if (datatype == MPI_DOUBLE) n = count*sizeof(double);
   else if (datatype == MPI_CHAR) n = count*sizeof(char);
   else if (datatype == MPI_BYTE) n = count*sizeof(char);
   else if (datatype == MPI_DOUBLE_INT) n = count*sizeof(double_int);
 
   memcpy(recvbuf,sendbuf,n);
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 /* copy values from data1 to data2 */
 
 int MPI_Allgather(void *sendbuf, int sendcount, MPI_Datatype sendtype,
                   void *recvbuf, int recvcount, MPI_Datatype recvtype,
                   MPI_Comm comm)
 {
   int n;
   if (sendtype == MPI_INT) n = sendcount*sizeof(int);
   else if (sendtype == MPI_FLOAT) n = sendcount*sizeof(float);
   else if (sendtype == MPI_DOUBLE) n = sendcount*sizeof(double);
   else if (sendtype == MPI_CHAR) n = sendcount*sizeof(char);
   else if (sendtype == MPI_BYTE) n = sendcount*sizeof(char);
   else if (sendtype == MPI_DOUBLE_INT) n = sendcount*sizeof(double_int);
 
   memcpy(recvbuf,sendbuf,n);
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 /* copy values from data1 to data2 */
 
 int MPI_Allgatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype,
                    void *recvbuf, int *recvcounts, int *displs,
                    MPI_Datatype recvtype, MPI_Comm comm)
 {
   int n;
   if (sendtype == MPI_INT) n = sendcount*sizeof(int);
   else if (sendtype == MPI_FLOAT) n = sendcount*sizeof(float);
   else if (sendtype == MPI_DOUBLE) n = sendcount*sizeof(double);
   else if (sendtype == MPI_CHAR) n = sendcount*sizeof(char);
   else if (sendtype == MPI_BYTE) n = sendcount*sizeof(char);
   else if (sendtype == MPI_DOUBLE_INT) n = sendcount*sizeof(double_int);
 
   memcpy(recvbuf,sendbuf,n);
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 /* copy values from data1 to data2 */
 
 int MPI_Reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts,
                        MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
 {
   int n;
   if (datatype == MPI_INT) n = *recvcounts*sizeof(int);
   else if (datatype == MPI_FLOAT) n = *recvcounts*sizeof(float);
   else if (datatype == MPI_DOUBLE) n = *recvcounts*sizeof(double);
   else if (datatype == MPI_CHAR) n = *recvcounts*sizeof(char);
   else if (datatype == MPI_BYTE) n = *recvcounts*sizeof(char);
   else if (datatype == MPI_DOUBLE_INT) n = *recvcounts*sizeof(double_int);
 
   memcpy(recvbuf,sendbuf,n);
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 /* copy values from data1 to data2 */
 
 int MPI_Gather(void *sendbuf, int sendcount, MPI_Datatype sendtype,
                void *recvbuf, int recvcount, MPI_Datatype recvtype,
                int root, MPI_Comm comm)
 {
   int n;
   if (sendtype == MPI_INT) n = sendcount*sizeof(int);
   else if (sendtype == MPI_FLOAT) n = sendcount*sizeof(float);
   else if (sendtype == MPI_DOUBLE) n = sendcount*sizeof(double);
   else if (sendtype == MPI_CHAR) n = sendcount*sizeof(char);
   else if (sendtype == MPI_BYTE) n = sendcount*sizeof(char);
   else if (sendtype == MPI_DOUBLE_INT) n = sendcount*sizeof(double_int);
 
   memcpy(recvbuf,sendbuf,n);
   return 0;
 }
 
 /* ---------------------------------------------------------------------- */
 
 /* copy values from data1 to data2 */
 
 int MPI_Gatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype,
 		    void *recvbuf, int *recvcounts, int *displs,
 		    MPI_Datatype recvtype, int root, MPI_Comm comm)
 {
   int n;
   if (sendtype == MPI_INT) n = sendcount*sizeof(int);
   else if (sendtype == MPI_FLOAT) n = sendcount*sizeof(float);
   else if (sendtype == MPI_DOUBLE) n = sendcount*sizeof(double);
   else if (sendtype == MPI_CHAR) n = sendcount*sizeof(char);
   else if (sendtype == MPI_BYTE) n = sendcount*sizeof(char);
   else if (sendtype == MPI_DOUBLE_INT) n = sendcount*sizeof(double_int);
 
   memcpy(recvbuf,sendbuf,n);
   return 0;
 }
+
+/* ---------------------------------------------------------------------- */
+
+/* Returns "localhost" as the name of the processor.  */
+
+void MPI_Get_processor_name(char *name, int *resultlen)
+{
+  const char host[] = "localhost";
+  int len;
+
+  if (!name || !resultlen) return;
+
+  len = strlen(host);
+  memcpy(name,host,len+1);
+  *resultlen = len;
+  return;
+}
+
diff --git a/src/STUBS/mpi.h b/src/STUBS/mpi.h
index 7801c8551..5d5340376 100644
--- a/src/STUBS/mpi.h
+++ b/src/STUBS/mpi.h
@@ -1,124 +1,128 @@
 /* -----------------------------------------------------------------------
    LAMMPS 2003 (July 31) - Molecular Dynamics Simulator
    Sandia National Laboratories, www.cs.sandia.gov/~sjplimp/lammps.html
    Steve Plimpton, sjplimp@sandia.gov
 
    Copyright (2003) Sandia Corporation.  Under the terms of Contract
    DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
    certain rights in this software.  This software is distributed under 
    the GNU General Public License.
 
    See the README file in the top-level LAMMPS directory.
 ------------------------------------------------------------------------ */
 
 #ifndef MPI_STUBS
 #define MPI_STUBS
 
 /* use C bindings for MPI interface */
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 /* Dummy defs for MPI stubs */
 
 #define MPI_COMM_WORLD 0
 
 #define MPI_SUCCESS 0
 
 #define MPI_INT 1
 #define MPI_FLOAT 2
 #define MPI_DOUBLE 3
 #define MPI_CHAR 4
 #define MPI_BYTE 5
 #define MPI_DOUBLE_INT 6
 
 #define MPI_SUM 1
 #define MPI_MAX 2
 #define MPI_MIN 3
 #define MPI_MAXLOC 4
 #define MPI_MINLOC 5
 #define MPI_LOR 6
 
 #define MPI_ANY_SOURCE -1
 
 #define MPI_Comm int
 #define MPI_Request int
 #define MPI_Datatype int
 #define MPI_Op int
 
+#define MPI_MAX_PROCESSOR_NAME 128
+
 /* MPI data structs */
 
 struct __MPI_Status {
   int MPI_SOURCE;
 };
 typedef struct __MPI_Status MPI_Status;
 
 /* Function prototypes for MPI stubs */
 
 int MPI_Init(int *argc, char ***argv);
 int MPI_Comm_rank(MPI_Comm comm, int *me);
 int MPI_Comm_size(MPI_Comm comm, int *nprocs);
 int MPI_Abort(MPI_Comm comm, int errorcode);
 int MPI_Finalize();
 double MPI_Wtime();
 
 int MPI_Send(void *buf, int count, MPI_Datatype datatype,
              int dest, int tag, MPI_Comm comm);
 int MPI_Rsend(void *buf, int count, MPI_Datatype datatype,
               int dest, int tag, MPI_Comm comm);
 int MPI_Recv(void *buf, int count, MPI_Datatype datatype,
              int source, int tag, MPI_Comm comm, MPI_Status *status);
 int MPI_Irecv(void *buf, int count, MPI_Datatype datatype,
               int source, int tag, MPI_Comm comm, MPI_Request *request);
 int MPI_Wait(MPI_Request *request, MPI_Status *status);
 int MPI_Waitall(int n, MPI_Request *request, MPI_Status *status);
 int MPI_Waitany(int count, MPI_Request *request, int *index, 
                 MPI_Status *status);
 int MPI_Sendrecv(void *sbuf, int scount, MPI_Datatype sdatatype,
 		  int dest, int stag, void *rbuf, int rcount,
 		  MPI_Datatype rdatatype, int source, int rtag,
 		  MPI_Comm comm, MPI_Status *status);
 int MPI_Get_count(MPI_Status *status, MPI_Datatype datatype, int *count);
 
 int MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *comm_out);
 int MPI_Comm_dup(MPI_Comm comm, MPI_Comm *comm_out);
 int MPI_Comm_free(MPI_Comm *comm);
 
 int MPI_Cart_create(MPI_Comm comm_old, int ndims, int *dims, int *periods,
                     int reorder, MPI_Comm *comm_cart);
 int MPI_Cart_get(MPI_Comm comm, int maxdims, int *dims, int *periods,
                  int *coords);
 int MPI_Cart_shift(MPI_Comm comm, int direction, int displ,
                    int *source, int *dest);
 int MPI_Cart_rank(MPI_Comm comm, int *coords, int *rank);
 
 int MPI_Barrier(MPI_Comm comm);
 int MPI_Bcast(void *buf, int count, MPI_Datatype datatype,
               int root, MPI_Comm comm);
 int MPI_Allreduce(void *sendbuf, void *recvbuf, int count,
                   MPI_Datatype datatype, MPI_Op op, MPI_Comm comm);
 int MPI_Reduce(void *sendbuf, void *recvbuf, int count,
 		   MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm);
 int MPI_Scan(void *sendbuf, void *recvbuf, int count,
              MPI_Datatype datatype, MPI_Op op, MPI_Comm comm);
 int MPI_Allgather(void *sendbuf, int sendcount, MPI_Datatype sendtype,
                   void *recvbuf, int recvcount, MPI_Datatype recvtype,
                   MPI_Comm comm);
 int MPI_Allgatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype,
                    void *recvbuf, int *recvcounts, int *displs,
                    MPI_Datatype recvtype, MPI_Comm comm);
 int MPI_Reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts,
                        MPI_Datatype datatype, MPI_Op op, MPI_Comm comm);
 int MPI_Gather(void *sendbuf, int sendcount, MPI_Datatype sendtype,
                void *recvbuf, int recvcount, MPI_Datatype recvtype,
                int root, MPI_Comm comm);
 int MPI_Gatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype,
 		    void *recvbuf, int *recvcounts, int *displs,
 		    MPI_Datatype recvtype, int root, MPI_Comm comm);
 
 #ifdef __cplusplus
 }
 #endif
 
+void MPI_Get_processor_name(char *name, int *resultlen);
+
 #endif