Automated Fortran–C++ Bindings for Large-Scale Scientific Applications
+ ++
-
+
+
- Oak Ridge National Lab. (ORNL), Oak Ridge, TN (United States) + +
+ 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. Finally, 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. +
+
+ You are accessing a document from the Department of Energy's (DOE) OSTI.GOV.
+ This site is a product of DOE's Office of Scientific and Technical Information (OSTI) and is provided as a public service.
+
+ Visit OSTI to utilize additional information resources in energy science and technology.
+
-
+
- Research Organization: +
- Oak Ridge National Laboratory (ORNL), Oak Ridge, TN (United States) +
-
+
- Sponsoring Organization: +
- USDOE National Nuclear Security Administration (NNSA) +
-
+
- Grant/Contract Number: +
- AC05-00OR22725 +
-
+
- OSTI ID: +
- 1649607 +
-
+
- Journal Information: +
- + Computing in Science and Engineering, Vol. 22, Issue 5; ISSN 1521-9615 +
- Publisher: +
- IEEECopyright Statement +
-
+
- Country of Publication: +
- United States +
-
+
- Language: +
- English +
+
+
Similar Records
++ Users manual for bfort: Producing Fortran interfaces to C source code +
+ Automated component creation for legacy C++ and fortran codes. +
Related Subjects
++ + + + + + + + + software interoperability
+ + + + + + + + + scientific codes
+ + + + + + + + + software reusability
+ + + + + + + + + fortran
+ + + + + + + + + C++
+ + + + + + + + + SWIG
+ + + + +