@@ -49,8 +49,9 @@ module FatesRestartInterfaceMod
4949 use EDTypesMod, only : area
5050 use EDTypesMod, only : set_patchno
5151 use EDParamsMod, only : nlevleaf
52- use PRTGenericMod, only : prt_global
52+ use PRTGenericMod, only : carbon12_element
5353 use PRTGenericMod, only : num_elements
54+ use PRTGenericMod, only : element_pos
5455 use FatesRunningMeanMod, only : rmean_type
5556 use FatesRunningMeanMod, only : ema_lpa
5657 use FatesRadiationMemMod, only : num_swb,norman_solver,twostr_solver
@@ -111,6 +112,9 @@ module FatesRestartInterfaceMod
111112 integer :: ir_area_bareground_si
112113 integer :: ir_snow_depth_si
113114 integer :: ir_landuse_config_si
115+ integer :: ir_gpp_acc_si
116+ integer :: ir_aresp_acc_si
117+
114118 integer :: ir_ncohort_pa
115119 integer :: ir_canopy_layer_co
116120 integer :: ir_canopy_layer_yesterday_co
@@ -341,7 +345,8 @@ module FatesRestartInterfaceMod
341345
342346 ! The number of variable dim/kind types we have defined (static)
343347 integer , parameter , public :: fates_restart_num_dimensions = 2 ! (cohort,column)
344- integer , parameter , public :: fates_restart_num_dim_kinds = 4 ! (cohort-int,cohort-r8,site-int,site-r8)
348+ integer , parameter , public :: fates_restart_num_dim_kinds = 4 ! (cohort-int,cohort-r8,
349+ ! site-int,site-r8)
345350
346351 ! integer constants for storing logical data
347352 integer , parameter , public :: old_cohort = 0
@@ -769,6 +774,16 @@ subroutine define_restart_vars(this, initialize_variables)
769774 units= ' kgC/m2' , flushval = flushzero, &
770775 hlms= ' CLM:ALM' , initialize= initialize_variables, ivar= ivar, index = ir_landuse_config_si )
771776
777+ call this% set_restart_var(vname= ' fates_massbal_gpp' , vtype= site_r8 , &
778+ long_name= ' accumulated gpp over previous day cycle' , &
779+ units= ' kgC/m2/s' , flushval = flushzero, &
780+ hlms= ' CLM:ALM' , initialize= initialize_variables, ivar= ivar, index = ir_gpp_acc_si )
781+
782+ call this% set_restart_var(vname= ' fates_massbal_ar' , vtype= site_r8 , &
783+ long_name= ' accumulated autotrophic respiration over previous day cycle' , &
784+ units= ' kgC/m2/s' , flushval = flushzero, &
785+ hlms= ' CLM:ALM' , initialize= initialize_variables, ivar= ivar, index = ir_aresp_acc_si )
786+
772787 ! -----------------------------------------------------------------------------------
773788 ! Variables stored within cohort vectors
774789 ! Note: Some of these are multi-dimensional variables in the patch/site dimension
@@ -2229,6 +2244,7 @@ subroutine set_restart_vectors(this,nc,nsites,sites)
22292244
22302245 integer :: ft ! functional type index
22312246 integer :: el ! element loop index
2247+ integer :: c_el ! element loop index for carbon12
22322248 integer :: ilyr ! soil layer index
22332249 integer :: nlevsoil ! total soil layers in patch of interest
22342250 integer :: k,j,i ! indices to the radiation matrix
@@ -2566,7 +2582,9 @@ subroutine set_restart_vectors(this,nc,nsites,sites)
25662582 end do
25672583 end if
25682584
2569-
2585+ c_el = element_pos(carbon12_element)
2586+ this% rvars(ir_gpp_acc_si)% r8 1d(io_idx_si) = sites(s)% mass_balance(c_el)% gpp_acc
2587+ this% rvars(ir_aresp_acc_si)% r8 1d(io_idx_si) = sites(s)% mass_balance(c_el)% aresp_acc
25702588
25712589 ! canopy spread term
25722590 rio_spread_si(io_idx_si) = sites(s)% spread
@@ -3281,6 +3299,7 @@ subroutine get_restart_vectors(this, nc, nsites, sites)
32813299 integer :: patchespersite ! number of patches per site
32823300 integer :: cohortsperpatch ! number of cohorts per patch
32833301 integer :: el ! loop counter for elements
3302+ integer :: c_el ! loop counter for carbon12
32843303 integer :: nlevsoil ! number of soil layers
32853304 integer :: ilyr ! soil layer loop counter
32863305 integer :: iscpf ! multiplex loop counter for size x pft
@@ -3599,6 +3618,11 @@ subroutine get_restart_vectors(this, nc, nsites, sites)
35993618
36003619 end do
36013620 end if
3621+
3622+ c_el = element_pos(carbon12_element)
3623+ sites(s)% mass_balance(c_el)% gpp_acc = this% rvars(ir_gpp_acc_si)% r8 1d(io_idx_si)
3624+ sites(s)% mass_balance(c_el)% aresp_acc = this% rvars(ir_aresp_acc_si)% r8 1d(io_idx_si)
3625+
36023626
36033627 sites(s)% spread = rio_spread_si(io_idx_si)
36043628
0 commit comments