This material discusses the uses and limitations of dynamical models, instructs students to develop a box model of the carbon cycle, and includes code for running simulations using a simple model I developed for this purpose. Modeling and programming experience are not necessary.
Carbon_Model_ConstFlux.R shows the carbon cycle where every year each flux is the same. This is a very bad model because some pools go to 0 and makes no sense ecologically.
Carbon_Model_LinFeedback.R has the carbon cycle with linear donor control. We calculated rate constants (k) for each flux as the initial pool size/initial flux size and multiplied this k by the pool size at each time t. We discussed using k values based on fluxes and initial source pools and initial sink pools. We also talked about more complicated ways to calculate k to make the model more realistic.
I also set up a place to simplify the model by ignore certain fluxes by reinitializing them to 0. I also set up a boolean value for anthopogenic fluxes, which sets fossil fuels and vegetation destruction to 0 if false and other given values if true. These do not change the model very much because the concentration of carbon changes so little, but the ecological and climatological effects of these tiny changes are really important and can produce feedbacks on plant growth and respiration that are not accounted for in this simple model.
We also talked about a seasonal model of photosynthesis, which was based on the positive half of a sine wave. We coupled this with a linear increase in fossil fuel burning to determine atmospheric CO2 and created a simpler replication of the Mauna Loa CO2 curve from 1960-2000. I cheated on making this model because I knew what it should look like and so I knew what the equation for fossil fuel CO2 emissions should be, but I could have looked at real data to come up with it. (PS_FF.R)