Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ORGN and AVLN abruptly drop to zero during future simulation #729

Open
amullen01 opened this issue Jul 24, 2024 · 1 comment
Open

ORGN and AVLN abruptly drop to zero during future simulation #729

amullen01 opened this issue Jul 24, 2024 · 1 comment
Labels
bug science Issues affecting scientific interpretation of modeling results

Comments

@amullen01
Copy link
Collaborator

amullen01 commented Jul 24, 2024

During future scenarios, ORGN drops to zero and AVLN drops near zero and stays constant, beginning around the year 2045. This issue was observed with Caribou-Poker climate using Caribou-Poker Black Spruce and Birch calibrations, as well as the Murphey Dome Black Spruce and Deciduous calibrations (CMT1 & CMT3). You can see the issue with the grey line in the attached figure, which is the control run in which no fire occurs. I have not observed any other anomalous behavior preceding this abrupt drop in N. Labelling this issue with "bug" because it looks like buggy behavior, but not ruling out a calibration or climate issue.

Pools_fire_exps

@amullen01 amullen01 added bug science Issues affecting scientific interpretation of modeling results labels Jul 24, 2024
@amullen01
Copy link
Collaborator Author

amullen01 commented Jul 25, 2024

The issue seems to happen under very specific circumstances. When avlnlost < 0 (losses exceed total available nitrogen), the N mineralization is bumped up slightly to match the losses (lines 713 - 721, Soil_Bgc.cpp). The problem lies in line 719: del_soi2soi.netnmin[i] *=nminadj/totnetnmin;. In winter total net mineralization is 0. We turned this off a while back due to wintertime mineralization causing a runaway AVLN issue. So when both avlnlost<0 and totnetnmin == 0 , this causes a divide by zero error, causing ORGN to contain nan, and AVLN is not updated.

I have implemented a fix that does two things:

  1. checks whether totnetmin==0 before adjusting netnmin
  2. if netnmin is zero, adds n mineralization to layers where avln is extracted by root uptake to equal losses

This seems to fix the issue but I'm not sure if it is 100% scientifically accurate. I feel like instead of adding N mineralization to account for too big of plant uptake we should be limiting plant uptake. Should N uptake be zero when soil is frozen? Would be good to discuss further.

Pools_fire_exps_FIX

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug science Issues affecting scientific interpretation of modeling results
Projects
None yet
Development

No branches or pull requests

1 participant