Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions main/FatesHistoryInterfaceMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,7 @@ module FatesHistoryInterfaceMod
integer :: ih_leafc_si
integer :: ih_sapwc_si
integer :: ih_fnrtc_si
integer :: ih_crtc_si
integer :: ih_fnrtc_sl
integer :: ih_reproc_si
integer :: ih_totvegc_si
Expand Down Expand Up @@ -603,6 +604,7 @@ module FatesHistoryInterfaceMod
integer :: ih_resp_m_canopy_si_scls
integer :: ih_leaf_md_canopy_si_scls
integer :: ih_root_md_canopy_si_scls
integer :: ih_croot_md_canopy_si_scls
integer :: ih_carbon_balance_canopy_si_scls
integer :: ih_bstore_md_canopy_si_scls
integer :: ih_bdead_md_canopy_si_scls
Expand All @@ -623,6 +625,7 @@ module FatesHistoryInterfaceMod
integer :: ih_resp_m_understory_si_scls
integer :: ih_leaf_md_understory_si_scls
integer :: ih_root_md_understory_si_scls
integer :: ih_croot_md_understory_si_scls
integer :: ih_carbon_balance_understory_si_scls
integer :: ih_bsw_md_understory_si_scls
integer :: ih_bdead_md_understory_si_scls
Expand Down Expand Up @@ -2425,6 +2428,7 @@ subroutine update_history_dyn_sitelevel(this,nc,nsites,sites)
real(r8) :: struct_m ! Structural mass ""
real(r8) :: leaf_m ! Leaf mass ""
real(r8) :: fnrt_m ! Fineroot mass ""
real(r8) :: crt_m ! Coarse root mass ""
real(r8) :: store_m ! Storage mass ""
real(r8) :: alive_m ! Alive biomass (sap+leaf+fineroot+repro+storage) ""
real(r8) :: total_m ! Total vegetation mass
Expand Down Expand Up @@ -2825,6 +2829,7 @@ subroutine update_history_dyn_sitelevel(this,nc,nsites,sites)
call ccohort%prt%GetBiomass(element_list(el), &
sapw_m, struct_m, leaf_m, fnrt_m, store_m, repro_m, alive_m, total_m)


! Plant multi-element states and fluxes
! Zero states, and set the fluxes
if( element_list(el).eq.carbon12_element )then
Expand All @@ -2839,6 +2844,12 @@ subroutine update_history_dyn_sitelevel(this,nc,nsites,sites)
this%hvars(ih_fnrtc_si)%r81d(io_si) = &
this%hvars(ih_fnrtc_si)%r81d(io_si) + ccohort%n * &
fnrt_m / m2_per_ha

crt_m = (sapw_m + struct_m) * (1.0_r8 - prt_params%allom_agb_frac(ccohort%pft))

this%hvars(ih_crtc_si)%r81d(io_si) = &
this%hvars(ih_crtc_si)%r81d(io_si) + ccohort%n * &
crt_m / m2_per_ha
this%hvars(ih_reproc_si)%r81d(io_si) = &
this%hvars(ih_reproc_si)%r81d(io_si)+ ccohort%n * &
repro_m / m2_per_ha
Expand Down Expand Up @@ -3146,6 +3157,7 @@ subroutine update_history_dyn_subsite(this,nc,nsites,sites,bc_in)
real(r8) :: store_m_turnover ! storage turnover rate [kg/yr]
real(r8) :: leaf_m_turnover ! leaf turnover rate [kg/yr]
real(r8) :: fnrt_m_turnover ! fine-root turnover rate [kg/yr]
real(r8) :: crt_m_turnover ! coarse-root turnover rate [kg/yr]
real(r8) :: struct_m_turnover ! structural turnover rate [kg/yr]
real(r8) :: sapw_m_net_alloc ! mass allocated to sapwood [kg/yr]
real(r8) :: store_m_net_alloc ! mass allocated to storage [kg/yr]
Expand Down Expand Up @@ -3315,6 +3327,7 @@ subroutine update_history_dyn_subsite(this,nc,nsites,sites,bc_in)
hio_crown_fracarea_understory_si_scls => this%hvars(ih_crown_fracarea_understory_si_scls)%r82d, &
hio_leaf_md_canopy_si_scls => this%hvars(ih_leaf_md_canopy_si_scls)%r82d, &
hio_root_md_canopy_si_scls => this%hvars(ih_root_md_canopy_si_scls)%r82d, &
hio_croot_md_canopy_si_scls => this%hvars(ih_croot_md_canopy_si_scls)%r82d, &
hio_carbon_balance_canopy_si_scls => this%hvars(ih_carbon_balance_canopy_si_scls)%r82d, &
hio_bsw_md_canopy_si_scls => this%hvars(ih_bsw_md_canopy_si_scls)%r82d, &
hio_bdead_md_canopy_si_scls => this%hvars(ih_bdead_md_canopy_si_scls)%r82d, &
Expand All @@ -3328,6 +3341,7 @@ subroutine update_history_dyn_subsite(this,nc,nsites,sites,bc_in)
hio_npp_stor_canopy_si_scls => this%hvars(ih_npp_stor_canopy_si_scls)%r82d, &
hio_leaf_md_understory_si_scls => this%hvars(ih_leaf_md_understory_si_scls)%r82d, &
hio_root_md_understory_si_scls => this%hvars(ih_root_md_understory_si_scls)%r82d, &
hio_croot_md_understory_si_scls => this%hvars(ih_croot_md_understory_si_scls)%r82d, &
hio_carbon_balance_understory_si_scls=> this%hvars(ih_carbon_balance_understory_si_scls)%r82d, &
hio_bstore_md_understory_si_scls => this%hvars(ih_bstore_md_understory_si_scls)%r82d, &
hio_bsw_md_understory_si_scls => this%hvars(ih_bsw_md_understory_si_scls)%r82d, &
Expand Down Expand Up @@ -3714,6 +3728,8 @@ subroutine update_history_dyn_subsite(this,nc,nsites,sites,bc_in)
fnrt_m_turnover = ccohort%prt%GetTurnover(fnrt_organ, carbon12_element) * days_per_year
struct_m_turnover = ccohort%prt%GetTurnover(struct_organ, carbon12_element) * days_per_year

crt_m_turnover = (sapw_m_turnover + struct_m_turnover) * (1.0_r8 - prt_params%allom_agb_frac(ccohort%pft))

! Net change from allocation and transport [kgC/day] * [day/yr] = [kgC/yr]
sapw_m_net_alloc = ccohort%prt%GetNetAlloc(sapw_organ, carbon12_element) * days_per_year
store_m_net_alloc = ccohort%prt%GetNetAlloc(store_organ, carbon12_element) * days_per_year
Expand Down Expand Up @@ -4030,6 +4046,8 @@ subroutine update_history_dyn_subsite(this,nc,nsites,sites,bc_in)
leaf_m_turnover * ccohort%n / m2_per_ha / days_per_year / sec_per_day
hio_root_md_canopy_si_scls(io_si,scls) = hio_root_md_canopy_si_scls(io_si,scls) + &
fnrt_m_turnover * ccohort%n / m2_per_ha / days_per_year / sec_per_day
hio_croot_md_canopy_si_scls(io_si,scls) = hio_croot_md_canopy_si_scls(io_si,scls) + &
crt_m_turnover * ccohort%n / m2_per_ha / days_per_year / sec_per_day
hio_bsw_md_canopy_si_scls(io_si,scls) = hio_bsw_md_canopy_si_scls(io_si,scls) + &
sapw_m_turnover * ccohort%n / m2_per_ha / days_per_year / sec_per_day
hio_bstore_md_canopy_si_scls(io_si,scls) = hio_bstore_md_canopy_si_scls(io_si,scls) + &
Expand Down Expand Up @@ -4153,6 +4171,8 @@ subroutine update_history_dyn_subsite(this,nc,nsites,sites,bc_in)
leaf_m_turnover * ccohort%n / m2_per_ha / days_per_year / sec_per_day
hio_root_md_understory_si_scls(io_si,scls) = hio_root_md_understory_si_scls(io_si,scls) + &
fnrt_m_turnover * ccohort%n / m2_per_ha / days_per_year / sec_per_day
hio_croot_md_understory_si_scls(io_si,scls) = hio_croot_md_understory_si_scls(io_si,scls) + &
crt_m_turnover * ccohort%n / m2_per_ha / days_per_year / sec_per_day
hio_bsw_md_understory_si_scls(io_si,scls) = hio_bsw_md_understory_si_scls(io_si,scls) + &
sapw_m_turnover * ccohort%n / m2_per_ha / days_per_year / sec_per_day
hio_bstore_md_understory_si_scls(io_si,scls) = hio_bstore_md_understory_si_scls(io_si,scls) + &
Expand Down Expand Up @@ -6911,6 +6931,12 @@ subroutine define_history_vars(this, initialize_variables)
upfreq=group_dyna_simple, ivar=ivar, initialize=initialize_variables, &
index = ih_fnrtc_si)

call this%set_history_var(vname='FATES_CROOTC', units='kg m-2', &
long='total biomass in live plant coarse roots in kg carbon per m2', &
use_default='active', avgflag='A', vtype=site_r8, hlms='CLM:ALM', &
upfreq=group_dyna_simple, ivar=ivar, initialize=initialize_variables, &
index = ih_crtc_si)

call this%set_history_var(vname='FATES_REPROC', units='kg m-2', &
long='total biomass in live plant reproductive tissues in kg carbon per m2', &
use_default='active', avgflag='A', vtype=site_r8, hlms='CLM:ALM', &
Expand Down Expand Up @@ -8843,6 +8869,13 @@ subroutine define_history_vars(this, initialize_variables)
hlms='CLM:ALM', upfreq=group_dyna_complx, ivar=ivar, &
initialize=initialize_variables, index = ih_root_md_canopy_si_scls)

call this%set_history_var(vname='FATES_CROOTCTURN_CANOPY_SZ', &
units = 'kg m-2 s-1', &
long='coarse root turnover (non-mortal) for canopy plants by size class in kg carbon per m2 per second', &
use_default='inactive', avgflag='A', vtype=site_size_r8, &
hlms='CLM:ALM', upfreq=group_dyna_complx, ivar=ivar, &
initialize=initialize_variables, index = ih_croot_md_canopy_si_scls)

call this%set_history_var(vname='FATES_STORECTURN_CANOPY_SZ', &
units = 'kg m-2 s-1', &
long='storage turnover (non-mortal) for canopy plants by size class in kg carbon per m2 per second', &
Expand Down Expand Up @@ -8929,6 +8962,14 @@ subroutine define_history_vars(this, initialize_variables)
initialize=initialize_variables, &
index = ih_root_md_understory_si_scls)

call this%set_history_var(vname='FATES_CROOTCTURN_USTORY_SZ', &
units = 'kg m-2 s-1', &
long='coarse root turnover (non-mortal) for understory plants by size class in kg carbon per m2 per second', &
use_default='inactive', avgflag='A', vtype=site_size_r8, &
hlms='CLM:ALM', upfreq=group_dyna_complx, ivar=ivar, &
initialize=initialize_variables, &
index = ih_croot_md_understory_si_scls)

call this%set_history_var(vname='FATES_STORECTURN_USTORY_SZ', &
units = 'kg m-2 s-1', &
long='storage C turnover (non-mortal) for understory plants by size class in kg carbon per m2 per second', &
Expand Down