k * Soil_C therefore needs two connectors: one from k and one from the pool Soil C that it drains.Soil C is written Soil_C. Capitals do not matter.+ - * / ^ and parentheses; exp ln log10 sqrt abs min max sin cos mod int round; IF a > b THEN x ELSE y with < <= > >= = <> AND OR NOT; TIME, DT, PI; STEP(height, t) switches on at time t; RAMP(slope, t) rises from time t; PULSE(amount, t, interval) moves an amount in a single step at time t, repeating every interval if one is given.
Results stay hidden until you press Run, and they hide again whenever you change the model. Before each run, choose what to plot by clicking names above the graph, and write down or sketch what you expect. Tick Rerun on every edit to watch the graph change as you type or drag a slider instead.
Each pool's equation is d(pool)/dt = inflows − outflows; the Equations tab lists them. With Euler, each step computes every flux from the current pools, then sets pool(t + DT) = pool(t) + DT × (inflows − outflows). Because the fluxes are held fixed for the whole step while the pools change, a large DT overshoots. Runge–Kutta 4 evaluates the fluxes four times inside each step and averages them, so it is far more accurate at the same DT. A practical test: halve DT and run again. If the graph changes, DT was too large.
A non-negative pool cuts its outflows when they would drain it below zero within a step. A one-way flux never runs backwards: a negative result is treated as zero.
Your model is kept in this browser between visits. Save writes a .json file you can hand in or share; Open reads one back. Copy model puts the same text on the clipboard; pasting that text anywhere on this page (outside a text box) opens it. Copy graph copies the graph, with a legend, as a picture for a document or slide.