Remove some unnecessary declarations

- topexcl.h was an outdated copy of gpp_nextnb.h, and wasn't used
  anywhere.  Rename the source file to gpp_nextnb.c to match the header.
- Remove one declaration from gpp_nextnb.h, which wasn't used outside
  the source file.  Make it static in the source file.
- Remove duplicate declarations of (init|done)_top().
- Remove unused create_visibility() from src/programs/view/.

Change-Id: I87982e5581aff8caca3dc753492e01ee457ab694
Fix dependency on swapcoords enums

state.h needs these enums, but it seems wrong to introduce
a header dependency on the whole enums.h, when so few places need
these enums at all.

Change-Id: Ia8f080d5c0dc73b19a54f5ff77fbf7ef76f16139
Replace inline with gmx_inline

We always try to avoid defining std names in our headers.
Thus we shouldn't define inline for those C compilers (=MSCC)
which don't have it.

Change-Id: Ia2023435c916892cdaf2ce97905b55ec10cd1a08
Bump required CUDA version to 4.0

- Added warning with CUDA 4.0;
- Fixed some typos in comments;
- Fixed the comment referring to GPU code generation with CUDA v5.0+.

Fixes #1382

Change-Id: Iee182ace765022fc6a179531d42e965594cff104
Fix CheckCXXCompilerFlag

ICC on Windows was always failing the CheckCXXCompilerFlag.
This was caused by the warning:
LINK : warning LNK4224: /INCREMENTAL:YES is no longer supported;  ignored
being matched by the compiler fail_regex for aix because of a missing
escale for the semicolon. A single escape isn't sufficient. Using double
escape ("\\\;") doesn't produce this problem, but I'm not sure whether it
always matches correctly thus instead a "." is used (works because it is
a regex). This fix doesn't address either the fact that the deprecated
linker flag is used nor does it address the problem that if incorrect
flags are somehow added (either by cmake or the user), this macro
fails without a diagnosible error message or fatal error (to notice it).

Change-Id: Ia45d6cd4fbf4f464bcb03e0d945085987a97aaad
Don't disable MSVC warnings in config.h

All other warning flags are passed as compiler flags, thus this
was inconsistent. Also didn't work correctly if source file
doesn't include config.h.

Also makes ICC warning flags consistent between Linux and
Windows.

Change-Id: Ic52f6eb3c2dc5751b8aac1bba836ad5ff7d7c3cf
Fix misc. Doxygen issues

- Fix some missing brief descriptions.
- Fix some function definitions so that Doxygen correctly pairs them
  with the corresponding declarations.
- Fix some documentation visibility issues.  Not all these are strictly
  required, in particular in the SIMD parts, where \cond is used to
  exclude full classes.  But the presence of \cond is
  difficult/expensive to test automatically.
- Also some misc.  other fixes.
- Document some of these issues better on the Doxygen page.
- Exclude parser.h from Doxygen, since it doesn't contain any meaningful
  comments, and confuses Doxygen at least with the XML output.

Also, explicitly list input file extensions for Doxygen.
This excludes some random Python files from the documentation.  At least
for now, we probably want to keep the documentation such that it applies
mainly to the C/C++ code, and not bother how to also document Python
code in a Doxygen-compatible way.
CUDA files are still left out, as they were previously, since they
currently produce several warnings.

Most of these were found by the current work-in-progress checker script.
After these, the checker mainly complains about a lot of missing brief
descriptions in thread-MPI headers and in swapcoords.c.

Change-Id: Ib8a492fde6327ce3d814a23d887b05323bd6d334
PME load balancing now works with LJ-PME

PME load balancing only works with LJ-PME when PME is also used
for electrostatics.

Change-Id: I7145b242fd5dd00690e6b789b9cc6f3e147d430b
Simplify gmxTestLibXml2

Change-Id: Ia652633f529cc1cf6ba09e29159025ff762efad2
Removed .itp files from top level directory.

There is no need for these files, the water models
should be included from the corresponding .ff directory.
Since many users are likely to still use those files,
an error message is printed.

Also re-added ions.itp and treated it similarly.

Also update an integration test that was using a one of the top-level
water .itp files that is now removed.

Change-Id: I599e203329340587afa7fc5efced485d09b9ce1c
Avoid array-bounds warnings with gcc 4.8.2

The asserts fix RelWithAssert build and for Relase
build the warning is suppressed.

Change-Id: I0a7e6576014bd32648a1e2f08d88e1f2eef3335e
Fix MKL linking

Setting the same for CMAKE_STATIC_LINKER_FLAGS broke because that
variable got applied to calls to ar for linking libgmock.a. Probably
not important because Intel probably encourages shared linking for
MKL.

Change-Id: I6816d8ba318c704a0efad7659f5afecaeb48b092
Install enums.h

Related to #1452

Change-Id: I94db8d0f9661b7398e5924f4adefbfdcc82da483
The van der Waals radius must equal the Coulomb radius with Verlet

This patch fixes an issue that can occur when using g_tune_pme
with a Verlet pair-list .tpr input file. If the .tpr itself has
large cutoffs (e.g. 1.2 nm) and one asks g_tune_pme to scale
_down_ the Coulomb radius, the van der Waals radius is not
scaled down with the Coulomb radius (only upscaling worked).
One ends up with an unusable .tpr file because rVdW != rCoul.
This patch ensures that van der Waals and Coulomb radii
are always equal with Verlet pair-lists. Fixes #1460. Thanks
to Joao Rodrigues for reporting the issue!

Change-Id: I5ef30e71a35cd83838040057e16e52e09ea82e9a
Avoid cross product with zero vector in rotational pulling.

Fixes #1431 (rotation/flex-t regression test failing on BG/Q)

In do_flex_lowlevel() we checked (by mistake!) for xj-xcn being
zero, although we need to check for yj0-ycn being zero, since
we use yj0-ycn in a cross product in the following lines of code.
I now also replaced the direct check (0 == norm(...)) by checking
what gmx_numzero(norm(...)) returns. The latter replacement
was also applied in the do_flex2_lowlevel() routine. Note that there
the check for small xj-xcn was and is actually correct.

Change-Id: I972b6d67a81e30f297db286cd2224f66753a20aa
Use a constant instead of sizeof(int) for SSE2 immediate constant.

Apparently gcc-4.8.2 was not able to evaluate sizeof(int) to the
constant 4 at compile time, but thought it was either a 64-bit
value or a non-const value. Since the register sizes are fixed
we simply hardcode the value 4 bytes instead.

Change-Id: If739b733727b032eb7e5b7fa0a75e7cd51989a0b
Update manual analysis section

- Reference tools as 'gmx <tool>' instead of the old names.
- Expand the section on selections now that there actually are some
  tools that can use the full power.
- Rewrite sections that were referencing obsolete tools (g_bond and
  g_sgangle).
- Remove references to tools that aren't there.

Change-Id: Iee99f69e2d4effa585d98930ef1d78c1367e2ec0
Fix perturbation to Verlet scheme when not perturbing

A .top that has B-state parameters for non-bonded interactions
should run the same with free-energy = no as a .top that has no
B-state parameters. Renamed variable to better reflect its use,
and used it to correctly trigger the FEP code path.

Change-Id: I47656b29ef4ca2462af0fb587e0424d0eab3d5c4
Merge branch release-4-6

Conflicts:
	src/gromacs/pulling/pull_rotation.c
Adopted the bugfixes from release-4-6

Uncrustified incoming code

Change-Id: I7d90bb49ef83750b9607f677e97a94f2b5793eeb
Merge "Merge branch release-4-6"