CESM2 Python Tools

General Overview

CESM2 relies on these NCAR developed external python tools:

These tools are available for use by the community via public github repositories, see below for more information.

PyCECT - Port Verification Tool

CESM Ensemble Consistency Test (CESM-ECT) determines whether a new simulation set up (new machine, compiler, etc.) is statistically distinguishable from an accepted ensemble.

The verification tools in the CESM-ECT suite are:

  • CAM-ECT - detects issues in CAM, CLM, and possible other components if using B1850 (12 month runs)
  • UF-CAM-ECT - "Ultra-fast" UF-CAM-ECT detects issues in CAM and CLM (9 time step runs)


Three simulation runs must be created via script ensemble.sh and then be verified by ECT
* The ensemble.sh script is located in cime/tools/statistical_ensemble_test

The current ensemble summary files available are:

  • CAM-ECT - resolution = f09_g17, compset = B1850 (12 month runs)
  • UF-CAM-ECT - resolution = f19_f19_mg17, compset = F2000climo (9 time step runs)


The same resolution and compset must be used in the individual runs as in the ensemble
The NetCDF ensemble summary file global attributes give this information


Example to create three runs for CAM-ECT

./ensemble.sh --case /glade/scratch/cesm_user/cesm_tag/case.cesm_tag.000 --mach cheyenne --compset B1850 --res f09_g17 --compiler intel

Example to create three runs for UF-CAM-ECT
* CSEG recommendeds using UF-CAM-ECT, as it will be much faster

./ensemble.sh --case /glade/scratch/cesm_user/cesm_tag/case.cesm_tag.uf.000 --mach cheyenne --compset F2000climo --res f19_f19_mg17 --compiler intel --uf

Once the three runs are finished, you will need to run the cime/tools/statistical_ensemble_test/addmetadata.sh script to add metadata to the files to be uploaded. The addmetadata.sh script requires that the nco tool ncks be available in your path, on most hpc systems this is available via: module load nco

./addmetadata.sh --caseroot /glade/scratch/cesm_user/cesm_tag/case.esm_tag.uf.000 --histfile /glade/scratch/cesm_user/cesm_tag/case.cesm_tag.uf.000/run/case.cesm_tag.uf.000.cam.h0.0001-01-01-00000.nc
./addmetadata.sh --caseroot /glade/scratch/cesm_user/cesm_tag/case.esm_tag.uf.001 --histfile /glade/scratch/cesm_user/cesm_tag/case.cesm_tag.uf.001/run/case.cesm_tag.uf.001.cam.h0.0001-01-01-00000.nc
./addmetadata.sh --caseroot /glade/scratch/cesm_user/cesm_tag/case.esm_tag.uf.002 --histfile /glade/scratch/cesm_user/cesm_tag/case.cesm_tag.uf.002/run/case.cesm_tag.uf.002.cam.h0.0001-01-01-00000.nc

You are now ready to upload the three files to be verified and can use our online web form here

If you have a failure, it could indicate a systems configuration issue. For more information please see the PyCECT github repository README or the DiscussCESM message board.

Technical Reference

A.H. Baker, D.M. Hammerling, M.N. Levy, H. Xu, J.M. Dennis, B.E. Eaton, J. Edwards, C. Hannay, S.A. Mickelson, R.B. Neale, D. Nychka, J. Shollenberger, J. Tribbia, M. Vertenstein, and D. Williamson,"A new ensemble-based consistency test for the community earth system model."Geoscientific Model Development, 8, pp. 2829-2840, Doi: 10.5194/gmd-8-2829-2015, 2015

CESM_postprocessing - Parallel Post Processing Tools

Python based parallel post-processing tools are being used for the CESM2 development, tuning and CMIP6 data processing and include:

  • Model output diagnostics plots for atmosphere, land, land-ice, ocean, ocean biogeochemistry, river runoff, and sea-ice
  • Compressed single variable time series file generation from model output time slice files
  • Climate Model Output Rewriter (CMOR) for CMIP6 compliance

Public access to these tools are available here. The repository wiki contains additional instructions on how to use these tools on NCAR machines.

Support for these tools is currently limited to NCAR machines only

Cylc - Workflow manager

CESM2 is using the Cylc workflow engine as part of the CMIP6 effort as well as other NCAR projects invovling complex workflows of the CESM2 model. The customized NCAR Cylc related scripts are available from the public github repository here.

Support for these tools is currently limited to NCAR machines only

Additional Resouces

NCAR provides the following tools to the community to aid in visualization or model data output:

  • NCL (NCAR Command Language)
  • NCO (NetCDF Operators)