Time Agg Series Slot Config: Skip intervals containing NaNs [6036] [4] Bug Number: n/a Release notes (y/n): No (not this detail) For Release Nums: 7.2 A third aggregation option was added (presented as the second of three choices) for the treatment of NaNs (or NaNs and Output values): "Do not aggregate intervals having NaN/Output values". The target timesteps in the aggregated series slot of such intervals are assigned NaN. Changes made today, recognizing these two nuances: (1) The "Synchronize Objects with New Timestep" aggregation function options offer special handing of NaN-or-Output values, whereas the Time Aggregation Series Slot aggregation function options offer special handling for only NaN values. (2) With the "First" and "Last"* aggregation functions, series slot timesteps having NaNs and Output values in timesteps other than those (the first or last timestep in each aggregation interval) should not effect the operation of the new option. Current screenshots: http://cadswes2.colorado.edu/~philw/2017/bugs/6036/2017-12-12/SetRunTimestepAction2.png http://cadswes2.colorado.edu/~philw/2017/bugs/6036/2017-12-12/SynchronizeTimestepChangeDlg3.png http://cadswes2.colorado.edu/~philw/2017/bugs/6036/2017-12-12/TimeAggSerSlotConfig3.png Note: There is a pre-existing bug with the "Error on NaN" choice when the "First" or "Last"* aggregation function is selected. Only one value in the source interval should be considered (i.e. the first or last), but we are generating an error if a NaN is encountered in some other timestep. This preexisting problem isn't related to the introduction of the new "Do not aggregate intervals having NaN values" option, so I'm going to proceed with this code change, and file a bug for that problem. DETAIL: The problem is that this condition is detected in the source timestep iteration in method SeriesSlot::TimeAggSpec::recomputeOwnerSlot(), but needs to be moved down to computeAggSlotValue() or the aggregation function helper functions called from that method. *Note that "Last" is the implicit aggregation function for aggregation in the "Synchronize Timestep Change" operation when changing the model timestep size, e.g. from daily to monthly -- FOR VOLUME UNITS.