Modern Fortran: Tricks of the Software Engineering Trade