@@ -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