@@ -17,7 +17,6 @@ module EDPatchDynamicsMod
1717 use FatesLitterMod , only : litter_type
1818 use FatesConstantsMod , only : n_dbh_bins
1919 use FatesLitterMod , only : adjust_SF_CWD_frac
20- use EDTypesMod , only : homogenize_seed_pfts
2120 use EDTypesMod , only : area
2221 use FatesConstantsMod , only : patchfusion_dbhbin_loweredges
2322 use EDtypesMod , only : force_patchfuse_min_biomass
@@ -482,7 +481,7 @@ end subroutine disturbance_rates
482481
483482 ! ============================================================================
484483
485- subroutine spawn_patches ( currentSite , bc_in )
484+ subroutine spawn_patches ( currentSite , bc_in )
486485 !
487486 ! !DESCRIPTION:
488487 ! In this subroutine, the following happens,
@@ -1068,14 +1067,16 @@ subroutine spawn_patches( currentSite, bc_in)
10681067 currentSite% mass_balance(el)% burn_flux_to_atm + &
10691068 leaf_burn_frac * leaf_m * nc% n
10701069
1071- ! This diagnostic only tracks
1070+ ! This term increments the loss flux from surviving trees
10721071 currentSite% flux_diags% elem(el)% burned_liveveg = &
10731072 currentSite% flux_diags% elem(el)% burned_liveveg + &
10741073 leaf_burn_frac * leaf_m * nc% n * area_inv
10751074
1075+
10761076 end do
10771077
1078- ! Here the mass is removed from the plant
1078+ ! Add burned leaf carbon to the atmospheric carbon flux
1079+ ! for burning.
10791080
10801081 if (int (prt_params% woody(currentCohort% pft)) == itrue)then
10811082 call PRTBurnLosses(nc% prt, leaf_organ, leaf_burn_frac)
@@ -1866,7 +1867,6 @@ subroutine TransLitterNewPatch(currentSite, &
18661867 ! by current patch
18671868 integer , intent (in ) :: dist_type ! disturbance type
18681869
1869-
18701870 ! locals
18711871 type (site_massbal_type), pointer :: site_mass
18721872 type (litter_type),pointer :: curr_litt ! litter object for current patch
@@ -1989,9 +1989,8 @@ subroutine TransLitterNewPatch(currentSite, &
19891989 curr_litt% ag_cwd(c) = curr_litt% ag_cwd(c) + donatable_mass* retain_m2
19901990
19911991 site_mass% burn_flux_to_atm = site_mass% burn_flux_to_atm + burned_mass
1992-
1992+
19931993 ! Transfer below ground CWD (none burns)
1994-
19951994 do sl = 1 ,currentSite% nlevsoil
19961995 donatable_mass = curr_litt% bg_cwd(c,sl) * patch_site_areadis
19971996 new_litt% bg_cwd(c,sl) = new_litt% bg_cwd(c,sl) + donatable_mass* donate_m2
@@ -2018,7 +2017,7 @@ subroutine TransLitterNewPatch(currentSite, &
20182017 curr_litt% leaf_fines(dcmpy) = curr_litt% leaf_fines(dcmpy) + donatable_mass* retain_m2
20192018
20202019 site_mass% burn_flux_to_atm = site_mass% burn_flux_to_atm + burned_mass
2021-
2020+
20222021 ! Transfer root fines (none burns)
20232022 do sl = 1 ,currentSite% nlevsoil
20242023 donatable_mass = curr_litt% root_fines(dcmpy,sl) * patch_site_areadis
@@ -2088,7 +2087,7 @@ subroutine fire_litter_fluxes(currentSite, currentPatch, &
20882087 type (fates_patch_type) , intent (inout ), target :: newPatch ! New Patch
20892088 real (r8 ) , intent (in ) :: patch_site_areadis ! Area being donated
20902089 type (bc_in_type) , intent (in ) :: bc_in
2091-
2090+
20922091 !
20932092 ! !LOCAL VARIABLES:
20942093
@@ -2229,8 +2228,6 @@ subroutine fire_litter_fluxes(currentSite, currentPatch, &
22292228
22302229 site_mass% burn_flux_to_atm = site_mass% burn_flux_to_atm + burned_mass
22312230
2232-
2233-
22342231 call set_root_fraction(currentSite% rootfrac_scr, pft, currentSite% zi_soil, &
22352232 bc_in% max_rooting_depth_index_col)
22362233
@@ -2301,7 +2298,7 @@ subroutine fire_litter_fluxes(currentSite, currentPatch, &
23012298
23022299 currentCohort = > currentCohort% taller
23032300 enddo
2304- end do
2301+ end do
23052302
23062303 return
23072304 end subroutine fire_litter_fluxes
@@ -2382,7 +2379,7 @@ subroutine mortality_litter_fluxes(currentSite, currentPatch, &
23822379
23832380
23842381 do el = 1 ,num_elements
2385-
2382+
23862383 element_id = element_list(el)
23872384 site_mass = > currentSite% mass_balance(el)
23882385 elflux_diags = > currentSite% flux_diags% elem(el)
@@ -2542,7 +2539,7 @@ end subroutine mortality_litter_fluxes
25422539 ! ============================================================================
25432540
25442541 subroutine landusechange_litter_fluxes (currentSite , currentPatch , &
2545- newPatch , patch_site_areadis , bc_in , &
2542+ newPatch , patch_site_areadis , bc_in , &
25462543 clearing_matrix_element )
25472544 !
25482545 ! !DESCRIPTION:
@@ -2596,8 +2593,6 @@ subroutine landusechange_litter_fluxes(currentSite, currentPatch, &
25962593 integer :: pft ! loop index for plant functional types
25972594 integer :: dcmpy ! loop index for decomposability pool
25982595 integer :: element_id ! parteh compatible global element index
2599- real (r8 ) :: trunk_product_site ! flux of carbon in trunk products exported off site [ kgC/site ]
2600- ! (note we are accumulating over the patch, but scale is site level)
26012596 real (r8 ) :: woodproduct_mass ! mass that ends up in wood products [kg]
26022597
26032598 !- --------------------------------------------------------------------
@@ -2640,9 +2635,6 @@ subroutine landusechange_litter_fluxes(currentSite, currentPatch, &
26402635
26412636 do el = 1 ,num_elements
26422637
2643- ! Zero some site level accumulator diagnsotics
2644- trunk_product_site = 0.0_r8
2645-
26462638 element_id = element_list(el)
26472639 site_mass = > currentSite% mass_balance(el)
26482640 elflux_diags = > currentSite% flux_diags% elem(el)
@@ -2702,7 +2694,7 @@ subroutine landusechange_litter_fluxes(currentSite, currentPatch, &
27022694 end do
27032695
27042696 site_mass% burn_flux_to_atm = site_mass% burn_flux_to_atm + burned_mass
2705-
2697+
27062698 call set_root_fraction(currentSite% rootfrac_scr, pft, currentSite% zi_soil, &
27072699 bc_in% max_rooting_depth_index_col)
27082700
@@ -2762,6 +2754,7 @@ subroutine landusechange_litter_fluxes(currentSite, currentPatch, &
27622754 EDPftvarcon_inst% landusechange_frac_burned(pft)
27632755
27642756 site_mass% burn_flux_to_atm = site_mass% burn_flux_to_atm + burned_mass
2757+
27652758 else ! all other pools can end up as timber products or burn or go to litter
27662759 donatable_mass = donatable_mass * (1.0_r8 - EDPftvarcon_inst% landusechange_frac_exported(pft)) * &
27672760 (1.0_r8 - EDPftvarcon_inst% landusechange_frac_burned(pft))
@@ -2775,9 +2768,6 @@ subroutine landusechange_litter_fluxes(currentSite, currentPatch, &
27752768
27762769 site_mass% burn_flux_to_atm = site_mass% burn_flux_to_atm + burned_mass
27772770
2778- trunk_product_site = trunk_product_site + &
2779- woodproduct_mass
2780-
27812771 ! Amount of trunk mass exported off site [kg/m2]
27822772 elflux_diags% exported_harvest = elflux_diags% exported_harvest + &
27832773 woodproduct_mass * area_inv
@@ -2794,15 +2784,6 @@ subroutine landusechange_litter_fluxes(currentSite, currentPatch, &
27942784 currentCohort = > currentCohort% taller
27952785 enddo
27962786
2797- ! Update the amount of carbon exported from the site through logging.
2798-
2799- if (element_id .eq. carbon12_element) then
2800- currentSite% resources_management% trunk_product_site = &
2801- currentSite% resources_management% trunk_product_site + &
2802- trunk_product_site
2803- end if
2804-
2805-
28062787 end do
28072788
28082789 end if clear_veg_if
@@ -3578,12 +3559,8 @@ subroutine DistributeSeeds(currentSite,seed_mass,el,pft)
35783559 do while (associated (currentPatch))
35793560 litt = > currentPatch% litter(el)
35803561
3581- if (homogenize_seed_pfts) then
3582- litt% seed(:) = litt% seed(:) + seed_mass/ (area_site* real (numpft,r8 ))
3583- else
3584- litt% seed(pft) = litt% seed(pft) + seed_mass/ area_site
3585- end if
3586-
3562+ litt% seed(pft) = litt% seed(pft) + seed_mass/ area_site
3563+
35873564 currentPatch = > currentPatch% younger
35883565 end do
35893566
0 commit comments