Skip to content

Perform gridcell-level water balance checks bracketing the entire run loop #201

@billsacks

Description

@billsacks

From @billsacks on March 17, 2017 20:38

Currently, the CLM driver loop looks like this, in terms of pieces relevant to this issue:

  • Compute pre-dynlu gridcell-level water mass

  • Adjust column areas via dynamic landunits

  • Compute post-dynlu gridcell-level water mass

  • Compute adjustment fluxes based on difference between pre- and post-dynlu gridcell-level water mass

  • Compute pre-physics column-level water mass

  • Do physics

  • Compute post-physics column-level water mass

  • Do column-level balance checks using the pre- and post-physics column-level water mass and the relevant fluxes

As long as you trust:

  1. that the calculation of the dynlu adjustment fluxes is done correctly, and

  2. that the column-level fluxes used in the column-level balance checks correctly mirror the relevant gridcell-level fluxes

then you can convince yourself that this sequence ensures gridcell-level conservation.

However, it would be more robust and more reassuring if we performed gridcell-level water conservation checks, bracketing essentially the entire driver run loop (including dynamic landunits adjustments as well as the physics). Ideally, the fluxes considered in these gridcell-level checks would be the actual fluxes received by and sent from CLM (gridcell-level precipitation, runoff, etc.). This last point is particularly important for runoff, which is now split into a few different terms, and it seems easy for some term to accidentally not be included in any of the runoff terms sent to the coupler - so we should do these gridcell-level balance checks using the runoff terms that are actually sent to the coupler.

The sequence would then look like:

  • Compute beginning gridcell-level water mass

  • Adjust column areas via dynamic landunits

  • Compute post-dynlu gridcell-level water mass

  • Compute adjustment fluxes based on difference between pre- and post-dynlu gridcell-level water mass

  • Compute pre-physics column-level water mass

  • Do physics

  • Compute post-physics column-level water mass; also average this to the gridcell level

  • Do column-level balance checks using the pre- and post-physics column-level water mass and the relevant fluxes

  • Do gridcell-level balance checks using the beginning gridcell-level water mass and ending gridcell-level water mass. For this check, ideally use the gridcell-level fluxes that are passed to and from CLM

Note that this plan still maintains the column-level balance checks: These are useful for seeing which column(s) have balance errors. But it's possible that we could avoid doing these in general, and just drill down to the column-level if a gridcell-level balance check fails.

Copied from original issue: NCAR/CLM#3

Metadata

Metadata

Assignees

Labels

enhancementnew capability or improved behavior of existing capability

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions