Merge "Minimal support for Clang" into release-4-5-patches
authorDavid van der Spoel <davidvanderspoel@gmail.com>
Thu, 8 Mar 2012 07:28:30 +0000 (08:28 +0100)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Thu, 8 Mar 2012 07:28:30 +0000 (08:28 +0100)
src/kernel/md_openmm.c
src/tools/gmx_anaeig.c

index bbc9d1d2dbcdc8803b5527d6e4798b775f3f3eb6..8adad4d4458fb941f5ca1c3e933a937ff207bd22 100644 (file)
@@ -300,7 +300,6 @@ double do_md_openmm(FILE *fplog,t_commrec *cr,int nfile,const t_filenm fnm[],
     if (MASTER(cr))
     {
         char tbuf[20];
-        fprintf(fplog,"Initial temperature: %g K\n",enerd->term[F_TEMP]);
         fprintf(stderr,"starting mdrun '%s'\n",
                 *(top_global->name));
         if (ir->nsteps >= 0)
index 81627fc1cc2ca5db4eb189aa2995427ecdbe36bc..811812f17d92186942480d32f35392bd32907ef4 100644 (file)
@@ -408,7 +408,8 @@ static void project(const char *trajfile,t_topology *top,int ePBC,matrix topbox,
   int     nat,i,j,d,v,vec,nfr,nframes=0,snew_size,frame;
   t_trxstatus *out=NULL;
   t_trxstatus *status;
-  int     noutvec_extr,*imin,*imax;
+  int     noutvec_extr,imin,imax;
+  real    *pmin,*pmax;
   atom_id *all_at;
   matrix  box;
   rvec    *xread,*x;
@@ -615,29 +616,31 @@ static void project(const char *trajfile,t_topology *top,int ePBC,matrix topbox,
   }
   
   if (extremefile) {
+    snew(pmin,noutvec_extr);
+    snew(pmax,noutvec_extr);
     if (extreme==0) {
       fprintf(stderr,"%11s %17s %17s\n","eigenvector","Minimum","Maximum");
       fprintf(stderr,
-             "%11s %10s %10s %10s %10s\n","","value","time","value","time");
-      snew(imin,noutvec_extr);
-      snew(imax,noutvec_extr);
+             "%11s %10s %10s %10s %10s\n","","value","frame","value","frame");
+      imin = 0;
+      imax = 0;
       for(v=0; v<noutvec_extr; v++) {
        for(i=0; i<nframes; i++) {
-         if (inprod[v][i]<inprod[v][imin[v]])
-           imin[v]=i;
-         if (inprod[v][i]>inprod[v][imax[v]])
-           imax[v]=i;
+         if (inprod[v][i]<inprod[v][imin])
+           imin = i;
+         if (inprod[v][i]>inprod[v][imax])
+           imax = i;
        }
-       min=inprod[v][imin[v]];
-       max=inprod[v][imax[v]];
-       fprintf(stderr,"%7d     %10.6f %10.1f %10.6f %10.1f\n",
+       pmin[v] = inprod[v][imin];
+       pmax[v] = inprod[v][imax];
+       fprintf(stderr,"%7d     %10.6f %10d %10.6f %10d\n",
                eignr[outvec[v]]+1,
-               min,inprod[noutvec][imin[v]],max,inprod[noutvec][imax[v]]); 
+               pmin[v],imin,pmax[v],imax); 
       }
     }
     else {
-      min=-extreme;
-      max=+extreme;
+      pmin[0] = -extreme;
+      pmax[0] =  extreme;
     }
     /* build format string for filename: */
     strcpy(str,extremefile);/* copy filename */
@@ -661,12 +664,14 @@ static void project(const char *trajfile,t_topology *top,int ePBC,matrix topbox,
        for(i=0; i<natoms; i++)
          for(d=0; d<DIM; d++) 
            xread[index[i]][d] = 
-             (xav[i][d] + (min*(nextr-frame-1)+max*frame)/(nextr-1)
+             (xav[i][d] + (pmin[v]*(nextr-frame-1)+pmax[v]*frame)/(nextr-1)
              *eigvec[outvec[v]][i][d]/sqrtm[i]);
        write_trx(out,natoms,index,atoms,0,frame,topbox,xread,NULL,NULL);
       }
       close_trx(out);
     }
+    sfree(pmin);
+    sfree(pmax);
   }
   fprintf(stderr,"\n");
 }
@@ -963,6 +968,9 @@ int gmx_anaeig(int argc,char *argv[])
   }
     
   if (bEntropy) {
+    if (bDMA1) {
+      gmx_fatal(FARGS,"Can not calculate entropies from mass-weighted eigenvalues, redo the analysis without mass-weighting");
+    }
     calc_entropy_qh(stdout,neig1,eigval1,temp,nskip);
     calc_entropy_schlitter(stdout,neig1,nskip,eigval1,temp);
   }