Automatic Fortran to C++ conversion with FABLE
1 Lawrence Berkeley National Laboratory, Cyclotron Road, BLDG, 64R0121, Berkeley, CA 94720-8118, USA
2 Los Alamos National Laboratory, Los Alamos, NM 87545, USA
3 Department of Bioengineering, University of California Berkeley, Berkeley, CA 94720, USA
Source Code for Biology and Medicine 2012, 7:5 doi:10.1186/1751-0473-7-5Published: 28 May 2012
In scientific computing, Fortran was the dominant implementation language throughout most of the second part of the 20th century. The many tools accumulated during this time have been difficult to integrate with modern software, which is now dominated by object-oriented languages.
Driven by the requirements of a large-scale scientific software project, we have developed a Fortran to C++ source-to-source conversion tool named FABLE. This enables the continued development of new methods even while switching languages. We report the application of FABLE in three major projects and present detailed comparisons of Fortran and C++ runtime performances.
Our experience suggests that most Fortran 77 codes can be converted with an effort that is minor (measured in days) compared to the original development time (often measured in years). With FABLE it is possible to reuse and evolve legacy work in modern object-oriented environments, in a portable and maintainable way. FABLE is available under a nonrestrictive open source license. In FABLE the analysis of the Fortran sources is separated from the generation of the C++ sources. Therefore parts of FABLE could be reused for other target languages.