Revision as of 10:42, 7 August 2018 by WikiSysop (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Joint CSDMS-SEN annual meeting 2016: Capturing Climate Change

BMI: Live!

Eric Hutton

University of Colorado, Boulder, United States
Mark Piper University of Colorado, Boulder United States

CSDMS has developed the Basic Model Interface (BMI) to simplify the conversion of an existing model in C, C++, Fortran, Java, or Python into a reusable, plug-and-play component. By design, the BMI functions are straightforward to implement. However, in practice, the devil is in the details.

In this hands-on clinic, we will take a model -- in this case, an implementation of the two-dimensional heat equation in Python -- and together, we will write the BMI functions to transform it into a component. As we develop, we’ll unit test our component with nose, and we’ll explore how to use the component with a Jupyter Notebook. Optionally, we can set up a GitHub repository to store and to track changes to the code we write.

To get the most out of this clinic, come prepared to code! We have a lot to write in the time allotted. We recommend that clinic attendees have a laptop with the Anaconda Python distribution installed. We also request that you skim:

⤅ BMI description (
⤅ BMI documentation (
⤅ BMI GitHub repo(

before participating in the clinic.

Please acknowledge the original contributors when you are using this material. If there are any copyright issues, please let us know ( and we will respond as soon as possible.

Of interest for:
  • Cyberinformatics and Numerics Working Group