Skip to content

Commit

Permalink
Merge pull request #392 from mpaiao/mpaiao-pr-new-allom
Browse files Browse the repository at this point in the history
New allometric equation options
  • Loading branch information
mpaiao authored Jul 24, 2024
2 parents 842966f + 8e7a210 commit 48c99d8
Show file tree
Hide file tree
Showing 21 changed files with 678 additions and 383 deletions.
20 changes: 13 additions & 7 deletions BRAMS/Template/RAMSIN
Original file line number Diff line number Diff line change
Expand Up @@ -2347,13 +2347,19 @@ $ED2_INFO
! a few genera in Costa Rica. References: !
! Cole and Ewel (2006, Forest Ecol. Manag.), and Calvo-Alvarado et al. !
! (2008, Tree Physiol.). !
! 3. (Beta) Updated allometric for tropical PFTs based on data from !
! Sustainable Landscapes Brazil (Height and crown area), Chave et al. !
! (2014, Glob. Change Biol.) (biomass) and the BAAD data base, Falster et !
! al. (2015, Ecology) (leaf area). Both leaf and structural biomass take !
! DBH and Height as dependent variables, and DBH-Height takes a simpler !
! log-linear form fitted using SMA so it can be inverted (useful for !
! airborne lidar initialisation). !
! 3. (Beta) Revised tropical PFT allometric (Longo et al. 2020, JGR-B). !
! a. Height -> DBH and DBH^2*H -> CA. Model fitting using the Sustainable !
! Landscapes Dataset (Longo et al. 2016, Glob. Biogeochem. Cycles). !
! DBH-Height takes a simpler log-linear form fitted using SMA so it can !
! be inverted (useful for airborne lidar initialisation). !
! b. DBH^2*H -> AGB. Based on Chave et al. (2014, Glob. Change Biol.) !
! c. DBH^2*H -> Leaf area based on the BAAD data base: !
! Falster et al. (2015, Ecology). !
! 4. (Under Development) Similar to 3 but (a) leaf and height allometric !
! equations depend on wood density; (b) use height-based root allometry !
! from Smith-Martin et al. (2020, New Phyt.). !
! 5. (Under Development) Similar to IALLOM = 3 but using the rooting !
! allometry from IALLOM = 4. !
!---------------------------------------------------------------------------------------!
IALLOM = 3,
!---------------------------------------------------------------------------------------!
Expand Down
20 changes: 13 additions & 7 deletions BRAMS/run/RAMSIN
Original file line number Diff line number Diff line change
Expand Up @@ -2365,13 +2365,19 @@ $ED2_INFO
! a few genera in Costa Rica. References: !
! Cole and Ewel (2006, Forest Ecol. Manag.), and Calvo-Alvarado et al. !
! (2008, Tree Physiol.). !
! 3. (Beta) Updated allometric for tropical PFTs based on data from !
! Sustainable Landscapes Brazil (Height and crown area), Chave et al. !
! (2014, Glob. Change Biol.) (biomass) and the BAAD data base, Falster et !
! al. (2015, Ecology) (leaf area). Both leaf and structural biomass take !
! DBH and Height as dependent variables, and DBH-Height takes a simpler !
! log-linear form fitted using SMA so it can be inverted (useful for !
! airborne lidar initialisation). !
! 3. (Beta) Revised tropical PFT allometric (Longo et al. 2020, JGR-B). !
! a. Height -> DBH and DBH^2*H -> CA. Model fitting using the Sustainable !
! Landscapes Dataset (Longo et al. 2016, Glob. Biogeochem. Cycles). !
! DBH-Height takes a simpler log-linear form fitted using SMA so it can !
! be inverted (useful for airborne lidar initialisation). !
! b. DBH^2*H -> AGB. Based on Chave et al. (2014, Glob. Change Biol.) !
! c. DBH^2*H -> Leaf area based on the BAAD data base: !
! Falster et al. (2015, Ecology). !
! 4. (Under Development) Similar to 3 but (a) leaf and height allometric !
! equations depend on wood density; (b) use height-based root allometry !
! from Smith-Martin et al. (2020, New Phyt.). !
! 5. (Under Development) Similar to IALLOM = 3 but using the rooting !
! allometry from IALLOM = 4. !
!---------------------------------------------------------------------------------------!
IALLOM = 3,
!---------------------------------------------------------------------------------------!
Expand Down
20 changes: 13 additions & 7 deletions ED/Template/Template/ED2IN
Original file line number Diff line number Diff line change
Expand Up @@ -882,13 +882,19 @@ $ED_NL
! a few genera in Costa Rica. References: !
! Cole and Ewel (2006, Forest Ecol. Manag.), and Calvo-Alvarado et al. !
! (2008, Tree Physiol.). !
! 3. (Beta) Updated allometric for tropical PFTs based on data from !
! Sustainable Landscapes Brazil (Height and crown area), Chave et al. !
! (2014, Glob. Change Biol.) (biomass) and the BAAD data base, Falster et !
! al. (2015, Ecology) (leaf area). Both leaf and structural biomass take !
! DBH and Height as dependent variables, and DBH-Height takes a simpler !
! log-linear form fitted using SMA so it can be inverted (useful for !
! airborne lidar initialisation). !
! 3. (Beta) Revised tropical PFT allometric (Longo et al. 2020, JGR-B). !
! a. Height -> DBH and DBH^2*H -> CA. Model fitting using the Sustainable !
! Landscapes Dataset (Longo et al. 2016, Glob. Biogeochem. Cycles). !
! DBH-Height takes a simpler log-linear form fitted using SMA so it can !
! be inverted (useful for airborne lidar initialisation). !
! b. DBH^2*H -> AGB. Based on Chave et al. (2014, Glob. Change Biol.) !
! c. DBH^2*H -> Leaf area based on the BAAD data base: !
! Falster et al. (2015, Ecology). !
! 4. (Under Development) Similar to 3 but (a) leaf and height allometric !
! equations depend on wood density; (b) use height-based root allometry !
! from Smith-Martin et al. (2020, New Phyt.). !
! 5. (Under Development) Similar to IALLOM = 3 but using the rooting !
! allometry from IALLOM = 4. !
!---------------------------------------------------------------------------------------!
NL%IALLOM = myallom
!---------------------------------------------------------------------------------------!
Expand Down
23 changes: 12 additions & 11 deletions ED/run/ED2IN
Original file line number Diff line number Diff line change
Expand Up @@ -895,18 +895,19 @@ $ED_NL
! a few genera in Costa Rica. References: !
! Cole and Ewel (2006, Forest Ecol. Manag.), and Calvo-Alvarado et al. !
! (2008, Tree Physiol.). !
! 3. (Beta) Updated allometric for tropical PFTs based on data from !
! Sustainable Landscapes Brazil (Height and crown area), Chave et al. !
! (2014, Glob. Change Biol.) (biomass) and the BAAD data base, Falster et !
! al. (2015, Ecology) (leaf area). Both leaf and structural biomass take !
! DBH and Height as dependent variables, and DBH-Height takes a simpler !
! log-linear form fitted using SMA so it can be inverted (useful for !
! airborne lidar initialisation). !
! 3. (Beta) Revised tropical PFT allometric (Longo et al. 2020, JGR-B). !
! a. Height -> DBH and DBH^2*H -> CA. Model fitting using the Sustainable !
! Landscapes Dataset (Longo et al. 2016, Glob. Biogeochem. Cycles). !
! DBH-Height takes a simpler log-linear form fitted using SMA so it can !
! be inverted (useful for airborne lidar initialisation). !
! b. DBH^2*H -> AGB. Based on Chave et al. (2014, Glob. Change Biol.) !
! c. DBH^2*H -> Leaf area based on the BAAD data base: !
! Falster et al. (2015, Ecology). !
! 4. (Under Development) Similar to 3 but (a) leaf and height allometric !
! equations depend on wood density; (b) use leaf area based allometry !
! instead of leaf biomass based allometry, which is more compatible with !
! trait plasticity in SLA; (c) use height-based root allometry from !
! Smith-Martin et al. (2020, New Phyt.) !
! equations depend on wood density; (b) use height-based root allometry !
! from Smith-Martin et al. (2020, New Phyt.). !
! 5. (Under Development) Similar to IALLOM = 3 but using the rooting !
! allometry from IALLOM = 4. !
!---------------------------------------------------------------------------------------!
NL%IALLOM = 3
!---------------------------------------------------------------------------------------!
Expand Down
10 changes: 9 additions & 1 deletion ED/src/dynamics/disturbance.f90
Original file line number Diff line number Diff line change
Expand Up @@ -4110,7 +4110,8 @@ subroutine prune_lianas(csite, np, lsl)
, h2dbh & ! function
, size2bl & ! function
, size2bd & ! function
, size2krdepth ! ! function
, size2krdepth & ! function
, distrib_root ! ! subroutine
use pft_coms, only : qsw & ! intent(in)
, qbark & ! intent(in)
, agf_bs & ! intent(in)
Expand Down Expand Up @@ -4234,6 +4235,13 @@ subroutine prune_lianas(csite, np, lsl)
!----- Update rooting depth ---------------------------------------------------!
cpatch%krdepth(ico) = size2krdepth(cpatch%hite(ico),cpatch%dbh(ico),ipft,lsl)
!if new root depth is smaller keep the old one
!------------------------------------------------------------------------------!


!----- Update the vertical distribution of roots. -----------------------------!
call distrib_root(cpatch%krdepth(ico),ipft,cpatch%root_frac(:,ico))
!------------------------------------------------------------------------------!


!------------------------------------------------------------------------------!
! It is likely that biomass has changed, therefore, update !
Expand Down
81 changes: 42 additions & 39 deletions ED/src/dynamics/growth_balive.f90
Original file line number Diff line number Diff line change
Expand Up @@ -1379,46 +1379,49 @@ subroutine get_c_xfers(csite,ipa,ico,npp_actual,green_leaf_factor,gr_tfact0
! net growth (i.e. increment from the value of btissue before !
! maintenance was applied) is the same every day. !
!------------------------------------------------------------------------------!
if ( (iallom == 3 .or. iallom == 4) &
.and. (.not. (is_grass(ipft) .and. igrass == 1)) ) then
if (delta_bleaf >= tiny_num) then
gtf_bleaf = ( cpatch%leaf_maintenance(ico) &
+ gr_tfact0 * (delta_bleaf - cpatch%leaf_maintenance(ico)) ) &
/ delta_bleaf
else
gtf_bleaf = gr_tfact0
end if
if (delta_broot >= tiny_num) then
gtf_broot = ( cpatch%root_maintenance(ico) &
+ gr_tfact0 * (delta_broot - cpatch%root_maintenance(ico)) ) &
/ delta_broot
else
gtf_broot = gr_tfact0
end if
if (delta_bbarka >= tiny_num) then
gtf_bbarka = ( cpatch%barka_maintenance(ico) &
+ gr_tfact0 &
* (delta_bbarka - cpatch%barka_maintenance(ico)) ) &
/ delta_bbarka
else
gtf_bbarka = gr_tfact0
end if
if (delta_bbarkb >= tiny_num) then
gtf_bbarkb = ( cpatch%barkb_maintenance(ico) &
+ gr_tfact0 &
* (delta_bbarkb - cpatch%barkb_maintenance(ico)) ) &
/ delta_bbarkb
else
gtf_bbarkb = gr_tfact0
select case (iallom)
case (3,4,5)
if (.not. (is_grass(ipft) .and. igrass == 1) ) then
if (delta_bleaf >= tiny_num) then
gtf_bleaf = ( cpatch%leaf_maintenance(ico) &
+ gr_tfact0 * (delta_bleaf-cpatch%leaf_maintenance(ico))) &
/ delta_bleaf
else
gtf_bleaf = gr_tfact0
end if
if (delta_broot >= tiny_num) then
gtf_broot = ( cpatch%root_maintenance(ico) &
+ gr_tfact0 * (delta_broot-cpatch%root_maintenance(ico))) &
/ delta_broot
else
gtf_broot = gr_tfact0
end if
if (delta_bbarka >= tiny_num) then
gtf_bbarka = ( cpatch%barka_maintenance(ico) &
+ gr_tfact0 &
* (delta_bbarka - cpatch%barka_maintenance(ico)) ) &
/ delta_bbarka
else
gtf_bbarka = gr_tfact0
end if
if (delta_bbarkb >= tiny_num) then
gtf_bbarkb = ( cpatch%barkb_maintenance(ico) &
+ gr_tfact0 &
* (delta_bbarkb - cpatch%barkb_maintenance(ico)) ) &
/ delta_bbarkb
else
gtf_bbarkb = gr_tfact0
end if
!----- Correct deltas based on the time of the month and turnover. ------!
delta_bleaf = delta_bleaf * gtf_bleaf
delta_broot = delta_broot * gtf_broot
delta_bsapwooda = delta_bsapwooda * gr_tfact0 ! sapwood turnover is zero.
delta_bsapwoodb = delta_bsapwoodb * gr_tfact0 ! sapwood turnover is zero.
delta_bbarka = delta_bbarka * gtf_bbarka
delta_bbarkb = delta_bbarkb * gtf_bbarkb
end if
!----- Correct deltas based on the time of the month and turnover. ---------!
delta_bleaf = delta_bleaf * gtf_bleaf
delta_broot = delta_broot * gtf_broot
delta_bsapwooda = delta_bsapwooda * gr_tfact0 ! sapwood turnover is zero.
delta_bsapwoodb = delta_bsapwoodb * gr_tfact0 ! sapwood turnover is zero.
delta_bbarka = delta_bbarka * gtf_bbarka
delta_bbarkb = delta_bbarkb * gtf_bbarkb
end if
!---------------------------------------------------------------------------!
end select
!------------------------------------------------------------------------------!


Expand Down
Loading

0 comments on commit 48c99d8

Please sign in to comment.