Merge remote-tracking branch 'gerrit/release-4-5-patches' into release-4-6
authorRoland Schulz <roland@utk.edu>
Sun, 27 Nov 2011 21:52:42 +0000 (16:52 -0500)
committerRoland Schulz <roland@utk.edu>
Sun, 27 Nov 2011 21:54:16 +0000 (16:54 -0500)
Change-Id: I9f12fee0e49e1f7d758a2080337269753f31f3bf

23 files changed:
CMakeLists.txt
include/mtxio.h
share/html/online/xpm.html
share/top/charmm27.ff/ions.itp
src/gmxlib/mtxio.c
src/gmxlib/nonbonded/nb_kernel_bluegene/nb_kernel_gen_bluegene.h
src/gmxlib/nonbonded/nb_kernel_bluegene/nb_kernel_w3_bluegene.h
src/gmxlib/nonbonded/nb_kernel_bluegene/nb_kernel_w3w3_bluegene.h
src/gmxlib/nonbonded/nb_kernel_bluegene/nb_kernel_w4_bluegene.h
src/gmxlib/nonbonded/nb_kernel_bluegene/nb_kernel_w4w4_bluegene.h
src/kernel/gen_vsite.c
src/kernel/gmxcheck.c
src/kernel/mdrun.c
src/mdlib/domdec.c
src/mdlib/genborn.c
src/mdlib/pull.c
src/tools/do_dssp.c
src/tools/gmx_analyze.c
src/tools/gmx_angle.c
src/tools/gmx_trjconv.c
src/tools/gmx_tune_pme.c
src/tools/gmx_velacc.c
src/tools/gmx_wheel.c

index 1353591a5badfdb5d68fa6cccb102299a15cd28f..ba633cffc381a072b1be29023ee6429c9ba7af24 100644 (file)
@@ -189,10 +189,6 @@ endif(GMX_POWERPC_INVSQRT)
 ########################################################################
 include(CheckCSourceCompiles) # for gmxTestMPI_IN_PLACE
 if(GMX_MPI)
-       MESSAGE(WARNING "
-            There are known problems with some MPI implementations:
-                     OpenMPI version < 1.4.1
-                     MVAPICH2 version <= 1.4.1                               *")
     if(GMX_THREADS)
         #message(FATAL_ERROR "Thread-based parallelization conflicts with MPI.")
         set(GMX_THREADS OFF CACHE BOOL 
@@ -219,6 +215,30 @@ if(GMX_MPI)
         if (GMX_MPI_IN_PLACE)
             gmx_test_mpi_in_place(MPI_IN_PLACE_EXISTS)
         endif (GMX_MPI_IN_PLACE)
+
+       # test for unsuitable versions of OpenMPI
+       exec_program(${MPIEXEC}
+         ARGS --version
+         OUTPUT_VARIABLE MPI_TYPE
+         RETURN_VALUE MPI_EXEC_RETURN)
+       if(MPI_EXEC_RETURN EQUAL 0)
+         if(MPI_TYPE MATCHES "Open MPI|OpenRTE")
+           string(REGEX MATCH "[0-9]+\\.[0-9]*\\.?[0-9]*" MPI_VERSION ${MPI_TYPE})
+           if(MPI_VERSION VERSION_LESS "1.4.1")
+             MESSAGE(WARNING "
+            There are known problems with OpenMPI version < 1.4.1.
+            Please consider updating your OpenMPI.")
+           endif(MPI_VERSION VERSION_LESS "1.4.1")
+           unset(MPI_VERSION)
+         else(MPI_TYPE MATCHES "Open MPI|OpenRTE")
+           # This is not OpenMPI, so give the old generic warning message
+           MESSAGE(WARNING "
+            There are known problems with some MPI implementations:
+                     MVAPICH2 version <= 1.4.1
+            Please consider updating your MPI if applicable.")
+         endif(MPI_TYPE MATCHES "Open MPI|OpenRTE")
+         unset(MPI_TYPE)
+       endif(MPI_EXEC_RETURN EQUAL 0)
     else(MPI_FOUND)
         message(FATAL_ERROR "MPI support requested, but no MPI compiler found.")
     endif(MPI_FOUND)
@@ -535,7 +555,7 @@ gmx_test_inline_asm_msvc_x86(GMX_X86_MSVC_INLINE_ASM)
 
 # turn on SSE if supported with reasonable defaults.
 if (${GMX_ACCELERATION} STREQUAL "auto" AND NOT GMX_OPENMM)
-  if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i.86|x86|x64|x86_64|AMD64|amd64)")
+  if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i.86|x86|x64|x86_64|AMD64|amd64)" OR CYGWIN)
 
     set(GMX_ACCELERATION "SSE" CACHE STRING "Accelerated kernels. Pick one of: auto, none, SSE, BlueGene, Power6, ia64, altivec, fortran" FORCE)
     
@@ -622,9 +642,6 @@ elseif(${GMX_ACCELERATION} STREQUAL "BLUEGENE")
     set(GMX_X11 OFF CACHE BOOL "X11 not compatible with BlueGene, disabled!" FORCE)
     set(GMX_THREADS OFF CACHE BOOL "Threads not compatible with BlueGene, disabled!" FORCE)
     set(GMX_MPI ON CACHE BOOL "Use MPI on BlueGene" FORCE)
-    set(GMX_EXTERNAL_BLAS TRUE CACHE BOOL "Use MASSV for BLAS on BlueGene" FORCE)
-    set(GMX_EXTERNAL_LAPACK TRUE CACHE BOOL "Use MASSV for LAPACK on BlueGene" FORCE)
-    list(APPEND GMX_EXTRA_LIBRARIES massv)
 elseif(${GMX_ACCELERATION} STREQUAL "POWER6")
     set(GMX_POWER6 1)
     set(GMX_SOFTWARE_INVSQRT OFF CACHE BOOL "Do not use software reciprocal square root on Power6" FORCE)
index dff41a569d8af81806f4fa60dd2e8d2919d6af67..88c0545421c90ea532d7cd95c152d6b17546f1dd 100644 (file)
@@ -70,7 +70,7 @@ gmx_mtxio_write(const char *             filename,
  * structure is simply nrow*ncol floating-point elements. The sparse                                                  
  * matrix structure should be freed with gmx_sparsematrix_destroy() when you are done.
  *
- * To determine the format you should set full_matrix and sparse_matrix to NULL
+ * To determine the format you should set *full_matrix and *sparse_matrix to NULL
  * before calling this routine, and check which one is non-NULL on return.
  */
 void
index e44b9fe2dc1a2425144591c769e855abbff231dc..9715a4fbe0b698a3054a70f85bed4fccaf4f277f 100644 (file)
@@ -12,6 +12,8 @@
 The GROMACS xpm file format is compatible with the XPixMap format
 and is used for storing matrix data.
 Thus GROMACS xpm files can be viewed directly with programs like XV.
+Alternatively, they can be imported into GIMP and scaled to 300 DPI,
+using strong antialiasing for font and graphics.
 The first matrix data line in an xpm file corresponds to the last matrix
 row. 
 In addition to the XPixMap format, GROMACS xpm files may contain
index 38e71c3bcc59c820fa56b3da68f1b8696c092508..f7156691dd96dc8173a528226db7079975fdc75a 100644 (file)
@@ -65,4 +65,4 @@ ZN          1
 
 [ atoms ]
 ; id    at type     res nr  residu name at name  cg nr  charge   
-1       ZN          1       ZN          ZN       1      -2   
+1       ZN          1       ZN          ZN       1      2
index 1b9e8a975dbb41af7e55737070ba9a498bdab09b..19780797cf4162b953bf8abf6c5226efc79cdbba 100644 (file)
@@ -202,7 +202,7 @@ gmx_mtxio_read (const char *            filename,
 
     gmx_fio_do_int(fio, i);
     
-    if(i==GMX_MTXIO_FULL_MATRIX)
+    if(i==GMX_MTXIO_FULL_MATRIX && NULL != full_matrix)
     {
         printf("Full matrix storage format, nrow=%d, ncols=%d\n",*nrow,*ncol);
 
@@ -210,7 +210,7 @@ gmx_mtxio_read (const char *            filename,
         snew((*full_matrix),sz);
         bDum=gmx_fio_ndo_real(fio, (*full_matrix),sz);
     }
-    else
+    else if (NULL != sparse_matrix)
     {
         /* Sparse storage */
         printf("Sparse matrix storage format, nrow=%d, ncols=%d\n",*nrow,*ncol);
index 1dd9318d117021151834f676cb1891216a717162..a8cdc3440fa00cf7deccdd3859f5eac6108fbb5c 100644 (file)
@@ -69,10 +69,23 @@ void NB_KERNEL (
     ntype            = *p_ntype;       
     nthreads         = *p_nthreads;    
     _facel           = *p_facel;       
-    _tabscale        = *p_tabscale;    
-    _gbtabscale      = *p_gbtabscale;    
-    _krf             = *p_krf;    
-    _crf             = *p_crf;    
+#if (COULOMB == COULOMB_TAB || VDW == VDW_TAB)
+    _tabscale        = *p_tabscale;
+#else
+    _tabscale        = 0.0;
+#endif
+#if COULOMB == REACTION_FIELD
+    _krf             = *p_krf;
+    _crf             = *p_crf;
+#else
+    _krf             = 0.0;
+    _crf             = 0.0;
+#endif
+#if COULOMB == GENERALIZED_BORN
+    _gbtabscale      = *p_gbtabscale;
+#else
+    _gbtabscale      = 0.0;
+#endif
     nj1              = 0;              
 
     for(n=0; (n<nri); n++)
@@ -108,7 +121,11 @@ void NB_KERNEL (
        int k,ggid;
 
        real _iq   = _facel * charge[ii];
+#if COULOMB == GENERALIZED_BORN
        real _isai = invsqrta[ii];
+#else
+       real _isai = 0.0;
+#endif
 
        // add the shift vector to all water atoms
 
@@ -211,7 +228,7 @@ void NB_KERNEL (
 
 #if COULOMB == GENERALIZED_BORN
            dvda[jnr11] -= __creal(dvdaj);
-           dvda[jnr21] -= __creal(dvdaj);
+           dvda[jnr21] -= __cimag(dvdaj);
 
            dvdaj = __cmplx(dvda[jnr12],dvda[jnr22]);
 #endif
@@ -236,7 +253,7 @@ void NB_KERNEL (
                         
 #if COULOMB == GENERALIZED_BORN
            dvda[jnr12] -= __creal(dvdaj);
-           dvda[jnr22] -= __creal(dvdaj);
+           dvda[jnr22] -= __cimag(dvdaj);
 
            dvdaj = __cmplx(dvda[jnr13],dvda[jnr23]);
 #endif
@@ -260,7 +277,7 @@ void NB_KERNEL (
 
 #if COULOMB == GENERALIZED_BORN
            dvda[jnr13] -= __creal(dvdaj);
-           dvda[jnr23] -= __creal(dvdaj);
+           dvda[jnr23] -= __cimag(dvdaj);
 #endif
 
 #ifndef NO_FORCE
index 663a5df1ca91fa925f841d9614fadf4c2bf41a7f..fe3a657afcd8fb2dcc9dbc09c0b16f81442996c5 100644 (file)
@@ -72,10 +72,23 @@ void NB_KERNEL (
     ntype            = *p_ntype;       
     nthreads         = *p_nthreads;    
     _facel           = *p_facel;       
+#if (COULOMB == COULOMB_TAB || VDW == VDW_TAB)
     _tabscale        = *p_tabscale;
-    _gbtabscale      = *p_gbtabscale;
+#else
+    _tabscale        = 0.0;
+#endif
+#if COULOMB == REACTION_FIELD
     _krf             = *p_krf;
     _crf             = *p_crf;
+#else
+    _krf             = 0.0;
+    _crf             = 0.0;
+#endif
+#if COULOMB == GENERALIZED_BORN
+    _gbtabscale      = *p_gbtabscale;
+#else
+    _gbtabscale      = 0.0;
+#endif
     ii               = iinr[0];        
 
     _qO              = _facel * charge[ii];     
index 9001f7f09d5893e89d6358c20acd08d3eb6c0556..55599ea0e57a49b23f660c70d9b1adca65ce6df3 100644 (file)
@@ -78,10 +78,23 @@ void NB_KERNEL (
     ntype            = *p_ntype;       
     nthreads         = *p_nthreads;    
     _facel           = *p_facel;
+#if (COULOMB == COULOMB_TAB || VDW == VDW_TAB)
     _tabscale        = *p_tabscale;
+#else
+    _tabscale        = 0.0;
+#endif
+#if COULOMB == REACTION_FIELD
     _krf             = *p_krf;
     _crf             = *p_crf;
-    _gbtabscale      = *p_gbtabscale;    
+#else
+    _krf             = 0.0;
+    _crf             = 0.0;
+#endif
+#if COULOMB == GENERALIZED_BORN
+    _gbtabscale      = *p_gbtabscale;
+#else
+    _gbtabscale      = 0.0;
+#endif
 
     ii               = iinr[0];        
 
index 0a07e8ef6b2e662d6e679333f466ec4a6fc4859d..826df2a672fee9e4509084b7d0781a9baf358342 100644 (file)
@@ -78,10 +78,23 @@ void NB_KERNEL (
     ntype            = *p_ntype;       
     nthreads         = *p_nthreads;    
     _facel           = *p_facel;       
+#if (COULOMB == COULOMB_TAB || VDW == VDW_TAB)
     _tabscale        = *p_tabscale;
-    _gbtabscale      = *p_gbtabscale;
+#else
+    _tabscale        = 0.0;
+#endif
+#if COULOMB == REACTION_FIELD
     _krf             = *p_krf;
     _crf             = *p_crf;
+#else
+    _krf             = 0.0;
+    _crf             = 0.0;
+#endif
+#if COULOMB == GENERALIZED_BORN
+    _gbtabscale      = *p_gbtabscale;
+#else
+    _gbtabscale      = 0.0;
+#endif
     ii               = iinr[0];        
 
     _qH              = _facel * charge[ii+1];   
index 1d9b3a2c69683ccb1d65ea6c48ddfc54afac2d1e..e2d389434b40bce604704e3a49194c126df0fd23 100644 (file)
@@ -85,10 +85,23 @@ void NB_KERNEL (
     ntype            = *p_ntype;       
     nthreads         = *p_nthreads;    
     _facel           = *p_facel;
+#if (COULOMB == COULOMB_TAB || VDW == VDW_TAB)
     _tabscale        = *p_tabscale;
+#else
+    _tabscale        = 0.0;
+#endif
+#if COULOMB == REACTION_FIELD
     _krf             = *p_krf;
     _crf             = *p_crf;
-    _gbtabscale      = *p_gbtabscale;    
+#else
+    _krf             = 0.0;
+    _crf             = 0.0;
+#endif
+#if COULOMB == GENERALIZED_BORN
+    _gbtabscale      = *p_gbtabscale;
+#else
+    _gbtabscale      = 0.0;
+#endif
 
     ii               = iinr[0];        
 
index 72d40360ba2319388726ec321ffa06a8e0d53ca3..f3fffdd685cd0c02d78710bd03c277d6cdebca02 100644 (file)
@@ -1210,6 +1210,8 @@ static int gen_vsites_his(t_atoms *at, int *vsite_type[], t_params plist[],
   sinalpha=sqrt(1-cosalpha*cosalpha);
   x[atCG]  = - sinalpha*dCGCE1;
   y[atCG]  = 0;
+  x[atHE1] = x[atHE2] = x[atHD1] = x[atHD2] = 0;
+  y[atHE1] = y[atHE2] = y[atHD1] = y[atHD2] = 0;
   
   /* calculate ND1 and CD2 positions from CE1 and NE2 */
 
index 86fb415c3b05efe79816526aad4bcc52b3020c1d..f3efce54f1050f6e27015cba4206bd84339536ac 100644 (file)
@@ -249,12 +249,13 @@ void chk_trj(const output_env_t oenv,const char *fn,const char *tpr,real tol)
   gmx_bool         bShowTimestep=TRUE,bOK,newline=FALSE;
   t_trxstatus *status;
   gmx_mtop_t   mtop;
-  gmx_localtop_t *top;
+  gmx_localtop_t *top=NULL;
   t_state      state;
   t_inputrec   ir;
   
   if (tpr) {
     read_tpx_state(tpr,&ir,&state,NULL,&mtop);
+    top = gmx_mtop_generate_local_top(&mtop,&ir);
   }
   new_natoms = -1;
   natoms = -1;  
@@ -314,7 +315,6 @@ void chk_trj(const output_env_t oenv,const char *fn,const char *tpr,real tol)
     }
     natoms=new_natoms;
     if (tpr) {
-      top = gmx_mtop_generate_local_top(&mtop,&ir);
       chk_bonds(&top->idef,ir.ePBC,fr.x,fr.box,tol);
     }
     if (fr.bX)
index 7b1b396e58ef31d2db3c13421cd29443655f6cd8..1a6021a4fe5877883fe2ca21b2ddb863854413ce 100644 (file)
@@ -596,7 +596,7 @@ int main(int argc,char *argv[])
           sim_part = sim_part_fn + 1;
       }
 
-      if (MULTISIM(cr))
+      if (MULTISIM(cr) && MASTER(cr))
       {
           check_multi_int(stdout,cr->ms,sim_part,"simulation part");
       }
index ecf3ac3c95f08ebed2402249fc634935785f71dc..abed24fd224a3d9d4e818ef2d49db8cb2dbe12ea 100644 (file)
@@ -8257,7 +8257,8 @@ void dd_partition_system(FILE            *fplog,
         /* Print load every nstlog, first and last step to the log file */
         bLogLoad = ((ir->nstlog > 0 && step % ir->nstlog == 0) ||
                     comm->n_load_collect == 0 ||
-                    (step + ir->nstlist > ir->init_step + ir->nsteps));
+                    (ir->nsteps >= 0 &&
+                     (step + ir->nstlist > ir->init_step + ir->nsteps)));
 
         /* Avoid extra communication due to verbose screen output
          * when nstglobalcomm is set.
index 6fa2d7b6b048d625d086c9fc3a216e630e9047d8..f314bc30c3e2f709972c250b0d1ef00f37444679 100644 (file)
@@ -1196,7 +1196,7 @@ int calc_gb_rad(t_commrec *cr, t_forcerec *fr, t_inputrec *ir,gmx_localtop_t *to
         case egbSTILL:
             if(fr->UseOptimizedKernels)
             {            
-                calc_gb_rad_still_sse2_double(cr,fr,md->nr,top, atype, x[0], nl, born); 
+                calc_gb_rad_still_sse2_double(cr,fr,born->nr,top, atype, x[0], nl, born);
             }
             else
             {
index 8c2ffbee8a812c5b1db333686038613a29036d6a..2d4db43a422bd253c731d28a2978402c408e77b7 100644 (file)
@@ -322,11 +322,11 @@ static void get_pullgrps_dr(const t_pull *pull,const t_pbc *pbc,int g,double t,
     for(m=0; m<DIM; m++)
     {
         dr[m] *= pull->dim[m];
-        dr2 += dr[m];
+        dr2 += dr[m]*dr[m];
     }
     if (max_dist2 >= 0 && dr2 > 0.98*0.98*max_dist2)
     {
-        gmx_fatal(FARGS,"Distance of pull group %d (%f nm) is larger than 0.49 times the box size (%f)",g,sqrt(dr2),max_dist2);
+        gmx_fatal(FARGS,"Distance of pull group %d (%f nm) is larger than 0.49 times the box size (%f)",g,sqrt(dr2),sqrt(max_dist2));
     }
 
     if (pull->eGeom == epullgDIRPBC)
@@ -524,7 +524,7 @@ static void do_constraint(t_pull *pull, t_mdatoms *md, t_pbc *pbc,
         }
     }
     
-    bConverged_all = TRUE;
+    bConverged_all = FALSE;
     while (!bConverged_all && niter < max_iter)
     {
         bConverged_all = TRUE;
index 1a1b07f945ff8d6486960f11b91ed00d444fe539..561dc2fe05164e3e4ba03023dc05872f076fb76c 100644 (file)
@@ -55,8 +55,6 @@
 #include "tpxio.h"
 #include "viewit.h"
 
-/* defined in gmx_wheel.c*/
-extern gmx_bool *bPhobics(int ,char *);
 
 static int strip_dssp(char *dsspfile,int nres,
                       gmx_bool bPhobres[],real t,
@@ -171,6 +169,26 @@ static int strip_dssp(char *dsspfile,int nres,
   return nr;
 }
 
+static gmx_bool *bPhobics(t_atoms *atoms)
+{
+    int       i,nb;
+    char      **cb;
+    gmx_bool  *bb;
+
+
+    nb = get_strings("phbres.dat",&cb);
+    snew(bb,atoms->nres);
+
+    for (i=0; (i<atoms->nres); i++)
+    {
+        if ( -1 != search_str(nb,cb,*atoms->resinfo[i].name) )
+        {
+            bb[i]=TRUE;
+        }
+    }
+    return bb;
+}
+
 static void check_oo(t_atoms *atoms)
 {
   char *OOO;
@@ -462,7 +480,7 @@ int main(int argc,char *argv[])
   read_tps_conf(ftp2fn(efTPS,NFILE,fnm),title,&top,&ePBC,&xp,NULL,box,FALSE);
   atoms=&(top.atoms);
   check_oo(atoms);
-  bPhbres=bPhobics((int)atoms->nres,(char *)atoms->resinfo);
+  bPhbres = bPhobics(atoms);
   
   get_index(atoms,ftp2fn_null(efNDX,NFILE,fnm),1,&gnx,&index,&grpnm);
   nres=0;
index 842e3f2ce5a57d4c6fd97b1be8d2aefe4dca5aac..bdecaf8870cb39f784a978016579fe3fc4faf0ee 100644 (file)
@@ -906,7 +906,9 @@ int gmx_analyze(int argc,char *argv[])
     "and fourth cumulant from those of a Gaussian distribution with the same",
     "standard deviation.[PAR]",
 
-    "Option [TT]-ac[tt] produces the autocorrelation function(s).[PAR]",
+    "Option [TT]-ac[tt] produces the autocorrelation function(s).",
+    "Be sure that the time interval between data points is",
+    "much shorter than the time scale of the autocorrelation.[PAR]",
     
     "Option [TT]-cc[tt] plots the resemblance of set i with a cosine of",
     "i/2 periods. The formula is:[BR]"
index e5365ab16d24ad83560ca620c3d91ee3c57ef8b3..fa7b4fe10ceaf772c7f32295f3faa9542f7e3bf3 100644 (file)
@@ -56,7 +56,7 @@
 
 
 static void dump_dih_trn(int nframes,int nangles,real **dih,const char *fn,
-                         real dt)
+                         real *time)
 {
   int    i,j,k,l,m,na;
   t_fileio *trn;
@@ -84,7 +84,7 @@ static void dump_dih_trn(int nframes,int nangles,real **dih,const char *fn,
        }
       }
     }
-    fwrite_trn(trn,i,(real)i*dt,0,box,na,x,NULL,NULL);
+    fwrite_trn(trn,i,time[i],0,box,na,x,NULL,NULL);
   }
   close_trn(trn);
   sfree(x);
@@ -213,7 +213,11 @@ int gmx_g_angle(int argc,char *argv[])
   bAver=opt2bSet("-ov",NFILE,fnm);
   bTrans=opt2bSet("-ot",NFILE,fnm);
   bFrac=opt2bSet("-of",NFILE,fnm);
-
+  if (bTrans && opt[0][0] != 'd') {
+    fprintf(stderr, "Option -ot should only accompany -type dihedral. Disabling -ot.\n");
+    bTrans = FALSE;
+  }
+  
   if (bChandler && !bCorr)
     bCorr=TRUE;
     
@@ -265,7 +269,7 @@ int gmx_g_angle(int argc,char *argv[])
     ffclose(out);
   }
   if (opt2bSet("-or",NFILE,fnm)) 
-    dump_dih_trn(nframes,nangles,dih,opt2fn("-or",NFILE,fnm),dt);
+    dump_dih_trn(nframes,nangles,dih,opt2fn("-or",NFILE,fnm),time);
   
   if (bFrac) {
     sprintf(title,"Trans fraction: %s",grpname);
index ee42aa343742072905dc811ae6c48de8c888aa21..ac8eff3d7b4b11c2d9e763a145599b6dd07c7f44 100644 (file)
@@ -603,8 +603,8 @@ int gmx_trjconv(int argc,char *argv[])
         "[TT]rect[tt] is the ordinary brick shape.",
         "[TT]tric[tt] is the triclinic unit cell.", 
         "[TT]compact[tt] puts all atoms at the closest distance from the center",
-        "of the box. This can be useful for visualizing e.g. truncated",
-        "octahedra. The center for options [TT]tric[tt] and [TT]compact[tt]",
+        "of the box. This can be useful for visualizing e.g. truncated octahedra",
+        "or rhombic dodecahedra. The center for options [TT]tric[tt] and [TT]compact[tt]",
         "is [TT]tric[tt] (see below), unless the option [TT]-boxcenter[tt]",
         "is set differently.[PAR]",
 
index 318738757d4f2637866794d6add1e831d714f2f2..5e00f8351da548a9d643f934c131d0540f3970cd 100644 (file)
@@ -1578,10 +1578,11 @@ static void check_input(
     if (!gmx_fexist(opt2fn("-s",nfile,fnm)))
         gmx_fatal(FARGS, "File %s not found.", opt2fn("-s",nfile,fnm));
     
-    /* Make sure that the checkpoint file is not overwritten by the benchmark runs */
-    if ( (0 == strcmp(opt2fn("-cpi",nfile,fnm), opt2fn("-cpo",nfile,fnm)) ) && (sim_part > 1) )
-        gmx_fatal(FARGS, "Checkpoint input and output file must not be identical,\nbecause then the input file might change during the benchmarks.");
-    
+    /* Make sure that the checkpoint file is not overwritten during benchmarking */
+    if ( (0 == strcmp(opt2fn("-cpi",nfile,fnm), opt2fn("-bcpo",nfile,fnm)) ) && (sim_part > 1) )
+        gmx_fatal(FARGS, "Checkpoint input (-cpi) and benchmark checkpoint output (-bcpo) files must not be identical.\n"
+                         "The checkpoint input file must not be overwritten during the benchmarks.\n");
+
     /* Make sure that repeats is >= 0 (if == 0, only write tpr files) */
     if (repeats < 0)
         gmx_fatal(FARGS, "Number of repeats < 0!");
index 8dfcdef3594bd184f2144ea53363ff05411ea67c..0151928643e5568d32f2db18a93267004dba27ec 100644 (file)
@@ -116,7 +116,11 @@ int gmx_velacc(int argc,char *argv[])
     "function is calculated.[PAR]",
     "With option [TT]-mol[tt] the velocity autocorrelation function of",
     "molecules is calculated. In this case the index group should consist",
-    "of molecule numbers instead of atom numbers."
+    "of molecule numbers instead of atom numbers.[PAR]",
+    "Be sure that your trajectory contains frames with velocity information",
+    "(i.e. [TT]nstvout[tt] was set in your original [TT].mdp[tt] file),",
+    "and that the time interval between data collection points is",
+    "much shorter than the time scale of the autocorrelation."
   };
   
   static gmx_bool bM=FALSE,bMol=FALSE;
index 2a3dbd1baa69da7f63b08733e423052801766ea9..513cc093aaf5fd78c1476e32c8522ffeee335c78 100644 (file)
@@ -60,7 +60,7 @@
 #include "strdb.h"
 #include "gmx_ana.h"
 
-gmx_bool *bPhobics(int nres,char *resnm[])
+static gmx_bool *bPhobics(int nres,char *resnm[])
 {
   int  i,nb;
   char **cb;