- STELLA EQUATIONS -
The following equations represent the model documented in this paper. These equations were parsed by the translation software to run in conjunction with the immigration algorithm within a parrallel processing environment.
BROOD_DESIRE = IF (F_SG_EGGS_1+F_SG_EGGS_2 > 0) THEN .1
ELSE IF (F_SG_JUVENILES > 0) THEN .4
ELSE 1
DOCUMENT: Units = 0-1 factor representing relative desire to remain in the current location based on maternal instincts.
DESIRE_TO_MIGRATE = (1-GENERAL_ATTRACTION) * MAX(0.0,NESTING_DESIRE * BROOD_DESIRE - NOISE_FACTOR)
GENERAL_ATTRACTION = SNOW_COVER_FACTOR*SAGE_BRUSH_FACTOR*NOISE_FACTOR
DOCUMENT: Units = 0-1 index measuring the attraction of a cell to the grouse. 0 = unattractive and 1 = attractive.
LEK_ATTRACTION = CV_LEK_DIST*MALES_ON_LEK
DOCUMENT: This equation presumes that attractiveness increases as the noise from the Lek increases - which itself is simply presumed to be a linear function of the number of males on the lek and the distance to the lek. This ignores any internal driving motivation based on hormonal states within the females.
MALES_ON_LEK = GRAPH(CV_WEEK)
(4.00, 0.00), (5.00, 9.50), (6.00, 26.0), (7.00, 54.5), (8.00, 82.5), (9.00, 100), (10.0, 68.0), (11.0, 99.5), (12.0, 86.5), (13.0, 53.0), (14.0, 24.5), (15.0, 10.0), (16.0, 0.00)
DOCUMENT: Units = Total number of males expected on the lek.
NESTING_DESIRE = GRAPH(F_SG_PREGNANT)
(0.00, 1.00), (1.00, 1.00), (2.00, 0.915), (3.00, 0.705), (4.00, 0.505), (5.00, 0.38), (6.00, 0.29), (7.00, 0.225), (8.00, 0.205), (9.00, 0.185), (10.0, 0.185)
DOCUMENT: Units = 0-1 factor representing the desire of the female to remain in her current position based on the point she is in her pregnancy.
NOISE_FACTOR = GRAPH(CVH_NOISE_INDEX)
(0.00, 1.00), (0.1, 0.97), (0.2, 0.895), (0.3, 0.65), (0.4, 0.36), (0.5, 0.185), (0.6, 0.075), (0.7, 0.045), (0.8, 0.025), (0.9, 0.01), (1, 0.00)
DOCUMENT: Units = 0-1 factor representing noise as a function of military exercises in the cell.
SAGE_BRUSH_FACTOR = GRAPH(CVP_SAGEBRUSH)
(0.00, 0.1), (3.00, 0.13), (6.00, 0.2), (9.00, 0.465), (12.0, 0.775), (15.0, 0.905), (18.0, 0.96), (21.0, 0.985), (24.0, 0.995), (27.0, 0.995), (30.0, 1.00)
DOCUMENT: Units = 0-1 factor representing migration desire as a function of sage brush densities.
SNOW_COVER_FACTOR = GRAPH(CVS_SNOW)
(0.00, 1.00), (1.80, 0.96), (3.60, 0.825), (5.40, 0.465), (7.20, 0.29), (9.00, 0.195), (10.8, 0.135), (12.6, 0.09), (14.4, 0.05), (16.2, 0.025), (18.0, 0.00)
DOCUMENT: Units = 0-1 index measuring the desire to migrate as a function of snow depth.
CVH_COMPACTION = SOIL_COMPACTION_INDEX
DOCUMENT: Units= percent of land compacted
CVH_NOISE_INDEX = NOISE_INDEX
DOCUMENT: Units = ranges from 0 (no noise) to 1 (full noise impact)
CVH_VEG_DAMAGE_INDEX = VEG_DAMAGE
DOCUMENT: Units = value that ranges from 0 (no damage) to 1000 (complete damage).
CVP_AGROPYRON = AG_COVER
DOCUMENT: Units = percent cover of Agropyron Spicatum
CVP_FORB = FB_COVER
DOCUMENT: Units = percent cover of forbs
CVP_SAGEBRUSH = SB_COVER
DOCUMENT: Units = percent cover of sagebrush
CVS_SNOW = SM_SNOW_PAC
DOCUMENT: Units = millimeters of water stored in the snow.
CVS_SOIL_MOISTURE = AVAILABLE_SOIL_MOISTURE
DOCUMENT: Units = millimeters
CVS_TEMPERATURE = SM_TEMPERATURE
CV_ASPECT = 180
DOCUMENT: Units = degrees
CV_ELEVATION = 800
DOCUMENT: Units = meters above sea level
CV_ENCAMP_HR = 2000
DOCUMENT: Units = personnel encampment hours per 100 hectares per exercise.
CV_LEK_DIST = 100
DOCUMENT: Units = meters
CV_SLOPE = 1
DOCUMENT: Units = degrees of incline
CV_SOIL_PERM = 0
DOCUMENT: Soil permeability in ? units
CV_TRAK_VEH_HR = 10
DOCUMENT: Units = moving tracked vehicle hours per 100 hectares per exercise
CV_TROOP_HR = 100
DOCUMENT: Units = active troop hours per 100 hectares per exercise
CV_UTRAK_VEH_HR = 10
DOCUMENT: Units = moving untracked vehicle hours per 100 hectares per exercise
CV_WATER_HOLDING_CAPACITY = 45.0
DOCUMENT: Units = millimeters of water in the first 15 centimeters of soil with 100% saturation.
CV_WEEK = MOD(TIME,52)
DOCUMENT: Units = weeks
CV_WETNESS_INDEX = 1.0
DOCUMENT: Units = constant
FIRE_DAMAGE = 0
DOCUMENT: Units = 1 (fire) or 0 (no fire)
TEST_AGROPYRON = GRAPH(MOD(TIME,52))
(0.00, 30.0), (1.00, 30.0), (2.00, 30.0), (3.00, 30.0), (4.00, 30.0), (5.00, 30.0), (6.00, 30.0), (7.00, 30.0), (8.00, 30.0), (9.00, 30.0), (10.0, 30.0), (11.0, 29.9), (12.0, 29.9), (13.0, 29.9), (14.0, 29.9), (15.0, 29.9), (16.0, 29.9), (17.0, 29.9), (18.0, 29.9), (19.0, 29.9), (20.0, 29.9), (21.0, 29.9), (22.0, 29.9), (23.0, 29.9), (24.0, 29.9), (25.0, 29.9), (26.0, 29.9), (27.0, 29.9), (28.0, 29.9), (29.0, 29.9), (30.0, 29.9), (31.0, 29.9), (32.0, 29.9), (33.0, 29.9), (34.0, 29.9), (35.0, 29.9), (36.0, 29.9), (37.0, 29.9), (38.0, 29.9), (39.0, 29.9), (40.0, 29.9), (41.0, 29.9), (42.0, 29.9), (43.0, 29.9), (44.0, 29.9), (45.0, 29.8), (46.0, 29.8), (47.0, 29.8), (48.0, 29.8), (49.0, 29.8), (50.0, 29.8), (51.0, 29.8)
DOCUMENT: Units = Time vs. cover
TEST_COMPACTION = GRAPH(MOD(TIME,52))
(0.00, 0.00), (1.00, 0.00), (2.00, 0.00), (3.00, 0.00), (4.00, 0.00), (5.00, 0.00), (6.00, 0.00), (7.00, 0.00), (8.00, 0.00), (9.00, 0.00), (10.0, 0.00), (11.0, 0.71), (12.0, 0.71), (13.0, 0.7), (14.0, 0.69), (15.0, 0.69), (16.0, 0.68), (17.0, 0.67), (18.0, 0.67), (19.0, 0.66), (20.0, 0.65), (21.0, 0.65), (22.0, 0.64), (23.0, 0.63), (24.0, 0.63), (25.0, 0.62), (26.0, 0.61), (27.0, 0.61), (28.0, 0.6), (29.0, 0.6), (30.0, 0.59), (31.0, 0.58), (32.0, 0.58), (33.0, 0.57), (34.0, 0.57), (35.0, 0.56), (36.0, 0.56), (37.0, 0.55), (38.0, 0.54), (39.0, 0.54), (40.0, 0.53), (41.0, 0.53), (42.0, 0.52), (43.0, 0.52), (44.0, 0.51), (45.0, 0.51), (46.0, 0.5), (47.0, 0.5), (48.0, 0.49), (49.0, 0.49), (50.0, 0.48), (51.0, 0.48)
DOCUMENT: Units = time vs. compaction
TEST_FORB = GRAPH(MOD(TIME,52))
(0.00, 6.00), (1.00, 5.99), (2.00, 5.98), (3.00, 5.97), (4.00, 5.95), (5.00, 5.94), (6.00, 5.93), (7.00, 5.92), (8.00, 5.91), (9.00, 5.90), (10.0, 5.89), (11.0, 5.87), (12.0, 5.86), (13.0, 5.85), (14.0, 5.84), (15.0, 5.82), (16.0, 5.81), (17.0, 5.80), (18.0, 5.79), (19.0, 5.78), (20.0, 5.77), (21.0, 5.76), (22.0, 5.75), (23.0, 5.74), (24.0, 5.72), (25.0, 5.71), (26.0, 5.70), (27.0, 5.69), (28.0, 5.68), (29.0, 5.67), (30.0, 5.66), (31.0, 5.65), (32.0, 5.64), (33.0, 5.63), (34.0, 5.61), (35.0, 5.60), (36.0, 5.59), (37.0, 5.58), (38.0, 5.57), (39.0, 5.56), (40.0, 5.55), (41.0, 5.54), (42.0, 5.53), (43.0, 5.52), (44.0, 5.51), (45.0, 5.50), (46.0, 5.49), (47.0, 5.48), (48.0, 5.47), (49.0, 5.46), (50.0, 5.44), (51.0, 5.43)
DOCUMENT: Units = time vs. cover
TEST_NOISE = GRAPH(MOD(TIME,52))
(0.00, 0.00), (1.00, 0.00), (2.00, 0.00), (3.00, 0.00), (4.00, 0.00), (5.00, 0.00), (6.00, 0.00), (7.00, 0.00), (8.00, 0.00), (9.00, 0.00), (10.0, 1.00), (11.0, 0.00), (12.0, 0.00), (13.0, 0.00), (14.0, 0.00), (15.0, 0.00), (16.0, 0.00), (17.0, 0.00), (18.0, 0.00), (19.0, 0.00), (20.0, 0.00), (21.0, 0.00), (22.0, 0.00), (23.0, 0.00), (24.0, 0.00), (25.0, 0.00), (26.0, 0.00), (27.0, 0.00), (28.0, 0.00), (29.0, 0.00), (30.0, 0.00), (31.0, 0.00), (32.0, 0.00), (33.0, 0.00), (34.0, 0.00), (35.0, 0.00), (36.0, 0.00), (37.0, 0.00), (38.0, 0.00), (39.0, 0.00), (40.0, 0.00), (41.0, 0.00), (42.0, 0.00), (43.0, 0.00), (44.0, 0.00), (45.0, 0.00), (46.0, 0.00), (47.0, 0.00), (48.0, 0.00), (49.0, 0.00), (50.0, 0.00), (51.0, 0.00)
DOCUMENT: Units = time vs. noise
TEST_SAGEBRUSH = GRAPH(MOD(TIME,52))
(0.00, 18.0), (1.00, 18.0), (2.00, 18.0), (3.00, 18.0), (4.00, 18.0), (5.00, 18.0), (6.00, 18.0), (7.00, 17.9), (8.00, 17.9), (9.00, 17.9), (10.0, 17.9), (11.0, 17.9), (12.0, 17.9), (13.0, 17.9), (14.0, 17.9), (15.0, 17.9), (16.0, 17.9), (17.0, 17.9), (18.0, 17.9), (19.0, 17.9), (20.0, 17.9), (21.0, 17.8), (22.0, 17.8), (23.0, 17.8), (24.0, 17.8), (25.0, 17.8), (26.0, 17.8), (27.0, 17.8), (28.0, 17.8), (29.0, 17.8), (30.0, 17.8), (31.0, 17.8), (32.0, 17.8), (33.0, 17.8), (34.0, 17.8), (35.0, 17.7), (36.0, 17.7), (37.0, 17.7), (38.0, 17.7), (39.0, 17.7), (40.0, 17.7), (41.0, 17.7), (42.0, 17.7), (43.0, 17.7), (44.0, 17.7), (45.0, 17.7), (46.0, 17.7), (47.0, 17.7), (48.0, 17.7), (49.0, 17.6), (50.0, 17.6), (51.0, 17.6)
DOCUMENT: Units = time vs. cover
TEST_SNOW = GRAPH(MOD(TIME,52))
(0.00, 30.0), (1.00, 29.4), (2.00, 28.4), (3.00, 26.7), (4.00, 24.8), (5.00, 22.2), (6.00, 19.8), (7.00, 17.4), (8.00, 13.9), (9.00, 10.7), (10.0, 6.65), (11.0, 2.08), (12.0, 0.33), (13.0, 0.03), (14.0, 0.00), (15.0, 0.00), (16.0, 0.00), (17.0, 0.00), (18.0, 0.00), (19.0, 0.00), (20.0, 0.00), (21.0, 0.00), (22.0, 0.00), (23.0, 0.00), (24.0, 0.00), (25.0, 0.00), (26.0, 0.00), (27.0, 0.00), (28.0, 0.00), (29.0, 0.00), (30.0, 0.00), (31.0, 0.00), (32.0, 0.00), (33.0, 0.00), (34.0, 0.00), (35.0, 0.00), (36.0, 0.00), (37.0, 0.00), (38.0, 0.00), (39.0, 0.00), (40.0, 0.00), (41.0, 0.00), (42.0, 0.00), (43.0, 0.00), (44.0, 0.00), (45.0, 0.00), (46.0, 0.00), (47.0, 0.00), (48.0, 6.29), (49.0, 12.6), (50.0, 19.0), (51.0, 25.5)
DOCUMENT: Units = time vs snow
TEST_SOIL_MOISTURE = GRAPH(MOD(TIME,52))
(0.00, 10.0), (1.00, 7.18), (2.00, 5.64), (3.00, 4.55), (4.00, 3.75), (5.00, 3.31), (6.00, 3.37), (7.00, 4.05), (8.00, 5.55), (9.00, 7.71), (10.0, 9.99), (11.0, 11.8), (12.0, 9.46), (13.0, 7.26), (14.0, 5.72), (15.0, 4.61), (16.0, 3.78), (17.0, 3.12), (18.0, 2.59), (19.0, 2.16), (20.0, 1.80), (21.0, 1.51), (22.0, 1.27), (23.0, 1.06), (24.0, 0.89), (25.0, 0.75), (26.0, 0.63), (27.0, 0.53), (28.0, 0.45), (29.0, 0.38), (30.0, 0.32), (31.0, 0.27), (32.0, 0.23), (33.0, 0.19), (34.0, 0.16), (35.0, 0.14), (36.0, 0.12), (37.0, 0.1), (38.0, 0.08), (39.0, 0.07), (40.0, 0.06), (41.0, 0.05), (42.0, 0.04), (43.0, 0.04), (44.0, 0.03), (45.0, 0.03), (46.0, 0.02), (47.0, 0.02), (48.0, 0.02), (49.0, 0.01), (50.0, 0.01), (51.0, 0.01)
TEST_TEMPERATURE = GRAPH(MOD(TIME,52))
(0.00, -2.50), (1.00, -1.65), (2.00, -0.8), (3.00, 0.05), (4.00, 0.9), (5.00, 1.90), (6.00, 2.94), (7.00, 3.99), (8.00, 5.03), (9.00, 6.11), (10.0, 7.22), (11.0, 8.33), (12.0, 9.44), (13.0, 10.5), (14.0, 11.6), (15.0, 12.6), (16.0, 13.7), (17.0, 14.7), (18.0, 15.5), (19.0, 16.3), (20.0, 17.0), (21.0, 17.8), (22.0, 18.6), (23.0, 19.5), (24.0, 20.4), (25.0, 21.2), (26.0, 21.5), (27.0, 21.2), (28.0, 20.9), (29.0, 20.6), (30.0, 20.1), (31.0, 19.1), (32.0, 18.2), (33.0, 17.2), (34.0, 16.3), (35.0, 14.9), (36.0, 13.4), (37.0, 12.0), (38.0, 10.6), (39.0, 8.99), (40.0, 7.28), (41.0, 5.57), (42.0, 3.86), (43.0, 2.61), (44.0, 1.84), (45.0, 1.07), (46.0, 0.3), (47.0, -0.41), (48.0, -0.93), (49.0, -1.45), (50.0, -1.98), (51.0, -2.50)
TEST_VEG_DAMAGE = GRAPH(MOD(TIME,52))
(0.00, 0.00), (1.00, 0.00), (2.00, 0.00), (3.00, 0.00), (4.00, 0.00), (5.00, 0.84), (6.00, 0.00), (7.00, 0.00), (8.00, 0.00), (9.00, 0.00), (10.0, 1.00), (11.0, 0.00), (12.0, 0.00), (13.0, 0.00), (14.0, 0.00), (15.0, 0.00), (16.0, 0.00), (17.0, 0.00), (18.0, 0.00), (19.0, 0.00), (20.0, 0.00), (21.0, 0.00), (22.0, 0.00), (23.0, 0.00), (24.0, 0.00), (25.0, 0.00), (26.0, 0.00), (27.0, 0.00), (28.0, 0.00), (29.0, 0.00), (30.0, 0.00), (31.0, 0.00), (32.0, 0.00), (33.0, 0.00), (34.0, 0.00), (35.0, 0.00), (36.0, 0.00), (37.0, 0.00), (38.0, 0.00), (39.0, 0.00), (40.0, 0.00), (41.0, 0.00), (42.0, 0.00), (43.0, 0.00), (44.0, 0.00), (45.0, 0.00), (46.0, 0.00), (47.0, 0.00), (48.0, 0.00), (49.0, 0.00), (50.0, 0.00), (51.0, 0.00)
Training_Schedule = GRAPH(MOD(TIME,52))
(0.00, 0.00), (1.00, 0.00), (2.00, 1.00), (3.00, 0.00), (4.00, 0.00), (5.00, 0.00), (6.00, 1.00), (7.00, 0.00), (8.00, 0.00), (9.00, 0.00), (10.0, 0.00), (11.0, 0.00), (12.0, 0.00), (13.0, 0.00), (14.0, 0.00), (15.0, 0.00), (16.0, 0.00), (17.0, 0.00), (18.0, 0.00), (19.0, 0.00), (20.0, 0.00), (21.0, 0.00), (22.0, 0.00), (23.0, 0.00), (24.0, 0.00), (25.0, 0.00), (26.0, 0.00), (27.0, 0.00), (28.0, 0.00), (29.0, 0.00), (30.0, 0.00), (31.0, 0.00), (32.0, 0.00), (33.0, 0.00), (34.0, 0.00), (35.0, 0.00), (36.0, 0.00), (37.0, 0.00), (38.0, 0.00), (39.0, 0.00), (40.0, 0.00), (41.0, 0.00), (42.0, 0.00), (43.0, 0.00), (44.0, 0.00), (45.0, 0.00), (46.0, 0.00), (47.0, 0.00), (48.0, 0.00), (49.0, 0.00), (50.0, 0.00), (51.0, 0.00)
DOCUMENT: Units = 1(training regime) or 0 (no training)
SOIL_COMPACTION_INDEX(t) = SOIL_COMPACTION_INDEX(t - dt) + (NEW_COMPACTION - UNCOMPACTION) * dt
INIT SOIL_COMPACTION_INDEX = 0
DOCUMENT: Units = Percent land compacted.
NEW_COMPACTION = COMPACTION * (1 - SOIL_COMPACTION_INDEX)
DOCUMENT: Units = percent of land to be compacted.
UNCOMPACTION = SOIL_COMPACTION_INDEX * .01
DOCUMENT: Units = percent land uncompacted every dt
CV_TRAK_VEH_NOISE = 10
DOCUMENT: Units = Tracked vehicle hours in use per 100 hectares per exercise
NOISE_COEF_C = .5
DOCUMENT: Units = troop-hr noise units
NOISE_COEF_T = 1
DOCUMENT: units = troop-hr noise units
NOISE_COEF_TV = 100
DOCUMENT: units = troop-hr noise units
NOISE_COEF_UTV = 50
DOCUMENT: Units = troop-hr noise units
SOIL_COMPACT_COEF_C = .001
DOCUMENT: Units = hectares compacted per troop-hour of bivouacing.
SOIL_COMPACT_COEF_T = .0001
DOCUMENT: Units = hectares compacted per troop-hour of training
SOIL_COMPACT_COEF_TV = .15
DOCUMENT: Units = hectares compacted per tracked-vehicle-hour of training
SOIL_COMPACT_COEF_UTV = .10
DOCUMENT: Units = hectares compacted per untracked-vehicle-hour of training
SOIL_COM_C_MULT = CV_ENCAMP_HR * SOIL_COMPACT_COEF_C / 100
DOCUMENT: Units = area damaged per hectare
SOIL_COM_TV_MULT = SOIL_COMPACT_COEF_TV * CV_TRAK_VEH_HR / 100
DOCUMENT: Units = area damaged per hectare
SOIL_COM_T_MULT = SOIL_COMPACT_COEF_T * CV_TROOP_HR / 100
DOCUMENT: Units = area damaged per hectare
SOIL_COM_UTV_MULT = SOIL_COMPACT_COEF_UTV * CV_UTRAK_VEH_HR / 100
DOCUMENT: Units = area damaged per hectare
VEG_DAMAGE_COEF_C = 1
DOCUMENT: Units = vegetation impact units per troop-hour of training
VEG_DAMAGE_COEF_T = 1
DOCUMENT: Units = vegetation impact units per troop-hour of training
VEG_DAMAGE_COEF_TV = 1000
DOCUMENT: Units = vegetation impact units per troop-hour of training
VEG_DAMAGE_COEF_UTV = 500
DOCUMENT: Units = vegetation impact units per troop-hour of training
VEG_DAMAGE_C_MULT = CV_ENCAMP_HR * VEG_DAMAGE_COEF_C / 100
DOCUMENT: Units = vegetation impact units per hectare
VEG_DAMAGE_TV_MULT = CV_TRAK_VEH_HR * VEG_DAMAGE_COEF_TV / 100
DOCUMENT: Units = vegetation impact units per hectare
VEG_DAMAGE_T_MULT = VEG_DAMAGE_COEF_T * CV_TROOP_HR / 100
DOCUMENT: Units = vegetation impact units per hectare
VEG_DAMAGE_UTV_MULT = VEG_DAMAGE_COEF_UTV * CV_UTRAK_VEH_HR / 100
DOCUMENT: Units = vegetation impact units per hectare
COMPACTION = GRAPH(Training_Schedule * (SOIL_COM_TV_MULT + SOIL_COM_UTV_MULT + SOIL_COM_C_MULT + SOIL_COM_T_MULT) / 10000)
(0.00, 0.00), (1.00, 0.36), (2.00, 0.55), (3.00, 0.7), (4.00, 0.8), (5.00, 0.88), (6.00, 0.93), (7.00, 0.97), (8.00, 0.99), (9.00, 0.995), (10.0, 1.00)
DOCUMENT: Units = 0 -1 index measuring total compaction of the system per exercise.
NOISE_INDEX = GRAPH(Training_Schedule*CV_TRAK_VEH_NOISE)
(0.00, 0.00), (10.0, 0.235), (20.0, 0.44), (30.0, 0.59), (40.0, 0.695), (50.0, 0.78), (60.0, 0.85), (70.0, 0.92), (80.0, 0.97), (90.0, 0.995), (100, 1.00)
DOCUMENT: Units = 0-100 percent index per excercise
VEG_DAMAGE = GRAPH(Training_Schedule * (VEG_DAMAGE_UTV_MULT + VEG_DAMAGE_TV_MULT + VEG_DAMAGE_C_MULT + VEG_DAMAGE_T_MULT))
(0.00, 0.00), (100, 0.365), (200, 0.555), (300, 0.705), (400, 0.795), (500, 0.865), (600, 0.92), (700, 0.96), (800, 0.98), (900, 0.995), (1000, 1.00)
DOCUMENT: 1. Compute HA-damaged/HA/Exercise by summing the following:
Troop-hours/HA/Exercise * HA-damaged/Troop-hour
TV-hours/HA/Exercise * HA-damaged/TV-hour
UTV-hours/HA/Exercise * HA-damaged/UTV-hour
Bivouac-hours/HA/Exercise * HA-damaged/Bivouac-hour
2. Compute HA-damaged/HA by multiplying:
HA-damaged/HA/Exercise * Exercises
3. Compute noise index by sending HA-damaged/HA through graph
AG_COVER(t) = AG_COVER(t - dt) + (NEW_AG_COVER - AG_FIRE - AG_NATURAL_DEATH - AG_HUMAN_IMPACT - AG_CONSUMPTION) * dt
INIT AG_COVER = 30
DOCUMENT: Units = percent cover
NEW_AG_COVER = MIN(NEW_AG,AG_COVER-59)
DOCUMENT: Units = percent cover
AG_FIRE = IF FIRE_DAMAGE=1 THEN AG_COVER ELSE 0
DOCUMENT: Units = percent agropyron cover
AG_NATURAL_DEATH = AG_COVER*.005/52
DOCUMENT: Units = percent cover dying
AG_HUMAN_IMPACT = IF( CVH_VEG_DAMAGE_INDEX > 0) THEN AG_COVER-(CVH_VEG_DAMAGE_INDEX*AG_COVER) ELSE 0
DOCUMENT: Units = percent cover left after a human impact
AG_CONSUMPTION = AG_COVER*0
DOCUMENT: Units = percent cover lost due to consumption
FB_COVER(t) = FB_COVER(t - dt) + (NEW_FB_COVER - FB_FIRE - FB_NAT_DEATH - FB_HUMAN_IMPACT - FB_CONSUMPTION) * dt
INIT FB_COVER = 6
DOCUMENT: Units = percent cover forbs
NEW_FB_COVER = MIN(NEW_FB,FB_COVER-59)
DOCUMENT: Units = percent cover
FB_FIRE = IF FIRE_DAMAGE=1 THEN FB_COVER ELSE 0
DOCUMENT: Units = percent cover consumed per fire
FB_NAT_DEATH = FB_COVER*.1/52
DOCUMENT: Units = percent cover
FB_HUMAN_IMPACT = IF (CVH_VEG_DAMAGE_INDEX>0) THEN FB_COVER-(CVH_VEG_DAMAGE_INDEX*FB_COVER) ELSE 0
DOCUMENT: Units = 0 to 1 index representing percent cover.
FB_CONSUMPTION = FB_COVER*0
DOCUMENT: Units = percent cover lost due to consumption
SB_COVER(t) = SB_COVER(t - dt) + (NEW_SB_COVER - SB_FIRE - SB_NAT_DEATH - SB_HUMAN_IMPACT - SB_CONSUMPTION) * dt
INIT SB_COVER = 18
DOCUMENT: Units = percent cover
NEW_SB_COVER = MIN(NEW_SB,SB_COVER-25)
DOCUMENT: Units = percent cover
SB_FIRE = IF FIRE_DAMAGE=1 THEN SB_COVER ELSE 0
DOCUMENT: Units = percent cover burned
SB_NAT_DEATH = SB_COVER*.02/52
DOCUMENT: Units = percent cover
SB_HUMAN_IMPACT = IF (CVH_VEG_DAMAGE_INDEX>0) THEN SB_COVER-(CVH_VEG_DAMAGE_INDEX*SB_COVER) ELSE 0
DOCUMENT: Units = percent cover
SB_CONSUMPTION = SB_COVER*0
DOCUMENT: Units = percent cover
AG_POST_FIRE_COVER = DELAY(AG_REGROWTH,78)
DOCUMENT: Units = percent cover
AG_REGROWTH = if FIRE_DAMAGE=1 THEN .05*TOTAL_COVER ELSE 0
DOCUMENT: Units = percent cover
FB_POST_FIRE_COVER = DELAY(FB_REGROWTH,78)
DOCUMENT: Units = percent cover
FB_REGROWTH = if FIRE_DAMAGE=1 THEN .05*TOTAL_COVER ELSE 0
DOCUMENT: Units = percent cover
NEW_AG = IF (CVS_TEMPERATUREÒ12.0) AND
(CVS_TEMPERATUREÓ22.0) AND
(CVS_SOIL_MOISTUREÒ8.0) AND
(CVS_SOIL_MOISTUREÓ10.00) AND
(CV_WEEKÒ15) AND
(CV_WEEKÓ25) THEN
AG_COVER *(AG_ASPECT_MOD* .02) +AG_POST_FIRE_COVER
ELSE 0
DOCUMENT: Units = percent cover added per dt
NEW_FB = IF (CVS_TEMPERATUREÒ12.0) AND
(CVS_TEMPERATUREÓ22.0) AND
(CVS_SOIL_MOISTUREÒ8.0) AND
(CVS_SOIL_MOISTUREÓ10.00) AND
(CV_WEEKÒ15) AND
(CV_WEEKÓ25) THEN
FB_COVER *(FB_ASPECT_MOD* .02) +FB_POST_FIRE_COVER
ELSE 0
DOCUMENT: Units = percent cover added per dt
NEW_SB = IF (CVS_TEMPERATUREÒ12.0) AND
(CVS_TEMPERATUREÓ22.0) AND
(CVS_SOIL_MOISTUREÒ8.0) AND
(CVS_SOIL_MOISTUREÓ10.00) AND
(CV_WEEKÒ15) AND
(CV_WEEKÓ25) THEN
SB_COVER *(SB_ASPECT_MOD* .02) +SB_POST_FIRE_COVER
ELSE 0
DOCUMENT: Units = percent cover added per dt
SB_POST_FIRE_COVER = DELAY(SB_REGROWTH,78)
DOCUMENT: Units = percent cover
SB_REGROWTH = if FIRE_DAMAGE=1 THEN .05*TOTAL_COVER ELSE 0
DOCUMENT: Units = percent cover
TOTAL_COVER = MIN(100,AG_COVER+FB_COVER+SB_COVER)
DOCUMENT: Units = percent cover of all vegetation
AG_ASPECT_MOD = GRAPH(CV_ASPECT)
(0.00, 0.6), (36.4, 0.605), (72.8, 0.61), (109, 0.635), (146, 0.71), (182, 0.95), (218, 1.00), (255, 1.00), (291, 0.87), (328, 0.725), (364, 0.6)
DOCUMENT: Units = degrees
FB_ASPECT_MOD = GRAPH(CV_ASPECT)
(0.00, 0.6), (36.4, 0.605), (72.8, 0.61), (109, 0.635), (146, 0.71), (182, 0.95), (218, 1.00), (255, 1.00), (291, 0.87), (328, 0.725), (364, 0.6)
DOCUMENT: Units = degrees
SB_ASPECT_MOD = GRAPH(CV_ASPECT)
(0.00, 0.6), (36.4, 0.605), (72.8, 0.61), (109, 0.635), (146, 0.71), (182, 0.95), (218, 1.00), (255, 1.00), (291, 0.87), (328, 0.725), (364, 0.6)
DOCUMENT: Units = degrees
F_SG_ADULTS(t) = F_SG_ADULTS(t - dt) + (SURVIVAL_2 - F_ADULT_DEATHS) * dt
INIT F_SG_ADULTS = 1{female grouse}
DOCUMENT: Units = female adults per hectare (?)
SURVIVAL_2 = IF (CV_WEEK = 0) THEN F_SG_JUVENILES/DT ELSE 0
DOCUMENT: Units = surviving female juveniles
F_ADULT_DEATHS = IF ( Random (0.0,1.0) (F_ADULT_DEATH_1 - INT(F_ADULT_DEATH_1)))
THEN (1/DT) * (INT (F_ADULT_DEATH_1) +1)
ELSE (1/DT) * ( INT (F_ADULT_DEATH_1))
DOCUMENT: Units = number of female adult deaths
F_SG_EGGS_1(t) = F_SG_EGGS_1(t - dt) + (EGG_LAYING - EGG_SURV_1 - EGG_DEATH_1 - ABANDON_DEATH_1) * dt
INIT F_SG_EGGS_1 = 0
DOCUMENT: Units = number of eggs
EGG_LAYING = IF (Random(0.0,1.0) (EGG_LAY - INT(EGG_LAY)))
THEN (1/DT) * (INT(EGG_LAY) + 1)
ELSE (1/DT) * (INT(EGG_LAY))
DOCUMENT: Units = number of eggs hatched per pair of grouse
EGG_SURV_1 = IF (Random(0.0,1.0) (DT * F_SG_EGGS_1 - INT(DT * F_SG_EGGS_1)))
THEN (1/(DT * DT)) * (INT(DT * F_SG_EGGS_1) + 1)
ELSE (1/(DT * DT)) * (INT(DT * F_SG_EGGS_1) )
DOCUMENT: Units = number of eggs
EGG_DEATH_1 = IF (DT * Random(0.0,1.0) (EGG_DEATH_A - INT(EGG_DEATH_A)))
THEN (1/DT) * (INT(EGG_DEATH_A) + 1)
ELSE (1/DT) * (INT(EGG_DEATH_A))
DOCUMENT: Units = number of eggs
ABANDON_DEATH_1 = IF (F_SG_ADULTS = 0) THEN 1/DT * F_SG_EGGS_1 ELSE 0
DOCUMENT: Units = number of eggs
F_SG_EGGS_2(t) = F_SG_EGGS_2(t - dt) + (EGG_SURV_1 - EGG_SURV_2 - EGG_DEATH_2 - ABANDON_DEATH_2) * dt
INIT F_SG_EGGS_2 = 0
DOCUMENT: Units = number of eggs
EGG_SURV_1 = IF (Random(0.0,1.0) (DT * F_SG_EGGS_1 - INT(DT * F_SG_EGGS_1)))
THEN (1/(DT * DT)) * (INT(DT * F_SG_EGGS_1) + 1)
ELSE (1/(DT * DT)) * (INT(DT * F_SG_EGGS_1) )
DOCUMENT: Units = number of eggs
EGG_SURV_2 = IF (Random(0.0,1.0) (DT * F_SG_EGGS_2 - INT(DT * F_SG_EGGS_2)))
THEN (1/(DT * DT)) * (INT(DT * F_SG_EGGS_2) + 1)
ELSE (1/(DT * DT)) * (INT(DT * F_SG_EGGS_2) )
DOCUMENT: Units = number of eggs
EGG_DEATH_2 = IF (DT * Random(0.0,1.0) (EGG_DEATH_B - INT(EGG_DEATH_B)))
THEN (1/DT) * (INT(EGG_DEATH_B) + 1)
ELSE (1/DT) * (INT(EGG_DEATH_B))
ABANDON_DEATH_2 = IF (F_SG_ADULTS = 0) THEN 1/DT * F_SG_EGGS_2 ELSE 0
F_SG_JUVENILES(t) = F_SG_JUVENILES(t - dt) + (EGG_SURV_2 - F_JUVENILE_DEATH - SURVIVAL_2) * dt
INIT F_SG_JUVENILES = 0
EGG_SURV_2 = IF (Random(0.0,1.0) (DT * F_SG_EGGS_2 - INT(DT * F_SG_EGGS_2)))
THEN (1/(DT * DT)) * (INT(DT * F_SG_EGGS_2) + 1)
ELSE (1/(DT * DT)) * (INT(DT * F_SG_EGGS_2) )
DOCUMENT: Units = number of eggs
F_JUVENILE_DEATH = IF (DT * Random(0.0,1.0) (F_JUVENILE_DEATH_1 - INT(F_JUVENILE_DEATH_1)))
THEN (1/DT) * (INT(F_JUVENILE_DEATH_1) + 1)
ELSE (1/DT) * (INT(F_JUVENILE_DEATH_1))
DOCUMENT: Units = number of female juvenile deaths
SURVIVAL_2 = IF (CV_WEEK = 0) THEN F_SG_JUVENILES/DT ELSE 0
DOCUMENT: Units = surviving female juveniles
F_SG_PREGNANT(t) = F_SG_PREGNANT(t - dt) + (FERTILIZE - GESTATE) * dt
INIT F_SG_PREGNANT = 0
DOCUMENT: Units = number of pregnant female sage grouse
FERTILIZE = IF (CV_LEK_DIST = 0 & F_SG_PREGNANT = 0 & F_SG_JUVENILES = 0) THEN
F_SG_ADULTS*MALES_ON_LEK* 0.1
ELSE 0
DOCUMENT: Units = number of female sage grouse fertilized per dt
GESTATE = DT
DOCUMENT: Units = number of female sage grouse gestating per dt (?)
ADULT_SURV_FRAC = .30
DOCUMENT: Units = constant that gives adults surviving.
ADULT_WEEKS = 156
DOCUMENT: Units = weeks
EGGS_PER_FEMALE = 6
DOCUMENT: Units = eggs
EGG_DEATH_A = IF (EGG_TOTAL = 0) THEN 0
ELSE (F_SG_EGGS_1/EGG_TOTAL) * SG_EGG_DEATH
DOCUMENT: Units = number of eggs
EGG_DEATH_B = SG_EGG_DEATH-EGG_DEATH_A
DOCUMENT: Units = number of eggs
EGG_LAY = IF (FERTILIZE Ð 0) THEN EGGS_PER_FEMALE ELSE 0
DOCUMENT: Units = number of eggs
EGG_SURV_FRACTION = .38
DOCUMENT: Units = fraction of eggs surviving
EGG_TOTAL = F_SG_EGGS_1+F_SG_EGGS_2
DOCUMENT: Units = number of eggs
EGG_WEEKS = 2
DOCUMENT: Units = weeks
F_ADULT_DEATH_1 = (1-MOD_ADULT_SUR_FRAC)*(F_SG_ADULTS/DT)
DOCUMENT: Units = adult deaths
F_JUVENILE_DEATH_1 = DT * (1-MOD_JUV_SUR_FRAC) * F_SG_JUVENILES
DOCUMENT: Units = juvenile deaths
F_SG_POPULATION = F_SG_ADULTS+F_SG_JUVENILES
DOCUMENT: Units = number of sage grouse
JUV_WEEKS = 50
DOCUMENT: Units = weeks
MOD_ADULT_SUR_FRAC = EXP(LOGN(ADULT_SURV_FRAC)*(DT/ADULT_WEEKS))
DOCUMENT: Units = fraction of adults surviving
MOD_EGG_SUR_FRAC = 1/DT * ( 1 - EXP(LOGN(EGG_SURV_FRACTION)*(DT/EGG_WEEKS)))
DOCUMENT: Units = fraction of eggs surviving
MOD_JUV_SUR_FRAC = (EXP(LOGN(JUV_SURV_FRACT)*(DT/JUV_WEEKS)))
DOCUMENT: Units = fraction of juveniles surviving
SG_EGG_DEATH = DT * (1-MOD_EGG_SUR_FRAC) * EGG_TOTAL
DOCUMENT: Units = number of eggs dying
JUV_SURV_FRACT = GRAPH(CVP_SAGEBRUSH)
(0.00, 0.16), (2.50, 0.16), (5.00, 0.18), (7.50, 0.22), (10.0, 0.27), (12.5, 0.355), (15.0, 0.47), (17.5, 0.6), (20.0, 0.7), (22.5, 0.775), (25.0, 0.8)
DOCUMENT: Units = fraction of juveniles surviving
CELL_SIZE = .09
DOCUMENT: Units = hectares
Hab = on_map
DOCUMENT: Units = constant
on_map = 1
DOCUMENT: Units = ?
AVAILABLE_SOIL_MOISTURE(t) = AVAILABLE_SOIL_MOISTURE(t - dt) + (SM_ACTUAL_INFILTRATION - SM_DECREASE) * dt
INIT AVAILABLE_SOIL_MOISTURE = 10
DOCUMENT: Units = millimeters of water (stored in the top 15 centimeters)
SM_ACTUAL_INFILTRATION = SM_POTENTIAL_INFILTRATION*SM_INFILTRATION_RATE
SM_DECREASE = IF (SM_SWITCH = 1) THEN {IN MILLIMETERS LOST FROM STORAGE}
SM_ADJUSTED_AE
ELSE
SM_PE_CONVERSION
DOCUMENT: This is really the rate of evapotransporation from the soil in the specific cell being modeled.
((-400 + 30*SM_Temp - 0.4*SM_Temp*SM_Temp)*SM_Radiation_Index*SM_Cover)*10
IF SM_Temp > 26.5 THEN (-415.85+(32.42*SM_Temp)-(0.43*SM_Temp^2)) ELSE
SM_Cover*SM_Radiation_Index
IF SOIL_MOISTURE_STORAGE SM_MAX AND SOIL_MOISTURE_STORAGE > SM_MIN THEN SM_PE_CONVERSION ELSE IF SOIL_MOISTURE_STORAGE SM_MIN THEN SM_ADJUSTED_AE ELSE 0
SM_ADJUSTED_AE
SM_SNOW_PAC(t) = SM_SNOW_PAC(t - dt) + (SM_SNOW - SM_MELT) * dt
INIT SM_SNOW_PAC = 0
DOCUMENT: Units = millimeters of water in the snow
SM_SNOW = IF SM_TEMPERATURE = 0 THEN SM_RAINFALL_CONVERSION
ELSE 0.00
DOCUMENT: Units = millimeters of water in the snow
SM_MELT = IF SM_TEMPERATURE >= 0
THEN SM_MELT_VS_TEMP * SM_SNOW_PAC
ELSE 0.00
DOCUMENT: Units = millimeters of water melting from the snow pack
SM_A = ((6.75/10.0^7.0) * SM_HEAT^3.00) - ((7.71/10.0^5.0) * SM_HEAT^2.00) + ((1.79/10.0^2.0) * SM_HEAT) + 0.49
DOCUMENT: (0.0638*SM_HEAT^3) - (0.2724*SM_HEAT^2.0) +
(0.0320*SM_HEAT) + 0.49
{ THE FULL EQUATION IS AS FOLLOWS: ((6.75/10)^7.0 * SM_HEAT^3.00) -((7.71/10)^5.0 * SM_HEAT^2.00) + ((1.79/10)^2.0 * SM_HEAT) + 0.49}
SM_ACTUAL_EVPT = AVAILABLE_SOIL_MOISTURE*SM_PERCENT_LOSS_FROM_STORAGE
DOCUMENT: Units = millimeters of water
SM_ADJUSTED_AE = SM_ACTUAL_EVPT*SM_COVER_INDEX
SM_ASPECT_RECLASS = CV_ASPECT
DOCUMENT: Units = [constant = 1]
SM_AVAILABLE_SOIL_WATER = (AVAILABLE_SOIL_MOISTURE/CV_WATER_HOLDING_CAPACITY)*100
DOCUMENT: Units = percent of the potential saturation
SM_BASE_ELEVATION = 800
DOCUMENT: Units = meters
SM_COVER_INDEX = 0.55*((LEAF_AREA_INDEX)^0.5)
SM_CRITICAL_PERCENT = 0.70
DOCUMENT: Units = percent of maximum holding capacity
SM_HEAT = (12/12) * ((118.44 / 5.0) ^1.514)
DOCUMENT: Units = degrees Celsius
SM_MIN = SM_CRITICAL_PERCENT*CV_WATER_HOLDING_CAPACITY
DOCUMENT:
****SEE SM_CRITICAL_PERCENT****
SM_NEW_WATER = SM_RAINFALL_CONVERSION-SM_SNOW+SM_MELT
SM_PE_CONVERSION = (SM_POTENTIAL_EVPT/4.3)
{THIS SHOULD BE ZERO WHEN SOIL MOISTURE STORAGE IS LESS THAN THE MINIMUM SPECIFIED IN "SM_MIN" OR WHEN THE SM_STORAGE IS GREATER THAN THAT SPECIFIED IN "SM_MAX"}
SM_POTENTIAL_EVPT = IF SM_TEMPERATURE > 0.00 THEN
16.0 * ((10.0 * (SM_TEMPERATURE / SM_HEAT )) ^ SM_A)
ELSE 0
SM_POTENTIAL_INFILTRATION = SM_COVER_INDEX * CV_WETNESS_INDEX * SM_NEW_WATER
* SM_SOIL_TRANSMISSIVITY_INDEX
DOCUMENT: Units = millimeters of water
SM_RAINFALL_CONVERSION = SM_RAINFALL_MM/4.3
DOCUMENT: Units = millimeters of water per week
SM_SLOPE_RECLASS = CV_SLOPE
DOCUMENT: Units = constant [1]
SM_SOIL_TRANSMISSIVITY_INDEX = (1-CVH_COMPACTION)*CV_SOIL_PERM
DOCUMENT: THIS WILL BE FOUND BY COMPUTIG [ln (Te/Ti)] WHERE Te = AVERAGE TRANSMISSIVITY AND Ti = TRANSMISSIVITY OF THE SPECIFIC CELL. THE INDEX FROM THE HUMAN DISTURBANCE GROUP WILL BE USED TO MODIFY Te TO GET Ti.
This will be both spatially variable across cells, due to soil type and textural qualities, and temporally variable due to varied occurences and intensities of human disturbance.
SM_SWITCH = IF AVAILABLE_SOIL_MOISTURE Ó SM_MIN THEN 1 ELSE 0
{THIS SHOULD MAKE THE DECREASE WORK OFF OF THE "SM_ADJUSTED_AE" WHEN SM_STORAGE REACHES OR FALLS BELOW THE ALLOWED MINIMUM IN "SM_MIN"}
SM_TEMPERATURE = SM_TEMP_CELSIUS+((CV_ELEVATION-SM_BASE_ELEVATION) *.01) * SM_SLOPE_RECLASS*SM_ASPECT_RECLASS
DOCUMENT: Units = degrees Celsius
SM_TEMP_CELSIUS = ((SM_BASE_TEMPERATURE-32.0)*5.0)/9.0
DOCUMENT: Units = degrees celsius
SM_Veg_index_test = ((CVP_SAGEBRUSH/17.5)+
(CVP_AGROPYRON/88.5)+
(CVP_FORB/7.1)) / 3.0
LEAF_AREA_INDEX = GRAPH(SM_Veg_index_test)
(0.00, 0.00), (0.0526, 0.03), (0.105, 0.075), (0.158, 0.17), (0.211, 0.38), (0.263, 0.735), (0.316, 0.905), (0.368, 0.955), (0.421, 0.985), (0.474, 1.00), (0.526, 1.00), (0.579, 1.00), (0.632, 1.00), (0.684, 1.00), (0.737, 1.00), (0.789, 1.00), (0.842, 1.00), (0.895, 1.00), (0.947, 1.00), (1.00, 1.00)
SM_BASE_TEMPERATURE = GRAPH(CV_WEEK)
(0.00, 27.5), (4.25, 34.0), (8.50, 42.0), (12.8, 50.5), (17.0, 58.5), (21.2, 64.4), (25.5, 71.0), (29.8, 68.6), (34.0, 61.3), (38.2, 50.5), (42.5, 37.4), (46.8, 31.5), (51.0, 27.5)
DOCUMENT: Units = degrees farenheit
SM_INFILTRATION_RATE = GRAPH(SM_AVAILABLE_SOIL_WATER)
(0.00, 1.00), (11.1, 0.865), (22.2, 0.74), (33.3, 0.635), (44.4, 0.51), (55.6, 0.405), (66.7, 0.32), (77.8, 0.205), (88.9, 0.085), (100, 0.00)
SM_MELT_VS_TEMP = GRAPH(SM_TEMPERATURE)
(0.00, 0.00), (1.50, 0.02), (3.00, 0.075), (4.50, 0.17), (6.00, 0.345), (7.50, 0.765), (9.00, 0.9), (10.5, 0.97), (12.0, 0.99), (13.5, 1.00), (15.0, 1.00)
SM_PERCENT_LOSS_FROM_STORAGE = GRAPH(SM_AVAILABLE_SOIL_WATER)
(0.00, 0.28), (5.00, 0.3), (10.0, 0.325), (15.0, 0.375), (20.0, 0.455), (25.0, 0.585), (30.0, 0.765), (35.0, 0.88), (40.0, 0.94), (45.0, 0.975), (50.0, 0.985), (55.0, 1.00), (60.0, 1.00), (65.0, 1.00), (70.0, 1.00), (75.0, 1.00), (80.0, 1.00), (85.0, 1.00), (90.0, 1.00), (95.0, 1.00), (100, 1.00)
SM_RAINFALL_MM = GRAPH(CV_WEEK)
(0.00, 28.0), (4.25, 20.0), (8.50, 12.0), (12.8, 11.0), (17.0, 14.0), (21.2, 16.0), (25.5, 5.00), (29.8, 5.00), (34.0, 11.0), (38.2, 14.0), (42.5, 25.0), (46.8, 27.0), (51.0, 28.0)
DOCUMENT: Units = millimeters of water per month