Merge in your new functionality with my dev version. This also makes the new functions optional whilst still maintaining the ability to use the new functions.

I've tried to incorporate your new functionality whilst allowing the old behaviour. Let me know what you think. The script as it stands can:

- Replace the times with a bracketed date (currently two time steps 30 minutes either side of the new input date). The new data are taken as the source for the bracketing if they exist, otherwise it's the last time step of the existing data in the restart file.
- Replace the times with a new time array (must be the same shape as that in the template restart file).
- Replace a given array with a single value for both bracketed and non-bracketed time data (just make indata.temp = 13 to replace all temperatures with a value of 13, for example).

I think I've also kept the loading of data to a minimum (i.e. only doing it when absolutely necessary), but please check that's definitely the case!

The function can also still do the ramping or the new way (the bracketing) without the need for a new argument (I think!).

I added a few more examples so that it's easier to see what's going on.

Let me know if you think this is sensible and particularly if it still does what your version does. If not, we can go with your version.