Skip to content

Commit 4b85dbe

Browse files
Merge branch 'thorntonpe/lnd/IM3_testing_2'(PR #6607)
Change handling for how snow burial of shrubs is calculated, with parameterization for bending of stems. Change the treatment of surface weather downscaling on topounits, so that the downscaling happens when using the coupler bypass code branch. Introduce four new parameters controlling the burial of shrubs by snow into vegetation physiology file. If new parameters are not included on the physiology file the code replaces with default values, which then produce BFB results with code before this PR. The four new parameters are: taper, stocking, bendresist, and vegshape. Development Lead: Rich Fiorella [email protected] Development Team: Katrina Bennett [email protected], Cade Trotter [email protected], Claire Bachand [email protected] [BFB]
2 parents 5130bd1 + 3cb0e38 commit 4b85dbe

21 files changed

+1065
-446
lines changed

cime_config/tests.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@
4949
"ERS.f19_g16.I20TRGSWCNPECACNTBC.elm-eca_f19_g16_I20TRGSWCNPECACNTBC",
5050
"ERS.f19_g16.I20TRGSWCNPRDCTCBC.elm-ctc_f19_g16_I20TRGSWCNPRDCTCBC",
5151
"ERS.r05_r05.ICNPRDCTCBC.elm-cbudget",
52+
"ERS.ELM_USRDAT.I1850CNPRDCTCBC.elm-snowveg_arctic",
53+
"ERS.ELM_USRDAT.I1850CNPRDCTCBC.elm-usrpft_default_I1850CNPRDCTCBC",
54+
"ERS.ELM_USRDAT.I1850CNPRDCTCBC.elm-usrpft_codetest_I1850CNPRDCTCBC",
5255
)
5356
},
5457

@@ -94,8 +97,6 @@
9497
"SMS.r05_r05.IELM.elm-topounit",
9598
"ERS.ELM_USRDAT.I1850ELM.elm-usrdat",
9699
"ERS.r05_r05.IELM.elm-lnd_rof_2way",
97-
"ERS.ELM_USRDAT.I1850CNPRDCTCBC.elm-usrpft_default_I1850CNPRDCTCBC",
98-
"ERS.ELM_USRDAT.I1850CNPRDCTCBC.elm-usrpft_codetest_I1850CNPRDCTCBC",
99100
"ERS.r05_r05.IELM.elm-V2_ELM_MOSART_features",
100101
"ERS.ELM_USRDAT.IELM.elm-surface_water_dynamics"
101102
)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
./xmlchange LND_DOMAIN_FILE=domain_42_FLUXNETSITES_simyr1850_c170912.nc
2+
./xmlchange ATM_DOMAIN_FILE=domain_42_FLUXNETSITES_simyr1850_c170912.nc
3+
./xmlchange LND_DOMAIN_PATH="\$DIN_LOC_ROOT/share/domains/domain.clm"
4+
./xmlchange ATM_DOMAIN_PATH="\$DIN_LOC_ROOT/share/domains/domain.clm"
5+
./xmlchange DATM_MODE=CLM1PT
6+
./xmlchange DATM_CLMNCEP_YR_START=2000
7+
./xmlchange DATM_CLMNCEP_YR_END=2000
8+
./xmlchange ELM_USRDAT_NAME=42_FLUXNETSITES
9+
./xmlchange NTASKS=1
10+
./xmlchange NTHRDS=1
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
fsurdat = '$DIN_LOC_ROOT/lnd/clm2/surfdata_map/surfdata_42_FLUXNETSITES_simyr1850_c170912.nc'
2+
! this test has a parameter file with four new parameters defined for NGEE Arctic IM3
3+
! meant to improve snow-vegetation interactions.
4+
! bendresist -> varies between 0 and 1, represents how much vegetation bends under snow loading
5+
! vegshape -> suggested value 1 (parabolic), but 2 also used previously (Liston and Heimstra, 2011)
6+
! taper -> deadstem height/radius ratio, moved from hardcoded in VegStructUpdateMod to pftvarcon
7+
! stocking -> individual density on landscape (plants/m2), moved from hardcoded in VegStructUpdateMod to pftvarcon
8+
paramfile = '$DIN_LOC_ROOT/lnd/clm2/paramdata/clm_params_ngeea-im3_c240822.nc'

components/elm/src/biogeochem/AllocationMod.F90

Lines changed: 138 additions & 138 deletions
Large diffs are not rendered by default.

components/elm/src/biogeochem/CNAllocationBetrMod.F90

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ module CNAllocationBeTRMod
2626
use PhotosynthesisType , only : photosyns_type
2727
use CropType , only : crop_type
2828
use VegetationPropertiesType, only : veg_vp
29-
use LandunitType , only : lun_pp
29+
use LandunitType , only : lun_pp
3030
use ColumnType , only : col_pp
31-
use ColumnDataType , only : col_cf, col_ns, col_nf, col_ps, col_pf
31+
use ColumnDataType , only : col_cf, col_ns, col_nf, col_ps, col_pf
3232
use VegetationType , only : veg_pp
3333
use VegetationDataType , only : veg_cs, veg_ns, veg_nf, veg_ps, veg_pf
34-
use VegetationDataType , only : veg_cf, c13_veg_cf, c14_veg_cf
35-
34+
use VegetationDataType , only : veg_cf, c13_veg_cf, c14_veg_cf
35+
3636
! bgc interface & pflotran module switches
3737
use elm_varctl , only : nu_com
3838
use SoilStatetype , only : soilstate_type
@@ -359,7 +359,7 @@ subroutine Allocation1_PlantNPDemand (bounds, num_soilc, filter_soilc, num_soilp
359359
associate( &
360360
ivt => veg_pp%itype , & ! Input: [integer (:) ] pft vegetation type
361361

362-
woody => veg_vp%woody , & ! Input: [real(r8) (:) ] binary flag for woody lifeform (1=woody, 0=not woody)
362+
woody => veg_vp%woody , & ! Input: [real(r8) (:) ] woody lifeform flag (0 = non-woody, 1 = tree, 2 = shrub)
363363
froot_leaf => veg_vp%froot_leaf , & ! Input: [real(r8) (:) ] allocation parameter: new fine root C per new leaf C (gC/gC)
364364
croot_stem => veg_vp%croot_stem , & ! Input: [real(r8) (:) ] allocation parameter: new coarse root C per new stem C (gC/gC)
365365
stem_leaf => veg_vp%stem_leaf , & ! Input: [real(r8) (:) ] allocation parameter: new stem c per new leaf C (gC/gC)
@@ -1167,7 +1167,7 @@ subroutine Allocation3_PlantCNPAlloc (bounds , &
11671167
associate( &
11681168
ivt => veg_pp%itype , & ! Input: [integer (:) ] pft vegetation type
11691169
!
1170-
woody => veg_vp%woody , & ! Input: [real(r8) (:) ] binary flag for woody lifeform (1=woody, 0=not woody)
1170+
woody => veg_vp%woody , & ! Input: [real(r8) (:) ] woody lifeform flag (0 = non-woody, 1 = tree, 2 = shrub)
11711171
froot_leaf => veg_vp%froot_leaf , & ! Input: [real(r8) (:) ] allocation parameter: new fine root C per new leaf C (gC/gC)
11721172
croot_stem => veg_vp%croot_stem , & ! Input: [real(r8) (:) ] allocation parameter: new coarse root C per new stem C (gC/gC)
11731173
stem_leaf => veg_vp%stem_leaf , & ! Input: [real(r8) (:) ] allocation parameter: new stem c per new leaf C (gC/gC)

components/elm/src/biogeochem/CNGapMortalityBeTRMod.F90

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ module CNGapMortalityBeTRMod
1818
use ColumnType , only : col_pp
1919
use ColumnDataType , only : col_cf, col_nf, col_pf
2020
use VegetationPropertiesType , only : veg_vp
21-
use VegetationType , only : veg_pp
22-
use VegetationDataType , only : veg_cs, veg_cf, veg_ns, veg_nf
23-
use VegetationDataType , only : veg_ps, veg_pf
21+
use VegetationType , only : veg_pp
22+
use VegetationDataType , only : veg_cs, veg_cf, veg_ns, veg_nf
23+
use VegetationDataType , only : veg_ps, veg_pf
2424

2525
use PhosphorusFluxType , only : phosphorusflux_type
2626
use PhosphorusStateType , only : phosphorusstate_type
@@ -121,7 +121,7 @@ subroutine CNGapMortality (&
121121
associate( &
122122
ivt => veg_pp%itype , & ! Input: [integer (:) ] pft vegetation type
123123

124-
woody => veg_vp%woody & ! Input: [real(r8) (:) ] binary flag for woody lifeform
124+
woody => veg_vp%woody & ! Input: [real(r8) (:) ] woody lifeform flag (0 = non-woody, 1 = tree, 2 = shrub)
125125
)
126126

127127
! set the mortality rate based on annual rate

components/elm/src/biogeochem/CNNStateUpdate1BeTRMod.F90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ subroutine NStateUpdate1(num_soilc, filter_soilc, num_soilp, filter_soilp, &
5959
associate( &
6060
ivt => veg_pp%itype , & ! Input: [integer (:) ] pft vegetation type
6161

62-
woody => veg_vp%woody , & ! Input: [real(r8) (:) ] binary flag for woody lifeform (1=woody, 0=not woody)
62+
woody => veg_vp%woody , & ! Input: [real(r8) (:) ] woody lifeform flag (0 = non-woody, 1 = tree, 2 = shrub)
6363

6464
cascade_donor_pool => decomp_cascade_con%cascade_donor_pool , & ! Input: [integer (:) ] which pool is C taken from for a given decomposition step
6565
cascade_receiver_pool => decomp_cascade_con%cascade_receiver_pool , & ! Input: [integer (:) ] which pool is C added to for a given decomposition step

components/elm/src/biogeochem/CNPhenologyBeTRMod.F90

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,7 @@ subroutine CNSeasonDecidPhenology (num_soilp, filter_soilp , &
525525
prev_dayl => grc_pp%prev_dayl , & ! Input: [real(r8) (:) ] daylength from previous time step (s)
526526

527527
season_decid => veg_vp%season_decid , & ! Input: [real(r8) (:) ] binary flag for seasonal-deciduous leaf habit (0 or 1)
528-
woody => veg_vp%woody , & ! Input: [real(r8) (:) ] binary flag for woody lifeform (1=woody, 0=not woody)
528+
woody => veg_vp%woody , & ! Input: [real(r8) (:) ] woody lifeform flag (0 = non-woody, 1 = tree, 2 = shrub)
529529

530530
t_soisno => col_es%t_soisno , & ! Input: [real(r8) (:,:) ] soil temperature (Kelvin) (-nlevsno+1:nlevgrnd)
531531

@@ -875,7 +875,7 @@ subroutine CNStressDecidPhenology (num_soilp, filter_soilp , &
875875
dayl => grc_pp%dayl , & ! Input: [real(r8) (:) ] daylength (s)
876876

877877
leaf_long => veg_vp%leaf_long , & ! Input: [real(r8) (:) ] leaf longevity (yrs)
878-
woody => veg_vp%woody , & ! Input: [real(r8) (:) ] binary flag for woody lifeform (1=woody, 0=not woody)
878+
woody => veg_vp%woody , & ! Input: [real(r8) (:) ] woody lifeform flag (0 = non-woody, 1 = tree, 2 = shrub)
879879
stress_decid => veg_vp%stress_decid , & ! Input: [real(r8) (:) ] binary flag for stress-deciduous leaf habit (0 or 1)
880880

881881
soilpsi => soilstate_vars%soilpsi_col , & ! Input: [real(r8) (:,:) ] soil water potential in each soil layer (MPa)
@@ -2295,7 +2295,7 @@ subroutine CNOnsetGrowth (num_soilp, filter_soilp, &
22952295
associate( &
22962296
ivt => veg_pp%itype , & ! Input: [integer (:) ] pft vegetation type
22972297

2298-
woody => veg_vp%woody , & ! Input: [real(r8) (:) ] binary flag for woody lifeform (1=woody, 0=not woody)
2298+
woody => veg_vp%woody , & ! Input: [real(r8) (:) ] woody lifeform flag (0 = non-woody, 1 = tree, 2 = shrub)
22992299

23002300
onset_flag => cnstate_vars%onset_flag_patch , & ! Input: [real(r8) (:) ] onset flag
23012301
onset_counter => cnstate_vars%onset_counter_patch , & ! Input: [real(r8) (:) ] onset days counter
@@ -2880,7 +2880,7 @@ subroutine CNLivewoodTurnover (num_soilp, filter_soilp, &
28802880
associate( &
28812881
ivt => veg_pp%itype , & ! Input: [integer (:) ] pft vegetation type
28822882

2883-
woody => veg_vp%woody , & ! Input: [real(r8) (:) ] binary flag for woody lifeform (1=woody, 0=not woody)
2883+
woody => veg_vp%woody , & ! Input: [real(r8) (:) ] woody lifeform flag (0 = non-woody, 1 = tree, 2 = shrub)
28842884
livewdcn => veg_vp%livewdcn , & ! Input: [real(r8) (:) ] live wood (phloem and ray parenchyma) C:N (gC/gN)
28852885
deadwdcn => veg_vp%deadwdcn , & ! Input: [real(r8) (:) ] dead wood (xylem and heartwood) C:N (gC/gN)
28862886

components/elm/src/biogeochem/CarbonStateUpdate1Mod.F90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ subroutine CarbonStateUpdate1(bounds, &
200200

201201
associate( &
202202
ivt => veg_pp%itype , & ! Input: [integer (:) ] pft vegetation type
203-
woody => veg_vp%woody , & ! Input: [real(r8) (:) ] binary flag for woody lifeform (1=woody, 0=not woody)
203+
woody => veg_vp%woody , & ! Input: [real(r8) (:) ] woody lifeform flag (0 = non-woody, 1 = tree, 2 = shrub)
204204
cascade_donor_pool => decomp_cascade_con%cascade_donor_pool , & ! Input: [integer (:) ] which pool is C taken from for a given decomposition step
205205
cascade_receiver_pool => decomp_cascade_con%cascade_receiver_pool , & ! Input: [integer (:) ] which pool is C added to for a given decomposition step
206206
harvdate => crop_vars%harvdate_patch & ! Input: [integer (:) ] harvest date

components/elm/src/biogeochem/GrowthRespMod.F90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ subroutine GrowthResp(num_soilp, filter_soilp)
5151
associate( &
5252
ivt => veg_pp%itype , & ! Input: [integer (:)] pft vegetation type
5353

54-
woody => veg_vp%woody , & ! Input: [real(r8) (:)] binary flag for woody lifeform (1=woody, 0=not woody)
54+
woody => veg_vp%woody , & ! Input: [real(r8) (:)] woody lifeform flag (0 = non-woody, 1 = tree, 2 = shrub)
5555

5656
cpool_to_leafc => veg_cf%cpool_to_leafc , & ! Input: [real(r8) (:)]
5757
cpool_to_leafc_storage => veg_cf%cpool_to_leafc_storage , & ! Input: [real(r8) (:)]
@@ -98,7 +98,7 @@ subroutine GrowthResp(num_soilp, filter_soilp)
9898
)
9999

100100
! Loop through patches
101-
! start pft loop
101+
! start pft loop
102102
do fp = 1,num_soilp
103103

104104
p = filter_soilp(fp)

0 commit comments

Comments
 (0)