pdf: 600KB - Potsdam Institute for Climate Impact Research
pdf: 600KB - Potsdam Institute for Climate Impact Research
pdf: 600KB - Potsdam Institute for Climate Impact Research
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
9<br />
• Programs <strong>for</strong> research-grade models are costly to develop and maintain, often running into<br />
many thousands of lines of code and requiring specialist programming skills.<br />
• Debugging is difficult. It is hard to put probes in a model to (e.g.) plot some arbitrary<br />
variable, and it is difficult to test submodels in isolation.<br />
• Re-use of models, submodels and model support tools is difficult and thus rare.<br />
• Programs, and thus the models they embody, frequently become obsolete at the end of the<br />
research project within which they were developed.<br />
• It can very hard <strong>for</strong> others to comprehend a model from its program.<br />
• There is no en<strong>for</strong>ced correspondence between a model-as-program and the documentation<br />
(e.g. metadata, comment blocks or journal paper) that describes the model. Variables<br />
cannot have metadata attached to them.<br />
• An equation in a conventional programming language is actually an assignment statement.<br />
This means that, while it is possible to write principled programs to implement a model, the<br />
language does not en<strong>for</strong>ce this.<br />
• There is a considerable conceptual gap between the constructs provided by a programming<br />
language, and those in the head of modellers when they design a model<br />
Box 2.1 What's wrong with implementing a model as a computer program?