Fork me on GitHub

CamFort is a multi-feature tool for improving the quality of Fortran code. Its features are primarily aimed at programming patterns found in numerical modelling code e.g., in computational science.

CamFort is free and open-source. It currently supports FORTRAN 66, FORTRAN 77, and Fortran 90 language standards. Support for Fortran 95, 2003, and 2008 is in progress.

News / dates

Features
Specification & verification

CamFort provides lightweight verification features. Source-code annotations (comments) provide specifications of certain aspects of a program's meaning or behaviour. CamFort can then check that code conforms to these specifications. CamFort can also suggest places to insert specifications, and in some cases case infer the specifications of existing code.

Our current specification and verification features provide:

Refactoring

Many language features of older Fortran standards (pre Fortran 90) are known to be a ready source of programming error. CamFort provides some facilities for automatically refactoring deprecated or dangerous programming patterns, with the goal of helping to meet core quality requirements, such as maintainability. For example, our tool eliminates EQUIVALENCE and COMMON blocks. These refactorings also helps to expose any programming bugs arising from bad programming practices.

Long-term vision

Programming languages provide an interface for developing increasingly complex models in science. However, as computer models grow more complex, it is increasingly difficult to deliver on core requirements such as verifiability, maintainability, understandability, validity, and portability.

Managing software complexity more effectively has been a focus of programming language research for many years, yet we see little adoption of new approaches in the natural sciences. Instead we see scientists continually striving to evolve their software to more complex models, or bigger data sets or novel execution architectures.

Our objectives are:

Follow @camfort_tool


Download
The source code for CamFort is hosted on GitHub.

Latest binary release for Windows, Mac OS, and Linux: v0.904 (July 2017).
Project
CamFort is a joint project between the University of Cambridge and University of Kent supported by an EPSRC grant.
Team

Publications
Mailing list
For help and announcements you can sign-up to our mailing list.
Events
An introduction to CamFort and training material is provided as part of the Fortran Modernization Workshops run by the Numerical Algorithms Group (nag) in the UK and Europe.

We organise an annual workshop on Testing and Verification in Computational Science. Previous versions: