def api_func(exe, idx, model_ws=None): success = False name = ex[idx].upper() if model_ws is None: model_ws = "." try: mf6 = ModflowApi(exe, working_directory=model_ws) except Exception as e: print("Failed to load " + exe) print("with message: " + str(e)) return api_return(success, model_ws) # initialize the model try: mf6.initialize() except: return api_return(success, model_ws) # time loop current_time = mf6.get_current_time() end_time = mf6.get_end_time() # reset sy with bmi set_value sy_tag = mf6.get_var_address("SY", name, "STO") new_sy = mf6.get_value(sy_tag) new_sy.fill(sy_val) mf6.set_value(sy_tag, new_sy) # model time loop idx = 0 while current_time < end_time: # run the time step try: mf6.update() except: return api_return(success, model_ws) # update time current_time = mf6.get_current_time() # increment counter idx += 1 # cleanup try: mf6.finalize() success = True except: return api_return(success, model_ws) # cleanup and return return api_return(success, model_ws)
def api_func(exe, idx, model_ws=None): success = False name = ex[idx].upper() if model_ws is None: model_ws = "." try: mf6 = ModflowApi(exe, working_directory=model_ws) except Exception as e: print("Failed to load " + exe) print("with message: " + str(e)) return api_return(success, model_ws) # initialize the model try: mf6.initialize() except: return api_return(success, model_ws) # test the interface models check_interface_models(mf6) # time loop current_time = mf6.get_current_time() end_time = mf6.get_end_time() while current_time < end_time: try: mf6.update() except: return api_return(success, model_ws) current_time = mf6.get_current_time() # finish try: mf6.finalize() success = True except: return api_return(success, model_ws) # cleanup and return return api_return(success, model_ws)