Near-modern CESM1.0 | Land Model

The land component of CESM1.x is the Community Land Model, version 4.0 (CLM4) or version 4.5 (CLM4.5).  This documentation supports CLM4, version 4.0.  The CLM4 requires a surface dataset that defines the spatial distribution of vegetation, surface water, and land ice. This surface dataset is created offline, using CLM tools and the set of 'raw' datafiles, most of which are at half-degree resolution, that define the spatial distribution of vegetation types (expressed as plant function types or PFT), soil color, soil texture, leaf/stem areas and heights, inland lakes, urban area and land ice data.

e.g., set fsurdat = ‘’

Many near-modern simulations are able to use the present day (default) surface dataset.  However, if you want to make changes to your land cover (e.g., by adding/removing land ice or by changing vegetation), you will need to create a new surface dataset to reflect these changes.  The surface dataset requires 'raw' data at 0.5 degree grid resolution netCDF files called 'mksrf' files.  These data reflect the spatial distribution of vegetation types (PFT), inland lakes, and land ice data for the land model. 

NOTE:  If you plan to lower sea level and expose new land along the continental shelf, CLM4 will automatically define that new land as ‘wetland’. We provide a tool that will modify your mksrf files (PFT, soil color and LAI) using a nearest neighbor algorithm to fill in the new land points (see Table below).

NOTE:  Modifying can be tricky and drastically changing vegetation may result in a climate signal that is larger than the forcing that you are testings.

Changing land ice

If your experiment requires a change in land ice, we provide a set of tools that will modify the default raw data files to reflect land surface changes in glaciers, lakes/wetlands, and PFTs.  The programs will also remove crops, and set harvest variables to zero. The modeler needs to provide a netCDF file of surface topography and land ice at 10min resolution.  NOTE:  If you have added new land (and/or ice-covered land) over ocean grid cells (e.g., Fenno-Scandia, Hudson Bay) you will also need to create new coupler mapping files to reflect the change to the land/sea mask.


10min2_05deg.nclCreate 0.5 degree topo-ice file for convert_mksrf.F90


(rewrite in ncl)

modify default (modern) raw mksrf files to be consistent w/ your new landice files.  Output:,  See usage below.
remove_crops.nclset crops to 0. use nearest neighbor for cells where crop==100%; add req'd pft harvest variables; set harvest to 0.
nn_fill.ncl(beta)use nearest neighbor interpolation to fill new land cells.  Notes:  soil color2, lai3
create_mksrf_topo.nclcreate raw topo dataset.
create_mksrf_urban.nclcreate raw urban dataset; set urban to 0.
nn_fill.mapunits.ncl (WIP) -- SKIP --





create land mapping file







1 Usage:   convert_mksrf

  1.  cp convert_mksrf.template convert_mksrf.template.myrun 
  2.  modify convert_mksrf.template.myrun to point to your input files 
  3. cp convert_mksrf.template.myrun convert_mksrf.F90
  4.  compile (make -f Makefile.nwsc)
  5.  execute:  ./convert_mksrf

 2 We use the default soil color file because it (1) already assigns soilcolor = 15 to new land, and (2) the landmask is not used: pftlandusedyn.0.5x0.5.simyr1850-2005.c090630/

3 Monthly_height_BOT = constant for given PFT; MONTHLY_HEIGHT_TOP = constant for given PFT; MONTHLY_LAI and MONTHLY_SAI:  interpolate from nearest neighbor.

4Path:  /glade/p/cesm/palwg/cesm1_2_0/models/lnd/clm/tools/clm4_0/mksurfdata_map/; Usage: mksurfdata_map < mksurfdata_map.namelist.15ka

Changing land cover

CLM4 does not require an initial condition file and can be initialized with arbitrary initialization and the surface dataset created from your mksrf datafiles [finidat = ‘ ‘].  You can also restart from an existing simulation, using clm2.r files to initialize your new experiment. 

However, if you have changed your land cover in your new simulation (for example, if you have changed your land ice distribution), you will first need to create a new clm2.r file that conforms to the new land cover assignments in your modified surface datafile.  Creating a new clm2.r file is a two step process.  Step 1:  Run a short (e.g., 5 day) startup simulation with arbitrary initial conditions and your new surface dataset. The 5 day simulation will produce a restart file that is consistent with the ice distribution in your new surface dataset, which is different from the original experiment that you wish to branch from.  Use the tool, interpinic, to re-map the restart data from the original simulation to the new restart file created by the 5-day run.

  1. Set up and run a 5-day startup simulation with your new surface dataset and arbitrary initialization to create a CLM restart file consistent with your new surface dataset.

    -- user_nl_clm

    finidat = ‘ ‘

    fsurdat = '/mypath/'

  2. Map the data from the original restart file (, onto the newly created restart file ( using the tool interpinic, which is included with the CESM1 release.

    % interpinic -i -o

  3. Rename the newly remapped file to reflect its history.

    % mv  (IP ~= interpinic)

  4. NOTE: CLM4 will not allow you to specify both a surface dataset and finidat in user_nl_clm. If you get an error when running preview_namelist, then comment out the finidat line in user_nl_clm, and edit Buildconf/clm.buildnml.csh to point explicitly to your new file:

    -- user_nl_clm:

    fsurdata = '/mypath/'

    ! finidat = '/mypath/'  (comment out)

    -- Buildconf/clm.buildnml.csh:

    clm_startfile = "/mypath/"

PFT-physiology dataset

The CLM4 land model defines the physiology of each plant functional type (PFT) in an ASCII text file, called ‘pft-physiology’.  The default pft-physiology definitions are generally used for paleo experiments.  However, if you wish to change the characteristic of a specific CLM4 PFT you may need to edit this dataset. Please read the CLM4 documentation before altering this file and/or contact a CCSM paleo liaison for a consultation.

Runoff directional dataset (rdirc)

The River Transport Model (RTM) runs inside the land model on a fixed regular grid that is different from the parent CLM4 grid (the CLM4, CAM4 and CAM5 models typically use the same grid). The runoff directional dataset required for RTM is an ASCII file containing latitude, longitude, and an integer value describing the vector (direction) for runoff flow at each RTM grid point. The integer values are numbered from 1 to 8: 1=N, 2=NE (45o), 3=E (90o), 4=SE (135o), 5=S (180o), etc.   Most near-modern experiments are able to use the default runoff directional dataset (rdirc.05) pointed to in clm.buildnml.csh.