Debugging¶
This page provides strategies for investigating errors encountered while using GCHP.
Table of contents
Configure errors¶
Coming soon
Build-time errors¶
Coming soon
Run-time errors¶
Recompile with debug flags¶
Recompile using debug flags by setting -DCMAKE_BUILD_TYPE=Debug
during the configure step. See the section of the user guide on compiling GCHP for more guidance on how to do this. Once you rebuild there may be more information in the logs when you run again.
Enable maximum print output¶
Besides compiling with CMAKE_BUILD_TYPE=Debug
, there are a few run-time settings you can configure to boost your chance of successful debugging.
All of them involve sending additional print statements to the log files.
Set Turn on debug printout? in
geoschem_config.yml
to T to turn on extra GEOS-Chem print statements in the main log file.Set the Verbose and Warnings settings in
HEMCO_Config.rc
to maximum values of 3 to send the maximum number of prints toHEMCO.log
.Set
CAP.EXTDATA
andMAPL
optionsroot_level
inlogging.yml
toDEBUG
to send root thread MAPL prints toallPEs.log
.Set
CAP.EXTDATA
andMAPL
optionlevel
inlogging.yml
toDEBUG
to send all thread MAPL ExtData (input) prints toallPEs.log
.
None of these options require recompiling. Be aware that all of them will slow down your simulation. Be sure to set them back to the default values after you are finished debugging.
Inspecting memory¶
Memory statistics are printed to the GCHP log each model timestep by default. This includes percentage of memory committed, percentage of memory used, total used memory (MB), and total swap memory (MB). This information is always printed and is not configurable from the run directory. However, additional memory prints may be enabled by changing the value set for variable MEMORY_DEBUG_LEVEL
in run directory file GCHP.rc
. Setting this to a value greater than zero will print out total used memory and swap memory before and after run methods for gridded components GCHPctmEnv, FV3 advection, and GEOS-Chem. Within GEOS-Chem, total and swap memory will also be printed before and after subroutines to run GEOS-Chem, perform chemistry, and apply emissions. For more information about inspecting memory see the output files section of this user guide.