-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use UDUNITS names #6
Comments
Although the problem manifests itself here (the bmi-tester fails on invalid unit names), it's the BMI code in nhm-usgs/bmi-prms6-surface that needs to be modified. |
Hey Mark (@mdpiper), It's not satisfying to have an incomplete integration with pymt and the bmi-tester. I guess in this experiment, these failing's of the PRMS BMIs to not fully meet these requirements fall into the lessons learned bin. |
@rmcd-mscb I had a look at get_var_units in nhm-usgs/bmi-prms6-surface and I'm not sure it would take much re-engineering to fix this units issue. The model can use whatever units it likes, it just needs to report them using the UDUNITS standard, so I think it just means changing the strings returned by get_var_units. Some suggestions (guesses):
I assume the use of temp_units means that the actual temperature units are conditional, based maybe on an input file. If so, the reported units should be dynamically set so that, depending on the model set-up, get_var_units may return e.g. degree_c or degree_f. Similarly, if i/o some variables are conditional, then then get_input_var_names and get_output_var_names should only return the variables that are available for that parameterization. This would mean that the bmi-tester should only call get_input_var_names and get_output_var_names after a parameterization has been set (after initialize, I assume?). |
In the BMI documentation, we recommend using UDUNITS names and abbreviations for units returned by get_time_units and get_var_units. The UDUNITS library is explicitly used in the bmi-tester and pymt. Several of the unit names used in the PRMSSurface BMI don't comply with UDUNITS. This isn't a problem when working with the components themselves, but it will be a problem when coupling with other models.
The text was updated successfully, but these errors were encountered: