Skip to content

Commit

Permalink
Merge pull request #958 from mpaiao/mpaiao-pr-drgt-decid
Browse files Browse the repository at this point in the history
Drought deciduous phenology updates
  • Loading branch information
glemieux authored Jun 30, 2023
2 parents d20b78c + 516c7e8 commit b8ad811
Show file tree
Hide file tree
Showing 27 changed files with 4,597 additions and 1,295 deletions.
2 changes: 1 addition & 1 deletion biogeochem/EDCanopyStructureMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -2196,7 +2196,7 @@ subroutine UpdateCohortLAI(currentCohort, canopy_layer_tlai, total_canopy_area)

if (hlm_use_sp .eq. ifalse) then
currentCohort%treesai = tree_sai(currentCohort%pft, currentCohort%dbh, currentCohort%crowndamage, &
currentCohort%canopy_trim, &
currentCohort%canopy_trim, currentCohort%efstem_coh, &
currentCohort%c_area, currentCohort%n, currentCohort%canopy_layer, &
canopy_layer_tlai, currentCohort%treelai , &
currentCohort%vcmax25top,4)
Expand Down
141 changes: 108 additions & 33 deletions biogeochem/EDCohortDynamicsMod.F90

Large diffs are not rendered by default.

8 changes: 7 additions & 1 deletion biogeochem/EDMortalityFunctionsMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,13 @@ subroutine mortality_rates( cohort_in,bc_in,cmort,hmort,bmort,frmort,smort,asmor
! Carbon Starvation induced mortality.
if ( cohort_in%dbh > 0._r8 ) then

call bleaf(cohort_in%dbh,cohort_in%pft,cohort_in%crowndamage,cohort_in%canopy_trim,target_leaf_c)
! We compare storage with leaf biomass if plant were fully flushed, otherwise
! mortality would be underestimated for plants that lost all leaves and have no
! storage to flush new ones.
! MLO. Why isn't this comparing with storage allometry (i.e., accounting for
! cushion)?
call bleaf(cohort_in%dbh,cohort_in%pft,cohort_in%crowndamage,cohort_in%canopy_trim, &
1.0_r8, target_leaf_c)
store_c = cohort_in%prt%GetState(store_organ,carbon12_element)

call storage_fraction_of_target(target_leaf_c, store_c, frac)
Expand Down
1,176 changes: 719 additions & 457 deletions biogeochem/EDPhysiologyMod.F90

Large diffs are not rendered by default.

151 changes: 100 additions & 51 deletions biogeochem/FatesAllometryMod.F90

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions biogeophys/FatesPlantHydraulicsMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -982,7 +982,7 @@ subroutine UpdatePlantHydrLenVol(ccohort,csite_hydr)
! Lets also avoid super-low targets that have very low trimming functions

call bleaf(ccohort%dbh,ccohort%pft,ccohort%crowndamage, &
max(ccohort%canopy_trim,min_trim),leaf_c_target)
max(ccohort%canopy_trim,min_trim),ccohort%efleaf_coh, leaf_c_target)

if( (ccohort%status_coh == leaves_on) .or. ccohort_hydr%is_newly_recruited ) then
ccohort_hydr%v_ag(1:n_hypool_leaf) = max(leaf_c,min_leaf_frac*leaf_c_target) * &
Expand All @@ -998,7 +998,7 @@ subroutine UpdatePlantHydrLenVol(ccohort,csite_hydr)

! calculate the sapwood cross-sectional area
call bsap_allom(ccohort%dbh,ccohort%pft,ccohort%crowndamage, &
ccohort%canopy_trim,a_sapwood_target,sapw_c_target)
ccohort%canopy_trim, ccohort%efstem_coh, a_sapwood_target,sapw_c_target)

! uncomment this if you want to use
! the actual sapwood, which may be lower than target due to branchfall.
Expand Down Expand Up @@ -2980,7 +2980,7 @@ subroutine UpdatePlantKmax(ccohort_hydr,ccohort,csite_hydr)

! Get the cross-section of the plant's sapwood area [m2]
call bsap_allom(ccohort%dbh,pft,ccohort%crowndamage, &
ccohort%canopy_trim,a_sapwood,c_sap_dummy)
ccohort%canopy_trim, ccohort%efstem_coh, a_sapwood,c_sap_dummy)

! Leaf Maximum Hydraulic Conductance
! The starting hypothesis is that there is no resistance inside the
Expand Down
5 changes: 4 additions & 1 deletion biogeophys/FatesPlantRespPhotosynthMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -413,8 +413,11 @@ subroutine FatesPlantRespPhotosynthDrive (nsites, sites,bc_in,bc_out,dtime)
ft = currentCohort%pft
cl = currentCohort%canopy_layer

! MLO. Assuming target to be related to leaf biomass when leaves are fully
! flushed. But unsure whether this call is correct or not, shouldn't we get
! the target value directly from the bstore_allom?
call bleaf(currentCohort%dbh,currentCohort%pft,&
currentCohort%crowndamage,currentCohort%canopy_trim,store_c_target)
currentCohort%crowndamage,currentCohort%canopy_trim,1.0_r8,store_c_target)
! call bstore_allom(currentCohort%dbh,currentCohort%pft, &
! currentCohort%canopy_trim,store_c_target)

Expand Down
193 changes: 127 additions & 66 deletions main/EDInitMod.F90

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion main/EDMainMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -531,11 +531,12 @@ subroutine ed_integrate_state_variables(currentSite, bc_in, bc_out )

! Conduct Maintenance Turnover (parteh)
if(debug) call currentCohort%prt%CheckMassConservation(ft,3)
if(any(currentSite%dstatus == [phen_dstat_moiston,phen_dstat_timeon])) then
if(any(currentSite%dstatus(ft) == [phen_dstat_moiston,phen_dstat_timeon])) then
is_drought = .false.
else
is_drought = .true.
end if

call PRTMaintTurnover(currentCohort%prt,ft,is_drought)

! -----------------------------------------------------------------------------------
Expand Down
Loading

0 comments on commit b8ad811

Please sign in to comment.