Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/csdms/bmi-c
Basic Model Interface for C
https://github.com/csdms/bmi-c
bmi c cmake csdms
Last synced: 3 days ago
JSON representation
Basic Model Interface for C
- Host: GitHub
- URL: https://github.com/csdms/bmi-c
- Owner: csdms
- License: mit
- Created: 2014-12-11T19:18:31.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2024-06-24T21:18:05.000Z (6 months ago)
- Last Synced: 2024-06-24T22:56:46.435Z (6 months ago)
- Topics: bmi, c, cmake, csdms
- Language: C
- Homepage: https://bmi.readthedocs.io
- Size: 85 KB
- Stars: 1
- Watchers: 8
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![DOI](https://zenodo.org/badge/27887433.svg)](https://zenodo.org/badge/latestdoi/27887433)
[![Build and Test](https://github.com/csdms/bmi-c/actions/workflows/test.yml/badge.svg)](https://github.com/csdms/bmi-c/actions/workflows/test.yml)
[![Anaconda-Server Badge](https://anaconda.org/conda-forge/bmi-c/badges/version.svg)](https://anaconda.org/conda-forge/bmi-c)
[![Anaconda-Server Badge](https://anaconda.org/conda-forge/bmi-c/badges/platforms.svg)](https://anaconda.org/conda-forge/bmi-c)
[![Anaconda-Server Badge](https://anaconda.org/conda-forge/bmi-c/badges/downloads.svg)](https://anaconda.org/conda-forge/bmi-c)# bmi-c
C bindings for the CSDMS [Basic Model Interface](https://bmi.readthedocs.io).
## Build/Install
The C BMI bindings can be built on Linux, macOS, and Windows.
Instructions are given below.**Prerequisites:**
* A C compiler
* CMakeAlternately,
[conda binaries](https://anaconda.org/conda-forge/bmi-c)
have been built for Linux, macOS, and Windows.
Install the C BMI bindings (no build needed)
into an Anaconda distribution withconda install bmi-c -c conda-forge
### Linux and macOS
To install the C BMI bindings from source with CMake, run
mkdir _build && cd _build
cmake .. -DCMAKE_INSTALL_PREFIX=
make installwhere `` is the base directory
in which to install the bindings (`/usr/local` is the default).
When using a conda environment,
use the `$CONDA_PREFIX` environment variable.The installation will look like:
```bash
.
|-- include
| `-- bmi.h
`-- lib
`-- pkgconfig
`-- bmic.pc
```### Windows
An additional prerequisite is needed for Windows:
* Microsoft Visual Studio 2017 or Microsoft Build Tools for Visual Studio 2017
To configure and install the C BMI bindings from source with CMake,
run the following in a [Developer Command Prompt](https://docs.microsoft.com/en-us/dotnet/framework/tools/developer-command-prompt-for-vs)mkdir _build && cd _build
cmake .. ^
-G "NMake Makefiles" ^
-DCMAKE_INSTALL_PREFIX= ^
-DCMAKE_BUILD_TYPE=Release
cmake --build . --target install --config Releasewhere `` is the base directory in which to install the bindings.
The default is `"C:\Program Files (x86)"`.
Note that quotes and an absolute path are needed.
When using a conda environment, use `"%CONDA_PREFIX%\Library"`.## Use
To write a BMI for a model,
include the `bmi.h` header and implement all the BMI functions
included in the interface defined therein.
BMI functions that aren't used
(e.g., `get_grid_x` for a uniform rectilinear grid)
can simply return the BMI_FAILURE status code.
A sample implementation is given in the
https://github.com/csdms/bmi-example-c
repository.