ESCOMP / CTSM

Community Terrestrial Systems Model (includes the Community Land Model of CESM)
http://www.cesm.ucar.edu/models/cesm2.0/land/
Other
310 stars 316 forks source link

Methane should not depend on gridcell-level TWS #658

Open billsacks opened 5 years ago

billsacks commented 5 years ago

I often run into a situation where a change in some unrelated part of the code causes substantial answer changes to various methane variables. My best guess is that this is because of the dependence of methane on gridcell-level total water storage (TWS):

https://github.com/ESCOMP/ctsm/blob/b26c12f6318c7e7b766b2960f46aec7c56df7941/src/biogeochem/ch4FInundatedStreamType.F90#L306-L307

This is problematic for two reasons:

  1. Scientifically, we shouldn't have column-level quantities depending on gridcell-level quantities. The way the code currently operates, a change in, say, the glacier portion of a gridcell causes significant answer changes in the vegetated column in that grid cell.

  2. This causes extra time in going through test results for many tags where we expect small answer changes in some limited hydrology fields. These kinds of tags are common right now, so the current operation of this code causes technical debt.

After some deliberation, I have decided to label this as "bug - other". I do believe that point (1) indicates a bug. However, I doubt this has a substantial impact on the scientific results of the model.

billsacks commented 5 years ago

I'm going to upgrade this to "bug - impacts science" because, the more I think about it, the more (1) feels really scientifically wrong. For example, in a grid cell that is part vegetated and part glacier, I believe the methane parameterization currently depends on the amount of glacial ice that we count in the column-level water budget of glacier columns.

billsacks commented 5 years ago

Discussion at today's clm software meeting: this should be fixed at some point, but not at a super high priority. It will require retuning the relevant parameters.

billsacks commented 5 years ago

Blocks #659

billsacks commented 5 years ago

This issue has tripped me up again. I was puzzled by the fact that, in my testing for both ctsm1.0.dev075 and the upcoming ctsm1.0.dev077 (330fa214, the key commit being 957a1d45), I saw answer changes outside the affected landunits in test ERP_Ly3_P72x2.f10_f10_musgs.IHistClm50BgcCrop.cheyenne_intel.clm-cropMonthOutput: In the testing for ctsm1.0.dev075, I observed answer changes in FSH for crop columns in 2 grid cells (rather than just lake), and in the testing for ctsm1.0.dev077, I observed answer changes in FSH for some crop and natural veg columns (rather than just urban).

When I reran this test from ctsm1.0.dev074, ctsm1.0.dev075 and the branch for ctsm1.0.dev077 (330fa214), but with finundation_method = 'ZWT_inversion', differences were restricted to the affected landunits (lake or urban).

What I'm still confused about is: In a selection of non-transient tests that I spot-checked, including the long tests ERP_P72x2_Lm36.f10_f10_musgs.I2000Clm50BgcCrop.cheyenne_intel.clm-clm50cropIrrigMonth_interp (very similar to the above test) and SMS_Lm13.f19_g17.I2000Clm50BgcCrop.cheyenne_intel.clm-cropMonthOutput, differences in FSH were limited to the affected landunits (lake or urban). I'm not sure why I only saw this spillover effect in a transient test.