CSR Allocation -obsolete
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().
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)
The fraction available for storage is proportional to the realative dry weight:
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"