INTERFACE:
subroutine CBalanceCheck(lbc, ubc, num_soilc, filter_soilc)DESCRIPTION:
On the radiation time step, perform carbon mass conservation check for column and pft
USES:
use clmtype use clm_time_manager, only: get_step_sizeARGUMENTS:
implicit none integer, intent(in) :: lbc, ubc ! column bounds integer, intent(in) :: num_soilc ! number of soil columns in filter integer, intent(in) :: filter_soilc(ubc-lbc+1) ! filter for soil columnsCALLED FROM:
subroutine clm_driver1REVISION HISTORY:
12/9/03: Created by Peter ThorntonLOCAL VARIABLES:
local pointers to implicit in arrays real(r8), pointer :: totcolc(:) ! (gC/m2) total column carbon, incl veg and cpool real(r8), pointer :: gpp(:) ! (gC/m2/s) gross primary production real(r8), pointer :: er(:) ! (gC/m2/s) total ecosystem respiration, autotrophic + heterotrophic real(r8), pointer :: col_fire_closs(:) ! (gC/m2/s) total column-level fire C loss real(r8), pointer :: col_hrv_xsmrpool_to_atm(:) ! excess MR pool harvest mortality (gC/m2/s) real(r8), pointer :: dwt_closs(:) ! (gC/m2/s) total carbon loss from product pools and conversion real(r8), pointer :: product_closs(:) ! (gC/m2/s) total wood product carbon loss local pointers to implicit out arrays real(r8), pointer :: col_cinputs(:) ! (gC/m2/s) total column-level carbon inputs (for balance check) real(r8), pointer :: col_coutputs(:) ! (gC/m2/s) total column-level carbon outputs (for balance check) real(r8), pointer :: col_begcb(:) ! carbon mass, beginning of time step (gC/m**2) real(r8), pointer :: col_endcb(:) ! carbon mass, end of time step (gC/m**2) real(r8), pointer :: col_errcb(:) ! carbon balance error for the timestep (gC/m**2) !OTHER LOCAL VARIABLES: integer :: c,err_index ! indices integer :: fc ! lake filter indices logical :: err_found ! error flag real(r8):: dt ! radiation time step (seconds)