Home > Uncategorized > Does the Climategate code produce reliable output?

Does the Climategate code produce reliable output?

November 30th, 2009 Derek-Jones

The source of several rather important commercial programs have been made public recently, or to be more exact programs whose output is important (i.e., the Sequoia voting system and code and data from the Climate Research Unit at University of East Anglia the so called ‘Climategate’ leak). While many technical commentators have expressed amazement at how amateurish the programming appears to be, apparently written with little knowledge of good software engineering practices or knowledge of the programming language being used, those who work on commercial projects know that low levels of software engineering/programming competence is the norm.

The emails included in the Climategate leak provide another vivid example, if one were needed, of why scientific data should be made publicly available; scientists are human and are sometimes willing to hide data that does not fit their pet theory or even fails to validate their theory at all.

The Climategate source has only only recently become available and existing technical commentary has been derived from embarassing comments and the usual complaint about not using the right programming language (Fortran is actually a good choice of language for this problem, it is widely used by climatology researchers and a non-professional programmer is probably makes best of their time by using the one language they know tolerably well rather than attempting to use a new language that nobody else in the research group knows).

An important quality indicator of the leaked software was what was not there, test cases (at least I could not find any). How do we know that a program’s output is correct? One way to gain some confidence in a program’s correctness is to process data for which the correct output is known. This blindness to the importance of program level correctness testing is something that I often encounter in people who are subject area experts rather than professional programmers; they believe that if the output has the form they are expecting it must be correct and will sometimes add ‘faults’ to ‘fix’ output that deviates from what they are expecting.

A quick visual scan through the source showed a tale of two worlds, one of single letter identifier names and liberal use of goto, and the other of what looks like meaningful names, structured code and a non-trivial number of comments. The individuals who have contributed to the code base obviously have very different levels of coding ability. Not having written any Fortran in anger for over 15 years my ability to estimate the impact of more subtle coding practices has atrophied.

What kind of faults might a code review look for in these programs? Common coding errors such as using uninitialized variables and incorrect argument passing are obvious choices and their are tools available to check for these kinds of error. A much more insidious kind of error, which requires people with the mathematical expertise to spot, is created by the approximate nature of floating-point arithmetic.

The source is not huge, but not small either, consisting of around 64,000 lines of Fortran and 16,000 lines of IDL (a language designed for interactive data analysis which to my untrained eye looks a lot like MATLAB). There was no obvious support for building the source included within the leaked files (e.g., no makefiles) and my attempt to manually compile using the GNU Fortran compiler failed miserably. So I cannot say anything reliable about the compiler output warnings.

To me the complete lack of test cases implies that the Climategate code does not produce reliable output. Comments in the code such as ***** APPLIES A VERY ARTIFICIAL CORRECTION FOR DECLINE********* suggests that the authors were willing to patch the code to produce output that matched their expectations; this is the mentality of somebody for whom code correctness is not an important issue and if they don’t believe their code is correct then I don’t either.

Source code in itself is rarely that important, although it might have been expensive to create. The real important information in the leaked files is the climate data. Now that this is available others can apply their analysis skills to provide an interpretation to what, if anything statistically reliable, it is telling us.

Comments are closed.
FireStats icon Powered by FireStatshow much does cialis cost

cialis delivered overnight

buy cheap generic propecia

buy cheap online propecia

buy viagra online canada

canadian propecia rx

levitra buy online

cialis woman

levitra viagra cialis

buy propecia canada

levitra online overnight delivery

cialis brand

cheap viagra pills

canada viagra

order propecia

cheap levitra uk

discount cialis levitra viagra

buying viagra with no prescription

is pfizer viagra available in india

cialis medication

canadian viagra

canada cheap propecia

cost levitra

cialis discount

best price generic propecia

canadian propecia rx

cialis daily in canada

canadian online pharmacy cialis

canadian pharmacy viagra legal

levitra info

canadian propecia cheap

cheapest propecia sale uk

buy vardenafil levitra

buy levitra in europe

buy viagra pills

levitra online us

cheap levitra online

brand viagra over the net

best price for generic cialis

cheap propecia canada

cheapest prices on propecia

best online levitra

cialis 50 mg dose

cialis discount prices

buy now viagra

online propecia prescription

canada meds viagra

buy cheap generic levitra

canadian cialis

best way to use cialis

order usa viagra online

lowest price levitra

get levitra online

cialis fast delivery

levitra for sale

cheapest prices for viagra

canadian generic viagra online

cheapest overnight cialis

low cost canadian viagra

cialis express delivery

buy propecia online

cialis next day delivery

healthcare of canada pharmacy

name brand cialis

best price for propecia online

canadian healthcare viagra sales

ordering propecia online

cheap levitra prescription

discount us propecia

cialis low price

cialis india

next day delivery cialis

cialis buy

cialis fast delivery

discount propecia rx

best price generic propecia

cheap viagra

get cialis

buy real viagra online

cheepest cialis

cialis soft canada

healthcare canadian pharmacy

discount levitra online us

generic propecia mastercard

cialis blood thinner

cialis daily canada

low price levitra

drug propecia

cialis from mexico

cialis medication

lowest propecia 1 mg

buy levitra online viagra

cheap levitra online us

best price for propecia

ordering viagra

levitra sales uk

about cialis

buy cialis professional

brand viagra

buy cialis

buy levitra vardenafil

cialis headaches

canadian viagra

canada levitra

buy levitra now

cialis daily price

buy viagra

generic cialis india discount

low cost levitra

next day delivery cialis

discount brand name cialis

levitra or viagra

levitra online no prescription

online propecia uk

cheap viagra no prescription

canada propecia prescription

buy propecia uk

canada pharmacy propecia

herbal alternative to cialis

buy cialis on line

cialis purchase

cialis from mexico

buy viagra in canada

buying real viagra without prescription

cialis daily

canada viagra generic

buy propecia and proscar

generic viagra in canada

daily cialis

generic propecia fda approved

cialis price in canada

overnight delivery viagra

cialis usa

discount real viagra

cialis india pharmacy

cialis from canada

best doses for propecia

buy daily cialis

levitra prescription

cialis professional no prescription

how you get pfizer viagra

cialis brand only

cheapest price propecia cheap

cialis no prescription

generic viagra canadian

female viagra pills

canadian healthcare viagra

cheap fast levitra

cialis vs levitra

cialis strenght mg

buy viagra in canada

generic cialis

get propecia prescription

cheap levitra tablets

how to get cialis no prescription

cialis daily dosing cost

buy branded viagra

cialis pharmacy

canadian pharmacy viagra

levitra tabs

5 mg daily cialis

cialis buy

generic viagra canada

ordering viagra

cheap levitra uk

levitra discount

mexico pharmacy cialis

bestellen levitra

levitra paypal

discount cialis

cialis 100 mg

cheap order prescription propecia

canadian generic cialis

cialis daily

cialis by women

levitra vs cialis

cialis from mexico

cialis c 50

generic cialis sale

buy cialis without a prescription

buying cialis soft tabs 100 mg

cheap viagra online

cialis germany

cialis en mexico

healthcare of canada pharmacy

canadian viagra generic

buy viagra china

cialis headaches

online cialis

cheapest viagra

levitra without prescription

obtain viagra without prescription

cialis on women

hydrochlorothiazide cialis

buying viagra without prescription

buying cialis next day delivery

cialis and canada custom

generic propecia viagra

buy propecia pills

cialis endurance

buying online propecia

overnight delivery cialis

generic cialis sale

buy generic levitra

buy cialis once daily

cialis for sale

cialis by mail

best way to use cialis

buy online propecia

50 mg cialis

how to get cialis in canada

buy viagra germany canadian meds

cheapest prices on viagra

generic levitra usa

canadain viagra india

buy cialis professional

cialis and canada custom

cialis on line pricing in canada

buy viagra online

best online generic levitra

levitra canada prescription

buy cheap levitra online

buy online propecia

cialis cheap

cheapest priced propecia

cialis 5 mg buy

cialis at real low prices

best price on propecia

online cialis

buy cialis on line

buy canada in propecia

order usa viagra online

cialis without prescription

canadian pharmacy

cialis overnight delivery

buy drug propecia

buy cialis without a prescription

cialis c 50

levitra now online

cheap propecia canada

cheap propecia 5mg

cheapest price propecia cheap

buy viagra online canada

cialis dosagem

buy propecia cheap

cialis germany

buy cialis next day delivery

cheap viagra on line

buy levitra online no prescription

canadian healthcare viagra