Instructions for adding a BMI to a model

From CSDMS
Revision as of 11:59, 28 September 2016 by Mpiper (talk | contribs) (Add Units section)

Currently, these are only (very) loose notes gathered from recent work with Mariela and Scott.

Notes

What variables will your model accept as input, and provide as output? Consult the list of standard names.

However, don't use standard names in the input file for your model! (I'm trying to work around this, however.)

Python instructions. See examples on GitHub for C, C++, Fortran, Java (incomplete).

The .bmi directory provides information on the model's BMI. It is used by CSDMS software engineers to transform the model into a plug-and-play component.

Explain the four required files:

  1. api.yaml
  2. info.yaml
  3. parameters.yaml
  4. the model input file

Use CamelCase for the component name in api.yaml. This is a style convention for CSDMS components.

Units

Parameters should be described with standard units. CSDMS uses the UDUNITS package developed by Unidata. UDUNITS follows the syntax for unit strings developed by NIST.

Time

CSDMS has traditionally used days, d, for time units. Years, yr, are also used. We should really move to the SI standard of seconds, s.