public static void Initialize(IInputParameters parameters)
        {
            KWdLit = parameters.KWdLit;

            if (parameters.CanopyLayerAges.Count() == 0)
            {
                CanopyNumbers = new int[1] {
                    0
                };
                return;
            }
            else
            {
                CanopyNumbers = new int[parameters.CanopyLayerAges[parameters.CanopyLayerAges.Count() - 1] + 1];

                for (int age = 0; age < parameters.CanopyLayerAges[parameters.CanopyLayerAges.Count - 1] + 1; age++)
                {
                    CanopyNumbers[age] = 1;
                    for (int l = 0; l < parameters.CanopyLayerAges.Count; l++)
                    {
                        if (age >= parameters.CanopyLayerAges[l])
                        {
                            CanopyNumbers[age] = parameters.CanopyLayerNumbers[l];
                        }
                    }
                }
            }
        }
        public static void Initialize(IInputParameters parameters)
        {
            AET       = parameters.AET;
            FolLignin = parameters.FolLignin;

            KNwdLitter = GetKNwdLitter();
        }
示例#3
0
        //---------------------------------------------------------------------
        public Insect(int sppCount)
        {
            susceptibility        = new Library.Biomass.Species.AuxParm <int>(PlugIn.ModelCore.Species);
            growthreduceslope     = new Library.Biomass.Species.AuxParm <double>(PlugIn.ModelCore.Species);
            growthreduceintercept = new Library.Biomass.Species.AuxParm <double>(PlugIn.ModelCore.Species);
            mortalityslope        = new Library.Biomass.Species.AuxParm <double>(PlugIn.ModelCore.Species);
            mortalityintercept    = new Library.Biomass.Species.AuxParm <double>(PlugIn.ModelCore.Species);

            susceptibleTable = new List <ISusceptible>();
            neighbors        = new List <RelativeLocation>();

            hostDefoliationByYear   = PlugIn.ModelCore.Landscape.NewSiteVar <Dictionary <int, double[]> >();
            disturbed               = PlugIn.ModelCore.Landscape.NewSiteVar <bool>();
            lastYearDefoliation     = PlugIn.ModelCore.Landscape.NewSiteVar <double>();
            thisYearDefoliation     = PlugIn.ModelCore.Landscape.NewSiteVar <double>();
            neighborhoodDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar <double>();
            biomassRemoved          = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            initialOutbreakProb     = PlugIn.ModelCore.Landscape.NewSiteVar <double>();

            outbreakStopYear  = 0; //default = beginning of simulation
            outbreakStartYear = 0; //default = beginning of simulation
            mortalityYear     = 0; //default = beginning of simulation
            activeOutbreak    = false;
            initialSites      = 0;
            lastStartYear     = 0;
            lastStopYear      = 0;
            lastBioRemoved    = 0;
            annMort           = "";

            //Initialize outbreaks:
            foreach (ActiveSite site in PlugIn.ModelCore.Landscape)
            {
                hostDefoliationByYear[site] = new Dictionary <int, double[]>();
            }
        }
 static void InitEstablishmentTable(string KeyWord, Landis.Library.Biomass.Species.AuxParm <float[]> SpeciesTables)
 {
     foreach (ISpecies species in PlugIn.ModelCore.Species)
     {
         SpeciesTables[species] = EstablishmentTable.InitProbabilityArray();
     }
 }
 static void InitEstablishmentTable(string FileName, string KeyWord, Landis.Library.Biomass.Species.AuxParm <float[]> SpeciesTables)
 {
     foreach (ISpecies species in PlugIn.ModelCore.Species)
     {
         SpeciesTables[species] = EstablishmentTable.ReadEstablishmentTable(KeyWord, FileName, species);
     }
 }
        public static void Initialize(IInputParameters parameters)
        {
            Canopy.Initialize(parameters);

            TOroot    = parameters.TOroot;
            TOwood    = parameters.TOwood;
            TOfol     = parameters.TOfol;
            FolRet    = parameters.FolRet;
            HalfSat   = parameters.HalfSat;
            PsnTMin   = parameters.PsnTMin;
            GrMstSens = parameters.GrMstSens;

            SLWmax    = parameters.SLWmax;
            SLWDel    = parameters.SLWDel;
            k         = parameters.K;
            CDDFolEnd = parameters.CDDFolEnd;
            PsnAgeRed = parameters.PsnAgeRed;
            GDDFolSt  = parameters.GDDFolSt;

            RtStRatio     = parameters.RtStRatio;
            MaintRespFrac = parameters.MaintResp;
            DNSC          = parameters.DNSC;
            BFolResp      = parameters.BFolResp;
            Porosity      = parameters.Porosity;
        }
        public VarSpeciesDate(string label, DateTime[] DateRange)
        {
            values = new Library.Biomass.Species.AuxParm <VarDate <T> >(PlugIn.ModelCore.Species);

            foreach (ISpecies spc in PlugIn.ModelCore.Species)
            {
                values[spc] = new VarDate <T>(label, DateRange);
            }
        }
 public static void Initialize(IInputParameters parameters)
 {
     EstRad    = parameters.EstRad;
     EstMoist  = parameters.EstMoist;
     GDDFolSt  = parameters.GDDFolSt;
     PsnTMin   = parameters.PsnTMin;
     CDDFolEnd = parameters.CDDFolEnd;
     HalfSat   = parameters.HalfSat;
     Porosity  = parameters.Porosity;
 }
示例#9
0
        //---------------------------------------------------------------------

        public static Landis.Library.Biomass.Species.AuxParm <Landis.Library.Biomass.Ecoregions.AuxParm <T> > CreateSpeciesEcoregionParm <T>(ISpeciesDataset speciesDataset, IEcoregionDataset ecoregionDataset)
        {
            Landis.Library.Biomass.Species.AuxParm <Landis.Library.Biomass.Ecoregions.AuxParm <T> > newParm;
            newParm = new Landis.Library.Biomass.Species.AuxParm <Landis.Library.Biomass.Ecoregions.AuxParm <T> >(speciesDataset);
            foreach (ISpecies species in speciesDataset)
            {
                newParm[species] = new Landis.Library.Biomass.Ecoregions.AuxParm <T>(ecoregionDataset);
            }
            return(newParm);
        }
 public static void Initialize(IInputParameters parameters)
 {
     EstRad = parameters.EstRad;
     EstMoist = parameters.EstMoist;
     GDDFolSt = parameters.GDDFolSt;
     PsnTMin = parameters.PsnTMin;
     CDDFolEnd = parameters.CDDFolEnd;
     HalfSat = parameters.HalfSat;
     Porosity = parameters.Porosity;
 }
示例#11
0
 private static void InitializeSpeciesParameters(IInputParameters parameters)
 {
     EstRadSensitivity      = parameters.EstRadSensitivity;
     EstMoistureSensitivity = parameters.EstMoistureSensitivity;
     GDDFolStart            = parameters.GDDFolStart;
     GDDFolEnd   = parameters.GDDFolEnd;
     PsnTMin     = parameters.PsnTMin;
     SenescStart = parameters.SenescStart;
     HalfSat     = parameters.HalfSat;
 }
示例#12
0
        //---------------------------------------------------------------------

        /// <summary>
        /// Converts a table indexed by species and ecoregion into a
        /// 2-dimensional array.
        /// </summary>
        public static T[,] ToArray <T>(Landis.Library.Biomass.Species.AuxParm <Landis.Library.Biomass.Ecoregions.AuxParm <T> > table)
        {
            T[,] array = new T[PlugIn.ModelCore.Ecoregions.Count, PlugIn.ModelCore.Species.Count];
            foreach (ISpecies species in PlugIn.ModelCore.Species)
            {
                foreach (IEcoregion ecoregion in PlugIn.ModelCore.Ecoregions)
                {
                    array[ecoregion.Index, species.Index] = table[species][ecoregion];
                }
            }
            return(array);
        }
        public EstablishmentProbability(ActiveSite site)
        {
            this.site      = site;
            this.ecoregion = PlugIn.modelCore.Ecoregion[site];

            pest = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            potestablishments = new Landis.Library.Biomass.Species.AuxParm <int>(PlugIn.ModelCore.Species);
            establishments    = new Landis.Library.Biomass.Species.AuxParm <int>(PlugIn.ModelCore.Species);
            foreach (ISpecies spc in PlugIn.ModelCore.Species)
            {
                potestablishments[spc] = 0;
                establishments[spc]    = 0;
                pest[spc] = 0;
            }
        }
        public EstablishmentProbability(ActiveSite site)
        {
            this.site = site;
            this.ecoregion = PlugIn.modelCore.Ecoregion[site];

            pest = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            potestablishments = new Landis.Library.Biomass.Species.AuxParm<int>(PlugIn.ModelCore.Species);
            establishments = new Landis.Library.Biomass.Species.AuxParm<int>(PlugIn.ModelCore.Species);
            foreach (ISpecies spc in PlugIn.ModelCore.Species)
            {
                potestablishments[spc] = 0;
                establishments[spc] = 0;
                pest[spc] = 0;
            }
        }
        public static void Initialize(IInputParameters parameters)
        {
            totalbiomass = PlugIn.ModelCore.Landscape.NewSiteVar <float>();
            totalroot    = PlugIn.ModelCore.Landscape.NewSiteVar <float>();
            totalfoliage = PlugIn.ModelCore.Landscape.NewSiteVar <float>();
            totalnsc     = PlugIn.ModelCore.Landscape.NewSiteVar <float>();

            subcanopypar    = PlugIn.ModelCore.Landscape.NewSiteVar <float>();
            subcanopyparmax = PlugIn.ModelCore.Landscape.NewSiteVar <float>();
            canopylai       = PlugIn.ModelCore.Landscape.NewSiteVar <float>();
            canopylaimax    = PlugIn.ModelCore.Landscape.NewSiteVar <float>();
            deadcohortages  = PlugIn.ModelCore.Landscape.NewSiteVar <Landis.Library.Biomass.Species.AuxParm <List <int> > >();
            deadcohorts     = PlugIn.ModelCore.Landscape.NewSiteVar <Landis.Library.Biomass.Species.AuxParm <int> >();

            numberofcanopylayers   = PlugIn.ModelCore.Landscape.NewSiteVar <int>();
            AutotrophicRespiration = PlugIn.ModelCore.Landscape.NewSiteVar <float>();
            foreach (ActiveSite site in PlugIn.ModelCore.Landscape)
            {
                numberofcanopylayers[site] = 0;
            }

            grosspsn = PlugIn.ModelCore.Landscape.NewSiteVar <float>();
            netpsn   = PlugIn.ModelCore.Landscape.NewSiteVar <float>();

            //CanopyLayerAgeSpan = parameters.CanopyLayerAgeSpan;

            foreach (ActiveSite site in PlugIn.ModelCore.Landscape)
            {
                CanopyLAI[site]              = 0;
                SubCanopyPAR[site]           = 0;
                SubCanopyPARmax[site]        = 0;
                GrossPsn[site]               = 0;
                NetPsn[site]                 = 0;
                AutotrophicRespiration[site] = 0;

                deadcohortages[site] = new Landis.Library.Biomass.Species.AuxParm <List <int> >(PlugIn.ModelCore.Species);
                deadcohorts[site]    = new Landis.Library.Biomass.Species.AuxParm <int>(PlugIn.ModelCore.Species);
                foreach (ISpecies species in PlugIn.ModelCore.Species)
                {
                    deadcohortages[site][species] = new List <int>();
                }
            }

            PlugIn.ModelCore.RegisterSiteVar(DeadCohorts, "Succession.DeadCohorts");
            PlugIn.ModelCore.RegisterSiteVar(DeadCohortAges, "Succession.DeadCohortAges");
            PlugIn.ModelCore.RegisterSiteVar(SubCanopyPAR, "Succession.SubCanopyPARmax");
            PlugIn.ModelCore.RegisterSiteVar(CanopyLAImax, "Succession.CanopyLAImax");
        }
示例#16
0
        private static void InitializeSiteVariables()
        {
            establishments = PlugIn.ModelCore.Landscape.NewSiteVar <Landis.Library.Biomass.Species.AuxParm <int> >();
            pest           = PlugIn.ModelCore.Landscape.NewSiteVar <Landis.Library.Biomass.Species.AuxParm <float> >();

            foreach (ActiveSite site in PlugIn.ModelCore.Landscape)
            {
                pest[site]           = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
                establishments[site] = new Landis.Library.Biomass.Species.AuxParm <int>(PlugIn.ModelCore.Species);
                foreach (ISpecies spc in PlugIn.ModelCore.Species)
                {
                    establishments[site][spc] = 0;
                    pest[site][spc]           = 0;
                }
            }
        }
        //---------------------------------------------------------------------

        public InputParameters()
        {
            hassiteoutput            = PlugIn.ModelCore.Landscape.NewSiteVar <bool>();
            canopylayerbiomfractions = new List <float[]>();
            canopylayerages          = new List <int>();
            climatefilename          = new Library.Biomass.Ecoregions.AuxParm <string>(PlugIn.modelCore.Ecoregions);
            slwdel               = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            toroot               = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            towood               = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            folret               = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            tofol                = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            gddfolst             = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            mortCurveShapeParm   = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            growthCurveShapeParm = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            slwmax               = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            cddfolend            = new Landis.Library.Biomass.Species.AuxParm <int>(PlugIn.ModelCore.Species);
            wuecnst              = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            q10                    = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            psntmin                = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            halfsat                = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            estradsensitivity      = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            estmoisturesensitivity = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            psntopt                = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            foln                   = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            bfolresp               = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            follignin              = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            kwdlit                 = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            grmstsens              = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            dvpd2                  = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            dvpd1                  = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            amaxa                  = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            amaxb                  = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            psnagered              = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            k                  = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            dnsc               = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            maintresp          = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            wltpnt             = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            rtstratio          = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            whc                = new Landis.Library.Biomass.Ecoregions.AuxParm <int>(PlugIn.ModelCore.Ecoregions);
            aet                = new Landis.Library.Biomass.Ecoregions.AuxParm <int>(PlugIn.ModelCore.Ecoregions);
            preciplossfrac     = new Landis.Library.Biomass.Ecoregions.AuxParm <float>(PlugIn.ModelCore.Ecoregions);
            porosity           = new Landis.Library.Biomass.Ecoregions.AuxParm <int>(PlugIn.ModelCore.Ecoregions);
            leakagefrac        = new Landis.Library.Biomass.Ecoregions.AuxParm <float>(PlugIn.ModelCore.Ecoregions);
            canopylayernumbers = new List <int>();
        }
        //---------------------------------------------------------------------

        public InputParameters()
        {
            hassiteoutput = PlugIn.ModelCore.Landscape.NewSiteVar <bool>();

            slwdel                    = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            rootturnover              = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            woodturnover              = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            folreten                  = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            foliageturnover           = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            gddfolend                 = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            gddfolstart               = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            mortCurveShapeParm        = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            growthCurveShapeParm      = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            slwmax                    = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            senescStart               = new Landis.Library.Biomass.Species.AuxParm <int>(PlugIn.ModelCore.Species);
            wueconst                  = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            respq10                   = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            psntmin                   = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            halfsat                   = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            estradsensitivity         = new Landis.Library.Biomass.Species.AuxParm <float[]>(PlugIn.ModelCore.Species);
            estmoisturesensitivity    = new Landis.Library.Biomass.Species.AuxParm <float[]>(PlugIn.ModelCore.Species);
            psntopt                   = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            folncon                   = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            basefolrespfrac           = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            growthmoisturesensitivity = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            dvpd2               = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            dvpd1               = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            amaxa               = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            amaxb               = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            psnagered           = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            k                   = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            dnsc                = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            maintresp           = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            wiltingpoint        = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            rootstemratio       = new Landis.Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
            whc                 = new Landis.Library.Biomass.Ecoregions.AuxParm <float>(PlugIn.ModelCore.Ecoregions);
            aet                 = new Landis.Library.Biomass.Ecoregions.AuxParm <int>(PlugIn.ModelCore.Ecoregions);
            evaporationfraction = new Landis.Library.Biomass.Ecoregions.AuxParm <float>(PlugIn.ModelCore.Ecoregions);
            leakagefraction     = new Landis.Library.Biomass.Ecoregions.AuxParm <float>(PlugIn.ModelCore.Ecoregions);
        }
示例#19
0
 public static void Initialize(IInputParameters parameters)
 {
     RootTurnover              = parameters.RootTurnover;
     WoodTurnover              = parameters.WoodTurnover;
     FoliageTurnover           = parameters.FoliageTurnover;
     FolReten                  = parameters.FolReten;
     HalfSat                   = parameters.HalfSat;
     PsnTMin                   = parameters.PsnTMin;
     GrowthMoistureSensitivity = parameters.GrowthMoistureSensitivity;
     WiltingPoint              = parameters.WiltingPoint;
     SLWmax          = parameters.SLWmax;
     SLWDel          = parameters.SLWDel;
     k               = parameters.K;
     SenescStart     = parameters.SenescStart;
     PsnAgeRed       = parameters.PsnAgeRed;
     GDDFolStart     = parameters.GDDFolStart;
     GDDFolEnd       = parameters.GDDFolEnd;
     RootStemRatio   = parameters.RootStemRatio;
     MaintRespFrac   = parameters.MaintResp;
     DNSC            = parameters.DNSC;
     BaseFolRespFrac = parameters.BaseFolRespFrac;
 }
示例#20
0
        //---------------------------------------------------------------------
        public Insect(int sppCount)
        {
            
            susceptibility = new Library.Biomass.Species.AuxParm<int>(PlugIn.ModelCore.Species);
            growthreduceslope = new Library.Biomass.Species.AuxParm<double>(PlugIn.ModelCore.Species);
            growthreduceintercept = new Library.Biomass.Species.AuxParm<double>(PlugIn.ModelCore.Species);
            mortalityslope = new Library.Biomass.Species.AuxParm<double>(PlugIn.ModelCore.Species);
            mortalityintercept = new Library.Biomass.Species.AuxParm<double>(PlugIn.ModelCore.Species);
            
            susceptibleTable = new List<ISusceptible>();
            neighbors = new List<RelativeLocation>();

            hostDefoliationByYear = PlugIn.ModelCore.Landscape.NewSiteVar<Dictionary<int, double[]>>();
            disturbed = PlugIn.ModelCore.Landscape.NewSiteVar<bool>();
            lastYearDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar<double>();
            thisYearDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar<double>();
            neighborhoodDefoliation = PlugIn.ModelCore.Landscape.NewSiteVar<double>();
            biomassRemoved = PlugIn.ModelCore.Landscape.NewSiteVar<int>();
            initialOutbreakProb = PlugIn.ModelCore.Landscape.NewSiteVar<double>();

            outbreakStopYear = 0;  //default = beginning of simulation
            outbreakStartYear = 0;  //default = beginning of simulation
            mortalityYear = 0;  //default = beginning of simulation
            activeOutbreak = false;
            initialSites = 0;
            lastStartYear = 0;
            lastStopYear = 0;
            lastBioRemoved = 0;
            annMort = "";
            
            //Initialize outbreaks:
            foreach (ActiveSite site in PlugIn.ModelCore.Landscape)
            {
                hostDefoliationByYear[site] = new Dictionary<int, double[]>();
            }
        }
        //---------------------------------------------------------------------
        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);
        }
        public static void Initialize(IInputParameters parameters)
        {
            KWdLit = parameters.KWdLit;

            if (parameters.CanopyLayerAges.Count() == 0)
            {
                CanopyNumbers = new int[1] { 0 };
                return;
            }
            else
            {
                CanopyNumbers = new int[parameters.CanopyLayerAges[parameters.CanopyLayerAges.Count() - 1] + 1];

                for (int age = 0; age < parameters.CanopyLayerAges[parameters.CanopyLayerAges.Count - 1] + 1; age++)
                {
                    CanopyNumbers[age] = 1;
                    for (int l = 0; l < parameters.CanopyLayerAges.Count; l++)
                    {
                        if (age >= parameters.CanopyLayerAges[l])
                        {
                            CanopyNumbers[age] = parameters.CanopyLayerNumbers[l];
                        }
                    }
                }
            }
        }
示例#23
0
 private bool TrySet(string ReadLabel, string VariableLabel, InputValue <float> value, int mininput, int maxinput, ISpecies species, Landis.Library.Biomass.Species.AuxParm <int> SpcVar)
 {
     if (System.String.Compare(ReadLabel, VariableLabel, System.StringComparison.OrdinalIgnoreCase) == 0)
     {
         SpcVar[species] = (int)Landis.Library.Biomass.Util.CheckBiomassParm(ReadLabel, value, mininput, maxinput);
         return(true);
     }
     return(false);
 }
 public static void Initialize(IInputParameters parameters)
 {
     RootTurnover = parameters.RootTurnover;
     WoodTurnover = parameters.WoodTurnover;
     FoliageTurnover = parameters.FoliageTurnover;
     FolReten = parameters.FolReten;
     HalfSat = parameters.HalfSat;
     PsnTMin = parameters.PsnTMin;
     GrowthMoistureSensitivity = parameters.GrowthMoistureSensitivity;
     WiltingPoint = parameters.WiltingPoint;
     SLWmax = parameters.SLWmax;
     SLWDel = parameters.SLWDel;
     k = parameters.K;
     SenescStart = parameters.SenescStart;
     PsnAgeRed = parameters.PsnAgeRed;
     GDDFolStart = parameters.GDDFolStart;
     GDDFolEnd = parameters.GDDFolEnd;
     RootStemRatio = parameters.RootStemRatio;
     MaintRespFrac = parameters.MaintResp;
     DNSC = parameters.DNSC;
     BaseFolRespFrac = parameters.BaseFolRespFrac;
 }
 //---------------------------------------------------------------------
 public InputParameters()
 {
     hassiteoutput = PlugIn.ModelCore.Landscape.NewSiteVar<bool>();
     canopylayerbiomfractions = new List<float[]>();
     canopylayerages = new List<int>();
     climatefilename = new Library.Biomass.Ecoregions.AuxParm<string>(PlugIn.modelCore.Ecoregions);
     slwdel = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     toroot = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     towood = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     folret = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     tofol = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     gddfolst = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     mortCurveShapeParm = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     growthCurveShapeParm = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     slwmax = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     cddfolend = new Landis.Library.Biomass.Species.AuxParm<int>(PlugIn.ModelCore.Species);
     wuecnst = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     q10 = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     psntmin = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     halfsat = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     estradsensitivity = new Landis.Library.Biomass.Species.AuxParm<float >(PlugIn.ModelCore.Species);
     estmoisturesensitivity = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     psntopt = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     foln = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     bfolresp = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     follignin = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     kwdlit = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     grmstsens = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     dvpd2 = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     dvpd1 = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     amaxa = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     amaxb = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     psnagered = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     k = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     dnsc = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     maintresp = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     wltpnt = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     rtstratio = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
     whc = new Landis.Library.Biomass.Ecoregions.AuxParm<int>(PlugIn.ModelCore.Ecoregions);
     aet = new Landis.Library.Biomass.Ecoregions.AuxParm<int>(PlugIn.ModelCore.Ecoregions);
     preciplossfrac = new Landis.Library.Biomass.Ecoregions.AuxParm<float>(PlugIn.ModelCore.Ecoregions);
     porosity  = new Landis.Library.Biomass.Ecoregions.AuxParm<int>(PlugIn.ModelCore.Ecoregions);
     leakagefrac = new Landis.Library.Biomass.Ecoregions.AuxParm<float>(PlugIn.ModelCore.Ecoregions);
     canopylayernumbers = new List<int>();
 }
 private static void InitializeSpeciesParameters(IInputParameters parameters)
 {
     EstRadSensitivity = parameters.EstRadSensitivity;
     EstMoistureSensitivity = parameters.EstMoistureSensitivity;
     GDDFolStart = parameters.GDDFolStart;
     GDDFolEnd = parameters.GDDFolEnd;
     PsnTMin = parameters.PsnTMin;
     SenescStart = parameters.SenescStart;
     HalfSat= parameters.HalfSat;
 }
示例#27
0
        //---------------------------------------------------------------------
        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);
        }
        public static void Initialize(IInputParameters parameters)
        {
            totalbiomass = PlugIn.ModelCore.Landscape.NewSiteVar<float>();
            totalroot = PlugIn.ModelCore.Landscape.NewSiteVar<float>();
            totalfoliage = PlugIn.ModelCore.Landscape.NewSiteVar<float>();
            totalnsc = PlugIn.ModelCore.Landscape.NewSiteVar<float>();

            subcanopypar = PlugIn.ModelCore.Landscape.NewSiteVar<float>();
            subcanopyparmax = PlugIn.ModelCore.Landscape.NewSiteVar<float>();
            canopylai = PlugIn.ModelCore.Landscape.NewSiteVar<float>();
            canopylaimax = PlugIn.ModelCore.Landscape.NewSiteVar<float>();
            deadcohortages = PlugIn.ModelCore.Landscape.NewSiteVar<Landis.Library.Biomass.Species.AuxParm<List<int>>>();
            deadcohorts = PlugIn.ModelCore.Landscape.NewSiteVar<Landis.Library.Biomass.Species.AuxParm<int>>();

            numberofcanopylayers = PlugIn.ModelCore.Landscape.NewSiteVar<int>();
            AutotrophicRespiration = PlugIn.ModelCore.Landscape.NewSiteVar<float>();
            foreach (ActiveSite site in PlugIn.ModelCore.Landscape) numberofcanopylayers[site] = 0;

            grosspsn = PlugIn.ModelCore.Landscape.NewSiteVar<float>();
            netpsn  = PlugIn.ModelCore.Landscape.NewSiteVar<float>();

            //CanopyLayerAgeSpan = parameters.CanopyLayerAgeSpan;

            foreach (ActiveSite site in PlugIn.ModelCore.Landscape)
            {
                CanopyLAI[site] = 0;
                SubCanopyPAR[site] = 0;
                SubCanopyPARmax[site] = 0;
                GrossPsn[site] = 0;
                NetPsn[site] = 0;
                AutotrophicRespiration[site] = 0;

                deadcohortages[site] = new Landis.Library.Biomass.Species.AuxParm<List<int>>(PlugIn.ModelCore.Species);
                deadcohorts[site] = new Landis.Library.Biomass.Species.AuxParm<int>(PlugIn.ModelCore.Species);
                foreach (ISpecies species in PlugIn.ModelCore.Species)
                {
                    deadcohortages[site][species] = new List<int>();
                }

            }

            PlugIn.ModelCore.RegisterSiteVar(DeadCohorts, "Succession.DeadCohorts");
            PlugIn.ModelCore.RegisterSiteVar(DeadCohortAges, "Succession.DeadCohortAges");
            PlugIn.ModelCore.RegisterSiteVar(SubCanopyPAR, "Succession.SubCanopyPARmax");
            PlugIn.ModelCore.RegisterSiteVar(CanopyLAImax, "Succession.CanopyLAImax");
        }
        private static void InitializeSiteVariables()
        {
            establishments = PlugIn.ModelCore.Landscape.NewSiteVar<Landis.Library.Biomass.Species.AuxParm<int>>();
            pest = PlugIn.ModelCore.Landscape.NewSiteVar<Landis.Library.Biomass.Species.AuxParm<float>>();

            foreach (ActiveSite site in PlugIn.ModelCore.Landscape)
            {
                pest[site] = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
                establishments[site] = new Landis.Library.Biomass.Species.AuxParm<int>(PlugIn.ModelCore.Species);
                foreach (ISpecies spc in PlugIn.ModelCore.Species)
                {
                    establishments[site][spc] = 0;
                    pest[site][spc] = 0;
                }
            }
        }
        public static void Initialize(IInputParameters parameters)
        {
            AET = parameters.AET;
             FolLignin = parameters.FolLignin;

             KNwdLitter = GetKNwdLitter();
        }
        public static void Initialize(IInputParameters parameters)
        {
            Canopy.Initialize(parameters);

            TOroot = parameters.TOroot;
            TOwood = parameters.TOwood;
            TOfol = parameters.TOfol;
            FolRet = parameters.FolRet;
            HalfSat = parameters.HalfSat;
            PsnTMin = parameters.PsnTMin;
            GrMstSens = parameters.GrMstSens;

            SLWmax = parameters.SLWmax;
            SLWDel = parameters.SLWDel;
            k = parameters.K;
            CDDFolEnd = parameters.CDDFolEnd;
            PsnAgeRed = parameters.PsnAgeRed;
            GDDFolSt = parameters.GDDFolSt;

            RtStRatio = parameters.RtStRatio;
            MaintRespFrac = parameters.MaintResp;
            DNSC = parameters.DNSC;
            BFolResp = parameters.BFolResp;
            Porosity = parameters.Porosity;
        }
 private bool TrySet(string ReadLabel, string VariableLabel, InputValue <float> value, float mininput, float maxinput, ISpecies species, Landis.Library.Biomass.Species.AuxParm <float> SpcVar)
 {
     // VariableLabel has to occur in headers
     //AssureVariableHeaderIsThere(VariableLabel);
     if (System.String.Compare(ReadLabel, VariableLabel, System.StringComparison.OrdinalIgnoreCase) == 0)
     {
         SpcVar[species] = Landis.Library.Biomass.CheckParms.CheckBiomassParm(value, mininput, maxinput);
         return(true);
     }
     return(false);
 }
        //---------------------------------------------------------------------
        public InputParameters()
        {
            hassiteoutput = PlugIn.ModelCore.Landscape.NewSiteVar<bool>();

            slwdel = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            rootturnover = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            woodturnover = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            folreten = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            foliageturnover = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            gddfolend = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            gddfolstart = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            mortCurveShapeParm = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            growthCurveShapeParm = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            slwmax = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            senescStart = new Landis.Library.Biomass.Species.AuxParm<int>(PlugIn.ModelCore.Species);
            wueconst = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            respq10 = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            psntmin = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            halfsat = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            estradsensitivity = new Landis.Library.Biomass.Species.AuxParm<float[] >(PlugIn.ModelCore.Species);
            estmoisturesensitivity = new Landis.Library.Biomass.Species.AuxParm<float[]>(PlugIn.ModelCore.Species);
            psntopt = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            folncon = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            basefolrespfrac = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            growthmoisturesensitivity = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            dvpd2 = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            dvpd1 = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            amaxa = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            amaxb = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            psnagered = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            k = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            dnsc = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            maintresp = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            wiltingpoint = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            rootstemratio = new Landis.Library.Biomass.Species.AuxParm<float>(PlugIn.ModelCore.Species);
            whc = new Landis.Library.Biomass.Ecoregions.AuxParm<float>(PlugIn.ModelCore.Ecoregions);
            aet = new Landis.Library.Biomass.Ecoregions.AuxParm<int>(PlugIn.ModelCore.Ecoregions);
            evaporationfraction = new Landis.Library.Biomass.Ecoregions.AuxParm<float>(PlugIn.ModelCore.Ecoregions);
            leakagefraction = new Landis.Library.Biomass.Ecoregions.AuxParm<float>(PlugIn.ModelCore.Ecoregions);
        }
示例#34
0
        public static void Initialize(IInputParameters Parameters)
        {
            PlugIn.ModelCore.UI.WriteLine("   Reading climate date from " + Parameters.climateFileName);

            climateFileName = Parameters.climateFileName;
            SetDelimitor();
            string[] Content = ReadContent();
            SetFirstAndLastYearOnFile(Content);

            firstpossibleestmonth = new DateVar <int>("firstpossibleestmonth", FirstYearOnFile, LastYearOnFile);
            lastpossibleestmonth  = new DateVar <int>("lastpossibleestmonth", FirstYearOnFile, LastYearOnFile);
            possibleestmonth      = new DateVar <bool>("PossibleEstmonth", FirstYearOnFile, LastYearOnFile);
            tmax           = new DateVar <float>("tmax", FirstYearOnFile, LastYearOnFile);
            tmin           = new DateVar <float>("tmin", FirstYearOnFile, LastYearOnFile);
            co2            = new DateVar <float>("co2", FirstYearOnFile, LastYearOnFile);
            tday           = new DateVar <float>("tday", FirstYearOnFile, LastYearOnFile);
            par0           = new DateVar <float>("par0", FirstYearOnFile, LastYearOnFile);
            tave           = new DateVar <float>("tave", FirstYearOnFile, LastYearOnFile);
            prec           = new DateVar <float>("prec", FirstYearOnFile, LastYearOnFile);
            vpd            = new DateVar <float>("vpd", FirstYearOnFile, LastYearOnFile);
            dayspan        = new DateVar <int>("dayspan", FirstYearOnFile, LastYearOnFile);
            treesareactive = new DateVar <bool>("treesareactive", FirstYearOnFile, LastYearOnFile);


            SetClimateFileHeaders(Content[0]);

            FolNCon         = Parameters.FolNCon;
            BaseFolRespFrac = Parameters.BaseFolRespFrac;
            DVPD1           = Parameters.DVPD1;
            DVPD2           = Parameters.DVPD2;
            AmaxA           = Parameters.AmaxA;
            AmaxB           = Parameters.AmaxB;
            WUEConst        = Parameters.WUEConst;

            RespQ10 = Parameters.RespQ10;
            PsnTOpt = Parameters.PsnTOpt;
            PsnTMin = Parameters.PsnTMin;


            firstactivemonthspc = new DateVar <Landis.Library.Biomass.Species.AuxParm <int> >("wettestmonth", FirstYearOnFile, LastYearOnFile);
            wettestmonth        = new DateVar <int>("wettestmonth", FirstYearOnFile, LastYearOnFile);
            dtemppsn            = new DateVar <Library.Biomass.Species.AuxParm <float> >("dtemppsn", FirstYearOnFile, LastYearOnFile);
            wue            = new DateVar <Library.Biomass.Species.AuxParm <float> >("wue", FirstYearOnFile, LastYearOnFile);
            delamax        = new DateVar <Library.Biomass.Species.AuxParm <float> >("delamax", FirstYearOnFile, LastYearOnFile);
            refnetpsn      = new DateVar <Library.Biomass.Species.AuxParm <float> >("refnetpsn", FirstYearOnFile, LastYearOnFile);
            refresp        = new DateVar <Library.Biomass.Species.AuxParm <float> >("refresp", FirstYearOnFile, LastYearOnFile);
            dTempResp      = new DateVar <Library.Biomass.Species.AuxParm <float> >("dTempResp", FirstYearOnFile, LastYearOnFile);
            dTempRespDay   = new DateVar <Library.Biomass.Species.AuxParm <float> >("dTempRespDay", FirstYearOnFile, LastYearOnFile);
            dTempRespNight = new DateVar <Library.Biomass.Species.AuxParm <float> >("dTempRespNight", FirstYearOnFile, LastYearOnFile);
            wue_co2_corr   = new DateVar <Library.Biomass.Species.AuxParm <float> >("wue_co2_corr", FirstYearOnFile, LastYearOnFile);
            dvpd           = new DateVar <Library.Biomass.Species.AuxParm <float> >("dvpd", FirstYearOnFile, LastYearOnFile);
            resp_folbase   = new DateVar <Library.Biomass.Species.AuxParm <float> >("resp_folbase", FirstYearOnFile, LastYearOnFile);
            isactive       = new DateVar <Library.Biomass.Species.AuxParm <bool> >("IsActive", FirstYearOnFile, LastYearOnFile);
            gdd            = new DateVar <Library.Biomass.Species.AuxParm <float> >("gdd", FirstYearOnFile, LastYearOnFile);

            DateTime date = new DateTime(FirstYearOnFile, 1, 15);

            while (date.CompareTo(new DateTime(LastYearOnFile, 12, 15)) <= 0)
            {
                // GetLine checks if year/month according to the loop is equal to the date read in
                string[] terms = GetLine(date.Year, date.Month, Content).Split(delim);
                if (terms.Count() != ColumnCount)
                {
                    throw new System.Exception("Unexpected number of columns in " + Parameters.climateFileName + " date = " + date);
                }

                if (int.Parse(terms[0]) != date.Year || int.Parse(terms[1]) != date.Month)
                {
                    throw new System.Exception("Missing month " + date + " in climate file");
                }
                try
                {
                    tmax[date] = CheckInputValue(float.Parse(terms[TMaxCol]), -80, 80, "date = " + date);
                    tmin[date] = CheckInputValue(float.Parse(terms[TMinCol]), -80, tmax[date], "date = " + date);
                    co2[date]  = CheckInputValue(float.Parse(terms[CO2Col]), 0, float.MaxValue, "date = " + date);
                    par0[date] = CheckInputValue(float.Parse(terms[PAR0col]), 0, float.MaxValue, "date = " + date);
                    prec[date] = CheckInputValue(float.Parse(terms[Preccol]), 0, float.MaxValue, "date = " + date);
                    if (prec[date] < 0)
                    {
                        throw new System.Exception("Precipitation = " + prec + "\t" + date);
                    }

                    float hr          = Calculate_hr(date.DayOfYear, Parameters.Latitude);
                    float daylength   = Calculate_DayLength(hr);
                    float nightlength = Calculate_NightLength(hr);
                    dayspan[date] = Calculate_DaySpan(date.Month);
                    tave[date]    = (float)0.5 * (tmin[date] + tmax[date]);
                    tday[date]    = (float)0.5 * (tmax[date] + tave[date]);
                    vpd[date]     = Calculate_VPD(Tday[date], TMin[date]);

                    gdd[date]            = new Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
                    isactive[date]       = new Library.Biomass.Species.AuxParm <bool>(PlugIn.ModelCore.Species);
                    dtemppsn [date]      = new Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
                    wue[date]            = new Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
                    delamax[date]        = new Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
                    refnetpsn[date]      = new Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
                    refresp[date]        = new Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
                    dTempResp [date]     = new Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
                    dTempRespDay[date]   = new Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
                    dTempRespNight[date] = new Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
                    wue_co2_corr[date]   = new Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
                    resp_folbase[date]   = new Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
                    gdd[date]            = new Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);
                    dvpd[date]           = new Library.Biomass.Species.AuxParm <float>(PlugIn.ModelCore.Species);

                    foreach (ISpecies spc in PlugIn.ModelCore.Species)
                    {
                        float dGDD = Math.Max(0, (Tave[date] - PsnTMin[spc]) * DaySpan[date]);
                        if (date.Month == 1)
                        {
                            gdd[date][spc] = dGDD;
                        }
                        else
                        {
                            DateTime last_month = new DateTime(date.Year, date.Month - 1, 15);
                            gdd[date][spc] = gdd[last_month][spc] + dGDD;
                        }

                        if (tday[date] < PsnTMin[spc])
                        {
                            IsActive[date][spc] = false;
                        }
                        else
                        {
                            IsActive[date][spc]  = true;
                            treesareactive[date] = true;
                        }


                        //dtemppsn[date][spc] = ParabolicPsnTempResponse(tday[date], PsnTOpt[spc], PsnTMin[spc]);
                        dtemppsn[date][spc] = LinearPsnTempResponse(tday[date], PsnTOpt[spc], PsnTMin[spc]);


                        dvpd[date][spc] = Math.Max(0, 1 - DVPD1[spc] * (float)Math.Pow(vpd[date], DVPD2[spc]));

                        float cicaRatio = (-0.075f * FolNCon[spc]) + 0.875f;
                        float ci350     = 350 * cicaRatio;
                        float Arel350   = 1.22f * ((ci350 - 68) / (ci350 + 136));

                        float ciElev   = co2[date] * cicaRatio;
                        float ArelElev = 1.22f * ((ciElev - 68) / (ciElev + 136));
                        DelAmax[date][spc] = 1 + ((ArelElev - Arel350) / Arel350);


                        // CO2 effect on photosynthesis
                        // Calculate CO2 effect on conductance and set slope and intercept for A-gs relationship
                        float Delgs = DelAmax[date][spc] / ((co2[date] - co2[date] * cicaRatio) / (350.0f - ci350));

                        wue[date][spc] = (WUEConst[spc] / vpd[date]) * (1 + 1 - Delgs);    //DWUE determined from CO2 effects on conductance

                        wue_co2_corr[date][spc] = wue[date][spc] / DelAmax[date][spc];

                        /*
                         * wue_co2_corr[spc] = WUEConst[spc];
                         * Delgs = DelAmax / ((site.CaMo[mo] - CiElev) / (350.0 - Ci350));
                         * DWUE = 1.0 + (1 - Delgs);
                         * gsSlope = (-1.1309 * DelAmax) + 1.9762;   // used to determine ozone uptake
                         * gsInt = (0.4656 * DelAmax) - 0.9701;
                         */

                        // NETPSN
                        float amax = DelAmax[date][spc] * (AmaxA[spc] + AmaxB[spc] * FolNCon[spc]);

                        //Reference net Psn (lab conditions)
                        RefNetPsn[date][spc] = Static.DaySpan[date] * (amax * dvpd[date][spc] * daylength * Constants.MC) / Constants.billion;

                        dTempRespDay[date][spc]   = ((float)Math.Pow(RespQ10[spc], (Tday[date] - PsnTOpt[spc]) / 10));
                        dTempRespNight[date][spc] = ((float)Math.Pow(RespQ10[spc], (TMin[date] - PsnTOpt[spc]) / 10));

                        dTempResp[date][spc] = (float)Math.Min(1.0, (dTempRespDay[date][spc] * daylength + dTempRespNight[date][spc] * nightlength) / ((float)daylength + (float)nightlength));

                        //  gC/day
                        RefResp[date][spc] = BaseFolRespFrac[spc] * Static.DaySpan[date] * (amax * daylength * Constants.MC) / Constants.billion;
                    }
                    date = date.AddMonths(1);
                }
                catch
                {
                    throw new System.Exception("Cannot find climate date for (year,month) " + date.Year.ToString() + " " + date.Month.ToString());
                }
            }


            while (date.CompareTo(new DateTime(LastYearOnFile, 12, 15)) < 0)
            {
                if (Parameters.EstMoistureSensitivity != null)
                {
                    wettestmonth[date] = GetWettestMonth(date, 10);
                }
                if (Parameters.EstRadSensitivity != null)
                {
                    firstactivemonthspc[date] = GetFirstActiveMonth(date, 10);
                }

                foreach (ISpecies spc in PlugIn.ModelCore.Species)
                {
                    int Firstpossibleestmonth = Math.Min(wettestmonth[date] - 1, firstactivemonthspc[date][spc]);
                    int Lastpossibleestmonth  = Math.Max(wettestmonth[date] + 1, firstactivemonthspc[date][spc] + 3);

                    if (date.Month >= Firstpossibleestmonth && date.Month <= Lastpossibleestmonth)
                    {
                        possibleestmonth[date] = true;
                    }
                }



                date = date.AddMonths(1);
            }
        }