Code beautification with uncrustify
[alexxy/gromacs.git] / src / tools / gmx_dipoles.c
index 65fa8b91153c3a6896baf2b08c7a27d683be6d89..402c061cb5ad859abca4aade98e03a779db11156 100644 (file)
@@ -1,11 +1,11 @@
 /* -*- mode: c; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; c-file-style: "stroustrup"; -*-
- * 
+ *
  *                This source code is part of
- * 
+ *
  *                 G   R   O   M   A   C   S
- * 
+ *
  *          GROningen MAchine for Chemical Simulations
- * 
+ *
  *                        VERSION 3.2.0
  * Written by David van der Spoel, Erik Lindahl, Berk Hess, and others.
  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  * of the License, or (at your option) any later version.
- * 
+ *
  * If you want to redistribute modifications, please consider that
  * scientific software is very special. Version control is crucial -
  * bugs must be traceable. We will be happy to consider code for
  * inclusion in the official distribution, but derived work must not
  * be called official GROMACS. Details are found in the README & COPYING
  * files - if they are missing, get the official version at www.gromacs.org.
- * 
+ *
  * To help us fund GROMACS development, we humbly ask that you cite
  * the papers on the package - you can find them in the top README file.
- * 
+ *
  * For more info, check our website at http://www.gromacs.org
- * 
+ *
  * And Hey:
  * Green Red Orange Magenta Azure Cyan Skyblue
  */
 #define CM2D  SPEED_OF_LIGHT*1.0e+24    /* Coulomb meter to Debye */
 
 typedef struct {
-    int  nelem;
-    real spacing,radius;
-    real *elem;
-    int  *count;
+    int      nelem;
+    real     spacing, radius;
+    real    *elem;
+    int     *count;
     gmx_bool bPhi;
-    int  nx,ny;
-    real **cmap;
+    int      nx, ny;
+    real   **cmap;
 } t_gkrbin;
 
-static t_gkrbin *mk_gkrbin(real radius,real rcmax,gmx_bool bPhi,int ndegrees)
+static t_gkrbin *mk_gkrbin(real radius, real rcmax, gmx_bool bPhi, int ndegrees)
 {
     t_gkrbin *gb;
-    char *ptr;
-    int  i;
-  
-    snew(gb,1);
-  
-    if ((ptr = getenv("GKRWIDTH")) != NULL) {
+    char     *ptr;
+    int       i;
+
+    snew(gb, 1);
+
+    if ((ptr = getenv("GKRWIDTH")) != NULL)
+    {
         double bw;
 
-        sscanf(ptr,"%lf",&bw);
-        gb->spacing = bw; 
+        sscanf(ptr, "%lf", &bw);
+        gb->spacing = bw;
     }
     else
+    {
         gb->spacing = 0.01; /* nm */
+    }
     gb->nelem   = 1 + radius/gb->spacing;
     if (rcmax == 0)
+    {
         gb->nx = gb->nelem;
+    }
     else
+    {
         gb->nx = 1 + rcmax/gb->spacing;
+    }
     gb->radius  = radius;
-    snew(gb->elem,gb->nelem);
-    snew(gb->count,gb->nelem);
-  
-    snew(gb->cmap,gb->nx);
-    gb->ny = max(2,ndegrees);
-    for(i=0; (i<gb->nx); i++)
-        snew(gb->cmap[i],gb->ny);
+    snew(gb->elem, gb->nelem);
+    snew(gb->count, gb->nelem);
+
+    snew(gb->cmap, gb->nx);
+    gb->ny = max(2, ndegrees);
+    for (i = 0; (i < gb->nx); i++)
+    {
+        snew(gb->cmap[i], gb->ny);
+    }
     gb->bPhi = bPhi;
-      
+
     return gb;
 }
 
@@ -118,113 +127,137 @@ static void done_gkrbin(t_gkrbin **gb)
     *gb = NULL;
 }
 
-static void add2gkr(t_gkrbin *gb,real r,real cosa,real phi)
+static void add2gkr(t_gkrbin *gb, real r, real cosa, real phi)
 {
-    int  cy,index = gmx_nint(r/gb->spacing);
+    int  cy, index = gmx_nint(r/gb->spacing);
     real alpha;
-  
-    if (index < gb->nelem) {
+
+    if (index < gb->nelem)
+    {
         gb->elem[index]  += cosa;
-        gb->count[index] ++;
+        gb->count[index]++;
     }
-    if (index < gb->nx) {
+    if (index < gb->nx)
+    {
         alpha = acos(cosa);
         if (gb->bPhi)
+        {
             cy = (M_PI+phi)*gb->ny/(2*M_PI);
+        }
         else
-            cy = (alpha*gb->ny)/M_PI;/*((1+cosa)*0.5*(gb->ny));*/
-        cy = min(gb->ny-1,max(0,cy));
+        {
+            cy = (alpha*gb->ny)/M_PI; /*((1+cosa)*0.5*(gb->ny));*/
+        }
+        cy = min(gb->ny-1, max(0, cy));
         if (debug)
-            fprintf(debug,"CY: %10f  %5d\n",alpha,cy);
+        {
+            fprintf(debug, "CY: %10f  %5d\n", alpha, cy);
+        }
         gb->cmap[index][cy] += 1;
     }
 }
 
-static void rvec2sprvec(rvec dipcart,rvec dipsp)
+static void rvec2sprvec(rvec dipcart, rvec dipsp)
 {
     clear_rvec(dipsp);
-    dipsp[0] = sqrt(dipcart[XX]*dipcart[XX]+dipcart[YY]*dipcart[YY]+dipcart[ZZ]*dipcart[ZZ]); /* R */ 
-    dipsp[1] = atan2(dipcart[YY],dipcart[XX]);  /* Theta */ 
-    dipsp[2] = atan2(sqrt(dipcart[XX]*dipcart[XX]+dipcart[YY]*dipcart[YY]),dipcart[ZZ]);       /* Phi */ 
+    dipsp[0] = sqrt(dipcart[XX]*dipcart[XX]+dipcart[YY]*dipcart[YY]+dipcart[ZZ]*dipcart[ZZ]); /* R */
+    dipsp[1] = atan2(dipcart[YY], dipcart[XX]);                                               /* Theta */
+    dipsp[2] = atan2(sqrt(dipcart[XX]*dipcart[XX]+dipcart[YY]*dipcart[YY]), dipcart[ZZ]);     /* Phi */
 }
 
 
 
-void do_gkr(t_gkrbin *gb,int ncos,int *ngrp,int *molindex[],
-            int mindex[],rvec x[],rvec mu[],
-            int ePBC,matrix box,t_atom *atom,int *nAtom)
+void do_gkr(t_gkrbin *gb, int ncos, int *ngrp, int *molindex[],
+            int mindex[], rvec x[], rvec mu[],
+            int ePBC, matrix box, t_atom *atom, int *nAtom)
 {
     static rvec *xcm[2] = { NULL, NULL};
-    int    gi,gj,j0,j1,i,j,k,n,index,grp0,grp1;
-    real   qtot,q,r2,cosa,rr,phi;
-    rvec   dx;
-    t_pbc  pbc;
-  
-    for(n=0; (n<ncos); n++) {
+    int          gi, gj, j0, j1, i, j, k, n, index, grp0, grp1;
+    real         qtot, q, r2, cosa, rr, phi;
+    rvec         dx;
+    t_pbc        pbc;
+
+    for (n = 0; (n < ncos); n++)
+    {
         if (!xcm[n])
-            snew(xcm[n],ngrp[n]);
-        for(i=0; (i<ngrp[n]); i++) {
+        {
+            snew(xcm[n], ngrp[n]);
+        }
+        for (i = 0; (i < ngrp[n]); i++)
+        {
             /* Calculate center of mass of molecule */
             gi = molindex[n][i];
             j0 = mindex[gi];
-      
+
             if (nAtom[n] > 0)
-                copy_rvec(x[j0+nAtom[n]-1],xcm[n][i]);
-            else {
+            {
+                copy_rvec(x[j0+nAtom[n]-1], xcm[n][i]);
+            }
+            else
+            {
                 j1 = mindex[gi+1];
                 clear_rvec(xcm[n][i]);
                 qtot = 0;
-                for(j=j0; j<j1; j++) {
-                    q = fabs(atom[j].q);
+                for (j = j0; j < j1; j++)
+                {
+                    q     = fabs(atom[j].q);
                     qtot += q;
-                    for(k=0; k<DIM; k++)
+                    for (k = 0; k < DIM; k++)
+                    {
                         xcm[n][i][k] += q*x[j][k];
+                    }
                 }
-                svmul(1/qtot,xcm[n][i],xcm[n][i]);
+                svmul(1/qtot, xcm[n][i], xcm[n][i]);
             }
         }
     }
-    set_pbc(&pbc,ePBC,box);
+    set_pbc(&pbc, ePBC, box);
     grp0 = 0;
     grp1 = ncos-1;
-    for(i=0; i<ngrp[grp0]; i++) {
+    for (i = 0; i < ngrp[grp0]; i++)
+    {
         gi = molindex[grp0][i];
         j0 = (ncos == 2) ? 0 : i+1;
-        for(j=j0; j<ngrp[grp1]; j++) {
+        for (j = j0; j < ngrp[grp1]; j++)
+        {
             gj   = molindex[grp1][j];
-            if ((iprod(mu[gi],mu[gi]) > 0) && (iprod(mu[gj],mu[gj]) > 0)) {
+            if ((iprod(mu[gi], mu[gi]) > 0) && (iprod(mu[gj], mu[gj]) > 0))
+            {
                 /* Compute distance between molecules including PBC */
-                pbc_dx(&pbc,xcm[grp0][i],xcm[grp1][j],dx);
+                pbc_dx(&pbc, xcm[grp0][i], xcm[grp1][j], dx);
                 rr = norm(dx);
-       
-                if (gb->bPhi) {
-                    rvec xi,xj,xk,xl;
-                    rvec r_ij,r_kj,r_kl,mm,nn;
+
+                if (gb->bPhi)
+                {
+                    rvec xi, xj, xk, xl;
+                    rvec r_ij, r_kj, r_kl, mm, nn;
                     real sign;
-                    int  t1,t2,t3;
-         
-                    copy_rvec(xcm[grp0][i],xj);
-                    copy_rvec(xcm[grp1][j],xk);
-                    rvec_add(xj,mu[gi],xi);
-                    rvec_add(xk,mu[gj],xl);
-                    phi = dih_angle(xi,xj,xk,xl,&pbc,
-                                    r_ij,r_kj,r_kl,mm,nn, /* out */
-                                    &sign,&t1,&t2,&t3);
+                    int  t1, t2, t3;
+
+                    copy_rvec(xcm[grp0][i], xj);
+                    copy_rvec(xcm[grp1][j], xk);
+                    rvec_add(xj, mu[gi], xi);
+                    rvec_add(xk, mu[gj], xl);
+                    phi = dih_angle(xi, xj, xk, xl, &pbc,
+                                    r_ij, r_kj, r_kl, mm, nn, /* out */
+                                    &sign, &t1, &t2, &t3);
                     cosa = cos(phi);
                 }
-                else {
-                    cosa = cos_angle(mu[gi],mu[gj]);
-                    phi = 0;
+                else
+                {
+                    cosa = cos_angle(mu[gi], mu[gj]);
+                    phi  = 0;
                 }
-                if (debug || (cosa != cosa))  {
+                if (debug || (cosa != cosa))
+                {
                     fprintf(debug ? debug : stderr,
                             "mu[%d] = %5.2f %5.2f %5.2f |mi| = %5.2f, mu[%d] = %5.2f %5.2f %5.2f |mj| = %5.2f rr = %5.2f cosa = %5.2f\n",
-                            gi,mu[gi][XX],mu[gi][YY],mu[gi][ZZ],norm(mu[gi]),
-                            gj,mu[gj][XX],mu[gj][YY],mu[gj][ZZ],norm(mu[gj]),
-                            rr,cosa);
+                            gi, mu[gi][XX], mu[gi][YY], mu[gi][ZZ], norm(mu[gi]),
+                            gj, mu[gj][XX], mu[gj][YY], mu[gj][ZZ], norm(mu[gj]),
+                            rr, cosa);
                 }
-       
-                add2gkr(gb,rr,cosa,phi);
+
+                add2gkr(gb, rr, cosa, phi);
             }
         }
     }
@@ -232,57 +265,68 @@ void do_gkr(t_gkrbin *gb,int ncos,int *ngrp,int *molindex[],
 
 static real normalize_cmap(t_gkrbin *gb)
 {
-    int    i,j;
-    double hi,vol;
-  
+    int    i, j;
+    double hi, vol;
+
     hi = 0;
-    for(i=0; (i<gb->nx); i++) {
+    for (i = 0; (i < gb->nx); i++)
+    {
         vol = 4*M_PI*sqr(gb->spacing*i)*gb->spacing;
-        for(j=0; (j<gb->ny); j++) {
+        for (j = 0; (j < gb->ny); j++)
+        {
             gb->cmap[i][j] /= vol;
-            hi = max(hi,gb->cmap[i][j]);
+            hi              = max(hi, gb->cmap[i][j]);
         }
     }
     if (hi <= 0)
-        gmx_fatal(FARGS,"No data in the cmap");
-    return hi;  
+    {
+        gmx_fatal(FARGS, "No data in the cmap");
+    }
+    return hi;
 }
 
-static void print_cmap(const char *cmap,t_gkrbin *gb,int *nlevels)
+static void print_cmap(const char *cmap, t_gkrbin *gb, int *nlevels)
 {
     FILE   *out;
-    int    i,j;
-    real   hi;
-  
-    real   *xaxis,*yaxis;
-    t_rgb  rlo = { 1, 1, 1 };
-    t_rgb  rhi = { 0, 0, 0 };
-  
+    int     i, j;
+    real    hi;
+
+    real   *xaxis, *yaxis;
+    t_rgb   rlo = { 1, 1, 1 };
+    t_rgb   rhi = { 0, 0, 0 };
+
     hi = normalize_cmap(gb);
-    snew(xaxis,gb->nx+1);
-    for(i=0; (i<gb->nx+1); i++)
+    snew(xaxis, gb->nx+1);
+    for (i = 0; (i < gb->nx+1); i++)
+    {
         xaxis[i] = i*gb->spacing;
-    snew(yaxis,gb->ny);
-    for(j=0; (j<gb->ny); j++) {
+    }
+    snew(yaxis, gb->ny);
+    for (j = 0; (j < gb->ny); j++)
+    {
         if (gb->bPhi)
+        {
             yaxis[j] = (360.0*j)/(gb->ny-1.0)-180;
+        }
         else
+        {
             yaxis[j] = (180.0*j)/(gb->ny-1.0);
+        }
         /*2.0*j/(gb->ny-1.0)-1.0;*/
     }
-    out = ffopen(cmap,"w");
-    write_xpm(out,0,
-              "Dipole Orientation Distribution","Fraction","r (nm)",
+    out = ffopen(cmap, "w");
+    write_xpm(out, 0,
+              "Dipole Orientation Distribution", "Fraction", "r (nm)",
               gb->bPhi ? "Phi" : "Alpha",
-              gb->nx,gb->ny,xaxis,yaxis,
-              gb->cmap,0,hi,rlo,rhi,nlevels);
+              gb->nx, gb->ny, xaxis, yaxis,
+              gb->cmap, 0, hi, rlo, rhi, nlevels);
     ffclose(out);
     sfree(xaxis);
     sfree(yaxis);
 }
 
-static void print_gkrbin(const char *fn,t_gkrbin *gb,
-                         int ngrp,int nframes,real volume,
+static void print_gkrbin(const char *fn, t_gkrbin *gb,
+                         int ngrp, int nframes, real volume,
                          const output_env_t oenv)
 {
     /* We compute Gk(r), gOO and hOO according to
@@ -291,26 +335,29 @@ static void print_gkrbin(const char *fn,t_gkrbin *gb,
      * rather than their inner product. This allows to take polarizible
      * models into account. The RDF is calculated as well, almost for free!
      */
-    FILE   *fp;
+    FILE       *fp;
     const char *leg[] = { "G\\sk\\N(r)", "< cos >", "h\\sOO\\N", "g\\sOO\\N", "Energy" };
-    int    i,j,n,last;
-    real   x0,x1,ggg,Gkr,vol_s,rho,gOO,hOO,cosav,ener;
-    double fac;
-    
-    fp=xvgropen(fn,"Distance dependent Gk","r (nm)","G\\sk\\N(r)",oenv);
-    xvgr_legend(fp,asize(leg),leg,oenv);
-  
+    int         i, j, n, last;
+    real        x0, x1, ggg, Gkr, vol_s, rho, gOO, hOO, cosav, ener;
+    double      fac;
+
+    fp = xvgropen(fn, "Distance dependent Gk", "r (nm)", "G\\sk\\N(r)", oenv);
+    xvgr_legend(fp, asize(leg), leg, oenv);
+
     Gkr = 1;  /* Self-dipole inproduct = 1 */
     rho = ngrp/volume;
-  
-    if (debug) {
-        fprintf(debug,"Number density is %g molecules / nm^3\n",rho);
-        fprintf(debug,"ngrp = %d, nframes = %d\n",ngrp,nframes);
+
+    if (debug)
+    {
+        fprintf(debug, "Number density is %g molecules / nm^3\n", rho);
+        fprintf(debug, "ngrp = %d, nframes = %d\n", ngrp, nframes);
     }
-  
+
     last = gb->nelem-1;
-    while(last>1 && gb->elem[last-1]==0)
+    while (last > 1 && gb->elem[last-1] == 0)
+    {
         last--;
+    }
 
     /* Divide by dipole squared, by number of frames, by number of origins.
      * Multiply by 2 because we only take half the matrix of interactions
@@ -319,16 +366,17 @@ static void print_gkrbin(const char *fn,t_gkrbin *gb,
     fac  = 2.0/((double) ngrp * (double) nframes);
 
     x0 = 0;
-    for(i=0; i<last; i++) {
+    for (i = 0; i < last; i++)
+    {
         /* Centre of the coordinate in the spherical layer */
         x1    = x0+gb->spacing;
-    
+
         /* Volume of the layer */
         vol_s = (4.0/3.0)*M_PI*(x1*x1*x1-x0*x0*x0);
-    
+
         /* gOO */
         gOO   = gb->count[i]*fac/(rho*vol_s);
-    
+
         /* Dipole correlation hOO, normalized by the relative number density, like
          * in a Radial distribution function.
          */
@@ -336,148 +384,193 @@ static void print_gkrbin(const char *fn,t_gkrbin *gb,
         hOO  = 3.0*ggg/(rho*vol_s);
         Gkr += ggg;
         if (gb->count[i])
+        {
             cosav = gb->elem[i]/gb->count[i];
+        }
         else
+        {
             cosav = 0;
+        }
         ener = -0.5*cosav*ONE_4PI_EPS0/(x1*x1*x1);
-    
-        fprintf(fp,"%10.5e %12.5e %12.5e %12.5e %12.5e  %12.5e\n",
-                x1,Gkr,cosav,hOO,gOO,ener);
-    
+
+        fprintf(fp, "%10.5e %12.5e %12.5e %12.5e %12.5e  %12.5e\n",
+                x1, Gkr, cosav, hOO, gOO, ener);
+
         /* Swap x0 and x1 */
         x0 = x1;
     }
     ffclose(fp);
 }
 
-gmx_bool read_mu_from_enx(ener_file_t fmu,int Vol,ivec iMu,rvec mu,real *vol,
-                          real *t, int nre,t_enxframe *fr)
+gmx_bool read_mu_from_enx(ener_file_t fmu, int Vol, ivec iMu, rvec mu, real *vol,
+                          real *t, int nre, t_enxframe *fr)
 {
-    int      i;
+    int          i;
     gmx_bool     bCont;
-    char     buf[22];
-
-    bCont = do_enx(fmu,fr);
-    if (fr->nre != nre) 
-        fprintf(stderr,"Something strange: expected %d entries in energy file at step %s\n(time %g) but found %d entries\n",
-                nre,gmx_step_str(fr->step,buf),fr->t,fr->nre);
-  
-    if (bCont) {
+    char         buf[22];
+
+    bCont = do_enx(fmu, fr);
+    if (fr->nre != nre)
+    {
+        fprintf(stderr, "Something strange: expected %d entries in energy file at step %s\n(time %g) but found %d entries\n",
+                nre, gmx_step_str(fr->step, buf), fr->t, fr->nre);
+    }
+
+    if (bCont)
+    {
         if (Vol != -1)          /* we've got Volume in the energy file */
+        {
             *vol = fr->ener[Vol].e;
-        for (i=0; i<DIM; i++)
+        }
+        for (i = 0; i < DIM; i++)
+        {
             mu[i] = fr->ener[iMu[i]].e;
+        }
         *t = fr->t;
     }
-  
+
     return bCont;
 }
 
-static void neutralize_mols(int n,int *index,t_block *mols,t_atom *atom)
+static void neutralize_mols(int n, int *index, t_block *mols, t_atom *atom)
 {
-    double mtot,qtot;
-    int  ncharged,m,a0,a1,a;
+    double mtot, qtot;
+    int    ncharged, m, a0, a1, a;
 
     ncharged = 0;
-    for(m=0; m<n; m++) {
-        a0 = mols->index[index[m]];
-        a1 = mols->index[index[m]+1];
+    for (m = 0; m < n; m++)
+    {
+        a0   = mols->index[index[m]];
+        a1   = mols->index[index[m]+1];
         mtot = 0;
         qtot = 0;
-        for(a=a0; a<a1; a++) {
+        for (a = a0; a < a1; a++)
+        {
             mtot += atom[a].m;
             qtot += atom[a].q;
         }
         /* This check is only for the count print */
         if (fabs(qtot) > 0.01)
+        {
             ncharged++;
-        if (mtot > 0) {
+        }
+        if (mtot > 0)
+        {
             /* Remove the net charge at the center of mass */
-            for(a=a0; a<a1; a++)
+            for (a = a0; a < a1; a++)
+            {
                 atom[a].q -= qtot*atom[a].m/mtot;
+            }
         }
     }
 
     if (ncharged)
+    {
         printf("There are %d charged molecules in the selection,\n"
-               "will subtract their charge at their center of mass\n",ncharged);
+               "will subtract their charge at their center of mass\n", ncharged);
+    }
 }
 
-static void mol_dip(int k0,int k1,rvec x[],t_atom atom[],rvec mu)
+static void mol_dip(int k0, int k1, rvec x[], t_atom atom[], rvec mu)
 {
-    int  k,m;
+    int  k, m;
     real q;
-  
+
     clear_rvec(mu);
-    for(k=k0; (k<k1); k++) {
+    for (k = k0; (k < k1); k++)
+    {
         q  = e2d(atom[k].q);
-        for(m=0; (m<DIM); m++) 
+        for (m = 0; (m < DIM); m++)
+        {
             mu[m] += q*x[k][m];
+        }
     }
 }
 
-static void mol_quad(int k0,int k1,rvec x[],t_atom atom[],rvec quad)
+static void mol_quad(int k0, int k1, rvec x[], t_atom atom[], rvec quad)
 {
-    int    i,k,m,n,niter;
-    real   q,r2,mass,masstot;
-    rvec   com;          /* center of mass */
-    rvec   r;            /* distance of atoms to center of mass */
-    real   rcom_m,rcom_n;
+    int      i, k, m, n, niter;
+    real     q, r2, mass, masstot;
+    rvec     com;        /* center of mass */
+    rvec     r;          /* distance of atoms to center of mass */
+    real     rcom_m, rcom_n;
     double **inten;
-    double dd[DIM],**ev,tmp;
+    double   dd[DIM], **ev, tmp;
 
-    snew(inten,DIM);
-    snew(ev,DIM);
-    for(i=0; (i<DIM); i++) {
-        snew(inten[i],DIM);
-        snew(ev[i],DIM);
-        dd[i]=0.0;
+    snew(inten, DIM);
+    snew(ev, DIM);
+    for (i = 0; (i < DIM); i++)
+    {
+        snew(inten[i], DIM);
+        snew(ev[i], DIM);
+        dd[i] = 0.0;
     }
 
     /* Compute center of mass */
     clear_rvec(com);
     masstot = 0.0;
-    for(k=k0; (k<k1); k++) {
+    for (k = k0; (k < k1); k++)
+    {
         mass     = atom[k].m;
         masstot += mass;
-        for(i=0; (i<DIM); i++)
+        for (i = 0; (i < DIM); i++)
+        {
             com[i] += mass*x[k][i];
+        }
     }
-    svmul((1.0/masstot),com,com);
+    svmul((1.0/masstot), com, com);
 
     /* We want traceless quadrupole moments, so let us calculate the complete
      * quadrupole moment tensor and diagonalize this tensor to get
      * the individual components on the diagonal.
      */
 
-#define delta(a,b) (( a == b ) ? 1.0 : 0.0)
+#define delta(a, b) (( a == b ) ? 1.0 : 0.0)
 
-    for(m=0; (m<DIM); m++) 
-        for(n=0; (n<DIM); n++)
+    for (m = 0; (m < DIM); m++)
+    {
+        for (n = 0; (n < DIM); n++)
+        {
             inten[m][n] = 0;
-    for(k=k0; (k<k1); k++) {       /* loop over atoms in a molecule */
+        }
+    }
+    for (k = k0; (k < k1); k++)         /* loop over atoms in a molecule */
+    {
         q  = (atom[k].q)*100.0;
-        rvec_sub(x[k],com,r);
-        r2 = iprod(r,r);
-        for(m=0; (m<DIM); m++)
-            for(n=0; (n<DIM); n++)
-                inten[m][n] += 0.5*q*(3.0*r[m]*r[n] - r2*delta(m,n))*EANG2CM*CM2D;
+        rvec_sub(x[k], com, r);
+        r2 = iprod(r, r);
+        for (m = 0; (m < DIM); m++)
+        {
+            for (n = 0; (n < DIM); n++)
+            {
+                inten[m][n] += 0.5*q*(3.0*r[m]*r[n] - r2*delta(m, n))*EANG2CM*CM2D;
+            }
+        }
     }
     if (debug)
-        for(i=0; (i<DIM); i++) 
-            fprintf(debug,"Q[%d] = %8.3f  %8.3f  %8.3f\n",
-                    i,inten[i][XX],inten[i][YY],inten[i][ZZ]);
-  
+    {
+        for (i = 0; (i < DIM); i++)
+        {
+            fprintf(debug, "Q[%d] = %8.3f  %8.3f  %8.3f\n",
+                    i, inten[i][XX], inten[i][YY], inten[i][ZZ]);
+        }
+    }
+
     /* We've got the quadrupole tensor, now diagonalize the sucker */
-    jacobi(inten,3,dd,ev,&niter);
+    jacobi(inten, 3, dd, ev, &niter);
 
-    if (debug) {
-        for(i=0; (i<DIM); i++) 
-            fprintf(debug,"ev[%d] = %8.3f  %8.3f  %8.3f\n",
-                    i,ev[i][XX],ev[i][YY],ev[i][ZZ]);
-        for(i=0; (i<DIM); i++) 
-            fprintf(debug,"Q'[%d] = %8.3f  %8.3f  %8.3f\n",
-                    i,inten[i][XX],inten[i][YY],inten[i][ZZ]);
+    if (debug)
+    {
+        for (i = 0; (i < DIM); i++)
+        {
+            fprintf(debug, "ev[%d] = %8.3f  %8.3f  %8.3f\n",
+                    i, ev[i][XX], ev[i][YY], ev[i][ZZ]);
+        }
+        for (i = 0; (i < DIM); i++)
+        {
+            fprintf(debug, "Q'[%d] = %8.3f  %8.3f  %8.3f\n",
+                    i, inten[i][XX], inten[i][YY], inten[i][ZZ]);
+        }
     }
     /* Sort the eigenvalues, for water we know that the order is as follows:
      *
@@ -488,25 +581,29 @@ static void mol_quad(int k0,int k1,rvec x[],t_atom atom[],rvec quad)
 
 #define SWAP(i)                                 \
     if (dd[i+1] > dd[i]) {                      \
-        tmp=dd[i];                              \
-        dd[i]=dd[i+1];                          \
-        dd[i+1]=tmp;                            \
+        tmp     = dd[i];                              \
+        dd[i]   = dd[i+1];                          \
+        dd[i+1] = tmp;                            \
     }
     SWAP(0);
     SWAP(1);
     SWAP(0);
 
-    for(m=0; (m<DIM); m++) {
-        quad[0]=dd[2];  /* yy */
-        quad[1]=dd[0];  /* zz */
-        quad[2]=dd[1];  /* xx */
+    for (m = 0; (m < DIM); m++)
+    {
+        quad[0] = dd[2];  /* yy */
+        quad[1] = dd[0];  /* zz */
+        quad[2] = dd[1];  /* xx */
     }
 
     if (debug)
-        pr_rvec(debug,0,"Quadrupole",quad,DIM,TRUE);
+    {
+        pr_rvec(debug, 0, "Quadrupole", quad, DIM, TRUE);
+    }
 
     /* clean-up */
-    for(i=0; (i<DIM); i++) {
+    for (i = 0; (i < DIM); i++)
+    {
         sfree(inten[i]);
         sfree(ev[i]);
     }
@@ -516,19 +613,22 @@ static void mol_quad(int k0,int k1,rvec x[],t_atom atom[],rvec quad)
 
 /*
  * Calculates epsilon according to M. Neumann, Mol. Phys. 50, 841 (1983)
- */ 
-real calc_eps(double M_diff,double volume,double epsRF,double temp)
+ */
+real calc_eps(double M_diff, double volume, double epsRF, double temp)
 {
-    double eps,A,teller,noemer;
-    double eps_0=8.854187817e-12;     /* epsilon_0 in C^2 J^-1 m^-1 */
-    double fac=1.112650021e-59;       /* converts Debye^2 to C^2 m^2 */
+    double eps, A, teller, noemer;
+    double eps_0 = 8.854187817e-12;   /* epsilon_0 in C^2 J^-1 m^-1 */
+    double fac   = 1.112650021e-59;   /* converts Debye^2 to C^2 m^2 */
 
     A = M_diff*fac/(3*eps_0*volume*NANO*NANO*NANO*BOLTZMANN*temp);
-    if (epsRF == 0.0) {
+
+    if (epsRF == 0.0)
+    {
         teller = 1 + A;
-        noemer = 1; 
-    } else { 
+        noemer = 1;
+    }
+    else
+    {
         teller = 1 + (A*2*epsRF/(2*epsRF+1));
         noemer = 1 - (A/(2*epsRF+1));
     }
@@ -537,42 +637,45 @@ real calc_eps(double M_diff,double volume,double epsRF,double temp)
     return eps;
 }
 
-static void update_slab_dipoles(int k0,int k1,rvec x[],rvec mu,
-                                int idim,int nslice,rvec slab_dipole[],
+static void update_slab_dipoles(int k0, int k1, rvec x[], rvec mu,
+                                int idim, int nslice, rvec slab_dipole[],
                                 matrix box)
 {
-    int k;
-    real xdim=0;
-  
-    for(k=k0; (k<k1); k++) 
+    int  k;
+    real xdim = 0;
+
+    for (k = k0; (k < k1); k++)
+    {
         xdim += x[k][idim];
+    }
     xdim /= (k1-k0);
-    k = ((int)(xdim*nslice/box[idim][idim] + nslice)) % nslice;
-    rvec_inc(slab_dipole[k],mu);
+    k     = ((int)(xdim*nslice/box[idim][idim] + nslice)) % nslice;
+    rvec_inc(slab_dipole[k], mu);
 }
 
-static void dump_slab_dipoles(const char *fn,int idim,int nslice,
-                              rvec slab_dipole[], matrix box,int nframes,
+static void dump_slab_dipoles(const char *fn, int idim, int nslice,
+                              rvec slab_dipole[], matrix box, int nframes,
                               const output_env_t oenv)
 {
-    FILE *fp;
-    char buf[STRLEN];
-    int  i;
-    real mutot;
-    const char *leg_dim[4] = { 
+    FILE       *fp;
+    char        buf[STRLEN];
+    int         i;
+    real        mutot;
+    const char *leg_dim[4] = {
         "\\f{12}m\\f{4}\\sX\\N",
         "\\f{12}m\\f{4}\\sY\\N",
         "\\f{12}m\\f{4}\\sZ\\N",
         "\\f{12}m\\f{4}\\stot\\N"
     };
-  
-    sprintf(buf,"Box-%c (nm)",'X'+idim);
-    fp = xvgropen(fn,"Average dipole moment per slab",buf,"\\f{12}m\\f{4} (D)",
+
+    sprintf(buf, "Box-%c (nm)", 'X'+idim);
+    fp = xvgropen(fn, "Average dipole moment per slab", buf, "\\f{12}m\\f{4} (D)",
                   oenv);
-    xvgr_legend(fp,DIM,leg_dim,oenv); 
-    for(i=0; (i<nslice); i++) {
+    xvgr_legend(fp, DIM, leg_dim, oenv);
+    for (i = 0; (i < nslice); i++)
+    {
         mutot = norm(slab_dipole[i])/nframes;
-        fprintf(fp,"%10.3f  %10.3f  %10.3f  %10.3f  %10.3f\n",
+        fprintf(fp, "%10.3f  %10.3f  %10.3f  %10.3f  %10.3f\n",
                 ((i+0.5)*box[idim][idim])/nslice,
                 slab_dipole[i][XX]/nframes,
                 slab_dipole[i][YY]/nframes,
@@ -580,44 +683,46 @@ static void dump_slab_dipoles(const char *fn,int idim,int nslice,
                 mutot);
     }
     ffclose(fp);
-    do_view(oenv,fn,"-autoscale xy -nxy");
+    do_view(oenv, fn, "-autoscale xy -nxy");
 }
-                           
-static void compute_avercos(int n,rvec dip[],real *dd,rvec axis,gmx_bool bPairs)
+
+static void compute_avercos(int n, rvec dip[], real *dd, rvec axis, gmx_bool bPairs)
 {
-    int    i,j,k;
-    double dc,dc1,d,n5,ddc1,ddc2,ddc3;
+    int    i, j, k;
+    double dc, dc1, d, n5, ddc1, ddc2, ddc3;
     rvec   xxx = { 1, 0, 0 };
     rvec   yyy = { 0, 1, 0 };
     rvec   zzz = { 0, 0, 1 };
-  
-    d=0;
+
+    d    = 0;
     ddc1 = ddc2 = ddc3 = 0;
-    for(i=k=0; (i<n); i++) 
+    for (i = k = 0; (i < n); i++)
     {
-        ddc1 += fabs(cos_angle(dip[i],xxx));
-        ddc2 += fabs(cos_angle(dip[i],yyy));
-        ddc3 += fabs(cos_angle(dip[i],zzz));
-        if (bPairs) 
-            for(j=i+1; (j<n); j++,k++) 
+        ddc1 += fabs(cos_angle(dip[i], xxx));
+        ddc2 += fabs(cos_angle(dip[i], yyy));
+        ddc3 += fabs(cos_angle(dip[i], zzz));
+        if (bPairs)
+        {
+            for (j = i+1; (j < n); j++, k++)
             {
-                dc  = cos_angle(dip[i],dip[j]);
+                dc  = cos_angle(dip[i], dip[j]);
                 d  += fabs(dc);
             }
+        }
     }
-    *dd  = d/k;
+    *dd      = d/k;
     axis[XX] = ddc1/n;
     axis[YY] = ddc2/n;
     axis[ZZ] = ddc3/n;
 }
 
-static void do_dip(t_topology *top,int ePBC,real volume,
+static void do_dip(t_topology *top, int ePBC, real volume,
                    const char *fn,
-                   const char *out_mtot,const char *out_eps,
+                   const char *out_mtot, const char *out_eps,
                    const char *out_aver, const char *dipdist,
                    const char *cosaver, const char *fndip3d,
                    const char *fnadip,  gmx_bool bPairs,
-                   const char *corrtype,const char *corf,
+                   const char *corrtype, const char *corf,
                    gmx_bool bGkr,     const char *gkrfn,
                    gmx_bool bPhi,     int  *nlevels,  int ndegrees,
                    int  ncos,
@@ -626,27 +731,27 @@ static void do_dip(t_topology *top,int ePBC,real volume,
                    gmx_bool bMU,      const char *mufn,
                    int  *gnx,     int  *molindex[],
                    real mu_max,   real mu_aver,
-                   real epsilonRF,real temp,
+                   real epsilonRF, real temp,
                    int  *gkatom,  int skip,
                    gmx_bool bSlab,    int nslices,
                    const char *axtitle, const char *slabfn,
                    const output_env_t oenv)
 {
-    const char *leg_mtot[] = { 
-        "M\\sx \\N", 
+    const char *leg_mtot[] = {
+        "M\\sx \\N",
         "M\\sy \\N",
         "M\\sz \\N",
         "|M\\stot \\N|"
     };
 #define NLEGMTOT asize(leg_mtot)
-    const char *leg_eps[] = { 
+    const char *leg_eps[] = {
         "epsilon",
         "G\\sk",
         "g\\sk"
     };
 #define NLEGEPS asize(leg_eps)
-    const char *leg_aver[] = { 
-        "< |M|\\S2\\N >", 
+    const char *leg_aver[] = {
+        "< |M|\\S2\\N >",
         "< |M| >\\S2\\N",
         "< |M|\\S2\\N > - < |M| >\\S2\\N",
         "< |M| >\\S2\\N / < |M|\\S2\\N >"
@@ -667,83 +772,97 @@ static void do_dip(t_topology *top,int ePBC,real volume,
     };
 #define NLEGADIP asize(leg_adip)
 
-    FILE       *outdd,*outmtot,*outaver,*outeps,*caver=NULL;
-    FILE       *dip3d=NULL,*adip=NULL;
-    rvec       *x,*dipole=NULL,mu_t,quad,*dipsp=NULL;
-    t_gkrbin   *gkrbin = NULL;
-    gmx_enxnm_t *enm=NULL;
-    t_enxframe *fr;
-    int        nframes=1000,nre,timecheck=0,ncolour=0;
-    ener_file_t fmu=NULL;
-    int        i,j,k,n,m,natom=0,nmol,gnx_tot,teller,tel3;
-    t_trxstatus *status;
-    int        *dipole_bin,ndipbin,ibin,iVol,step,idim=-1;
+    FILE         *outdd, *outmtot, *outaver, *outeps, *caver = NULL;
+    FILE         *dip3d = NULL, *adip = NULL;
+    rvec         *x, *dipole = NULL, mu_t, quad, *dipsp = NULL;
+    t_gkrbin     *gkrbin = NULL;
+    gmx_enxnm_t  *enm    = NULL;
+    t_enxframe   *fr;
+    int           nframes = 1000, nre, timecheck = 0, ncolour = 0;
+    ener_file_t   fmu     = NULL;
+    int           i, j, k, n, m, natom = 0, nmol, gnx_tot, teller, tel3;
+    t_trxstatus  *status;
+    int          *dipole_bin, ndipbin, ibin, iVol, step, idim = -1;
     unsigned long mode;
-    char       buf[STRLEN];
-    real       rcut=0,t,t0,t1,dt,lambda,dd,rms_cos;
-    rvec       dipaxis;
-    matrix     box;
-    gmx_bool   bCorr,bTotal,bCont;
-    double     M_diff=0,epsilon,invtel,vol_aver;
-    double     mu_ave,mu_mol,M2_ave=0,M_ave2=0,M_av[DIM],M_av2[DIM];
-    double     M[3],M2[3],M4[3],Gk=0,g_k=0;
-    gmx_stats_t Mx,My,Mz,Msq,Vol,*Qlsq,mulsq,muframelsq=NULL;
-    ivec       iMu;
-    real       **muall=NULL;
-    rvec       *slab_dipoles=NULL;
-    t_atom     *atom=NULL;
-    t_block    *mols=NULL;
-    gmx_rmpbc_t gpbc=NULL;
+    char          buf[STRLEN];
+    real          rcut = 0, t, t0, t1, dt, lambda, dd, rms_cos;
+    rvec          dipaxis;
+    matrix        box;
+    gmx_bool      bCorr, bTotal, bCont;
+    double        M_diff = 0, epsilon, invtel, vol_aver;
+    double        mu_ave, mu_mol, M2_ave = 0, M_ave2 = 0, M_av[DIM], M_av2[DIM];
+    double        M[3], M2[3], M4[3], Gk = 0, g_k = 0;
+    gmx_stats_t   Mx, My, Mz, Msq, Vol, *Qlsq, mulsq, muframelsq = NULL;
+    ivec          iMu;
+    real        **muall        = NULL;
+    rvec         *slab_dipoles = NULL;
+    t_atom       *atom         = NULL;
+    t_block      *mols         = NULL;
+    gmx_rmpbc_t   gpbc         = NULL;
 
     gnx_tot = gnx[0];
-    if (ncos > 1) {
+    if (ncos > 1)
+    {
         gnx_tot += gnx[1];
     }
 
     vol_aver = 0.0;
-      
-    iVol=-1;
-    if (bMU) 
+
+    iVol = -1;
+    if (bMU)
     {
-        fmu = open_enx(mufn,"r");
-        do_enxnms(fmu,&nre,&enm);
+        fmu = open_enx(mufn, "r");
+        do_enxnms(fmu, &nre, &enm);
 
         /* Determine the indexes of the energy grps we need */
-        for (i=0; (i<nre); i++) {
-            if (strstr(enm[i].name,"Volume"))
-                iVol=i;
-            else if (strstr(enm[i].name,"Mu-X"))
-                iMu[XX]=i;
-            else if (strstr(enm[i].name,"Mu-Y"))
-                iMu[YY]=i;
-            else if (strstr(enm[i].name,"Mu-Z"))
-                iMu[ZZ]=i;
+        for (i = 0; (i < nre); i++)
+        {
+            if (strstr(enm[i].name, "Volume"))
+            {
+                iVol = i;
+            }
+            else if (strstr(enm[i].name, "Mu-X"))
+            {
+                iMu[XX] = i;
+            }
+            else if (strstr(enm[i].name, "Mu-Y"))
+            {
+                iMu[YY] = i;
+            }
+            else if (strstr(enm[i].name, "Mu-Z"))
+            {
+                iMu[ZZ] = i;
+            }
         }
     }
-    else 
+    else
     {
         atom = top->atoms.atom;
         mols = &(top->mols);
     }
-  
+
     if ((iVol == -1) && bMU)
-        printf("Using Volume from topology: %g nm^3\n",volume);
+    {
+        printf("Using Volume from topology: %g nm^3\n", volume);
+    }
 
-    /* Correlation stuff */ 
+    /* Correlation stuff */
     bCorr  = (corrtype[0] != 'n');
     bTotal = (corrtype[0] == 't');
-    if (bCorr) 
+    if (bCorr)
     {
-        if (bTotal) 
+        if (bTotal)
         {
-            snew(muall,1);
-            snew(muall[0],nframes*DIM);
+            snew(muall, 1);
+            snew(muall[0], nframes*DIM);
         }
-        else 
+        else
         {
-            snew(muall,gnx[0]);
-            for(i=0; (i<gnx[0]); i++)
-                snew(muall[i],nframes*DIM);
+            snew(muall, gnx[0]);
+            for (i = 0; (i < gnx[0]); i++)
+            {
+                snew(muall[i], nframes*DIM);
+            }
         }
     }
 
@@ -751,314 +870,367 @@ static void do_dip(t_topology *top,int ePBC,real volume,
      * dipole moment.
      */
     if (!bMU)
-        snew(dipole,gnx_tot);
+    {
+        snew(dipole, gnx_tot);
+    }
 
     /* Statistics */
-    snew(Qlsq,DIM);
-    for(i=0; (i<DIM); i++) 
+    snew(Qlsq, DIM);
+    for (i = 0; (i < DIM); i++)
+    {
         Qlsq[i] = gmx_stats_init();
+    }
     mulsq = gmx_stats_init();
-  
+
     /* Open all the files */
     outmtot = xvgropen(out_mtot,
                        "Total dipole moment of the simulation box vs. time",
-                       "Time (ps)","Total Dipole Moment (Debye)",oenv);
-    outeps  = xvgropen(out_eps,"Epsilon and Kirkwood factors",
-                       "Time (ps)","",oenv);
-    outaver = xvgropen(out_aver,"Total dipole moment",
-                       "Time (ps)","D",oenv);
-    if (bSlab) 
+                       "Time (ps)", "Total Dipole Moment (Debye)", oenv);
+    outeps  = xvgropen(out_eps, "Epsilon and Kirkwood factors",
+                       "Time (ps)", "", oenv);
+    outaver = xvgropen(out_aver, "Total dipole moment",
+                       "Time (ps)", "D", oenv);
+    if (bSlab)
     {
         idim = axtitle[0] - 'X';
         if ((idim < 0) || (idim >= DIM))
+        {
             idim = axtitle[0] - 'x';
+        }
         if ((idim < 0) || (idim >= DIM))
+        {
             bSlab = FALSE;
+        }
         if (nslices < 2)
+        {
             bSlab = FALSE;
-        fprintf(stderr,"axtitle = %s, nslices = %d, idim = %d\n",
-                axtitle,nslices,idim);
-        if (bSlab) 
+        }
+        fprintf(stderr, "axtitle = %s, nslices = %d, idim = %d\n",
+                axtitle, nslices, idim);
+        if (bSlab)
         {
-            snew(slab_dipoles,nslices);
-            fprintf(stderr,"Doing slab analysis\n");
+            snew(slab_dipoles, nslices);
+            fprintf(stderr, "Doing slab analysis\n");
         }
     }
-  
-    if (fnadip) 
+
+    if (fnadip)
     {
-        adip = xvgropen(fnadip, "Average molecular dipole","Dipole (D)","",oenv);
-        xvgr_legend(adip,NLEGADIP,leg_adip, oenv);
-  
+        adip = xvgropen(fnadip, "Average molecular dipole", "Dipole (D)", "", oenv);
+        xvgr_legend(adip, NLEGADIP, leg_adip, oenv);
+
     }
-    if (cosaver) 
+    if (cosaver)
     {
-        caver = xvgropen(cosaver,bPairs ? "Average pair orientation" :
-                         "Average absolute dipole orientation","Time (ps)","",oenv);
-        xvgr_legend(caver,NLEGCOSAVER,bPairs ? leg_cosaver : &(leg_cosaver[1]),
+        caver = xvgropen(cosaver, bPairs ? "Average pair orientation" :
+                         "Average absolute dipole orientation", "Time (ps)", "", oenv);
+        xvgr_legend(caver, NLEGCOSAVER, bPairs ? leg_cosaver : &(leg_cosaver[1]),
                     oenv);
     }
-    
-    if (fndip3d) 
+
+    if (fndip3d)
     {
-        snew(dipsp,gnx_tot);
-  
+        snew(dipsp, gnx_tot);
+
         /* we need a dummy file for gnuplot */
-        dip3d = (FILE *)ffopen("dummy.dat","w");
-        fprintf(dip3d,"%f %f %f", 0.0,0.0,0.0);
+        dip3d = (FILE *)ffopen("dummy.dat", "w");
+        fprintf(dip3d, "%f %f %f", 0.0, 0.0, 0.0);
         ffclose(dip3d);
 
-        dip3d = (FILE *)ffopen(fndip3d,"w");
-        fprintf(dip3d,"# This file was created by %s\n",Program());
-        fprintf(dip3d,"# which is part of G R O M A C S:\n");
-        fprintf(dip3d,"#\n");
+        dip3d = (FILE *)ffopen(fndip3d, "w");
+        fprintf(dip3d, "# This file was created by %s\n", Program());
+        fprintf(dip3d, "# which is part of G R O M A C S:\n");
+        fprintf(dip3d, "#\n");
     }
-  
+
     /* Write legends to all the files */
-    xvgr_legend(outmtot,NLEGMTOT,leg_mtot,oenv);
-    xvgr_legend(outaver,NLEGAVER,leg_aver,oenv);
-  
+    xvgr_legend(outmtot, NLEGMTOT, leg_mtot, oenv);
+    xvgr_legend(outaver, NLEGAVER, leg_aver, oenv);
+
     if (bMU && (mu_aver == -1))
-        xvgr_legend(outeps,NLEGEPS-2,leg_eps,oenv);
+    {
+        xvgr_legend(outeps, NLEGEPS-2, leg_eps, oenv);
+    }
     else
-        xvgr_legend(outeps,NLEGEPS,leg_eps,oenv);
-    
-    snew(fr,1);
+    {
+        xvgr_legend(outeps, NLEGEPS, leg_eps, oenv);
+    }
+
+    snew(fr, 1);
     clear_rvec(mu_t);
     teller = 0;
     /* Read the first frame from energy or traj file */
     if (bMU)
-        do 
+    {
+        do
         {
-            bCont = read_mu_from_enx(fmu,iVol,iMu,mu_t,&volume,&t,nre,fr);
-            if (bCont) 
-            {  
-                timecheck=check_times(t);
+            bCont = read_mu_from_enx(fmu, iVol, iMu, mu_t, &volume, &t, nre, fr);
+            if (bCont)
+            {
+                timecheck = check_times(t);
                 if (timecheck < 0)
+                {
                     teller++;
+                }
                 if ((teller % 10) == 0)
-                    fprintf(stderr,"\r Skipping Frame %6d, time: %8.3f", teller, t);
+                {
+                    fprintf(stderr, "\r Skipping Frame %6d, time: %8.3f", teller, t);
+                }
             }
-            else 
+            else
             {
-                printf("End of %s reached\n",mufn);
+                printf("End of %s reached\n", mufn);
                 break;
             }
-        } while (bCont && (timecheck < 0));
+        }
+        while (bCont && (timecheck < 0));
+    }
     else
-        natom  = read_first_x(oenv,&status,fn,&t,&x,box);
-  
+    {
+        natom  = read_first_x(oenv, &status, fn, &t, &x, box);
+    }
+
     /* Calculate spacing for dipole bin (simple histogram) */
     ndipbin = 1+(mu_max/0.01);
     snew(dipole_bin, ndipbin);
     epsilon    = 0.0;
     mu_ave     = 0.0;
-    for(m=0; (m<DIM); m++) 
+    for (m = 0; (m < DIM); m++)
     {
         M[m] = M2[m] = M4[m] = 0.0;
     }
-  
-    if (bGkr) 
+
+    if (bGkr)
     {
         /* Use 0.7 iso 0.5 to account for pressure scaling */
         /*  rcut   = 0.7*sqrt(max_cutoff2(box)); */
         rcut   = 0.7*sqrt(sqr(box[XX][XX])+sqr(box[YY][YY])+sqr(box[ZZ][ZZ]));
 
-        gkrbin = mk_gkrbin(rcut,rcmax,bPhi,ndegrees); 
+        gkrbin = mk_gkrbin(rcut, rcmax, bPhi, ndegrees);
     }
-    gpbc = gmx_rmpbc_init(&top->idef,ePBC,natom,box);
+    gpbc = gmx_rmpbc_init(&top->idef, ePBC, natom, box);
 
     /* Start while loop over frames */
-    t1 = t0 = t;
+    t1     = t0 = t;
     teller = 0;
-    do 
+    do
     {
-        if (bCorr && (teller >= nframes)) 
+        if (bCorr && (teller >= nframes))
         {
             nframes += 1000;
-            if (bTotal) 
+            if (bTotal)
             {
-                srenew(muall[0],nframes*DIM);
+                srenew(muall[0], nframes*DIM);
             }
-            else 
+            else
             {
-                for(i=0; (i<gnx_tot); i++)
-                    srenew(muall[i],nframes*DIM);
+                for (i = 0; (i < gnx_tot); i++)
+                {
+                    srenew(muall[i], nframes*DIM);
+                }
             }
         }
         t1 = t;
 
         muframelsq = gmx_stats_init();
-    
+
         /* Initialise */
-        for(m=0; (m<DIM); m++) 
+        for (m = 0; (m < DIM); m++)
+        {
             M_av2[m] = 0;
-            
-        if (bMU) 
+        }
+
+        if (bMU)
         {
             /* Copy rvec into double precision local variable */
-            for(m=0; (m<DIM); m++)
+            for (m = 0; (m < DIM); m++)
+            {
                 M_av[m]  = mu_t[m];
+            }
         }
-        else 
+        else
         {
             /* Initialise */
-            for(m=0; (m<DIM); m++) 
+            for (m = 0; (m < DIM); m++)
+            {
                 M_av[m] = 0;
-                
-            gmx_rmpbc(gpbc,natom,box,x);
-      
+            }
+
+            gmx_rmpbc(gpbc, natom, box, x);
+
             /* Begin loop of all molecules in frame */
-            for(n=0; (n<ncos); n++) 
+            for (n = 0; (n < ncos); n++)
             {
-                for(i=0; (i<gnx[n]); i++) 
+                for (i = 0; (i < gnx[n]); i++)
                 {
-                    int gi,ind0,ind1;
-         
+                    int gi, ind0, ind1;
+
                     ind0  = mols->index[molindex[n][i]];
                     ind1  = mols->index[molindex[n][i]+1];
-         
-                    mol_dip(ind0,ind1,x,atom,dipole[i]);
-                    gmx_stats_add_point(mulsq,0,norm(dipole[i]),0,0);
-                    gmx_stats_add_point(muframelsq,0,norm(dipole[i]),0,0);
-                    if (bSlab) 
-                        update_slab_dipoles(ind0,ind1,x,
-                                            dipole[i],idim,nslices,slab_dipoles,box);
-                    if (bQuad) 
+
+                    mol_dip(ind0, ind1, x, atom, dipole[i]);
+                    gmx_stats_add_point(mulsq, 0, norm(dipole[i]), 0, 0);
+                    gmx_stats_add_point(muframelsq, 0, norm(dipole[i]), 0, 0);
+                    if (bSlab)
                     {
-                        mol_quad(ind0,ind1,x,atom,quad);
-                        for(m=0; (m<DIM); m++)
-                            gmx_stats_add_point(Qlsq[m],0,quad[m],0,0);
+                        update_slab_dipoles(ind0, ind1, x,
+                                            dipole[i], idim, nslices, slab_dipoles, box);
                     }
-                    if (bCorr && !bTotal) 
+                    if (bQuad)
                     {
-                        tel3=DIM*teller;
+                        mol_quad(ind0, ind1, x, atom, quad);
+                        for (m = 0; (m < DIM); m++)
+                        {
+                            gmx_stats_add_point(Qlsq[m], 0, quad[m], 0, 0);
+                        }
+                    }
+                    if (bCorr && !bTotal)
+                    {
+                        tel3              = DIM*teller;
                         muall[i][tel3+XX] = dipole[i][XX];
                         muall[i][tel3+YY] = dipole[i][YY];
                         muall[i][tel3+ZZ] = dipole[i][ZZ];
                     }
                     mu_mol = 0.0;
-                    for(m=0; (m<DIM); m++) 
+                    for (m = 0; (m < DIM); m++)
                     {
                         M_av[m]  += dipole[i][m];               /* M per frame */
                         mu_mol   += dipole[i][m]*dipole[i][m];  /* calc. mu for distribution */
                     }
                     mu_mol = sqrt(mu_mol);
-         
+
                     mu_ave += mu_mol;                         /* calc. the average mu */
-         
+
                     /* Update the dipole distribution */
                     ibin = (int)(ndipbin*mu_mol/mu_max + 0.5);
                     if (ibin < ndipbin)
+                    {
                         dipole_bin[ibin]++;
-         
-                    if (fndip3d) 
+                    }
+
+                    if (fndip3d)
                     {
-                        rvec2sprvec(dipole[i],dipsp[i]);
-           
-                        if (dipsp[i][YY] > -M_PI && dipsp[i][YY] < -0.5*M_PI) {
-                            if (dipsp[i][ZZ] < 0.5 * M_PI) 
+                        rvec2sprvec(dipole[i], dipsp[i]);
+
+                        if (dipsp[i][YY] > -M_PI && dipsp[i][YY] < -0.5*M_PI)
+                        {
+                            if (dipsp[i][ZZ] < 0.5 * M_PI)
                             {
                                 ncolour = 1;
-                            } 
-                            else 
+                            }
+                            else
                             {
                                 ncolour = 2;
                             }
                         }
-                        else if (dipsp[i][YY] > -0.5*M_PI && dipsp[i][YY] < 0.0*M_PI) 
+                        else if (dipsp[i][YY] > -0.5*M_PI && dipsp[i][YY] < 0.0*M_PI)
                         {
-                            if (dipsp[i][ZZ] < 0.5 * M_PI) 
+                            if (dipsp[i][ZZ] < 0.5 * M_PI)
                             {
                                 ncolour = 3;
-                            } 
-                            else 
+                            }
+                            else
                             {
                                 ncolour = 4;
-                            }       
-                        }else if (dipsp[i][YY] > 0.0 && dipsp[i][YY] < 0.5*M_PI) {
-                            if (dipsp[i][ZZ] < 0.5 * M_PI) {
+                            }
+                        }
+                        else if (dipsp[i][YY] > 0.0 && dipsp[i][YY] < 0.5*M_PI)
+                        {
+                            if (dipsp[i][ZZ] < 0.5 * M_PI)
+                            {
                                 ncolour = 5;
-                            } else {
+                            }
+                            else
+                            {
                                 ncolour = 6;
-                            }      
+                            }
                         }
-                        else if (dipsp[i][YY] > 0.5*M_PI && dipsp[i][YY] < M_PI) 
+                        else if (dipsp[i][YY] > 0.5*M_PI && dipsp[i][YY] < M_PI)
                         {
-                            if (dipsp[i][ZZ] < 0.5 * M_PI) 
+                            if (dipsp[i][ZZ] < 0.5 * M_PI)
                             {
                                 ncolour = 7;
-                            } 
-                            else 
+                            }
+                            else
                             {
                                 ncolour = 8;
                             }
                         }
                         if (dip3d)
-                            fprintf(dip3d,"set arrow %d from %f, %f, %f to %f, %f, %f lt %d  # %d %d\n", 
+                        {
+                            fprintf(dip3d, "set arrow %d from %f, %f, %f to %f, %f, %f lt %d  # %d %d\n",
                                     i+1,
                                     x[ind0][XX],
                                     x[ind0][YY],
                                     x[ind0][ZZ],
-                                    x[ind0][XX]+dipole[i][XX]/25, 
-                                    x[ind0][YY]+dipole[i][YY]/25, 
-                                    x[ind0][ZZ]+dipole[i][ZZ]/25, 
+                                    x[ind0][XX]+dipole[i][XX]/25,
+                                    x[ind0][YY]+dipole[i][YY]/25,
+                                    x[ind0][ZZ]+dipole[i][ZZ]/25,
                                     ncolour, ind0, i);
+                        }
                     }
                 } /* End loop of all molecules in frame */
-       
-                if (dip3d) 
+
+                if (dip3d)
                 {
-                    fprintf(dip3d,"set title \"t = %4.3f\"\n",t);
-                    fprintf(dip3d,"set xrange [0.0:%4.2f]\n",box[XX][XX]);
-                    fprintf(dip3d,"set yrange [0.0:%4.2f]\n",box[YY][YY]);
-                    fprintf(dip3d,"set zrange [0.0:%4.2f]\n\n",box[ZZ][ZZ]);
-                    fprintf(dip3d,"splot 'dummy.dat' using 1:2:3 w vec\n");
-                    fprintf(dip3d,"pause -1 'Hit return to continue'\n");
+                    fprintf(dip3d, "set title \"t = %4.3f\"\n", t);
+                    fprintf(dip3d, "set xrange [0.0:%4.2f]\n", box[XX][XX]);
+                    fprintf(dip3d, "set yrange [0.0:%4.2f]\n", box[YY][YY]);
+                    fprintf(dip3d, "set zrange [0.0:%4.2f]\n\n", box[ZZ][ZZ]);
+                    fprintf(dip3d, "splot 'dummy.dat' using 1:2:3 w vec\n");
+                    fprintf(dip3d, "pause -1 'Hit return to continue'\n");
                 }
             }
         }
         /* Compute square of total dipole */
-        for(m=0; (m<DIM); m++)
+        for (m = 0; (m < DIM); m++)
+        {
             M_av2[m] = M_av[m]*M_av[m];
-    
-        if (cosaver) 
+        }
+
+        if (cosaver)
         {
-            compute_avercos(gnx_tot,dipole,&dd,dipaxis,bPairs);
+            compute_avercos(gnx_tot, dipole, &dd, dipaxis, bPairs);
             rms_cos = sqrt(sqr(dipaxis[XX]-0.5)+
                            sqr(dipaxis[YY]-0.5)+
                            sqr(dipaxis[ZZ]-0.5));
-            if (bPairs) 
-                fprintf(caver,"%10.3e  %10.3e  %10.3e  %10.3e  %10.3e  %10.3e\n",
-                        t,dd,rms_cos,dipaxis[XX],dipaxis[YY],dipaxis[ZZ]);
+            if (bPairs)
+            {
+                fprintf(caver, "%10.3e  %10.3e  %10.3e  %10.3e  %10.3e  %10.3e\n",
+                        t, dd, rms_cos, dipaxis[XX], dipaxis[YY], dipaxis[ZZ]);
+            }
             else
-                fprintf(caver,"%10.3e  %10.3e  %10.3e  %10.3e  %10.3e\n",
-                        t,rms_cos,dipaxis[XX],dipaxis[YY],dipaxis[ZZ]);
+            {
+                fprintf(caver, "%10.3e  %10.3e  %10.3e  %10.3e  %10.3e\n",
+                        t, rms_cos, dipaxis[XX], dipaxis[YY], dipaxis[ZZ]);
+            }
         }
-    
-        if (bGkr) 
+
+        if (bGkr)
         {
-            do_gkr(gkrbin,ncos,gnx,molindex,mols->index,x,dipole,ePBC,box,
-                   atom,gkatom);
+            do_gkr(gkrbin, ncos, gnx, molindex, mols->index, x, dipole, ePBC, box,
+                   atom, gkatom);
         }
-    
-        if (bTotal) 
+
+        if (bTotal)
         {
-            tel3 = DIM*teller;
+            tel3              = DIM*teller;
             muall[0][tel3+XX] = M_av[XX];
             muall[0][tel3+YY] = M_av[YY];
             muall[0][tel3+ZZ] = M_av[ZZ];
         }
 
-        /* Write to file the total dipole moment of the box, and its components 
+        /* Write to file the total dipole moment of the box, and its components
          * for this frame.
          */
         if ((skip == 0) || ((teller % skip) == 0))
-            fprintf(outmtot,"%10g  %12.8e %12.8e %12.8e %12.8e\n",
-                    t,M_av[XX],M_av[YY],M_av[ZZ],
+        {
+            fprintf(outmtot, "%10g  %12.8e %12.8e %12.8e %12.8e\n",
+                    t, M_av[XX], M_av[YY], M_av[ZZ],
                     sqrt(M_av2[XX]+M_av2[YY]+M_av2[ZZ]));
+        }
 
-        for(m=0; (m<DIM); m++) 
+        for (m = 0; (m < DIM); m++)
         {
             M[m]  += M_av[m];
             M2[m] += M_av2[m];
@@ -1066,7 +1238,7 @@ static void do_dip(t_topology *top,int ePBC,real volume,
         }
         /* Increment loop counter */
         teller++;
-    
+
         /* Calculate for output the running averages */
         invtel  = 1.0/teller;
         M2_ave  = (M2[XX]+M2[YY]+M2[ZZ])*invtel;
@@ -1075,133 +1247,168 @@ static void do_dip(t_topology *top,int ePBC,real volume,
 
         /* Compute volume from box in traj, else we use the one from above */
         if (!bMU)
+        {
             volume  = det(box);
+        }
         vol_aver += volume;
-    
-        epsilon = calc_eps(M_diff,(vol_aver/teller),epsilonRF,temp);
+
+        epsilon = calc_eps(M_diff, (vol_aver/teller), epsilonRF, temp);
 
         /* Calculate running average for dipole */
-        if (mu_ave != 0) 
+        if (mu_ave != 0)
+        {
             mu_aver = (mu_ave/gnx_tot)*invtel;
-    
-        if ((skip == 0) || ((teller % skip) == 0)) 
+        }
+
+        if ((skip == 0) || ((teller % skip) == 0))
         {
-            /* Write to file < |M|^2 >, |< M >|^2. And the difference between 
+            /* Write to file < |M|^2 >, |< M >|^2. And the difference between
              * the two. Here M is sum mu_i. Further write the finite system
              * Kirkwood G factor and epsilon.
              */
-            fprintf(outaver,"%10g  %10.3e %10.3e %10.3e %10.3e\n",
-                    t,M2_ave,M_ave2,M_diff,M_ave2/M2_ave);
-      
-            if (fnadip) 
+            fprintf(outaver, "%10g  %10.3e %10.3e %10.3e %10.3e\n",
+                    t, M2_ave, M_ave2, M_diff, M_ave2/M2_ave);
+
+            if (fnadip)
             {
                 real aver;
-                gmx_stats_get_average(muframelsq,&aver);
-                fprintf(adip, "%10g %f \n", t,aver);
+                gmx_stats_get_average(muframelsq, &aver);
+                fprintf(adip, "%10g %f \n", t, aver);
             }
             /*if (dipole)
-              printf("%f %f\n", norm(dipole[0]), norm(dipole[1]));
-            */      
-            if (!bMU || (mu_aver != -1)) 
+               printf("%f %f\n", norm(dipole[0]), norm(dipole[1]));
+             */
+            if (!bMU || (mu_aver != -1))
             {
                 /* Finite system Kirkwood G-factor */
                 Gk = M_diff/(gnx_tot*mu_aver*mu_aver);
                 /* Infinite system Kirkwood G-factor */
-                if (epsilonRF == 0.0) 
+                if (epsilonRF == 0.0)
+                {
                     g_k = ((2*epsilon+1)*Gk/(3*epsilon));
-                else 
+                }
+                else
+                {
                     g_k = ((2*epsilonRF+epsilon)*(2*epsilon+1)*
                            Gk/(3*epsilon*(2*epsilonRF+1)));
-       
-                fprintf(outeps,"%10g  %10.3e %10.3e %10.3e\n",t,epsilon,Gk,g_k);
+                }
+
+                fprintf(outeps, "%10g  %10.3e %10.3e %10.3e\n", t, epsilon, Gk, g_k);
 
             }
-            else 
-                fprintf(outeps,"%10g  %12.8e\n",t,epsilon);
+            else
+            {
+                fprintf(outeps, "%10g  %12.8e\n", t, epsilon);
+            }
         }
         gmx_stats_done(muframelsq);
-    
+
         if (bMU)
-            bCont = read_mu_from_enx(fmu,iVol,iMu,mu_t,&volume,&t,nre,fr); 
+        {
+            bCont = read_mu_from_enx(fmu, iVol, iMu, mu_t, &volume, &t, nre, fr);
+        }
         else
-            bCont = read_next_x(oenv,status,&t,natom,x,box);
-        timecheck=check_times(t);
-    } while (bCont && (timecheck == 0) );
-  
+        {
+            bCont = read_next_x(oenv, status, &t, natom, x, box);
+        }
+        timecheck = check_times(t);
+    }
+    while (bCont && (timecheck == 0) );
+
     gmx_rmpbc_done(gpbc);
 
     if (!bMU)
+    {
         close_trj(status);
-    
+    }
+
     ffclose(outmtot);
     ffclose(outaver);
     ffclose(outeps);
 
     if (fnadip)
+    {
         ffclose(adip);
+    }
 
     if (cosaver)
+    {
         ffclose(caver);
+    }
 
-    if (dip3d) {
-        fprintf(dip3d,"set xrange [0.0:%4.2f]\n",box[XX][XX]);
-        fprintf(dip3d,"set yrange [0.0:%4.2f]\n",box[YY][YY]);
-        fprintf(dip3d,"set zrange [0.0:%4.2f]\n\n",box[ZZ][ZZ]);
-        fprintf(dip3d,"splot 'dummy.dat' using 1:2:3 w vec\n");
-        fprintf(dip3d,"pause -1 'Hit return to continue'\n");
+    if (dip3d)
+    {
+        fprintf(dip3d, "set xrange [0.0:%4.2f]\n", box[XX][XX]);
+        fprintf(dip3d, "set yrange [0.0:%4.2f]\n", box[YY][YY]);
+        fprintf(dip3d, "set zrange [0.0:%4.2f]\n\n", box[ZZ][ZZ]);
+        fprintf(dip3d, "splot 'dummy.dat' using 1:2:3 w vec\n");
+        fprintf(dip3d, "pause -1 'Hit return to continue'\n");
         ffclose(dip3d);
     }
 
-    if (bSlab) {
-        dump_slab_dipoles(slabfn,idim,nslices,slab_dipoles,box,teller,oenv);
+    if (bSlab)
+    {
+        dump_slab_dipoles(slabfn, idim, nslices, slab_dipoles, box, teller, oenv);
         sfree(slab_dipoles);
     }
-  
+
     vol_aver /= teller;
-    printf("Average volume over run is %g\n",vol_aver);
-    if (bGkr) {
-        print_gkrbin(gkrfn,gkrbin,gnx[0],teller,vol_aver,oenv);
-        print_cmap(cmap,gkrbin,nlevels);
-    }
-    /* Autocorrelation function */  
-    if (bCorr) {
-        if (teller < 2) {
+    printf("Average volume over run is %g\n", vol_aver);
+    if (bGkr)
+    {
+        print_gkrbin(gkrfn, gkrbin, gnx[0], teller, vol_aver, oenv);
+        print_cmap(cmap, gkrbin, nlevels);
+    }
+    /* Autocorrelation function */
+    if (bCorr)
+    {
+        if (teller < 2)
+        {
             printf("Not enough frames for autocorrelation\n");
         }
-        else {
-            dt=(t1 - t0)/(teller-1);
-            printf("t0 %g, t %g, teller %d\n", t0,t,teller);
-      
+        else
+        {
+            dt = (t1 - t0)/(teller-1);
+            printf("t0 %g, t %g, teller %d\n", t0, t, teller);
+
             mode = eacVector;
 
             if (bTotal)
-                do_autocorr(corf,oenv,"Autocorrelation Function of Total Dipole",
-                            teller,1,muall,dt,mode,TRUE);
+            {
+                do_autocorr(corf, oenv, "Autocorrelation Function of Total Dipole",
+                            teller, 1, muall, dt, mode, TRUE);
+            }
             else
-                do_autocorr(corf,oenv,"Dipole Autocorrelation Function",
-                            teller,gnx_tot,muall,dt,
-                            mode,strcmp(corrtype,"molsep"));
+            {
+                do_autocorr(corf, oenv, "Dipole Autocorrelation Function",
+                            teller, gnx_tot, muall, dt,
+                            mode, strcmp(corrtype, "molsep"));
+            }
         }
     }
-    if (!bMU) {
-        real aver,sigma,error,lsq;
+    if (!bMU)
+    {
+        real aver, sigma, error, lsq;
 
-        gmx_stats_get_ase(mulsq,&aver,&sigma,&error);
+        gmx_stats_get_ase(mulsq, &aver, &sigma, &error);
         printf("\nDipole moment (Debye)\n");
         printf("---------------------\n");
         printf("Average  = %8.4f  Std. Dev. = %8.4f  Error = %8.4f\n",
-               aver,sigma,error);
-        if (bQuad) {
-            rvec a,s,e;
-            int mm;
-            for(m=0; (m<DIM); m++)
-                gmx_stats_get_ase(mulsq,&(a[m]),&(s[m]),&(e[m]));
-    
+               aver, sigma, error);
+        if (bQuad)
+        {
+            rvec a, s, e;
+            int  mm;
+            for (m = 0; (m < DIM); m++)
+            {
+                gmx_stats_get_ase(mulsq, &(a[m]), &(s[m]), &(e[m]));
+            }
+
             printf("\nQuadrupole moment (Debye-Ang)\n");
             printf("-----------------------------\n");
-            printf("Averages  = %8.4f  %8.4f  %8.4f\n",a[XX],a[YY],a[ZZ]);
-            printf("Std. Dev. = %8.4f  %8.4f  %8.4f\n",s[XX],s[YY],s[ZZ]);
-            printf("Error     = %8.4f  %8.4f  %8.4f\n",e[XX],e[YY],e[ZZ]);
+            printf("Averages  = %8.4f  %8.4f  %8.4f\n", a[XX], a[YY], a[ZZ]);
+            printf("Std. Dev. = %8.4f  %8.4f  %8.4f\n", s[XX], s[YY], s[ZZ]);
+            printf("Error     = %8.4f  %8.4f  %8.4f\n", e[XX], e[YY], e[ZZ]);
         }
         printf("\n");
     }
@@ -1218,54 +1425,68 @@ static void do_dip(t_topology *top,int ePBC,real volume,
     printf(" Total |< M >|^2 = %g Debye^2\n\n", M_ave2);
 
     printf(" < |M|^2 > - |< M >|^2 = %g Debye^2\n\n", M_diff);
-  
-    if (!bMU || (mu_aver != -1)) {
+
+    if (!bMU || (mu_aver != -1))
+    {
         printf("Finite system Kirkwood g factor G_k = %g\n", Gk);
         printf("Infinite system Kirkwood g factor g_k = %g\n\n", g_k);
     }
     printf("Epsilon = %g\n", epsilon);
 
-    if (!bMU) {
+    if (!bMU)
+    {
         /* Write to file the dipole moment distibution during the simulation.
          */
-        outdd=xvgropen(dipdist,"Dipole Moment Distribution","mu (Debye)","",oenv);
-        for(i=0; (i<ndipbin); i++)
-            fprintf(outdd,"%10g  %10f\n",
-                    (i*mu_max)/ndipbin,dipole_bin[i]/(double)teller);
+        outdd = xvgropen(dipdist, "Dipole Moment Distribution", "mu (Debye)", "", oenv);
+        for (i = 0; (i < ndipbin); i++)
+        {
+            fprintf(outdd, "%10g  %10f\n",
+                    (i*mu_max)/ndipbin, dipole_bin[i]/(double)teller);
+        }
         ffclose(outdd);
         sfree(dipole_bin);
     }
-    if (bGkr) 
+    if (bGkr)
+    {
         done_gkrbin(&gkrbin);
+    }
 }
 
-void dipole_atom2molindex(int *n,int *index,t_block *mols)
+void dipole_atom2molindex(int *n, int *index, t_block *mols)
 {
-    int nmol,i,j,m;
+    int nmol, i, j, m;
 
     nmol = 0;
-    i=0;
-    while (i < *n) {
-        m=0;
-        while(m < mols->nr && index[i] != mols->index[m])
+    i    = 0;
+    while (i < *n)
+    {
+        m = 0;
+        while (m < mols->nr && index[i] != mols->index[m])
+        {
             m++;
+        }
         if (m == mols->nr)
-            gmx_fatal(FARGS,"index[%d]=%d does not correspond to the first atom of a molecule",i+1,index[i]+1);
-        for(j=mols->index[m]; j<mols->index[m+1]; j++) {
+        {
+            gmx_fatal(FARGS, "index[%d]=%d does not correspond to the first atom of a molecule", i+1, index[i]+1);
+        }
+        for (j = mols->index[m]; j < mols->index[m+1]; j++)
+        {
             if (i >= *n || index[i] != j)
-                gmx_fatal(FARGS,"The index group is not a set of whole molecules");
+            {
+                gmx_fatal(FARGS, "The index group is not a set of whole molecules");
+            }
             i++;
         }
         /* Modify the index in place */
         index[nmol++] = m;
     }
-    printf("There are %d molecules in the selection\n",nmol);
+    printf("There are %d molecules in the selection\n", nmol);
 
     *n = nmol;
 }
-int gmx_dipoles(int argc,char *argv[])
+int gmx_dipoles(int argc, char *argv[])
 {
-    const char *desc[] = {
+    const char    *desc[] = {
         "[TT]g_dipoles[tt] computes the total dipole plus fluctuations of a simulation",
         "system. From this you can compute e.g. the dielectric constant for",
         "low-dielectric media.",
@@ -1302,21 +1523,21 @@ int gmx_dipoles(int argc,char *argv[])
         "an average dipole moment of the molecule of 2.273 (SPC). For the",
         "distribution function a maximum of 5.0 will be used."
     };
-    real mu_max=5, mu_aver=-1,rcmax=0;
-    real epsilonRF=0.0, temp=300;
-    gmx_bool bAverCorr=FALSE,bMolCorr=FALSE,bPairs=TRUE,bPhi=FALSE;
-    const char *corrtype[]={NULL, "none", "mol", "molsep", "total", NULL};
-    const char *axtitle="Z";
-    int  nslices = 10;      /* nr of slices defined       */
-    int  skip=0,nFA=0,nFB=0,ncos=1;
-    int  nlevels=20,ndegrees=90;
-    output_env_t oenv;
-    t_pargs pa[] = {
+    real           mu_max     = 5, mu_aver = -1, rcmax = 0;
+    real           epsilonRF  = 0.0, temp = 300;
+    gmx_bool       bAverCorr  = FALSE, bMolCorr = FALSE, bPairs = TRUE, bPhi = FALSE;
+    const char    *corrtype[] = {NULL, "none", "mol", "molsep", "total", NULL};
+    const char    *axtitle    = "Z";
+    int            nslices    = 10; /* nr of slices defined       */
+    int            skip       = 0, nFA = 0, nFB = 0, ncos = 1;
+    int            nlevels    = 20, ndegrees = 90;
+    output_env_t   oenv;
+    t_pargs        pa[] = {
         { "-mu",       FALSE, etREAL, {&mu_aver},
           "dipole of a single molecule (in Debye)" },
         { "-mumax",    FALSE, etREAL, {&mu_max},
           "max dipole in Debye (for histogram)" },
-        { "-epsilonRF",FALSE, etREAL, {&epsilonRF},
+        { "-epsilonRF", FALSE, etREAL, {&epsilonRF},
           "[GRK]epsilon[grk] of the reaction field used during the simulation, needed for dielectric constant calculation. WARNING: 0.0 means infinity (default)" },
         { "-skip",     FALSE, etINT, {&skip},
           "Skip steps in the output (but not in the computations)" },
@@ -1328,7 +1549,7 @@ int gmx_dipoles(int argc,char *argv[])
           "Calculate [MAG][COS][GRK]theta[grk][cos][mag] between all pairs of molecules. May be slow" },
         { "-ncos",     FALSE, etINT, {&ncos},
           "Must be 1 or 2. Determines whether the [CHEVRON][COS][GRK]theta[grk][cos][chevron] is computed between all molecules in one group, or between molecules in two different groups. This turns on the [TT]-g[tt] flag." },
-        { "-axis",     FALSE, etSTR, {&axtitle}, 
+        { "-axis",     FALSE, etSTR, {&axtitle},
           "Take the normal on the computational box in direction X, Y or Z." },
         { "-sl",       FALSE, etINT, {&nslices},
           "Divide the box into this number of slices." },
@@ -1345,12 +1566,12 @@ int gmx_dipoles(int argc,char *argv[])
         { "-ndegrees", FALSE, etINT, {&ndegrees},
           "Number of divisions on the [IT]y[it]-axis in the cmap output (for 180 degrees)" }
     };
-    int          *gnx;
-    int          nFF[2];
+    int           *gnx;
+    int            nFF[2];
     atom_id      **grpindex;
-    char         **grpname=NULL;
-    gmx_bool     bCorr,bQuad,bGkr,bMU,bSlab;  
-    t_filenm fnm[] = {
+    char         **grpname = NULL;
+    gmx_bool       bCorr, bQuad, bGkr, bMU, bSlab;
+    t_filenm       fnm[] = {
         { efEDR, "-en", NULL,         ffOPTRD },
         { efTRX, "-f", NULL,           ffREAD },
         { efTPX, NULL, NULL,           ffREAD },
@@ -1361,98 +1582,110 @@ int gmx_dipoles(int argc,char *argv[])
         { efXVG, "-d",   "dipdist",    ffWRITE },
         { efXVG, "-c",   "dipcorr",    ffOPTWR },
         { efXVG, "-g",   "gkr",        ffOPTWR },
-        { efXVG, "-adip","adip",       ffOPTWR },
+        { efXVG, "-adip", "adip",       ffOPTWR },
         { efXVG, "-dip3d", "dip3d",    ffOPTWR },
         { efXVG, "-cos", "cosaver",    ffOPTWR },
-        { efXPM, "-cmap","cmap",       ffOPTWR },
+        { efXPM, "-cmap", "cmap",       ffOPTWR },
         { efXVG, "-q",   "quadrupole", ffOPTWR },
-        { efXVG, "-slab","slab",       ffOPTWR }
+        { efXVG, "-slab", "slab",       ffOPTWR }
     };
 #define NFILE asize(fnm)
-    int     npargs;
-    t_pargs *ppa;
-    t_topology *top;
-    int     ePBC;
-    int     k,natoms;
-    matrix  box;
-  
+    int            npargs;
+    t_pargs       *ppa;
+    t_topology    *top;
+    int            ePBC;
+    int            k, natoms;
+    matrix         box;
+
     npargs = asize(pa);
-    ppa    = add_acf_pargs(&npargs,pa);
-    parse_common_args(&argc,argv,PCA_CAN_TIME | PCA_CAN_VIEW | PCA_BE_NICE,
-                      NFILE,fnm,npargs,ppa,asize(desc),desc,0,NULL,&oenv);
+    ppa    = add_acf_pargs(&npargs, pa);
+    parse_common_args(&argc, argv, PCA_CAN_TIME | PCA_CAN_VIEW | PCA_BE_NICE,
+                      NFILE, fnm, npargs, ppa, asize(desc), desc, 0, NULL, &oenv);
 
-    printf("Using %g as mu_max and %g as the dipole moment.\n", 
-           mu_max,mu_aver);
+    printf("Using %g as mu_max and %g as the dipole moment.\n",
+           mu_max, mu_aver);
     if (epsilonRF == 0.0)
+    {
         printf("WARNING: EpsilonRF = 0.0, this really means EpsilonRF = infinity\n");
+    }
 
-    bMU   = opt2bSet("-en",NFILE,fnm);
+    bMU   = opt2bSet("-en", NFILE, fnm);
     if (bMU)
-        gmx_fatal(FARGS,"Due to new ways of treating molecules in GROMACS the total dipole in the energy file may be incorrect, because molecules can be split over periodic boundary conditions before computing the dipole. Please use your trajectory file.");
-    bQuad = opt2bSet("-q",NFILE,fnm);
-    bGkr  = opt2bSet("-g",NFILE,fnm);
-    if (opt2parg_bSet("-ncos",asize(pa),pa)) {
-        if ((ncos != 1) && (ncos != 2)) 
-            gmx_fatal(FARGS,"ncos has to be either 1 or 2");
+    {
+        gmx_fatal(FARGS, "Due to new ways of treating molecules in GROMACS the total dipole in the energy file may be incorrect, because molecules can be split over periodic boundary conditions before computing the dipole. Please use your trajectory file.");
+    }
+    bQuad = opt2bSet("-q", NFILE, fnm);
+    bGkr  = opt2bSet("-g", NFILE, fnm);
+    if (opt2parg_bSet("-ncos", asize(pa), pa))
+    {
+        if ((ncos != 1) && (ncos != 2))
+        {
+            gmx_fatal(FARGS, "ncos has to be either 1 or 2");
+        }
         bGkr = TRUE;
     }
-    bSlab = (opt2bSet("-slab",NFILE,fnm) || opt2parg_bSet("-sl",asize(pa),pa) ||
-             opt2parg_bSet("-axis",asize(pa),pa));
-    if (bMU) {
+    bSlab = (opt2bSet("-slab", NFILE, fnm) || opt2parg_bSet("-sl", asize(pa), pa) ||
+             opt2parg_bSet("-axis", asize(pa), pa));
+    if (bMU)
+    {
         bAverCorr = TRUE;
-        if (bQuad) {
+        if (bQuad)
+        {
             printf("WARNING: Can not determine quadrupoles from energy file\n");
             bQuad = FALSE;
         }
-        if (bGkr) {
+        if (bGkr)
+        {
             printf("WARNING: Can not determine Gk(r) from energy file\n");
             bGkr  = FALSE;
-            ncos = 1;
+            ncos  = 1;
         }
-        if (mu_aver == -1) 
+        if (mu_aver == -1)
+        {
             printf("WARNING: Can not calculate Gk and gk, since you did\n"
                    "         not enter a valid dipole for the molecules\n");
+        }
     }
 
-    snew(top,1);
-    ePBC = read_tpx_top(ftp2fn(efTPX,NFILE,fnm),NULL,box,
-                        &natoms,NULL,NULL,NULL,top);
-  
-    snew(gnx,ncos);
-    snew(grpname,ncos);
-    snew(grpindex,ncos);
-    get_index(&top->atoms,ftp2fn_null(efNDX,NFILE,fnm),
-              ncos,gnx,grpindex,grpname);
-    for(k=0; (k<ncos); k++) 
+    snew(top, 1);
+    ePBC = read_tpx_top(ftp2fn(efTPX, NFILE, fnm), NULL, box,
+                        &natoms, NULL, NULL, NULL, top);
+
+    snew(gnx, ncos);
+    snew(grpname, ncos);
+    snew(grpindex, ncos);
+    get_index(&top->atoms, ftp2fn_null(efNDX, NFILE, fnm),
+              ncos, gnx, grpindex, grpname);
+    for (k = 0; (k < ncos); k++)
     {
-        dipole_atom2molindex(&gnx[k],grpindex[k],&(top->mols));
-        neutralize_mols(gnx[k],grpindex[k],&(top->mols),top->atoms.atom);
+        dipole_atom2molindex(&gnx[k], grpindex[k], &(top->mols));
+        neutralize_mols(gnx[k], grpindex[k], &(top->mols), top->atoms.atom);
     }
     nFF[0] = nFA;
     nFF[1] = nFB;
-    do_dip(top,ePBC,det(box),ftp2fn(efTRX,NFILE,fnm),
-           opt2fn("-o",NFILE,fnm),opt2fn("-eps",NFILE,fnm),
-           opt2fn("-a",NFILE,fnm),opt2fn("-d",NFILE,fnm),
-           opt2fn_null("-cos",NFILE,fnm),
-           opt2fn_null("-dip3d",NFILE,fnm),opt2fn_null("-adip",NFILE,fnm),
-           bPairs,corrtype[0],
-           opt2fn("-c",NFILE,fnm),
-           bGkr,    opt2fn("-g",NFILE,fnm),
+    do_dip(top, ePBC, det(box), ftp2fn(efTRX, NFILE, fnm),
+           opt2fn("-o", NFILE, fnm), opt2fn("-eps", NFILE, fnm),
+           opt2fn("-a", NFILE, fnm), opt2fn("-d", NFILE, fnm),
+           opt2fn_null("-cos", NFILE, fnm),
+           opt2fn_null("-dip3d", NFILE, fnm), opt2fn_null("-adip", NFILE, fnm),
+           bPairs, corrtype[0],
+           opt2fn("-c", NFILE, fnm),
+           bGkr,    opt2fn("-g", NFILE, fnm),
            bPhi,    &nlevels,  ndegrees,
            ncos,
-           opt2fn("-cmap",NFILE,fnm),rcmax,
-           bQuad,   opt2fn("-q",NFILE,fnm),
-           bMU,     opt2fn("-en",NFILE,fnm),
-           gnx,grpindex,mu_max,mu_aver,epsilonRF,temp,nFF,skip,
-           bSlab,nslices,axtitle,opt2fn("-slab",NFILE,fnm),oenv);
-  
-    do_view(oenv,opt2fn("-o",NFILE,fnm),"-autoscale xy -nxy");
-    do_view(oenv,opt2fn("-eps",NFILE,fnm),"-autoscale xy -nxy");
-    do_view(oenv,opt2fn("-a",NFILE,fnm),"-autoscale xy -nxy");
-    do_view(oenv,opt2fn("-d",NFILE,fnm),"-autoscale xy");
-    do_view(oenv,opt2fn("-c",NFILE,fnm),"-autoscale xy");
+           opt2fn("-cmap", NFILE, fnm), rcmax,
+           bQuad,   opt2fn("-q", NFILE, fnm),
+           bMU,     opt2fn("-en", NFILE, fnm),
+           gnx, grpindex, mu_max, mu_aver, epsilonRF, temp, nFF, skip,
+           bSlab, nslices, axtitle, opt2fn("-slab", NFILE, fnm), oenv);
+
+    do_view(oenv, opt2fn("-o", NFILE, fnm), "-autoscale xy -nxy");
+    do_view(oenv, opt2fn("-eps", NFILE, fnm), "-autoscale xy -nxy");
+    do_view(oenv, opt2fn("-a", NFILE, fnm), "-autoscale xy -nxy");
+    do_view(oenv, opt2fn("-d", NFILE, fnm), "-autoscale xy");
+    do_view(oenv, opt2fn("-c", NFILE, fnm), "-autoscale xy");
 
     thanx(stderr);
-  
+
     return 0;
 }