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_size
ARGUMENTS:
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 columns
CALLED 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)