Climategate Code Analysis Part 2
There are three common issues that have been raised in my previous post that I would like to officially address concerning the CRU’s source code.
If you only get one thing from this post, please get this. I am only making a statement about the research methods of the CRU and trying to show proof that they had the means and intent to falsify data. And, until the CRU’s research results can be verified by a 3rd party, they cannot be trusted.
Here are the four most frequent concerns dealing with the CRU’s source code:
- The source code that actually printed the graph was commented out and, therefore, is not valid proof.
- No proof exists that shows this code was used in publishing results.
- Interpolation is a normal part of dealing with large data sets, this is no different.
- You need the raw climate data to prove that foul play occurred.
If anyone can think of something I missed, please let me know.
The source code that actually printed the graph was commented out and, therefore, is not valid proof.
Had I done a better job with my source analysis, I would have found a later revision of the briffa_sep98_d.pro source file (linked to in my previous post) contained in a different working tree which shows the fudge-factor array playing a direct result in the (uncommented) plotting of the data.
Snippit from: harris-tree/briffa_sep98_e.pro (see the end of the post for the full source listing)
;
; APPLY ARTIFICIAL CORRECTION
;
yearlyadj=interpol(valadj,yrloc,x)
densall=densall+yearlyadj
;
; Now plot them
;
filter_cru,20,tsin=densall,tslow=tslow,/nan
cpl_barts,x,densall,title='Age-banded MXD from all sites',$
xrange=[1399.5,1994.5],xtitle='Year',/xstyle,$
zeroline=tslow,yrange=[-7,3]
oplot,x,tslow,thick=3
oplot,!x.crange,[0.,0.],linestyle=1
;
Now, we can finally put this concern to rest.
Interpolation is a normal part of dealing with large data sets, this is no different.
This is partially true, the issue doesn’t lie in the fact that the CRU researchers used interpolation. The issue is the weight of the valadj array with respect to the raw data. valadj simply introduces too large of an influence to the original data to do anything productive with it.
Here is the graph I plotted of the valadj array. When we’re talking about trying to interpret temperature data that grows on the scale of one-tenths of a degree over a period of time, “fudging” a value by 2.5 is going to have a significant impact on the data set.

No proof exists that shows this code was used in publishing results.
Correct! That’s why I am (and always have) taken the following stand: Enough proof exists that the CRU had both the means and intent to intentionally falsify data. This means that all of their research results cannot be trusted until they are verified. Period.
The fact that the “fudge-factor” source code exists in the first place is reason enough for alarm. Hopefully, they didn’t use fudged results in the CRU research results, but the truth is, we just don’t know.
You need the raw climate data to prove that foul play occurred.
This is assuming the raw data are valid, which I maintain that it probably is. Several people question the validity of the climate data gathering methods used by the different climate research institutions, but I am not enough of a climate expert to have an opinion one way or the other. Furthermore, It simply doesn’t matter if the raw climate data are correct or not to demonstrate the extreme bias the valadj array forces on the raw data.
So, the raw data could actually be temperature data or corporate sales figures, the result is the same; a severe manipulation of data.
Full Source Listing
As promised, here is the entire source listing for: harris-tree/briffa_sep98_e.pro
[sourcecode language=”text”]
1. ;
2. ; PLOTS ‘ALL’ REGION MXD timeseries from age banded and from hugershoff
3. ; standardised datasets.
4. ; Reads Harry’s regional timeseries and outputs the 1600-1992 portion
5. ; with missing values set appropriately. Uses mxd, and just the
6. ; "all band" timeseries
7. ;****** APPLIES A VERY ARTIFICIAL CORRECTION FOR DECLINE*********
8. ;
9. yrloc=[1400,findgen(19)*5.+1904]
10. valadj=[0.,0.,0.,0.,0.,-0.1,-0.25,-0.3,0.,-0.1,0.3,0.8,1.2,1.7,2.5,2.6,2.6,$
11. 2.6,2.6,2.6]*0.75 ; fudge factor
12. if n_elements(yrloc) ne n_elements(valadj) then message,’Oooops!’
13. ;
14. loadct,39
15. def_1color,20,color=’red’
16. plot,[0,1]
17. multi_plot,nrow=4,layout=’large’
18. if !d.name eq ‘X’ then begin
19. window, ysize=800
20. !p.font=-1
21. endif else begin
22. !p.font=0
23. device,/helvetica,/bold,font_size=18
24. endelse
25. ;
26. ; Get regional tree lists and rbar
27. ;
28. restore,filename=’reglists.idlsave’
29. harryfn=[‘nwcan’,’wnam’,’cecan’,’nweur’,’sweur’,’nsib’,’csib’,’tib’,$
30. ‘esib’,’allsites’]
31. ;
32. rawdat=fltarr(4,2000)
33. for i = nreg-1 , nreg-1 do begin
34. fn=’mxd.’+harryfn(i)+’.pa.mean.dat’
35. print,fn
36. openr,1,fn
37. readf,1,rawdat
38. close,1
39. ;
40. densadj=reform(rawdat(2:3,*))
41. ml=where(densadj eq -99.999,nmiss)
42. densadj(ml)=!values.f_nan
43. ;
44. x=reform(rawdat(0,*))
45. kl=where((x ge 1400) and (x le 1992))
46. x=x(kl)
47. densall=densadj(1,kl) ; all bands
48. densadj=densadj(0,kl) ; 2-6 bands
49. ;
50. ; Now normalise w.r.t. 1881-1960
51. ;
52. mknormal,densadj,x,refperiod=[1881,1960],refmean=refmean,refsd=refsd
53. mknormal,densall,x,refperiod=[1881,1960],refmean=refmean,refsd=refsd
54. ;
55. ; APPLY ARTIFICIAL CORRECTION
56. ;
57. yearlyadj=interpol(valadj,yrloc,x)
58. densall=densall+yearlyadj
59. ;
60. ; Now plot them
61. ;
62. filter_cru,20,tsin=densall,tslow=tslow,/nan
63. cpl_barts,x,densall,title=’Age-banded MXD from all sites’,$
64. xrange=[1399.5,1994.5],xtitle=’Year’,/xstyle,$
65. zeroline=tslow,yrange=[-7,3]
66. oplot,x,tslow,thick=3
67. oplot,!x.crange,[0.,0.],linestyle=1
68. ;
69. endfor
70. ;
71. ; Restore the Hugershoff NHD1 (see Nature paper 2)
72. ;
73. xband=x
74. restore,filename=’../tree5/densadj_MEAN.idlsave’
75. ; gets: x,densadj,n,neff
76. ;
77. ; Extract the post 1600 part
78. ;
79. kl=where(x ge 1400)
80. x=x(kl)
81. densadj=densadj(kl)
82. ;
83. ; APPLY ARTIFICIAL CORRECTION
84. ;
85. yearlyadj=interpol(valadj,yrloc,x)
86. densadj=densadj+yearlyadj
87. ;
88. ; Now plot it too
89. ;
90. filter_cru,20,tsin=densadj,tslow=tshug,/nan
91. cpl_barts,x,densadj,title=’Hugershoff-standardised MXD from all sites’,$
92. xrange=[1399.5,1994.5],xtitle=’Year’,/xstyle,$
93. zeroline=tshug,yrange=[-7,3],bar_color=20
94. oplot,x,tshug,thick=3,color=20
95. oplot,!x.crange,[0.,0.],linestyle=1
96. ;
97. ; Now overplot their bidecadal components
98. ;
99. plot,xband,tslow,$
100. xrange=[1399.5,1994.5],xtitle=’Year’,/xstyle,$
101. yrange=[-6,2],thick=3,title=’Low-pass (20-yr) filtered comparison’
102. oplot,x,tshug,thick=3,color=20
103. oplot,!x.crange,[0.,0.],linestyle=1
104. ;
105. ; Now overplot their 50-yr components
106. ;
107. filter_cru,50,tsin=densadj,tslow=tshug,/nan
108. filter_cru,50,tsin=densall,tslow=tslow,/nan
109. plot,xband,tslow,$
110. xrange=[1399.5,1994.5],xtitle=’Year’,/xstyle,$
111. yrange=[-6,2],thick=3,title=’Low-pass (50-yr) filtered comparison’
112. oplot,x,tshug,thick=3,color=20
113. oplot,!x.crange,[0.,0.],linestyle=1
114. ;
115. ; Now compute the full, high and low pass correlations between the two
116. ; series
117. ;
118. perst=1400.
119. peren=1992.
120. ;
121. openw,1,’corr_age2hug.out’
122. thalf=[10.,30.,50.,100.]
123. ntry=n_elements(thalf)
124. printf,1,’Correlations between timeseries’
125. printf,1,’Age-banded vs. Hugershoff-standardised’
126. printf,1,’ Region Full <10 >10 >30 >50 >100′
127. ;
128. kla=where((xband ge perst) and (xband le peren))
129. klh=where((x ge perst) and (x le peren))
130. ts1=densadj(klh)
131. ts2=densall(kla)
132. ;
133. r1=correlate(ts1,ts2)
134. rall=fltarr(ntry)
135. for i = 0 , ntry-1 do begin
136. filter_cru,thalf(i),tsin=ts1,tslow=tslow1,tshigh=tshi1,/nan
137. filter_cru,thalf(i),tsin=ts2,tslow=tslow2,tshigh=tshi2,/nan
138. if i eq 0 then r2=correlate(tshi1,tshi2)
139. rall(i)=correlate(tslow1,tslow2)
140. endfor
141. ;
142. printf,1,’ALL SITES’,r1,r2,rall,$
143. format='(A11,2X,6F6.2)’
144. ;
145. printf,1,’ ‘
146. printf,1,’Correlations carried out over the period ‘,perst,peren
147. ;
148. close,1
149. ;
150. end
[/sourcecode]
Everybody who has a computer laughes about Harry, poor chap. And he was only trying to understand the genius from CRU.
So let us offer him space in this blog to explain himself; maybe he is smarter that the rest of them together.
” Scott A. Mandia (08:29:35) :
…that shows how ridiculous the Climate Gate emails really are:”
Agreed.
One would expect that pompous, ridiculous fools write pompous, ridiculous emails ?
Nick Stokes (11:01:38) : The term “fudge factor” doesn’t indicating cheating, as some commenters imply.
In physics and simulation science, fudge factor is the factor you need multiply your equation with to get a perfect match with experiments.
After I wrote the sentence above I checked with Wikpedia.
Fudge factors are invented variables whose purpose is to force a calculated result to give a better match to what happens in the real world.
http://en.wikipedia.org/wiki/Fudge_factor
Invariant (11:53:11) :
If you derive your equations from the fundamental laws of physics multiplying with a fudge factor is an unforgivable sin.
On the other hand if you for example are trying to tune your model, you can multiply, for example, the thermal conductivity k, with the Nusselt number Nu, in order to get the effective thermal conductivity, k*Nu, in for example natural/thermally driven free convection. You are allowed to tune your model with different values of k to match experiments.
However, it is highly unlikely that to use the wording “fudge factor” for tuning, using a “fudge factors” is always a sign of dishonest science.
woodfortrees (Paul Clark) (04:34:04) :
Anna V: Does not
;****** APPLIES A VERY ARTIFICIAL CORRECTION FOR DECLINE*********
amount to much the same caveat? Certainly if I wanted to actually fudge something without anyone knowing, a 15-star comment wouldn’t be my first thought.
I have a question for woodfortrees. Why do you assume the author of the comment didn’t want anyone to know about it? When in a den of thieves you don’t try to hide criminal exploits, you brag about them.
Sure you have read Contact by Carl Sagan. Can we view the 165 Mb of data from CRU as a similar message as they received from the star Vega in Contact? Maybe we just have started to read out the prime numbers in our message?
(We will manage to compile, execute and understand the source code.)
“Suddenly they pick up a broadcast of non-random signals from the direction of the star Vega. These turn out to be coded prime numbers. This excites great government and military interest; however, Drumlin, now the national science advisor, comes in and commandeers the discovery. The message is found to contain a video signal of Adolf Hitler at the 1936 Berlin Olympics, which was the first television broadcast to be sent into space from Earth. But hidden inside the signal are found to be detailed engineering schematics. After much speculation, it is discovered that these are plans for the construction of a device for intergalactic travel.”
Scott A. Mandia (08:29:35) :
If you read the emails, or as many as you can, such as Briffa’s severe scepticism, his ambivalence to Mann, it is odd that such a conclusion is drawn. Its clear to me that Briffa gave into the project, or was browbeaten into it. (That might be why he isn’t being implicated in the fraud.)
they are interesting to read.
Anyhow, shouldn’t this be a court case in the manner an Inconvenient Truth was taken to court?
Scott A. Mandia (08:29:35)
“Why would CRU need to fudge lines of code if their temperature record since 1979 shows warming that is fairly consistent with RSS and UAH”.
reply
This data did not show a warming trend originally. THis was eventually calibrated with the “value added” ground and SST data to give it the warming trend that is being looked for. Satellites are better than thermometers as they cover large areas, so what did they do? They calibrated the readings with biased ground thermometer readings to give exactly the trend they were looking for.
Reed Coray (12:08:13) :
.
.
.
When in a den of thieves you don’t try to hide criminal exploits, you brag about them.
I see a different possibility: An honest programmer forced to do dirty work but who protests about it in the comments.
And also this, truth is invaluable, even to liars.
Alvin (08:51:16) :
Knowing what you now know about CO2 and about the politics behind this entire cluster*, what does this action mean to you? link: http://www.wvmetronews.com/index.cfm?func=displayfullstory&storyid=33948
Rockefeller is trying to buy votes and scam the people in WV into believing this will bring them “JOBS” instead of reducing their standard of living by over a century.
>>When you start believing that there is unprecedented
>>twentieth century warming then it is obvious that the
>>data is wrong and has to be corrected for. Simple.
Especially when your job and income depend on doing so. Self-perpetuating societies and organisations always develop these traits.
.
Just to make sure I understand the beef about hide the declline…
Results from tree-ring analysis show that historic temperature trends diverge from real measurements in the latter half of the 21st century.
So AGW-ites don’t use that data and instead use real measurements tacked onto the end of the tree-ring data to make the historic temp charts in IPCC’s reports. They do this because there were no temperature measurements prior to the 19th century. So they use “proxy” (psuedo-pretend) data for before the 1900’s and real data for after.
Since the tree-ring analysis diverges from measured data, it places the whole history of temperature in IPCC’s reports into question. i.e. if there is divergence now, how can we not assume there was divergence in the past that isn’t shown?
Past divergence could have been up, or down. Correct?
If past divergence is similar to recent divergence, then it would have been the case that tree-ring data analysis results are significantly lower than they should be. So it was likely much warmer in the past than is shown on the IPCC’s report.
Or, it could have been colder.
Since divergence seems probable, then it is not possible to judge the existance or non-existance of a past MWP. So one plot showing the MWP is just as valid as another that doesn’t show it. Both are intractible.
Is that the logic?
If that’s all true, then unless ice core data, sediment cores, etc show a more reliable record then the only reasonably accurate temp record we have is the real data starting from the mid 19th century. Correct?
So…. the beef is that we really don’t know the answer regarding AGW and won’t until we either have better, more reliable predictive models or we really do reach a tipping point and the world as we know it melts into oblivion.
Given where we are with respect to controlling CO2 I’d say the situation is hopeless, Copenhagen is a waste of time, and we should start moving our citiies underground or migrating to lunar settlements asap.
Ok here is what I can make out from the post and the comments:
1. The code named “APPLIES A VERY ARTIFICIAL CORRECTION FOR DECLINE” prints a graph, which fudges a value by 2.5, would have a significant impact on a data set, and produce the hockey stick graph shown above
2. We do not know whether it was actually used until we have Briffa’s (of Yamal fame) raw data.
3. woodfortrees (Paul Clark) (03:38:54) quotes Gavin of RC who says that “It was an artificial correction to check some calibration statistics to see whether they would vary if the divergence was an artifact of some extra anthropogenic impact.[cant understand that – but maybe some statistician can] It has never been used in a published paper (though something similar was explained in detail in this draft paper by Osborn). It has nothing to do with any reconstruction used in the IPCC reports.”
4. Paul Clark (03:38:54) – says this is reasonable. He programs video streaming software (in C?)
5. anna v (04:20:35) : who writes fotran code for particle physics says it is not.
6. A bit of yes it is – no it aint between the two (and a whole lotta others who chip in – just opinion, a waste of time)
7. The bottom line – we need the raw data to see whether it was in fact used or not. Gavin has been caught out saying things that were not true by Steve M before.
8. [I thought that some raw data of Briffa’s has already been obtained by Steve McIntyre? Are we talking about the same raw data?]
9. stevemcintyre (07:10:48) : Robert, can you produce the figures from the contemporary code? I can see if they match the relevant article.
What does he mean by “the figures from the contemporary code”? Data from the code? or take Steve’s data and produce the graphs and then Steve M will see if they match the “relevant article”, (which I presume is the Yamal data that he has got?)
Can someone enlighten me on this? Have I got things right?
Doug (14:42:33) :
No, you did not understand correctly.
The AGW proponents worldwide from HADCRU to NIWA to GISS have been generally adjusting past temperatures downwards and late temperatures upwards to create the false impression of an ever increasing warming and even more rapidly increase in the rate of warming. Whenever and wherever it has been possible to obtain raw temperatures not subjected to the Alarmist adjustments, the analysis depicts the recent warming was not any worse in the rate of increase or the absolute increase than similar such cycles which occurred in the 20th Century and earlier centuries when humanity was not emitting significant quantities of carbon dioxide into the atmosphere. Global Warming, also known as Climate Change, is a manmade fraud of “robust” and “unprecedented” proportions. There is, in fact, not enough carbon dioxide present in the remaining fossil fuel reserves to cause Global Warming, even if you were to burn all of them in only one year. The hoax is ludicrous.
“we need to COMPILE the code, EXECUTE the code to determine WHAT it is doing!”
Indeed compilation and execution with a dummy dataset would be an initial step. After that one would need to use a known dataset and matching published CRU results to check reproducibility.
In the majority of the discussion over the code (its evident poor quality) and version control (there appears to be none) one should not forget that the data appears to be in a similar state.
I would hazard a guess that CRU do not have any precise record of the code and data version used to obtain any of their published output. Its all indicative of an exceptionally sloppy working methodology. Was their scientific methodology equally sloppy?
“Complaining that the source code is poor quality is a dead end – please stop doing that!”
Agreed but we also need to be alert to the fact that some of the coding errors already identified may well have not insignificant effects on the computed results.
AJC (15:34:13) : “we need to COMPILE the code, EXECUTE the code to determine WHAT it is doing!”
Indeed compilation and execution with a dummy dataset would be an initial step. After that one would need to use a known dataset and matching published CRU results to check reproducibility.
Check reproducibility? what on earth for?
The code HAS been compiled on some data set by Robert Greiner above. “the raw data could actually be temperature data or corporate sales figures, the result is the same; a severe manipulation of data.” We know what it is doing!
What we do not know is if it has ever been used in a published paper or any reconstruction used in the IPCC reports. Gavin Schmidt says emphatically no.
Now we have to see if that is correct. This may apply to the Yamal data that Steve M has got, so maybe we can verify that.
Anna V: Does not
;****** APPLIES A VERY ARTIFICIAL CORRECTION FOR DECLINE*********
amount to much the same caveat? Certainly if I wanted to actually fudge something without anyone knowing, a 15-star comment wouldn’t be my first thought.
————
No, but if you might if your boss instructed you to write code that fudged data and you were unhappy about it.
I agree with the spirit of the post by JJ and others who are cautioning us not to make strong accusations on aspects of this scandal where we lack really strong evidence. Our side has been given a winning hand, if we will just contain ourselves and let things play out naturally. (Investigations, congressional hearings, further defections, more articles like those in American Thinker and the Weekly Standard appearing in mainstream publications, shocked editorials in mainstream scientific journals, etc.) We need to keep the other side on the defensive by not overreaching and giving them an opportunity to counterpunch.
On the VERY ARTIFICAL CORRECTION topic:
Back2Bat (13:56:27) : I see a different possibility: An honest programmer forced to do dirty work but who protests about it in the comments.
D (16:36:18) : No, but if you might if your boss instructed you to write code that fudged data and you were unhappy about it.
Been there, done that.
Sometimes the only fix available is a horrible one, and most programmers don’t want sloppy work to reflect on them. So you do it but leave a big enough trail so those that follow don’t think you’re a moron. Which is what I think “Harry” did.
The question here is whether it was a fix or something more sinister.
On to the topic of the poor quality of the source code:
Invariant (02:02:29) :
Complaining that the source code is poor quality is a dead end – please stop doing that
I’m not sure I agree. I think the quality of the code does have some bearing. With the number of files involved, basically doing their own DBMS instead of using a commercial one, leaves lots of room for errors and unintended consequences. But yes, it would be good to run it and see what it does. Where’s that data?
Back in my mainframe days in the 80s you couldn’t put a report program into production without a design review and operations review. I guess no such standards exist in the scientific world.
In the meantime we can examine the logic –
woodfortrees (Paul Clark) (03:38:54) :
Robert (OP), the point you haven’t dealt with, ..is that this code was either used as “thought experiment” test of the calibration procedure for the Briffa tree ring data (the filename indicates this), or as a way of bootstrapping a correlation process, both of which are perfectly reasonable things to do
“Thought experiment” ? What could the thought be? – Perhaps to apply “A VERY ARTIFICIAL CORRECTION FOR DECLINE” to test the calibration procedure for the Briffa tree ring data. We have seen on CA that the calibration procedure for the Briffa tree ring data did indeed lead to “A VERY ARTIFICIAL” hockey stick increase of temperatures, in place of a decline towards the end. So maybe this “Thought experiment”, which is all coded up and ready to go, was put into practice? and this is the very code that did it?
What I dont figure out is why this would be a very reasonable thing to do. Specially when Gavin Schmidt denies it was ever actually done. Even he doesnt think it would be a reasonable thing to do to actually put it into practice.
As for it being “a way of bootstrapping a correlation process”, I dont understand that at all. Doesnt make sense to me but perhaps it would to someone more knowledgable.
woodfortrees (Paul Clark) (04:34:04) : Anna V: Does not
;****** APPLIES A VERY ARTIFICIAL CORRECTION FOR DECLINE*********
amount to much the same caveat? Certainly if I wanted to actually fudge something without anyone knowing, a 15-star comment wouldn’t be my first thought
But the assumption is the person was thinking about fudging something without anyone knowing. Maybe the person was pretty sure that noone would get to know of it except the person or persons who were supposed to? Maybe thought that someone might never crossed his mind?
Would Jones have written that he was going to delete data and advise others to do so if he believed it would be published for all the world to see?
If he felt he was absolutely secure, as did Jones, Briffa etc, he would be more concerned about clarity than concealment. You can tell he wasnt a particularly brilliant programmer.
“Past divergence could have been up, or down. Correct?”
Correct.
Although the only divergence that we have documentation of is down …
If the effect that is causing the current downward divergence is also operating anywhere in the past data, then previous warm periods would be clipped as well. Such a divergence could be caused by some real effect (such as a temp limit in the trees response to temp), or it could be an effect of the Team’s analysis methods. Given that their obvious intent is to clip pre-modern warm peaks, the divergence that requires ‘hiding the decline’ could be an artifact of ‘hiding the incline’ of the past.
What emerges from the source code, data losses, emails, etc., is a sense that these climatologists believed they were playing a larger game than science: they were good shepherds, bringing us out of the dark. The same, with few qualifications, can be said of the media – which explains its spotty and off-center reporting of Climategate – and, for that matter, of many politicians and governments.
See “Climategate: The good shepherds”:
http://vulgarmorality.wordpress.com/2009/12/06/climategate-the-good-shepherds/
“This just in:
EPA Set to Declare Carbon Dioxide a Public Danger
http://www.foxnews.com/politics/2009/12/06/epa-set-delare-carbon-dioxide-public-danger/
Only benefit of Cap-and-trade is that someone makes money on the deal.”
This is no surprise. I do believe I indicated months ago the public comments would have no effect. The policy was already decided.
“What emerges from the source code, data losses, emails, etc., is a sense that these climatologists believed they were playing a larger game than science: they were good shepherds, bringing us out of the dark.” vulgarmorality
Bingo!
Bring on the cold! Lord, please freeze some sense into people, yet not my will but Thine. Amen.
Quote from Fox News Sunday panel discussion:
“With regard to this Email issue … If you come back to the reality, what we find here is scientists trying to change the language, at times, to make it less controversial in terms of the political discussion, but not to change the facts on the ground; the facts on the ground being that, you know, we continue to emit too many carbon dioxides, and CO2, and other gasses and as a result we are capturing the heat from the sun and global warming is a reality….” Juan Williams, 6 Dec 2009.
I believe this is a good example of the honest opinion that most of the current ‘elite’ media have of the hypothetical Carbon Dioxide Crisis and Climategate in particular.
[REPLY – Maybe honest. But likely in error. (I like Juan.) It seems CRU may well have changed the “facts on the ground”, namely 1the 1930s. And whether or not we emit too much CO2, which may have very little effect on temperature, has yet to be determined. ~ Evan]