Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In the spirit of getting closer to continuous delivery (see https://www.oxinabox.net/2019/09/28/Continuous-Delivery-For-Julia-Packages.html#what-if-i-dont-want-to-release-right-now--dev-versions) we should probably tag and release v0.43.0 soon since PRs #1070, #1057, and #1061 + couple of bug fix PRs would be useful to have.
Release notes:
Fixes a bug in
TwoDimensionalLeith
(PR TendencyTermField (or something like it) for diagnosing exact tendency terms and fluxes #1073, issue Bug in TwoDimensionalLeith closure #1034). Previously tests were being skipped due to extreme slowness. Now we run tests on GPU (but not CPU, where the closure is much slower to compile).Rewrites the interface for "scheduling" output and diagnostics (PR AbstractSchedules for scheduling output and diagnostics #1070). Previously output and diagnostics were usually scheduled by specifying either
time_interval
oriteration_interval
kwargs in the constrcutor for the object in question. Now, the relevant kwarg is calledschedule
and takes a callableAbstractSchedule
object (or any user-defined functionfunc
that returnstrue
orfalse
depending on the single argumentfunc(model)
). This design is more flexible and extensible, and also simplifies underlying code. Four schedules are provided:TimeInterval(interval)
IterationInterval(interval)
WallTimeInterval(interval)
AveragedTimeInterval(interval; window=interval, stride=1)
(for time-averaging output).Breaking changes:
Output writers and diagnostics no longer have the keyword arguments
time_interval
oriteration_interval
. The most commonly-used features that are affected areJLD2OutputWriter
,NetCDFOutputWriter
, andCheckpointer
.JLD2OutputWriter
andNetCDFOutputWriter
no longer have the kwargstime_averaging_window
andtime_averaging_stride
. The specific syntax changes are:time_interval=T
becomesschedule=TimeInterval(T)
iteration_interval=I
becomesschedule=IterationInterval(I)
time_interval=T, time_averaging_window=W
becomesschedule=AveragedTimeInterval(T, window=W)
.