unifhy-org / unifhy

A Unified Framework for Hydrology
https://unifhy-org.github.io/unifhy
BSD 3-Clause "New" or "Revised" License
11 stars 5 forks source link

Make `Component` compliant with BMI #26

Open ThibHlln opened 3 years ago

ThibHlln commented 3 years ago

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

More information available here: https://bmi.readthedocs.io/en/latest/

Making the framework's Component BMI-compliant would have several benefits:

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.