GlossaryΒΆ
bufferify
The process of creating a buffer. The C wrapper may create an additional function for each wrapped function. This function has additional arguments needed for the Fortran interface to pass the metadata of the argument such as the size.
C wrapper
The wrapper with a C API. When wrapping C++, the C wrapper will be C++ code but functions will useextern "C"
block to allow them to be called from C and Fortran using thebind(C)
keyword.
capsule
Holds a pointer to a C++ class instance and some memory management flags. The name was inspired by the PythonPyCapsule
type.
Fortran wrapper
Fortran functions which call the C wrapper functions.
library
A collection of C++ declarations wrapped at the same time. This creates a Fortran or Python module.
native type
Integer or real of any size.
shadow class
A Fortran derived type which contains a capsule and type-bound functions to provide a Fortran object-oriented interface similar to a C++ class. Similar to a PyObject struct in Python.
splicer
A block of code which implements the wrapper. It is generated by Shroud but can be replaced with a user provided implementation. A splicer also provides a place to insert code into a generated file a well defined places. This allows user provided code to be preserved when regenerating wrappers.