Merge "Autogenerate gromacs.7 from programs.txt" into release-4-6
authorDavid van der Spoel <davidvanderspoel@gmail.com>
Sun, 15 Jul 2012 12:44:04 +0000 (14:44 +0200)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Sun, 15 Jul 2012 12:44:04 +0000 (14:44 +0200)
cmake/BuildManPages.cmake
man/man7/gromacs.7 [deleted file]
man/man7/gromacs.7.cmakein [new file with mode: 0644]

index 6ee1b12ac8a3d47e1409570c52fd45738aed2a0c..7e308b5e12c069047b113b750e28adbd59442358 100644 (file)
@@ -1,7 +1,42 @@
+MACRO(TODAY RESULT)
+    IF(UNIX)
+        EXECUTE_PROCESS(COMMAND "date" "+%F" OUTPUT_VARIABLE ${RESULT} OUTPUT_STRIP_TRAILING_WHITESPACE)
+    ELSE()
+        set(${RESULT} "????-??-??")
+    ENDIF()
+ENDMACRO(TODAY)
+
 if(GMX_BUILD_MANPAGES)
     set(MAN1_PATH ${CMAKE_BINARY_DIR}/man/man1)
     file(MAKE_DIRECTORY ${MAN1_PATH})
+
+    #create gromacs.7
+    FILE(READ "${CMAKE_SOURCE_DIR}/admin/programs.txt" contents)
+
+    # Convert file contents into a CMake list. First escape ;
+    STRING(REGEX REPLACE ";" "\\\\;" contents "${contents}")
+    STRING(REGEX REPLACE "\n" ";" contents "${contents}")
+
+    set(PROGMANPAGES "")
+    foreach(line ${contents})
+        if (${line} MATCHES "^HEAD\\|")
+            string(REGEX REPLACE "^HEAD\\|" "" DESC ${line})
+            set(PROGMANPAGES "${PROGMANPAGES}.Sh \"${DESC}\"\n.IX Subsection \"${DESC}\"\n.Vb\n.ta 16n\n")
+        elseif(${line} MATCHES "^END$")
+            set(PROGMANPAGES "${PROGMANPAGES}.Ve\n")
+        elseif(${line} MATCHES "\\|")
+            string(REGEX REPLACE "\\|" "\t" line ${line})
+            set(PROGMANPAGES "${PROGMANPAGES}\\&  ${line}\n")
+        else()
+            message(WARNING "Incorrectly formated line \"${line}\" in programs.txt")
+        endif()
+    endforeach()
+    TODAY(TODAYS_DATE)
+    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)
 endif()
+
 function (gmx_add_man_page EXENAME)
     if(GMX_BUILD_MANPAGES)
         file(STRINGS ${CMAKE_SOURCE_DIR}/admin/programs.txt DESC 
diff --git a/man/man7/gromacs.7 b/man/man7/gromacs.7
deleted file mode 100644 (file)
index 7c9ee75..0000000
+++ /dev/null
@@ -1,375 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
-.\" (and then reused elsewhere, since this isn't a perl package)
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "GROMACS 7"
-.TH GROMACS 7 "2008-10-12" "gromacs" "GROMACS suite, Version 4.0"
-.SH "NAME"
-gromacs \- molecular dynamics simulation suite
-.SH "DESCRIPTION"
-.B GROMACS
-(the Groningen Machine for Chemical Simulations) is a full-featured
-suite of programs to perform molecular dynamics simulations - in other
-words, to simulate the behavior of systems with hundreds to millions
-of particles, using Newtonian equations of motion.  It is primarily
-used for research on proteins, lipids, and polymers, but can be applied
-to a wide variety of chemical and biological research questions.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-.PP
-The following commands make up the GROMACS suite.  Please refer to their
-individual man pages for further details.
-.Sh "Generating topologies and coordinates"
-.IX Subsection "Generating topologies and coordinates"
-.Vb 7
-\&  pdb2gmx     converts pdb files to topology and coordinate files
-\&  g_x2top     generates a primitive topology from coordinates
-\&  editconf    edits the box and writes subgroups
-\&  genbox      solvates a system
-\&  genion      generates mono atomic ions on energetically favorable positions
-\&  genconf     multiplies a conformation in 'random' orientations
-\&  g_protonate protonates structures
-.Ve
-.Sh "Running a simulation"
-.IX Subsection "Running a simulation"
-.Vb 4
-\&  grompp      makes a run input file
-\&  tpbconv     makes a run input file for restarting a crashed run
-\&  mdrun       performs a simulation, do a normal mode analysis or an energy minimization
-\&  mdrun_mpi   performs a sim across multiple CPUs or systems
-.Ve
-.Sh "Viewing trajectories"
-.IX Subsection "Viewing trajectories"
-.Vb 3
-\&  ngmx        displays a trajectory
-\&  g_highway   X Window System gadget for highway simulations
-\&  g_nmtraj    generate a virtual trajectory from an eigenvector
-.Ve                      
-.Sh "Processing energies"
-.IX Subsection "Processing energies"
-.Vb 3
-\&  g_energy    writes energies to xvg files and displays averages
-\&  g_enemat    extracts an energy matrix from an energy file
-\&  mdrun       with \-rerun (re)calculates energies for trajectory frames
-.Ve
-.Sh "Converting files"
-.IX Subsection "Converting files"
-.Vb 6
-\&  editconf    converts and manipulates structure files
-\&  trjconv     converts and manipulates trajectory files
-\&  trjcat      concatenates trajectory files
-\&  eneconv     converts energy files
-\&  xpm2ps      converts XPM matrices to encapsulated postscript (or XPM)
-\&  g_sigeps    convert c6/12 or c6/cn combinations to and from sigma/epsilon
-.Ve
-.Sh "Tools"
-.IX Subsection "Tools"
-.Vb 18
-\&  make_ndx    makes index files
-\&  mk_angndx   generates index files for g_angle
-\&  gmxcheck    checks and compares files
-\&  gmxdump     makes binary files human readable
-\&  g_traj      plots x, v and f of selected atoms/groups (and more) from a trajectory
-\&  g_analyze   analyzes data sets
-\&  trjorder    orders molecules according to their distance to a group
-\&  g_filter    frequency filters trajectories, useful for making smooth movies
-\&  g_lie       free energy estimate from linear combinations
-\&  g_dyndom    interpolate and extrapolate structure rotations
-\&  g_morph     linear interpolation of conformations
-\&  g_wham      weighted histogram analysis after umbrella sampling
-\&  xpm2ps      convert XPM (XPixelMap) file to postscript
-\&  g_sham      read/write xmgr and xvgr data sets
-\&  g_spatial   calculates the spatial distribution function (more control than g_sdf)
-\&  g_sdf       calculates the spatial distribution function (faster than g_spatial)
-\&  g_select    selects groups of atoms based on flexible textual selections
-\&  g_tune_pme  time mdrun as a function of PME nodes to optimize settings
-.Ve
-.Sh "Distances between structures"
-.IX Subsection "Distances between structures"
-.Vb 4
-\&  g_rms       calculates rmsd's with a reference structure and rmsd matrices
-\&  g_confrms   fits two structures and calculates the rmsd
-\&  g_cluster   clusters structures
-\&  g_rmsf      calculates atomic fluctuations
-.Ve
-.Sh "Distances in structures over time"
-.IX Subsection "Distances in structures over time"
-.Vb 6
-\&  g_mindist   calculates the minimum distance between two groups
-\&  g_dist      calculates the distances between the centers of mass of two groups
-\&  g_bond      calculates distances between atoms
-\&  g_mdmat     calculates residue contact maps
-\&  g_polystat  calculates static properties of polymers
-\&  g_rmsdist   calculates atom pair distances averaged with power \-2, \-3 or \-6
-.Ve
-.Sh "Mass distribution properties over time"
-.IX Subsection "Mass distribution properties over time"
-.Vb 8
-\&  g_traj      plots x, v, f, box, temperature and rotational energy
-\&  g_gyrate    calculates the radius of gyration
-\&  g_msd       calculates mean square displacements
-\&  g_polystat  calculates static properties of polymers
-\&  g_rotacf    calculates the rotational correlation function for molecules
-\&  g_rdf       calculates radial distribution functions
-\&  g_rotmat    plots the rotation matrix for fitting to a reference structure
-\&  g_vanhove   calculates Van Hove displacement functions
-.Ve
-.Sh "Analyzing bonded interactions"
-.IX Subsection "Analyzing bonded interactions"
-.Vb 4
-\&  g_bond      calculates bond length distributions
-\&  mk_angndx   generates index files for g_angle
-\&  g_angle     calculates distributions and correlations for angles and dihedrals
-\&  g_dih       analyzes dihedral transitions
-.Ve                      
-.Sh "Structural properties"
-.IX Subsection "Structural properties"
-.Vb 14
-\&  g_hbond     computes and analyzes hydrogen bonds
-\&  g_saltbr    computes salt bridges
-\&  g_sas       computes solvent accessible surface area
-\&  g_order     computes the order parameter per atom for carbon tails
-\&  g_principal calculates axes of inertia for a group of atoms
-\&  g_rdf       calculates radial distribution functions
-\&  g_sdf       calculates solvent distribution functions
-\&  g_sgangle   computes the angle and distance between two groups
-\&  g_sorient   analyzes solvent orientation around solutes
-\&  g_spol      analyzes solvent dipole orientation and polarization around solutes
-\&  g_bundle    analyzes bundles of axes, e.g. helices
-\&  g_disre     analyzes distance restraints
-\&  g_clustsize calculate size distributions of atomic clusters
-\&  g_anadock   cluster structures from Autodock runs
-.Ve
-.Sh "Kinetic properties"
-.IX Subsection "Kinetic properties"
-.Vb 8
-\&  g_traj      plots x, v, f, box, temperature and rotational energy
-\&  g_velacc    calculates velocity autocorrelation functions
-\&  g_tcaf      calculates viscosities of liquids
-\&  g_kinetics  calculate kinetic rate constants (experimental)
-\&  g_bar       calculates free energy difference estimates through Bennett's acceptance ratio
-\&  g_current   calculate current autocorrelation function of system
-\&  g_vanhove   compute Van Hove correlation function
-\&  g_principal calculate principal axes of inertion for a group of atoms
-.Ve                      
-.Sh "Electrostatic properties"
-.IX Subsection "Electrostatic properties"
-.Vb 6
-\&  genion       generates mono atomic ions on energetically favorable positions
-\&  g_potential  calculates the electrostatic potential across the box
-\&  g_dipoles    computes the total dipole plus fluctuations
-\&  g_dielectric calculates frequency dependent dielectric constants
-\&  g_current    calculate current autocorrelation function of system
-\&  g_spol       analyze dipoles around a solute
-.Ve  
-.Sh "Protein specific analysis"
-.IX Subsection "Protein specific analysis"
-.Vb 7
-\&  do_dssp       assigns secondary structure and calculates solvent accessible surface area
-\&  g_chi         calculates everything you want to know about chi and other dihedrals
-\&  g_helix       calculates everything you want to know about helices
-\&  g_helixorient calculate coordinates/directions of alpha-helix components
-\&  g_rama        computes Ramachandran plots
-\&  g_xrama       shows animated Ramachandran plots
-\&  wheel         plots helical wheels
-.Ve
-.Sh "Interfaces"
-.IX Subsection "Interfaces"
-.Vb 6
-\&  g_potential calculates the electrostatic potential across the box
-\&  g_density   calculates the density of the system
-\&  g_order     computes the order parameter per atom for carbon tails
-\&  g_h2order   computes the orientation of water molecules
-\&  g_bundle    analyzes bundles of axes, e.g. transmembrane helices
-\&  g_membed    embeds a protein into a lipid bilayer
-.Ve                      
-.Sh "Covariance analysis"
-.IX Subsection "Covariance analysis"
-.Vb 3
-\&  g_covar     calculates and diagonalizes the covariance matrix
-\&  g_anaeig    analyzes the eigenvectors
-\&  make_edi    generate essential-dynamics input file from g_covar output
-.Ve                      
-.Sh "Normal modes"
-.IX Subsection "Normal modes"
-.Vb 7
-\&  grompp      makes a run input file
-\&  mdrun       finds a potential energy minimum
-\&  mdrun       calculates the Hessian
-\&  g_nmeig     diagonalizes the Hessian
-\&  make_edi    generates essential-dynamics input file from g_nmeig analysis
-\&  g_anaeig    analyzes the normal modes
-\&  g_nmens     generates an ensemble of structures from the normal modes
-.Ve
-.PP
-.SH "ADDITIONAL DOCUMENTATION"
-.IX Header "ADDITIONAL DOCUMENTATION"
-Consult the manual at <\fIhttp://www.gromacs.org/content/view/27/42/\fR> for an
-introduction to molecular dynamics in general and GROMACS in particular,
-as well as an overview of the individual programs.
-.PP
-The shorter HTML reference and GROMACS FAQ are available in \fB/usr/share/doc/gromacs/html/\fR .
-.PP
-Tutorial files and other miscellaneous references are stored in \fB/usr/share/gromacs/\fR .
-.SH "REFERENCES"
-.IX Header "REFERENCES"
-The development of GROMACS is mainly funded by academic research grants.
-To help us fund development, the authors humbly ask that you cite the GROMACS papers:
-.PP
-H.J.C. Berendsen, D. van der Spoel and R. van Drunen.  \fBGROMACS: A message-passing
-parallel molecular dynamics implementation\fR.  Comp. Phys. Comm. \fI91\fR, 43-56 (1995)
-.PP
-Erik Lindahl, Berk Hess and David van der Spoel.  \fBGROMACS 3.0: A package for 
-molecular simulation and trajectory analysis\fR.  J. Mol. Mod. \fI7\fR, 306-317 (2001)
-.PP
-B. Hess, C. Kutzner, D. van der Spoel, and E. Lindahl.  \fBGROMACS 4: Algorithms for
-Highly Efficient, Load-Balanced, and Scalable Molecular Simulation\fR.  J. Chem. Theory 
-Comput. \fI4\fR, 3, 435-447 (2008), <\fIhttp://dx.doi.org/10.1021/ct700301q\fR>
-.SH "AUTHORS"
-.IX Header "AUTHORS"
-Current developers:
-.PP
-David van der Spoel <spoel@gromacs.org>
-.br
-Berk Hess <hess@gromacs.org>
-.br
-Erik Lindahl <lindahl@gromacs.org>
-.PP
-A full list of present and former contributors
-is available at <http://www.gromacs.org>
-.PP
-This manual page is largely based on the GROMACS online reference, and was
-prepared in this format by Nicholas Breen <nbreen@ofb.net>.
-.SH "BUGS"
-.IX Header "BUGS"
-GROMACS has no major known bugs, but be warned that it stresses your CPU more
-than most software.  Systems with slightly flaky hardware may prove unreliable
-while running heavy-duty simulations.  If at all possible, please try to
-reproduce bugs on another machine before reporting them.
diff --git a/man/man7/gromacs.7.cmakein b/man/man7/gromacs.7.cmakein
new file mode 100644 (file)
index 0000000..aa17f1f
--- /dev/null
@@ -0,0 +1,194 @@
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" (and then reused elsewhere, since this isn't a perl package)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings.  \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote.  | will give a
+.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
+.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
+.\" expand to `' in nroff, nothing in troff, for use with C<>.
+.tr \(*W-|\(bv\*(Tr
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+.    ds -- \(*W-
+.    ds PI pi
+.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
+.    ds L" ""
+.    ds R" ""
+.    ds C` ""
+.    ds C' ""
+'br\}
+.el\{\
+.    ds -- \|\(em\|
+.    ds PI \(*p
+.    ds L" ``
+.    ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD.  Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+.    de IX
+.    tm Index:\\$1\t\\n%\t"\\$2"
+..
+.    nr % 0
+.    rr F
+.\}
+.\"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
+.    \" fudge factors for nroff and troff
+.if n \{\
+.    ds #H 0
+.    ds #V .8m
+.    ds #F .3m
+.    ds #[ \f1
+.    ds #] \fP
+.\}
+.if t \{\
+.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+.    ds #V .6m
+.    ds #F 0
+.    ds #[ \&
+.    ds #] \&
+.\}
+.    \" simple accents for nroff and troff
+.if n \{\
+.    ds ' \&
+.    ds ` \&
+.    ds ^ \&
+.    ds , \&
+.    ds ~ ~
+.    ds /
+.\}
+.if t \{\
+.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+.    \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.    \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+.    \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+.    ds : e
+.    ds 8 ss
+.    ds o a
+.    ds d- d\h'-1'\(ga
+.    ds D- D\h'-1'\(hy
+.    ds th \o'bp'
+.    ds Th \o'LP'
+.    ds ae ae
+.    ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "GROMACS 7"
+.TH GROMACS 7 "${TODAYS_DATE}" "gromacs" "GROMACS suite, Version ${PROJECT_VERSION}"
+.SH "NAME"
+gromacs \- molecular dynamics simulation suite
+.SH "DESCRIPTION"
+.B GROMACS
+(the Groningen Machine for Chemical Simulations) is a full-featured
+suite of programs to perform molecular dynamics simulations - in other
+words, to simulate the behavior of systems with hundreds to millions
+of particles, using Newtonian equations of motion.  It is primarily
+used for research on proteins, lipids, and polymers, but can be applied
+to a wide variety of chemical and biological research questions.
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+.PP
+The following commands make up the GROMACS suite.  Please refer to their
+individual man pages for further details.
+${PROGMANPAGES}
+.PP
+.SH "ADDITIONAL DOCUMENTATION"
+.IX Header "ADDITIONAL DOCUMENTATION"
+Consult the manual at <\fIhttp://www.gromacs.org/content/view/27/42/\fR> for an
+introduction to molecular dynamics in general and GROMACS in particular,
+as well as an overview of the individual programs.
+.PP
+The shorter HTML reference and GROMACS FAQ are available in \fB/usr/share/doc/gromacs/html/\fR .
+.PP
+Tutorial files and other miscellaneous references are stored in \fB/usr/share/gromacs/\fR .
+.SH "REFERENCES"
+.IX Header "REFERENCES"
+The development of GROMACS is mainly funded by academic research grants.
+To help us fund development, the authors humbly ask that you cite the GROMACS papers:
+.PP
+H.J.C. Berendsen, D. van der Spoel and R. van Drunen.  \fBGROMACS: A message-passing
+parallel molecular dynamics implementation\fR.  Comp. Phys. Comm. \fI91\fR, 43-56 (1995)
+.PP
+Erik Lindahl, Berk Hess and David van der Spoel.  \fBGROMACS 3.0: A package for 
+molecular simulation and trajectory analysis\fR.  J. Mol. Mod. \fI7\fR, 306-317 (2001)
+.PP
+B. Hess, C. Kutzner, D. van der Spoel, and E. Lindahl.  \fBGROMACS 4: Algorithms for
+Highly Efficient, Load-Balanced, and Scalable Molecular Simulation\fR.  J. Chem. Theory 
+Comput. \fI4\fR, 3, 435-447 (2008), <\fIhttp://dx.doi.org/10.1021/ct700301q\fR>
+.SH "AUTHORS"
+.IX Header "AUTHORS"
+Current developers:
+.PP
+David van der Spoel <spoel@gromacs.org>
+.br
+Berk Hess <hess@gromacs.org>
+.br
+Erik Lindahl <lindahl@gromacs.org>
+.PP
+A full list of present and former contributors
+is available at <http://www.gromacs.org>
+.PP
+This manual page is largely based on the GROMACS online reference, and was
+prepared in this format by Nicholas Breen <nbreen@ofb.net>.
+.SH "BUGS"
+.IX Header "BUGS"
+GROMACS has no major known bugs, but be warned that it stresses your CPU more
+than most software.  Systems with slightly flaky hardware may prove unreliable
+while running heavy-duty simulations.  If at all possible, please try to
+reproduce bugs on another machine before reporting them.