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

Heat storage biomass #1016

Merged
merged 92 commits into from
Jan 13, 2021
Merged

Heat storage biomass #1016

merged 92 commits into from
Jan 13, 2021

Conversation

swensosc
Copy link
Contributor

@swensosc swensosc commented May 18, 2020

Description of changes

Add heat stored in biomass to surface energy balance calculation.

Specific notes

Contributors other than yourself, if any:
Ronny Meier

Papers describing BHS simulations:
R. Meier, Davin, E., Swenson, S., Lawrence, D., and Schwaab, Jo. (2019). Biomass heat storage dampens diurnal temperature variations in forests. Environmental Research Letters. 14. 084026. 10.1088/1748-9326/ab2b4e.

S.C. Swenson, Burns, S. P., and Lawrence, D. M. ( 2019). The impact of biomass heat storage on the canopy energy balance and atmospheric stability in the community land model, Journal of Advances in Modeling Earth Systems, 11, 83– 98. https://doi.org/10.1029/2018MS001476

CTSM Issues Fixed (include github issue #):

Finishes fixing #342
Fixes most of #1246
Fixes #176

Are answers expected to change (and if so in what way)?
Yes. The code modifies the surface energy balance, which will change climate.

Any User Interface Changes (namelist or namelist defaults changes)? New namelist for this

Testing performed, if any: Standard testing on cheyenne and izumi now all PASS as expected
Single point tower site simulations were run for 10-15 locations using observed meteorology and assessed them against observed surface energy fluxes. I also ran decade-long global simulations with use_biomass_heat_storage both on and off. Simulations were run on the Hobart cluster using the intel compiler.

swensosc and others added 27 commits May 7, 2018 14:04
Author: Ronny Meier
modified: initGridCellsMod.F90 and subgridMod.F90

Modification is not fully completed yet. Switch will be added later on in namelist.
…ass_sesc

combine radiative temperature, diagnostic fields with heat biomass storage
and separate soil columns for each pft
@ekluzek ekluzek added tag: enh - new science enhancement new capability or improved behavior of existing capability labels May 18, 2020
Copy link
Collaborator

@ekluzek ekluzek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's only one change that I'm requesting you to do @swensosc. Although there's also a bunch of new inactive fields added, and I'm wondering if they should be turned default on, if one of the two new namelist flags are on?

The other thing is that we need to add a test with these two things turned on. That's something that we can do. Are there any restrictions for when those two can be set?

@ekluzek
Copy link
Collaborator

ekluzek commented Jan 5, 2021

Fates with BHS is currently failing in a smoke test due to balance check energy error...

SMS_D_Ld5.f45_f45_mg37.I2000Clm51Fates.cheyenne_intel.clm-FatesColdDef

Single point tests seem to work OK, but I get the balance check fail with: SSP_D_Ld10_Mmpi-serial.5x5_amazon.I2000Clm51Bgc.cheyenne_intel.clm-rtmColdSSP

lnd.log reports the following...

nstep = 2 TS = 296.400310574612320
energy balance in canopy 73 , err= -0.154427559099435
WARNING: BalanceCheck: surface flux energy balance error (W/m2)
nstep = 3
errseb = -0.154427559099688
clm model is stopping - error is greater than 1e-5 (W/m2)
sabv = 0.000000000000000E+000
sabg = 0.000000000000000E+000 0.000000000000000E+000
0.000000000000000E+000
forc_tot = 0.000000000000000E+000
eflx_lwrad_net = 20.3566634829095
eflx_sh_tot = -12.5507874961278
eflx_lh_tot = -3.19457626961661
eflx_soil_grnd = -82.9190400804914
dhsdt_canopy = 78.4621679224260
fsa fsr = 0.000000000000000E+000 0.000000000000000E+000
fabd fabi = 0.000000000000000E+000 0.000000000000000E+000
0.000000000000000E+000 0.000000000000000E+000
albd albi = 1.00000000000000 1.00000000000000
1.00000000000000 1.00000000000000
ftii ftdd ftid = 0.000000000000000E+000 0.000000000000000E+000
0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000
0.000000000000000E+000
elai esai = 2.96125454231256 0.500000000000000
clm model is stopping
local patch index = 73
global patch index = 99
global column index = 38
global landunit index = 29
global gridcell index = 12
gridcell longitude = 291.500000000000
gridcell latitude = -9.50000000000000
pft type = 6
column type = 1
landunit type = 1

Since, sabv, sabg, and forc_tot are zero. That means the sum of: eflx_lwrad_net, eflx_sh_tot, eflx_lh_tot, eflx_soil_grnd, and dhsdt_canopy should also sum to zero.

@ekluzek
Copy link
Collaborator

ekluzek commented Jan 5, 2021

@swensosc to run a standalone test you just give the test name after "./create_test ". There's a few other options I usually give to change the wallclock time and queue. I also typically tell it to do "-r ." to create it's case directory under the current directory rather than on scratch.

So I'll do this sort of thing

qcmd -- ./create_test SMS_D_Ld5.f45_f45_mg37.I2000Clm51Fates.cheyenne_intel.clm-FatesColdDef -r . --queue premium --walltime 00:20:00 &

I'll look into the BgcCrop issue, it would be good for you to look into the FATES cold-start issue. I'll look to see if we have other cold start tests as well.

@ekluzek
Copy link
Collaborator

ekluzek commented Jan 5, 2021

In our discussion today at noon we thought that taper should be on the parameter file. And we should have BGC use taper and nstem from the parameter file even when BHS is off. At this point it shouldn't be hard to do that for both. Since, nstem is used both for BGC and BHS it's possible that tuning for BHS on and off could have different values for it. But, we will ignore that difference for now.

@ekluzek
Copy link
Collaborator

ekluzek commented Jan 6, 2021

OK, it turns out my SSP spinup tests that are failing are NOT coldstarts. They are labeled as rtmColdSSP which is certainly a bad label because they aren't RTM anymore and they aren't coldstarts right now. So I'll file a separate issue about that. They are starting up from initial conditions that are vastly different than the resolution run, so they aren't really "well spunup", but they are NOT starting from scratch.

@ekluzek
Copy link
Collaborator

ekluzek commented Jan 6, 2021

Besides all of the Fates tests, the other normally run cold start tests are:

<test name="ERP_D_Ld5" grid="f10_f10_musgs" compset="IHistClm50BgcCrop" testmods="clm/allActive">
<test name="SMS_D_Ld9" grid="f09_g17" compset="I1850Clm50BgcNoAnthro" testmods="clm/decStart1851_noinitial">
<test name="ERS_D_Ld7_Mmpi-serial" grid="1x1_smallvilleIA" compset="IHistClm50BgcCropRs" testmods="clm/decStart1851_noinitial">
<test name="ERS_Lm20_Mmpi-serial" grid="1x1_smallvilleIA" compset="I2000Clm50BgcCropQianRs" testmods="clm/monthly_noinitial">
<test name="SMS_D_Ld1_Mmpi-serial" grid="f45_f45_mg37" compset="I2000Clm50Sp" testmods="clm/ptsRLA">
<test name="SMS_Ld1_Mmpi-serial" grid="f45_f45_mg37" compset="I2000Clm50Sp" testmods="clm/ptsRLA">
<test name="SMS_Ld1_Mmpi-serial" grid="f45_f45_mg37" compset="I2000Clm50Sp" testmods="clm/ptsRLB">
<test name="SMS_Ld1_Mmpi-serial" grid="f45_f45_mg37" compset="I2000Clm50Sp" testmods="clm/ptsROA">
<test name="ERP_D_P36x2_Ld3" grid="f10_f10_musgs" compset="I2000Clm51BgcCrop" testmods="clm/coldStart">
<test name="LWISO_Ld10" grid="f10_f10_musgs" compset="I2000Clm50BgcCrop" testmods="clm/coldStart">

So there's one that check BHS for a coldstart...

ERP_D_P36x2_Ld3.f10_f10_musgs.I2000Clm51BgcCrop.cheyenne_intel.clm-coldStart

and that has been passing.

@swensosc
Copy link
Contributor Author

swensosc commented Jan 8, 2021 via email

ekluzek added 10 commits January 9, 2021 18:21
…spinup cases in regard to dt_veg, there were some parenthesis that got out of place
…dwood, and change the name of it from spinup_factor in CNVegCarbonState to spinup_factor_deadwood since the previous name conflicted with the array in decomp
…eadwood, so the logic isn't needed anymore (answers for SSP_Ld10.f19_g17.I1850Clm50Bgc.cheyenne_intel.clm-rtmColdSSP remain identical). This simplifies and makes the code more robust by removing some duplicated lines
…ed for the FUNITCTSM_P1x1.f10_f10_musgs.I2000Clm50Sp.cheyenne_intel to pass
@ekluzek ekluzek merged commit 10ea6ee into ESCOMP:master Jan 13, 2021
@samsrabin samsrabin added the science Enhancement to or bug impacting science label Aug 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement new capability or improved behavior of existing capability PR status: ready PR: this is ready to merge in, with all tests satisfactory and reviews complete priority: high High priority to fix/merge soon, e.g., because it is a problem in important configurations science Enhancement to or bug impacting science
Projects
Status: Done (non release/external)
Development

Successfully merging this pull request may close these issues.

CNDV bug: ntree used before it's set in pftconMod.F90 -- change to is_tree variable
8 participants