Fortran

    • gfortran: the official GNU Fortran compiler and part of the gcc compiler suite.
    • ifort: the Intel Fortran compiler, widely used in academia and industry because of its superior performance, but
      unfortunately this is commercial software so not recommended. The same holds for the Portland compiler pgfortran
    • gdb: the GNU debugger, part of the gcc compiler suite. Use the -g option to compile with debugging symbols.
    • valgrind: to detect memory leaks.
    • Use free-form text input style (the default), with a maximal line width well below the 132 characters imposed by the Fortran90 standard.
    • When a method does not need to alter any data in any module and returns a single value, use a function for it, otherwise use a subroutine. Minimize the latter to reasonable extent.
    • Use the intent attributes in subroutine variable declarations as it makes the code much easier to understand.
    • Use a performance-driven approach to the architecture, do not use the object-oriented features of Fortran90 if they slow down execution. Encapsulation by modules is perfectly acceptable.
    • Provide a test suite with your code, containing both unit and integration tests. Both automake and cmake provide test
      suite functionality; if you create your makefile yourself, add a separate testing target.