diff --git a/doc/src/Section_howto.txt b/doc/src/Section_howto.txt
index a378d8d088c9f708c4d2d944d5e8ef2cbf16a995..3ca9c3d1990ecc21f978a0016fb8b31517fc5af6 100644
--- a/doc/src/Section_howto.txt
+++ b/doc/src/Section_howto.txt
@@ -759,23 +759,14 @@ LAMMPS itself does not do visualization, but snapshots from LAMMPS
 simulations can be visualized (and analyzed) in a variety of ways.
 
 LAMMPS snapshots are created by the "dump"_dump.html command which can
-create files in several formats.  The native LAMMPS dump format is a
+create files in several formats. The native LAMMPS dump format is a
 text file (see "dump atom" or "dump custom") which can be visualized
-by the "xmovie"_Section_tools.html#xmovie program, included with the
-LAMMPS package.  This produces simple, fast 2d projections of 3d
-systems, and can be useful for rapid debugging of simulation geometry
-and atom trajectories.
-
+by several popular visualization tools. The "dump image"_dump_image.html
+and "dump movie"_dump_image.html styles can output internally rendered
+images and convert a sequence of them to a movie during the MD run.
 Several programs included with LAMMPS as auxiliary tools can convert
-native LAMMPS dump files to other formats.  See the
-"Section 9"_Section_tools.html doc page for details.  The first is
-the "ch2lmp tool"_Section_tools.html#charmm, which contains a
-lammps2pdb Perl script which converts LAMMPS dump files into PDB
-files.  The second is the "lmp2arc tool"_Section_tools.html#arc which
-converts LAMMPS dump files into Accelrys' Insight MD program files.
-The third is the "lmp2cfg tool"_Section_tools.html#cfg which converts
-LAMMPS dump files into CFG files which can be read into the
-"AtomEye"_atomeye visualizer.
+between LAMMPS format files and other formats.
+See the "Section 9"_Section_tools.html doc page for details.
 
 A Python-based toolkit distributed by our group can read native LAMMPS
 dump files, including custom dump files with additional columns of
@@ -788,22 +779,7 @@ RasMol visualization programs.  Pizza.py has tools that do interactive
 3d OpenGL visualization and one that creates SVG images of dump file
 snapshots.
 
-LAMMPS can create XYZ files directly (via "dump xyz") which is a
-simple text-based file format used by many visualization programs
-including "VMD"_vmd.
-
-LAMMPS can create DCD files directly (via "dump dcd") which can be
-read by "VMD"_vmd in conjunction with a CHARMM PSF file.  Using this
-form of output avoids the need to convert LAMMPS snapshots to PDB
-files.  See the "dump"_dump.html command for more information on DCD
-files.
-
-LAMMPS can create XTC files directly (via "dump xtc") which is GROMACS
-file format which can also be read by "VMD"_vmd for visualization.
-See the "dump"_dump.html command for more information on XTC files.
-
 :link(pizza,http://www.sandia.gov/~sjplimp/pizza.html)
-:link(vmd,http://www.ks.uiuc.edu/Research/vmd)
 :link(ensight,http://www.ensight.com)
 :link(atomeye,http://mt.seas.upenn.edu/Archive/Graphics/A)
 
diff --git a/doc/src/Section_intro.txt b/doc/src/Section_intro.txt
index ab7091d2e739c3363e96c368faeab128c20ed8b0..33c3cf395facc5981bd02ab78487033f9c8c8d1f 100644
--- a/doc/src/Section_intro.txt
+++ b/doc/src/Section_intro.txt
@@ -338,15 +338,13 @@ dynamics timestepping, particularly if the computations are not
 parallel, so it is often better to leave such analysis to
 post-processing codes.
 
-A very simple (yet fast) visualizer is provided with the LAMMPS
-package - see the "xmovie"_Section_tools.html#xmovie tool in "this
-section"_Section_tools.html.  It creates xyz projection views of
-atomic coordinates and animates them.  We find it very useful for
-debugging purposes.  For high-quality visualization we recommend the
+For high-quality visualization we recommend the
 following packages:
 
 "VMD"_http://www.ks.uiuc.edu/Research/vmd
 "AtomEye"_http://mt.seas.upenn.edu/Archive/Graphics/A
+"OVITO"_http://www.ovito.org/
+"ParaView"_http://www.paraview.org/
 "PyMol"_http://www.pymol.org
 "Raster3d"_http://www.bmsc.washington.edu/raster3d/raster3d.html
 "RasMol"_http://www.openrasmol.org :ul
diff --git a/doc/src/compute_modify.txt b/doc/src/compute_modify.txt
index c26b5c2a5fe20273230b2c019982012efd048e48..9a2480ec0ac7fd7b584216a74355ed9b707c877e 100644
--- a/doc/src/compute_modify.txt
+++ b/doc/src/compute_modify.txt
@@ -54,7 +54,7 @@ adding atoms or molecules to the system (see the "fix
 pour"_fix_pour.html, "fix deposit"_fix_deposit.html, and "fix
 gcmc"_fix_gcmc.html commands) or expect atoms or molecules to be lost
 (e.g. due to exiting the simulation box or via "fix
-evaporation"_fix_evaporation.html), then this option should be used to
+evaporate"_fix_evaporate.html), then this option should be used to
 insure the temperature is correctly normalized.
 
 NOTE: The {extra} and {dynamic} keywords should not be used as they
diff --git a/doc/src/dump.txt b/doc/src/dump.txt
index 1c65b1cdbf5833d0f80f97142b9ee1db84ad6fbd..cb9a5ba74112849fb220344a720ea5e66015fe75 100644
--- a/doc/src/dump.txt
+++ b/doc/src/dump.txt
@@ -331,10 +331,7 @@ bonds and colors.
 
 Note that {atom}, {custom}, {dcd}, {xtc}, and {xyz} style dump files
 can be read directly by "VMD"_http://www.ks.uiuc.edu/Research/vmd, a
-popular molecular viewing program.  See
-"Section 9"_Section_tools.html#vmd of the manual and the
-tools/lmp2vmd/README.txt file for more information about support in
-VMD for reading and visualizing LAMMPS dump files.
+popular molecular viewing program.
 
 :line
 
diff --git a/doc/src/dump_custom_vtk.txt b/doc/src/dump_custom_vtk.txt
index f15d20f849692cd49176d0ce39d0619dc1f28900..d4c16193d89f22eb956f0bdcc99b64c6b72ba8b5 100644
--- a/doc/src/dump_custom_vtk.txt
+++ b/doc/src/dump_custom_vtk.txt
@@ -26,7 +26,6 @@ args = list of arguments for a particular style :l
                           q, mux, muy, muz, mu,
                           radius, diameter, omegax, omegay, omegaz,
                           angmomx, angmomy, angmomz, tqx, tqy, tqz,
-                          spin, eradius, ervel, erforce,
                           c_ID, c_ID\[N\], f_ID, f_ID\[N\], v_name :pre
 
       id = atom ID
@@ -51,17 +50,18 @@ args = list of arguments for a particular style :l
       angmomx,angmomy,angmomz = angular momentum of aspherical particle
       tqx,tqy,tqz = torque on finite-size particles
       c_ID = per-atom vector calculated by a compute with ID
-      c_ID\[N\] = Nth column of per-atom array calculated by a compute with ID
+      c_ID\[I\] = Ith column of per-atom array calculated by a compute with ID, I can include wildcard (see below)
       f_ID = per-atom vector calculated by a fix with ID
-      f_ID\[N\] = Nth column of per-atom array calculated by a fix with ID
-      v_name = per-atom vector calculated by an atom-style variable with name :pre
+      f_ID\[I\] = Ith column of per-atom array calculated by a fix with ID, I can include wildcard (see below)
+      v_name = per-atom vector calculated by an atom-style variable with name
+      d_name = per-atom floating point vector with name, managed by fix property/atom
+      i_name = per-atom integer vector with name, managed by fix property/atom :pre
 :ule
 
 [Examples:]
 
 dump dmpvtk all custom/vtk 100 dump*.myforce.vtk id type vx fx
-dump dmpvtp flow custom/vtk 100 dump*.%.displace.vtp id type c_myD\[1\] c_myD\[2\] c_myD\[3\] v_ke
-dump e_data all custom/vtk 100 dump*.vtu id type spin eradius fx fy fz eforce :pre
+dump dmpvtp flow custom/vtk 100 dump*.%.displace.vtp id type c_myD\[1\] c_myD\[2\] c_myD\[3\] v_ke :pre
 
 The style {custom/vtk} is similar to the "custom"_dump.html style but
 uses the VTK library to write data to VTK simple legacy or XML format
@@ -199,32 +199,38 @@ part of the {custom/vtk} style.
 The {id}, {mol}, {proc}, {procp1}, {type}, {element}, {mass}, {vx},
 {vy}, {vz}, {fx}, {fy}, {fz}, {q} attributes are self-explanatory.
 
-{id} is the atom ID.  {mol} is the molecule ID, included in the data
-file for molecular systems.  {type} is the atom type.  {element} is
-typically the chemical name of an element, which you must assign to
-each type via the "dump_modify element"_dump_modify.html command.
-More generally, it can be any string you wish to associate with an
-atom type.  {mass} is the atom mass.  {vx}, {vy}, {vz}, {fx}, {fy},
-{fz}, and {q} are components of atom velocity and force and atomic
-charge.
+{Id} is the atom ID.  {Mol} is the molecule ID, included in the data
+file for molecular systems.  {Proc} is the ID of the processor (0 to
+Nprocs-1) that currently owns the atom.  {Procp1} is the proc ID+1,
+which can be convenient in place of a {type} attribute (1 to Ntypes)
+for coloring atoms in a visualization program.  {Type} is the atom
+type (1 to Ntypes).  {Element} is typically the chemical name of an
+element, which you must assign to each type via the "dump_modify
+element"_dump_modify.html command.  More generally, it can be any
+string you wish to associated with an atom type.  {Mass} is the atom
+mass.  {Vx}, {vy}, {vz}, {fx}, {fy}, {fz}, and {q} are components of
+atom velocity and force and atomic charge.
 
 There are several options for outputting atom coordinates.  The {x},
-{y}, {z} attributes are used to write atom coordinates "unscaled", in
-the appropriate distance "units"_units.html (Angstroms, sigma, etc).
-Additionally, you can use {xs}, {ys}, {zs} if you want to also save the
-coordinates "scaled" to the box size, so that each value is 0.0 to
-1.0.  If the simulation box is triclinic (tilted), then all atom
-coords will still be between 0.0 and 1.0.  Use {xu}, {yu}, {zu} if you
-want the coordinates "unwrapped" by the image flags for each atom.
-Unwrapped means that if the atom has passed through a periodic
-boundary one or more times, the value is printed for what the
-coordinate would be if it had not been wrapped back into the periodic
-box.  Note that using {xu}, {yu}, {zu} means that the coordinate
-values may be far outside the box bounds printed with the snapshot.
-Using {xsu}, {ysu}, {zsu} is similar to using {xu}, {yu}, {zu}, except
-that the unwrapped coordinates are scaled by the box size. Atoms that
-have passed through a periodic boundary will have the corresponding
-coordinate increased or decreased by 1.0.
+{y}, {z} attributes write atom coordinates "unscaled", in the
+appropriate distance "units"_units.html (Angstroms, sigma, etc).  Use
+{xs}, {ys}, {zs} if you want the coordinates "scaled" to the box size,
+so that each value is 0.0 to 1.0.  If the simulation box is triclinic
+(tilted), then all atom coords will still be between 0.0 and 1.0.
+I.e. actual unscaled (x,y,z) = xs*A + ys*B + zs*C, where (A,B,C) are
+the non-orthogonal vectors of the simulation box edges, as discussed
+in "Section 6.12"_Section_howto.html#howto_12.
+
+Use {xu}, {yu}, {zu} if you want the coordinates "unwrapped" by the
+image flags for each atom.  Unwrapped means that if the atom has
+passed thru a periodic boundary one or more times, the value is
+printed for what the coordinate would be if it had not been wrapped
+back into the periodic box.  Note that using {xu}, {yu}, {zu} means
+that the coordinate values may be far outside the box bounds printed
+with the snapshot.  Using {xsu}, {ysu}, {zsu} is similar to using
+{xu}, {yu}, {zu}, except that the unwrapped coordinates are scaled by
+the box size. Atoms that have passed through a periodic boundary will
+have the corresponding coordinate increased or decreased by 1.0.
 
 The image flags can be printed directly using the {ix}, {iy}, {iz}
 attributes.  For periodic dimensions, they specify which image of the
@@ -255,13 +261,7 @@ The {tqx}, {tqy}, {tqz} attributes are for finite-size particles that
 can sustain a rotational torque due to interactions with other
 particles.
 
-The {spin}, {eradius}, {ervel}, and {erforce} attributes are for
-particles that represent nuclei and electrons modeled with the
-electronic force field (EFF).  See "atom_style
-electron"_atom_style.html and "pair_style eff"_pair_eff.html for more
-details.
-
-The {c_ID} and {c_ID\[N\]} attributes allow per-atom vectors or arrays
+The {c_ID} and {c_ID\[I\]} attributes allow per-atom vectors or arrays
 calculated by a "compute"_compute.html to be output.  The ID in the
 attribute should be replaced by the actual ID of the compute that has
 been defined previously in the input script.  See the
@@ -275,12 +275,14 @@ command.  Instead, global quantities can be output by the
 "thermo_style custom"_thermo_style.html command, and local quantities
 can be output by the dump local command.
 
-If {c_ID} is used as an attribute, then the per-atom vector calculated
-by the compute is printed.  If {c_ID\[N\]} is used, then N must be in
-the range from 1-M, which will print the Nth column of the M-length
-per-atom array calculated by the compute.
+If {c_ID} is used as a attribute, then the per-atom vector calculated
+by the compute is printed.  If {c_ID\[I\]} is used, then I must be in
+the range from 1-M, which will print the Ith column of the per-atom
+array with M columns calculated by the compute.  See the discussion
+above for how I can be specified with a wildcard asterisk to
+effectively specify multiple values.
 
-The {f_ID} and {f_ID\[N\]} attributes allow vector or array per-atom
+The {f_ID} and {f_ID\[I\]} attributes allow vector or array per-atom
 quantities calculated by a "fix"_fix.html to be output.  The ID in the
 attribute should be replaced by the actual ID of the fix that has been
 defined previously in the input script.  The "fix
@@ -291,9 +293,11 @@ any "compute"_compute.html, "fix"_fix.html, or atom-style
 be written to a dump file.
 
 If {f_ID} is used as a attribute, then the per-atom vector calculated
-by the fix is printed.  If {f_ID\[N\]} is used, then N must be in the
-range from 1-M, which will print the Nth column of the M-length
-per-atom array calculated by the fix.
+by the fix is printed.  If {f_ID\[I\]} is used, then I must be in the
+range from 1-M, which will print the Ith column of the per-atom array
+with M columns calculated by the fix.  See the discussion above for
+how I can be specified with a wildcard asterisk to effectively specify
+multiple values.
 
 The {v_name} attribute allows per-atom vectors calculated by a
 "variable"_variable.html to be output.  The name in the attribute
@@ -306,6 +310,10 @@ invoke other computes, fixes, or variables when they are evaluated, so
 this is a very general means of creating quantities to output to a
 dump file.
 
+The {d_name} and {i_name} attributes allow to output custom per atom
+floating point or integer properties that are managed by
+"fix property/atom"_fix_property_atom.html.
+
 See "Section 10"_Section_modify.html of the manual for information
 on how to add new compute and fix styles to LAMMPS to calculate
 per-atom quantities which could then be output into dump files.
diff --git a/doc/src/fix_cmap.txt b/doc/src/fix_cmap.txt
index c943cde4897d65f9af50f2a765272144843bd0e3..5fcac589bef767f74140feb3bcd0a3503aad9f37 100644
--- a/doc/src/fix_cmap.txt
+++ b/doc/src/fix_cmap.txt
@@ -27,7 +27,7 @@ fix_modify     myCMAP energy yes :pre
 This command enables CMAP crossterms to be added to simulations which
 use the CHARMM force field.  These are relevant for any CHARMM model
 of a peptide or protein sequences that is 3 or more amino-acid
-residues long; see "(Buck)"_#Buck and "(Brooks)"_#Brooks for details,
+residues long; see "(Buck)"_#Buck and "(Brooks)"_#Brooks2 for details,
 including the analytic energy expressions for CMAP interactions.  The
 CMAP crossterms add additional potential energy contributions to pairs
 of overlapping phi-psi dihedrals of amino-acids, which are important
@@ -128,5 +128,5 @@ LAMMPS"_Section_start.html#start_3 section for more info on packages.
 [(Buck)] Buck, Bouguet-Bonnet, Pastor, MacKerell Jr., Biophys J, 90, L36
 (2006).
 
-:link(Brooks)
+:link(Brooks2)
 [(Brooks)] Brooks, Brooks, MacKerell Jr., J Comput Chem, 30, 1545 (2009).
diff --git a/doc/src/fix_modify.txt b/doc/src/fix_modify.txt
index 5e097bb34f6fde43a238b9ecfbdf9c50e6f3d98d..4e31092888bc1a9403ac9037dbccb84788e571f0 100644
--- a/doc/src/fix_modify.txt
+++ b/doc/src/fix_modify.txt
@@ -91,7 +91,7 @@ their DOF are assumed to be constant.  If you are adding atoms or
 molecules to the system (see the "fix pour"_fix_pour.html, "fix
 deposit"_fix_deposit.html, and "fix gcmc"_fix_gcmc.html commands) or
 expect atoms or molecules to be lost (e.g. due to exiting the
-simulation box or via "fix evaporation"_fix_evaporation.html), then
+simulation box or via "fix evaporate"_fix_evaporate.html), then
 this option should be used to insure the temperature is correctly
 normalized.
 
diff --git a/doc/src/pair_charmm.txt b/doc/src/pair_charmm.txt
index 65b9f381c574158b85eeec063535041d88ec377d..94954a222670b2a8d004acfe4ebad732cb27f272 100644
--- a/doc/src/pair_charmm.txt
+++ b/doc/src/pair_charmm.txt
@@ -94,7 +94,7 @@ The newer styles with {charmmfsw} or {charmmfsh} in their name replace
 the energy switching with force switching (fsw) and force shifting
 (fsh) functions, for LJ and Coulombic interactions respectively.
 These follow the formulas and description given in
-"(Steinbach)"_#Steinbach and "(Brooks)"_#Brooks to minimize these
+"(Steinbach)"_#Steinbach and "(Brooks)"_#Brooks1 to minimize these
 artifacts.
 
 NOTE: The newer {charmmfsw} or {charmmfsh} styles were released in
@@ -248,7 +248,7 @@ the MOLECULE and KSPACE packages are installed by default.
 
 :line
 
-:link(Brooks)
+:link(Brooks1)
 [(Brooks)] Brooks, et al, J Comput Chem, 30, 1545 (2009).
 
 :link(pair-MacKerell)
diff --git a/potentials/InP.vashishta b/potentials/InP.vashishta
old mode 100755
new mode 100644
diff --git a/potentials/SiC.vashishta b/potentials/SiC.vashishta
old mode 100755
new mode 100644
diff --git a/potentials/SiO.1990.vashishta b/potentials/SiO.1990.vashishta
old mode 100755
new mode 100644
diff --git a/potentials/SiO.1994.vashishta b/potentials/SiO.1994.vashishta
old mode 100755
new mode 100644
diff --git a/potentials/SiO.1997.vashishta b/potentials/SiO.1997.vashishta
old mode 100755
new mode 100644
diff --git a/potentials/ffield.smtbq.Al b/potentials/ffield.smtbq.Al
old mode 100755
new mode 100644
diff --git a/potentials/ffield.smtbq.Al2O3 b/potentials/ffield.smtbq.Al2O3
old mode 100755
new mode 100644
diff --git a/potentials/ffield.smtbq.TiO2 b/potentials/ffield.smtbq.TiO2
old mode 100755
new mode 100644
diff --git a/src/.gitignore b/src/.gitignore
index 8d8a5c6cf6dcd138cb460855c36ae85faf1981f6..97bc2276b089a05796d1ae83f5b1f99df1a2c1a0 100644
--- a/src/.gitignore
+++ b/src/.gitignore
@@ -76,6 +76,13 @@
 /pair_awpmd_cut.cpp
 /pair_awpmd_cut.h
 
+/dihedral_charmmfsh.cpp
+/dihedral_charmmfsh.h
+/pair_lj_charmmfsw_coul_charmmfsh.cpp
+/pair_lj_charmmfsw_coul_charmmfsh.h
+/pair_lj_charmmfsw_coul_long.cpp
+/pair_lj_charmmfsw_coul_long.h
+
 /angle_cg_cmm.cpp
 /angle_cg_cmm.h
 /angle_charmm.cpp
diff --git a/src/GRANULAR/fix_wall_gran_region.cpp b/src/GRANULAR/fix_wall_gran_region.cpp
index e9e27b90e6f5b9dce359f7aadae89282a4727352..a09b9dfa421b971df17992722ccc55c1308b1454 100644
--- a/src/GRANULAR/fix_wall_gran_region.cpp
+++ b/src/GRANULAR/fix_wall_gran_region.cpp
@@ -131,9 +131,8 @@ void FixWallGranRegion::init()
 void FixWallGranRegion::post_force(int vflag)
 {
   int i,m,nc,iwall;
-  double rinv,fx,fy,fz,tooclose;
   double dx,dy,dz,rsq,meff;
-  double xc[3],vwall[3];
+  double vwall[3];
 
   // do not update shear history during setup
 
diff --git a/src/KOKKOS/pppm_kokkos.cpp b/src/KOKKOS/pppm_kokkos.cpp
index c59bd89e51303784efef00d44be83c84b3960a7c..3ad7334d2f55c982e54e410357c7f3deb445d534 100644
--- a/src/KOKKOS/pppm_kokkos.cpp
+++ b/src/KOKKOS/pppm_kokkos.cpp
@@ -3158,7 +3158,7 @@ double PPPMKokkos<DeviceType>::memory_usage()
   if (peratom_allocate_flag)
     bytes += 6 * nbrick * sizeof(FFT_SCALAR);
 
-  bytes += cg->memory_usage();
+  if (cg) bytes += cg->memory_usage();
 
   return bytes;
 }
diff --git a/src/KSPACE/pppm.cpp b/src/KSPACE/pppm.cpp
index 156e867f348622b17976c288466d2065df1b4c46..80328a2d6fbc6796b62873acf003124b98d6efad 100644
--- a/src/KSPACE/pppm.cpp
+++ b/src/KSPACE/pppm.cpp
@@ -3085,7 +3085,7 @@ double PPPM::memory_usage()
     bytes += 2 * nfft_both * sizeof(FFT_SCALAR);;
   }
 
-  bytes += cg->memory_usage();
+  if (cg) bytes += cg->memory_usage();
 
   return bytes;
 }
diff --git a/src/KSPACE/pppm_disp.cpp b/src/KSPACE/pppm_disp.cpp
index 315bf16e4ddd66948457c7d1ed14d7569fdbd8f0..5d6c2042beec5c318f6a713642e49eb30b9f251b 100644
--- a/src/KSPACE/pppm_disp.cpp
+++ b/src/KSPACE/pppm_disp.cpp
@@ -8240,7 +8240,7 @@ double PPPMDisp::memory_usage()
     bytes += 6 * nfft_both * sizeof(double);      // vg
     bytes += nfft_both * sizeof(double);          // greensfn
     bytes += nfft_both * 3 * sizeof(FFT_SCALAR);    // density_FFT, work1, work2
-    bytes += cg->memory_usage();
+    if (cg) bytes += cg->memory_usage();
   }
 
   if (function[1] + function[2] + function[3]) {
@@ -8250,7 +8250,7 @@ double PPPMDisp::memory_usage()
     bytes += 6 * nfft_both_6 * sizeof(double);      // vg
     bytes += nfft_both_6 * sizeof(double);          // greensfn
     bytes += nfft_both_6 * (mixing + 2) * sizeof(FFT_SCALAR);    // density_FFT, work1, work2
-    bytes += cg_6->memory_usage();
+    if (cg_6) bytes += cg_6->memory_usage();
   }
   return bytes;
 }
diff --git a/src/MC/fix_gcmc.cpp b/src/MC/fix_gcmc.cpp
index eae97deab53cefb886cf6d24ea5b6441786c430f..407c980729d12f16aa579e9442ff6e412142f11f 100644
--- a/src/MC/fix_gcmc.cpp
+++ b/src/MC/fix_gcmc.cpp
@@ -72,7 +72,7 @@ FixGCMC::FixGCMC(LAMMPS *lmp, int narg, char **arg) :
   Fix(lmp, narg, arg),
   idregion(NULL), full_flag(0), ngroups(0), groupstrings(NULL), ngrouptypes(0), grouptypestrings(NULL),
   grouptypebits(NULL), grouptypes(NULL), local_gas_list(NULL), atom_coord(NULL), random_equal(NULL), random_unequal(NULL), 
-  coords(NULL), imageflags(NULL), idrigid(NULL), idshake(NULL), fixrigid(NULL), fixshake(NULL)
+  coords(NULL), imageflags(NULL), fixrigid(NULL), fixshake(NULL), idrigid(NULL), idshake(NULL)
 {
   if (narg < 11) error->all(FLERR,"Illegal fix gcmc command");
 
diff --git a/src/MOLECULE/fix_cmap.cpp b/src/MOLECULE/fix_cmap.cpp
index 8534a8bf33f1473c8a9303fe93e10a9024f27192..551e049238dfea0f101ec7ad414e3695183d683b 100644
--- a/src/MOLECULE/fix_cmap.cpp
+++ b/src/MOLECULE/fix_cmap.cpp
@@ -964,22 +964,22 @@ void FixCMAP::bc_coeff(double *gs, double *d1gs, double *d2gs, double *d12gs)
   // calculate the bicubic interpolation coefficients c_ij
 
   static int wt[16][16] =
-    { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-      -3, 0, 0, 3, 0, 0, 0, 0,-2, 0, 0,-1, 0, 0, 0, 0,
-      2, 0, 0,-2, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0,
-      0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-      0, 0, 0, 0,-3, 0, 0, 3, 0, 0, 0, 0,-2, 0, 0,-1,
-      0, 0, 0, 0, 2, 0, 0,-2, 0, 0, 0, 0, 1, 0, 0, 1,
-      -3, 3, 0, 0,-2,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 0, 0, 0,-3, 3, 0, 0,-2,-1, 0, 0,
-      9,-9, 9,-9, 6, 3,-3,-6, 6,-6,-3, 3, 4, 2, 1, 2,
-      -6, 6,-6, 6,-4,-2, 2, 4,-3, 3, 3,-3,-2,-1,-1,-2,
-      2,-2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 0, 0, 0, 2,-2, 0, 0, 1, 1, 0, 0,
-      -6, 6,-6, 6,-3,-3, 3, 3,-4, 4, 2,-2,-2,-2,-1,-1,
-      4,-4, 4,-4, 2, 2,-2,-2, 2,-2,-2, 2, 1, 1, 1, 1
+    { {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+      {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
+      {-3, 0, 0, 3, 0, 0, 0, 0,-2, 0, 0,-1, 0, 0, 0, 0},
+      {2, 0, 0,-2, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0},
+      {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0},
+      {0, 0, 0, 0,-3, 0, 0, 3, 0, 0, 0, 0,-2, 0, 0,-1},
+      {0, 0, 0, 0, 2, 0, 0,-2, 0, 0, 0, 0, 1, 0, 0, 1},
+      {-3, 3, 0, 0,-2,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+      {0, 0, 0, 0, 0, 0, 0, 0,-3, 3, 0, 0,-2,-1, 0, 0},
+      {9,-9, 9,-9, 6, 3,-3,-6, 6,-6,-3, 3, 4, 2, 1, 2},
+      {-6, 6,-6, 6,-4,-2, 2, 4,-3, 3, 3,-3,-2,-1,-1,-2},
+      {2,-2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+      {0, 0, 0, 0, 0, 0, 0, 0, 2,-2, 0, 0, 1, 1, 0, 0},
+      {-6, 6,-6, 6,-3,-3, 3, 3,-4, 4, 2,-2,-2,-2,-1,-1},
+      {4,-4, 4,-4, 2, 2,-2,-2, 2,-2,-2, 2, 1, 1, 1, 1}
     };
 
   int i, j, k, in;
diff --git a/src/OPT/pair_eam_opt.cpp b/src/OPT/pair_eam_opt.cpp
index e970f90ae825a6ce803928b02deab5679f12eac4..3afec5644a70bb12497163d8fd8174202f2d11b1 100644
--- a/src/OPT/pair_eam_opt.cpp
+++ b/src/OPT/pair_eam_opt.cpp
@@ -67,11 +67,6 @@ void PairEAMOpt::eval()
     double rhor0j,rhor1j,rhor2j,rhor3j;
   } fast_alpha_t;
 
-  typedef struct {
-    double frho0,frho1,frho2,frho3,frho4,frho5,frho6;
-    double _pad[1];
-  } fast_beta_t;
-
   typedef struct {
     double rhor4i,rhor5i,rhor6i;
     double rhor4j,rhor5j,rhor6j;
diff --git a/src/QEQ/fix_qeq_dynamic.cpp b/src/QEQ/fix_qeq_dynamic.cpp
index 8e8247e121b4dad2a6cfa0f7867f0bf6bec40674..5408db650b0dfb0a051e18733f761190392034bf 100644
--- a/src/QEQ/fix_qeq_dynamic.cpp
+++ b/src/QEQ/fix_qeq_dynamic.cpp
@@ -249,7 +249,7 @@ double FixQEqDynamic::compute_eneg()
 int FixQEqDynamic::pack_forward_comm(int n, int *list, double *buf,
                           int pbc_flag, int *pbc)
 {
-  int m;
+  int m=0;
 
   if( pack_flag == 1 )
     for(m = 0; m < n; m++) buf[m] = atom->q[list[m]];
diff --git a/src/USER-DPD/fix_rx.cpp b/src/USER-DPD/fix_rx.cpp
index 94c03705d62f2f9ced97b03c0c79569f5fc70534..82bb44a24d12386f486fad077afaeced81f09761 100644
--- a/src/USER-DPD/fix_rx.cpp
+++ b/src/USER-DPD/fix_rx.cpp
@@ -666,7 +666,6 @@ void FixRX::setup_pre_force(int vflag)
   int *mask = atom->mask;
   int newton_pair = force->newton_pair;
   double tmp;
-  int ii;
 
   if(restartFlag){
     restartFlag = 0;
diff --git a/src/USER-DPD/npair_half_bin_newton_ssa.cpp b/src/USER-DPD/npair_half_bin_newton_ssa.cpp
index fd67b66e9b89a2ce3ca086e54fecec93c6d12480..59acbda301403c5e36e513b03a2df7e4608e90c2 100644
--- a/src/USER-DPD/npair_half_bin_newton_ssa.cpp
+++ b/src/USER-DPD/npair_half_bin_newton_ssa.cpp
@@ -64,7 +64,6 @@ void NPairHalfBinNewtonSSA::build(NeighList *list)
   tagint **special = atom->special;
   int **nspecial = atom->nspecial;
   int nlocal = atom->nlocal;
-  int nall = nlocal + atom->nghost;
   if (includegroup) nlocal = atom->nfirst;
   int *ssaAIR = atom->ssaAIR;
 
diff --git a/src/USER-DRUDE/pair_lj_cut_thole_long.cpp b/src/USER-DRUDE/pair_lj_cut_thole_long.cpp
index 726baae2400c077075159c2b95cc666cf70124c3..671de7090b3f9ba3e79cadcd98cb43576c3d7cd0 100644
--- a/src/USER-DRUDE/pair_lj_cut_thole_long.cpp
+++ b/src/USER-DRUDE/pair_lj_cut_thole_long.cpp
@@ -640,10 +640,12 @@ double PairLJCutTholeLong::single(int i, int j, int itype, int jtype,
       if (j != di_closest){
         if (drudetype[i] == CORE_TYPE) dqi = -atom->q[di];
         else if (drudetype[i] == DRUDE_TYPE) dqi = atom->q[i];
+        else dqi = 0.0;
         if (drudetype[j] == CORE_TYPE) {
           dj = atom->map(drudeid[j]);
           dqj = -atom->q[dj];
         } else if (drudetype[j] == DRUDE_TYPE) dqj = atom->q[j];
+        else dqj = 0.0;
         asr = ascreen[itype][jtype] * r;
         exp_asr = exp(-asr);
         dcoul = force->qqrd2e * dqi * dqj / r;
diff --git a/src/USER-NC-DUMP/dump_nc.cpp b/src/USER-NC-DUMP/dump_nc.cpp
index 825526dde98228a8c1b1500f3e4b17a51b997e98..7a66eb022429da91a6491051ac79d42973cd181c 100644
--- a/src/USER-NC-DUMP/dump_nc.cpp
+++ b/src/USER-NC-DUMP/dump_nc.cpp
@@ -283,9 +283,6 @@ void DumpNC::openfile()
       // Fixme! Perform checks if dimensions and variables conform with
       // data structure standard.
 
-      size_t index[NC_MAX_VAR_DIMS], count[NC_MAX_VAR_DIMS];
-      double d[1];
-
       if (singlefile_opened) return;
       singlefile_opened = 1;
 
@@ -924,7 +921,7 @@ int DumpNC::modify_param(int narg, char **arg)
 
     for (int i = 0; iarg < narg; iarg++, i++) {
       int n;
-      char *suffix;
+      char *suffix=NULL;
 
       if (!strcmp(arg[iarg],"step")) {
         perframe[i].type = THIS_IS_A_BIGINT;
diff --git a/src/USER-OMP/fix_nh_asphere_omp.cpp b/src/USER-OMP/fix_nh_asphere_omp.cpp
index d90e907d0e66e28409d3d1ae439210b78bf8c35a..f11b1f5e94946b96cd24fd6d8972ec71d5568561 100644
--- a/src/USER-OMP/fix_nh_asphere_omp.cpp
+++ b/src/USER-OMP/fix_nh_asphere_omp.cpp
@@ -183,7 +183,6 @@ void FixNHAsphereOMP::nh_v_temp()
 #pragma omp parallel for default(none) private(i) schedule(static)
 #endif
     for (i = 0; i < nlocal; i++) {
-      double buf[3];
       if (mask[i] & groupbit) {
         temperature->remove_bias(i,&v[i].x);
         v[i].x *= factor_eta;
diff --git a/src/USER-OMP/fix_nh_omp.cpp b/src/USER-OMP/fix_nh_omp.cpp
index 591503d01e11c9315bc2b2c00c85151430aadf36..e77f18304dfdb99ae9fcfa4af60264ec92d55b02 100644
--- a/src/USER-OMP/fix_nh_omp.cpp
+++ b/src/USER-OMP/fix_nh_omp.cpp
@@ -261,7 +261,6 @@ void FixNHOMP::nh_v_press()
 #pragma omp parallel for default(none) private(i) schedule(static)
 #endif
     for (i = 0; i < nlocal; i++) {
-      double buf[3];
       if (mask[i] & groupbit) {
         temperature->remove_bias(i,&v[i].x);
         v[i].x *= factor0;
@@ -374,7 +373,6 @@ void FixNHOMP::nh_v_temp()
 #pragma omp parallel for default(none) private(i) schedule(static)
 #endif
     for (i = 0; i < nlocal; i++) {
-      double buf[3];
       if (mask[i] & groupbit) {
         temperature->remove_bias(i,&v[i].x);
         v[i].x *= factor_eta;
diff --git a/src/USER-OMP/fix_nh_sphere_omp.cpp b/src/USER-OMP/fix_nh_sphere_omp.cpp
index 5e7890a5133a394e4019b644647f08ca7ce26025..cd06c581ca86f2db34b0afcf08f8ff75450f45a7 100644
--- a/src/USER-OMP/fix_nh_sphere_omp.cpp
+++ b/src/USER-OMP/fix_nh_sphere_omp.cpp
@@ -137,7 +137,6 @@ void FixNHSphereOMP::nh_v_temp()
 #pragma omp parallel for default(none) private(i) schedule(static)
 #endif
     for (i = 0; i < nlocal; i++) {
-      double buf[3];
       if (mask[i] & groupbit) {
         temperature->remove_bias(i,&v[i].x);
         v[i].x *= factor_eta;
diff --git a/src/USER-OMP/fix_nvt_sllod_omp.cpp b/src/USER-OMP/fix_nvt_sllod_omp.cpp
index bd704148a5505724c728acf30bd60ea9a01e3540..f233dc459be52d1637ac34ac8abd29c702d88acf 100644
--- a/src/USER-OMP/fix_nvt_sllod_omp.cpp
+++ b/src/USER-OMP/fix_nvt_sllod_omp.cpp
@@ -121,7 +121,7 @@ void FixNVTSllodOMP::nh_v_temp()
 #pragma omp parallel for default(none) private(i) shared(h_two) schedule(static)
 #endif
   for (i = 0; i < nlocal; i++) {
-    double vdelu0,vdelu1,vdelu2,buf[3];
+    double vdelu0,vdelu1,vdelu2;
     if (mask[i] & groupbit) {
       vdelu0 = h_two[0]*v[i].x + h_two[5]*v[i].y + h_two[4]*v[i].z;
       vdelu1 = h_two[1]*v[i].y + h_two[3]*v[i].z;
diff --git a/src/USER-OMP/pair_airebo_omp.cpp b/src/USER-OMP/pair_airebo_omp.cpp
index fb1308990fd7c574175c0bd84a9eb5395c5fdab6..84821f1c8c24eb17d13b0506de3649887be2ad08 100644
--- a/src/USER-OMP/pair_airebo_omp.cpp
+++ b/src/USER-OMP/pair_airebo_omp.cpp
@@ -1852,9 +1852,7 @@ double PairAIREBOOMP::bondorderLJ_thr(int i, int j, double rij[3], double rijmag
   double rikmag,rjlmag,cosjik,cosijl,g,tmp2,tmp3;
   double Etmp,pij,tmp,wij,dwij,NconjtmpI,NconjtmpJ;
   double Nki,Nlj,dS,lamdajik,lamdaijl,dgdc,dgdN,pji,Nijconj,piRC;
-  double dcosjikdri[3],dcosijldri[3],dcosjikdrk[3];
-  double dN2[2],dN3[3];
-  double dcosijldrj[3],dcosijldrl[3],dcosjikdrj[3],dwjl;
+  double dN2[2],dN3[3],dwjl;
   double Tij,crosskij[3],crosskijmag;
   double crossijl[3],crossijlmag,omkijl;
   double tmppij,tmppji,dN2PIJ[2],dN2PJI[2],dN3piRC[3],dN3Tij[3];
@@ -1864,16 +1862,16 @@ double PairAIREBOOMP::bondorderLJ_thr(int i, int j, double rij[3], double rijmag
   double rlnmag,dwln,r23[3],r23mag,r21[3],r21mag;
   double w21,dw21,r34[3],r34mag,cos234,w34,dw34;
   double cross321[3],cross234[3],prefactor,SpN;
-  double fcijpc,fcikpc,fcjlpc,fcjkpc,fcilpc;
-  double dt2dik[3],dt2djl[3],dt2dij[3],aa,aaa1,aaa2,at2,cw,cwnum,cwnom;
+  double fcikpc,fcjlpc,fcjkpc,fcilpc;
+  double dt2dik[3],dt2djl[3],aa,aaa1,aaa2,at2,cw,cwnum,cwnom;
   double sin321,sin234,rr,rijrik,rijrjl,rjk2,rik2,ril2,rjl2;
-  double dctik,dctjk,dctjl,dctij,dctji,dctil,rik2i,rjl2i,sink2i,sinl2i;
-  double rjk[3],ril[3],dt1dik,dt1djk,dt1djl,dt1dil,dt1dij;
+  double dctik,dctjk,dctjl,dctil,rik2i,rjl2i,sink2i,sinl2i;
+  double rjk[3],ril[3],dt1dik,dt1djk,dt1djl,dt1dil;
   double dNlj;
   double PijS,PjiS;
   double rij2,tspjik,dtsjik,tspijl,dtsijl,costmp;
   int *REBO_neighs,*REBO_neighs_i,*REBO_neighs_j,*REBO_neighs_k,*REBO_neighs_l;
-  double F12[3],F23[3],F34[3],F31[3],F24[3];
+  double F12[3],F34[3],F31[3],F24[3];
   double fi[3],fj[3],fk[3],fl[3],f1[3],f2[3],f3[3],f4[4];
   double rji[3],rki[3],rlj[3],r13[3],r43[3];
   double realrij[3], realrijmag;
diff --git a/src/USER-SMTBQ/pair_smtbq.cpp b/src/USER-SMTBQ/pair_smtbq.cpp
index 5e24ced35cafb72a3db2fbfb41469d645d079c4a..937b9e511736e6e4bbadc7f8d66f251383daa2d0 100644
--- a/src/USER-SMTBQ/pair_smtbq.cpp
+++ b/src/USER-SMTBQ/pair_smtbq.cpp
@@ -3561,7 +3561,7 @@ int PairSMTBQ::Tokenize( char* s, char*** tok )
 
 void PairSMTBQ::CheckEnergyVSForce()
 {
-  double drL,iq,jq,rsq,evdwlCoul,fpairCoul,eflag,ErepR,frepR,fpair,evdwl;
+  double drL,iq,jq,rsq,evdwlCoul,fpairCoul,eflag=0,ErepR,frepR,fpair,evdwl;
   int i,j,iiiMax,iii,iCoord;
   int itype,jtype,l,m;
   double r,t1,t2,sds,xi,engSurf,fforceSurf;
diff --git a/src/comm_tiled.cpp b/src/comm_tiled.cpp
index 2bdcd0503025dd357babee42e713fa5024206d62..23b098a705a26bb477ab7199688d2375e2034699 100644
--- a/src/comm_tiled.cpp
+++ b/src/comm_tiled.cpp
@@ -1449,7 +1449,7 @@ void CommTiled::box_drop_brick(int idim, double *lo, double *hi, int &indexme)
   // NOTE: these error messages are internal sanity checks
   //       should not occur, can be removed at some point
 
-  int index,dir;
+  int index=-1,dir;
   if (hi[idim] == sublo[idim]) {
     index = myloc[idim] - 1;
     dir = -1;
diff --git a/src/compute_property_local.cpp b/src/compute_property_local.cpp
index 7814b6cb6bb05e598a10e71a1f255f95c846f382..90faa88921271c6e8810617f306fa28954fa9107 100644
--- a/src/compute_property_local.cpp
+++ b/src/compute_property_local.cpp
@@ -35,7 +35,7 @@ enum{TYPE,RADIUS};
 
 ComputePropertyLocal::ComputePropertyLocal(LAMMPS *lmp, int narg, char **arg) :
   Compute(lmp, narg, arg),
-  indices(NULL), pack_choice(NULL), vlocal(NULL), alocal(NULL)
+  vlocal(NULL), alocal(NULL), indices(NULL), pack_choice(NULL)
 {
   if (narg < 4) error->all(FLERR,"Illegal compute property/local command");
 
diff --git a/src/neighbor.cpp b/src/neighbor.cpp
index 8da6c1b9d25452ffe5659bdc0c6aa54d2cf1573c..4cd99b41d7a3c6f24a3a39b0bf20edbc211e3cc3 100644
--- a/src/neighbor.cpp
+++ b/src/neighbor.cpp
@@ -954,7 +954,7 @@ void Neighbor::morph_skip()
   int i,j,inewton,jnewton;
   NeighRequest *irq,*jrq,*nrq;
 
-  for (int i = 0; i < nrequest; i++) {
+  for (i = 0; i < nrequest; i++) {
     irq = requests[i];
 
     // only processing skip lists
@@ -1053,7 +1053,7 @@ void Neighbor::morph_skip()
 void Neighbor::morph_granular()
 {
   int i,j;
-  NeighRequest *irq,*jrq,*nrq;
+  NeighRequest *irq,*jrq;
 
   for (i = 0; i < nrequest; i++) {
     irq = requests[i];
diff --git a/src/npair_full_bin_atomonly.cpp b/src/npair_full_bin_atomonly.cpp
index 36f0ab8d6692b2739b3a9d5f7fa507a6e42ee71a..8d4fc254b525410171dd0ab05660832fdbdad747 100644
--- a/src/npair_full_bin_atomonly.cpp
+++ b/src/npair_full_bin_atomonly.cpp
@@ -40,7 +40,6 @@ void NPairFullBinAtomonly::build(NeighList *list)
   double **x = atom->x;
   int *type = atom->type;
   int *mask = atom->mask;
-  tagint *tag = atom->tag;
   tagint *molecule = atom->molecule;
   int nlocal = atom->nlocal;
   if (includegroup) nlocal = atom->nfirst;