BMI

Execute BMI-wrapped geoscience models with initialize, update, and finalize lifecycle functions.

1|Updated Mar 31, 2026
One-click install
npx skills add https://github.com/lzwei196/KISS---Knowledge-Infrastructure-for-Scientific-Simulation --skill bmi
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: BMI
Source: https://github.com/lzwei196/KISS---Knowledge-Infrastructure-for-Scientific-Simulation/tree/main/models/BMI
Command: npx skills add https://github.com/lzwei196/KISS---Knowledge-Infrastructure-for-Scientific-Simulation --skill bmi

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Provides a unified, standard interface for BMI-wrapped models to be initialized, run, and finalized, enabling robust automation, cross-language coupling, and easier integration within orchestration pipelines.

Core Features & Use Cases

  • End-to-end BMI lifecycle support (initialize, update, finalize) for models implemented in Python, C, Fortran, Java, and more.
  • Cross-model data exchange with grid awareness and unit-consistent inputs/outputs to facilitate coupling.
  • Preflight validation and diagnostic triplets to catch common errors before execution and during coupling.
  • Use Case: Couple a heat diffusion BMI model with a river routing BMI model and automatically extract time-series outputs for analysis.

Quick Start

Use available BMI runner tools to configure a YAML config, initialize the model, step through time, and collect outputs.

Frequently Asked Questions about BMI

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I couple Earth system models implemented in different programming languages?

Model coupling across different programming languages is handled by integrating BMI-wrapped models through a standardized interface, enabling initialize, update, and finalize operations for cross-language data exchange.

What is the BMI v2.0 specification for model interfaces?

The BMI v2.0 specification is a standardized interface comprising 31 functions that supports grid and shape handling, UDUNITS, preflight checks, and a diagnostic triplet system for Earth system models.

How do I run a BMI model end-to-end using a YAML configuration?

You can run a BMI model by using a BMI runner tool to configure a YAML file, initialize the model, step through time updates, and collect outputs to complete the end-to-end execution lifecycle.

Does BMI support unit-aware grid handling for cross-model data exchange?

Yes, BMI supports cross-model data exchange with grid awareness and unit-consistent inputs and outputs, utilizing UDUNITS to ensure correct data alignment during Earth system model coupling.

What validation checks are performed before executing a coupled BMI model?

Preflight validation and a diagnostic triplet system are performed before execution and during coupling to catch common errors in BMI-wrapped models, ensuring robust automation and integration within orchestration pipelines.

Can I use BMI to couple a heat diffusion model with a river routing model?

Yes, you can couple a heat diffusion BMI model with a river routing BMI model using the standardized interface, which automatically extracts time-series outputs for analysis while maintaining unit consistency.