@@ -193,9 +193,12 @@ subroutine trim_canopy( currentSite )
193193 endif
194194
195195 call bleaf(currentcohort% dbh,ipft,currentcohort% canopy_trim,tar_bl)
196- call bfineroot(currentcohort% dbh,ipft,currentcohort% canopy_trim,tar_bfr)
197196
198- bfr_per_bleaf = tar_bfr/ tar_bl
197+ if ( int (EDPftvarcon_inst% allom_fmode(ipft)) .eq. 1 ) then
198+ ! only query fine root biomass if using a fine root allometric model that takes leaf trim into account
199+ call bfineroot(currentcohort% dbh,ipft,currentcohort% canopy_trim,tar_bfr)
200+ bfr_per_bleaf = tar_bfr/ tar_bl
201+ endif
199202
200203 ! Leaf cost vs netuptake for each leaf layer.
201204 do z = 1 ,nlevleaf
@@ -207,18 +210,27 @@ subroutine trim_canopy( currentSite )
207210
208211
209212 currentCohort% leaf_cost = 1._r8 / (EDPftvarcon_inst% slatop(ipft)* 1000.0_r8 )
210- currentCohort% leaf_cost = currentCohort% leaf_cost + &
211- 1.0_r8 / (EDPftvarcon_inst% slatop(ipft)* 1000.0_r8 ) * &
212- bfr_per_bleaf / EDPftvarcon_inst% root_long(ipft)
213+
214+ if ( int (EDPftvarcon_inst% allom_fmode(ipft)) .eq. 1 ) then
215+ ! if using trimmed leaf for fine root biomass allometry, add the cost of the root increment
216+ ! to the leaf increment; otherwise do not.
217+ currentCohort% leaf_cost = currentCohort% leaf_cost + &
218+ 1.0_r8 / (EDPftvarcon_inst% slatop(ipft)* 1000.0_r8 ) * &
219+ bfr_per_bleaf / EDPftvarcon_inst% root_long(ipft)
220+ endif
213221
214222 currentCohort% leaf_cost = currentCohort% leaf_cost * &
215223 (EDPftvarcon_inst% grperc(ipft) + 1._r8 )
216224 else ! evergreen costs
217225 currentCohort% leaf_cost = 1.0_r8 / (EDPftvarcon_inst% slatop(ipft)* &
218226 EDPftvarcon_inst% leaf_long(ipft)* 1000.0_r8 ) ! convert from sla in m2g-1 to m2kg-1
219- currentCohort% leaf_cost = currentCohort% leaf_cost + &
220- 1.0_r8 / (EDPftvarcon_inst% slatop(ipft)* 1000.0_r8 ) * &
221- bfr_per_bleaf / EDPftvarcon_inst% root_long(ipft)
227+ if ( int (EDPftvarcon_inst% allom_fmode(ipft)) .eq. 1 ) then
228+ ! if using trimmed leaf for fine root biomass allometry, add the cost of the root increment
229+ ! to the leaf increment; otherwise do not.
230+ currentCohort% leaf_cost = currentCohort% leaf_cost + &
231+ 1.0_r8 / (EDPftvarcon_inst% slatop(ipft)* 1000.0_r8 ) * &
232+ bfr_per_bleaf / EDPftvarcon_inst% root_long(ipft)
233+ endif
222234 currentCohort% leaf_cost = currentCohort% leaf_cost * &
223235 (EDPftvarcon_inst% grperc(ipft) + 1._r8 )
224236 endif
0 commit comments