diff -Naur lammps-28Oct08/src/min_cg.cpp lammps-6Nov08/src/min_cg.cpp --- lammps-28Oct08/src/min_cg.cpp 2008-05-15 16:42:47.000000000 -0600 +++ lammps-6Nov08/src/min_cg.cpp 2008-11-06 08:17:59.000000000 -0700 @@ -148,7 +148,7 @@ einitial = ecurrent; - f = atom->f[0]; + if (ndof) f = atom->f[0]; tmp = 0.0; for (int i = 0; i < ndof; i++) tmp += f[i]*f[i]; MPI_Allreduce(&tmp,&fnorm2_init,1,MPI_DOUBLE,MPI_SUM,world); @@ -206,7 +206,7 @@ efinal = ecurrent; - f = atom->f[0]; + if (ndof) f = atom->f[0]; tmp = 0.0; for (int i = 0; i < ndof; i++) tmp += f[i]*f[i]; MPI_Allreduce(&tmp,&fnorm2_final,1,MPI_DOUBLE,MPI_SUM,world); @@ -277,7 +277,8 @@ int i,fail,ntimestep; double beta,gg,dot[2],dotall[2]; - double *f = atom->f[0]; + double *f = NULL; + if (ndof) atom->f[0]; for (i = 0; i < ndof; i++) h[i] = g[i] = f[i]; dot[0] = 0.0; @@ -308,7 +309,7 @@ // force tolerance criterion - f = atom->f[0]; + if (ndof) f = atom->f[0]; dot[0] = dot[1] = 0.0; for (i = 0; i < ndof; i++) { dot[0] += f[i]*f[i]; @@ -506,7 +507,8 @@ // stopping criterion, must be scaled by normflag - double *f = atom->f[0]; + double *f = NULL; + if (n) f = atom->f[0]; double fdotdirme = 0.0; for (i = 0; i < n; i++) fdotdirme += f[i]*dir[i]; double fdotdirall;