Registered 2016-06-04 by Luigi Genovese

The FUTILE project (Fortran Utilities for the Treatment of Innermost Level of Executables) is a set of modules and wrapper that encapsulate the most common low-level operations of a Fortran code. It provides wrappers and controls for (log)file dumping, string handling, input file parsing, dynamic memory allocations, profiling, error handling as well as MPI interfaces and Linear algebra wrappers. It also implements advanced data storage objects like linked lists and trees, and provides their bindings to python dictionaries as well as iterators. This package is meant to simplify the work of Fortran code developers as its APIs are inspired from Fortran approach. Particular attention is paid in not downgrading the performance of the upper level subprograms.

While writing a FORTRAN code, the developer is often obliged to increase code smell (see https://en.wikipedia.org/wiki/Code_smell) due to the intrinsic characteristic of the programming language.
This problem not only generate inaesthetically long code, but is also responsible of the great majority of side-effects and bugs.
The FUTILE project is an attempt to simplify developer's life by taking care of some of these operations.
By definition, this suite of modules is conceived for Fortran programmers. The Fortran standard used is F95, with only minor extensions to F2003 standard, in the aim of increase portability with older codes.
In addition to that, FUTILE package might be also seen as a framework, which helps traditional Fortran developers to "think differently" and to write code subprograms which are similar to those of higher level, "object-oriented" programming.
Of course, from this point of view it might seem that FUTILE "reinvents the wheel" (that is why our logo). However, we have experienced enormous benefit from FUTILE approach in the recent two years of development of the BigDFT package, of which FUTILE is a satellite project.
Now the package is ready to be considered separately from the historical consortium and it can be used in other separate code.
Tutorials and documentations are under preparation and should guide developers and testers.
Do not hesitate in giving us your feedback. All new contributions are welcome!

Project information

Maintainer:
Luigi Genovese
Driver:
Luigi Genovese
Licence:
GNU LGPL v2.1

RDF metadata

View full history Series and milestones

trunk series is the current focus of development.

Get Involved

  • warning
    Report a bug
  • warning
    Ask a question
  • warning
    Help translate

Downloads

FUTILE does not have any download files registered with Launchpad.