You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Basic Model Interface (BMI) is a set of functions that standardizes how numerical models can be queried, modified, and run. A model with a BMI exposes the same set of functions, no matter which language the model is written in. While a BMI can be specified for any language, CSDMS currently supports C, C++, Fortran, and Python. https://csdms.colorado.edu/wiki/Workbench
Making the framework's Component BMI-compliant would have several benefits:
Fortran/C/C++ components can be turned into a Python package using babelizer (https://babelizer.readthedocs.io/en/latest/), this would allow us to lift our dependency on numpy.f2py which is not maintained anymore, and harmonise the way Fortran source code on one side and C/C++ source code on the other side are packaged (at the moment the former with f2py, and the latter with cython)
component contributions made to cm4twc can be reused in other BMI-compliant frameworks, this would make the contributions even more worth the effort
Making a Component BMI-compliant would not increase the effort involved in making a component contribution as the set of functions making up the BMI will be given to the contributors "for free" (i.e. by class inheritance), they will only need to implement the initialise-run-finalise methods, as before.
There may be some issues with juggling between CSDMS standard names and CF-conventions standard names.
The text was updated successfully, but these errors were encountered:
More information available here: https://bmi.readthedocs.io/en/latest/
Making the framework's
Component
BMI-compliant would have several benefits:babelizer
(https://babelizer.readthedocs.io/en/latest/), this would allow us to lift our dependency onnumpy.f2py
which is not maintained anymore, and harmonise the way Fortran source code on one side and C/C++ source code on the other side are packaged (at the moment the former withf2py
, and the latter withcython
)cm4twc
can be reused in other BMI-compliant frameworks, this would make the contributions even more worth the effortMaking a
Component
BMI-compliant would not increase the effort involved in making a component contribution as the set of functions making up the BMI will be given to the contributors "for free" (i.e. by class inheritance), they will only need to implement the initialise-run-finalise methods, as before.There may be some issues with juggling between CSDMS standard names and CF-conventions standard names.
The text was updated successfully, but these errors were encountered: