IRPF90 : a preprocessor making development of large Fortran codes easy

This software was developed (or is under development) within the higher education and research community. Its stability can vary (see fields below) and its working state is not guaranteed.
Higher Edu - Research dev card
  • Creation or important update: 02/12/09
  • Minor correction: 22/03/10
  • Index card author: Anthony Scemama (LCPQ-IRSAMC Toulouse)
  • Theme leader: Violaine Louvet (Institut Camille Jordan)
General software features

A scientific code can almost always be seen as a pure function of its data. In this functional point of view, a program can be represented as a production tree, where the leaves are the data, the nodes are the variables, and the vertices are the relations {needs/is needed  by}.

IRPF90 introduces a new category of variables (IRP entities) which will be the nodes of the production tree. For each entity, the programmer writes the provider which is a procedure that provides the built entity. The preprocessor then analyzes the code, builds the production tree and generates a Fortran code which guarantees that before each use of an entity, it is built. One can make the analogy between the execution of the program and the compilation of a code with a makefile. At a given moment, the program will only compute the entities which are needed and which have not been computed before, otherwise it will use the last computed value.

When the programmer writes a code, he doesn't need to be aware of the execution sequence of the program. If he wants to introduce in the code a new quantity to calculate, he needs only to know the names of the other entities which are needed to build the new entity, without knowing if what he needs has already been built or not, and without knowing how it has been built. Therefore, collaborative development is much more simple.

Context in which the software is used

The context in which the software is used is scientific computation in general. Currently, it is used in the field of quantum chemistry. Several codes are written at the laboratoire de Chimie et Physique Quantiques (Toulouse) with IRPF90:

  • EPLF : A program which calculates the Electron Pair Localization Function in a molecular system []
  • QMC=Chem : A massively parallel quantum Monte Carlo code

Some other codes of Hartree-Fock and post-Hartree Fock computation are written at the laboratoire de Chimie Théorique (Paris 6)

Publications related to software

"IRPF90: a programming environment for high performance computing" A. Scemama, arXiv:0909.5012v1 [cs.SE] (2009)