diff --git a/src/ASPHERE/fix_nve_line.cpp b/src/ASPHERE/fix_nve_line.cpp index 1fd9b545a5..be9b42a7a1 100644 --- a/src/ASPHERE/fix_nve_line.cpp +++ b/src/ASPHERE/fix_nve_line.cpp @@ -56,8 +56,6 @@ int FixNVELine::setmask() void FixNVELine::init() { - int i,itype; - // error checks avec = (AtomVecLine *) atom->style_match("line"); @@ -73,7 +71,7 @@ void FixNVELine::init() int *mask = atom->mask; int nlocal = atom->nlocal; - for (i = 0; i < nlocal; i++) + for (int i = 0; i < nlocal; i++) if (mask[i] & groupbit) { if (line[i] < 0) error->one(FLERR,"Fix nve/line requires line particles"); } @@ -85,7 +83,7 @@ void FixNVELine::init() void FixNVELine::initial_integrate(int vflag) { - double dtfm,dtirotate,delx,dely,length,theta; + double dtfm,dtirotate,length,theta; AtomVecLine::Bonus *bonus = avec->bonus; int *line = atom->line; diff --git a/src/ASPHERE/fix_nve_tri.cpp b/src/ASPHERE/fix_nve_tri.cpp index a572013f49..71fe4d72dc 100644 --- a/src/ASPHERE/fix_nve_tri.cpp +++ b/src/ASPHERE/fix_nve_tri.cpp @@ -50,8 +50,6 @@ int FixNVETri::setmask() void FixNVETri::init() { - int i,itype; - // error checks avec = (AtomVecTri *) atom->style_match("tri"); @@ -67,7 +65,7 @@ void FixNVETri::init() int *mask = atom->mask; int nlocal = atom->nlocal; - for (i = 0; i < nlocal; i++) + for (int i = 0; i < nlocal; i++) if (mask[i] & groupbit) { if (tri[i] < 0) error->one(FLERR,"Fix nve/tri requires tri particles"); } diff --git a/src/BODY/body_nparticle.cpp b/src/BODY/body_nparticle.cpp index e2b8c9b020..b8e981e172 100644 --- a/src/BODY/body_nparticle.cpp +++ b/src/BODY/body_nparticle.cpp @@ -176,7 +176,7 @@ void BodyNparticle::data_body(int ibonus, int ninteger, int ndouble, // bonus->dvalue = sub-particle displacements in body frame - double delta[3],displace[3]; + double delta[3]; int j = 6; int k = 0; diff --git a/src/BODY/compute_body_local.cpp b/src/BODY/compute_body_local.cpp index 732b801d0f..3ba146642e 100644 --- a/src/BODY/compute_body_local.cpp +++ b/src/BODY/compute_body_local.cpp @@ -174,7 +174,6 @@ int ComputeBodyLocal::compute_body(int flag) } else { ibonus = body[i]; - AtomVecBody::Bonus *bonus = &avec->bonus[ibonus]; n = bptr->noutrow(ibonus); for (int j = 0; j < n; j++) { bptr->output(ibonus,j,values); diff --git a/src/KSPACE/ewald_disp.cpp b/src/KSPACE/ewald_disp.cpp index 39951b8b0c..e576c13c16 100644 --- a/src/KSPACE/ewald_disp.cpp +++ b/src/KSPACE/ewald_disp.cpp @@ -119,7 +119,6 @@ void EwaldDisp::init() for (int i=0; i<=EWALD_NORDER; ++i) // transcribe order if (ewald_order&(1<type; int func[EWALD_NFUNCS]; @@ -1103,7 +1101,6 @@ void EwaldDisp::compute_virial_dipole() { if (!function[3]) return; if (!vflag_atom && !vflag_global) return; - double test = 0.0; kvector *k; hvector *h, *nh; cvector *z = ekr_local; @@ -1119,7 +1116,6 @@ void EwaldDisp::compute_virial_dipole() double *ke, c[EWALD_NFUNCS] = { 8.0*MY_PI*qscale/volume, 2.0*MY_PI*MY_PIS/(12.0*volume), 2.0*MY_PI*MY_PIS/(192.0*volume), 8.0*MY_PI*mumurd2e/volume}; - double kt = 4.0*cube(g_ewald)/3.0/MY_PIS/c[3]; int i, kx, ky, lbytes = (2*nbox+1)*sizeof(cvector), *type = atom->type; int func[EWALD_NFUNCS]; diff --git a/src/MC/fix_bond_break.cpp b/src/MC/fix_bond_break.cpp index 99f78db824..9bdede2bab 100644 --- a/src/MC/fix_bond_break.cpp +++ b/src/MC/fix_bond_break.cpp @@ -185,7 +185,7 @@ void FixBondBreak::init() void FixBondBreak::post_integrate() { - int i,j,k,m,n,i1,i2,n1,n2,n3,type; + int i,j,k,m,n,i1,i2,n1,n3,type; double delx,dely,delz,rsq; tagint *slist; @@ -511,7 +511,7 @@ void FixBondBreak::update_topology() void FixBondBreak::rebuild_special(int m, tagint id1, tagint id2) { - int i,j,n,n1,n2,n3,cn1,cn2,cn3; + int i,j,n,n1,cn1,cn2,cn3; tagint *slist; tagint *tag = atom->tag; diff --git a/src/MC/fix_gcmc.cpp b/src/MC/fix_gcmc.cpp index 9bb5c1f2e8..38c54d4854 100644 --- a/src/MC/fix_gcmc.cpp +++ b/src/MC/fix_gcmc.cpp @@ -267,7 +267,6 @@ void FixGCMC::init() if (molflag == 0 && atom->molecule_flag) { tagint *molecule = atom->molecule; - int *mask = atom->mask; int flag = 0; for (int i = 0; i < atom->nlocal; i++) if (type[i] == ngcmc_type) @@ -315,8 +314,8 @@ void FixGCMC::init() if (molflag) { char **group_arg = new char*[3]; // create unique group name for atoms to be rotated - int len = strlen(id) + 24; - group_arg[0] = new char[60]; + int len = strlen(id) + 30; + group_arg[0] = new char[len]; sprintf(group_arg[0],"FixGCMC:rotation_gas_atoms:%s",id); group_arg[1] = (char *) "molecule"; char digits[12]; @@ -767,10 +766,6 @@ void FixGCMC::attempt_molecule_insertion() { ninsertion_attempts += 1.0; - double xprd = domain->xprd; - double yprd = domain->yprd; - double zprd = domain->zprd; - double com_coord[3]; if (regionflag) { int region_attempt = 0; @@ -846,7 +841,6 @@ void FixGCMC::attempt_molecule_insertion() double **x = atom->x; double **v = atom->v; imageint *image = atom->image; - tagint *molecule = atom->molecule; tagint *tag = atom->tag; for (int i = 0; i < natoms_per_molecule; i++) { k += atom->avec->unpack_exchange(&model_atom_buf[k]); diff --git a/src/MISC/fix_gld.cpp b/src/MISC/fix_gld.cpp index 177b291934..66944502f7 100644 --- a/src/MISC/fix_gld.cpp +++ b/src/MISC/fix_gld.cpp @@ -533,8 +533,6 @@ int FixGLD::pack_exchange(int i, double *buf) int FixGLD::unpack_exchange(int nlocal, double *buf) { - double **extra = atom->extra; - int m = 0; for (int k = 0; k < 3*prony_terms; k++) { s_gld[nlocal][k] = buf[m++]; @@ -612,7 +610,6 @@ int FixGLD::maxsize_restart() void FixGLD::init_s_gld() { int icoeff; - int *type = atom->type; double eq_sdev=0.0; // set kT to the temperature in mvvv units diff --git a/src/MOLECULE/angle_table.cpp b/src/MOLECULE/angle_table.cpp index 682ee4f8ae..cf8b62cc9b 100644 --- a/src/MOLECULE/angle_table.cpp +++ b/src/MOLECULE/angle_table.cpp @@ -322,7 +322,7 @@ double AngleTable::single(int type, int i1, int i2, int i3) if (c < -1.0) c = -1.0; double theta = acos(c); - double u; + double u=0.0; u_lookup(type,theta,u); return u; } diff --git a/src/MOLECULE/bond_fene.cpp b/src/MOLECULE/bond_fene.cpp index fb69de6e56..1554c77195 100644 --- a/src/MOLECULE/bond_fene.cpp +++ b/src/MOLECULE/bond_fene.cpp @@ -53,7 +53,7 @@ void BondFENE::compute(int eflag, int vflag) double delx,dely,delz,ebond,fbond; double rsq,r0sq,rlogarg,sr2,sr6; - ebond = 0.0; + ebond = sr6 = 0.0; if (eflag || vflag) ev_setup(eflag,vflag); else evflag = 0; diff --git a/src/MOLECULE/bond_fene_expand.cpp b/src/MOLECULE/bond_fene_expand.cpp index 439b09a5a7..6f616b98dd 100644 --- a/src/MOLECULE/bond_fene_expand.cpp +++ b/src/MOLECULE/bond_fene_expand.cpp @@ -55,7 +55,7 @@ void BondFENEExpand::compute(int eflag, int vflag) double rsq,r0sq,rlogarg,sr2,sr6; double r,rshift,rshiftsq; - ebond = 0.0; + ebond = sr6 = 0.0; if (eflag || vflag) ev_setup(eflag,vflag); else evflag = 0; diff --git a/src/MOLECULE/bond_quartic.cpp b/src/MOLECULE/bond_quartic.cpp index a0d2e5b702..84a82c9bb4 100644 --- a/src/MOLECULE/bond_quartic.cpp +++ b/src/MOLECULE/bond_quartic.cpp @@ -59,7 +59,7 @@ void BondQuartic::compute(int eflag, int vflag) double delx,dely,delz,ebond,fbond,evdwl,fpair; double r,rsq,dr,r2,ra,rb,sr2,sr6; - ebond = evdwl = 0.0; + ebond = evdwl = sr6 = 0.0; if (eflag || vflag) ev_setup(eflag,vflag); else evflag = 0; diff --git a/src/MPIIO/dump_atom_mpiio.cpp b/src/MPIIO/dump_atom_mpiio.cpp index a867b34eeb..2767847a6a 100644 --- a/src/MPIIO/dump_atom_mpiio.cpp +++ b/src/MPIIO/dump_atom_mpiio.cpp @@ -552,7 +552,6 @@ int DumpAtomMPIIO::convert_string_omp(int n, double *mybuf) int DumpAtomMPIIO::convert_image_omp(int n, double *mybuf) { - MPI_Status mpiStatus; char **mpifh_buffer_line_per_thread; int mpifhStringCount; int *mpifhStringCountPerThread, *bufOffset, *bufRange, *bufLength; @@ -643,7 +642,6 @@ int DumpAtomMPIIO::convert_image_omp(int n, double *mybuf) int DumpAtomMPIIO::convert_noimage_omp(int n, double *mybuf) { - MPI_Status mpiStatus; char **mpifh_buffer_line_per_thread; int mpifhStringCount; int *mpifhStringCountPerThread, *bufOffset, *bufRange, *bufLength; diff --git a/src/MPIIO/dump_custom_mpiio.cpp b/src/MPIIO/dump_custom_mpiio.cpp index dc313cc02f..2922ad30c0 100644 --- a/src/MPIIO/dump_custom_mpiio.cpp +++ b/src/MPIIO/dump_custom_mpiio.cpp @@ -573,7 +573,6 @@ void DumpCustomMPIIO::write_string(int n, double *mybuf) int DumpCustomMPIIO::convert_string_omp(int n, double *mybuf) { - MPI_Status mpiStatus; char **mpifh_buffer_line_per_thread; int mpifhStringCount; int *mpifhStringCountPerThread, *bufOffset, *bufRange, *bufLength; diff --git a/src/MPIIO/dump_xyz_mpiio.cpp b/src/MPIIO/dump_xyz_mpiio.cpp index e6fa259920..108ab8dfee 100644 --- a/src/MPIIO/dump_xyz_mpiio.cpp +++ b/src/MPIIO/dump_xyz_mpiio.cpp @@ -315,7 +315,6 @@ void DumpXYZMPIIO::write_string(int n, double *mybuf) int DumpXYZMPIIO::convert_string_omp(int n, double *mybuf) { - MPI_Status mpiStatus; char **mpifh_buffer_line_per_thread; int mpifhStringCount; int *mpifhStringCountPerThread, *bufOffset, *bufRange, *bufLength; diff --git a/src/USER-CG-CMM/angle_sdk.cpp b/src/USER-CG-CMM/angle_sdk.cpp index 0ee3f47749..9b76fcacdd 100644 --- a/src/USER-CG-CMM/angle_sdk.cpp +++ b/src/USER-CG-CMM/angle_sdk.cpp @@ -244,7 +244,7 @@ void AngleSDK::coeff(int narg, char **arg) double k_one = force->numeric(FLERR,arg[1]); double theta0_one = force->numeric(FLERR,arg[2]); - double repscale_one; + double repscale_one=1.0; // backward compatibility with old cg/cmm style input: // this had diff --git a/src/USER-LB/fix_lb_fluid.cpp b/src/USER-LB/fix_lb_fluid.cpp index e5680ccf1e..d8a47dcde7 100644 --- a/src/USER-LB/fix_lb_fluid.cpp +++ b/src/USER-LB/fix_lb_fluid.cpp @@ -779,7 +779,6 @@ void FixLbFluid::calc_fluidforce(void) MPI_Status statuses[20]; double forceloc[3],force[3]; double torqueloc[3],torque[3]; - int numrequests; //-------------------------------------------------------------------------- // Zero out arrays @@ -2531,8 +2530,6 @@ void FixLbFluid::update_periodic(int xstart, int xend, int ystart, int yend, int void FixLbFluid::streamout(void) { int i,j,k; - double mass,massloc; - double momentumloc[3],momentum[3]; int istart,jstart,kstart; int iend,jend,kend; int w,iproc; diff --git a/src/USER-LB/fix_lb_pc.cpp b/src/USER-LB/fix_lb_pc.cpp index abd61a8f88..c8c518f039 100644 --- a/src/USER-LB/fix_lb_pc.cpp +++ b/src/USER-LB/fix_lb_pc.cpp @@ -68,7 +68,6 @@ FixLbPC::FixLbPC(LAMMPS *lmp, int narg, char **arg) : int *mask = atom->mask; int nlocal = atom->nlocal; - int print_warning = 0; for(int j=0; jone(FLERR,"can only use the lb/pc fix for an atom if also using the lb/fluid fix for that atom"); diff --git a/src/USER-LB/fix_lb_rigid_pc_sphere.cpp b/src/USER-LB/fix_lb_rigid_pc_sphere.cpp index abc104cb1f..c031d1b782 100644 --- a/src/USER-LB/fix_lb_rigid_pc_sphere.cpp +++ b/src/USER-LB/fix_lb_rigid_pc_sphere.cpp @@ -455,7 +455,7 @@ int FixLbRigidPCSphere::setmask() void FixLbRigidPCSphere::init() { - int i,itype,ibody; + int i,ibody; // warn if more than one rigid fix @@ -649,7 +649,7 @@ void FixLbRigidPCSphere::init() void FixLbRigidPCSphere::setup(int vflag) { int i,n,ibody; - double massone,radone; + double massone; // vcm = velocity of center-of-mass of each rigid body // fcm = force on center-of-mass of each rigid body @@ -663,7 +663,6 @@ void FixLbRigidPCSphere::setup(int vflag) int nlocal = atom->nlocal; imageint *image = atom->image; - int *periodicity = domain->periodicity; double unwrap[3]; double dx,dy,dz; @@ -761,12 +760,11 @@ void FixLbRigidPCSphere::initial_integrate(int vflag) { double dtfm; - int i,n,ibody; + int i,ibody; - double massone,radone; + double massone; double **x = atom->x; double **v = atom->v; - double **f = atom->f; double *rmass = atom->rmass; double *mass = atom->mass; int *type = atom->type; @@ -953,14 +951,12 @@ void FixLbRigidPCSphere::initial_integrate(int vflag) void FixLbRigidPCSphere::final_integrate() { int i,ibody; - double xy,xz,yz; // sum over atoms to get force and torque on rigid body double massone; imageint *image = atom->image; double **x = atom->x; double **f = atom->f; - double **v = atom->v; double *rmass = atom->rmass; double *mass = atom->mass; int *type = atom->type; @@ -1565,7 +1561,7 @@ double FixLbRigidPCSphere::compute_array(int i, int j) int *mask = atom->mask; int nlocal = atom->nlocal; double **x = atom->x; - int i,j,k,p,m; + int i,k; int ix,iy,iz; int ixp,iyp,izp; double dx1,dy1,dz1; diff --git a/src/USER-MISC/angle_quartic.cpp b/src/USER-MISC/angle_quartic.cpp index c6ba466ef2..cb0072373e 100644 --- a/src/USER-MISC/angle_quartic.cpp +++ b/src/USER-MISC/angle_quartic.cpp @@ -283,7 +283,5 @@ double AngleQuartic::single(int type, int i1, int i2, int i3) double dtheta2 = dtheta * dtheta; double dtheta3 = dtheta2 * dtheta; double dtheta4 = dtheta3 * dtheta; - double tk = 2.0 * k2[type] * dtheta + 3.0 * k3[type] * dtheta2 + - 4.0 * k4[type] * dtheta3; return k2[type] * dtheta2 + k3[type] * dtheta3 + k4[type] * dtheta4; } diff --git a/src/USER-MISC/dihedral_cosine_shift_exp.cpp b/src/USER-MISC/dihedral_cosine_shift_exp.cpp index ec6cc01fb9..90034330ee 100644 --- a/src/USER-MISC/dihedral_cosine_shift_exp.cpp +++ b/src/USER-MISC/dihedral_cosine_shift_exp.cpp @@ -58,13 +58,13 @@ DihedralCosineShiftExp::~DihedralCosineShiftExp() void DihedralCosineShiftExp::compute(int eflag, int vflag) { - int i1,i2,i3,i4,i,m,n,type; + int i1,i2,i3,i4,n,type; double vb1x,vb1y,vb1z,vb2x,vb2y,vb2z,vb3x,vb3y,vb3z,vb2xm,vb2ym,vb2zm; double edihedral,f1[3],f2[3],f3[3],f4[3]; double ax,ay,az,bx,by,bz,rasq,rbsq,rgsq,rg,rginv,ra2inv,rb2inv,rabinv; - double df,df1,ddf1,fg,hg,fga,hgb,gaa,gbb; + double df,fg,hg,fga,hgb,gaa,gbb; double dtfx,dtfy,dtfz,dtgx,dtgy,dtgz,dthx,dthy,dthz; - double c,s,p,sx2,sy2,sz2; + double c,s,sx2,sy2,sz2; double cccpsss,cssmscc,exp2; edihedral = 0.0; diff --git a/src/USER-MISC/dihedral_fourier.cpp b/src/USER-MISC/dihedral_fourier.cpp index c00dcfcfa5..4a9bb6a1a9 100644 --- a/src/USER-MISC/dihedral_fourier.cpp +++ b/src/USER-MISC/dihedral_fourier.cpp @@ -75,22 +75,17 @@ void DihedralFourier::compute(int eflag, int vflag) double ax,ay,az,bx,by,bz,rasq,rbsq,rgsq,rg,rginv,ra2inv,rb2inv,rabinv; double df,df1_,ddf1_,fg,hg,fga,hgb,gaa,gbb; double dtfx,dtfy,dtfz,dtgx,dtgy,dtgz,dthx,dthy,dthz; - double c,s,p,p_,sx2,sy2,sz2; - int itype,jtype; - double delx,dely,delz,rsq,r2inv,r6inv; + double c,s,p_,sx2,sy2,sz2; if (eflag || vflag) ev_setup(eflag,vflag); else evflag = 0; double **x = atom->x; double **f = atom->f; - double *q = atom->q; - int *atomtype = atom->type; int **dihedrallist = neighbor->dihedrallist; int ndihedrallist = neighbor->ndihedrallist; int nlocal = atom->nlocal; int newton_bond = force->newton_bond; - double qqrd2e = force->qqrd2e; for (n = 0; n < ndihedrallist; n++) { i1 = dihedrallist[n][0]; @@ -178,7 +173,7 @@ void DihedralFourier::compute(int eflag, int vflag) { m = multiplicity[type][j]; p_ = 1.0; - df1_ = 0.0; + ddf1_ = df1_ = 0.0; for (i = 0; i < m; i++) { ddf1_ = p_*c - df1_*s; diff --git a/src/USER-MISC/dihedral_table.cpp b/src/USER-MISC/dihedral_table.cpp index 5d7163cb53..1e486b2809 100644 --- a/src/USER-MISC/dihedral_table.cpp +++ b/src/USER-MISC/dihedral_table.cpp @@ -622,7 +622,7 @@ void DihedralTable::compute(int eflag, int vflag) // ----- Step 3: Calculate the energy and force in the phi direction ----- // tabulated force & energy - double u, m_du_dphi; //u = energy. m_du_dphi = "minus" du/dphi + double u=0.0, m_du_dphi=0.0; //u = energy. m_du_dphi = "minus" du/dphi uf_lookup(type, phi, u, m_du_dphi); if (eflag) edihedral = u; @@ -696,7 +696,7 @@ double DihedralTable::single(int type, int i1, int i2, int i3, int i4) double phi = Phi(x[i1], x[i2], x[i3], x[i4], domain, vb12, vb23, vb34, n123, n234); - double u; + double u=0.0; u_lookup(type, phi, u); //Calculate the energy, and store it in "u" return u; diff --git a/src/USER-OMP/dihedral_fourier_omp.cpp b/src/USER-OMP/dihedral_fourier_omp.cpp index 1aa80c578b..29d18c9fca 100644 --- a/src/USER-OMP/dihedral_fourier_omp.cpp +++ b/src/USER-OMP/dihedral_fourier_omp.cpp @@ -186,7 +186,7 @@ void DihedralFourierOMP::eval(int nfrom, int nto, ThrData * const thr) for (j=0; jilist; numneigh = list->numneigh; firstneigh = list->firstneigh; + evdwl = 0.0; // loop over neighbors of my atoms diff --git a/src/USER-OMP/pair_nb3b_harmonic_omp.cpp b/src/USER-OMP/pair_nb3b_harmonic_omp.cpp index 71118ecbc2..b36c4dd77d 100644 --- a/src/USER-OMP/pair_nb3b_harmonic_omp.cpp +++ b/src/USER-OMP/pair_nb3b_harmonic_omp.cpp @@ -74,7 +74,7 @@ void PairNb3bHarmonicOMP::eval(int iifrom, int iito, ThrData * const thr) int i,j,k,ii,jj,kk,jnum,jnumm1; tagint itag,jtag; int itype,jtype,ktype,ijparam,ikparam,ijkparam; - double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair; + double xtmp,ytmp,ztmp,delx,dely,delz,evdwl; double rsq,rsq1,rsq2; double delr1[3],delr2[3],fj[3],fk[3]; int *ilist,*jlist,*numneigh,**firstneigh; @@ -85,7 +85,6 @@ void PairNb3bHarmonicOMP::eval(int iifrom, int iito, ThrData * const thr) dbl3_t * _noalias const f = (dbl3_t *) thr->get_f()[0]; const tagint * _noalias const tag = atom->tag; const int * _noalias const type = atom->type; - const int nlocal = atom->nlocal; ilist = list->ilist; numneigh = list->numneigh; diff --git a/src/VORONOI/compute_voronoi_atom.cpp b/src/VORONOI/compute_voronoi_atom.cpp index ba3dc7b9ea..83ce6376a3 100644 --- a/src/VORONOI/compute_voronoi_atom.cpp +++ b/src/VORONOI/compute_voronoi_atom.cpp @@ -141,7 +141,7 @@ void ComputeVoronoi::init() void ComputeVoronoi::compute_peratom() { - int i, j; + int i; const double e = 0.01; invoked_peratom = update->ntimestep; @@ -182,7 +182,7 @@ void ComputeVoronoi::compute_peratom() syz = domain->yz/my; // cutghost is in lamda coordinates for triclinic boxes, use subxx_lamda - double *h = domain->h, cuttri[3]; + double *h = domain->h; sublo_bound[0] = h[0]*sublo_lamda[0] + h[5]*sublo_lamda[1] + h[4]*sublo_lamda[2] + boxlo[0]; sublo_bound[1] = h[1]*sublo_lamda[1] + h[3]*sublo_lamda[2] + boxlo[1]; sublo_bound[2] = h[2]*sublo_lamda[2] + boxlo[2]; diff --git a/src/balance.cpp b/src/balance.cpp index 6073b25b64..459c37febc 100644 --- a/src/balance.cpp +++ b/src/balance.cpp @@ -480,7 +480,7 @@ void Balance::dynamic_setup(char *str, int nitermax_in, double thresh_in) int Balance::dynamic() { int i,j,k,m,np,max; - double *split; + double *split = NULL; // no balancing if no atoms