Sessi MCP: Refactoring of Nek5000

Nek5000 is a scalable open-source code for CFD modelling with a long development history starting in the 1970s. It is written in FORTRAN77 and C extensively using a number of Fortran features like implicit data typing, common blocks or equivalence. A number of them are depreciated in the new Fortran standards (90, 95 and 2003) making Nek5000 coding style inconsistent with modern practices and difficult to work with. In cooperation with ANL we have initiated process of Nek5000 refactoring starting from improving programming environment (e.g. github repository, travis and jenkins testing suits) and removing most significant coding constraints (e.g. implicit none). We have built as well our own platform for developing, testing and sharing code packages working on top of Nek5000. An important aspect of this platform is proper code documentation, which is available online and is based on Doxygen.

Milestones

M0: Encourage doxygen development among students (Oct 2017)
M1: Adding dynamical timers to framework (Nov 2017)
M2: Completing framework development documentation (December 2017)
M3: Including linear stability and statistics packages in framework (February 2018)
M4: Adding to Nek5000 doxygen documentation describing solver algorithm (March 2018)
M5: Exploring MPI3 features for mesh partitioning within Nek5000 (June 2018)
M6: Exploring F90 constructs for replacing common blocks (September 2018)