Feeds:
Posts
Comments

Posts Tagged ‘chemistry’

Lately I have been reading a lot about the Paleocene-Eocene Thermal Maximum, or PETM, which is my favourite paleoclimatic event (is it weird to have a favourite?) This episode of rapid global warming 55 million years ago is particularly relevant to our situation today, because it was clearly caused by greenhouse gases. Unfortunately, the rest of the story is far less clear.

Paleocene mammals

The PETM happened about 10 million years after the extinction that killed the dinosaurs. The Age of Mammals was well underway, although humans wouldn’t appear in any form for another few million years. It was several degrees warmer, to start with, than today’s conditions. Sea levels would have been higher, and there were probably no polar ice caps.

Then, over several thousand years, the world warmed by between 5 and 8°C. It seems to have happened in a few bursts, against a background of slower temperature increase. Even the deep ocean, usually a very stable thermal environment, warmed by at least 5°C. It took around a hundred thousand years for the climate system to recover.

Such rapid global warming hasn’t been seen since, although it’s possible (probable?) that human-caused warming will surpass this rate, if it hasn’t already. It is particularly troubling to realize that our species has never before experienced an event like the one we’re causing today. The climate has changed before, but humans generally weren’t there to see it.

The PETM is marked in the geological record by a sudden jump in the amount of “light” carbon in the climate system. Carbon comes in different isotopes, two of which are most important for climate analysis: carbon with 7 neutrons (13C), and carbon with 6 neutrons (12C). Different carbon cycle processes sequester these forms of carbon in different amounts. Biological processes like photosynthesis preferentially take 12C out of the air in the form of CO2, while geological processes like subduction of the Earth’s crust take anything that’s part of the rock. When the carbon comes back up, the ratios of 12C to 13C are preserved: emissions from the burning of fossil fuels, for example, are relatively “light” because they originated from the tissues of living organisms; emissions from volcanoes are more or less “normal” because they came from molten crust that was once the ocean floor.

In order to explain the isotopic signature of the PETM, you need to add to the climate system either a massive amount of carbon that’s somewhat enriched in light carbon, or a smaller amount of carbon that’s extremely enriched in light carbon, or (most likely) something in the middle. The carbon came in the form of CO2, or possibly CH4 that soon oxidized to form CO2. That, in turn, almost certainly caused the warming.

There was a lot of warming, though, so there must have been a great deal of carbon. We don’t know exactly how much, because the warming power of CO2 depends on how much is already present in the atmosphere, and estimates for initial CO2 concentration during the PETM vary wildly. However, the carbon injection was probably something like 5 trillion tonnes. This is comparable to the amount of carbon we could emit today from burning all our fossil fuel reserves. That’s a heck of a lot of carbon, and what nobody can figure out is where did it all come from?

Arguably the most popular hypothesis is methane hydrates. On continental shelves, methane gas (CH4) is frozen into the ocean floor. Microscopic cages of water contain a single molecule of methane each, but when the water melts the methane is released and bubbles up to the surface. Today there are about 10 trillion tonnes of carbon stored in methane hydrates. In the PETM the levels were lower, but nobody is sure by how much.

The characteristics of methane hydrates seem appealing as an explanation for the PETM. They are very enriched in 12C, meaning less of them would be needed to cause the isotopic shift. They discharge rapidly and build back up slowly, mirroring the sudden onset and slow recovery of the PETM. The main problem with the methane hydrate hypothesis is that there might not have been enough of them to account for the warming observed in the fossil record.

However, remember that in order to release their carbon, methane hydrates must first warm up enough to melt. So some other agent could have started the warming, which then triggered the methane release and the sudden bursts of warming. There is no geological evidence for any particular source – everything is speculative, except for the fact that something spat out all this CO2.

Magnified foraminifera

Don’t forget that where there is greenhouse warming, there is ocean acidification. The ocean is great at soaking up greenhouse gases, but this comes at a cost to organisms that build shells out of calcium carbonate (CaCO3, the same chemical that makes up chalk). CO2 in the water forms carbonic acid, which starts to dissolve their shells. Likely for this reason, the PETM caused a mass extinction of benthic foraminifera (foraminifera = microscopic animals with CaCO3 shells; benthic = lives on the ocean floor).

Other groups of animals seemed to do okay, though. There was a lot of rearranging of habitats – species would disappear in one area but flourish somewhere else – but no mass extinction like the one that killed the dinosaurs. The fossil record can be deceptive in this manner, though, because it only preserves a small number of species. By sheer probability, the most abundant and widespread organisms are most likely to appear in the fossil record. There could be many organisms that were less common, or lived in restricted areas, that went extinct without leaving any signs that they ever existed.

Climate modellers really like the PETM, because it’s a historical example of exactly the kind of situation we’re trying to understand using computers. If you add a few trillion tonnes of carbon to the atmosphere in a relatively short period of time, how much does the world warm and what happens to its inhabitants? The PETM ran this experiment for us in the real world, and can give us some idea of what to expect in the centuries to come. If only it had left more data behind for us to discover.

References:
Pagani et al., 2006
Dickens, 2011
McInerney and Wing, 2011

Read Full Post »

On the heels of my last post about iron fertilization of the ocean, I found another interesting paper on the topic. This one, written by Long Cao and Ken Caldeira in 2010, was much less hopeful.

Instead of a small-scale field test, Cao and Caldeira decided to model iron fertilization using the ocean GCM from Lawrence Livermore National Laboratory. To account for uncertainties, they chose to calculate an upper bound on iron fertilization rather than a most likely scenario. That is, they maxed out phytoplankton growth until something else became the limiting factor – in this case, phosphates. On every single cell of the sea surface, the model phytoplankton were programmed to grow until phosphate concentrations were zero.

A 2008-2100 simulation implementing this method was forced with CO2 emissions data from the A2 scenario. An otherwise identical A2 simulation did not include the ocean fertilization, to act as a control. Geoengineering modelling is strange that way, because there are multiple definitions of “control run”: a non-geoengineered climate that is allowed to warm unabated, as well as preindustrial conditions (the usual definition in climate modelling).

Without any geoengineering, atmospheric CO2 reached 965 ppm by 2100. With the maximum amount of iron fertilization possible, these levels only fell to 833 ppm. The mitigation of ocean acidification was also quite modest: the sea surface pH in 2100 was 7.74 without geoengineering, and 7.80 with. Given the potential side effects of iron fertilization, is such a small improvement worth the trouble?

Unfortunately, the ocean acidification doesn’t end there. Although the problem was lessened somewhat at the surface, deeper layers in the ocean actually became more acidic. There was less CO2 being gradually mixed in from the atmosphere, but another source of dissolved carbon appeared: as the phytoplankton died and sank, they decomposed a little bit and released enough CO2 to cause a net decrease in pH compared to the control run.

In the diagram below, compare the first row (A2 control run) to the second (A2 with iron fertilization). The more red the contours are, the more acidic that layer of the ocean is with respect to preindustrial conditions. The third row contains data from another simulation in which emissions were allowed to increase just enough to offest sequestration by phytoplankton, leading to the same CO2 concentrations as the control run. The general pattern – iron fertilization reduces some acidity at the surface, but increases it at depth – is clear.

depth vs. latitude at 2100 (left); depth vs. time (right)

The more I read about geoengineering, the more I realize how poor the associated cost-benefit ratios might be. The oft-repeated assertion is true: the easiest way to prevent further climate change is, by a long shot, to simply reduce our emissions.

Read Full Post »

While many forms of geoengineering involve counteracting global warming with induced cooling, others move closer to the source of the problem and target the CO2 increase. By artificially boosting the strength of natural carbon sinks, it might be possible to suck CO2 emissions right out of the air. Currently around 30% of human emissions are absorbed by these sinks; if we could make this metric greater than 100%, atmospheric CO2 concentrations would decline.

One of the most prominent proposals for carbon sink enhancement involves enlisting phytoplankton, photosynthetic organisms in the ocean which take the carbon out of carbon dioxide and use it to build their bodies. When nutrients are abundant, phytoplankton populations explode and create massive blue or green blooms visible from space. Very few animals enjoy eating these organisms, so they just float there for a while. Then they run out of nutrients, die, and sink to the bottom of the ocean, taking the carbon with them.

Phytoplankton blooms are a massive carbon sink, but they still can’t keep up with human emissions. This is because CO2 is not the limiting factor for their growth. In many parts of the ocean, the limiting factor is actually iron. So this geoengineering proposal, often known as “iron fertilization”, involves dumping iron compounds into the ocean and letting the phytoplankton go to work.

A recent study from Germany (see also the Nature news article) tested out this proposal on a small scale. The Southern Ocean, which surrounds Antarctica, was the location of their field tests, since it has a strong circumpolar current that kept the iron contained. After adding several tonnes of iron sulphate, the research ship tracked the phytoplankton as they bloomed, died, and sank.

Measurements showed that at least half of the phytoplankton sank below 1 km after they died, and “a substantial portion is likely to have reached the sea floor”. At this depth, which is below the mixed layer of the ocean, the water won’t be exposed to the atmosphere for centuries. The carbon from the phytoplankton’s bodies is safely stored away, without the danger of CO2 leakage that carbon capture and storage presents. Unlike in previous studies, the researchers were able to show that iron fertilization could be effective.

However, there are other potential side effects of large-scale iron fertilization. We don’t know what the impacts of so much iron might be on other marine life. Coating the sea surface with phytoplankton would block light from entering the mixed layer, decreasing photosynthesis in aquatic plants and possibly leading to oxygen depletion or “dead zones”. It’s also possible that toxic species of algae would get a hold of the nutrients and create poisonous blooms. On the other hand, the negative impacts of ocean acidification from high levels of CO2 would be lessened, a problem which is not addressed by solar radiation-based forms of geoengineering.

Evidently, the safest way to fix the global warming problem is to stop burning fossil fuels. Most scientists agree that geoengineering should be a last resort, an emergency measure to pull out if the Greenland ice sheet is about to go, rather than an excuse for nations to continue burning coal. And some scientists, myself included, fully expect that geoengineering will be necessary one day, so we might as well figure out the safest approach.

Read Full Post »

Also published at Skeptical Science

This is a climate model:

T = [(1-α)S/(4εσ)]1/4

(T is temperature, α is the albedo, S is the incoming solar radiation, ε is the emissivity, and σ is the Stefan-Boltzmann constant)

An extremely simplified climate model, that is. It’s one line long, and is at the heart of every computer model of global warming. Using basic thermodynamics, it calculates the temperature of the Earth based on incoming sunlight and the reflectivity of the surface. The model is zero-dimensional, treating the Earth as a point mass at a fixed time. It doesn’t consider the greenhouse effect, ocean currents, nutrient cycles, volcanoes, or pollution.

If you fix these deficiencies, the model becomes more and more complex. You have to derive many variables from physical laws, and use empirical data to approximate certain values. You have to repeat the calculations over and over for different parts of the Earth. Eventually the model is too complex to solve using pencil, paper and a pocket calculator. It’s necessary to program the equations into a computer, and that’s what climate scientists have been doing ever since computers were invented.

A pixellated Earth

Today’s most sophisticated climate models are called GCMs, which stands for General Circulation Model or Global Climate Model, depending on who you talk to. On average, they are about 500 000 lines of computer code long, and mainly written in Fortran, a scientific programming language. Despite the huge jump in complexity, GCMs have much in common with the one-line climate model above: they’re just a lot of basic physics equations put together.

Computers are great for doing a lot of calculations very quickly, but they have a disadvantage: computers are discrete, while the real world is continuous. To understand the term “discrete”, think about a digital photo. It’s composed of a finite number of pixels, which you can see if you zoom in far enough. The existence of these indivisible pixels, with clear boundaries between them, makes digital photos discrete. But the real world doesn’t work this way. If you look at the subject of your photo with your own eyes, it’s not pixellated, no matter how close you get – even if you look at it through a microscope. The real world is continuous (unless you’re working at the quantum level!)

Similarly, the surface of the world isn’t actually split up into three-dimensional cells (you can think of them as cubes, even though they’re usually wedge-shaped) where every climate variable – temperature, pressure, precipitation, clouds – is exactly the same everywhere in that cell. Unfortunately, that’s how scientists have to represent the world in climate models, because that’s the only way computers work. The same strategy is used for the fourth dimension, time, with discrete “timesteps” in the model, indicating how often calculations are repeated.

It would be fine if the cells could be really tiny – like a high-resolution digital photo that looks continuous even though it’s discrete – but doing calculations on cells that small would take so much computer power that the model would run slower than real time. As it is, the cubes are on the order of 100 km wide in most GCMs, and timesteps are on the order of hours to minutes, depending on the calculation. That might seem huge, but it’s about as good as you can get on today’s supercomputers. Remember that doubling the resolution of the model won’t just double the running time – instead, the running time will increase by a factor of sixteen (one doubling for each dimension).

Despite the seemingly enormous computer power available to us today, GCMs have always been limited by it. In fact, early computers were developed, in large part, to facilitate atmospheric models for weather and climate prediction.

Cracking the code

A climate model is actually a collection of models – typically an atmosphere model, an ocean model, a land model, and a sea ice model. Some GCMs split up the sub-models (let’s call them components) a bit differently, but that’s the most common arrangement.

Each component represents a staggering amount of complex, specialized processes. Here are just a few examples from the Community Earth System Model, developed at the National Center for Atmospheric Research in Boulder, Colorado:

  • Atmosphere: sea salt suspended in the air, three-dimensional wind velocity, the wavelengths of incoming sunlight
  • Ocean: phytoplankton, the iron cycle, the movement of tides
  • Land: soil hydrology, forest fires, air conditioning in cities
  • Sea Ice: pollution trapped within the ice, melt ponds, the age of different parts of the ice

Each component is developed independently, and as a result, they are highly encapsulated (bundled separately in the source code). However, the real world is not encapsulated – the land and ocean and air are very interconnected. Some central code is necessary to tie everything together. This piece of code is called the coupler, and it has two main purposes:

  1. Pass data between the components. This can get complicated if the components don’t all use the same grid (system of splitting the Earth up into cells).
  2. Control the main loop, or “time stepping loop”, which tells the components to perform their calculations in a certain order, once per time step.

For example, take a look at the IPSL (Institut Pierre Simon Laplace) climate model architecture. In the diagram below, each bubble represents an encapsulated piece of code, and the number of lines in this code is roughly proportional to the bubble’s area. Arrows represent data transfer, and the colour of each arrow shows where the data originated:

We can see that IPSL’s major components are atmosphere, land, and ocean (which also contains sea ice). The atmosphere is the most complex model, and land is the least. While both the atmosphere and the ocean use the coupler for data transfer, the land model does not – it’s simpler just to connect it directly to the atmosphere, since it uses the same grid, and doesn’t have to share much data with any other component. Land-ocean interactions are limited to surface runoff and coastal erosion, which are passed through the atmosphere in this model.

You can see diagrams like this for seven different GCMs, as well as a comparison of their different approaches to software architecture, in this summary of my research.

Show time

When it’s time to run the model, you might expect that scientists initialize the components with data collected from the real world. Actually, it’s more convenient to “spin up” the model: start with a dark, stationary Earth, turn the Sun on, start the Earth spinning, and wait until the atmosphere and ocean settle down into equilibrium. The resulting data fits perfectly into the cells, and matches up really nicely with observations. It fits within the bounds of the real climate, and could easily pass for real weather.

Scientists feed input files into the model, which contain the values of certain parameters, particularly agents that can cause climate change. These include the concentration of greenhouse gases, the intensity of sunlight, the amount of deforestation, and volcanoes that should erupt during the simulation. It’s also possible to give the model a different map to change the arrangement of continents. Through these input files, it’s possible to recreate the climate from just about any period of the Earth’s lifespan: the Jurassic Period, the last Ice Age, the present day…and even what the future might look like, depending on what we do (or don’t do) about global warming.

The highest resolution GCMs, on the fastest supercomputers, can simulate about 1 year for every day of real time. If you’re willing to sacrifice some complexity and go down to a lower resolution, you can speed things up considerably, and simulate millennia of climate change in a reasonable amount of time. For this reason, it’s useful to have a hierarchy of climate models with varying degrees of complexity.

As the model runs, every cell outputs the values of different variables (such as atmospheric pressure, ocean salinity, or forest cover) into a file, once per time step. The model can average these variables based on space and time, and calculate changes in the data. When the model is finished running, visualization software converts the rows and columns of numbers into more digestible maps and graphs. For example, this model output shows temperature change over the next century, depending on how many greenhouse gases we emit:

Predicting the past

So how do we know the models are working? Should we trust the predictions they make for the future? It’s not reasonable to wait for a hundred years to see if the predictions come true, so scientists have come up with a different test: tell the models to predict the past. For example, give the model the observed conditions of the year 1900, run it forward to 2000, and see if the climate it recreates matches up with observations from the real world.

This 20th-century run is one of many standard tests to verify that a GCM can accurately mimic the real world. It’s also common to recreate the last ice age, and compare the output to data from ice cores. While GCMs can travel even further back in time – for example, to recreate the climate that dinosaurs experienced – proxy data is so sparse and uncertain that you can’t really test these simulations. In fact, much of the scientific knowledge about pre-Ice Age climates actually comes from models!

Climate models aren’t perfect, but they are doing remarkably well. They pass the tests of predicting the past, and go even further. For example, scientists don’t know what causes El Niño, a phenomenon in the Pacific Ocean that affects weather worldwide. There are some hypotheses on what oceanic conditions can lead to an El Niño event, but nobody knows what the actual trigger is. Consequently, there’s no way to program El Niños into a GCM. But they show up anyway – the models spontaneously generate their own El Niños, somehow using the basic principles of fluid dynamics to simulate a phenomenon that remains fundamentally mysterious to us.

In some areas, the models are having trouble. Certain wind currents are notoriously difficult to simulate, and calculating regional climates requires an unaffordably high resolution. Phenomena that scientists can’t yet quantify, like the processes by which glaciers melt, or the self-reinforcing cycles of thawing permafrost, are also poorly represented. However, not knowing everything about the climate doesn’t mean scientists know nothing. Incomplete knowledge does not imply nonexistent knowledge – you don’t need to understand calculus to be able to say with confidence that 9 x 3 = 27.

Also, history has shown us that when climate models make mistakes, they tend to be too stable, and underestimate the potential for abrupt changes. Take the Arctic sea ice: just a few years ago, GCMs were predicting it would completely melt around 2100. Now, the estimate has been revised to 2030, as the ice melts faster than anyone anticipated:

Answering the big questions

At the end of the day, GCMs are the best prediction tools we have. If they all agree on an outcome, it would be silly to bet against them. However, the big questions, like “Is human activity warming the planet?”, don’t even require a model. The only things you need to answer those questions are a few fundamental physics and chemistry equations that we’ve known for over a century.

You could take climate models right out of the picture, and the answer wouldn’t change. Scientists would still be telling us that the Earth is warming, humans are causing it, and the consequences will likely be severe – unless we take action to stop it.

Read Full Post »

Part 1 of a series of 5 for NextGen Journal.

What’s wrong with these statements?

  • I believe in global warming.
  • I don’t believe in global warming.
  • We should hear all sides of the climate change debate and decide for ourselves.

Don’t see it? How about these?

  • I believe in photosynthesis.
  • I don’t believe in Newton’s Laws of Motion.
  • We should hear all sides of the quantum mechanics debate and decide for ourselves.

Climate change is a scientific phenomenon, rooted in physics and chemistry. All I did was substitute in other scientific phenomena, and the statements suddenly sounded wacky and irrational.

Perhaps we have become desensitized by people conflating opinion with fact when it comes to climate change. However, the positions of politicians or media outlets do not make the climate system any less of a physical process. Unlike, say, ideology, there is a physical truth out there.

If there is a physical truth, there are also wrong answers and false explanations. In scientific issues, not every “belief” is equally valid.

Of course, the physical truth is elusive, and facts are not always clear-cut. Data requires interpretation and a lot of math. Uncertainty is omnipresent and must be quantified. These processes require training, as nobody is born with all the skills required to be a good scientist. Again, the complex nature of the physical world means that some voices are more important than others.

Does that mean we should blindly accept whatever a scientist says, just because they have a Ph.D.? Of course not. People aren’t perfect, and scientists are no exception.

However, the institution of science has a pretty good system to weed out incorrect or unsupported theories. It involves peer review, and critical thinking, and falsifiability. We can’t completely prove anything right – not one hundred percent – so scientists try really hard to prove a given theory wrong. If they can’t, their confidence in its accuracy goes up. Peter Watts describes this process in more colourful terms: “You put your model out there in the coliseum, and a bunch of guys in white coats kick the s**t out of it. If it’s still alive when the dust clears, your brainchild receives conditional acceptance. It does not get rejected. This time.”

Peer review is an imperfect process, but it’s far better than nothing. Combined with the technical skill and experience of scientists, it makes the words of the scientific community far more trustworthy than the words of a politician or a journalist. That doesn’t mean that science is always right. But, if you had to put your money on it, who would you bet on?

The issue is further complicated by the fact that scientists are rarely unanimous. Often, the issue at question is truly a mystery, and the disagreement is widespread. What causes El Niño conditions in the Pacific Ocean? Science can’t give us a clear answer yet.

However, sometimes disagreement is restricted to the extreme minority. This is called a consensus. It doesn’t imply unanimity, and it doesn’t mean that the issue is closed, but general confidence in a theory is so high that science accepts it and moves on. Even today, a few researchers will tell you that HIV doesn’t cause AIDS, or that secondhand smoke isn’t harmful to your health. But that doesn’t stop medical scientists from studying the finer details of such diseases, or governments from funding programs to help people quit smoking. Science isn’t a majority-rules democracy, but if virtually all scientists have the same position on an issue, they probably have some pretty good reasons.

If science is never certain, and almost never unanimous, what are we supposed to do? How do we choose who to trust? Trusting nobody but yourself would be a poor choice. Chances are, others are more qualified than you, and you don’t hold the entirety of human knowledge in your head. For policy-relevant science, ignoring the issue completely until one side is proven right could also be disastrous. Inaction itself is a policy choice, which we see in some governments’ responses to climate change.

Let’s bring the whole issue down to a more personal level. Imagine you were ill, and twenty well-respected doctors independently examined you and said that surgery was required to save your life. One doctor, however, said that your illness was all in your mind, that you were healthy as a horse. Should you wait in bed until the doctors all agreed? Should you go home to avoid surgery that might be unnecessary? Or should you pay attention to the relative size and credibility of each group, as well as the risks involved, and choose the course of action that would most likely save your life?

Read Full Post »

I apologize for my brief hiatus – it’s been almost two weeks since I’ve posted. I have been very busy recently, but for a very exciting reason: I got a job as a summer student of Dr. Steve Easterbrook! You can read more about Steve and his research on his faculty page and blog.

This job required me to move cities for the summer, so my mind has been consumed with thoughts such as “Where am I and how do I get home from this grocery store?” rather than “What am I going to write a post about this week?” However, I have had a few days on the job now, and as Steve encourages all of his students to blog about their research, I will use this outlet to periodically organize my thoughts.

I will be doing some sort of research project about climate modelling this summer – we’re not yet sure exactly what, so I am starting by taking a look at the code for some GCMs. The NCAR Community Earth System Model is one of the easiest to access, as it is largely an open source project. I’ve only read through a small piece of their atmosphere component, but I’ve already seen more physics calculations in one place than ever before.

I quickly learned that trying to understand every line of the code is a silly goal, as much as I may want to. Instead, I’m trying to get a broader picture of what the programs do. It’s really neat to have my knowledge about different subjects converge so completely. Multi-dimensional arrays, which I have previously only used to program games of Sudoku and tic-tac-toe, are now being used to represent the entire globe. Electric potential, a property I last studied in the circuitry unit of high school physics, somehow impacts atmospheric chemistry. The polar regions, which I was previously fascinated with mainly for their wildlife, also present interesting mathematical boundary cases for a climate model.

It’s also interesting to see how the collaborative nature of CESM, written by many different authors and designed for many different purposes, impacts its code. Some of the modules have nearly a thousand lines of code, and some have only a few dozen – it all depends on the programming style of the various authors. The commenting ranges from extensive to nonexistent. Every now and then one of the files will be written in an older version of Fortran, where EVERYTHING IS IN UPPER CASE.

I am bewildered by most of the variable names. They seem to be collections of abbreviations I’m not familiar with. Some examples are “mxsedfac”, “lndmaxjovrdmdni”, “fxdd”, and “vsc_knm_atm”.

When we get a Linux machine set up (I have heard too many horror stories to attempt a dual-boot with Windows) I am hoping to get a basic CESM simulation running, as well as EdGCM (this could theoretically run on my laptop, but I prefer to bring that home with me each evening, and the simulation will probably take over a day).

I am also doing some background reading on the topic of climate modelling, including this book, which led me to the story of PHONIAC. The first weather prediction done on a computer (the ENIAC machine) was recreated as a smartphone application, and ran approximately 3 million times faster. Unfortunately, I can’t find anyone with a smartphone that supports Java (argh, Apple!) so I haven’t been able to try it out.

I hope everyone is having a good summer so far. A more traditional article about tornadoes will be coming at the end of the week.

Read Full Post »

Follow

Get every new post delivered to your Inbox.

Join 353 other followers