Use more obvious name of BGQ compiler MPI wrappers

While it is true that mpicc points to the XL compilers when it is the
one found in xl.ndebug/bin, this is not generally true and thus the use
of mpicc as a wrapper for XL violates the principle of least surprise.
the mpixl* wrappers are unambiguous and equally valid.

Fixes #1282

Change-Id: I460e829e55a221d8be35a70932864555feb21a95
Define both C and C++ compilers in BGQ toolchains; use -O3

When using either the C or C++ toolchain, the complimentary compiler is
not properly identified, rather /usr/bin/g{cc,++} is, which may cause
configuration problems.  this patch fixes this issue.

ALCF strongly recommends the use of -O3 unless there is clear evidence
that higher optimization has a (positive) effect on the quality of the
code generation from XL.  we find that XL frequently generates no faster
and even slower code with -O4 and -O5 unless the code is specifically
designed to be optimized for BGQ.

Fixes #1283

Change-Id: If32a507c6394e23106555741bdefbc0d554c3765
flops table now reports CUDA analytical Ewald

Change-Id: I72dfdc3b3f1ecb651897922c2e7ffec784c3bf60
Fixing a problem when dhdl and replex are not multiples

Problems is fixed by guaranteeing the free energy information
is now updated at a frequency that is the greatest common
denominator of the relevant internal variables.

An existing gcd function was taken from gmx_genion and put
in the include/maths.h file.

Change-Id: I7473185ab02c7c9a7557fbaa165bb20b63bafb7a
fixed SD and BD integrator OpenMP performance

SD and BD integrator always integrated single threaded.
Really fixes #1121

Change-Id: I2217c40e9c188c7cd57801e413750035c6488f56
added CUDA compiler flags to version header

The nvcc compiler information, compared to CPU compiler info, was
lacking both the full path to the compiler binary as well as the full
list of flags used (including the host-compiler flags if these are
passed).

Change-Id: Ic80a512bc6d5a39b6594c360d2952e48b5d43ee0
Fix declaration that XLC rejected

Changed volatile void* volatile* declarator to volatile void* volatile.

Fixes #1284

Change-Id: I133f480b060ab4723988bd3059e5bd20ebc9df7a
Fixed #include of header for atomics on K-computer

Reported by Shun Sakuraba

Fixes #1274

Change-Id: Ia6369ba56b6978f79e9fbde3268f8a44ef44b6d8
Fixed -npstring command line argument in g_tune_pme

-npstring <str> is used to let g_tune_pme know how it should specify
the number of MPI processes to the mpirun command (with -np (default) or -n ).
You could provide it, but it actually -np was used in any case.

Change-Id: Ibb807b492dfb05c67628c18b7073092aa983f770
Fixes to config.h.cmakein to set GMX_QMMM_ORCA.

Installing using ORCA for QM calculations would proceed without
any issue, but the mdrun executable was nonfunctional because
GMX_QMMM_ORCA was never #defined, so the code was not correctly
compiled.

Fixes #1286

Change-Id: I230ded2d3cdbd9c5fc3e865d0b20049effb16766
Minor tweaks to qm_orca.c

Formatting fixes for readability and better screen output.  Also replaced
gmx_call() by gmx_fatal() for more sensible error reporting.

Change-Id: I7669fe2b1c83c6bf8fb5d24760d8acdb0919c46c
Comprehensive hwinfo structure concurrency fix.

The hwinfo structure and structures contained therein are inherently
global to any mdrun processes/ranks. This patch makes sure that
- The hwinfo structure is shared among all threads
- Only one thread creates a hwinfo structure
- The hwinfo structure is safe to read for all threads after they
    obtain it

In addition, it fixes the detection for pthread_setaffinity in thread_mpi.

This fixes concurrency issues with thread affinity settings with or
without MPI, and makes runner.c slightly easier to read because the
concurrency logic is pushed to gmx_detect_hardware.c

Fixes #1270, #1254

Note that #1254 issue 3 seems to be an OpenMPI bug.

Change-Id: I236e81923324d7873f3d8633889b91c7c02a7843
Corrected definition of EEL_USER

Looks like a copy-paste typo occured at some point in the nbnxn
development. EEL_USER is only used in runner.c, and only to issue a
fatal error with user-supplied non-bonded potentials. That clearly
should be not applicable to eelPMESWITCH.

Fixes #1289

Change-Id: I4e987c81aec81a920779dd29d7c52e8b6d233b45
Fixed some inconsistencies in pkg-config files

Change-Id: I57897609b9bbc558db01c237d3e24d78aa25a5ca
Bump version after 4.6.3 release

Change-Id: I1d99c36e090b25ae70d7476715e97b972ae2778c
more pkg-config fixes

* fixed a typo from I57897609b9bbc558db01c237d3e24d78aa25a5ca
* fixed name of libmd in libmd.pc

Change-Id: I6be35d8f1c0d53d4e4298967f0dc63de2205a663
Fixed minor admin issues

- The installguide.xhtml file is intermediate output, and
  should not be versioned
- There is no need for HTML files to have date stamps to maintain
- Bumped some version numbers

Change-Id: I2783501f697ee1eae557fdbf365a7aaf5d640500
Fixed typos in #include guard #defines

Change-Id: Ifb366f7b10de3a23952ef427bd0e2cb7e282ccea
Fixed possible dereference of null pointer

getpwuid() can return null. For example, Shun Sakuruba reported that
on Cray XE6 compute nodes have passwd.h, but users will not have
passwd entries.

Fixes #1301

Change-Id: I66e8064438fc02591629b0d381bc00afd06795c0
Merge branch release-4-6 into master

Nothing controversial. Rename detection failed on
gmx_detect_hardware.h, so that resolution is done by hand.

Conflicts:
	CMakeLists.txt
	admin/mkhtml
	src/gromacs/gmxlib/gmx_detect_hardware.c
	src/gromacs/mdlib/nbnxn_search.h
	src/programs/mdrun/runner.c

Conflict resolved in src/gromacs/legacyheaders/gmx_detect_hardware.h:
	include/gmx_detect_hardware.h

Conflicts to do with pkgconfig are mostly not applicable to master
branch (except for change to libgromacs.pc.cmakein to add
@GMX_LIBS_SUFFIX@). Others resolved by deleting the files or change
sets:
	src/gromacs/libgromacs.pc.cmakein
	src/CMakeLists.txt
	src/kernel/libgmxpreprocess.pc.cmakein
	src/mdlib/CMakeLists.txt
	src/mdlib/libmd.pc.cmakein
	src/tools/libgmxana.pc.cmakein

Change-Id: I0c02d3a235b909e4d9ea628bb392ff9173bfc902