iLand
Public Member Functions | Static Public Member Functions | Friends | List of all members
Snag Class Reference

Snag deals with carbon / nitrogen fluxes from the forest until the reach soil pools. More...

#include <snag.h>

Public Member Functions

 Snag ()
 
void setup (const ResourceUnit *ru)
 initial setup routine. More...
 
void scaleInitialState ()
 used to scale the input to the actual area of the resource unit More...
 
void newYear ()
 to be executed at the beginning of a simulation year. This cleans up the transfer pools. More...
 
void calculateYear ()
 to be called at the end of the year (after tree growth, harvesting). Calculates flow to the soil. More...
 
bool isStateEmpty () const
 
bool isEmpty () const
 
const CNPoollabileFlux () const
 litter flux to the soil (kg/ha) More...
 
const CNPoolrefractoryFlux () const
 deadwood flux to the soil (kg/ha) More...
 
double labileFluxAbovegroundCarbon () const
 C input to the labile flux from aboveground sources (kg/ha) More...
 
double refractoryFluxAbovegroundCarbon () const
 C input of the input to the refractory (woody) flux from aboveground sources (kg/ha) More...
 
double climateFactor () const
 the 're' climate factor to modify decay rates (also used in ICBM/2N model) More...
 
double totalCarbon () const
 total carbon in snags (kg/RU): not scaled to 1ha!! More...
 
const CNPairtotalSWD () const
 sum of C and N in SWD pools (stems) kg/RU More...
 
const CNPairtotalOtherWood () const
 sum of C and N in other woody pools (branches + coarse roots) kg/RU More...
 
double otherWoodAbovegroundFraction () const
 fraction of branches in 'other' pools (0..1) More...
 
const CNPairfluxToAtmosphere () const
 total kg/RU heterotrophic respiration / flux to atm More...
 
const CNPairfluxToExtern () const
 total kg/RU harvests More...
 
const CNPairfluxToDisturbance () const
 total kg/RU due to disturbance (e.g. fire) More...
 
double freshDeciduousFoliage () const
 deciduous foliage litter (kg/ha) from the previous year More...
 
void addTurnoverLitter (const Species *species, const double litter_foliage, const double litter_fineroot)
 add for a tree with diameter More...
 
void addTurnoverWood (const Species *species, const double woody_biomass)
 
void addMortality (const Tree *tree)
 adds the 'tree' to the appropriate Snag pools. More...
 
void addHarvest (const Tree *tree, const double remove_stem_pct, const double remove_branch_pct, const double remove_foliage_pct)
 add residual biomass of 'tree' after harvesting. More...
 
void addDisturbance (const Tree *tree, const double stem_to_snag, const double stem_to_soil, const double branch_to_snag, const double branch_to_soil, const double foliage_to_soil)
 a tree dies and the biomass of the tree is split between snags/soils/removals More...
 
void addToSoil (const Species *species, const CNPair &woody_pool, const CNPair &litter_pool, double woody_aboveground_C, double fine_aboveground_C)
 add (died) biomass from the regeneration layer More...
 
void addBiomassToSoil (const CNPool &woody_pool, const CNPool &litter_pool)
 add non-tree biomass to soil (litter input). Inputs in kg/ha. decomposition rate in parameter value of CNPool. More...
 
void removeCarbon (const double factor)
 disturbance function: remove the fraction of 'factor' of biomass from the SWD pools; 0: remove nothing, 1: remove all More...
 
void management (const double factor)
 cut down swd and move to soil pools More...
 
QList< QVariant > debugList ()
 return a debug output More...
 

Static Public Member Functions

static void setupThresholds (const double lower, const double upper)
 setup class thresholds, needs to be called only once... (static) More...
 

Friends

class Snapshot
 

Detailed Description

Snag deals with carbon / nitrogen fluxes from the forest until the reach soil pools.

Snag lives on the level of the ResourceUnit; carbon fluxes from trees enter Snag, and parts of the biomass of snags is subsequently forwarded to the soil sub model. Carbon is stored in three classes (depending on the size) The Snag dynamics class uses the following species parameter: cnFoliage, cnFineroot, cnWood, snagHalflife, snagKSW

Constructor & Destructor Documentation

◆ Snag()

Snag::Snag ( )

Member Function Documentation

◆ addBiomassToSoil()

void Snag::addBiomassToSoil ( const CNPool woody_pool,
const CNPool litter_pool 
)

add non-tree biomass to soil (litter input). Inputs in kg/ha. decomposition rate in parameter value of CNPool.

◆ addDisturbance()

void Snag::addDisturbance ( const Tree tree,
const double  stem_to_snag,
const double  stem_to_soil,
const double  branch_to_snag,
const double  branch_to_soil,
const double  foliage_to_soil 
)
inline

a tree dies and the biomass of the tree is split between snags/soils/removals

Parameters
treethe tree to process
stem_to_snagfraction (0..1) of the stem biomass that should be moved to a standing snag
stem_to_soilfraction (0..1) of the stem biomass that should go directly to the soil
branch_to_snagfraction (0..1) of the branch biomass that should be moved to a standing snag
branch_to_soilfraction (0..1) of the branch biomass that should go directly to the soil
foliage_to_soilfraction (0..1) of the foliage biomass that should go directly to the soil

◆ addHarvest()

void Snag::addHarvest ( const Tree tree,
const double  remove_stem_fraction,
const double  remove_branch_fraction,
const double  remove_foliage_fraction 
)

add residual biomass of 'tree' after harvesting.

remove_(stem, branch, foliage)_pct: percentage of biomass compartment that is removed by the harvest operation. the harvested biomass is collected.

remove_{stem, branch, foliage}_fraction: percentage of biomass compartment that is removed by the harvest operation 0..1 records on harvested biomass is collected (mTotalToExtern-pool).

◆ addMortality()

void Snag::addMortality ( const Tree tree)

adds the 'tree' to the appropriate Snag pools.

after the death of the tree the five biomass compartments are processed.

◆ addToSoil()

void Snag::addToSoil ( const Species species,
const CNPair woody_pool,
const CNPair litter_pool,
double  woody_aboveground_C,
double  fine_aboveground_C 
)

add (died) biomass from the regeneration layer

◆ addTurnoverLitter()

void Snag::addTurnoverLitter ( const Species species,
const double  litter_foliage,
const double  litter_fineroot 
)

add for a tree with diameter

foliage and fineroot litter is transferred during tree growth.

◆ addTurnoverWood()

void Snag::addTurnoverWood ( const Species species,
const double  woody_biomass 
)

◆ calculateYear()

void Snag::calculateYear ( )

to be called at the end of the year (after tree growth, harvesting). Calculates flow to the soil.

do the yearly calculation see http://iland-model.org/snag+dynamics

◆ climateFactor()

double Snag::climateFactor ( ) const
inline

the 're' climate factor to modify decay rates (also used in ICBM/2N model)

◆ debugList()

QList< QVariant > Snag::debugList ( )

return a debug output

◆ fluxToAtmosphere()

const CNPair & Snag::fluxToAtmosphere ( ) const
inline

total kg/RU heterotrophic respiration / flux to atm

◆ fluxToDisturbance()

const CNPair & Snag::fluxToDisturbance ( ) const
inline

total kg/RU due to disturbance (e.g. fire)

◆ fluxToExtern()

const CNPair & Snag::fluxToExtern ( ) const
inline

total kg/RU harvests

◆ freshDeciduousFoliage()

double Snag::freshDeciduousFoliage ( ) const
inline

deciduous foliage litter (kg/ha) from the previous year

◆ isEmpty()

bool Snag::isEmpty ( ) const
inline

◆ isStateEmpty()

bool Snag::isStateEmpty ( ) const
inline

◆ labileFlux()

const CNPool & Snag::labileFlux ( ) const
inline

litter flux to the soil (kg/ha)

◆ labileFluxAbovegroundCarbon()

double Snag::labileFluxAbovegroundCarbon ( ) const
inline

C input to the labile flux from aboveground sources (kg/ha)

◆ management()

void Snag::management ( const double  factor)

cut down swd and move to soil pools

cut down swd (and branches) and move to soil pools

Parameters
factor0: cut 0%, 1: cut and slash 100% of the wood

◆ newYear()

void Snag::newYear ( )

to be executed at the beginning of a simulation year. This cleans up the transfer pools.

◆ otherWoodAbovegroundFraction()

double Snag::otherWoodAbovegroundFraction ( ) const
inline

fraction of branches in 'other' pools (0..1)

◆ refractoryFlux()

const CNPool & Snag::refractoryFlux ( ) const
inline

deadwood flux to the soil (kg/ha)

◆ refractoryFluxAbovegroundCarbon()

double Snag::refractoryFluxAbovegroundCarbon ( ) const
inline

C input of the input to the refractory (woody) flux from aboveground sources (kg/ha)

◆ removeCarbon()

void Snag::removeCarbon ( const double  factor)

disturbance function: remove the fraction of 'factor' of biomass from the SWD pools; 0: remove nothing, 1: remove all

disturbance function: remove the fraction of 'factor' of biomass from the SWD pools; 0: remove nothing, 1: remove all biomass removed by this function goes to the atmosphere

◆ scaleInitialState()

void Snag::scaleInitialState ( )

used to scale the input to the actual area of the resource unit

◆ setup()

void Snag::setup ( const ResourceUnit ru)

initial setup routine.

◆ setupThresholds()

void Snag::setupThresholds ( const double  lower,
const double  upper 
)
static

setup class thresholds, needs to be called only once... (static)

◆ totalCarbon()

double Snag::totalCarbon ( ) const
inline

total carbon in snags (kg/RU): not scaled to 1ha!!

◆ totalOtherWood()

const CNPair & Snag::totalOtherWood ( ) const
inline

sum of C and N in other woody pools (branches + coarse roots) kg/RU

◆ totalSWD()

const CNPair & Snag::totalSWD ( ) const
inline

sum of C and N in SWD pools (stems) kg/RU

Friends And Related Function Documentation

◆ Snapshot

friend class Snapshot
friend

The documentation for this class was generated from the following files: