@@ -0,0 +1,2251 @@
+import numpy as np%0A%0A%0Aclass Bmi(object):%0A    _input_var_names = (%22land_surface__elevation%22, %22land_surface_air__temperature%22)%0A    _output_var_names = (%0A        %22land_surface__elevation%22,%0A        %22land_surface~10m-above_air_flow__speed%22,%0A    )%0A%0A    _var_units = %7B%0A        %22land_surface__elevation%22: %22m%22,%0A        %22land_surface_air__temperature%22: %22C%22,%0A        %22land_surface~10m-above_air_flow__speed%22: %22m/s%22,%0A    %7D%0A%0A    def __init__(self):%0A        self._values = %7B%0A            %22land_surface__elevation%22: np.empty(12, dtype=float),%0A            %22land_surface_air__temperature%22: np.empty(12, dtype=float),%0A            %22land_surface~10m-above_air_flow__speed%22: np.empty(12, dtype=float),%0A        %7D%0A%0A    def initialize(self, config_file):%0A        with open(config_file, %22r%22):%0A            pass%0A%0A    def update(self):%0A        pass%0A%0A    def finalize(self):%0A        pass%0A%0A    def get_component_name(self):%0A        return %22Test BMI component%22%0A%0A    def get_input_var_names(self):%0A        return self._input_var_names%0A%0A    def get_output_var_names(self):%0A        return self._output_var_names%0A%0A    def get_current_time(self):%0A        return 0.%0A%0A    def get_start_time(self):%0A        return 0.%0A%0A    def get_end_time(self):%0A        return 1.%0A%0A    def get_time_step(self):%0A        return 1.%0A%0A    def get_time_units(self):%0A        return %22s%22%0A%0A    def get_var_grid(self, name):%0A        return 0%0A%0A    def get_var_itemsize(self, name):%0A        return 8%0A%0A    def get_var_nbytes(self, name):%0A        return 8 * 12%0A%0A    def get_var_type(self, name):%0A        return %22float%22%0A%0A    def get_var_units(self, name):%0A        return self._var_units%5Bname%5D%0A%0A    def get_var_location(self, name):%0A        return %22node%22%0A%0A    def get_grid_rank(self, id_):%0A        return 2%0A%0A    def get_grid_size(self, id_):%0A        return 12%0A%0A    def get_grid_type(self, id_):%0A        return %22uniform_rectilinear%22%0A%0A    def get_grid_shape(self, id_, shape):%0A        shape%5B:%5D = (3, 4)%0A        return shape%0A%0A    def get_grid_spacing(self, id_, spacing):%0A        spacing%5B:%5D = (10., 20.)%0A        return spacing%0A%0A    def get_value(self, name, buffer):%0A        buffer%5B:%5D = self._values%5Bname%5D%0A        return buffer%0A%0A    def set_value(self, name, buffer):%0A        self._values%5Bname%5D%5B:%5D = buffer%0A        return buffer%0A

Add bmi module with a sample Bmi class.