Building the executable

After customizing your build options, and adding any user-modified source code, you are ready to build the case executable.


> cd $CASEROOT
> $CASE.$MACH.build

Diagnostic comments will appear as the build proceeds.

The following line indicates that the component namelists have been generated successfully:


....
CCSM BUILDNML SCRIPT HAS FINISHED SUCCESSFULLY
....

When the required case input data in $DIN_LOC_ROOT has been successfully checked, you will see:


CCSM PRESTAGE SCRIPT STARTING
...
...
CCSM PRESTAGE SCRIPT HAS FINISHED SUCCESSFULLY

Finally, the build script generates the utility and component libraries and the model executable. There should be a line for the mct and pio libraries, as well as each of the components. Each is date stamped, and a pointer to the build log file for that library or component is created. Successful completion is indicated by:


CCSM BUILDEXE SCRIPT HAS FINISHED SUCCESSFULLY

The build log files have names of the form $model.bldlog.$datestamp and are located in $RUNDIR. If they are compressed (indicated by a .gz file extension), then the build ran successfully.

Invoking $CASE.$MACH.build creates the following directory structure in $EXEROOT:


$EXEROOT/atm
$EXEROOT/ccsm
$EXEROOT/cpl
$EXEROOT/csm_share
$EXEROOT/glc
$EXEROOT/ice
$EXEROOT/lib
$EXEROOT/lnd
$EXEROOT/mct
$EXEROOT/ocn
$EXEROOT/pio
$EXEROOT/run

The atm/, ccsm/, cpl/, glc/, ice/, lnd/, and ocn/ subdirectories each contain an 'obj/' directory where the compiled object files for the model component is placed. These object files are collected into libraries that are placed in 'lib/' along with the mct/mpeu, pio, and csm_share libraries. Special include modules are also placed in lib/include. The model executable 'ccsm.exe' is placed in $EXEROOT/run along with component namelists. During the model run, component logs, output datasets, and restart files are also placed in this directory.