Generating land model initial conditions

The purpose of this page is to document best-practices for generating initial conditions (finidat) for the land model. This page was created because I could not readily find a comprehensive best-practices page for generating/spinning up initial conditions for new grids. If anyone knows where to find these, please replace this page with a link or supplement the content here.


When setting up the land model for a new grid, we have three choices for initialization:

  1. Start from arbitrary initial conditions (cold-start). This will start the land model very far out of equilibrium, but gets the model up and running as quickly as possible. In no way acceptable for science applications.

  2. Start from an existing initial condition remapped to the target grid. This is also a quick way to get up and running, and may be sufficient for many purposes, but is not acceptable for published science experiments with E3SM because the initial condition may still be out of balance on the new grid.

  3. Spin up a new initial condition using established best-practices. This page will attempt to document these “best-practices”.

The best procedure for spinning up a new initial condition likely depends on the targeted application. For simple atmosphere/land-only configurations (F cases), a relatively simple procedure may be used. However, for fully coupled simulations, a more complicated procedure is recommended (paste email from Peter Thornton here).

Case study: Arctic RRM initial condition for F-cases

As a case study, I am documenting my recent experiences trying to get a spun-up initial condition suitable for use with atmosphere/land-only F-case simulations on a new Arctic RRM. Figures shown will all come from these attempts.

For this application, the recommendation I received was to run a land-only I-case for at least 10 years to make sure the model is spun up. The I-case (in this example, ICRUELM) is configured to run with the land model as the only active component, with a data atmosphere. A simple I-case can be created with the following (note that I am using bash for all of the shell command examples):

#!/bin/bash # Create case and move to case directory cd ${e3sm_root}/cime/scripts ./create_newcase --case ${case_name} --res ${res} --compset ${compset} \ --machine ${machine} --compiler ${compiler} \ --pecount ${pecount} --project ${project} --walltime 01:30:00 cd ${case_name}

where obviously you’ll need to set e3sm_root, case_name, res, compset, machine, compiler, pecount, and project appropriately. In order to be most applicable to the target application, the beginning and end year to use for the data atmosphere needs to be specified. Since I am targeting a F2010 configuration (approximate 2010 conditions), we configure the case to cycle through years 2006-2015. This is done by setting the following in a case directory:

# Configure data atmosphere for period around 2010 to prepare initial condition # for F2010 conditions. Note that ICRUELM compset will use evolving data # atmosphere so that land model can respond to fast changes in the atmosphere, # even though a F2010 compset uses climatological SST and sea ice extent. ./xmlchange DATM_MODE=CLMCRUNCEPv7 ./xmlchange DATM_CLMNCEP_YR_START=2006,DATM_CLMNCEP_YR_END=2015

Note that this sets the range of years to use for the atmosphere boundary condition. The simulation is configured to cycle through these years, so for example, a 20 year simulation would run through this date range twice.

If running on a new grid that has not been added to ELM and CIME, we will also need to set the path to the land surface dataset we want to use for this case:

# Edit ELM namelist to specify our fsurdat file for 2010 conditions cat <<EOF >> user_nl_elm fsurdat = '/global/cfs/cdirs/e3sm/inputdata/lnd/clm2/surfdata_map/' EOF

I may have mistakenly assumed that this should be from a “coldstart”, because after 50 years the land model is still not fully spun up, as we will see below. In hindsight, a better practice would have been to start with an equilibrium land initial condition remapped to our target grid. In this case, we would want to specify a path to this remapped initial condition using the finidat namelist variable in the above code to append to user_nl_elm. In any event, we also want to set the run duration and number of resubmits here. For the initial test, I ran 10 years with restarts every year (this grid is quite large):

With these options, we can submit once for each 10 year chunk, and then go back and check our spin-up state. Looking a few select fields, after 90 years we have the following (these are all land-only area-weighted global means):

The comparison is between a spin-up with a coldstart initial condition (described here) and an initial condition remapped from a lower resolution (described in the following section). While total water storage (TWS) appears to be at least approaching an equilibrium value, it is still increasing over the last decade of the simulation. This appears to be typical for column integrated quantities. The heat content (HCSOI) shows a similar story:


However, a more alarming example is the surface water depth (H2OSFC):


After 90 years, this quantity is still increasing at a linear rate. I suspect this is due to the configuration of the I-case, but it’s a little odd. This does not seem to happen in the coupled cases (i.e., the piControl simulation referenced in the following section).

Digging a little further, while the global means appear to be coming to equilibrium, regional means are not. For this arctic RRM example, we are interested in the arctic region. Looking instead at averages north of 60 N, we see that quantities are still changing fairly rapidly:

Even after 90 years, and even after 40 years in the remapped case, the arctic appears to still be spinning up.

Remapping an existing initial condition

Add a captionWith the apparent slow spin-up of the land model from a cold-start, even for an I-case, it makes sense to try to get a jump-start on spin-up by starting with an existing spun-up initial condition, and remapping to our target grid, and then performing a (hopefully shorter) additional adjustment/spin-up period on the new grid. ELM provides a tool for remapping initial conditions, as it is apparently not as straightforward a process as remapping data for the other components, I think because the land model restart files describe only a subset of the grid and in some specialized format (someone who knows more about this should comment here, I’m still surprised we need a special tool to do this). That remap tool is in:

Other than some simple Makefile and source code fixes to build on cori (upcoming in a PR), the tool is easy to build and run. The following was sufficient to create a remapped initial condition from a 1000 year pre-industrial control simulation at ne30:

Using the resulting remapped initial condition, I wanted to see how much this would accelerate the adjustment to a different forcing, so ran another I-case (using the above setup for running cold start but instead from this remapped initial condition). The global means actually look quite good, even at the start of this simulation:

However, looking at just the arctic (60N to 90N), it definitely looks like things are still spinning up after 50 years: