CAM
betrbgcmod Module Reference

Functions/Subroutines

subroutine, public surface_tracer_hydropath_update (betr_time, bounds, col, num_soilc, filter_soilc, biophysforc, betrtracer_vars, tracerstate_vars, tracercoeff_vars, tracerflux_vars, betr_status)
 
subroutine, public stage_tracer_transport (betr_time, bounds, col, pft, num_soilc, filter_soilc, num_soilp, filter_soilp, biophysforc, biogeo_state, biogeo_flux, aerecond_vars, betrtracer_vars, tracercoeff_vars, tracerboundarycond_vars, tracerstate_vars, tracerflux_vars, bgc_reaction, Rfactor, advection_on, betr_status)
 
subroutine, public tracer_gws_transport (betr_time, bounds, col, pft, num_soilc, filter_soilc, Rfactor, biophysforc, biogeo_flux, betrtracer_vars, tracerboundarycond_vars, tracercoeff_vars, tracerstate_vars, tracerflux_vars, bgc_reaction, advection_on, diffusion_on, betr_status)
 
subroutine tracer_solid_transport (betr_time, bounds, lbj, ubj, num_soilc, filter_soilc, hmconductance_col, dz, betrtracer_vars, tracerboundarycond_vars, tracerflux_vars, tracerstate_vars, betr_status)
 
subroutine tracer_gw_transport (betr_time, bounds, lbj, ubj, col, pft, jtops, num_soilc, filter_soilc, Rfactor, dz, zi, transp_pathway, advection_on, diffusion_on, betrtracer_vars, tracerboundarycond_vars, tracercoeff_vars, biophysforc, biogeo_flux, bgc_reaction, tracerstate_vars, tracerflux_vars, bstatus)
 
subroutine do_tracer_advection (betr_time, bounds, lbj, ubj, col, pft, jtops, num_soilc, filter_soilc, betrtracer_vars, dz, zi, dtime, biophysforc, biogeo_flux, tracercoeff_vars, tracerstate_vars, tracerflux_vars, bstatus)
 
subroutine do_tracer_gw_diffusion (bounds, lbj, ubj, jtops, num_soilc, filter_soilc, betrtracer_vars, ttracerboundarycond_vars, Rfactor, hmconductance_col, dz, dtime, tracerstate_vars, tracerflux_vars, bstatus)
 
logical function exit_loop_by_threshold (beg, end, datain, threshold, num_soilc, filter_soilc, update_col)
 
subroutine set_gwdif_rfactor (bounds, lbj, ubj, jtops, num_soilc, filter_soilc, tracercoeff_vars, betrtracer_vars, Rfactor, betr_status)
 
subroutine, public calc_ebullition (bounds, lbj, ubj, jtops, num_soilc, filter_soilc, forc_psrf, zi, dz, dtime, fracice, zwt, betrtracer_vars, tracercoeff_vars, tracerstate_vars, tracer_flx_ebu_col, ebullition_on, betr_status)
 
real(r8) function calc_gas_pressure (tracer_conc, aqu2bulkcef, henrycef)
 
subroutine calc_root_uptake_as_perfect_sink (bounds, lbj, ubj, num_soilc, filter_soilc, dtime_loc, dz, qflx_rootsoi, vtrans_scal, is_h2o, update_col, halfdt_col, tracer_conc, transp_mass_vr, transp_mass, bstatus)
 
subroutine calc_tracer_surface_runoff (betr_time, bounds, lbj, ubj, num_soilc, filter_soilc, fracice_top, dz_top2, biophysforc, betrtracer_vars, tracerstate_vars, tracercoeff_vars, tracerflux_vars, betr_status)
 
subroutine calc_tracer_h2osfc_snow_residual_combine (betr_time, bounds, col, num_soilc, filter_soilc, biophysforc, betrtracer_vars, tracerstate_vars, tracerflux_vars, betr_status)
 
subroutine, public diagnose_gas_pressure (bounds, lbj, ubj, num_soilc, filter_soilc, betrtracer_vars, tracercoeff_vars, tracerstate_vars, betr_status)
 
subroutine, public tracer_copy_a2b_div (bounds, num_snowc, filter_snowc, snl, tracer_in, tracer_copy)
 
subroutine, public tracer_copy_a2b_comb (bounds, num_snowc, filter_snowc, snl, tracer_in, tracer_copy)
 
subroutine, public tracer_col_mapping_div (bounds, num_snowc, filter_snowc, snl, transition_matrix, tracer_copy, tracer_out, bstatus)
 
subroutine, public tracer_col_mapping_comb (bounds, num_snowc, filter_snowc, snl, transition_matrix, tracer_copy, tracer_out, bstatus)
 

Variables

integer, parameter diffusion_scheme = 1
 
integer, parameter advection_scheme = 2
 
real(r8), parameter tiny_val = 1.e-20_r8
 
real(r8), parameter dtime_min = 1._r8
 
real(r8), parameter err_tol_transp = 1.e-8_r8
 
character(len= *), parameter mod_filename = __FILE__
 

Function/Subroutine Documentation

◆ calc_ebullition()

subroutine, public betrbgcmod::calc_ebullition ( type(bounds_type), intent(in)  bounds,
integer, intent(in)  lbj,
integer, intent(in)  ubj,
integer, dimension(bounds%begc: ), intent(in)  jtops,
integer, intent(in)  num_soilc,
integer, dimension(:), intent(in)  filter_soilc,
real(r8), dimension(bounds%begc: ), intent(in)  forc_psrf,
real(r8), dimension(bounds%begc: , lbj-1: ), intent(in)  zi,
real(r8), dimension(bounds%begc: , lbj: ), intent(in)  dz,
real(r8), intent(in)  dtime,
real(r8), dimension(bounds%begc: , lbj: ), intent(in)  fracice,
real(r8), dimension(bounds%begc: ), intent(in)  zwt,
class(betrtracer_type), intent(in)  betrtracer_vars,
type(tracercoeff_type), intent(in)  tracercoeff_vars,
type(tracerstate_type), intent(inout)  tracerstate_vars,
real(r8), dimension(bounds%begc:bounds%endc, 1:betrtracer_vars%nvolatile_tracers), intent(inout)  tracer_flx_ebu_col,
logical, intent(in)  ebullition_on,
type(betr_status_type), intent(out)  betr_status 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calc_gas_pressure()

real(r8) function betrbgcmod::calc_gas_pressure ( real(r8), intent(in)  tracer_conc,
real(r8), intent(in)  aqu2bulkcef,
real(r8), intent(in)  henrycef 
)
Here is the caller graph for this function:

◆ calc_root_uptake_as_perfect_sink()

subroutine betrbgcmod::calc_root_uptake_as_perfect_sink ( type(bounds_type), intent(in)  bounds,
integer, intent(in)  lbj,
integer, intent(in)  ubj,
integer, intent(in)  num_soilc,
integer, dimension(:), intent(in)  filter_soilc,
real(r8), dimension(bounds%begc: ), intent(in)  dtime_loc,
real(r8), dimension(bounds%begc: , lbj: ), intent(in)  dz,
real(r8), dimension(bounds%begc: , lbj: ), intent(in)  qflx_rootsoi,
real(r8), intent(in)  vtrans_scal,
logical, intent(in)  is_h2o,
logical, dimension(bounds%begc:bounds%endc), intent(in)  update_col,
logical, dimension(bounds%begc:bounds%endc), intent(in)  halfdt_col,
real(r8), dimension(bounds%begc: , lbj: ), intent(inout)  tracer_conc,
real(r8), dimension(bounds%begc: , lbj: ), intent(out)  transp_mass_vr,
real(r8), dimension(bounds%begc: ), intent(out)  transp_mass,
type(betr_status_type), intent(out)  bstatus 
)
private
Here is the caller graph for this function:

◆ calc_tracer_h2osfc_snow_residual_combine()

subroutine betrbgcmod::calc_tracer_h2osfc_snow_residual_combine ( class(betr_time_type), intent(in)  betr_time,
type(bounds_type), intent(in)  bounds,
type(betr_column_type), intent(in)  col,
integer, intent(in)  num_soilc,
integer, dimension(:), intent(in)  filter_soilc,
type(betr_biogeophys_input_type), intent(in)  biophysforc,
class(betrtracer_type), intent(in)  betrtracer_vars,
type(tracerstate_type), intent(inout)  tracerstate_vars,
type(tracerflux_type), intent(inout)  tracerflux_vars,
type(betr_status_type), intent(out)  betr_status 
)
Here is the caller graph for this function:

◆ calc_tracer_surface_runoff()

subroutine betrbgcmod::calc_tracer_surface_runoff ( class(betr_time_type), intent(in)  betr_time,
type(bounds_type), intent(in)  bounds,
integer, intent(in)  lbj,
integer, intent(in)  ubj,
integer, intent(in)  num_soilc,
integer, dimension(:), intent(in)  filter_soilc,
real(r8), dimension(bounds%begc:bounds%endc), intent(in)  fracice_top,
real(r8), dimension(bounds%begc:bounds%endc, 1:ubj), intent(in)  dz_top2,
type(betr_biogeophys_input_type), intent(in)  biophysforc,
class(betrtracer_type), intent(in)  betrtracer_vars,
type(tracerstate_type), intent(inout)  tracerstate_vars,
type(tracercoeff_type), intent(in)  tracercoeff_vars,
type(tracerflux_type), intent(inout)  tracerflux_vars,
type(betr_status_type), intent(out)  betr_status 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ diagnose_gas_pressure()

subroutine, public betrbgcmod::diagnose_gas_pressure ( type(bounds_type), intent(in)  bounds,
integer, intent(in)  lbj,
integer, intent(in)  ubj,
integer, intent(in)  num_soilc,
integer, dimension(:), intent(in)  filter_soilc,
class(betrtracer_type), intent(in)  betrtracer_vars,
type(tracercoeff_type), intent(in)  tracercoeff_vars,
type(tracerstate_type), intent(inout)  tracerstate_vars,
type(betr_status_type), intent(out)  betr_status 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ do_tracer_advection()

subroutine betrbgcmod::do_tracer_advection ( class(betr_time_type), intent(in)  betr_time,
type(bounds_type), intent(in)  bounds,
integer, intent(in)  lbj,
integer, intent(in)  ubj,
type(betr_column_type), intent(in)  col,
type(betr_patch_type), intent(in)  pft,
integer, dimension(bounds%begc: ), intent(in)  jtops,
integer, intent(in)  num_soilc,
integer, dimension(:), intent(in)  filter_soilc,
class(betrtracer_type), intent(in)  betrtracer_vars,
real(r8), dimension(bounds%begc: ,lbj: ), intent(in)  dz,
real(r8), dimension(bounds%begc: ,lbj-1: ), intent(in)  zi,
real(r8), intent(in)  dtime,
type(betr_biogeophys_input_type), intent(in)  biophysforc,
type(betr_biogeo_flux_type), intent(in)  biogeo_flux,
type(tracercoeff_type), intent(in)  tracercoeff_vars,
type(tracerstate_type), intent(inout)  tracerstate_vars,
type(tracerflux_type), intent(inout)  tracerflux_vars,
type(betr_status_type), intent(out)  bstatus 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ do_tracer_gw_diffusion()

subroutine betrbgcmod::do_tracer_gw_diffusion ( type(bounds_type), intent(in)  bounds,
integer, intent(in)  lbj,
integer, intent(in)  ubj,
integer, dimension(bounds%begc: ), intent(in)  jtops,
integer, intent(in)  num_soilc,
integer, dimension(:), intent(in)  filter_soilc,
class(betrtracer_type), intent(in)  betrtracer_vars,
type(tracerboundarycond_type), intent(in)  ttracerboundarycond_vars,
real(r8), dimension(bounds%begc: ,lbj: ,1: ), intent(in)  Rfactor,
real(r8), dimension(bounds%begc: , lbj: ,1: ), intent(in)  hmconductance_col,
real(r8), dimension(bounds%begc: ,lbj: ), intent(in)  dz,
real(r8), intent(in)  dtime,
type(tracerstate_type), intent(inout)  tracerstate_vars,
type(tracerflux_type), intent(inout)  tracerflux_vars,
type(betr_status_type), intent(out)  bstatus 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ exit_loop_by_threshold()

logical function betrbgcmod::exit_loop_by_threshold ( integer, intent(in)  beg,
integer, intent(in)  end,
real(r8), dimension(beg:end), intent(in)  datain,
real(r8), intent(in)  threshold,
integer, intent(in)  num_soilc,
integer, dimension(:), intent(in)  filter_soilc,
logical, dimension(beg:end), intent(inout)  update_col 
)
Here is the caller graph for this function:

◆ set_gwdif_rfactor()

subroutine betrbgcmod::set_gwdif_rfactor ( type(bounds_type), intent(in)  bounds,
integer, intent(in)  lbj,
integer, intent(in)  ubj,
integer, dimension(bounds%begc: ), intent(in)  jtops,
integer, intent(in)  num_soilc,
integer, dimension(:), intent(in)  filter_soilc,
type(tracercoeff_type), intent(in)  tracercoeff_vars,
class(betrtracer_type), intent(in)  betrtracer_vars,
real(r8), dimension(bounds%begc: ,lbj: ,1: ), intent(inout)  Rfactor,
type(betr_status_type), intent(out)  betr_status 
)
private
Here is the caller graph for this function:

◆ stage_tracer_transport()

subroutine, public betrbgcmod::stage_tracer_transport ( class(betr_time_type), intent(in)  betr_time,
type(bounds_type), intent(in)  bounds,
type(betr_column_type), intent(in)  col,
type(betr_patch_type), intent(in)  pft,
integer, intent(in)  num_soilc,
integer, dimension(:), intent(in)  filter_soilc,
integer, intent(in)  num_soilp,
integer, dimension(:), intent(in)  filter_soilp,
type(betr_biogeophys_input_type), intent(in)  biophysforc,
type(betr_biogeo_state_type), intent(inout)  biogeo_state,
type(betr_biogeo_flux_type), intent(in)  biogeo_flux,
type(betr_aerecond_type), intent(inout)  aerecond_vars,
class(betrtracer_type), intent(inout)  betrtracer_vars,
type(tracercoeff_type), intent(inout)  tracercoeff_vars,
type(tracerboundarycond_type), intent(inout)  tracerboundarycond_vars,
type(tracerstate_type), intent(in)  tracerstate_vars,
type(tracerflux_type), intent(inout)  tracerflux_vars,
class(bgc_reaction_type), intent(inout)  bgc_reaction,
real(r8), dimension(bounds%begc: , bounds%lbj: ,1: ), intent(out)  Rfactor,
logical, intent(in)  advection_on,
type(betr_status_type), intent(out)  betr_status 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ surface_tracer_hydropath_update()

subroutine, public betrbgcmod::surface_tracer_hydropath_update ( class(betr_time_type), intent(in)  betr_time,
type(bounds_type), intent(in)  bounds,
type(betr_column_type), intent(in)  col,
integer, intent(in)  num_soilc,
integer, dimension(:), intent(in)  filter_soilc,
type(betr_biogeophys_input_type), intent(in)  biophysforc,
class(betrtracer_type), intent(in)  betrtracer_vars,
type(tracerstate_type), intent(inout)  tracerstate_vars,
type(tracercoeff_type), intent(inout)  tracercoeff_vars,
type(tracerflux_type), intent(inout)  tracerflux_vars,
type(betr_status_type), intent(out)  betr_status 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ tracer_col_mapping_comb()

subroutine, public betrbgcmod::tracer_col_mapping_comb ( type(bounds_type), intent(in)  bounds,
integer, intent(in)  num_snowc,
integer, dimension(:), intent(in)  filter_snowc,
integer, dimension(bounds%begc:bounds%endc), intent(in)  snl,
real(r8), dimension(bounds%begc:bounds%endc,-nlevsno+1:1,-nlevsno+1:1), intent(in)  transition_matrix,
real(r8), dimension(bounds%begc:bounds%endc,-nlevsno+1:1), intent(in)  tracer_copy,
real(r8), dimension(bounds%begc:bounds%endc, -nlevsno+1:1), intent(out)  tracer_out,
type(betr_status_type), intent(out)  bstatus 
)
Here is the caller graph for this function:

◆ tracer_col_mapping_div()

subroutine, public betrbgcmod::tracer_col_mapping_div ( type(bounds_type), intent(in)  bounds,
integer, intent(in)  num_snowc,
integer, dimension(:), intent(in)  filter_snowc,
integer, dimension(bounds%begc:bounds%endc), intent(in)  snl,
real(r8), dimension(bounds%begc:bounds%endc,1:nlevsno,1:nlevsno), intent(in)  transition_matrix,
real(r8), dimension(bounds%begc:bounds%endc, 1:nlevsno), intent(in)  tracer_copy,
real(r8), dimension(bounds%begc:bounds%endc, -nlevsno+1:0), intent(out)  tracer_out,
type(betr_status_type), intent(out)  bstatus 
)
Here is the caller graph for this function:

◆ tracer_copy_a2b_comb()

subroutine, public betrbgcmod::tracer_copy_a2b_comb ( type(bounds_type), intent(in)  bounds,
integer, intent(in)  num_snowc,
integer, dimension(:), intent(in)  filter_snowc,
integer, dimension(bounds%begc:bounds%endc), intent(in)  snl,
real(r8), dimension(bounds%begc:bounds%endc, -nlevsno+1:1), intent(in)  tracer_in,
real(r8), dimension(bounds%begc:bounds%endc,-nlevsno+1:1), intent(out)  tracer_copy 
)
Here is the caller graph for this function:

◆ tracer_copy_a2b_div()

subroutine, public betrbgcmod::tracer_copy_a2b_div ( type(bounds_type), intent(in)  bounds,
integer, intent(in)  num_snowc,
integer, dimension(:), intent(in)  filter_snowc,
integer, dimension(bounds%begc:bounds%endc), intent(in)  snl,
real(r8), dimension(bounds%begc:bounds%endc, -nlevsno+1:0), intent(in)  tracer_in,
real(r8), dimension(bounds%begc:bounds%endc, 1:nlevsno), intent(out)  tracer_copy 
)
Here is the caller graph for this function:

◆ tracer_gw_transport()

subroutine betrbgcmod::tracer_gw_transport ( class(betr_time_type), intent(in)  betr_time,
type(bounds_type), intent(in)  bounds,
integer, intent(in)  lbj,
integer, intent(in)  ubj,
type(betr_column_type), intent(in)  col,
type(betr_patch_type), intent(in)  pft,
integer, dimension(bounds%begc: ), intent(in)  jtops,
integer, intent(in)  num_soilc,
integer, dimension(:), intent(in)  filter_soilc,
real(r8), dimension(bounds%begc: ,lbj: ,1: ), intent(in)  Rfactor,
real(r8), dimension(bounds%begc: ,lbj: ), intent(in)  dz,
real(r8), dimension(bounds%begc: ,lbj-1: ), intent(in)  zi,
integer, dimension(2), intent(in)  transp_pathway,
logical, intent(in)  advection_on,
logical, intent(in)  diffusion_on,
class(betrtracer_type), intent(in)  betrtracer_vars,
type(tracerboundarycond_type), intent(in)  tracerboundarycond_vars,
type(tracercoeff_type), intent(inout)  tracercoeff_vars,
type(betr_biogeophys_input_type), intent(in)  biophysforc,
type(betr_biogeo_flux_type), intent(in)  biogeo_flux,
class(bgc_reaction_type), intent(inout)  bgc_reaction,
type(tracerstate_type), intent(inout)  tracerstate_vars,
type(tracerflux_type), intent(inout)  tracerflux_vars,
type(betr_status_type), intent(out)  bstatus 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ tracer_gws_transport()

subroutine, public betrbgcmod::tracer_gws_transport ( class(betr_time_type), intent(in)  betr_time,
type(bounds_type), intent(in)  bounds,
type(betr_column_type), intent(in)  col,
type(betr_patch_type), intent(in)  pft,
integer, intent(in)  num_soilc,
integer, dimension(:), intent(in)  filter_soilc,
real(r8), dimension(bounds%begc: , bounds%lbj: ,1: ), intent(in)  Rfactor,
type(betr_biogeophys_input_type), intent(in)  biophysforc,
type(betr_biogeo_flux_type), intent(in)  biogeo_flux,
class(betrtracer_type), intent(inout)  betrtracer_vars,
type(tracerboundarycond_type), intent(inout)  tracerboundarycond_vars,
type(tracercoeff_type), intent(inout)  tracercoeff_vars,
type(tracerstate_type), intent(inout)  tracerstate_vars,
type(tracerflux_type), intent(inout)  tracerflux_vars,
class(bgc_reaction_type), intent(inout)  bgc_reaction,
logical, intent(in)  advection_on,
logical, intent(in)  diffusion_on,
type(betr_status_type), intent(out)  betr_status 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ tracer_solid_transport()

subroutine betrbgcmod::tracer_solid_transport ( class(betr_time_type), intent(in)  betr_time,
type(bounds_type), intent(in)  bounds,
integer, intent(in)  lbj,
integer, intent(in)  ubj,
integer, intent(in)  num_soilc,
integer, dimension(:), intent(in)  filter_soilc,
real(r8), dimension(bounds%begc: , lbj: ,1: ), intent(in)  hmconductance_col,
real(r8), dimension(bounds%begc: , lbj: ), intent(in)  dz,
class(betrtracer_type), intent(inout)  betrtracer_vars,
type(tracerboundarycond_type), intent(in)  tracerboundarycond_vars,
type(tracerflux_type), intent(in)  tracerflux_vars,
type(tracerstate_type), intent(inout)  tracerstate_vars,
type(betr_status_type), intent(out)  betr_status 
)
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ advection_scheme

integer, parameter betrbgcmod::advection_scheme = 2
private

◆ diffusion_scheme

integer, parameter betrbgcmod::diffusion_scheme = 1
private

◆ dtime_min

real(r8), parameter betrbgcmod::dtime_min = 1._r8
private

◆ err_tol_transp

real(r8), parameter betrbgcmod::err_tol_transp = 1.e-8_r8
private

◆ mod_filename

character(len=*), parameter betrbgcmod::mod_filename = __FILE__
private

◆ tiny_val

real(r8), parameter betrbgcmod::tiny_val = 1.e-20_r8
private