You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
This a fork of Q6 with a large amount of differences from thatoriginal code. Use at your own risk.
The forked code is released under a GNU General Public License, Version 2.0(GPLv2), that means that all modifications done here belong to thePublic license owners, that is, Paul Bauer, j. marelius, j. aqvist,s. c. l. kamerlin.
Status
The main idea of this fork is to aim for clean and readable Q code. The code is in the process of being reorganized and cleaned-upaccording to best coding practices.
We are starting to document the code using doxygen and ford. To generate the doxygen documentation do:
cd docs/developers doxygen DoxygenConfigFortran
To generate the ford docs:
cd docs/developers ford -d ../../src -o devdocs forddocs.md
Some basic development rules somewhat similar to those of thegromacs developers team follow.
Coding Standards
TheGROMACS developers have identified the following important mainpoints for taking into account when organizing a molecular dynamicscode.
Code formatting - how to indent code, how to start and end subroutinesetc.
Interfaces - the Application Programming Interface should say itall
Comments in code - comments in code that ford can use
Compilation - using different hardware
Allowed Fortran Features
Error Handling
Benchmarking
Accuracy Testing
For fortran maybe slightly different rules will be needed. The fluidity projectis a good example to draw from.
Code formatting
No tabs, spaces only.
Two spaces for indentation of each level.
No more than 80 characters to allow for easy code visualizationacross editors and screens. Specially important for easy mobiledevice coding, reading.
No trailing whitespaces. They are not seen by default in mosteditors but still count as changes in git.
Column 36 for : on variable declaration.
Code constructs
to do
Interfaces
to do
Comments in code
to do
Compilation
5.1 gfortran from gcc
At the moment this fork includes a few features of the fortran2008 standard. The fortran 2008 standard is the latest fortranstandard. Work is being done on the fortran 2015 standard but it isnot yet released. Many features of fortran 2008 are already includedin the GNU-Compiler-Collection gfortran.
For compiling Q a relatively new version of gfortran is recommended,at least gfortran 4.8. The idea is to make Q an example of a codewhich integrates the latest niceties of modernFORTRAN.
Fortran 2008(New Features) Coarrays for parallel computing. Possibility to use submodules, and submodules of submodules. Of helpfor very large programs. do concurrent
5.2 compilation in windows 10
You will have to install mingw64 in order to compile Q in windows.Once mingw64 and gcc-fortran are installed you can just use thestandard compilation for gcc of Q. We recommend using msys2, and thenthe mingw64 shell. You will need git to clone the repository, so youwill need to install git usingpacman which is the package managerof mingw64. You will also need make and gcc-fortran.
pacman -S pacman mingw-w64-x86_64-gcc-fortranpacman -S git make
Then just clone this fork:
git clone https://github.com/esguerra/Q6.git
And compile with:
cd srcmake all COMP=gcc
We have tested with gcc 6.3.0 and the compilation works well. Forcompilation of the parallelqdynp you will need MPI in windows. Wehave not tested Windows MPI yet, nor the openMPI port for cygwin.