EMC Training | Day 1 Basics > Compile Using a Different Build Option

OPTIONAL exercise: 

Re-compile using the "STATIC=N" option, and run each of these cases using the new executable.  With the dynamic build option (STATIC=N), different SDFs can be used at runtime with the same executable.

Be sure to use the "clean-before" option YES, so that the code and libraries are recompiled correctly!  This is the 5th argument to compile.sh

Compile

Repeat the steps in the Compile section of the first example, this time using the dynamic build (no build-time SDF needed).

  • For bash shell

./compile.sh $PWD/../FV3 theia.intel "CCPP=Y HYBRID=N STATIC=N " ccpp3 YES NO 2>&1 | tee compile.log

  • For t/csh shell

./compile.sh $PWD/../FV3 theia.intel "CCPP=Y HYBRID=N STATIC=N" ccpp3 YES NO |& tee compile.log

 

Run

You may re-use the previous run directories (fv3_ccpp_control or fv3_ccpp_gfdl) to run either case with this dynamic executable.

Link (or copy) your dynamic executable into this run directory:

rm fv3.exe

ln -s ${YOUR_WORK_DIR}/NEMSfv3gfs/tests/fv3_ccpp3.exe fv3.exe

When using the dynamic build options, be sure to add the ccpp library path to your LD_LIBRARY_PATH envar.  For example, in this run directory, in the file module-setup.sh file, update:

export LD_LIBRARY_PATH=${YOUR_WORK_DIR}/NEMSfv3gfs/ccpp/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}

Submit the run script to the batch queue:

qsub run_ccpp.sh