コード例 #1
0
 //---------------------------------------------------------------------
 /// <summary>
 /// Weathering of rock phosphorus (rate is user-defined), increasing
 /// mineral phosphorus and reducing rock phosphorus.
 /// </summary>
 public static void Weathering(IEcoregion ecoregion,
                               Rock rock,
                               MineralSoil mineralSoil)
 {
     rock.WeatheredMineralP = rock.ContentP * EcoregionData.WeatheringP[ecoregion];
     rock.ContentP = Math.Max(rock.ContentP - rock.WeatheredMineralP, 0);
     mineralSoil.ContentP += rock.WeatheredMineralP;
 }
コード例 #2
0
        //---------------------------------------------------------------------
        /// <summary>
        /// Initializes the module.
        /// </summary>
        public static void Initialize()
        {
            cohorts             = Model.Core.Landscape.NewSiteVar<SiteCohorts>();
            availableN          = Model.Core.Landscape.NewSiteVar<double>();
            unavailable         = Model.Core.Landscape.NewSiteVar<Pool>();
            fineRoots           = Model.Core.Landscape.NewSiteVar<Pool>();
            coarseRoots         = Model.Core.Landscape.NewSiteVar<Pool>();
            woodyDebris         = Model.Core.Landscape.NewSiteVar<PoolD>();
            litter              = Model.Core.Landscape.NewSiteVar<List<PoolD>>();
            deadFineRoots       = Model.Core.Landscape.NewSiteVar<List<PoolD>>();
            litterAdd           = Model.Core.Landscape.NewSiteVar<List<PoolD>>();
            deadFineRootsAdd    = Model.Core.Landscape.NewSiteVar<List<PoolD>>();
            removeLitter        = Model.Core.Landscape.NewSiteVar<List<PoolD>>();
            removeDeadFineRoots = Model.Core.Landscape.NewSiteVar<List<PoolD>>();
            soilOrganicMatter   = Model.Core.Landscape.NewSiteVar<SoilOrganicMatter>();
            mineralSoil         = Model.Core.Landscape.NewSiteVar<MineralSoil>();
            charcoal            = Model.Core.Landscape.NewSiteVar<Charcoal>();
            rock                = Model.Core.Landscape.NewSiteVar<Rock>();
            //fireSeverity        = Model.Core.Landscape.NewSiteVar<int>();

            TotalWoodBiomass    = Model.Core.Landscape.NewSiteVar<double>();
            CurrentYearMortality = Model.Core.Landscape.NewSiteVar<double>();
            PrevYearMortality = Model.Core.Landscape.NewSiteVar<double>();
            //fireSeverity = Model.Core.GetSiteVar<byte>("Fire.Severity");

            // Enable interactions with (almost) any fire extension:
            /*if (Model.Core.GetSiteVar<int>("Fire.Severity") == null)
            {
                Console.Write("Fire Severity not cu");
            }
            else
            {
                Console.Write("Real value");
                fireSeverity = Model.Core.GetSiteVar<int>("Fire.SeverityX");
            }*/

            foreach (ActiveSite site in Model.Core.Landscape)
            {
                //  site cohorts are initialized by the PlugIn.InitializeSite method
                availableN[site]            = new double();
                unavailable[site]           = new Pool();
                fineRoots[site]             = new Pool();
                coarseRoots[site]           = new Pool();
                woodyDebris[site]           = new PoolD();
                litter[site]                = new List<PoolD>();
                deadFineRoots[site]         = new List<PoolD>();
                litterAdd[site]             = new List<PoolD>();
                deadFineRootsAdd[site]      = new List<PoolD>();
                removeLitter[site]          = new List<PoolD>();
                removeDeadFineRoots[site]   = new List<PoolD>();
                soilOrganicMatter[site]     = new SoilOrganicMatter();
                mineralSoil[site]           = new MineralSoil();
                charcoal[site]              = new Charcoal();
                rock[site]                  = new Rock();
            }
        }