Surface Dataset

 

Changing the land/sea mask for deep time model experiments requires that the modeler create a new land surface dataset.  The surface dataset is created offline in a series of three steps outlined below. The offline process differs from CCSM3, where the surface dataset was created at runtime.  

Deep Time:  The surface dataset is constructed from a series of seven ‘raw’ datafiles.  Deep Time modelers can create these files using the script: paleo_mkraw_cesm1.csh. 

HINT:  It is highly recommended that the modeler review the newly created surface_data_[resolution].nc for accuracy. When creating this dataset, CLM4/CESM1 uses the ocean grid to compute the land/ocean mask and create the respective variables onto atm/lnd grid. When this initial mapping is done, there are often mismatches between the ocean grid and the atmosphere grid. If the ocean model views a grid point as land, and the land model has no information on that grid point (because on the atmosphere grid it was considered ocean), then CLM4 assigns this point to be wetland. This typically occurs along the coastlines and may not be desired.  The modeler will need to modify the surface_data_[resolution].nc file to correct for these erroneous wetland points. We provide an NCL script in the setup_tools tar file to correct surface_data_resolution.ncif necessary.

You may want to change the generic name of the new surface dataset to something more descriptive by adding your case ID and/or a date.

Hint:  Once your surface_data_myrun.nc file is corrected, all model submissions should point this file.

 

======================================================================
mkmapgrids ---------------------- cesm1_2 tool
======================================================================

step 1: -- mkmapgrids : make SCRIPgrid 

Use ncl script to create SCRIP grid files with paleo land/sea mask, at 2x2 degree. this
creates a SCRIPgrid file for the 2x2 rawdata files with the landmask/ocean.

srcdir: /cesm1_2/models/lnd/clm/tools/shared/mkmapgrids
src: mkscripgrid_paleo.ncl                        
in:   mksrf_lanwat_{myRun}.nc                     !! land mask, edges, centers
out: SCRIPgrid_{myRun}_{RESOLUTION}.nc

usage: ncl mkscripgrid_paleo.ncl

======================================================================
mkmapdata ------------------ NOTE:  BATCH JOB ---- cesm1_2 tool

GEYSER INSTRUCTIONS:  bsub -Is -q geyser -W 24:00 -n 1 -P P93300624 $SHELL

POSSIBLE BUG:  batch submission may not be automatic

The variable $LSF_PJL_TYPE should be set automatically to give the batch directive. If it is not set, the run will not submit in batch mode as required.  Workaround:  manually add the -b flag.


======================================================================

step 2: -- make SCRIPmaps : mkmapdata

Now map the SCRIPgrid file to the CESM land grid.
We use a generic SCRIP land grid because its mask == 1 everywhere.

srcdir: /cesm1_2_0/models/lnd/clm/tools/shared/mkmapdata
Shell: regridbatch_paleo.sh
src: mkmapdata_paleo.sh  

  • Copy mkmapdata_paleo.sh to mkmapdata_{mycase}.sh
  • Edit mkmapdata_{mycase}.sh (Search for "Change me")
    • grids_ID (e.g., 2x2_PT)
    • INGRID (e.g., SCRIPgrid_PT_90x180.130921.nc from mkmapgrid)
  • Edit regridbatch_paleo.sh to point to mkmapdata_{mycase}.sh

    • mycase = "mkmapdata_{mycase}.sh"


in1: SCRIPgrid_myRun_{RESOLUTION}.nc
in2: /inputdata/lnd/clm2/mappingdata/grids/1.9x2.5_c110308.nc    !! generic
out: map_{mksrf_resolution}_to_{CESM_resolution}_nomask_aave_da_c{DATE}.nc           

usage: bsub < regridbatch_{mycase}.sh                  !! calls mkmapdata_{mycase}.sh

_____________________________________________________________

 

 ____________________________________________________________

 

======================================================================
mksurfdata ---------------------- cesm1_2 tool
======================================================================

Step 3 : create new surface dataset:

srcDir: /cesm1_2/models/lnd/clm/tools/clm4_0/mksurfdata_map
Step 3a: cp mksurfdata_map.namelist mksurfdata_map.namelist.{myrun}

step 3b: modify mksurfdata_map.namelist.{myrun} for your simulation
Step 3c: Run mksurfdata_map

> usage: ./mksurfdata_map < mksurfdata_map.namelist.myRun