08.09.2014 Views

On the Ecology of Mountainous Forests in a Changing Climate: A ...

On the Ecology of Mountainous Forests in a Changing Climate: A ...

On the Ecology of Mountainous Forests in a Changing Climate: A ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

238 Appendix<br />

litter^.LN := kInitN[type] * m;<br />

litter^.LNNew := kInitN[type] * m;<br />

litter^.gLign := kLignA + kLignB;<br />

litter^.type := type;<br />

first := litter;<br />

END CreateLitterCohort;<br />

PROCEDURE DeleteLitterCohort( VAR first, cohort, prev: LitterPtr );<br />

(* for efficiency reasons, cohort = NIL is not tested *)<br />

BEGIN<br />

IF prev = NIL THEN (* first element to be deleted *)<br />

first := cohort^.next;<br />

Deallocate( cohort );<br />

cohort := first;<br />

ELSE<br />

prev^.next := cohort^.next;<br />

Deallocate( cohort );<br />

cohort := prev^.next;<br />

END;<br />

END DeleteLitterCohort;<br />

PROCEDURE DeleteAllCohorts( VAR first: LitterPtr );<br />

VAR coh: LitterPtr;<br />

BEGIN<br />

coh := first;<br />

WHILE coh NIL DO<br />

first := coh^.next;<br />

Deallocate( coh );<br />

coh := first;<br />

END; (* WHILE *)<br />

END DeleteAllCohorts;<br />

(*****************************************************)<br />

(* Procedures for decomposition and m<strong>in</strong>eralization *)<br />

(*****************************************************)<br />

PROCEDURE TransferLitterToHumus( VAR litter: LitterPtr );<br />

BEGIN<br />

HNNew := HNNew + litter^.LNNew;<br />

HOMNew := HOMNew + litter^.LOMNew;<br />

DeleteLitterCohort( first, litter, prev );<br />

END TransferLitterToHumus;<br />

PROCEDURE Immobilization;<br />

VAR lignToN, litMDelta, gLeach: REAL;<br />

litter: LitterPtr;<br />

BEGIN<br />

prev := NIL;<br />

litter := first;<br />

WHILE litter NIL DO<br />

WITH litter^ DO<br />

IF (type = wood) OR (type = twigs) THEN<br />

IF type = wood THEN mLoss := 0.03;<br />

ELSE mLoss := 0.2;<br />

END;<br />

litMDelta := mLoss * LOM;<br />

gImmob := kNC * litMDelta; (* nitrogen immobilization *)<br />

litterCO2 := litMDelta; (* CO2 evolution from litter *)<br />

totCO2 := totCO2 + litterCO2;<br />

LOMNew := LOM - litMDelta; (* update state variables *)<br />

LNNew := LN + gImmob; (* no nitrogen leach<strong>in</strong>g *)<br />

totNimmob := totNimmob + gImmob; (* net N immobilization *)<br />

gNMR := (LN + gImmob) / (LOM - litMDelta); (* new nitrogen conc. *)<br />

ELSE<br />

gLeach := kLeach * LN; (* nitrogen leach<strong>in</strong>g *)<br />

gNMR := LN / LOM; (* nitrogen concentration *)<br />

gLign := kLignA + kLignB * LOM/LOM<strong>in</strong>it;<br />

lignToN := gLign/gNMR;<br />

IF lignToN > k2/k4 THEN<br />

lignToN := k2/k4; (* avoid unreasonable decomposition *)<br />

Warn( "", "Lign<strong>in</strong>:N ratio is unrealistically high!", "" );<br />

END;<br />

mLoss := ( k1 + k2*uAET - (k3 + k4*uAET)*lignToN )/100.0 * decMlt;<br />

IF mLoss < 0.0 THEN Warn("","Negative decomposition!","") END;<br />

litMDelta := mLoss * LOM; (* LOM change *)<br />

gImmob := kNC * litMDelta; (* nitrogen immobilization *)<br />

gNMR := (LN - gLeach + gImmob) / (LOM-litMDelta); (* new N conc. *)<br />

IF gNMR >= kCritN[type] THEN (* recalculate weight loss *)<br />

mLoss := (kCritN[type] - LN/LOM)<br />

/ (gNMR - LN/LOM) * mLoss;<br />

litMDelta := mLoss * LOM;<br />

gImmob := kNC * litMDelta; (* nitrogen immobilization *)<br />

END;<br />

litterCO2 := litMDelta; (* CO2 evolution from litter *)<br />

totCO2 := totCO2 + litterCO2;<br />

LOMNew := LOM - litMDelta; (* state variables *)<br />

LNNew := LN - gLeach + gImmob;<br />

totNimmob := totNimmob - gLeach + gImmob; (* net N immobilization *)<br />

END;<br />

IF gNMR >= kCritN[type] THEN<br />

TransferLitterToHumus( litter );<br />

ELSE<br />

prev := litter; (* po<strong>in</strong>ter management *)<br />

litter := litter^.next;<br />

END;<br />

END; (* WITH *)<br />

END; (* WHILE *)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!