Skip to content

Commit 08f2410

Browse files
authored
Merge pull request #1268 from XiulinGao/xlg-grass-sapwood-area-fix
calculate sapwood cross-sectional area for grass PFT
2 parents de5f266 + 1365dee commit 08f2410

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

biogeochem/FatesAllometryMod.F90

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ module FatesAllometryMod
9393
use FatesConstantsMod, only : fates_unset_r8
9494
use FatesConstantsMod, only : itrue
9595
use FatesConstantsMod, only : nearzero
96+
use FatesConstantsMod, only : pi_const
9697
use shr_log_mod , only : errMsg => shr_log_errMsg
9798
use FatesGlobals , only : fates_log
9899
use FatesGlobals , only : endrun => fates_endrun
@@ -1045,8 +1046,10 @@ subroutine bsap_allom(d,ipft,crowndamage,canopy_trim,elongf_stem, sapw_area,bsap
10451046
! dead woody biomass. So bsap = bagw. Might remove the bsap and bdead for grass
10461047
! in the future as there is no need to distinguish the two for grass above- and belowground biomass
10471048

1049+
call SapwoodAreaGrass(d,sapw_area)
10481050
call bagw_allom(d,ipft,crowndamage,elongf_stem,bagw,dbagwdd)
10491051
call bbgw_allom(d,ipft, elongf_stem,bbgw,dbbgwdd)
1052+
10501053
bsap = bagw + bbgw
10511054

10521055
! This is a grass-only functionnal type, no need to run crown-damage effects
@@ -1411,6 +1414,45 @@ subroutine bsap_ltarg_slatop(d,h,dhdd,bleaf,dbleafdd,ipft, &
14111414
return
14121415
end subroutine bsap_ltarg_slatop
14131416

1417+
1418+
1419+
! ============================================================================
1420+
! Area of sap wood cross-section specifically for grass PFT
1421+
! ============================================================================
1422+
1423+
subroutine SapwoodAreaGrass(d,sapw_area)
1424+
1425+
!---------------------------------------------------------------------------
1426+
! This function calculates sapwood cross-sectional area specifically for grass
1427+
! PFT using basal diameter (cm) of the entire plant as size reference,
1428+
! assume sapwood area of the entire plant as the sum of the cross-sectional area
1429+
! of each grass tiller
1430+
! such that water transport through sapwood can be seen as a collective behavior
1431+
! of all tillers
1432+
! No reference. Might update this to more theoretical-based approach once there
1433+
! is empirical evidence
1434+
!----------------
1435+
! Input arguments
1436+
!----------------
1437+
! d -- basal diameter [cm]
1438+
1439+
!----------------
1440+
! Output variables
1441+
!----------------
1442+
! sapw_area -- sapwood cross-sectional area [m2]
1443+
1444+
!---Arguments
1445+
real(r8), intent(in) :: d ! plant basal diameter [ cm]
1446+
real(r8), intent(out) :: sapw_area ! sapwood cross-sectional area [ m2]
1447+
1448+
! Calculate sapwood cross-sectional area assuming sapwood geometry as a
1449+
! cylinder and basal diameter is the diameter of the cylinder
1450+
sapw_area = (pi_const * ((d / 2.0_r8)**2.0_r8)) / cm2_per_m2
1451+
1452+
return
1453+
1454+
end subroutine SapwoodAreaGrass
1455+
14141456
! ============================================================================
14151457
! Specific storage relationships
14161458
! ============================================================================

0 commit comments

Comments
 (0)