Geoff Jenkins (climatologist)

Geoffrey (Geoff) Jenkins is a climatologist and former head of climate change prediction at the Hadley Centre for Climate Prediction and Research, part of the Met Office.

Career

Jenkins is a physics graduate from Southampton university; PhD in atmospheric physics. Thirty years at the Met Office.

In response to why he believes that human activity has caused the recent rise in temperatures he responded:

Feeding in the different agents that cause climate change into our models – like greenhouse gases, output from the Sun, volcanoes - we’ve looked at the patterns of change they cause across the surface of the Earth and through the atmosphere. We compare them to what’s actually been observed and find the best match between computer simulations and the observations. This has indicated to us that over the past 30 or 40 years that most of the warming has been due to human activities.[1]

gollark: They'll probably say "lambdas are evil" because python hates functional programming a lot of the time.
gollark: *considers creating an esowiki page for haskell and golang*
gollark: ``` func AddInt32(addr *int32, delta int32) (new int32) func AddInt64(addr *int64, delta int64) (new int64) func AddUint32(addr *uint32, delta uint32) (new uint32) func AddUint64(addr *uint64, delta uint64) (new uint64) func AddUintptr(addr *uintptr, delta uintptr) (new uintptr) func CompareAndSwapInt32(addr *int32, old, new int32) (swapped bool) func CompareAndSwapInt64(addr *int64, old, new int64) (swapped bool) func CompareAndSwapPointer(addr *unsafe.Pointer, old, new unsafe.Pointer) (swapped bool) func CompareAndSwapUint32(addr *uint32, old, new uint32) (swapped bool) func CompareAndSwapUint64(addr *uint64, old, new uint64) (swapped bool) func CompareAndSwapUintptr(addr *uintptr, old, new uintptr) (swapped bool) func LoadInt32(addr *int32) (val int32) func LoadInt64(addr *int64) (val int64) func LoadPointer(addr *unsafe.Pointer) (val unsafe.Pointer) func LoadUint32(addr *uint32) (val uint32) func LoadUint64(addr *uint64) (val uint64) func LoadUintptr(addr *uintptr) (val uintptr) func StoreInt32(addr *int32, val int32) func StoreInt64(addr *int64, val int64) func StorePointer(addr *unsafe.Pointer, val unsafe.Pointer) func StoreUint32(addr *uint32, val uint32) func StoreUint64(addr *uint64, val uint64) func StoreUintptr(addr *uintptr, val uintptr) func SwapInt32(addr *int32, new int32) (old int32) func SwapInt64(addr *int64, new int64) (old int64) func SwapPointer(addr *unsafe.Pointer, new unsafe.Pointer) (old unsafe.Pointer) func SwapUint32(addr *uint32, new uint32) (old uint32) func SwapUint64(addr *uint64, new uint64) (old uint64) func SwapUintptr(addr *uintptr, new uintptr) (old uintptr)```Seen in standard library docs.
gollark: Fun fact: that function cannot be written with a sane type in Go.
gollark: Esolang where multiple different garbage collectors run at the same time.

See also

References

  1. Archived November 2, 2004, at the Wayback Machine


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.