//--------------------------------------------------------------------- /// <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; }
//--------------------------------------------------------------------- /// <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(); } }