In the NGen Framework, when a BMI formulation expects an evapotranspiration input and there is no configured provider for that input, then a default, internal library calculation is used to provide ET.
The issue here is that this internal library is advertised (in forcing provider) model inputs as kg/m^2. When using a rate as precip forcing, we cannot directly convert this unit automatically using UDUNITS, and so the original value is passed through to the ET function.
This provides incorrect behavior, and should be handled different.
I propose adding a unique name to forcing provider which can be mapped to the forcing input, and assigning this name units in the form of mm/hr. Then the internal ET calculation can query the provider for this name, and if it is present, can use it (along with any required unit conversion). Effectively, this provides the means to treat kg/m^2 as mm/hr only in specifically configured instances.
In the NGen Framework, when a BMI formulation expects an evapotranspiration input and there is no configured provider for that input, then a default, internal library calculation is used to provide ET.
The issue here is that this internal library is advertised (in forcing provider) model inputs as
kg/m^2
. When using a rate as precip forcing, we cannot directly convert this unit automatically using UDUNITS, and so the original value is passed through to the ET function.This provides incorrect behavior, and should be handled different.
I propose adding a unique name to forcing provider which can be mapped to the forcing input, and assigning this name units in the form of
mm/hr
. Then the internal ET calculation can query the provider for this name, and if it is present, can use it (along with any required unit conversion). Effectively, this provides the means to treatkg/m^2
asmm/hr
only in specifically configured instances.