Automated Fortran-C++ Bindings for Large-Scale Scientific Applications

Seth R. Johnson, Andrey Prokopenko, Katherine J. Evans, Jeffrey Carver, Karla Morris

Research output: Contribution to journalArticlepeer-review

4 Scopus citations

Abstract

Although many active scientific codes use modern Fortran, most contemporary scientific software libraries are implemented in C and C++. Providing their numerical, algorithmic, or data management features to Fortran codes requires writing and maintaining substantial amounts of glue code. This paper introduces a tool that automatically generates native Fortran 2003 interfaces to C and C++ libraries. The tool supports C++ features that have no direct Fortran analog, such as templated functions and exceptions. A set of simple examples demonstrates the utility and scope of the tool, and timing measurements with a mock numerical library illustrate the minimal performance impact of the generated wrapper code.

Original languageEnglish
Article number8745480
Pages (from-to)84-94
Number of pages11
JournalComputing in Science and Engineering
Volume22
Issue number5
DOIs
StatePublished - Sep 1 2020

Funding

This research used resources of the Oak Ridge Leadership Computing Facility at the Oak Ridge National Laboratory, which is supported by the Office of Science of the U.S. Department of Energy under Contract DE-AC05-00OR22725. This work was supported by the Exascale Computing Project (17-SC-20-SC), a joint project of the U.S. Department of Energy’s Office of Science and National Nuclear Security Administration, responsible for delivering a capable exascale ecosystem, including software, applications, and hardware technology, to support the nation’s exascale computing imperative.

Keywords

  • C++
  • Fortran
  • SWIG
  • Scientific Codes
  • Software Interoperability
  • Software Reusability

Fingerprint

Dive into the research topics of 'Automated Fortran-C++ Bindings for Large-Scale Scientific Applications'. Together they form a unique fingerprint.

Cite this