Esempio n. 1
0
        /// <summary>Calculate and return the nitrogen demand (g/m2)</summary>
        public virtual BiomassPoolType CalculateNitrogenDemand()
        {
            double StructuralDemand = MinimumNConc.Value() * PotentialDMAllocation;
            double NDeficit         = Math.Max(0.0, MaximumNConc.Value() * (Live.Wt + PotentialDMAllocation) - Live.N - StructuralDemand);

            nitrogenDemand.Structural = StructuralDemand;
            nitrogenDemand.Storage    = NDeficit;

            return(nitrogenDemand);
        }
Esempio n. 2
0
        private void SetNSupply(object sender, EventArgs e)
        {
            double  LabileN   = Math.Max(0, StartLive.StorageN - StartLive.StorageWt * MinimumNConc.Value());
            Biomass Senescing = new Biomass();

            GetSenescingLeafBiomass(out Senescing);

            NSupply.Reallocation    = Senescing.StorageN * NReallocationFactor.Value();
            NSupply.Retranslocation = (LabileN - StartNReallocationSupply) * NRetranslocationFactor.Value();
            NSupply.Uptake          = 0.0;
        }
Esempio n. 3
0
        /// <summary>Calculate and return the nitrogen supply (g/m2)</summary>
        public virtual BiomassSupplyType CalculateNitrogenSupply()
        {
            double  LabileN   = Math.Max(0, StartLive.StorageN - StartLive.StorageWt * MinimumNConc.Value());
            Biomass Senescing = new Biomass();

            GetSenescingLeafBiomass(out Senescing);

            nitrogenSupply.Reallocation    = Senescing.StorageN * NReallocationFactor.Value();
            nitrogenSupply.Retranslocation = (LabileN - StartNReallocationSupply) * NRetranslocationFactor.Value();
            nitrogenSupply.Uptake          = 0.0;

            return(nitrogenSupply);
        }
Esempio n. 4
0
        private void SetNSupply(object sender, EventArgs e)
        {
            double LabileN           = Math.Max(0, StartLive.StorageN - StartLive.StorageWt * MinimumNConc.Value());
            double lrt               = LeafResidenceTime.Value();
            double senescingStorageN = cohort.SelectWhere(leaf => leaf.Age >= lrt, l => l.Live.StorageN);

            NSupply.Reallocation    = senescingStorageN * NReallocationFactor.Value();
            NSupply.Retranslocation = (LabileN - StartNReallocationSupply) * NRetranslocationFactor.Value();
            NSupply.Uptake          = 0.0;
        }