We describe an algorithm that uses pro rata allocation between inter-pool flows to meet conservation of mass/energy constraints and avoid execution order dependence. More commonly used clipping methods do not satisfy these constraints when multiple flows from small pools exceed the total size of the pool. Overrun, which occurs when a pool is increased or decreased beyond its capacity, typically a decrease below zero, leads to failure to conserve mass. Clipping avoids overrun by restricting the size of pools, usually by setting negative values to zero, which can in turn lead to unacceptable error levels in the simulation's output, particularly in terms of sensitivity to execution order. In addition to the normal 'current' and 'next' copies of the system's state variables, this algorithm requires an 'output' copy, which sums outputs from each pool. Individual flows from a pool are divided by the output sum to determine the proportion of the pool each flow receives. Additionally, the approach allows tracking of individual mass flows, which are sometimes more interesting than their net effect on the pools on which they operate. Implementation details and a comparison with a clipping type algorithm are given in terms of a GIS based meadow ecosystem hydrology submodel. In a simple test case, also presented, the pro rata algorithm more consistently tracks the target solution (given by an extremely small time step). (C) 2000 Elsevier Science B.V.
Bibliographical noteFunding Information:
All authors supported at least in part by NSF grant DEB-9615326. NRRI-CWE contribution number 251.
- Conservation of mass
- Execution order
- Finite difference
- Pro rata algorithm