Skip to content
SindbadTEM.Variables Module

SindbadTEM.Variables

Submodule that exposes the canonical SINDBAD TEM variable catalog and convenience helpers such as sindbad_tem_variables, getVariableInfo, and whatIs.

Use this module when you need metadata about model variables (names, units, descriptions, and land fields) for documentation, IO, or diagnostics.

Functions

checkMissingVarInfo

SindbadTEM.Variables.checkMissingVarInfo Function
julia
checkMissingVarInfo(appr)

Check for missing variable information in the SINDBAD variable catalog for a given approach or model.

Description

The checkMissingVarInfo function identifies variables used in a SINDBAD model or approach that are missing detailed information in the SINDBAD variable catalog. It inspects the inputs and outputs of the model's methods (define, precompute, compute, update) and checks if their metadata (e.g., long_name, description, units) is properly defined. If any information is missing, it provides a warning and displays the missing details.

Arguments

  • appr: The SINDBAD model or approach to check for missing variable information. This can be a specific approach or a model containing multiple approaches.

  • if no argument is provided, it checks all approaches in the model.

Returns

  • nothing: The function does not return a value but prints warnings and missing variable details to the console.

Behavior

  • For a specific approach, it checks the inputs and outputs of the methods (define, precompute, compute, update) for missing variable information.

  • For a model, it recursively checks all sub-approaches for missing variable information.

  • If a variable is missing metadata, it displays the missing details and provides guidance for adding the variable to the SINDBAD variable catalog.

Example

julia
# Check for missing variable information in a specific approach
checkMissingVarInfo(ambientCO2_constant)

# Check for missing variable information in all approaches of a model
checkMissingVarInfo(cCycle)
Code
julia
function checkMissingVarInfo end

function checkMissingVarInfo(appr)
    if supertype(appr) == LandEcosystem
        foreach(subtypes(appr)) do sub_appr
            checkMissingVarInfo(sub_appr)
        end
    else
        in_out_model = getInOutModel(appr, verbose=false)
        d_methods = (:define, :precompute, :compute, :update)
        for d_method in d_methods
            inputs = in_out_model[d_method][:input]
            outputs = in_out_model[d_method][:output]
            io_list = unique([inputs..., outputs...])
            was_displayed = false
            miss_doc = false
            foreach(io_list) do io_item
                var_key = Symbol(String(first(io_item))*"__"*String(last(io_item)))
                var_info = getVariableInfo(var_key, "time")
                miss_doc = isempty(var_info["long_name"])
                if miss_doc
                    checkDisplayVariableDict(var_key, warn_msg=!was_displayed)
                    if !was_displayed
                        was_displayed = true
                        println("Approach: $(appr).jl\nMethod: $(d_method)\nKey: :$(var_key)\nPair: $(io_item)")
                    end
                    checkDisplayVariableDict(var_key, warn_msg=!was_displayed)

                end
            end
            if miss_doc
                println("--------------------------------")
            end
        end    
    end
    return nothing
end

function checkMissingVarInfo(appr)
    if supertype(appr) == LandEcosystem
        foreach(subtypes(appr)) do sub_appr
            checkMissingVarInfo(sub_appr)
        end
    else
        in_out_model = getInOutModel(appr, verbose=false)
        d_methods = (:define, :precompute, :compute, :update)
        for d_method in d_methods
            inputs = in_out_model[d_method][:input]
            outputs = in_out_model[d_method][:output]
            io_list = unique([inputs..., outputs...])
            was_displayed = false
            miss_doc = false
            foreach(io_list) do io_item
                var_key = Symbol(String(first(io_item))*"__"*String(last(io_item)))
                var_info = getVariableInfo(var_key, "time")
                miss_doc = isempty(var_info["long_name"])
                if miss_doc
                    checkDisplayVariableDict(var_key, warn_msg=!was_displayed)
                    if !was_displayed
                        was_displayed = true
                        println("Approach: $(appr).jl\nMethod: $(d_method)\nKey: :$(var_key)\nPair: $(io_item)")
                    end
                    checkDisplayVariableDict(var_key, warn_msg=!was_displayed)

                end
            end
            if miss_doc
                println("--------------------------------")
            end
        end    
    end
    return nothing
end

function checkMissingVarInfo()
    for sm in subtypes(LandEcosystem)
        for appr in subtypes(sm)
            if appr != LandEcosystem
                checkMissingVarInfo(appr)
            end
        end  
    end      
   return nothing
end

getUniqueVarNames

SindbadTEM.Variables.getUniqueVarNames Function
julia
getUniqueVarNames(var_pairs)

return the list of variable names to be used to write model outputs to a field. - checks if the variable name is duplicated across different fields of SINDBAD land

  • uses field__variablename in case of duplicates, else uses the actual model variable name
Code
julia
function getUniqueVarNames(var_pairs)
    pure_vars = getVarName.(var_pairs)
    fields = getVarField.(var_pairs)
    uniq_vars = Symbol[]
    for i in eachindex(pure_vars)
        n_occur = sum(pure_vars .== pure_vars[i])
        var_i = pure_vars[i]
        if n_occur > 1
            var_i = Symbol(String(fields[i]) * "__" * String(pure_vars[i]))
        end
        push!(uniq_vars, var_i)
    end
    return uniq_vars
end

getVarFull

SindbadTEM.Variables.getVarFull Function
julia
getVarFull(var_pair)

Return the variable full name used as the key in the catalog of sindbad_tem_variables from a pair consisting of the field and subfield of SINDBAD land. Convention is field__subfield of land.

Arguments

  • var_pair: A pair of (field, subfield) symbols

Returns

  • A Symbol in the form field__subfield
Code
julia
function getVarFull(var_pair)
    return Symbol(String(first(var_pair)) * "__" * String(last(var_pair)))
end

getVariableInfo

SindbadTEM.Variables.getVariableInfo Function
julia
getVariableInfo(vari_b, t_step="day")
getVariableInfo(vari_b::Symbol, t_step="day")

Retrieve detailed information about a SINDBAD variable from the variable catalog.

Arguments

  • vari_b: The variable name (either as a Symbol or in the form of field__subfield)

  • t_step: Time step of the variable (default: "day")

Returns

  • A dictionary containing the following information about the variable:
    • standard_name: The standard name of the variable

    • long_name: A longer description of the variable

    • units: The units of the variable (with time step replaced if applicable)

    • land_field: The field in the SINDBAD model where the variable is used

    • description: A detailed description of the variable

Notes

  • If the variable is provided as a pair, it is converted to the full variable key using getVarFull

  • Accesses sindbad_tem_variables catalog and defaultVariableInfo from SindbadTEM.Variables module

Code
julia
function getVariableInfo(vari_b, t_step="day")
    vname = getVarFull(vari_b)
    return getVariableInfo(vname, t_step)
end

function getVariableInfo(vari_b::Symbol, t_step="day")
    # Access Variables module safely - it may not be loaded during Processes.jl initialization
    catalog = try
        getfield(SindbadTEM, :Variables).sindbad_tem_variables
    catch
        # Return default info if Variables module is not yet loaded
        return Dict(
            "standard_name" => split(string(vari_b), "__")[2],
            "long_name" => "",
            "units" => "",
            "land_field" => split(string(vari_b), "__")[1],
            "description" => split(string(vari_b), "__")[2] * "_" * split(string(vari_b), "__")[1]
        )
    end
    default_info = try
        getfield(SindbadTEM, :Variables).defaultVariableInfo(true)
    catch
        # Return default info if Variables module is not yet loaded
        return Dict(
            "standard_name" => split(string(vari_b), "__")[2],
            "long_name" => "",
            "units" => "",
            "land_field" => split(string(vari_b), "__")[1],
            "description" => split(string(vari_b), "__")[2] * "_" * split(string(vari_b), "__")[1]
        )
    end
    default_keys = Symbol.(keys(default_info))
    o_varib = copy(default_info)
    if vari_b  keys(catalog)
        var_info = catalog[vari_b]
        var_fields = keys(var_info)
        all_fields = Tuple(unique([default_keys..., var_fields...]))
        for var_field  all_fields
            field_value = nothing
            if haskey(default_info, var_field)
                field_value = default_info[var_field]
            else
                field_value = var_info[var_field]
            end
            if haskey(var_info, var_field)
                var_prop = var_info[var_field]
                if !isnothing(var_prop) && length(var_prop) > 0
                    field_value = var_info[var_field]
                end
            end
            if var_field == :units
                if !isnothing(field_value)
                    field_value = replace(field_value, "time" => t_step)
                else
                    field_value = ""
                end
            end
            var_field_str = string(var_field)
            o_varib[var_field_str] = field_value
        end
    end
    if isempty(o_varib["standard_name"])
        o_varib["standard_name"] = split(string(vari_b), "__")[2]
    end
    if isempty(o_varib["description"])
        o_varib["description"] = split(string(vari_b), "__")[2] * "_" * split(string(vari_b), "__")[1]
    end
    return Dict(o_varib)
end

whatIs

SindbadTEM.Variables.whatIs Function
julia
whatIs(var_name::String)
whatIs(var_field::String, var_sfield::String)
whatIs(var_field::Symbol, var_sfield::Symbol)

A helper function to return the information of a SINDBAD variable

Arguments:

  • var_name: name of the variable

  • var_field: field of the variable

  • var_sfield: subfield of the variable

Code
julia
function whatIs end

function whatIs(var_name::String)
    @show var_name
    if startswith(var_name, "land")
        var_name = var_name[6:end]
    end
    var_field = string(split(var_name, ".")[1])
    var_sfield = string(split(var_name, ".")[2])
    var_full = getFullVariableKey(var_field, var_sfield)
    println("\nchecking $var_name as :$var_full in sindbad_tem_variables catalog...")
    checkDisplayVariableDict(var_full)
    return nothing
end

function whatIs(var_name::String)
    @show var_name
    if startswith(var_name, "land")
        var_name = var_name[6:end]
    end
    var_field = string(split(var_name, ".")[1])
    var_sfield = string(split(var_name, ".")[2])
    var_full = getFullVariableKey(var_field, var_sfield)
    println("\nchecking $var_name as :$var_full in sindbad_tem_variables catalog...")
    checkDisplayVariableDict(var_full)
    return nothing
end

function whatIs(var_name::Symbol)
    var_name = string(var_name)
    v_field = split(var_name, "__")[1]
    v_sfield = split(var_name, "__")[2]
    whatIs(string(v_field), string(v_sfield))
    return nothing
end

function whatIs(var_field::String, var_sfield::String)
    var_full = getFullVariableKey(var_field, var_sfield)
    println("\nchecking $var_field field and $var_sfield subfield as :$var_full in sindbad_tem_variables catalog...")
    checkDisplayVariableDict(var_full)
    return nothing
end

function whatIs(var_field::Symbol, var_sfield::Symbol)
    var_full = getFullVariableKey(string(var_field), string(var_sfield))
    println("\nchecking :$var_field field and :$var_sfield subfield as :$var_full in sindbad_tem_variables catalog...")
    checkDisplayVariableDict(var_full)
    return nothing
end

Variable Catalog (sindbad_tem_variables)

Variables are grouped by land_field into Fluxes / Pools / States / Diagnostics, with everything else under Others.

Fluxes

Show table (35)
standard_nameunitsdescriptionlong_nameKey
PETmm/timepotential evapotranspirationpotential_evapotranspirationfluxes__PET
auto_respirationgC/m2/timecarbon loss due to autotrophic respirationautotrophic_respirationfluxes__auto_respiration
auto_respiration_growthgC/m2/timegrowth respiration per vegetation poolgrowth_respirationfluxes__auto_respiration_growth
auto_respiration_maintaingC/m2/timemaintenance respiration per vegetation poolmaintenance_respirationfluxes__auto_respiration_maintain
base_runoffmm/timebase runoffbase_runofffluxes__base_runoff
c_eco_effluxgC/m2/timelosss of carbon from (live) vegetation pools due to autotrophic respirationautotrophic_carbon_lossfluxes__c_eco_efflux
c_eco_flowgC/m2/timeflow of carbon to a given carbon pool from other carbon poolsnet_carbon_flowfluxes__c_eco_flow
c_eco_influxgC/m2/timenet influx from allocation and efflux (npp) to each (live) carbon poolnet_carbon_influxfluxes__c_eco_influx
c_eco_nppgC/m2/timenpp of each carbon poolcarbon_net_primary_productivityfluxes__c_eco_npp
c_eco_outgC/m2/timeoutflux of carbon from each carbol pooltotal_carbon_lossfluxes__c_eco_out
ecosystem_respirationgC/m2/timecarbon loss due to ecosystem respirationtotal_ecosystem_respirationfluxes__eco_respiration
evaporationmm/timeevaporation from the first soil layersoil_evaporationfluxes__evaporation
evapotranspirationmm/timetotal land evaporation including soil evaporation, vegetation transpiration, snow sublimation, and interception losstotal_land_evaporationfluxes__evapotranspiration
gppgC/m2/timegross primary prorDcutivitygross_primary_productivityfluxes__gpp
gw_capillary_fluxmm/timecapillary flux from top groundwater layer to the lowermost soil layergroundwater_capillary_fluxfluxes__gw_capillary_flux
gw_rechargemm/timenet groundwater recharge from the lowermost soil layer, positive => soil to groundwatergroundwater_rechargefluxes__gw_recharge
hetero_respirationgC/m2/timecarbon loss due to heterotrophic respirationheterotrophic_respirationfluxes__hetero_respiration
interceptionmm/timeinterception evaporation lossinterception_lossfluxes__interception
interflow_runoffmm/timerunoff loss from interflow in soil layersinterflow_runofffluxes__interflow_runoff
neegC/m2/timenet ecosystem carbon exchange for the ecosystem. negative value indicates carbon sink.net_ecosystem_exchangefluxes__nee
nppgC/m2/timenet primary prorDcutivitycarbon_net_primary_productivityfluxes__npp
overland_runoffmm/timeoverland runoff as a fraction of incoming wateroverland_runofffluxes__overland_runoff
precipmm/timetotal land precipitation including snow and raintotal_precipirationfluxes__precip
rainmm/timeamount of precipitation in liquid formrainfallfluxes__rain
root_water_uptakemm/timeamount of water uptaken for transpiration per soil layerroot_water_uptakefluxes__root_water_uptake
runoffmm/timetotal runofftotal_runofffluxes__runoff
sat_excess_runoffmm/timesaturation excess runoffsaturation_excess_runofffluxes__sat_excess_runoff
snowmm/timeamount of precipitation in solid formsnowfallfluxes__snow
snow_meltmm/timesnow meltsnow_melt_fluxfluxes__snow_melt
soil_capillary_fluxmm/timesoil capillary flux per layersoil_capillary_fluxfluxes__soil_capillary_flux
sublimationmm/timesublimation of the snowsnow_sublimationfluxes__sublimation
surface_runoffmm/timetotal surface runofftotal_surface_runofffluxes__surface_runoff
transpirationmm/timetranspirationtranspirationfluxes__transpiration
zero_c_eco_flowgC/m2/timehelper for resetting c_eco_flow in every time stepzero_vector_for_c_eco_flowfluxes__zero_c_eco_flow
zero_c_eco_influxgC/m2/timehelper for resetting c_eco_influx in every time stepzero_vector_for_c_eco_influxfluxes__zero_c_eco_influx

Pools

Show table (24)
standard_nameunitsdescriptionlong_nameKey
TWSmmterrestrial water storage including all water poolsterrestrial_water_storagepools__TWS
cEcogC/m2carbon content of cEco pool(s)ecosystem_carbon_storage_contentpools__cEco
cLitgC/m2carbon content of cLit pool(s)litter_carbon_storage_contentpools__cLit
cLitFastgC/m2carbon content of cLitFast pool(s)litter_carbon_storage_content_fast_turnoverpools__cLitFast
litter_carbon_storage_content_slow_turnovergC/m2carbon content of cLitSlow pool(s)cLitSlowpools__cLitSlow
cSoilgC/m2carbon content of cSoil pool(s)soil_carbon_storage_contentpools__cSoil
cSoilOldgC/m2carbon content of cSoilOld pool(s)old_soil_carbon_storage_content_slow_turnoverpools__cSoilOld
cSoilSlowgC/m2carbon content of cSoilSlow pool(s)soil_carbon_storage_content_slow_turnoverpools__cSoilSlow
cVeggC/m2carbon content of cVeg pool(s)vegetation_carbon_storage_contentpools__cVeg
cVegLeafgC/m2carbon content of cVegLeaf pool(s)leaf_carbon_storage_contentpools__cVegLeaf
cVegReservegC/m2carbon content of cVegReserve pool(s) that does not respirereserve_carbon_storage_contentpools__cVegReserve
cVegRootgC/m2carbon content of cVegRoot pool(s)root_carbon_storage_contentpools__cVegRoot
cVegWoodgC/m2carbon content of cVegWood pool(s)wood_carbon_storage_contentpools__cVegWood
groundWmmwater storage in groundW pool(s)groundwater_storagepools__groundW
snowWmmwater storage in snowW pool(s)snow_water_equivalentpools__snowW
soilWmmwater storage in soilW pool(s)soil_moisture_storagepools__soilW
surfaceWmmwater storage in surfaceW pool(s)surface_water_storagepools__surfaceW
zeroΔTWSmmhelper variable to reset ΔTWS to zero in every time stepzero_with_size_pools__zeroΔTWS
ΔTWSmmchange in water storage in TWS pool(s)delta_change_TWSpools__ΔTWS
ΔcEcommchange in water storage in cEco pool(s)delta_change_cEcopools__ΔcEco
ΔgroundWmmchange in water storage in groundW pool(s)delta_change_groundWpools__ΔgroundW
ΔsnowWmmchange in water storage in snowW pool(s)delta_change_snowWpools__ΔsnowW
ΔsoilWmmchange in water storage in soilW pool(s)delta_change_soilWpools__ΔsoilW
ΔsurfaceWmmchange in water storage in surfaceW pool(s)delta_change_surfaceWpools__ΔsurfaceW

States

Show table (14)
standard_nameunitsdescriptionlong_nameKey
LAIm2/m2leaf area indexleaf_area_indexstates__LAI
PAWmmamount of water available for transpiration per soil layerplant_available_waterstates__PAW
Tair_prevdegree_Cair temperature in the previous time stepTair_previous_timestepstates__Tair_prev
WBPmmwater balance tracker pool that starts with rain and ends up with 0 after allocating to soil percolationwater_balance_poolstates__WBP
aboveground_biomassgC/m2carbon content on the cVegWood componentaboveground_woody_biomassstates__aboveground_biomass
ambient_CO2ppmambient co2 concentrationambient_CO2_concentrationstates__ambient_CO2
cEco_prevgC/m2ecosystem carbon content of the previous time stepecosystem_carbon_pool_previous_timestepstates__cEco_prev
c_remaingC/m2amount of carbon to keep in the ecosystem vegetation pools in case of disturbancescarbon_remainstates__c_remain
fAPARfractionfraction of absorbed photosynthetically active radiationfraction_absorbed_photosynthetic_radiationstates__fAPAR
frac_snowfractionfractional coverage of grid with snowfractional_snow_coverstates__frac_snow
frac_treefractionfractional coverage of grid with treesfractional_tree_coverstates__frac_tree
frac_vegetationfractionfractional coverage of grid with vegetationfractional_vegetation_coverstates__frac_vegetation
total_watermmsum of water storage across all componentstotal_waterstates__total_water
total_water_prevmmsum of water storage across all components in previous time steptotal_water_previousstates__total_water_prev

Diagnostics

Show table (55)
standard_nameunitsdescriptionlong_nameKey
C_to_N_cVegratiocarbon to nitrogen ratio in the vegetation poolscarbon_to_nitrogen_ratiodiagnostics__C_to_N_cVeg
WUEgC/mmH2Owater use efficiency of the ecosystemecosystem_water_use_efficiencydiagnostics__WUE
WUENoCO2gC/mmH2Owater use efficiency of the ecosystem without CO2 effectecosystem_water_use_efficiency_without_co2_effectdiagnostics__WUENoCO2
auto_respiration_f_airTscalareffect of air temperature on autotrophic respiration. 0: no decomposition, >1 increase in decomposition rateair_temperature_effect_autotrophic_respirationdiagnostics__auto_respiration_f_airT
c_allocationfractionfraction of gpp allocated to different (live) carbon poolscabon_allocationdiagnostics__c_allocation
c_allocation_f_LAIfractioneffect of LAI on carbon allocation. 1: no stress, 0: complete stressLAI_effect_carbon_allocationdiagnostics__c_allocation_f_LAI
c_allocation_f_W_Nfractioneffect of water and nutrient on carbon allocation. 1: no stress, 0: complete stressW_N_effect_carbon_allocationdiagnostics__c_allocation_f_W_N
c_allocation_f_cloudfractioneffect of cloud on carbon allocation. 1: no stress, 0: complete stresscloud_effect_carbon_allocationdiagnostics__c_allocation_f_cloud
c_allocation_f_soilTscalareffect of soil temperature on carbon allocation. 1: no stress, 0: complete stresssoil_temperature_effect_carbon_allocationdiagnostics__c_allocation_f_soilT
c_allocation_f_soilWfractioneffect of soil moisture on carbon allocation. 1: no stress, 0: complete stresssoil_moisture_effect_carbon_allocationdiagnostics__c_allocation_f_soilW
c_eco_k/timedecomposition rate of carbon per poolcarbon_decomposition_ratediagnostics__c_eco_k
c_eco_k_base/timebase carbon decomposition rate of the carbon poolsc eco k basediagnostics__c_eco_k_base
c_eco_k_f_LAIfractioneffect of LAI on carbon decomposition rate. 1: no stress, 0: complete stressLAI_effect_carbon_decomposition_ratediagnostics__c_eco_k_f_LAI
c_eco_k_f_soilTscalareffect of soil temperature on heterotrophic respiration respiration. 0: no decomposition, >1 increase in decompositionsoil_temperature_effect_carbon_decomposition_ratediagnostics__c_eco_k_f_soilT
c_eco_k_f_soilWfractioneffect of soil moisture on carbon decomposition rate. 1: no stress, 0: complete stresssoil_moisture_effect_carbon_decomposition_ratediagnostics__c_eco_k_f_soilW
c_eco_k_f_soil_propsfractioneffect of soil_props on carbon decomposition rate. 1: no stress, 0: complete stresssoil_property_effect_carbon_decomposition_ratediagnostics__c_eco_k_f_soil_props
c_eco_k_f_veg_propsfractioneffect of veg_props on carbon decomposition rate. 1: no stress, 0: complete stressvegetation_property_effect_carbon_decomposition_ratediagnostics__c_eco_k_f_veg_props
c_eco_τyearsnumber of years needed for carbon turnover per carbon poolcarbon_turnover_per_pooldiagnostics__c_eco_τ
c_flow_A_arrayfractionan array indicating the flow direction and connections across different pools, with elements larger than 0 indicating flow from column pool to row poolcarbon_flow_arraydiagnostics__c_flow_A_array
c_flow_A_vecfractionfraction of the carbon loss fron a (giver) pool that flows to a (taker) poolcarbon_flow_vectordiagnostics__c_flow_A_vec
c_flow_E_arrayfractionan array containing the efficiency of each flow in the c_flow_A_arraycarbon_flow_efficiency_arraydiagnostics__c_flow_E_array
eco_stressorfractionecosystem stress on carbon flowcarbon_flow_ecosystem_stressordiagnostics__eco_stressor
eco_stressor_prevfractionecosystem stress on carbon flow in the previous time stepcarbon_flow_ecosystem_stressor_previous_timestepdiagnostics__eco_stressor_prev
gpp_climate_stressorsfractiona collection of all gpp climate stressors including light, temperature, radiation, and vpdclimate_effect_per_factor_gppdiagnostics__gpp_climate_stressors
gpp_demandgC/m2/timedemand driven gross primary prorDuctivitydemand_driven_gppdiagnostics__gpp_demand
gpp_f_airTfractioneffect of air temperature on gpp. 1: no stress, 0: complete stressair_temperature_effect_gppdiagnostics__gpp_f_airT
gpp_f_climatefractioneffect of climate on gpp. 1: no stress, 0: complete stressnet_climate_effect_gppdiagnostics__gpp_f_climate
gpp_f_cloudfractioneffect of cloud on gpp. 1: no stress, 0: complete stresscloudiness_index_effect_gppdiagnostics__gpp_f_cloud
gpp_f_lightfractioneffect of light on gpp. 1: no stress, 0: complete stresslight_effect_gppdiagnostics__gpp_f_light
gpp_f_soilWfractioneffect of soil moisture on gpp. 1: no stress, 0: complete stresssoil_moisture_effect_gppdiagnostics__gpp_f_soilW
gpp_f_vpdfractioneffect of vpd on gpp. 1: no stress, 0: complete stressvapor_pressure_deficit_effect_gppdiagnostics__gpp_f_vpd
gpp_potentialgC/m2/timepotential gross primary prorDcutivitypotential_productivitydiagnostics__gpp_potential
k_respiration_maintain/timemetabolism rate for maintenance respirationloss_rate_maintenance_respirationdiagnostics__k_respiration_maintain
k_respiration_maintain_su/timemetabolism rate for maintenance respiration to be used in old analytical solution to steady stateloss_rate_maintenance_respiration_spinupdiagnostics__k_respiration_maintain_su
k_shedding_leaf/timeloss rate of carbon flow from leaf to littercarbon_shedding_rate_leafdiagnostics__k_shedding_leaf
k_shedding_leaf_fracfractionfraction of carbon loss from leaf that flows to litter poolcarbon_shedding_fraction_leafdiagnostics__k_shedding_leaf_frac
k_shedding_root/timeloss rate of carbon flow from root to littercarbon_shedding_rate_rootdiagnostics__k_shedding_root
k_shedding_root_fracfractionfraction of carbon loss from root that flows to litter poolcarbon_shedding_fraction_rootdiagnostics__k_shedding_root_frac
leaf_to_reserve/timeloss rate of carbon flow from leaf to reservecarbon_flow_rate_leaf_to_reservediagnostics__leaf_to_reserve
leaf_to_reserve_fracfractionfraction of carbon loss from leaf that flows to leafcarbon_flow_fraction_leaf_to_reservediagnostics__leaf_to_reserve_frac
max_root_depthmmmaximum depth of rootmaximum_rooting_depthdiagnostics__max_root_depth
p_E_vec``carbon flow efficiencyp E vecdiagnostics__p_E_vec
p_F_vecfractioncarbon flow efficiency fractionp F vecdiagnostics__p_F_vec
reserve_to_leaf/timeloss rate of carbon flow from reserve to rootcarbon_flow_rate_reserve_to_leafdiagnostics__reserve_to_leaf
reserve_to_leaf_fracfractionfraction of carbon loss from reserve that flows to leafcarbon_flow_fraction_reserve_to_leafdiagnostics__reserve_to_leaf_frac
reserve_to_root/timeloss rate of carbon flow from reserve to rootcarbon_flow_rate_reserve_to_rootdiagnostics__reserve_to_root
reserve_to_root_fracfractionfraction of carbon loss from reserve that flows to rootcarbon_flow_fraction_reserve_to_rootdiagnostics__reserve_to_root_frac
root_to_reserve/timeloss rate of carbon flow from root to reservecarbon_flow_rate_root_to_reservediagnostics__root_to_reserve
root_to_reserve_fracfractionfraction of carbon loss from root that flows to reservecarbon_flow_fraction_root_to_reservediagnostics__root_to_reserve_frac
root_water_efficiencyfractiona efficiency like number that indicates the ease/fraction of soil water that can extracted by the root per layerroot_water_efficiencydiagnostics__root_water_efficiency
slope_eco_stressor/timepotential rate of change in ecosystem stress on carbon flowslope_carbon_flow_ecosystem_stressordiagnostics__slope_eco_stressor
transpiration_supplymmtotal amount of water available in soil for transpirationsupply_moisture_for_transpirationdiagnostics__transpiration_supply
water_balancemmmisbalance of the water for the given time step calculated as the differences between total input, output and change in storageswater_balance_errordiagnostics__water_balance
ηAnumberscalar of autotrophic carbon pool for steady state guesseta_autotrophic_poolsdiagnostics__ηA
ηHnumberscalar of heterotrophic carbon pool for steady state guesseta_heterotrophic_poolsdiagnostics__ηH

Others

Show table (78)

callocation (4)

standard_nameunitsdescriptionlong_nameKey
cVeg_namesstringname of vegetation carbon pools used for carbon allocationname_veg_poolscAllocation__cVeg_names
cVeg_nzixnumbernumber of pools/layers in each vegetation carbon componentnumber_per_veg_poolcAllocation__cVeg_nzix
cVeg_zixnumbernumber of pools/layers in each vegetation carbon componentindex_veg_poolscAllocation__cVeg_zix
c_allocation_to_vegfractioncarbon allocation to each vvegetation poolcarbon_allocation_vegcAllocation__c_allocation_to_veg

callocationtreefraction (1)

standard_nameunitsdescriptionlong_nameKey
cVeg_names_for_c_allocation_frac_treestringname of vegetation carbon pools used in tree fraction correction for carbon allocationveg_pools_corrected_for_tree_covercAllocationTreeFraction__cVeg_names_for_c_allocation_frac_tree

ccycle (1)

standard_nameunitsdescriptionlong_nameKey
zixVegintegera vector of indices for vegetation pools within the array of carbon pools in cEcoindex_veg_poolscCycle__zixVeg

ccycleconsistency (4)

standard_nameunitsdescriptionlong_nameKey
giver_lower_indicesnumberindices of carbon pools whose flow is >0 below the diagonal in carbon flow matrixcarbon_giver_lower_indicescCycleConsistency__giver_lower_indices
giver_lower_uniquenumberunique indices of carbon pools whose flow is >0 below the diagonal in carbon flow matrixcarbon_giver_lower_unique_indicescCycleConsistency__giver_lower_unique
giver_upper_indicesnumberindices of carbon pools whose flow is >0 above the diagonal in carbon flow matrixcarbon_giver_upper_indicescCycleConsistency__giver_upper_indices
giver_upper_uniquenumberunique indices of carbon pools whose flow is >0 above the diagonal in carbon flow matrixcarbon_giver_upper_unique_indicescCycleConsistency__giver_upper_unique

ccycledisturbance (2)

standard_nameunitsdescriptionlong_nameKey
c_lose_to_zix_vec``index_carbon_loss_to_poolcCycleDisturbance__c_lose_to_zix_vec
zix_veg_all``index_all_veg_poolscCycleDisturbance__zix_veg_all

cflow (3)

standard_nameunitsdescriptionlong_nameKey
aSrcstringname of the source pool for the carbon flowcarbon_source_pool_namecFlow__aSrc
aTrgstringname of the target pool for carbon flowcarbon_target_pool_namecFlow__aTrg
c_flow_A_vec_indnumberindices of flow from giver to taker for carbon flow vectorindex_carbon_flow_vectorcFlow__c_flow_A_vec_ind

constants (12)

standard_nameunitsdescriptionlong_nameKey
c_flow_ordernumberorder of pooling while calculating the carbon flowcarbon_flow_orderconstants__c_flow_order
c_givernumberindex of the source carbon pool for a given flowcarbon_giver_poolconstants__c_giver
c_takernumberindex of the source carbon pool for a given flowcarbon_taker_poolconstants__c_taker
n_TWSnumbertotal number of water poolsnum_layers_TWSconstants__n_TWS
n_groundWnumbertotal number of layers in groundwater poolnum_layers_groundWconstants__n_groundW
n_snowWnumbertotal number of layers in snow poolnum_layers_snowWconstants__n_snowW
n_soilWnumbertotal number of layers in soil moisture poolnum_layers_soilWconstants__n_soilW
n_surfaceWnumbertotal number of layers in surface water poolnum_layers_surfaceWconstants__n_surfaceW
o_onenumbera helper type stable 1 to be used across all modelstype_stable_oneconstants__o_one
t_threenumbera type stable 3t threeconstants__t_three
t_twonumbera type stable 2t twoconstants__t_two
z_zeronumbera helper type stable 0 to be used across all modelstype_stable_zeroconstants__z_zero

drainage (1)

standard_nameunitsdescriptionlong_nameKey
drainagemm/timesoil moisture drainage per soil layersoil_moisture_drainagefluxes__drainage

evaporation (1)

standard_nameunitsdescriptionlong_nameKey
PET_evaporationmm/timepotential soil evaporationpotential_soil_evaporationfluxes__PET_evaporation

gppdiffradiation (2)

standard_nameunitsdescriptionlong_nameKey
CI_maxfractionmaximum of cloudiness index until the time step from the beginning of simulation (including spinup)maximum_cloudiness_indexgppDiffRadiation__CI_max
CI_minfractionminimum of cloudiness index until the time step from the beginning of simulation (including spinup)minimum_cloudiness_indexgppDiffRadiation__CI_min

models (3)

standard_nameunitsdescriptionlong_nameKey
c_modelsymbola base carbon cycle model to loop through the pools and fill the main or component pools needed for using static arrays. A mandatory field for every carbon model realizationbase_carbon_modelmodels__c_model
unsat_k_modelsymbolname of the model used to calculate unsaturated hydraulic conductivityunsat k modelmodels__unsat_k_model
w_modelsymbola base water cycle model to loop through the pools and fill the main or component pools needed for using static arrays. A mandatory field for every water model/pool realizationw modelmodels__w_model

percolation (1)

standard_nameunitsdescriptionlong_nameKey
percolationmm/timeamount of moisture percolating to the top soil layersoil_water_percolationfluxes__percolation

properties (42)

standard_nameunitsdescriptionlong_nameKey
LIGEFFfractionLIGEFFproperties__LIGEFF
LIGNINfractionLIGNINproperties__LIGNIN
LITC2NfractionLITC2Nproperties__LITC2N
MTFfractionMTFproperties__MTF
SCLIGNINfractionSCLIGNINproperties__SCLIGNIN
cumulative_soil_depthsmmthe depth to the bottom of each soil layercumulative_soil_depthproperties__cumulative_soil_depths
k_fcmm/timehydraulic conductivity of soil at field capacity per layerk_field_capacityproperties__k_fc
k_satmm/timehydraulic conductivity of soil at saturation per layerk_saturatedproperties__k_sat
k_wpmm/timehydraulic conductivity of soil at wilting point per layerk_wilting_pointproperties__k_wp
soil_layer_thicknessmmthickness of each soil layersoil_thickness_per_layerproperties__soil_layer_thickness
soil_αnumberalpha parameter of soil per layersoil_αproperties__soil_α
soil_βnumberbeta parameter of soil per layersoil_βproperties__soil_β
sp_k_fcmm/timecalculated/input hydraulic conductivity of soil at field capacity per layersoil_property_k_fcproperties__sp_k_fc
sp_k_satmm/timecalculated/input hydraulic conductivity of soil at saturation per layersoil_property_k_saturatedproperties__sp_k_sat
sp_k_wpmm/timecalculated/input hydraulic conductivity of soil at wilting point per layersoil_property_k_wilting_pointproperties__sp_k_wp
sp_αnumbercalculated/input alpha parameter of soil per layersoil_property_αproperties__sp_α
sp_βnumbercalculated/input beta parameter of soil per layersoil_property_βproperties__sp_β
sp_θ_fcm3/m3calculated/input moisture content of soil at field capacity per layersoil_property_θ_field_capacityproperties__sp_θ_fc
sp_θ_satm3/m3calculated/input moisture content of soil at saturation (porosity) per layersoil_property_θ_saturatedproperties__sp_θ_sat
sp_θ_wpm3/m3calculated/input moisture content of soil at wilting point per layersoil_property_θ_wilting_pointproperties__sp_θ_wp
sp_ψ_fcmcalculated/input matric potential of soil at field capacity per layersoil_property_ψ_field_capacityproperties__sp_ψ_fc
sp_ψ_satmcalculated/input matric potential of soil at saturation per layersoil_property_ψ_saturatedproperties__sp_ψ_sat
sp_ψ_wpmcalculated/input matric potential of soil at wiliting point per layersoil_property_ψ_wilting_pointproperties__sp_ψ_wp
st_clayfractionfraction of clay content in the soilsoil_texture_clayproperties__st_clay
st_orgmfractionfraction of organic matter content in the soil per layersoil_texture_orgmproperties__st_orgm
st_sandfractionfraction of sand content in the soil per layersoil_texture_sandproperties__st_sand
st_siltfractionfraction of silt content in the soil per layersoil_texture_siltproperties__st_silt
w_awcmmmaximum amount of water available for vegetation/transpiration per soil layer (w_sat-_wp)w_available_water_capacityproperties__w_awc
w_fcmmamount of water in the soil at field capacity per layerw_field_capacityproperties__w_fc
w_satmmamount of water in the soil at saturation per layerw_saturatedproperties__w_sat
w_wpmmamount of water in the soil at wiliting point per layerwilting_pointproperties__w_wp
θ_fcm3/m3moisture content of soil at field capacity per layerθ_field_capacityproperties__θ_fc
θ_satm3/m3moisture content of soil at saturation (porosity) per layerθ_saturatedproperties__θ_sat
θ_wpm3/m3moisture content of soil at wilting point per layerθ_wilting_pointproperties__θ_wp
ψ_fcmmatric potential of soil at field capacity per layerψ_field_capacityproperties__ψ_fc
ψ_satmmatric potential of soil at saturation per layerψ_saturatedproperties__ψ_sat
ψ_wpmmatric potential of soil at wiliting point per layerψ_wilting_pointproperties__ψ_wp
∑soil_depthmmtotal depth of soiltotal_depth_of_soil_columnproperties__∑soil_depth
∑available_water_capacitymmtotal amount of water available for vegetation/transpiration∑available_water_capacityproperties__∑w_awc
∑w_fcmmtotal amount of water in the soil at field capacity∑w_field_capacityproperties__∑w_fc
∑w_satmmtotal amount of water in the soil at saturation∑w_saturatedproperties__∑w_sat
∑w_wpmmtotal amount of water in the soil at wiliting point∑wilting_pointproperties__∑w_wp

rootwaterefficiency (1)

standard_nameunitsdescriptionlong_nameKey
root_overbooleana boolean indicating if the root is allowed to exract water from a given layer depending on maximum rooting depthis_root_overrootWaterEfficiency__root_over