A common task in Lagrangian oceanography is to calculate a large number of drifter trajectories from a velocity field precalculated with an ocean model. Mathematically, this is simply numerical integration of an ordinary differential equation (ODE), for which a wide range of different methods exist. However, the discrete nature of the modelled ocean currents requires interpolation of the velocity field in both space and time, and the choice of interpolation scheme has implications for the accuracy and efficiency of the different numerical ODE methods.

We investigate trajectory calculation in modelled ocean currents with 800 m, 4 km, and 20 km horizontal resolution, in combination with linear, cubic and quintic spline interpolation. We use fixed-step Runge–Kutta integrators of orders 1–4, as well as three variable-step Runge–Kutta methods (Bogacki–Shampine 3(2), Dormand–Prince 5(4) and 8(7)). Additionally, we design and test modified special-purpose variants of the three variable-step integrators, which are better able to handle discontinuous derivatives in an interpolated velocity field.

Our results show that the optimal choice of ODE integrator depends on the resolution of the ocean model, the degree of interpolation, and the desired accuracy. For cubic interpolation, the commonly used Dormand–Prince 5(4) is rarely the most efficient choice. We find that in many cases, our special-purpose integrators can improve accuracy by many orders of magnitude over their standard counterparts, with no increase in computational effort. Equivalently, the special-purpose integrators can provide the same accuracy as standard methods at a reduced computational cost. The best results are seen for coarser resolutions (4 and 20 km), thus the special-purpose integrators are particularly advantageous for research using regional to global ocean models to compute large numbers of trajectories. Our results are also applicable to trajectory computations on data from atmospheric models.

Calculating trajectories of tracers through a precalculated velocity field is a
common task for many applications

For all these applications, it is of interest to obtain trajectories of the desired accuracy with minimal computational work or conversely to obtain the most accurate solution possible for a given amount of computational effort. Marine and atmospheric transport applications often require computing large numbers of trajectories, which are essentially solutions of an ordinary differential equation (ODE). As this can be computationally quite demanding, guidance on how to select the optimal combination of numerical schemes for a given application is of practical value.

We further note that in ODE parlance, the velocity fields represented by ocean currents (and wind) may be both stable and unstable, often presenting hyperbolic points where initially small errors may grow exponentially. It may therefore be useful to employ higher-order integration methods or small time steps with lower-order integration methods. This is particularly relevant for long integration times (months to years) where errors accumulate and can be amplified.

In the applied mathematics community, a standard first choice for numerically
solving an ODE is a variable-step integrator (see, e.g.

However, there is limited discussion of such an approach in the literature
on applied Lagrangian oceanography. Integrators used in marine transport
applications may range from Euler's method (see, e.g.

In the context of LCS, variable-time-step integrators appear to be a more
common, yet not universal, choice. Interpolation schemes, which must be used to
evaluate discretely gridded velocity fields at arbitrary points, have also
received some attention in the LCS field.

Solving diverse types of marine-transport problems is a common task, and given the vast number of computations that are often involved, it seems natural to ask how variable-step integrators perform. Because a precalculated velocity field is necessarily given at discrete times and spatial locations, interpolation must be used to create continuous representations of these velocity fields that can then be integrated using numerical schemes. In practice, the choice of an interpolation scheme will have implications for the accuracy that can be achieved with the different numerical integrators, as well as the computational effort.

In this paper, we compare several approaches for interpolation of the velocity
field and numerical integration of the trajectories. We include both fixed and
variable step-size integrators. As input data to the trajectory calculations, we use modelled ocean currents at 20 km, 4 km, and 800 m resolutions. These are representative of current high-resolution Earth Modelling Systems, regional (eddy-resolving) ocean models,
and submesoscale-resolving ocean models, respectively

We note that the purpose of our investigation is not to determine how well different model resolutions and different interpolation schemes reproduce physical drifter trajectories. Rather, we address the purely numerical question of which combinations of integrator and interpolator give the best work–precision balance for a given resolution.

The layout of this paper is as follows: in Sect.

The topic of the current paper is to study the numerical calculation of
tracer advection by precalculated, gridded velocity fields, with a focus on
applications in Lagrangian oceanography. Note that we ignore diffusion, and
consider pure advection with ocean currents. In this case, the trajectory of a particle being advected passively through a velocity field is defined by the ODE

Finding the solution of an initial value problem by numerical means is known as numerical integration of the differential equation. A large body of literature exists on the topic of numerical integration, and a range of different techniques exist, both general-purpose methods that work with many different problems (see, e.g.

In the following, we introduce some elements from the theory of numerical
integration of ODEs, which will be needed for the later discussion. While
elsewhere in this paper we consider

Common to all numerical ODE methods is that they make discrete steps in time.
In a fixed-step method, time is incremented by a fixed amount,

Finally, we will use notation where we let

Since numerical integration is most commonly used in situations where the
exact solution is unknown, it becomes necessary to estimate the error by
purely numerical means. In general, the idea is that a smaller time step,

There are two important measures of the error: the local error and the global error. The local error is the error made in a single step. Assume there is no error in the position at time

We have chosen to consider seven different numerical integration schemes, all
from the family of Runge–Kutta methods. These include four methods with fixed time step:

first-order Runge–Kutta (Euler's method),

second-order Runge–Kutta (explicit trapezoid),

third-order Runge–Kutta (Kutta's method),

fourth-order Runge–Kutta.

Bogacki–Shampine 3(2),

Dormand–Prince 5(4),

Dormand–Prince 8(7).

As an example and to aid the explanation of the time step adjustment routine
that will follow in Sects.

Comparing Eqs. (

Dormand–Prince 5(4) uses 7 evaluations of

In the code used to carry out numerical experiments, time step adjustment has
been implemented based on the description in

For both accepted and rejected steps, we adjust the time step after every step. Since

Modelled ocean current velocity data used in Lagrangian oceanography are
commonly provided as vector components given on regular grids of discrete
points (

In this study, we have chosen to consider three different interpolation schemes, using the same order of interpolation in both space and time:

second-order: linear interpolation;

fourth-order: cubic spline interpolation;

sixth-order: quintic spline interpolation.

One-dimensional illustration of different degrees of interpolation. From the same 11 data points (shown as black circles in the top panel), we have constructed a linear interpolation (continuous lines), a cubic spline interpolation (dashed lines), and a quintic spline interpolation (dotted lines). From the top, the panels show the interpolated functions, the first derivative, the second derivative, and the third derivative. We observe that linear interpolation,

To aid the later discussion, we will briefly explain spline interpolation in one dimension. The generalisation to higher dimensions is natural. Assume that we have a grid of

Finally, we would like to note two important points on the subject of
interpolation in Lagrangian oceanography. First, the purpose of interpolating
discrete current data is not to approximate the unresolved turbulent
motion of the ocean but simply to provide a consistent recipe for evaluating
gridded data at arbitrary locations. Second, once an interpolation scheme has been chosen, one has effectively replaced the gridded input data by a set of
analytical expressions, specifying a way in which to evaluate the velocity field at any point and time. Hence, for a given dataset and interpolation scheme, the initial value problem given by

In this section, we will discuss the implications of our ODE having a right-hand side with discontinuous derivatives. We consider an analytical example with one discontinuity to illustrate the problem and present a modified special-purpose integration routine that handles the discontinuity. We then describe how to implement the same idea in special-purpose variants of regular variable-step integrators for application in Lagrangian oceanography.

As mentioned in Sect.

In practical applications, with interpolated velocity fields, the derivatives
are not always continuous. For example, a common choice in the LCS literature
appears to be a variable-time-step integrator of order 4 and 5 (see, e.g.

For such cases, strategies exist to deal with the discontinuities in the right-hand side or (more commonly in our case) its derivatives

Ignore the discontinuity, and let the variable-step-size integrator sort out the problem.

Use an integrator with an error control routine specifically designed to detect and handle discontinuities (see, e.g.

Use information about the position of the discontinuity to stop and restart integration at that point.

Given that the issue of interpolation and integration is not typically discussed in great detail in applied papers on Lagrangian oceanography, one assumes that most authors implicitly select the first strategy. However, as pointed out by

To illustrate the effect of discontinuities in the derivative of the right-hand side, we consider the following ODE:

Global error in the numerical solution of the initial value problem given by Eq. (

In Fig.

The reason for this behaviour is the discontinuity at

Inspired by this result, we have designed a special-purpose version of the
fourth-order Runge–Kutta integrator, specifically for this problem with a
discontinuity at

The global error as a function of time step for this special-purpose integrator is also shown in Fig.

In terms of the three strategies for dealing with discontinuities (see
Sect.

We will take as our starting point variable-time-step Runge–Kutta methods, as
these are commonly used and generally quite efficient, and the time step
adjustment routine outlined in Sect.

The variable-time-step integrator calculating the trajectory will make steps,
from position

The aim of the numerical experiments is to investigate the practical implication
of different combinations of interpolation and integration schemes and to compare
the special-purpose integrators described in Sect.

In order to allow the interested reader to reproduce our results, we provide the Fortran code used to run the simulations, the ocean current data used, and the Jupyter notebooks that were used to analyse the data

The datasets used were obtained from the Norwegian Meteorological Institute, and were taken from the following model setups:

Arctic20km (20 km horizontal resolution, 1 h time step),

Nordic4km (4 km horizontal resolution, 1 h time step),

NorKyst800m (800 m horizontal resolution, 1 h time step).

The dimensions of the datasets are

Map showing the outline of the three datasets considered, as well as the initial positions of the tracers used in the numerical experiments.

The initial conditions for the trajectory calculations were chosen to be

The figure shows the initial and final positions of the 10 000 particles for the three different datasets. The initial positions are the same, but the final positions differ. The average transport is towards the north in all cases, but the higher-resolution currents show more eddy activity, particularly in the eastern region, which falls within the Norwegian Coastal Current (see, e.g.

As we wish to estimate the global error of our numerical solutions, when the true solutions are unknown, we need to establish highly accurate numerical solutions for all 10 000 initial conditions to use as a reference. Reference solutions must be established for each dataset, as they will in general give different trajectories. Additionally, reference solutions must also be established for each interpolation scheme, as they will also in general give different trajectories. Hence, for three datasets and three interpolation schemes, we need nine different sets of reference solutions.

We point out that we here talk about reference solutions in a purely numerical sense, as the most mathematically accurate solution of the initial-value problem given by an initial position and a discrete velocity field with a specified interpolation scheme. Which of the datasets and interpolation schemes that most accurately reproduce the trajectories of true Lagrangian drifters in the ocean is a different question, outside the scope of this investigation.

For numerically obtained reference solutions to be useable in calculating error estimates, they need to be significantly more accurate than any of the numerical solutions that are to be evaluated. As an example, consider a fixed-step integrator and let the numerical solution at time

Then, the error in the reference solution, relative to the true (but unknown)
solution, is given by

To verify that the errors in the reference solutions are indeed much smaller
than any of the other errors we wish to estimate, we consider the convergence of the numerically estimated error. The details of the analysis to identify
reference solutions are shown in Appendix

To allow easy testing of different combinations of datasets, interpolators, and integrators in a setting relevant for marine transport applications, a simple Lagrangian particle transport code was written in Fortran. All the integrators were implemented as described in Sects.

At the start of the simulations, subsets of the ocean current datasets were
loaded from file. The horizontal extent of the subsets are shown in
Fig.

The data were passed to the

We note that this approach constructs a single global interpolation object,
that is used throughout the simulation. It is also possible to construct local spline interpolations using only the smallest required number of points, surrounding the location where the function is to be evaluated
(

During the simulations, the trajectory of each particle was calculated independently of all others. For the variable-step integrators, this means that each particle had its own time step. It is also possible to apply the variable-step integrators to all particles simultaneously with the same time step. However, due the local variability of the ocean currents, it seemed more reasonable to treat the particles individually, allowing the variable-step integrators to adapt to local conditions for each particle.

The main results are presented as a work–precision diagram, in
Fig.

Number of evaluations of the right-hand side was chosen as a measure of work, as it is more objective than the runtime of the simulation, which would depend on the particular machine used to run the simulations and also be more susceptible to somewhat random variations. However, for the interested reader we show the error as a function of runtime in Fig.

While we analyse the results in terms of number of function calls, we note that higher-degree interpolation is more computationally costly than lower-degree interpolation. This means that the same number of evaluations will take more time if a higher degree of interpolation is used. We found that for the simulations done with the fixed-step fourth-order Runge–Kutta integrator, the simulations with cubic spline interpolation took on average four to five times longer than those with linear interpolation, and the simulations with quintic spline interpolation took on average three to four times longer than those with cubic spline interpolation. As a concrete example, calculating the trajectories of 10 000 particles for 72 h with a 10 min time step with the fourth-order Runge–Kutta integrator, took 11 s with linear interpolation, 51 s with cubic interpolation, and 177 s with quintic interpolation. The numbers were essentially the same for all three datasets (800 m, 4 km and 20 km). These times cover only the trajectory calculation itself, not file I/O or the construction of the global interpolator object.

The fixed-step integrators were run with the range of time steps shown in
Table

Time steps and tolerances used in the numerical experiments.

The tolerances used with the variable-step integrators are also shown in
Table

We observe from Fig.

Relative global error (relative to the reference solution) as a function of number of evaluations of the right-hand side. Note that the special-purpose integrators are (by design) unable to make longer steps than the interval on which the data are provided. This means some of the simulations with higher tolerance (allowing larger errors) have in practice defaulted to fixed-step simulation with a time step of 3600 s, making several of the data points identical. This is most readily observed for the special-purpose Dormand–Prince 8(7) integrator in the lower-right panel.

Variable-step integrators are normally the most efficient choice for
general ODE problems. However, we see that for finding tracer trajectories from interpolated velocity fields, fixed-step integrators are in some cases a better choice than regular variable-step methods. Considering for example cubic spline interpolation (Fig.

The special-purpose variants of the variable-step integrators, particularly
Dormand–Prince 5(4) and 8(7), perform better than the fixed-step methods in most
cases, though not always by a large margin. The reason for the relatively strong
performance of the fixed-step integrators is that the chosen time steps evenly
divide the 3600 s intervals of the datasets. Hence, the fixed-step
integrators will stop and restart integration at the discontinuities in time,
just like the special-purpose integrators (see Sect.

We also note that for the case of linear interpolation, the third-order
Runge–Kutta integrator actually performs slightly better than the fourth-order integrator,
particularly for the smaller errors. The reason for this is that the lack of
continuous derivatives means the fourth-order method does not achieve fourth-order
convergence. As the third-order method uses one fewer evaluation of the right-hand side per step, it therefore has an advantage in terms of computational effort. It is also worth pointing out that the second-order Runge–Kutta method considered here, known as the explicit trapezoid method, has the advantage that it uses no intermediate points in time. Since it only evaluates the right-hand side at times

As a background for discussing the effect of horizontal resolution on our
results, we recall that all the three datasets used have a temporal resolution of 1 h. This means that the particle trajectories will cross a cell boundary in the time-dimension (and thus a discontinuity in the (higher)
derivatives of the right-hand side) every hour. The average current speed for
the time and area studied is approximately 0.2 m s

Looking at the results presented in Fig.

Looking next at the results for cubic spline interpolation
(Fig.

Presumably, the reason why the standard and special-purpose variants of the Bogacki–Shampine 3(2) integrator give more or less identical results for cubic interpolation is the smoothness of the velocity field. It seems the interpolated field is now sufficiently smooth that the method is now third-order consistent. Strictly speaking, this is unexpected. A cubic spline interpolation will have continuous second derivatives, and discontinuous third derivatives. This means that the Bogacki–Shampine 3(2) integrator can indeed be expected to be second-order consistent, but the conditions for the third-order consistency are not satisfied.

Using quintic spline interpolation (Fig.

To understand the large differences in number of function evaluations between
the standard and the special-purpose integrators, we look at the fraction of
rejected steps. For the different integrators and interpolators, and a fixed
tolerance of

The results shown in Table

The largest improvement in accuracy for the special-purpose integrators is thus seen with linear interpolation, but they can also be advantageous with cubic interpolation. With quintic interpolation, only the special-purpose (8)7 integrator has an advantage over its regular counterpart. However, the relative error of the special (8)7 method with quintic interpolation is comparable to the (5)4 method with cubic interpolation. While the solutions will be different with different interpolation schemes, it is possible that overshooting due to a high-order interpolation method without any additional accuracy implies that the (8)7 method is not a good choice for Lagrangian oceanography. Note also that the quintic interpolation scheme is 3–4 times as computationally expensive as the cubic scheme for each evaluation of the right-hand side.

Fraction of steps rejected, averaged over all 10 000 trajectories, with a duration of 72 h, for each combination of interpolation scheme and variable-step-size integrator, for all three datasets and a fixed tolerance of

As mentioned in Sect. 2, we have considered pure advection, ignoring diffusion. Calculating trajectories with pure advection by a deterministic
velocity field is common in several applications, perhaps most notably for
identification of LCS (see, e.g.

However, for many other applications diffusion must be included. Solving
the advection-diffusion equation with a particle method amounts to numerical
solution of a stochastic differential equation (SDE) instead of an ODE. A
range of different SDE schemes exist, and the details differ, but all such
schemes involve adding a random increment at each time step. If the random
increment is far larger than the local numerical error in each step, then the
numerical error in the advection is probably of limited practical importance.
The details will depend on the application, and we encourage experimentation. A detailed description of numerical SDE schemes is outside the scope of this
study, but the interested reader may find it useful to refer to, e.g.

We have seen that the special-purpose integrators are more efficient than their regular counterparts in almost all cases, and sometimes they deliver several
orders of magnitude improvement in accuracy at the same computational cost.
There are two different effects that give the special-purpose integrators their advantage in accuracy and efficiency. The first is that they stop and restart integration exactly at the discontinuities in time, which avoids picking up local errors unbounded by Eq. (

The regular variable-step integrators will frequently try to step across a
discontinuity, only to find that the estimated local error is too large, such
that the step must be rejected and retried with a shorter time step. This process will continue until a time step is found that is short enough to allow the discontinuity to be crossed with an error that stays within the tolerance. As we see from the results in Table

In this paper, we have investigated how different numerical integrators behave in combination with different degrees of interpolation and datasets of different spatial resolution. We have calculated trajectories over 72 h, from 10 000 initial positions, and compared the integrator–interpolator pairs in terms of the error in the final position of each trajectory. We have considered linear, cubic, and quintic spline interpolation, along with four fixed-step Runge–Kutta integrators of orders 1 to 4, three commonly used variable-step integrators, and three special-purpose variants of the latter.

The most striking conclusion from our results is that the special-purpose
integrators we describe in many cases deliver several orders of magnitude more accurate results at no additional cost. Alternatively, they can deliver the same accuracy as standard methods, with highly reduced computational effort. This is achieved by stopping and restarting the integration exactly at the grid points of the dataset along the time dimension. By doing this, we avoid stepping across discontinuities in the (higher) derivatives of the velocity field, and thus we avoid picking up local errors that are unbounded by Eq. (

The benefit is particularly visible for linear and cubic interpolation, and the 4 and 20 km datasets. The increased efficiency of these integrators should be particularly relevant for long-term simulations, such as studies of global transport of plastics or global climate simulations.

Going into more detail, we find that the most efficient choice of integrator
depends on the resolution of the dataset, the degree of interpolation, and the desired accuracy. Looking at cubic interpolation
(Fig.

For linear interpolation, we find that if very small errors are required, the regular variable-step integrators perform better than the fixed-step methods, particularly the Bogacki–Shampine 3(2) integrator. The special-purpose variable-step methods achieve notable improvements, often being several orders of magnitude more precise. For less strict requirements, the third-order Runge–Kutta method appears to be the best choice. However in all cases, there is a considerable improvement in accuracy with the special-purpose integrators relative to the regular variable-step methods.

For quintic spline interpolation, the optimal choice of interpolator again depends on the application. If very small errors are required, the Dormand–Prince 5(4) method appears to be the best performer, or alternatively the special-purpose variant of Dormand–Prince 8(7). If larger errors are acceptable, the fourth-order Runge–Kutta method seems to be the better choice.

It is interesting that if an appropriate fixed step is chosen (i.e. a step that divides the interval between discontinuities in time), the fourth-order Runge–Kutta method is more efficient than the regular Dormand–Prince (5)4 method for all ocean model resolutions. This is true for any interpolation scheme and accuracy, except linear and quintic interpolations when very small errors are desired. The fourth-order method with a good choice of time step also performs well relative to the special-purpose 5(4) method although the latter may significantly outperform the former with linear and cubic interpolations. The strong performance of the fourth-order Runge–Kutta with all resolutions and interpolation schemes makes it a good practical choice.

To conclude, we have investigated the accuracy of trajectory calculation with 10 different ODE integrators for 9 different combinations of current data resolution and order of interpolation. We find that the optimal choice of integrator depends on the interpolation, the resolution, and the required accuracy. In some cases, the most efficient integrator is not the most popular choice in the literature.

We have designed and investigated special-purpose variants of the regular variable-step integrators. Only minimal changes to the code is required to ensure that integration is always stopped and restarted at discontinuities in time. With this change, these special-purpose integrators can in some cases increase the accuracy by many orders of magnitude for the same amount of computational effort. For applications requiring large numbers of trajectories, such as LCS calculations, or for long-term transport calculations, the added accuracy of the special-purpose methods should allow significant reductions in computational expense.

In order to establish highly accurate reference solutions, which are needed to estimate the error when the true solutions are unknown, an expanded set of
time steps and tolerances were investigated. These are given in Table

Every step with a numerical ODE integrator contains some error. The truncation error stems from approximations that are made in constructing the integrator and decreases with time step. The round-off error comes from the finite-precision representation of numbers on a computer and is independent of the time step. Due to numerical round-off error, one can not simply assume that the shortest time steps or smallest tolerance will always give the most accurate answer. As the number of steps increase, the roundoff error will eventually become larger than the truncation error, at which point no accuracy is gained by reducing the step size further.

Loosely speaking, a double precision floating point number can store
approximately 16 significant digits, and any numerical operation should be
thought of as introducing a roundoff error in the least significant digit

Time steps and tolerances used in establishing reference solutions.

In order to establish the most accurate solutions, we compare the fourth-order
Runge–Kutta solutions obtained with very short time steps and Dormand–Prince
8(7) solutions with very small tolerances. We let the fourth-order Runge–Kutta
solutions obtained with time step

To evaluate the accuracy of the numerical solutions, we first keep the
tolerance,

Median relative difference (Eqs.

For shorter time steps, we observe that the relative difference,

Next, we do the opposite comparison, i.e. we use the fourth-order Runge–Kutta
solutions as reference, keep the time step fixed and look at the relative
difference,

Median relative difference (Eqs.

From Figs.

In order to further investigate the relative accuracy of the fourth-order
Runge–Kutta solutions, we consider the change in the solution between two different values of the time step. First, we list all the time steps in Table

Median relative difference (Eqs.

With cubic and quintic interpolation, we see that

Based on the analysis described above, we have decided to use the fourth-order
Runge–Kutta method to obtain the reference solutions used for the analysis in Sect.

Time step used with the fourth-order Runge–Kutta method to obtain the
reference solutions used in Sect.

As a final remark, we mention that it may seem surprising that we are able to
obtain higher accuracy with the fourth-order Runge–Kutta method than with the
Dormand–Prince 8(7) method. Three things are worth pointing out in this context. First, the time steps considered here (see Table

This appendix contains two additional figures to supplement the work–precision diagram shown in Fig.

Second, Fig.

Same as Fig.

Same as Fig.

The code used to run the simulations and analyse the
results, as well as the three different ocean current datasets, can be found at

TN wrote the simulation code and the first draft of the manuscript. Both authors participated in development of ideas, analysis of results, and writing of the final manuscript.

The authors declare that they have no conflict of interest.

The work of Tor Nordam was supported in part by the Norwegian Research Council, and he would also like to thank his colleagues for many a good discussion in the SINTEF CoffeeLab.

The work of Rodrigo Duran was performed in support of the US Department of Energy's Fossil Energy, Oil and Natural Gas Research Program. It was executed by NETL's Research and Innovation Center, including work performed by Leidos Research Support Team staff under the RSS contract 89243318CFE000003. This work was funded by the Department of Energy, National Energy Technology Laboratory, an agency of the United States Government, through a support contract with Leidos Research Support Team (LRST). Neither the United States Government nor any agency thereof, nor any of their employees, nor LRST, nor any of their employees, makes any warranty, expressed or implied, or assumes any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed, or represents that its use would not infringe privately owned rights. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government or any agency thereof. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government or any agency thereof.

This research has been supported by the Research Council of Norway (INDORSE (project no. 267793)) and the U.S. Department of Energy, Oil and Natural Gas (RSS, contract no. 89243318CFE000003).

This paper was edited by Robert Marsh and reviewed by two anonymous referees.