Somewhere in the discussion around and after a post of mine on Junkscience is junk I realised that people just don't understand repeatability in GCMs, or indeed much about them at all. This may be in part because they have assumed "telling us precisely which model you used, which initialisation files and what forcing values you supplied (so we can indulge that repeatability thing" (from http://www.junkscience.com/MSU_Temps/Model_Request.htm) made some kind of sense. Sadly now I can't find where the comments were, so I'll try to make it up.
So... although I'm fairly sure much of this is the same for most modern atmosphere-ocean GCMs, I'm actually talking specifically about [[HadCM3]].
There are two sorts of repeatability: you run the model again, and you get *exactly* the same results down to the last bit. This is call bit-reproducibility. Or, you run the model again, and you get *scientifically* the same result (the same climate; probably the same response to forcing within statistical error) but the exact details of the weather differ. Because the climate is chaotic (in the sense that small initial perturbations rapidly amplify) and GCMs reproduce this well, if your model diverges even slightly from bit-reproducibility it will diverge strongly from it, because the details of the individual weather will be totally different. But the climate (statistics of the weather) will be the same.
Which is a good time to point out that GCMs are really weather forecast models run at a lower resolution but for much longer. When you *see* GCM results you normally see global-mean annual-mean data. Don't be confused by this (as some clearly are) into thinking this is what the model directly outputs. It directly outputs temperatures at each gridpoint (96*73 in the case of hadam3 at std res; and in fact at 19 atmos levels too; and of course all the other model variables too) at each timestep (1/2 hour) and this is then meaned up into what you see.
For scientific purposes, bit-reproducibility is not necessary. The weather isn't supposed to be any individual events anyway, so you don't care if you get different weather. But for computational purposes, its rather useful. Firstly, if you're looking for the bug that caused a model crash, its pretty hard to find if the model isn't going to follow the same path when run again. Secondly, the model runs on multiple processors. Bit-reproducibility means it will follow exactly the same path even if the number of processors is different, or if the decomposition is 2*4 instead of 4*2. Also, a good test of the correctness of the MPP decomposition is to run it on different numbers of procs to check you get the same answer.
But bit-reproducibility is only possible on the same processor type, with the same compiler (probably the same version) and the same compiler options, and exactly the same code, and exactly the same input constants, and exactly the same start files, which are themselves enormous. And of course you have to be competent, which lets out Junkscience right from the start. In theory, from the papers and documentation you can write a version of HadCM3 that would be scientifically equivalent. You have no hope of writing one that is bit-equivalent. Its also possible to run the model in non-bit-reproducible mode if you want to (its slightly faster; for example, for bit-r you need to manage the corss-processor calculations in a particular way to get them to come out exactly the same).
And sometimes you don't want bit-reproducibility. The figure that JS are too stupid to see (SPM fig 4) has an ensemble of model runs deliberately started from different initial conditions so that the weather would be different in each, to get a feel for the range of natural variability. If you started a model (assumed to be 100% correct) back at 1860 with 99.9999% accurately known initial conditions you wouldn't expect it to track the individual years accurately (which is why those stupid sci-fi novels about time-travel, where they wander around being careful not to toouch anything, and only get into trouble when they accidentally crush a butterfly, are nonsense. Just being there, standing in the way of the air currents, is enough to totally change the weather and hence all of history). Hence to know if your model is right, you need an ensemble of runs to bracket the natural variability (and you may get unlucky and find that the real world took an unlikely branch).