//--------------------------------------------------------------------- /// <summary> /// Initializes the module. /// </summary> public static void Initialize() { leafBiomassCohorts = PlugIn.ModelCore.Landscape.NewSiteVar<Library.LeafBiomassCohorts.ISiteCohorts>(); biomassCohortsSiteVar = new BiomassCohortsSiteVar(leafBiomassCohorts); baseCohortsSiteVar = new BaseCohortsSiteVar(leafBiomassCohorts); timeOfLast = PlugIn.ModelCore.Landscape.NewSiteVar<int>(); // Dead biomass: surfaceDeadWood = PlugIn.ModelCore.Landscape.NewSiteVar<Layer>(); soilDeadWood = PlugIn.ModelCore.Landscape.NewSiteVar<Layer>(); surfaceStructural = PlugIn.ModelCore.Landscape.NewSiteVar<Layer>(); surfaceMetabolic = PlugIn.ModelCore.Landscape.NewSiteVar<Layer>(); soilStructural = PlugIn.ModelCore.Landscape.NewSiteVar<Layer>(); soilMetabolic = PlugIn.ModelCore.Landscape.NewSiteVar<Layer>(); // Soil Layers som1surface = PlugIn.ModelCore.Landscape.NewSiteVar<Layer>(); som1soil = PlugIn.ModelCore.Landscape.NewSiteVar<Layer>(); som2 = PlugIn.ModelCore.Landscape.NewSiteVar<Layer>(); som3 = PlugIn.ModelCore.Landscape.NewSiteVar<Layer>(); // Other Layers stream = PlugIn.ModelCore.Landscape.NewSiteVar<Layer>(); sourceSink = PlugIn.ModelCore.Landscape.NewSiteVar<Layer>(); // Other variables mineralN = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); resorbedN = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); waterMovement = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); availableWater = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); soilWaterContent = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); decayFactor = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); soilTemperature = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); anaerobicEffect = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); // Annual accumulators grossMineralization = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); ag_nppC = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); bg_nppC = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); litterfallC = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); monthlyAGNPPC = PlugIn.ModelCore.Landscape.NewSiteVar<double[]>(); monthlyBGNPPC = PlugIn.ModelCore.Landscape.NewSiteVar<double[]>(); monthlyNEE = PlugIn.ModelCore.Landscape.NewSiteVar<double[]>(); AnnualNEE = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); FireCEfflux = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); FireNEfflux = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); monthlyResp = PlugIn.ModelCore.Landscape.NewSiteVar<double[]>(); cohortLeafN = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); cohortLeafC = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); cohortWoodN = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); cohortWoodC = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); TotalWoodBiomass = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); AgeMortality = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); Nvol = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); PrevYearMortality = PlugIn.ModelCore.Landscape.NewSiteVar<int>(); totalNuptake = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); monthlymineralN = PlugIn.ModelCore.Landscape.NewSiteVar<double[]>(); frassC = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); lai = PlugIn.ModelCore.Landscape.NewSiteVar<double>(); HarvestPrescriptionName = PlugIn.ModelCore.GetSiteVar<string>("Harvest.PrescriptionName"); PlugIn.ModelCore.RegisterSiteVar(leafBiomassCohorts, "Succession.LeafBiomassCohorts"); PlugIn.ModelCore.RegisterSiteVar(biomassCohortsSiteVar, "Succession.BiomassCohorts"); PlugIn.ModelCore.RegisterSiteVar(baseCohortsSiteVar, "Succession.AgeCohorts"); foreach (ActiveSite site in PlugIn.ModelCore.Landscape) { // site cohorts are initialized by the PlugIn.InitializeSite method //leafBiomassCohorts[site] = new SiteCohorts(); //Console.Write("-"); surfaceDeadWood[site] = new Layer(LayerName.Wood, LayerType.Surface); soilDeadWood[site] = new Layer(LayerName.CoarseRoot, LayerType.Soil); surfaceStructural[site] = new Layer(LayerName.Structural, LayerType.Surface); surfaceMetabolic[site] = new Layer(LayerName.Metabolic, LayerType.Surface); soilStructural[site] = new Layer(LayerName.Structural, LayerType.Soil); soilMetabolic[site] = new Layer(LayerName.Metabolic, LayerType.Soil); som1surface[site] = new Layer(LayerName.SOM1, LayerType.Surface); som1soil[site] = new Layer(LayerName.SOM1, LayerType.Soil); som2[site] = new Layer(LayerName.SOM2, LayerType.Soil); som3[site] = new Layer(LayerName.SOM3, LayerType.Soil); stream[site] = new Layer(LayerName.Other, LayerType.Other); sourceSink[site] = new Layer(LayerName.Other, LayerType.Other); monthlyAGNPPC[site] = new double[12]; monthlyBGNPPC[site] = new double[12]; monthlyNEE[site] = new double[12]; monthlyResp[site] = new double[12]; //monthlymineralN[site] = new double[12]; AvailableN.CohortResorbedNallocation = new Dictionary<int, Dictionary<int, double>>(); } }
//--------------------------------------------------------------------- public override void Initialize() { PlugIn.ModelCore.UI.WriteLine("Initializing " + ExtensionName + " version "+ typeof(PlugIn).Assembly.GetName().Version); /*Testing * Landis.Library.BiomassCohorts.Cohort C; Cohort D; C = (Landis.Library.BiomassCohorts.Cohort)D; */ hassiteoutput = parameters.HasSiteOutput; siteconditions = PlugIn.ModelCore.Landscape.NewSiteVar<SiteConditions>(); Edu.Wisc.Forest.Flel.Util.Directory.EnsureExists("output"); //CohortOutput.Initialize(parameters); Hydrology.Initialize(parameters); StaticVariables.InitializeStatic(parameters); ForestFloor.Initialize(parameters); SiteConditions.Initialize(parameters); CohortBiomass.Initialize(parameters); Timestep = parameters.Timestep; tstep = parameters.Timestep; // Initialize Reproduction routines: Reproduction.SufficientResources = SufficientResources; Reproduction.Establish = Establish; Reproduction.AddNewCohort = AddNewCohort; Reproduction.MaturePresent = MaturePresent; Reproduction.PlantingEstablish = PlantingEstablish; base.Initialize(modelCore, parameters.SeedAlgorithm); Cohort.DeathEvent += CohortDied; StartDate = new System.DateTime(parameters.StartYear, 1, 15); year = StartDate.Year; month = StartDate.Month; InitializeSites(parameters.InitialCommunities, parameters.InitialCommunitiesMap, modelCore); EstablishmentProbability.Initialize(parameters); ISiteVar<ISiteCohorts> cohorts = PlugIn.ModelCore.Landscape.NewSiteVar<ISiteCohorts>(); foreach (ActiveSite site in PlugIn.modelCore.Landscape) { cohorts[site] = siteconditions[site].Cohorts; } BiomassCohorts = new BiomassCohortsSiteVar(cohorts); baseCohorts = new Landis.Library.Biomass.BaseCohortsSiteVar(BiomassCohorts); PlugIn.ModelCore.RegisterSiteVar(BiomassCohorts, "Succession.BiomassCohorts"); PlugIn.ModelCore.RegisterSiteVar(siteconditions, "Succession.SiteConditionsPnET"); PlugIn.ModelCore.RegisterSiteVar(baseCohorts, "Succession.AgeCohorts"); ISiteVar<Pool> WoodyDebris = PlugIn.ModelCore.Landscape.NewSiteVar<Pool>(); foreach (ActiveSite site in PlugIn.modelCore.Landscape) { WoodyDebris[site] = siteconditions[site].WoodyDebris; } PlugIn.ModelCore.RegisterSiteVar(WoodyDebris, "Succession.WoodyDebris"); ISiteVar<Pool> Litter = PlugIn.ModelCore.Landscape.NewSiteVar<Pool>(); foreach (ActiveSite site in PlugIn.modelCore.Landscape) { Litter[site] = siteconditions[site].WoodyDebris; } PlugIn.ModelCore.RegisterSiteVar(Litter, "Succession.Litter"); }
//--------------------------------------------------------------------- /// <summary> /// Initializes the module. /// </summary> public static void Initialize() { numberofcanopylayers = PlugIn.ModelCore.Landscape.NewSiteVar<int>(); cohorts = PlugIn.ModelCore.Landscape.NewSiteVar<ISiteCohorts>(); BiomassCohortsSiteVar = new BiomassCohortsSiteVar(cohorts); baseCohortsSiteVar = new Landis.Extension.Succession.Biomass.BaseCohortsSiteVar(BiomassCohortsSiteVar); woodyDebris = PlugIn.ModelCore.Landscape.NewSiteVar<Pool>(); litter = PlugIn.ModelCore.Landscape.NewSiteVar<Pool>(); HasSiteOutput = PlugIn.ModelCore.Landscape.NewSiteVar<bool>(); SnowPack = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); Water = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); Infiltration = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); establishments = PlugIn.ModelCore.Landscape.NewSiteVar<Landis.Extension.Succession.Biomass.Species.AuxParm<bool>>(); pest = PlugIn.ModelCore.Landscape.NewSiteVar<Landis.Extension.Succession.Biomass.Species.AuxParm<float>>(); TotalBiomass = PlugIn.ModelCore.Landscape.NewSiteVar<int>(); AnnualTranspiration = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); CanopyLAI = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); GrossPsn = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); NetPsn = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); transpiration = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); AutotrophicRespiration = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); HeterotrophicRespiration = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); WFPS = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); CanopyLAImax = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); SubCanopyPAR = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); SubCanopyPARmax = PlugIn.ModelCore.Landscape.NewSiteVar<float>(); foreach (ActiveSite site in PlugIn.ModelCore.Landscape) { // site cohorts are initialized by the PlugIn.InitializeSite method woodyDebris[site] = new Pool(); litter[site] = new Pool(); HasSiteOutput[site] = false; SnowPack[site] = 0; Water[site] = 0; Infiltration[site] = 0; TotalBiomass[site] = 0; numberofcanopylayers[site] = 0; GrossPsn[site] = 0; NetPsn[site] = 0; AutotrophicRespiration[site] = 0; HeterotrophicRespiration[site] = 0; transpiration[site] = 0; WFPS[site] = 0; establishments[site] = new Landis.Extension.Succession.Biomass.Species.AuxParm<bool>(PlugIn.ModelCore.Species); pest[site] = new Landis.Extension.Succession.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species); AnnualTranspiration[site] = 0; CanopyLAI[site] = 0; SubCanopyPAR[site] = 0; SubCanopyPARmax[site] = 0; foreach (ISpecies spc in PlugIn.ModelCore.Species) { establishments[site][spc] = false; pest[site][spc] = 0; } } PlugIn.ModelCore.RegisterSiteVar(cohorts, "Succession.BiomassCohortsPnET"); PlugIn.ModelCore.RegisterSiteVar(BiomassCohortsSiteVar, "Succession.BiomassCohorts"); PlugIn.ModelCore.RegisterSiteVar(baseCohortsSiteVar, "Succession.AgeCohorts"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.Establishments, "Succession.Establishments"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.WoodyDebris, "Succession.WoodyDebris"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.Litter, "Succession.Litter"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.HasSiteOutput, "Succession.HasSiteOutput"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.Water, "Succession.SoilWater"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.AnnualTranspiration , "Succession.AnnualTranspiration"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.SubCanopyPAR, "Succession.SubCanopyPARmax"); PlugIn.ModelCore.RegisterSiteVar(SiteVars.CanopyLAImax, "Succession.CanopyLAImax"); }
//--------------------------------------------------------------------- public override void Initialize() { cohorts = PlugIn.ModelCore.Landscape.NewSiteVar<ISiteCohorts>(); BiomassCohorts = new BiomassCohortsSiteVar(cohorts); baseCohorts = new Landis.Library.Biomass.BaseCohortsSiteVar(BiomassCohorts); // Counts added cohorts per site and per species newcohorts = PlugIn.ModelCore.Landscape.NewSiteVar<Landis.Library.Biomass.Species.AuxParm<int>>(); foreach (ActiveSite site in PlugIn.ModelCore.Landscape) { newcohorts[site] = new Landis.Library.Biomass.Species.AuxParm<int>(PlugIn.ModelCore.Species); } PlugIn.ModelCore.RegisterSiteVar(NewCohorts, "Succession.NewCohorts"); PlugIn.ModelCore.RegisterSiteVar(cohorts, "Succession.BiomassCohortsPnET"); PlugIn.ModelCore.RegisterSiteVar(BiomassCohorts, "Succession.BiomassCohorts"); PlugIn.ModelCore.RegisterSiteVar(baseCohorts, "Succession.AgeCohorts"); Edu.Wisc.Forest.Flel.Util.Directory.EnsureExists("output"); CohortOutput.Initialize(parameters); SiteOutput.Initialize(parameters); CohortBiomass.Initialize(parameters); EstablishmentProbability.Initialize(parameters); CanopyBiomass.Initialize(parameters); Static.Initialize(parameters); Hydrology.Initialize(parameters); Timestep = parameters.Timestep; tstep = parameters.Timestep; // Initialize Reproduction routines: // Reproduction.SufficientResources = SufficientLight; Reproduction.Establish = Establish; Reproduction.AddNewCohort = AddNewCohort; Reproduction.MaturePresent = MaturePresent; Reproduction.PlantingEstablish = PlantingEstablish; base.Initialize(modelCore, parameters.SeedAlgorithm); InitialBiomass.Initialize(parameters); Cohort.DeathEvent += CohortDied; // TODO ARJAN !! //Landis.Extension.Succession.Biomass.AgeOnlyDisturbances.Module.Initialize(parameters.AgeOnlyDisturbanceParms); ForestFloor.Initialize(parameters); SiteOutput.Initialize(parameters); StartDate = new System.DateTime(parameters.StartYear, 1, 15); year = StartDate.Year; month = StartDate.Month; InitializeSites(parameters.InitialCommunities, parameters.InitialCommunitiesMap, modelCore); }