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

Release clm5.0 fruit tree #1966

Draft
wants to merge 18 commits into
base: release-clm5.0
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 15 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions README
Original file line number Diff line number Diff line change
@@ -1,5 +1,51 @@
$CTSMROOT/README 06/08/2018

###################################################################################
Modified Community Land Surface Model (CLM) science version 5.0.0
Modifications to the model code include:
(1) Addition of a new perennial crop phenology description.
(2) Adaptation of the CN allocation scheme, considering both storage and photosynthetic growth of annual and perennial plant organs of a fruit tree.
(3) Desription of typical management practices associated with fruit orchards.
(4) Parameterization of an apple plant functional type (for now using ncitrus (35) and nirrig_citrus (36))

modified src code includes:

src/biogeochem/CNCIsoFluxMod.F90
src/biogeochem/CNCStateUpdate1Mod.F90
src/biogeochem/CNDriverMod.F90
src/biogeochem/CNFUNMod.F90
src/biogeochem/CNGapMortalityMod.F90
src/biogeochem/CNGRespMod.F90
src/biogeochem/CNMRespMod.F90
src/biogeochem/CNNStateUpdate1Mod.F90
src/biogeochem/CNPhenologyMod.F90
src/biogeochem/CNVegCarbonFluxType.F90
src/biogeochem/CNVegCarbonStateType.F90
src/biogeochem/CNVegNitrogenFluxType.F90
src/biogeochem/CNVegNitrogenStateType.F90
src/biogeochem/CNVegStateType.F90
src/biogeochem/CNVegStructUpdateMod.F90
src/biogeochem/CropType.F90
src/biogeochem/dynHarvestMod.F90
src/biogeochem/NutrientCompetitionFlexibleCNMod.F90
src/main/pftconMod.F90
src/biogeophys/TemperatureType.F90

new paramater file to be used with the development:

clm5_params.c171117__FruitTree.nc


For additional information and results please refer to Dombrowski et al. (submitted Feb 2022):

Dombrowski, O., Brogi, C., HendricksFranssen, H.-J., Zanotelli, D., Bogena, H. (submitted Feb 2022): CLM-FruitTree: A new sub-model for deciduous fruit trees in the Community Land Model (CLM5)

Abstract:

The inclusion of perennial, woody crops in land surface models is crucial to address their role in carbon (C) sequestration, food production, and water requirements under climate change. To help quantifying the biogeochemical and biogeophysical processes associated with these agro-ecosystems, we developed and tested a new sub-model, CLM-FruitTree, for deciduous fruit orchards within the framework of the Community Land Model version 5 (CLM5). The model development included (1) a new perennial crop phenology description, (2) an adapted C and nitrogen allocation scheme, considering both storage and photosynthetic growth of annual and perennial plant organs, (3) typical management practices associated with fruit orchards, and (4) the parameterization of an apple plant functional type. CLM-FruitTree was tested using extensive field measurements from an apple orchard in South Tyrol, Italy. Growth and partitioning of biomass to the individual plant components was well represented by CLM-FruitTree and average yield was predicted within 2.3 % of the observed values despite low simulated inter-annual variability compared to observations. The simulated seasonal course of C, energy, and water fluxes was in good agreement with the EC measurements owing to the accurate representation of the prolonged growing season and typical leaf area development of the orchard. We found that gross primary production, net radiation, and latent heat flux were highly correlated (r > 0.94) with EC measurements and showed little bias (< ±5 %). Simulated respiration components, sensible heat, and ground heat flux were less consistent with observations. This was attributed to simplifications in the orchard structure and to the presence of additional management practices that are not yet represented in CLM-FruitTree. Finally, the results suggested that the representation of microbial and autotrophic respiration, and energy partitioning in complex, heterogeneous canopies in CLM5 requires further attention. The new sub-model CLM-FruitTree improved the representation of agricultural systems in CLM5 and can be used to study land surface processes in fruit orchards at the local, regional or larger scale.
#############################################################################################################


Community Land Surface Model (CLM) science version 5.0.0 series -- source code, tools,
offline-build and test scripts. This gives you everything you need
to run CLM with CESM with datm8 to provide CRU NCEP or GSWP3 forcing data in
Expand Down
Binary file added clm5_params.c171117__FruitTree.nc
Binary file not shown.
6 changes: 3 additions & 3 deletions src/biogeochem/CNBalanceCheckMod.F90
Copy link
Collaborator

Choose a reason for hiding this comment

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

This file's changes are just whitespace and can be reverted.

Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ subroutine BeginCNBalance(this, bounds, num_soilc, filter_soilc, &
c = filter_soilc(fc)
col_begcb(c) = totcolc(c)
col_begnb(c) = totcoln(c)

end do

end associate
Expand Down Expand Up @@ -161,10 +162,9 @@ subroutine CBalanceCheck(this, bounds, num_soilc, filter_soilc, &

! calculate the total column-level carbon storage, for mass conservation check
col_endcb(c) = totcolc(c)

! calculate total column-level inputs
col_cinputs = gpp(c)

! calculate total column-level outputs
! er = ar + hr, col_fire_closs includes patch-level fire losses
col_coutputs = er(c) + col_fire_closs(c) + col_hrv_xsmrpool_to_atm(c) + &
Expand All @@ -181,7 +181,7 @@ subroutine CBalanceCheck(this, bounds, num_soilc, filter_soilc, &

! subtract leaching flux
col_coutputs = col_coutputs - som_c_leached(c)

! calculate the total column-level carbon balance error for this time step
col_errcb(c) = (col_cinputs - col_coutputs)*dt - &
(col_endcb(c) - col_begcb(c))
Expand Down
16 changes: 13 additions & 3 deletions src/biogeochem/CNCIsoFluxMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ subroutine CIsoFlux1(num_soilc, filter_soilc, num_soilp, filter_soilp, &
iso_cnveg_cf%frootc_to_litter_patch , cnveg_cf%frootc_to_litter_patch, &
iso_cnveg_cs%frootc_patch , cnveg_cs%frootc_patch, &
num_soilp , filter_soilp, 1._r8, 0, isotope)

call CIsoFluxCalc(&
iso_cnveg_cf%livestemc_to_deadstemc_patch , cnveg_cf%livestemc_to_deadstemc_patch, &
iso_cnveg_cs%livestemc_patch , cnveg_cs%livestemc_patch, &
Expand Down Expand Up @@ -414,6 +414,17 @@ subroutine CIsoFlux1(num_soilc, filter_soilc, num_soilp, filter_soilp, &
iso_cnveg_cs%totvegc_patch , cnveg_cs%totvegc_patch, &
num_soilp , filter_soilp, 1._r8, 0, isotope)

call CIsoFluxCalc(&
iso_cnveg_cf%crop_seedc_to_froot_patch , cnveg_cf%crop_seedc_to_froot_patch, &
iso_cnveg_cs%totvegc_patch , cnveg_cs%totvegc_patch, &
num_soilp , filter_soilp, 1._r8, 0, isotope)

call CIsoFluxCalc(&
iso_cnveg_cf%crop_seedc_to_deadstem_patch , cnveg_cf%crop_seedc_to_deadstem_patch, &
iso_cnveg_cs%totvegc_patch , cnveg_cs%totvegc_patch, &
num_soilp , filter_soilp, 1._r8, 0, isotope)


call CIsoFluxCalc(&
iso_cnveg_cf%grain_curmr_patch , cnveg_cf%grain_curmr_patch, &
iso_cnveg_cs%cpool_patch , cnveg_cs%cpool_patch, &
Expand Down Expand Up @@ -1222,7 +1233,7 @@ subroutine CNCIsoLitterToColumn (num_soilc, filter_soilc, &
+ frootc_to_litter(p) * fr_fcel(ivt(p)) * wtcol(p) * froot_prof(p,j)
phenology_c_to_litr_lig_c(c,j) = phenology_c_to_litr_lig_c(c,j) &
+ frootc_to_litter(p) * fr_flig(ivt(p)) * wtcol(p) * froot_prof(p,j)

!DML
if (ivt(p) >= npcropmin) then ! add livestemc to litter
! stem litter carbon fluxes
Expand Down Expand Up @@ -1492,7 +1503,6 @@ subroutine CNCIsoHarvestPftToColumn (num_soilc, filter_soilc, &
hrv_livecrootc_to_litter(p) * wtcol(p) * croot_prof(p,j)
harvest_c_to_cwdc(c,j) = harvest_c_to_cwdc(c,j) + &
hrv_deadcrootc_to_litter(p) * wtcol(p) * croot_prof(p,j)

! storage harvest mortality carbon fluxes
harvest_c_to_litr_met_c(c,j) = harvest_c_to_litr_met_c(c,j) + &
hrv_leafc_storage_to_litter(p) * wtcol(p) * leaf_prof(p,j)
Expand Down
Loading