//---------------------------------------------------------------------

		public static int ComputeSize(IFireParameters eventParms)
		{
			double sizeGenerated = Random.GenerateExponential(eventParms.MeanSize);
			if (sizeGenerated < eventParms.MinSize)
				return (int) (eventParms.MinSize/Model.CellArea);
			else if (sizeGenerated > eventParms.MaxSize)
				return (int) (eventParms.MaxSize/Model.CellArea);
			else
				return (int) (sizeGenerated/Model.CellArea);
		}
		//---------------------------------------------------------------------

		public static void Initialize(IFireParameters[] eventParameters,
					      IFireCurve[] fireCurves,
					      IWindCurve[] windCurves,
		                              IDamageTable[]        damages)
		{
			FireEventParms = eventParameters;
			FireCurves = fireCurves;
			WindCurves = windCurves;
			Event.damages = damages;
		}
		//---------------------------------------------------------------------

		public static void Initialize(IFireParameters[] eventParameters,
					                  IFireCurve[]      fireCurves,
					                  IWindCurve[]      windCurves,
		                              IDamageTable[]    damages)
		{
			FireEventParms = eventParameters;
			FireCurves = fireCurves;
			WindCurves = windCurves;
			Event.damages = damages;

			ecoregions = Model.Ecoregions;
			successionPlugIn = Model.GetSuccession<AgeCohort.ICohort>();
			cohorts = successionPlugIn.Cohorts;
		}
		//---------------------------------------------------------------------

		public Parameters(int                timestep,
		                  IFireParameters[] eventParameters,
		                  IFireCurve[] fireCurves,
		                  IWindCurve[] windCurves,
		                  IDamageTable[] damages,
		                  string             mapNameTemplate,
		                  string             logFileName)
		{
			this.timestep = timestep;
			this.eventParameters = eventParameters;
			this.fireCurves = fireCurves;
			this.windCurves = windCurves;
			this.damages = damages;
			this.mapNamesTemplate = mapNameTemplate;
			this.logFileName = logFileName;
		}
        //---------------------------------------------------------------------

        public EcoregionParameters(string name,
                                   string description,
                                   ushort mapCode)
        {
            this.name = name;
            this.description = description;
            this.mapCode = mapCode;

            this.fireParameters = new FireParameters();
            this.fireCurve = new FireCurve();
            this.windCurve = new WindCurve();
        }
        //---------------------------------------------------------------------

        public EcoregionParameters(IEcoregionParameters parameters)
        {
            name           = parameters.Name;
            description    = parameters.Description;
            mapCode        = parameters.MapCode;
            fireParameters = parameters.FireParameters;
            fireCurve      = parameters.FireCurve;
            windCurve      = parameters.WindCurve;
        }
        //---------------------------------------------------------------------

        public static void Initialize(IFireParameters[] eventParameters,
                                      IFireCurve[]      fireCurves,
                                      IWindCurve[]      windCurves,
                                      IDamageTable[]    damages)
        {
            FireEventParms = eventParameters;
            FireCurves = fireCurves;
            WindCurves = windCurves;
            Event.damages = damages;

            cohorts = Model.Core.SuccessionCohorts as ILandscapeCohorts;
            if (cohorts == null)
                throw new System.ApplicationException("Error: Cohorts don't support age-cohort interface");
        }