Building a community root module with built-in functions from the Community Land Model
The complexity of software structures in large-scale environmental models has always been an issue that hinders the interpretation, validation, and further development of these modeling systems. Recently, modular design and functional testing of environmental models have gained considerable attention within the broader scientific community. It aims at generating standalone modules that realize particular environmental and/or ecological functions for the purpose of scientific functional testing. This study presents our efforts to develop a community root module with built-in functions from the Community Land Model (CLM). Specifically, two tasks are presented, including (1) root-related scientific functional testing modules generation; (2) the development of an interactive computational experiment design framework which facilitates the representation, customization and visualization of root-related function within CLM.
Based on our compiler-assisted workflow analysis and automatic functional test module generation, we successfully generated a set of functional testing modules which simulate critical root-related processes in CLM. Each generated module can be executed separately by taking a list of input variables, and can also export a list of output variables after module execution. To create a community root module, we design an application which couples the root-related functional testing modules based on the logical/ecological relationships of the corresponding processes. The application allows users to: (1) perform root functional test by manipulating external forcing, and plant functional type-specific ecophysiological parameters; (2) run single/multiple time step root function simulation based on their own study purposes; (3) visualize how particular root-related variables change over each time step during the simulation period. The framework helps modelers and field scientists to perform customized scientific functional testing without having too much burden on software development and pre-configuration. It provides a much-need interface for model interpretation and validation by the empirical community. The design for the community root module can be easily modified for other submodels in CLM and can be applied in other large-scale environmental models for similar scientific functional testing experiments.