CSR Allocation -obsolete

From VLECK
Jump to: navigation, search

Once the primary production is known, the produced carbon is allocated to the various organs. When the phenological state is GROWING, then the allocation process gives priority to leaf-gowth; if the phenological state is ACCUMULATING, then the allocation process gives priority to building up reserve.

The allocation process transfers the carbon to the Metabolic Pool, and determines the shares reserved for each recipient. Next, each recipient is allowed to grow().


leaf priority

The fraction available for foliage growth is proportional to the realative LAI:


 
def _allocateLeafPriority(self, plant, shares):
 
    # mobilize reserves:
    CFLUSH = 0.2            # coefficient for leaf flush in spring       [d-1]
    plant.reserve.carbon.transferFractionTo(plant.metabolicPool.carbon, CFLUSH)
 
    # first priority: foliage growth
    FFL = limit((plant.LAImax - plant.LAI) / plant.LAImax)
    shares[plant.leaves] = FFL
 
    # if anything remaining: grow other components
    remaining = (1. - FFL) 
    self._calculateFixedShares(remaining, shares, plant)
 
    # skim off excess carbon to reserve: 
    surplus = plant.metabolicPool.carbon - CFLUSH * plant.reserve.carbon
    if (surplus > 0.): # TODO: needs threshold??
      plant.metabolicPool.carbon.transferTo(plant.reserve.carbon, surplus)



reserve priority

The fraction available for storage is proportional to the realative dry weight:

where

The minimum reserve is a fraction of the plant's dryWeight.


 
def _allocateReservePriority(self, plant, shares):
 
    CRSNX   = 4.
    WRSMX   = CRSNX * self._minimumReserve(plant) 
    FRS     = limit((WRSMX - plant.reserve.dryWeight) / WRSMX)
    shares[plant.reserve] = FRS
 
    # if anything remaining: grow other components
    remaining = (1. - FRS) 
    self._calculateFixedShares(remaining, shares, plant)
    # TODO: this could force excess carbon into growth when reserve is "full"