Troy's Scratchpad

October 13, 2011

GISS-ER Ocean Heat Content, 20th Century Experiment and A1B projections

Filed under: Uncategorized — troyca @ 12:43 pm

In my first post on GISS-ER Ocean Heat Content projections, Bob Tisdale asked me if I could show the hindcast data as well.  This included 9 runs of GISS-ER for the 20th century experiment, which I then downloaded and processed in the same way I mentioned in that previous post.  Also, since the model runs actually spit out absolute temperatures, it’s possible to baseline even the projections – which start in 2003 – to the 1955 through 1998 period of overlap between the NODC observations and the 20th century hindcasts.  As I mentioned in that last post, these calculations have a few simplifying assumptions and should not be taken as perfect, but the method certainly tracks extremely well with Levitus OHC calculations (r^2=.998).   You’ll also notice that there is a gap from where the 20th century experiment ends and the A1B projections begin, between 1999 and 2003.


I must say, on first glance, this seems to vindicate Bob’s post that received so much flak for showing the GISS-ER and the NODC trends starting at the same point in 2003, as his choice would seem to be a better representation of the quantity of “missing heat” between the model projection and the observations.

All code and intermediate data is available from here.  Raw ThetaO data for the CMIP3 model runs available from PCMDI.  Observational data available from NOAA NODC.

Update (10/13): I noticed that I didn’t mention that this is ONLY for the top 700 meters, in line with what I’ve been looking at in the past few posts.  I’ve updated the image to include that note.



  1. Troyca: Your results above show GISS Model-ER OHC hindcast data ending in 1999, while RealClimate shows the hindcasts ending in 2003 in the model versus data posts:

    Your post shows 9 ensemble members, but their posts show only 5. Why is there a difference?

    GISS also shows only 5 Model-ER ensemble members in the Gavin Schmidt presentation here. See Page 8:

    Click to access Schmidt_MAP.pdf

    Comment by Bob Tisdale — October 13, 2011 @ 4:05 pm

    • Bob,

      I’m not sure why they only use 5 hindcast runs. Assuming that this is the same as the “20th century experiment”, you can see that GISS-ER has 9 runs available for it at the catalog at PCMDI:

      Perhaps only 5 members were actually used for the IPCC AR4 hindcasts, to avoid putting too much weight on GISS-ER?

      Also, you’ll note that GISS-EH only has five runs available for the hindcast.

      However, this does not explain the 1999 vs. 2003 ending. Still, since Dr. Schmidt works at GISS, he presumably has access to more of the data from GISS runs than has been archived, which may include data up to 2003 (the last year prior to the projections).

      Comment by troyca — October 13, 2011 @ 4:19 pm

  2. Thanks for those RC links Bob. Those plotted model means don’t seem coherent with what Troy had posted. Also, The baseline choice in Troy’s post seems to have shifted the curve up compared to Gavin’s.

    Comment by Layman Lurker — October 14, 2011 @ 3:05 pm

    • I think, as Bob said, he may have simply been showing GISS-EH rather than GISS-ER, based on the 5 runs and 20th century rise in upper OHC. Regarding the baseline, it seems like base-lining it to the overlapping period of the hindcast would be standard (or even favorable) when comparing the rise to the projects, rather than say the first 30 years. Dr. Schmidt says this in that linked post:

      “Note, that I’m not quite sure how this comparison should be baselined. The models are simply the difference from the control, while the observations are ‘as is’ from NOAA)”

      This is a bit confusing to me, as I thought the GISS-ER model was spitting out absolute temperatures…I’m not sure what is meant by the “difference from the control”.

      Comment by troyca — October 15, 2011 @ 8:01 am

      • I think it would be fun to dig into this a bit and maybe replicate the graph’s from the two articles. Gavin mentions the 1975 to 1989 baseline in the 2011 article but doesn’t specify what he uses for the 2009 article. The ensemble mean curves look to be the same for both graphs yet the individual runs obviously track differently. I have copied your code and data but don’t know if I’ll have the time to play.

        Comment by Layman Lurker — October 15, 2011 @ 4:01 pm

  3. LL,

    I don’t mean to discourage you, but the reason I won’t be rushing to do it is because to replicate the graphs, you’ll probably need to use GISS-EH (as Bob mentions, it is probably just an issue of RC mislabelling the model). GISS-EH has a much higher resolution, so you’ll need to download the data in 2GB chunks (2o years of data). If you download the 6 ThetaO files for each of the 5 runs, that’s 30 files amounting to 60 GB of raw data. I’ve quickly been running out of space on my older machine, but the more annoying thing is that PCMDI only seems to let me download 4 files at once (and this is after you transfer them to your area and await the e-mail telling you to download them), so I can’t just leave it all and go. I suppose I could set up wget or something to grab the files, but then that still leaves the 30 high-resolution files for processing. If I worked at a university, this is the part I would have my grad students take care of 🙂

    Comment by troyca — October 18, 2011 @ 11:20 am

  4. Troy, I have spent some time with your code and the 20th century ohc hindcast data that you downloaded from PCMDI. I set out to try and replicate Gavin’s graphs which Bob linked to above. I wasn’t having any success and was stumped as to why, but then I stumbled onto this page on the nasa website. It appears from this that the thetao files might have been updated and not posted to the PCMDI repository. This page led me to a nasa ftp site and I found this within the directory linking to thetao files for only 5 of the 9 runs. I have not downloaded these files yet so I don’t know if these are possible updated files from the ones you are using or not.

    Comment by Layman Lurker — October 18, 2011 @ 11:48 am

    • Good detective work! If indeed they updated the ThetaO files from those present in the PCMDI database, this could perhaps explain the difference, and why the old NASA presentation showed something different from those current charts, as well as why RC only shows the 5 runs.

      Comment by troyca — October 18, 2011 @ 1:33 pm

  5. […] a previous post on OHC GISS-ER model projections, Bob Tisdale pointed out a RealClimate post from earlier this […]

    Pingback by Will 2011 be one of the top ten hottest years? « Troy's Scratchpad — October 28, 2011 @ 1:23 pm

  6. I have downloaded the five GISS ER thetao files from the NASA ftp archive and compared them run by run to the corresponding files from at PCMDI. There doesn’t appear to be any difference. I think Bob is likely right about GISS EH. Next I might try your thetao downloader code tweaked for GISS EH at PCMDI and take a look.

    Comment by Layman Lurker — November 12, 2011 @ 1:41 pm

    • Cool, let me know what you find out.

      Comment by troyca — November 14, 2011 @ 9:03 am

      • Hi Troy. A have downloaded the thetao for GISS EH run1 for the 1950 to 2002 time span from the NASA ftp archive. It took a lot longer to download this run than the ER runs so will likely take several evenings (when I have the spare time) to finish all of the runs. After tweaking your code I plotted the data – naively expecting to see something resembling one of the model runs plotted by Gavin which Bob links to above. Here is an image of the run plotted along side OHC observations. Not sure what to make of it but IMO it does not belong on Gavin’s graphs from either of those RC posts.

        You mentioned Gavin’s comment “difference from control” from one of the RC posts. Do you think it is possible that we might be missing an intermediate step?

        Comment by Layman Lurker — November 14, 2011 @ 10:25 pm

  7. LL,

    Hmmm, that appears to show much more variability than I would expect from GISS-EH. Upon glancing at it, is it possible that this is only showing a subset of the global ocean? I know my code is not necessarily the clearest, but in adjusting that GISS-ER reader code to work with GISS-EH, did you change the globalWeight calculations to reflect the greater resolution (360 x 180 rather than 90×46), along with the “count” variable in the get.var.ncdf call? I downloaded some of the SRESA1B runs of GISS-ER a while back…let me see what the variability in those look like.

    Comment by troyca — November 15, 2011 @ 8:01 am

    • is it possible that this is only showing a subset of the global ocean?

      The need to change the resolution in your GlobalWeight function wasn’t apparent to me. I admit to cutting corners about these kinds of things when my eyes are glazed over. However it is fully consistent with my “throw mud against the wall to see what sticks” method of learning. Apologies if this is bogging you down.

      Comment by Layman Lurker — November 15, 2011 @ 11:19 am

      • No problem. For the globalWeight portion, it should look like this:

        #calculate weights based on relative area
        globalWeight<-array(0,dim=c(360, 180))
        for (lat in 1:180)
        globalWeight[,lat]<-pi/180*(sin(lat1) – sin(lat2))
        #Surface Area = R^2(lon1-lon2)(sin (lat1) – sin(lat2))

        And then for down below on the get.var.ncdf call, updating the "count" part to retrieve the entire globe now:

        giss_700<-get.var.ncdf(, "thetao", start=c(1,1,1,month), count=c(360,180,16,1))

        Comment by troyca — November 16, 2011 @ 8:42 am

      • For reference, the following is what I got for the GISS-EH run 1 from 2000-2019 (much less variation):

        Comment by troyca — November 16, 2011 @ 8:58 am

  8. Troy, here is my version of your code with the changes you suggested. Just before writing the table I get the following error:

    Error in R_nc_get_vara_double: NetCDF: Start+count exceeds dimension bound
    Var: thetao Ndims: 4 Start: 0,0,0,0Count: 1,16,180,360Error in get.var.ncdf(, “thetao”, start = c(1, 1, 1, month), :
    C function R_nc_get_vara_double returned error

    I apologize again. However I am stuck and not seeing my way through this.

    Comment by Layman Lurker — November 18, 2011 @ 10:23 am

    • OK, I downloaded one of the runs to take a look at the dimensions. One thing I noticed is that the file is only about 2GB unzipped for 50+ years, as opposed to the PCMDI files which are about 2GB for only 20 years. Apparently, this is because the horizontal resolution is only 180×134 vs. 360×180 of PCMDI. So my updated “GlobalWeight” and “Count” part won’t work because the resolution is different…the surface area weights will need to be adjusted to this different resolution and count. The 134 for latitude resolution seems a bit odd…indeed, if you check using “$dim”, and check the “degrees north” portion, you see that it goes up to about 90 N and those cells are about 1 degree in latitude…but then the cells seem to shift in size and it doesn’t cover all the way down to -90. I don’t know what to make of it, if it is simply a meta-data issue, or if the grids are actually described in the file in this way. If it’s the former, the globalWeight and count can be adjusted with minimal issue, but if it’s the latter the averaging process would be significantly more complex.

      Comment by troyca — November 19, 2011 @ 3:11 pm

  9. Turns out your graph in this post was right and Gavin’s was in error all along .

    Comment by Layman Lurker — May 23, 2012 @ 12:51 pm

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create a free website or blog at

%d bloggers like this: