From 2683d014360dbf97694869ddc3e9db8b11aad912 Mon Sep 17 00:00:00 2001
From: sjplimp <sjplimp@f3b2605a-c512-4ea7-a41b-209d697bcdaa>
Date: Mon, 14 Mar 2011 15:14:53 +0000
Subject: [PATCH] git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@5784
 f3b2605a-c512-4ea7-a41b-209d697bcdaa

---
 src/fix_addforce.cpp |  8 ++++----
 src/fix_ave_atom.cpp |  2 +-
 src/fix_efield.cpp   |  6 +++---
 src/fix_move.cpp     | 18 ++++++++++++------
 src/fix_setforce.cpp |  6 +++---
 src/velocity.cpp     |  6 +++---
 6 files changed, 26 insertions(+), 20 deletions(-)

diff --git a/src/fix_addforce.cpp b/src/fix_addforce.cpp
index 03445312a2..b51b2dcc0d 100644
--- a/src/fix_addforce.cpp
+++ b/src/fix_addforce.cpp
@@ -258,15 +258,15 @@ void FixAddForce::post_force(int vflag)
     modify->clearstep_compute();
 
     if (xstyle == EQUAL) xvalue = input->variable->compute_equal(xvar);
-    else if (xstyle == ATOM)
+    else if (xstyle == ATOM && sforce)
       input->variable->compute_atom(xvar,igroup,&sforce[0][0],4,0);
     if (ystyle == EQUAL) yvalue = input->variable->compute_equal(yvar);
-    else if (ystyle == ATOM) 
+    else if (ystyle == ATOM && sforce) 
       input->variable->compute_atom(yvar,igroup,&sforce[0][1],4,0);
     if (zstyle == EQUAL) zvalue = input->variable->compute_equal(zvar);
-    else if (zstyle == ATOM)
+    else if (zstyle == ATOM && sforce)
       input->variable->compute_atom(zvar,igroup,&sforce[0][2],4,0);
-    if (estyle == ATOM)
+    if (estyle == ATOM && sforce)
       input->variable->compute_atom(evar,igroup,&sforce[0][3],4,0);
 
     modify->addstep_compute(update->ntimestep + 1);
diff --git a/src/fix_ave_atom.cpp b/src/fix_ave_atom.cpp
index ee2cf2b2d0..a6f81a72b3 100644
--- a/src/fix_ave_atom.cpp
+++ b/src/fix_ave_atom.cpp
@@ -351,7 +351,7 @@ void FixAveAtom::end_of_step()
 
     // evaluate atom-style variable
 
-    } else if (which[m] == VARIABLE)
+    } else if (which[m] == VARIABLE && array)
       input->variable->compute_atom(n,igroup,&array[0][m],nvalues,1);
   }
 
diff --git a/src/fix_efield.cpp b/src/fix_efield.cpp
index f60522b56f..5a5048a871 100644
--- a/src/fix_efield.cpp
+++ b/src/fix_efield.cpp
@@ -184,13 +184,13 @@ void FixEfield::post_force(int vflag)
     modify->clearstep_compute();
 
     if (xstyle == EQUAL) ex = qe2f * input->variable->compute_equal(xvar);
-    else if (xstyle == ATOM)
+    else if (xstyle == ATOM && efield)
       input->variable->compute_atom(xvar,igroup,&efield[0][0],3,0);
     if (ystyle == EQUAL) ey = qe2f * input->variable->compute_equal(yvar);
-    else if (ystyle == ATOM)
+    else if (ystyle == ATOM && efield)
       input->variable->compute_atom(yvar,igroup,&efield[0][1],3,0);
     if (zstyle == EQUAL) ez = qe2f * input->variable->compute_equal(zvar);
-    else if (zstyle == ATOM)
+    else if (zstyle == ATOM && efield)
       input->variable->compute_atom(zvar,igroup,&efield[0][2],3,0);
 
     modify->addstep_compute(update->ntimestep + 1);
diff --git a/src/fix_move.cpp b/src/fix_move.cpp
index d14908d9c2..43f5df7d24 100644
--- a/src/fix_move.cpp
+++ b/src/fix_move.cpp
@@ -576,27 +576,33 @@ void FixMove::initial_integrate(int vflag)
 
     if (xvarstr) {
       if (xvarstyle == EQUAL) dx = input->variable->compute_equal(xvar);
-      else input->variable->compute_atom(xvar,igroup,&displace[0][0],3,0);
+      else if (displace)
+	input->variable->compute_atom(xvar,igroup,&displace[0][0],3,0);
     }
     if (yvarstr) {
       if (yvarstyle == EQUAL) dy = input->variable->compute_equal(yvar);
-      else input->variable->compute_atom(yvar,igroup,&displace[0][1],3,0);
+      else if (displace)
+	input->variable->compute_atom(yvar,igroup,&displace[0][1],3,0);
     }
     if (zvarstr) {
       if (zvarstyle == EQUAL) dz = input->variable->compute_equal(zvar);
-      else input->variable->compute_atom(zvar,igroup,&displace[0][2],3,0);
+      else if (displace)
+	input->variable->compute_atom(zvar,igroup,&displace[0][2],3,0);
     }
     if (vxvarstr) {
       if (vxvarstyle == EQUAL) vx = input->variable->compute_equal(vxvar);
-      else input->variable->compute_atom(vxvar,igroup,&velocity[0][0],3,0);
+      else if (velocity)
+	input->variable->compute_atom(vxvar,igroup,&velocity[0][0],3,0);
     }
     if (vyvarstr) {
       if (vyvarstyle == EQUAL) vy = input->variable->compute_equal(vyvar);
-      else input->variable->compute_atom(vyvar,igroup,&velocity[0][1],3,0);
+      else if (velocity)
+	input->variable->compute_atom(vyvar,igroup,&velocity[0][1],3,0);
     }
     if (vzvarstr) {
       if (vzvarstyle == EQUAL) vz = input->variable->compute_equal(vzvar);
-      else input->variable->compute_atom(vzvar,igroup,&velocity[0][2],3,0);
+      else if (velocity)
+	input->variable->compute_atom(vzvar,igroup,&velocity[0][2],3,0);
     }
 
     modify->addstep_compute(update->ntimestep + 1);
diff --git a/src/fix_setforce.cpp b/src/fix_setforce.cpp
index d32c8145f2..0f137e87db 100644
--- a/src/fix_setforce.cpp
+++ b/src/fix_setforce.cpp
@@ -245,13 +245,13 @@ void FixSetForce::post_force(int vflag)
     modify->clearstep_compute();
 
     if (xstyle == EQUAL) xvalue = input->variable->compute_equal(xvar);
-    else if (xstyle == ATOM)
+    else if (xstyle == ATOM && sforce)
       input->variable->compute_atom(xvar,igroup,&sforce[0][0],3,0);
     if (ystyle == EQUAL) yvalue = input->variable->compute_equal(yvar);
-    else if (ystyle == ATOM) 
+    else if (ystyle == ATOM && sforce) 
       input->variable->compute_atom(yvar,igroup,&sforce[0][1],3,0);
     if (zstyle == EQUAL) zvalue = input->variable->compute_equal(zvar);
-    else if (zstyle == ATOM)
+    else if (zstyle == ATOM && sforce)
       input->variable->compute_atom(zvar,igroup,&sforce[0][2],3,0);
 
     modify->addstep_compute(update->ntimestep + 1);
diff --git a/src/velocity.cpp b/src/velocity.cpp
index 77545a86fc..efef0c9653 100644
--- a/src/velocity.cpp
+++ b/src/velocity.cpp
@@ -465,13 +465,13 @@ void Velocity::set(int narg, char **arg)
 
   } else {
     if (xstyle == EQUAL) vx = input->variable->compute_equal(xvar);
-    else if (xstyle == ATOM)
+    else if (xstyle == ATOM && vfield)
       input->variable->compute_atom(xvar,igroup,&vfield[0][0],3,0);
     if (ystyle == EQUAL) vy = input->variable->compute_equal(yvar);
-    else if (ystyle == ATOM)
+    else if (ystyle == ATOM && vfield)
       input->variable->compute_atom(yvar,igroup,&vfield[0][1],3,0);
     if (zstyle == EQUAL) vz = input->variable->compute_equal(zvar);
-    else if (zstyle == ATOM)
+    else if (zstyle == ATOM && vfield)
       input->variable->compute_atom(zvar,igroup,&vfield[0][2],3,0);
 
     for (int i = 0; i < nlocal; i++)
-- 
GitLab