Skip to content

Commit

Permalink
fixed a unit error on the canopy/understory-reoslved tissue npp fluxe…
Browse files Browse the repository at this point in the history
…s, which was traced back to a wrong description in EDTypesMod. Also cleanup.
  • Loading branch information
ckoven committed Feb 22, 2017
1 parent cb812d9 commit b9fd99e
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 59 deletions.
12 changes: 6 additions & 6 deletions components/clm/src/ED/main/EDTypesMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -250,12 +250,12 @@ module EDTypesMod

! Net Primary Production Partitions

real(r8) :: npp_leaf ! NPP into leaves (includes replacement of turnover): KgC/indiv/day
real(r8) :: npp_froot ! NPP into fine roots (includes replacement of turnover): KgC/indiv/day
real(r8) :: npp_bsw ! NPP into sapwood: KgC/indiv/day
real(r8) :: npp_bdead ! NPP into deadwood (structure): KgC/indiv/day
real(r8) :: npp_bseed ! NPP into seeds: KgC/indiv/day
real(r8) :: npp_store ! NPP into storage: KgC/indiv/day
real(r8) :: npp_leaf ! NPP into leaves (includes replacement of turnover): KgC/indiv/year
real(r8) :: npp_froot ! NPP into fine roots (includes replacement of turnover): KgC/indiv/year
real(r8) :: npp_bsw ! NPP into sapwood: KgC/indiv/year
real(r8) :: npp_bdead ! NPP into deadwood (structure): KgC/indiv/year
real(r8) :: npp_bseed ! NPP into seeds: KgC/indiv/year
real(r8) :: npp_store ! NPP into storage: KgC/indiv/year

real(r8) :: ts_net_uptake(cp_nlevcan) ! Net uptake of leaf layers: kgC/m2/s
real(r8) :: year_net_uptake(cp_nlevcan) ! Net uptake of leaf layers: kgC/m2/year
Expand Down
106 changes: 53 additions & 53 deletions components/clm/src/ED/main/FatesHistoryInterfaceMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1099,136 +1099,136 @@ subroutine update_history_dyn(this,nc,nsites,sites)
! Woody State Variables (basal area and number density and mortality)
if (pftcon%woody(ft) == 1) then

hio_m1_si_scpf(io_si,scpf) = hio_m1_si_scpf(io_si,scpf) + ccohort%bmort*n_perm2*AREA
hio_m2_si_scpf(io_si,scpf) = hio_m2_si_scpf(io_si,scpf) + ccohort%hmort*n_perm2*AREA
hio_m3_si_scpf(io_si,scpf) = hio_m3_si_scpf(io_si,scpf) + ccohort%cmort*n_perm2*AREA
hio_m4_si_scpf(io_si,scpf) = hio_m4_si_scpf(io_si,scpf) + ccohort%imort*n_perm2*AREA
hio_m5_si_scpf(io_si,scpf) = hio_m5_si_scpf(io_si,scpf) + ccohort%fmort*n_perm2*AREA
hio_m1_si_scpf(io_si,scpf) = hio_m1_si_scpf(io_si,scpf) + ccohort%bmort*ccohort%n
hio_m2_si_scpf(io_si,scpf) = hio_m2_si_scpf(io_si,scpf) + ccohort%hmort*ccohort%n
hio_m3_si_scpf(io_si,scpf) = hio_m3_si_scpf(io_si,scpf) + ccohort%cmort*ccohort%n
hio_m4_si_scpf(io_si,scpf) = hio_m4_si_scpf(io_si,scpf) + ccohort%imort*ccohort%n
hio_m5_si_scpf(io_si,scpf) = hio_m5_si_scpf(io_si,scpf) + ccohort%fmort*ccohort%n

! basal area [m2/ha]
hio_ba_si_scpf(io_si,scpf) = hio_ba_si_scpf(io_si,scpf) + &
0.25_r8*3.14159_r8*((dbh/100.0_r8)**2.0_r8)*n_perm2*AREA
0.25_r8*3.14159_r8*((dbh/100.0_r8)**2.0_r8)*ccohort%n
! also by size class only
hio_ba_si_scls(io_si,scls) = hio_ba_si_scls(io_si,scls) + &
0.25_r8*3.14159_r8*((dbh/100.0_r8)**2.0_r8)*n_perm2*AREA
0.25_r8*3.14159_r8*((dbh/100.0_r8)**2.0_r8)*ccohort%n

! number density [/ha]
hio_nplant_si_scpf(io_si,scpf) = hio_nplant_si_scpf(io_si,scpf) + AREA*n_perm2
hio_nplant_si_scpf(io_si,scpf) = hio_nplant_si_scpf(io_si,scpf) + ccohort%n

! growth increment
hio_ddbh_si_scpf(io_si,scpf) = hio_ddbh_si_scpf(io_si,scpf) + &
ccohort%ddbhdt*n_perm2*AREA
ccohort%ddbhdt*ccohort%n
end if

! update SCPF/SCLS- and canopy/subcanopy- partitioned quantities
if (ccohort%canopy_layer .eq. 1) then
hio_bstor_canopy_si_scpf(io_si,scpf) = hio_bstor_canopy_si_scpf(io_si,scpf) + &
ccohort%bstore * n_perm2 * AREA
ccohort%bstore * ccohort%n
hio_bleaf_canopy_si_scpf(io_si,scpf) = hio_bleaf_canopy_si_scpf(io_si,scpf) + &
ccohort%bl * n_perm2 * AREA
ccohort%bl * ccohort%n
hio_canopy_biomass_pa(io_pa) = hio_canopy_biomass_pa(io_pa) + n_density * ccohort%b * 1.e3_r8
hio_mortality_canopy_si_scpf(io_si,scpf) = hio_mortality_canopy_si_scpf(io_si,scpf)+ &
(ccohort%bmort + ccohort%hmort + ccohort%cmort + ccohort%imort + ccohort%fmort) * n_perm2*AREA
hio_nplant_canopy_si_scpf(io_si,scpf) = hio_nplant_canopy_si_scpf(io_si,scpf) + AREA*n_perm2
hio_nplant_canopy_si_scls(io_si,scls) = hio_nplant_canopy_si_scls(io_si,scls) + AREA*n_perm2
(ccohort%bmort + ccohort%hmort + ccohort%cmort + ccohort%imort + ccohort%fmort) * ccohort%n
hio_nplant_canopy_si_scpf(io_si,scpf) = hio_nplant_canopy_si_scpf(io_si,scpf) + ccohort%n
hio_nplant_canopy_si_scls(io_si,scls) = hio_nplant_canopy_si_scls(io_si,scls) + ccohort%n
hio_gpp_canopy_si_scpf(io_si,scpf) = hio_gpp_canopy_si_scpf(io_si,scpf) + &
n_perm2*ccohort%gpp_acc_hold
hio_ar_canopy_si_scpf(io_si,scpf) = hio_ar_canopy_si_scpf(io_si,scpf) + &
n_perm2*ccohort%resp_acc_hold
! growth increment
hio_ddbh_canopy_si_scpf(io_si,scpf) = hio_ddbh_canopy_si_scpf(io_si,scpf) + &
ccohort%ddbhdt*n_perm2*AREA
ccohort%ddbhdt*ccohort%n
! sum of all mortality
hio_mortality_canopy_si_scls(io_si,scls) = hio_mortality_canopy_si_scls(io_si,scls) + &
(ccohort%bmort + ccohort%hmort + ccohort%cmort + ccohort%imort + ccohort%fmort) * n_perm2*AREA
(ccohort%bmort + ccohort%hmort + ccohort%cmort + ccohort%imort + ccohort%fmort) * ccohort%n
hio_canopy_mortality_carbonflux_si(io_si) = hio_canopy_mortality_carbonflux_si(io_si) + &
(ccohort%bmort + ccohort%hmort + ccohort%cmort + ccohort%imort + ccohort%fmort) * &
ccohort%b * ccohort%n * 1e3 / (1e4 * daysecs * yeardays)
!
hio_leaf_md_canopy_si_scls(io_si,scls) = hio_leaf_md_canopy_si_scls(io_si,scls) + &
ccohort%leaf_md * n_perm2 * AREA
ccohort%leaf_md * ccohort%n
hio_root_md_canopy_si_scls(io_si,scls) = hio_root_md_canopy_si_scls(io_si,scls) + &
ccohort%root_md * n_perm2 * AREA
ccohort%root_md * ccohort%n
hio_carbon_balance_canopy_si_scls(io_si,scls) = hio_carbon_balance_canopy_si_scls(io_si,scls) + &
ccohort%carbon_balance * n_perm2 * AREA
ccohort%carbon_balance * ccohort%n
hio_seed_prod_canopy_si_scls(io_si,scls) = hio_seed_prod_canopy_si_scls(io_si,scls) + &
ccohort%seed_prod * n_perm2 * AREA
ccohort%seed_prod * ccohort%n
hio_dbalivedt_canopy_si_scls(io_si,scls) = hio_dbalivedt_canopy_si_scls(io_si,scls) + &
ccohort%dbalivedt * n_perm2 * AREA
ccohort%dbalivedt * ccohort%n
hio_dbdeaddt_canopy_si_scls(io_si,scls) = hio_dbdeaddt_canopy_si_scls(io_si,scls) + &
ccohort%dbdeaddt * n_perm2 * AREA
ccohort%dbdeaddt * ccohort%n
hio_dbstoredt_canopy_si_scls(io_si,scls) = hio_dbstoredt_canopy_si_scls(io_si,scls) + &
ccohort%dbstoredt * n_perm2 * AREA
ccohort%dbstoredt * ccohort%n
hio_storage_flux_canopy_si_scls(io_si,scls) = hio_storage_flux_canopy_si_scls(io_si,scls) + &
ccohort%storage_flux * n_perm2 * AREA
ccohort%storage_flux * ccohort%n
hio_npp_leaf_canopy_si_scls(io_si,scls) = hio_npp_leaf_canopy_si_scls(io_si,scls) + &
ccohort%npp_leaf * n_perm2 * AREA * yeardays
ccohort%npp_leaf * ccohort%n
hio_npp_froot_canopy_si_scls(io_si,scls) = hio_npp_froot_canopy_si_scls(io_si,scls) + &
ccohort%npp_froot * n_perm2 * AREA * yeardays
ccohort%npp_froot * ccohort%n
hio_npp_bsw_canopy_si_scls(io_si,scls) = hio_npp_bsw_canopy_si_scls(io_si,scls) + &
ccohort%npp_bsw * n_perm2 * AREA * yeardays
ccohort%npp_bsw * ccohort%n
hio_npp_bdead_canopy_si_scls(io_si,scls) = hio_npp_bdead_canopy_si_scls(io_si,scls) + &
ccohort%npp_bdead * n_perm2 * AREA * yeardays
ccohort%npp_bdead * ccohort%n
hio_npp_bseed_canopy_si_scls(io_si,scls) = hio_npp_bseed_canopy_si_scls(io_si,scls) + &
ccohort%npp_bseed * n_perm2 * AREA * yeardays
ccohort%npp_bseed * ccohort%n
hio_npp_store_canopy_si_scls(io_si,scls) = hio_npp_store_canopy_si_scls(io_si,scls) + &
ccohort%npp_store * n_perm2 * AREA * yeardays
ccohort%npp_store * ccohort%n
hio_yesterdaycanopylevel_canopy_si_scls(io_si,scls) = hio_yesterdaycanopylevel_canopy_si_scls(io_si,scls) + &
ccohort%canopy_layer_yesterday * n_perm2 * AREA
ccohort%canopy_layer_yesterday * ccohort%n
else
hio_bstor_understory_si_scpf(io_si,scpf) = hio_bstor_understory_si_scpf(io_si,scpf) + &
ccohort%bstore * n_perm2 * AREA
ccohort%bstore * ccohort%n
hio_bleaf_understory_si_scpf(io_si,scpf) = hio_bleaf_understory_si_scpf(io_si,scpf) + &
ccohort%bl * n_perm2 * AREA
ccohort%bl * ccohort%n
hio_understory_biomass_pa(io_pa) = hio_understory_biomass_pa(io_pa) + n_density * ccohort%b * 1.e3_r8
hio_mortality_understory_si_scpf(io_si,scpf) = hio_mortality_understory_si_scpf(io_si,scpf)+ &
(ccohort%bmort + ccohort%hmort + ccohort%cmort + ccohort%imort + ccohort%fmort) * n_perm2*AREA
hio_nplant_understory_si_scpf(io_si,scpf) = hio_nplant_understory_si_scpf(io_si,scpf) + AREA*n_perm2
hio_nplant_understory_si_scls(io_si,scls) = hio_nplant_understory_si_scls(io_si,scls) + AREA*n_perm2
(ccohort%bmort + ccohort%hmort + ccohort%cmort + ccohort%imort + ccohort%fmort) * ccohort%n
hio_nplant_understory_si_scpf(io_si,scpf) = hio_nplant_understory_si_scpf(io_si,scpf) + ccohort%n
hio_nplant_understory_si_scls(io_si,scls) = hio_nplant_understory_si_scls(io_si,scls) + ccohort%n
hio_gpp_understory_si_scpf(io_si,scpf) = hio_gpp_understory_si_scpf(io_si,scpf) + &
n_perm2*ccohort%gpp_acc_hold
hio_ar_understory_si_scpf(io_si,scpf) = hio_ar_understory_si_scpf(io_si,scpf) + &
n_perm2*ccohort%resp_acc_hold
! growth increment
hio_ddbh_understory_si_scpf(io_si,scpf) = hio_ddbh_understory_si_scpf(io_si,scpf) + &
ccohort%ddbhdt*n_perm2*AREA
ccohort%ddbhdt*ccohort%n
! sum of all mortality
hio_mortality_understory_si_scls(io_si,scls) = hio_mortality_understory_si_scls(io_si,scls) + &
(ccohort%bmort + ccohort%hmort + ccohort%cmort + ccohort%imort + ccohort%fmort) * n_perm2*AREA
(ccohort%bmort + ccohort%hmort + ccohort%cmort + ccohort%imort + ccohort%fmort) * ccohort%n
hio_understory_mortality_carbonflux_si(io_si) = hio_understory_mortality_carbonflux_si(io_si) + &
(ccohort%bmort + ccohort%hmort + ccohort%cmort + ccohort%imort + ccohort%fmort) * &
ccohort%b * ccohort%n * 1e3 / (1e4 * daysecs * yeardays)
!
hio_leaf_md_understory_si_scls(io_si,scls) = hio_leaf_md_understory_si_scls(io_si,scls) + &
ccohort%leaf_md * n_perm2 * AREA
ccohort%leaf_md * ccohort%n
hio_root_md_understory_si_scls(io_si,scls) = hio_root_md_understory_si_scls(io_si,scls) + &
ccohort%root_md * n_perm2 * AREA
ccohort%root_md * ccohort%n
hio_carbon_balance_understory_si_scls(io_si,scls) = hio_carbon_balance_understory_si_scls(io_si,scls) + &
ccohort%carbon_balance * n_perm2 * AREA
ccohort%carbon_balance * ccohort%n
hio_seed_prod_understory_si_scls(io_si,scls) = hio_seed_prod_understory_si_scls(io_si,scls) + &
ccohort%seed_prod * n_perm2 * AREA
ccohort%seed_prod * ccohort%n
hio_dbalivedt_understory_si_scls(io_si,scls) = hio_dbalivedt_understory_si_scls(io_si,scls) + &
ccohort%dbalivedt * n_perm2 * AREA
ccohort%dbalivedt * ccohort%n
hio_dbdeaddt_understory_si_scls(io_si,scls) = hio_dbdeaddt_understory_si_scls(io_si,scls) + &
ccohort%dbdeaddt * n_perm2 * AREA
ccohort%dbdeaddt * ccohort%n
hio_dbstoredt_understory_si_scls(io_si,scls) = hio_dbstoredt_understory_si_scls(io_si,scls) + &
ccohort%dbstoredt * n_perm2 * AREA
ccohort%dbstoredt * ccohort%n
hio_storage_flux_understory_si_scls(io_si,scls) = hio_storage_flux_understory_si_scls(io_si,scls) + &
ccohort%storage_flux * n_perm2 * AREA
ccohort%storage_flux * ccohort%n
hio_npp_leaf_understory_si_scls(io_si,scls) = hio_npp_leaf_understory_si_scls(io_si,scls) + &
ccohort%npp_leaf * n_perm2 * AREA * yeardays
ccohort%npp_leaf * ccohort%n
hio_npp_froot_understory_si_scls(io_si,scls) = hio_npp_froot_understory_si_scls(io_si,scls) + &
ccohort%npp_froot * n_perm2 * AREA * yeardays
ccohort%npp_froot * ccohort%n
hio_npp_bsw_understory_si_scls(io_si,scls) = hio_npp_bsw_understory_si_scls(io_si,scls) + &
ccohort%npp_bsw * n_perm2 * AREA * yeardays
ccohort%npp_bsw * ccohort%n
hio_npp_bdead_understory_si_scls(io_si,scls) = hio_npp_bdead_understory_si_scls(io_si,scls) + &
ccohort%npp_bdead * n_perm2 * AREA * yeardays
ccohort%npp_bdead * ccohort%n
hio_npp_bseed_understory_si_scls(io_si,scls) = hio_npp_bseed_understory_si_scls(io_si,scls) + &
ccohort%npp_bseed * n_perm2 * AREA * yeardays
ccohort%npp_bseed * ccohort%n
hio_npp_store_understory_si_scls(io_si,scls) = hio_npp_store_understory_si_scls(io_si,scls) + &
ccohort%npp_store * n_perm2 * AREA * yeardays
ccohort%npp_store * ccohort%n
hio_yesterdaycanopylevel_understory_si_scls(io_si,scls) = hio_yesterdaycanopylevel_understory_si_scls(io_si,scls) + &
ccohort%canopy_layer_yesterday * n_perm2 * AREA
ccohort%canopy_layer_yesterday * ccohort%n
endif
!
ccohort%canopy_layer_yesterday = real(ccohort%canopy_layer, r8)
Expand Down

0 comments on commit b9fd99e

Please sign in to comment.