-
Notifications
You must be signed in to change notification settings - Fork 312
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rework water data types to accommodate isotopes and other tracers This tag reworks the various water data types to allow having multiple instances of variables that are needed for isotopes and other water tracers. Specific changes include: (1) Separated "water state" variables into state, diagnostic and balance check-related variables. This separation was not essential for the work here, but was desired by Martyn Clark and others. (2) For each of water state, diagnostic and flux variables, separated variables into those needed for both bulk and tracers vs. those only needed for bulk. This way, we can have multiple instances of the variables needed by tracers, but only a single instance of variables that only apply to bulk water. This follows the design laid out in #395. The separation was based largely on what was done in the old water isotope branch; we didn't put a lot of thought into this, because the new design allows us to easily migrate variables between bulk-only and bulk-and-tracer as needed. (3) Moved water fluxes that were defined in science modules back into waterflux_type or waterfluxbulk_type. This was needed for (2); there is more discussion on this in #395 and the log message for commit 711e5cd. (4) Introduced a top-level water_type that holds instances of all of the other water-related objects. This follows the design laid out in #395. This is particularly valuable for the tracer instances: the logic related to number of tracers can be encapsulated in water_type, rather than infiltrating clm_instMod. (5) Added placeholders for water tracer instances (6) Added infrastructure to generate history / restart field names for the tracer instances. Eventually, the isotope class can also hold information specific to each isotope. This work was a joint effort between Mathew Rothstein and myself; Mat gets much of the credit for the actual refactoring done here. Issues fixed (include CTSM Issue #): - Fixes #358 (Separate WaterStateType into multiple types) - Fixes #434 (Separate WaterFluxType into a base class and a class that just applies to bulk) - Fixes #359 (Set up infrastructure for multiple instances of WaterState and WaterFlux types) - Fixes #458 (Implement handling of history and restart variables for water tracers)
- Loading branch information
Showing
79 changed files
with
5,340 additions
and
3,002 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.