A bit about the structure of PTCLM, what it does, and how it works

A large part of PTCLM just sets up the different options and does error checking on the options given. PTCLM then uses the options provided to use create_newcase to create a new case. It then queries both the case directory and/or the XML database (using queryDefaultNamelist.pl in models/lnd/clm/bld and does other settings for the case. It then runs the different CLM tools in turn to create the necessary datasets and points to them in the case with the CLM_USRDAT_NAME option. It runs mkgriddata, mksurfdata.pl, and mkdatadomain as well as the aerdepregrid.ncl and ndepregrid.ncl NCL scripts. mkgriddata and mkdatadomain have template namelist files in the scripts/ccsm_utils/Tools/lnd/clm/PTCLM/usr_files directory. When running mksurfdata.pl if it finds a $SITE_dynpftdata.txt in the scripts/ccsm_utils/Tools/lnd/clm/PTCLM/PTCLM_sitedata directory it will use that file for transient landuse changes (there's a sample file for "US-Ha1" called US-Ha1_dynpftdata.txt). It modifies the different env*.xml using xmlchange and creates an initial user_nl_clm filename. After PTCLM is run you can then make changes to the case by hand, and configure, build and run as normal.

There is a simple test script to test PTCLM. See the Section called Testing PTCLM use the PTCLM test script in Appendix C for more information on using it.