Merge "Fix a few doxygen warnings."
authorChristoph Junghans <junghans@votca.org>
Sat, 28 Jul 2012 23:52:23 +0000 (01:52 +0200)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Sat, 28 Jul 2012 23:52:23 +0000 (01:52 +0200)
14 files changed:
CMakeLists.txt
CPackInit.cmake
cmake/BuildManPages.cmake
cmake/FindFFTW.cmake
cmake/FindVMD.cmake
cmake/TestVMD.c [new file with mode: 0644]
man/CMakeLists.txt [deleted file]
src/external/gmock-1.6.0/gtest/src/gtest-internal-inl.h
src/gromacs/gmxlib/vmdio.c
src/gromacs/mdlib/pme.c
src/gromacs/options/tests/abstractoptionstorage.cpp
src/programs/mdrun/genalg.c
src/tools/gmx_h2order.c
src/tools/gmx_sorient.c

index 8cac7ae235d926b7e3f121e10e7b7312fdcd59f8..0b45bc69caa21d2ae3f20a25936254df8ee2b343 100644 (file)
@@ -60,7 +60,6 @@ set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Gromacs - a toolkit for high-performance
 if (NOT GMX_USE_RELATIVE_INSTALL_PATH)
     set(CPACK_SET_DESTDIR "ON")
 endif()
-set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 0)
 set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_SOURCE_DIR}/admin/InstallWelcome.txt")
 # Its GPL/LGPL, so they do not have to agree to a license for mere usage, but some installers require this...
 set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/admin/InstallLicense.txt")
@@ -860,8 +859,6 @@ mark_as_advanced(GMX_EXTERNAL_LAPACK)
 mark_as_advanced(GMX_EXTERNAL_BLAS)
 
 set(GMX_USE_PLUGINS OFF CACHE INTERNAL "Whether GROMACS will really try to compile support for VMD plugins")
-set(GMX_VMD_PLUGIN_PATH)
-mark_as_advanced(GMX_VMD_PLUGIN_PATH)
 
 if(GMX_LOAD_PLUGINS)
   if(CYGWIN OR NOT WIN32)
@@ -871,49 +868,17 @@ if(GMX_LOAD_PLUGINS)
     gmx_test_dlopen(HAVE_DLOPEN)
   endif()
 
-  find_package(VMD)
-
-  # Test for unsuitable versions of VMD
-
-  if(VMD_FOUND AND NOT GMX_VMD_PLUGIN_PATH)
-    message(STATUS "Checking for suitable VMD version")
-    exec_program(${VMD_EXECUTABLE}
-      ARGS --help
-      OUTPUT_VARIABLE VMD_HELP
-      RETURN_VALUE VMD_EXEC_RETURN)
-
-    if(VMD_EXEC_RETURN EQUAL 0)
-      # This is the accepted idiom for subexpression matching, unfortunately
-      string(REGEX REPLACE ".*VMD for .*, version ([0-9]+\\.[0-9]*\\.?[0-9]*).*" "\\1" VMD_VERSION ${VMD_HELP})
-      string(REGEX REPLACE ".*VMD for (.*), version .*" "\\1" VMD_ARCH ${VMD_HELP})
-
-      if(VMD_VERSION VERSION_LESS "1.8")
-        MESSAGE(WARNING "Found VMD version ${VMD_VERSION}, but GROMACS needs at least 1.8")
-        unset(VMD_EXECUTABLE)
-        set(VMD_FOUND FALSE)
-      else()
-        message(STATUS "VMD version ${VMD_VERSION} is suitable")
-        if(DEFINED ENV{VMDDIR})
-          # This permits GROMACS to avoid hard-coding a fall-back
-          # path that it can tell right now would be useless.
-          set(GMX_VMD_PLUGIN_PATH "$ENV{VMDDIR}/plugins/${VMD_ARCH}/molfile" CACHE PATH "Path to VMD plugins for molfile I/O")
-        else()
-          set(GMX_VMD_PLUGIN_PATH "/usr/local/lib/vmd/plugins/*/molfile" CACHE PATH "Path to VMD plugins for molfile I/O")
-        endif()
-      endif()
-
-      # clean up
-      unset(VMD_HELP)
-      unset(VMD_VERSION)
-      unset(VMD_ARCH)
-    endif()
-  endif()
-
   # so, should we use plug-ins?
   if((WIN32 AND NOT CYGWIN) OR (HAVE_DLOPEN AND BUILD_SHARED_LIBS))
-    if (NOT VMD_QUIETLY)
-      MESSAGE(STATUS "Found the ability to use plug-ins when building shared libaries, so will compile to use plug-ins (e.g. to read VMD-supported file formats).")
-    endif(NOT VMD_QUIETLY)
+    if(NOT VMD_QUIETLY)
+      MESSAGE(STATUS
+          "Found the ability to use plug-ins when building shared libaries, "
+          "so will compile to use plug-ins (e.g. to read VMD-supported file "
+          "formats).")
+    endif()
+    if(NOT GMX_VMD_PLUGIN_PATH)
+      find_package(VMD)
+    endif()
     set(GMX_USE_PLUGINS ON)
     list(APPEND GMX_EXTRA_LIBRARIES ${CMAKE_DL_LIBS}) # magic cross-platform pre-set variable for dlopen library
     set(PKG_DL_LIBS "-l${CMAKE_DL_LIBS}")
@@ -1021,7 +986,6 @@ if(NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin")
 endif()
 
 add_subdirectory(share)
-add_subdirectory(man)
 add_subdirectory(src)
 add_subdirectory(scripts)
 
index d0f255a8bd6f879fc307b8b1f3f3a384cad78359..20d2c2369510a415d03d9a2bf2327d70c5fcc946 100644 (file)
@@ -4,5 +4,5 @@ if(CPACK_SOURCE_PACKAGE_FILE_NAME AND NOT EXISTS "${CMAKE_BINARY_DIR}/man/man1/n
     message(FATAL_ERROR 
         "To generate correct source package all man pages need to be generated. "
         "The man pages are automatically build together with the binaries. "
-        "Make sure to build all binaries (e.g. GMX_X11=on). ${CMAKE_SOURCE_DIR}/man/man1/ngmx.1")
+        "Make sure to build all binaries (e.g. GMX_X11=on).")
 endif()
index bd3f5937b46e92ee5e057f01bd5602e7604ed72f..65ac6540755dd81a702b9e3130f8ea3696dfa5af 100644 (file)
@@ -35,6 +35,10 @@ if(GMX_BUILD_MANPAGES)
     configure_file(${CMAKE_SOURCE_DIR}/man/man7/gromacs.7.cmakein ${CMAKE_BINARY_DIR}/man/man7/gromacs.7)
     install(FILES ${CMAKE_BINARY_DIR}/man/man7/gromacs.7 DESTINATION
         ${MAN_INSTALL_DIR}/man7)
+#man-pages are only avalaible if they are either build or this is a source archive
+elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/admin/.isreposource")
+    install(FILES ${CMAKE_SOURCE_DIR}/man/man7/gromacs.7 DESTINATION
+        ${MAN_INSTALL_DIR}/man7)
 endif()
 
 function (gmx_add_man_page EXENAME)
@@ -56,5 +60,8 @@ function (gmx_add_man_page EXENAME)
                 -P ${CMAKE_SOURCE_DIR}/cmake/Filter.cmake)
         install(FILES ${MAN1_PATH}/${EXENAME}.1 DESTINATION 
             ${MAN_INSTALL_DIR}/man1)
+    elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/admin/.isreposource")
+        install(FILES ${CMAKE_SOURCE_DIR}/man/man1/${EXENAME}.1 DESTINATION 
+            ${MAN_INSTALL_DIR}/man1)
     endif()
 endfunction ()
index f1476adbf1e30015002ec8e61c28102d9ebf48a1..5905c465643ee530f6589d6beef6baec94558113 100644 (file)
@@ -44,10 +44,14 @@ endif(NOT __pkg_config_checked_PC_FFTW_${FFTW_PKG})
 
 if(FFTW_LIBRARY)
   set(FFTW_LIBRARY_${FFTW_PKG} "${FFTW_LIBRARY}" CACHE INTERNAL "Path to ${FFTW_PKG} library" FORCE)
+else(FFTW_LIBRARY)
+  set(FFTW_LIBRARY "" CACHE FILEPATH "Path to ${FFTW_PKG} library")
 endif(FFTW_LIBRARY)
 
 if(FFTW_INCLUDE_DIR)
   set(FFTW_INCLUDE_DIR_${FFTW_PKG} "${FFTW_INCLUDE_DIR}" CACHE INTERNAL "Path to ${FFTW_HEADER}" FORCE)
+else(FFTW_INCLUDE_DIR)
+  set(FFTW_INCLUDE_DIR "" CACHE DIRECTORY "Path to ${FFTW_HEADER}")
 endif(FFTW_INCLUDE_DIR)
 
 #we use _${FFTW_PKG} variables to have different cache entries for fftw3 and ffw3f
@@ -58,9 +62,6 @@ find_library(FFTW_LIBRARY_${FFTW_PKG} NAMES "${FFTW_PKG}" HINTS ${PC_FFTW_${FFTW
 set(FFTW_LIBRARY_${FFTW_PKG} ${FFTW_LIBRARY_${FFTW_PKG}} CACHE INTERNAL "Path to ${FFTW_PKG} library" FORCE)
 set(FFTW_INCLUDE_DIR_${FFTW_PKG} ${FFTW_INCLUDE_DIR_${FFTW_PKG}} CACHE INTERNAL "Path to ${FFTW_HEADER}" FORCE)
 
-set(FFTW_LIBRARY "${FFTW_LIBRARY_${FFTW_PKG}}" CACHE FILEPATH "Path to ${FFTW_PKG} library" FORCE)
-set(FFTW_INCLUDE_DIR "${FFTW_INCLUDE_DIR_${FFTW_PKG}}" CACHE DIRECTORY "Path to ${FFTW_HEADER}" FORCE)
-
 # set default find_package outcome variables
 set(FFTW_LIBRARIES "${FFTW_LIBRARY_${FFTW_PKG}}")
 set(FFTW_INCLUDE_DIRS "${FFTW_INCLUDE_DIR_${FFTW_PKG}}")
index d3e5cf20fc5f888bc1dde0ab8f1fb44baf54224f..29c34dff1debd74b0012d9b2a172e7b7e8eb581a 100644 (file)
@@ -9,94 +9,69 @@
 #  To help us fund GROMACS development, we humbly ask that you cite
 #  the research papers on the package. Check out http://www.gromacs.org
 
-# ================================================================
-
-# This file is adapted from FindGit.cmake from CMake 2.8.5
-# That file is copyright and redistribution outside
-# CMake requires the following license statement.
-
-# ================================================================
-
-# CMake - Cross Platform Makefile Generator
-# Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
-# All rights reserved.
-
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-
-# * Redistributions of source code must retain the above copyright
-#   notice, this list of conditions and the following disclaimer.
-
-# * Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-
-# * Neither the names of Kitware, Inc., the Insight Software Consortium,
-#   nor the names of their contributors may be used to endorse or promote
-#   products derived from this software without specific prior written
-#   permission.
-
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-# ------------------------------------------------------------------------------
-
-# The above copyright and license notice applies to distributions of
-# CMake in source and binary form.  Some source files contain additional
-# notices of original copyright by their contributors; see each source
-# for details.  Third-party software packages supplied with CMake under
-# compatible licenses provide their own copyright notices documented in
-# corresponding subdirectories.
-
-# ------------------------------------------------------------------------------
-
-# CMake was initially developed by Kitware with the following sponsorship:
-
-#  * National Library of Medicine at the National Institutes of Health
-#    as part of the Insight Segmentation and Registration Toolkit (ITK).
-
-#  * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel
-#    Visualization Initiative.
-
-#  * National Alliance for Medical Image Computing (NAMIC) is funded by the
-#    National Institutes of Health through the NIH Roadmap for Medical Research,
-#    Grant U54 EB005149.
-
-#  * Kitware, Inc.
-
-# ================================================================
 
 # The module defines the following variables:
 #   VMD_EXECUTABLE - path to vmd command
-#   VMD_FOUND - true if the command was found
-# Example usage:
-#   find_package(VMD)
-#   if(VMD_FOUND)
-#     message("vmd found: ${VMD_EXECUTABLE}")
-#   endif()
-
-set(vmd_names vmd)
-
-find_program(VMD_EXECUTABLE
-  NAMES ${vmd_names}
-  PATHS ENV VMDDIR
-  PATH_SUFFIXES bin # I guess this allows for OS-independence
-  DOC "VMD command"
-  )
-mark_as_advanced(VMD_EXECUTABLE)
-
-# Handle the QUIETLY and REQUIRED arguments and set VMD_FOUND to TRUE if
-# all listed variables are TRUE
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(VMD DEFAULT_MSG VMD_EXECUTABLE)
+#   GMX_VMD_PLUGIN_PATH - path to vmd plugins
+
+message(STATUS "Checking for suitable VMD version")
+find_program(VMD_EXECUTABLE NAMES vmd PATH_SUFFIXES bin
+    DOC "VMD command")
+
+#set search path in increasing priority:
+# default path, vmd binary path, enviroment variable
+set(VMD_PATHS "/usr/local/lib/vmd/plugins/*/molfile/")
+if(VMD_EXECUTABLE)
+    file(STRINGS "${VMD_EXECUTABLE}" VMDDIR REGEX "^defaultvmddir=.*$")
+    string(REGEX REPLACE "(^.*=\"?|\"$)" "" VMDDIR "${VMDDIR}")
+    list(INSERT VMD_PATHS 0 "${VMDDIR}/plugins/*/molfile/")
+endif()
+if(NOT "$ENV{VMDDIR}" STREQUAL "")
+    list(INSERT VMD_PATHS 0 "$ENV{VMDDIR}/plugins/*/molfile/")
+endif()
+
+#xyz is just an example. Any other molfile plugin could be used.
+#But some require extra link flags.
+find_library(VMDXYZPLUGIN NAME "xyzplugin${CMAKE_SHARED_LIBRARY_SUFFIX}"
+    PATHS ${VMD_PATHS})
+
+if (VMDXYZPLUGIN)
+    try_run(TESTVMD TESTVMD_COMPILED ${CMAKE_BINARY_DIR}
+        "${CMAKE_SOURCE_DIR}/cmake/TestVMD.c"
+        CMAKE_FLAGS "-DLINK_LIBRARIES=${CMAKE_DL_LIBS}"
+            "-DINCLUDE_DIRECTORIES=${CMAKE_SOURCE_DIR}/src/gmxlib"
+        COMPILE_DEFINITIONS "-DGMX_USE_PLUGINS"
+        RUN_OUTPUT_VARIABLE TESTVMD_OUTPUT ARGS ${VMDXYZPLUGIN})
+endif()
+
+if(NOT TESTVMD EQUAL 0)
+    if (NOT VMDXYZPLUGIN)
+        message(STATUS "VMD plugins not found. Path to VMD can be set with VMDDIR.")
+    elseif(NOT TESTVMD_COMPILED)
+        message(STATUS "Could not compile VMD version check")
+    elseif(TESTVMD EQUAL 1)
+        message(STATUS "Could not load VMD plugin ${VMDXYZPLUGIN}: ${TESTVMD_OUTPUT}")
+    elseif(TESTVMD EQUAL 5)
+        message(STATUS "VMD plugin ${VMDXYZPLUGIN} too old. VMD 1.8.6 required.")
+    else()
+        message(STATUS "Could not identify VMD version of ${VMDXYZPLUGIN}. Error: ${TESTVMD}")
+    endif()
+    # This permits GROMACS to avoid hard-coding a fall-back path.
+    # Fall-back is useful in case VMD is installed later.
+    set(GMX_VMD_PLUGIN_PATH "/usr/local/lib/vmd/plugins/*/molfile"
+        CACHE PATH "Path to VMD plugins for molfile I/O" FORCE)
+else()
+    get_filename_component(VMD_PLUGIN_PATH ${VMDXYZPLUGIN} PATH)
+    message(STATUS "VMD version of ${VMD_PLUGIN_PATH} is suitable")
+    set(GMX_VMD_PLUGIN_PATH ${VMD_PLUGIN_PATH}
+        CACHE PATH "Path to VMD plugins for molfile I/O" FORCE)
+endif()
+mark_as_advanced(GMX_VMD_PLUGIN_PATH)
+#Nothing is rerun unless GMX_VMD_PLUGIN_PATH is set to NO. Clean-up all.
+unset(VMDXYZPLUGIN CACHE)
+unset(VMD_EXECUTABLE CACHE)
+unset(TESTVMD CACHE)
+unset(TESTVMD_COMPILED CACHE)
+unset(VMD_PATHS)
+unset(VMD_PLUGIN_PATH)
+unset(VMDDIR)
diff --git a/cmake/TestVMD.c b/cmake/TestVMD.c
new file mode 100644 (file)
index 0000000..d0618ff
--- /dev/null
@@ -0,0 +1,33 @@
+#include "molfile_plugin.h"
+#include "vmddlopen.c"
+#include "stdio.h"
+
+static int register_cb(void *v, vmdplugin_t *p) {
+    *(molfile_plugin_t**)v = (molfile_plugin_t *)p;
+    return VMDPLUGIN_SUCCESS;
+}
+
+typedef int (*initfunc)(void);
+typedef int (*regfunc)(void *, vmdplugin_register_cb);
+
+/*run: gcc TestVMD.c -DGMX_USE_PLUGINS -Wall -ldl src/gmxlib/vmddlopen.c -I src/gmxlib && ./a.out .../xyzplugin.so ; echo $?*/
+int main(int argc, char** argv)
+{
+    void *handle, *ifunc, *registerfunc;
+    molfile_plugin_t* api;
+    if (argc!=2) return -1;
+    handle = vmddlopen(argv[1]);
+    if (!handle)
+    {
+        fprintf(stderr,"%s\n",vmddlerror());
+        return 1;
+    }
+    ifunc = vmddlsym(handle, "vmdplugin_init");
+    if (!ifunc || ((initfunc)(ifunc))()) return 2;
+    registerfunc = vmddlsym(handle, "vmdplugin_register");
+    if (!registerfunc) return 3;
+    ((regfunc)registerfunc)(&api, register_cb);
+    if (!api) return 4;
+    if (api->abiversion<10) return 5;
+    return 0;
+}
diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt
deleted file mode 100644 (file)
index 82953fe..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-# Man pages: Nothing to build, just installation
-install(DIRECTORY . DESTINATION ${MAN_INSTALL_DIR}
-  COMPONENT data
-  PATTERN "Makefile*" EXCLUDE
-  PATTERN "CMake*" EXCLUDE
-  PATTERN "cmake*" EXCLUDE
-  PATTERN "*~" EXCLUDE
-)
index 65a2101a4d8194a4fea7709240579b9e535c35aa..6554cfc07e619a79971822f7c6693e8fedaf4281 100644 (file)
@@ -203,7 +203,6 @@ class GTestFlagSaver {
   bool list_tests_;
   String output_;
   bool print_time_;
-  bool pretty_;
   internal::Int32 random_seed_;
   internal::Int32 repeat_;
   bool shuffle_;
index df4cfe6d5632dbc81440654235fc6b02920fd3dd..d8611a2483f7894bf02ac661831f5e2ddc52d090 100644 (file)
@@ -123,7 +123,7 @@ static int load_sharedlibrary_plugins(const char *fullpath,t_gmxvmdplugin* vmdpl
     }
 
     ifunc = vmddlsym(handle, "vmdplugin_init");
-    if (ifunc && ((initfunc)(ifunc))()) {
+    if (!ifunc || ((initfunc)(ifunc))()) {
         printf("\nvmdplugin_init() for %s returned an error; plugin(s) not loaded.\n", fullpath);
         vmddlclose(handle);
         return 0;
index ac1892f3a71952229d2f4098108e5c406935a0ab..8837bb5edad325f5139efcdd5d8ad11b751f7450 100644 (file)
@@ -282,7 +282,7 @@ typedef struct gmx_pme {
     int     pmegrid_start_ix,pmegrid_start_iy,pmegrid_start_iz;
 
     /* Work data for spreading and gathering */
-    pme_spline_work_t spline_work;
+    pme_spline_work_t *spline_work;
 
     real *fftgridA;             /* Grids for FFT. With 1D FFT decomposition this can be a pointer */
     real *fftgridB;             /* inside the interpolation grid, but separate for 2D PME decomp. */
@@ -2165,7 +2165,7 @@ static void gather_f_bsplines(gmx_pme_t pme,real *grid,
 
     pme_spline_work_t *work;
 
-    work = &pme->spline_work;
+    work = pme->spline_work;
 
     order = pme->pme_order;
     thx   = spline->theta[XX];
@@ -2862,15 +2862,23 @@ make_gridindex5_to_localindex(int n,int local_start,int local_range,
     *fraction_shift  = fsh;
 }
 
-static void sse_mask_init(pme_spline_work_t *work,int order)
+static pme_spline_work_t *make_pme_spline_work(int order)
 {
+    pme_spline_work_t *work;
+
 #ifdef PME_SSE
     float  tmp[8];
     __m128 zero_SSE;
     int    of,i;
 
+    snew_aligned(work,1,16);
+
     zero_SSE = _mm_setzero_ps();
 
+    /* Generate bit masks to mask out the unused grid entries,
+     * as we only operate on order of the 8 grid entries that are
+     * load into 2 SSE float registers.
+     */
     for(of=0; of<8-(order-1); of++)
     {
         for(i=0; i<8; i++)
@@ -2882,7 +2890,11 @@ static void sse_mask_init(pme_spline_work_t *work,int order)
         work->mask_SSE0[of] = _mm_cmpgt_ps(work->mask_SSE0[of],zero_SSE);
         work->mask_SSE1[of] = _mm_cmpgt_ps(work->mask_SSE1[of],zero_SSE);
     }
+#else
+    work = NULL;
 #endif
+
+    return work;
 }
 
 static void
@@ -3160,7 +3172,7 @@ int gmx_pme_init(gmx_pme_t *         pmedata,
                   pme->overlap[0].s2g1[pme->nodeid_major]-pme->overlap[0].s2g0[pme->nodeid_major+1],
                   pme->overlap[1].s2g1[pme->nodeid_minor]-pme->overlap[1].s2g0[pme->nodeid_minor+1]);
 
-    sse_mask_init(&pme->spline_work,pme->pme_order);
+    pme->spline_work = make_pme_spline_work(pme->pme_order);
 
     ndata[0] = pme->nkx;
     ndata[1] = pme->nky;
@@ -3784,7 +3796,7 @@ static void spread_on_grid(gmx_pme_t pme,
 #ifdef PME_TIME_SPREAD
             ct1a = omp_cyc_start();
 #endif
-            spread_q_bsplines_thread(grid,atc,spline,&pme->spline_work);
+            spread_q_bsplines_thread(grid,atc,spline,pme->spline_work);
 
             if (grids->nthread > 1)
             {
index f6b7c998648429ef75b0bd30dfe6be1b62be2b5f..89350f19912926ca831c42dc158e2ced683433ea 100644 (file)
@@ -196,11 +196,11 @@ TEST(AbstractOptionStorageTest, HandlesValueRemoval)
 {
     gmx::Options                options(NULL, NULL);
     std::vector<std::string>    values;
-    MockOptionStorage          *mock;
+    MockOptionStorage          *mock = NULL;
     ASSERT_NO_THROW(options.addOption(
                         MockOption("name").storageObject(&mock)
                             .storeVector(&values).multiValue()));
-
+    ASSERT_TRUE(mock != NULL);
     {
         ::testing::InSequence dummy;
         using ::testing::ElementsAre;
@@ -237,7 +237,7 @@ TEST(AbstractOptionStorageTest, HandlesValueAddition)
 {
     gmx::Options                options(NULL, NULL);
     std::vector<std::string>    values;
-    MockOptionStorage          *mock=NULL;
+    MockOptionStorage          *mock = NULL;
     ASSERT_NO_THROW(options.addOption(
                         MockOption("name").storageObject(&mock)
                             .storeVector(&values).multiValue()));
@@ -279,7 +279,7 @@ TEST(AbstractOptionStorageTest, HandlesTooManyValueAddition)
 {
     gmx::Options                options(NULL, NULL);
     std::vector<std::string>    values;
-    MockOptionStorage          *mock=NULL;
+    MockOptionStorage          *mock = NULL;
     ASSERT_NO_THROW(options.addOption(
                         MockOption("name").storageObject(&mock)
                             .storeVector(&values).valueCount(2)));
@@ -317,11 +317,11 @@ TEST(AbstractOptionStorageTest, AllowsEmptyValues)
 {
     gmx::Options                options(NULL, NULL);
     std::vector<std::string>    values;
-    MockOptionStorage          *mock;
+    MockOptionStorage          *mock = NULL;
     ASSERT_NO_THROW(options.addOption(
                         MockOption("name").storageObject(&mock)
                             .storeVector(&values).valueCount(0)));
-
+    ASSERT_TRUE(mock != NULL);
     {
         ::testing::InSequence dummy;
         using ::testing::DoAll;
index 864de3926dd6c69e52432013560e73c3f0699f8d..4ab2853c7afd00cd667a6dc201bcc93ab0e47d46 100644 (file)
@@ -126,7 +126,7 @@ t_genalg *init_ga(FILE *fplog,const char *infile,int D,t_range range[])
 {
   FILE     *fpin_ptr;
   t_genalg *ga;
-  double   ff,cr;
+  double   ff = 0.0, cr = 0.0;
   int      i,j;
   
   /*------Initializations----------------------------*/
index e495b618620403606c43f000e56707c1bcd961af..3e9ec4f50ad5a16239a48802eab12ab954877039 100644 (file)
@@ -279,11 +279,11 @@ int gmx_h2order(int argc,char *argv[])
   char      *grpname,                      /* groupnames                 */
             *micname;
   int       ngx,                            /* nr. of atomsin sol group   */
-            nmic;                           /* nr. of atoms in micelle    */
+            nmic = 0;                       /* nr. of atoms in micelle    */
   t_topology *top;                         /* topology                   */ 
   int       ePBC;
   atom_id    *index,                       /* indices for solvent group  */
-             *micelle;
+             *micelle = NULL;
   gmx_bool       bMicel =  FALSE;               /* think we're a micel        */
   t_filenm  fnm[] = {                      /* files for g_order          */
     { efTRX, "-f", NULL,  ffREAD },                /* trajectory file            */
index 8df2b4fcb8c0e8aba52fc250759ff33cfee0424a..7278490aba740cacf45e3f9bef8c9c07c00e3720 100644 (file)
@@ -97,7 +97,7 @@ static void calc_com_pbc(int nrefat,t_topology *top,rvec x[],t_pbc *pbc,
 int gmx_sorient(int argc,char *argv[])
 {
   t_topology top;
-  int      ePBC;
+  int      ePBC = -1;
   char     title[STRLEN];
   t_trxstatus *status;
   int      natoms;