ALMaSS Partridge ODdox  1.1
The partridge model description following ODdox protocol
ALMaSS Partridge ODdox Documentation

Created by:
Chris J. Topping
Dept. Wildlife Ecology,
National Environmental Research Institute, Aarhus University,
DK-8410, Roende, Denmark 15th October 2008


The partridge model classes presented here forms part of the ALMaSS framework of models (Topping et al., 2003). ALMaSS integrates a detailed simulation of the landscape together with agent-based models of individual animals to elucidate impacts of changes in environmental factors including man's management on animal population dynamics.

The partridge model simulates partridge life-stages as clutches, chicks<5wks old, chicks >5wks< 12 wks old, and males and females. The birds exist in coveys which vary in number of members depending upon the time of year. Early in the year the overwintering coveys break up and individuals form pairs with non-sibling birds. Those that cannot find mates in the covey must seek mates in nearby coveys or search more widely in the landscape. After covey breakup, female birds search for suitable breeding locations which must contain suitable nesting habitat. Once paired and with a breeding location the pair initiate breeding, find a nest location, and lay and incubate a clutch. Birds are constantly subject to predation mortality probabilities, but during nesting the female is also subject to density-dependent mortality. After egg hatch the chicks must be fed with insects which are gathered by foraging trips in the landscape. Insect abundance and physical structure of the vegetation are used to determine the rate of energy intake, and this compared to age-determined energy requirements results in either chick growth or starvation. After 5 weeks of life it is assumed that, like adults the chicks can always find food since they no longer require only insects. After clutch hatch the chicks and parents form a covey which will exist until covey breakup in the next season. During the intervening time barren pairs or single birds may join the covey providing potential mates for the following year. Losses to hunting are simulated as an autumn hunt.

1. Purpose

Over the last 5 decades grey partridge (Perdix perdix) populations have undergone major declines across Europe in a more or less synchronised manner. The grey partridge ABM was built as part of the ALMaSS framework (The Animal, Landscape and Man Simulation System) with a view to investigating causes of this decline and evaluating management strategies for the species. Some of the factors implicated in the decline of partridges have been reduced chick survival due to intensive herbicide and pesticide use, changes in landscape structure, increase in predation pressure etc. The cause of partridge declines is probably multi-factorial since many of the factors co-vary either through direct linkage or through common causes e.g. larger fields and more pesticide use often go hand in hand but are not causally linked. The principal objective of the partridge model is to therefore determine the relative importance of different factors on the population dynamics of partridges.

2. State variables and Scales

2.a Partridge Base

Individual partridges shared a set of common state variables and some that were unique to each life history class. The common state variables are inherited from a base class which is never actually used to create a partridge object, but only to house these common attributes and methods. The common attributes are:

2.b Partridge Clutch

The Partridge_Clutch class introduces 3 new state variables:

2.c Partridge Chick

The Partridge_Chick class is descended from Partridge_Base and introduces 2 new state variables:

The Partridge_Chick2 is descended from the Partridge_Chick class and dose not introduce new state variables.

2.d Partridge Male

Partridge_Male is descended from Partridge_Base and introduces 3 new state variable:

2.e Partridge Female

Partridge_Female is descended from Partridge_Base and introduces 12 new state variables:

3. Process Overview and Scheduling

3.a Process overview

The partridge model consisted of 5 life-stage classes (Fig. P1): Clutch, Chick, Chick2, adult female and adult male. Partridge chicks were separated into 2 classes (< 6 weeks old and > 6 weeks old) because chicks > 6 weeks of age had survival rates no different than those of adult birds (Potts and Aebischer 1995; Potts 1986).

Figure 1: Partridge state diagram. NB All stages could transition to state Dying from any other behavioural state due to external messaging.
The "life-cycle" in the simulation is as follows:

  1. Male and female partridge mate to give rise to clutch objects.
  2. Clutch objects hatch and become chick objects.
  3. Chick objects mature into chick2 objects at 5 weeks.
  4. Chick2 objects mature into either male or female adult objects.

At any point in time a model partridge is in a behavioural state, which is represented by a method. Transitions to different behaviours are controlled by either messaging or as conditional rules (usually in the form or a return parameter on calling the state behaviour method in Step (see below).

3.a.i Mortality
A partridge object can die (due to daily mortality, farm event etc) during any behavioral state. If this happens its behavioral state is changed to Dying and it is removed from the simulation. All objects related to the dead partridge object (i.e. clutch, chicks, mate, covey etc.) are informed of its demise through messages. Clutch, Chick, and Chick2 objects are subject to a single individual daily mortality parameter for non-explicitly modelled mortalities (e.g. predation). The daily mortality in adult female and male partridge objects is divided into 3 parameters each and provided more control over mortalities associated with different times of year. In addition there is a scaling factor applied for birds that are alone i.e. a covey size of 1. Daily mortality in adult birds could be varied in spring (February and March), Summer/Autumn (April to October) and, Winter (October to February).
All life-stage classes were also subject to agricultural mortality and the model includes density-dependent predation mortality on incubating females and clutches.

For most of the year partridges live in family groups known as a covey and simulated by Partridge_Covey. To maintain realism many of the common behaviors exhibited by individual male and female partridges are incorporated into a separate covey class (Partridge_Covey). All partridge objects whether alone or in a group are always part of a covey. All behaviours related to movement, foraging, habitat quality assessment, and nest location are build into the covey class (see Partridge_Covey::MoveDistance, Partridge_Covey::MoveMagicVegToFood, Partridge_Covey::NestFindLocation, Partridge_Covey::HabitatEvaluate), as well as covey administrative operations such as keeping track of chicks and pairing and covey breakup (dissolve), and mortality functions (e.g. Partridge_Covey::ActOnParentDeath).
At the start of the breeding season pairing is possible for all members within a covey depending upon their age and relatedness. Pairing occurs with a previous mate or between members who were not blood related over 2 generations. Paring birds received pcomm_OnStartBreeding message and the covey starts to dissolve with all paired members forming their own new covey.
Single males and females from the covey stay together until other non-pair coveys come within a customisable distance (see Partridge_Covey.cpp::cfg_min_merge_dist ) meters when single males could engage in a 'covey hopping' behaviour and find mates in nearby covies. The original covey dissolves completely when the last remaining unpaired female either pairs or dies. Once paired, a breeding pair do not accept more birds into their covey at this point. The covey proceeds to find suitable nesting area.

If the partridge pair nest successfully and have chicks they all now belong to the same covey. Coveys also grow in size when barren pairs (a covey with 2 partridges) or single adults (a covey with 1 partridge) within Partridge_Covey.cpp::cfg_min_merge_dist distance join a family group. This is allowed up to a maximum of 4 extra adults. Males and females who joined a family group become 'uncles' and 'aunts' to the chicks. All adult coveys resulting from the merger of barren pairs and single individuals are also permissible, up to a maximum of 8 individuals. Two family groups (pair + chicks) never merge in the model. Merging of coveys occurs only between May 31st and March 1st of the following year and only if all adults within the coveys were in behavioral state Flocking.

3.b Scheduling

Naturally partridge objects interact with each other during a simulation run, but this can cause concurrency issues since ALMaSS is designed to run on seriol computers. For example when an incubating female is killed by a predator the clutch needs to be killed immediately afterwards, letting the eggs develop while the mother is dead would lead to model incongruity, especially if they subsequently hatched. As with other ALMaSS models, concurrency problems between partridge objects were avoided in the model by defining execution in a hierarchical structure.
During the course of each time step every partridge object runs through 3 important sub-time steps called BeginStep, Step, and Endstep. The Population_Manager controls the order of the execution of the 3 sub-time steps within each time step. For each of the sub-time steps the hierarchy of execution started with partridge clutches followed by chick1, chick2, male, female, and lastly covey objects (Table 1):

Sub-step/Class Partridge_Clutch Partridge_Chick


BeginStep Partridge_Clutch::DailyMortality Partridge_Clutch::CheckManagement Partridge_Chick::DailyMortality Partridge_Chick::CheckManagement

Partridge_Chick2::DailyMortality Partridge_Chick2::CheckManagement

Step None Partridge_Chick::ChMaturing


EndStep Partridge_Clutch::ClDeveloping Partridge_Chick::ChDeveloping Partridge_Chick2::ChDeveloping

Sub-step/Class Partridge_Male Partridge_Female


BeginStep Partridge_Male::DailyMortality Partridge_Male::CheckManagement Partridge_Female::DailyMortality Partridge_Female::CheckManagement


Step Partridge_Male Partridge_Female::FFlocking Partridge_Female::FFindingTerritory Partridge_Female::FAttractingMate Partridge_Female::FBuildingUpResources Partridge_Female::FMakingNest Partridge_Female::FLaying Partridge_Female::FStartingNewBrood Partridge_Female::FIncubating Partridge_Female::FCaringForYoung


EndStep Partridge_Male Partridge_Female None

Tabel 1: Partridge states possible for each class during each time-step sub-step.

In BeginStep all objects are subjected to the daily backround mortalities, if they surivived this they are subject to potential mortality due to a management eventa that occurred at that location. In BeginStep adult male and female partridges can also die if their lifespan was exceeded. The lifespan of adult partridge objects differed among each other (as a random integer between a minimum and maximum). Objects that died as a result of daily mortality, a farm event, or due to old age transitioned immediately to Dying. The objects that survived BeginStep, remained in their behavioral state unless they died later while being subjected to an alternate mortality parameter (e.g. predation on incubating females) or received a message (e.g. OnMumDead message received by clutch objects) that caused an immediate behavioral transition.

After BeginStep has been executed for all objects Step is called starting with partridge clutches untill all objects have signalled they are finished with Step. This can be after a number of different behaviours are carried out..
During Step partridge clutches remain in the behavioral state they are in, unless they receive messages that result in an immediate behavioral state transition. However, Chick Chick2 objects can mature into Chick2 and adult objects respectively. The Step code for female and male objects performs activities according to the behavioral state they are in (e.g. a female object in behavioral state Incubating will perform the role of incubating a clutch object). If there are chicks present during Step then at least one adult will initiate a foraging movement to gather food for the chicks. When the Step code has finished the EndStep is called for all objects.

For partridge Clutch, Chicks, and Chick2 objects the EndStep executes behaviors based on what has happened to their parent objects. If parent objects are alive after Step, partridge clutches either hatch or develop, otherwise they transition to Dying. Similarly Chick and Chick2 objects either develop or transition to Dying depending on the status of their parents and the food collected during Step.
EndStep did not do anything in female and male adult partridges. One day was added to the age of objects that survived the EndStep.


4. Design Concepts

4.a Emergence

Partridge population dynamics, use versus availability of resources (i.e. resource dynamics), and movement patterns are emergent properties of the model. A number of emergent population descriptors may be extracted from the model. A few examples are:

  • Growth rate of the population
  • Young/adult ratio during different times of the year
  • Female/Male ratio during different times of the year
  • Number of relayed clutches in a given year
  • Nesting success
  • Pair density in a given landscape
  • Clutch size in successful nests
  • Chicks per successful pair
  • Homerange size
  • Covey size

4.b. Adaptation

Female and male adult partridges exhibit many adaptive traits. They are:

  • Covey break-up occurred towards the end of January and not earlier.
  • A territory found by a female partridge would have to meet a minimum quality score else she continued looking for a new territory.
  • Even suitable territories would be rejected by a female adult if it were too close to other coveys.
  • Females would start building a nest only after February 19th and only if her mate was still alive.
  • If all eggs laid by a female were infertile she stopped breeding for the given year.
  • For female partridges, total time spent laying eggs was proportional to the clutch size.
  • Partridge pairs did not reproduce past a breeding deadline (June 19th).
  • Partridge males searched the landscape for a mate if no local covey had available mates, this happened towards the end of the breeding season, before which unpaired males would typically form small male coveys, thus decreasing their chance of predation.
  • Partridge coveys always moved along directions that would lead to the best food sources, based on local cues.
  • Coveys exerted a repulsive force on one another in an effort to push each other away from attractive food sources and ensuring spacing matches food availability.

4.c Fitness

Fitness is measured by the ability of individuals to survive and reproduce. As such there are a number of behaviours which relate to this. Examples are:

  • Breeding between individuals that were blood related less than 2 generations did not occur in the model.
  • Female and male partridges paired with an old mate within the covey if possible.
  • Unpaired females remained in their covey waiting for covey hopping males rather than venturing alone in the landscape.
  • Partridge parents continued to care for their young until the young matured.
  • Single adults or barren pairs could join a family group to form a larger covey and reduce predation risks.
  • When either or both parents died chick survival was greater if uncles and aunts were present.
  • Young partridge chicks died after a few days of starvation. Note that an ultimate measure of fitness is the ability of the young to live until they become chick2s. This is primarily determined by the quality of the homerange of the covey at subsequent to egg hatch.

4.d Prediction

Model individuals did not perform prediction.

4.e Sensing

Sensing/knowing mechanisms were modeled implicitly on the basis of rules; therefore, individuals were able to sense/know each variable accurately. Patterns in partridge biology are well documented but underlying mechanisms as to why they occur are not always well understood. For example, covey break up and pairing starts in the end of January but why partridges do this during this time is not completely understood. Also intra-family mating is not observed in nature. The sensing/knowing mechanisms behind these behaviors are not known but the patterns are clearly documented. The assumption we make is that we are accurate in following patterns observed in field data by creating simple rules though the sensing/knowing mechanisms are not modeled explicitly. Variables considered by adult female partridge objects in their decisions were:

  • Day of the year.
  • A score of territory quality based on the sum of land cover type values at a 1 m2 resolution for a given area (< 1 km2 in size).
  • Distance to nearest covey.
  • Sensing that all the eggs she had laid were infertile.
  • Number of days taken to lay an entire clutch.

Variables adult partridge males sensed/knew were:

  • Day of year.
  • The search radius while looking for an available mate.

Coveys were able to move and exert pressure on other coveys because they sensed/knew:

  • The directions of movement (10 m) which resulted in best food availability.
  • The repulsive force exerted by other coveys on them.

4.f Interaction

Individual model partridges can communicate with each other through messages (see Partridge_Communication). Types of inter-partridge communcation handled by this class are listed in TypeOfPartridge_Communication. Messages are passed via Partridge_Communication::PassMessage and the receiver executes specific code depending upon the message passed and their current state. Complex behavioral patterns are possible since the effect of a message depend on the behavioral state of the receiving individual e.g. a pcomm_Mating message results in calling Partridge_Female::OnMating which depending whether she has a 'territory' already results in either a transition to the state pars_FBuildingUpResources or to pars_FFindingTerritory.

Interactions in the model were:

  • If possible covey members pair with each other once covey dissolve was initiated, but only if not closely blood related.
  • Single males searched for available females late in the season, requiring communction outside their covey (see Partridge_Male::MFindingMate and Partridge_Covey::FindMateInArea).
  • Un-paired males covey hopping during the pre-breeding season.
  • Clutches inform their parent objects when they hatch.
  • Clutch and chick objects inform their parents when they have been killed.
  • When chicks matured they informed their parents.
  • Whenever an adult object dies it informs all its related objects (i.e. mate, clutch or chicks) of its death.
  • Uncles and aunts care for young chicks when the parents died.
  • When a female partridge gave up breeding she informs her mate.
  • Farm management practices can result in changes of state as a result of direct effects (e.g. mowing causing death of females and clutch).
  • Merging of coveys was possible.
  • Coveys close to each other exerted a repulsive force on each other.

4.g Stochasticity

Stochasticity is used extensively within the model, usually to deterine probabilisitic results, where there is no more detailed mechanism modelled. Examples are:

  • Daily probability of dying due to non-explicitly modelled causes for individuals (e.g see Partridge_Clutch::DailyMortality).
  • Agricultural mortality due to daily farm management(e.g see Partridge_Clutch::OnFarmEvent ).
  • The probability that a hen was also killed when a clutch was mown.
  • The lifespan of each object was a random integer between a minimum and maximum number of days.
  • The probability of an individual egg in a clutch being infertile.
  • The sex of a chick assigned as either male or female.
  • The distance flown by a partridge female while searching for a territory.
  • The chance that a covey would move in a wrong direction while searching for food.
  • The chance of covey moving in the wrong direction while back tracking from a given direction.
  • The chance of 2 coveys merging with each other.
  • The location on the landscape at the start of a simulation where adult male and female partridges are placed.
  • The chance that an individual partridge was shot during the hunting season.
  • The proportion of the population shot during the hunting season.
  • The mortality imposed on chicks on the death of a parent (see Partridge_Covey::ActOnParentDeath ).This is a good example of a combination of mechanistic and probabilistic (stochastic) behaviour.

4.h Collectives

The model makes extensive use of the Covey as a collective (Partridge_Covey). A covey consisted of one or more partridge objects. Covey objects do not have their own state variables or traits but performed functions common to adult male and female partridges. Good examples of their use is in updating food collected where it is possible for almost any bird from the covey to initiate this behaviour ( see Partridge_Chick::BeginStep & Partridge_Covey::MoveDistance). Primary covey functions are involved with foraging, movement, finding nest locations and mates (e.g. see Partridge_Covey::MoveDistance, Partridge_Covey::MoveTo, Partridge_Covey::NestFindLocation, Partridge_Covey::FindMeAWife ) and with inter- and intra-covey communcications (See also under Process Overview above).

4.i Observation

One advantage of the partridge model was the flexibility in obtaining any possible desired information from the system. Information needed from the model could be queried (i.e. by writing C++ code to extract the information) and obtained in output text files. Information could also be obtained at different time scales (daily, weekly, monthly, yearly etc.). Typical output from a simulation run contained annual information on variables such as number of males and females in september, number of chicks in september, number of clutches (including relayings), number of clutches that hatched successfully, number of hens predated, number of dead chicks, males, and females etc.. This information is by default logged to a text file called POM_InfoBase.txt.
Partridge_Population_Manager has a number of methods where outputs can be generated e.g. Partridge_Population_Manager::DoFirst. These methods are safe points during execution where all object administration should be done and therefore counts of individuals etc are internally consistent.

5. Initialisation

Each simulation run started with a number of female and male partridge objects that were randomly placed within a landscape. The model is highly configurable and parameter values are controlled through a set of configuration variables set using text file inputs. If these variables are not set by the user then default values are used. All these variables have names starting with 'cfg_'. For a linked set of default configuration entries see the table below.

6. Inputs

Input parameters vary with each application of the ALMaSS partridge model but cover these basic types:

  • Landscape structure. Implemented as a GIS map, converted to ALMaSS data structures. Input fields consist of landscape element type (e.g. field, road, hedge) and extent.
  • Climate data on a daily basis. This data is looped if the simulation is longer than the data set. Data consists of mean daily temperature, daily precipitation and mean daily wind-speed.
  • Values for partridge model parameters see tables 1 & 2.
  • Farming information this depends on the type and location of the farms being modelled and is implemented as a crop rotation and a set of management plans covering each crop used. These plans determine the timing and order of farm events, but these are in turn dependent on weather and farmers choices (both stochastic and mechanistic).
  • Other values related to specific application e.g. pesticide usage, toxicity, or timing of population crashes (e.g. see Partridge_Population_Manager::Catastrophe).
  • Specific ecological variables. These should be fixed during the parameterisation and fitting processes of model developement and ought not to be modified subsequently.

7. Interconnections

Primary interactions are between the partridge classes and Farm and Crop classes, and the interface of the Landscape, which is repsonsible for supplying the necessary local environmental information, Table 2 below:

Code link Configuration file entry Default Value
Partridge_All.cpp::cfg_buildupwait PAR_BUILDUP_WAIT 0
Partridge_All.cpp::cfg_female_mowing_chance PAR_FEMALEMOWNMORTALITY 100
Partridge_All.cpp::cfg_par_ad_cut PAR_AD_CUT_MORT 1
Partridge_All.cpp::cfg_par_adult_mortality_alone PAR_ADULT_MORTALITY_ALONE 1.4
Partridge_All.cpp::cfg_par_adult_mortalitySpring PAR_ADULT_MORTALITYSPRING 96
Partridge_All.cpp::cfg_par_adult_mortalitySummer PAR_ADULT_MORTALITYSUMMER 0.00001
Partridge_All.cpp::cfg_par_adult_mortalityWinter PAR_ADULT_MORTALITYWINTER 217
Partridge_All.cpp::cfg_par_base_mortality PAR_BASE_MORTALITY 0
Partridge_All.cpp::cfg_par_ch_cut PAR_CH_CUT_MORT 5
Partridge_All.cpp::cfg_par_chick_mortality PAR_CHICK_MORTALITY 2043
Partridge_All.cpp::cfg_par_chick2_mortality PAR_CHICK_TWO_MORTALITY 1
Partridge_All.cpp::cfg_par_cl_cut PAR_CL_CUT_MORT 29
Partridge_All.cpp::cfg_par_clutch_mortality PAR_CLUTCH_MORTALITY 135
Partridge_All.cpp::cfg_par_days_per_egg PAR_DAY_PER_EGG 1.5
Partridge_All.cpp::cfg_par_days_to_make_nest PAR_DAYS_TO_MAKE_NEST 5
Partridge_All.cpp::cfg_par_extraction_rate PAR_EXTRACTION_RATE 0.0085
Partridge_All.cpp::cfg_par_female_incubation_mortality_const PAR_FEMALE_INCUBATION_MORTALITY_CONST 1.00192
Partridge_All.cpp::cfg_par_female_incubation_mortality_slope PAR_FEMALE_INCUBATION_MORTALITY_SLOPE -0.00122
Partridge_All.cpp::cfg_par_female_movement_max PAR_FEMALE_MOVEMENT_MAX 100
Partridge_All.cpp::cfg_par_incubation_period PAR_INCUBATION_PERIOD 24
Partridge_All.cpp::cfg_par_infertile_eggs PAR_INFERTILE_EGGS 800
Partridge_All.cpp::cfg_par_last_brood_date PAR_LAST_BROOD_DATE 180
Partridge_All.cpp::cfg_par_male_gives_up PAR_MALE_GIVES_UP 170
Partridge_All.cpp::cfg_par_MaleFlyingDistance PAR_MALEFLYINGDISTANCE 2000
Partridge_All.cpp::cfg_par_MaleMateSearchArea PAR_MALEMATESEARCHAREA 500
Partridge_All.cpp::cfg_par_mature_threshold PAR_MATURE_THRESHOLD 84
Partridge_All.cpp::cfg_par_max_lifespan PAR_MAX_LIFESPAN 3650
Partridge_All.cpp::cfg_par_max_terr_qual PAR_MAX_TERR_QUAL 13000
Partridge_All.cpp::cfg_par_min_lifespan PAR_MIN_LIFESPAN 1825
Partridge_All.cpp::cfg_par_min_no_eggs PAR_MIN_NO_EGGS 7
Partridge_All.cpp::cfg_par_min_terr_qual PAR_MIN_TERR_QUAL 6900
Partridge_All.cpp::cfg_par_start_dissolve PAR_START_DISSOLVE 30
Partridge_All.cpp::cfg_par_starve_threshold PAR_STARVE_THRESHOLD 4
Partridge_All.cpp::cfg_par_triggerlayingvar PAR_TRIGGERLAYINGVAR 48
Partridge_All.cpp::cfg_par_triggerlaying PAR_TRIGGERLAYING 850
Partridge_Covey.cpp::cfg_min_merge_dist PAR_MIN_MERGE_DIST 50
Partridge_Covey.cpp::cfg_nest_field PAR_NEST_FIELD 1
Partridge_Covey.cpp::cfg_nest_fieldboundary PAR_NEST_FIELDBOUNDARY 200
Partridge_Covey.cpp::cfg_nest_hedgebank0 PAR_NEST_HEDGEBANKZERO 1
Partridge_Covey.cpp::cfg_nest_hedgebank1 PAR_NEST_HEDGEBANKONE 100
Partridge_Covey.cpp::cfg_nest_hedgebank2 PAR_NEST_HEDGEBANKTWO 200
Partridge_Covey.cpp::cfg_nest_naturalgrass PAR_NEST_NATURALGRASS 100
Partridge_Covey.cpp::cfg_nest_permpastlow PAR_NEST_PERMPASTLOW 50
Partridge_Covey.cpp::cfg_nest_permsetaside PAR_NEST_PERMSETASIDE 100
Partridge_Covey.cpp::cfg_nest_railway PAR_NEST_RAILWAY 100
Partridge_Covey.cpp::cfg_nest_roadside PAR_NEST_ROADSIDE 100
Partridge_Covey.cpp::cfg_NOT1950sinsects PAR_NOTFIFTIESINSECTSSCALER 0.1
Partridge_Covey.cpp::cfg_par_bio_hindrance_inv PAR_BIO_HINDRANCE 0.00667
Partridge_Covey.cpp::cfg_par_bio_hindrance_inv PAR_BIO_HINDRANCE 0.00667
Partridge_Covey.cpp::cfg_par_chick_extra_mort PAR_CHICK_EXTRA_MORT 200
Partridge_Covey.cpp::cfg_par_covey_drift_enable PAR_COVEY_DRIFT_ENABLE true
Partridge_Covey.cpp::cfg_par_covey_drift_enable PAR_COVEY_DRIFT_ENABLE TRUE
Partridge_Covey.cpp::cfg_par_covey_drift_speed PAR_COVEY_DRIFT_SPEED 2
Partridge_Covey.cpp::cfg_par_covey_drift_speed PAR_COVEY_DRIFT_SPEED 2
Partridge_Covey.cpp::cfg_par_firstmerge PAR_FIRSTMERGE 170
Partridge_Covey.cpp::cfg_par_flyto_stepsize PAR_FLYTO_STEPSIZE 1
Partridge_Covey.cpp::cfg_par_flyto_stepsize PAR_FLYTO_STEPSIZE 1
Partridge_Covey.cpp::cfg_par_force_abs_limit PAR_COVEY_FORCE_ABS_LIMIT 100
Partridge_Covey.cpp::cfg_par_force_abs_limit PAR_COVEY_FORCE_ABS_LIMIT 100
Partridge_Covey.cpp::cfg_par_force_below PAR_COVEY_FORCE_BELOW 0.1
Partridge_Covey.cpp::cfg_par_force_below PAR_COVEY_FORCE_BELOW 0.1
Partridge_Covey.cpp::cfg_par_force_enable PAR_COVEY_FORCE_ENABLE true
Partridge_Covey.cpp::cfg_par_force_enable PAR_COVEY_FORCE_ENABLE TRUE
Partridge_Covey.cpp::cfg_par_force_ignore_below PAR_COVEY_FORCE_IGNORE_BELOW 0
Partridge_Covey.cpp::cfg_par_force_ignore_below PAR_COVEY_FORCE_IGNORE_BELOW 0.1
Partridge_Covey.cpp::cfg_par_force_ignore_dist_sq PAR_COVEY_FORCE_IGNORE_DIST_SQ 250000
Partridge_Covey.cpp::cfg_par_force_ignore_dist_sq PAR_COVEY_FORCE_IGNORE_DIST_SQ 250000
Partridge_Covey.cpp::cfg_par_force_speed PAR_COVEY_FORCE_SPEED 2
Partridge_Covey.cpp::cfg_par_force_speed PAR_COVEY_FORCE_SPEED 2
Partridge_Covey.cpp::cfg_par_hei_hindrance_inv PAR_HEI_HINDRANCE 0.04
Partridge_Covey.cpp::cfg_par_hei_hindrance_inv PAR_HEI_HINDRANCE 0.04
Partridge_Covey.cpp::cfg_par_move_fuzzy_chance PAR_MOVE_FUZZY_CHANCE 50
Partridge_Covey.cpp::cfg_par_movequal_histlimit PAR_MOVEQUAL_HISTLIMIT 3
Partridge_Covey.cpp::cfg_ParShootStartYear PAR_SHOOTSTARTYEAR 1
Partridge_Population_Manager.cpp::cfg_breedingpairs_date PAR_BREEDINGPAIRS_DATE 90
Partridge_Population_Manager.cpp::cfg_Emigration PAR_EMIGRATION 1
Partridge_Population_Manager.cpp::cfg_FemalePopSizeMaxCutoff PAR_FEMMAXPOPSIZECUTOFF 7000
Partridge_Population_Manager.cpp::cfg_flockdata_date PAR_FLOCKDATA_DATE 270
Partridge_Population_Manager.cpp::cfg_HindranceScalingFactor PAR_HINDRANCE_SCALING 1000
Partridge_Population_Manager.cpp::cfg_IndividualEmigration PAR_INDIVIDUALEMIGRATION 3500
Partridge_Population_Manager.cpp::cfg_kfactoroutput_date PAR_KFACTOROUTPUT_DATE 90
Partridge_Population_Manager.cpp::cfg_par_energyslope_perday PAR_ENERGYSLOPE_PERDAY 1.06
Partridge_Population_Manager.cpp::cfg_par_rainfactor PAR_RAINFACTOR 0.2
Partridge_Population_Manager.cpp::cfg_ParHuntingGridSize PAR_HUNTINGGRIDSIZE 1000
Partridge_Population_Manager.cpp::cfg_ParHuntingThreshold PAR_HUNTINGTHRESHOLD 1
Partridge_Population_Manager.cpp::cfg_ParHuntingType PAR_HUNTINGTYPE 1
Partridge_Population_Manager.cpp::cfg_ParShotMax PAR_SHOTPERCENTAGE_MAX 1500
Partridge_Population_Manager.cpp::cfg_ParShotMin PAR_SHOTPERCENTAGE_MIN 1500
Partridge_Population_Manager.cpp::cfg_rainscaling PAR_RAINSCALING 0.767
Partridge_Population_Manager.cpp::cfg_springcensusdate PAR_SPRINGCENSUSDATE March+21
Partridge_Population_Manager.cpp::cfg_StartingNumberFemalePartridges PAR_STARTING_NO_FEMALES 5000
Partridge_Population_Manager.cpp::cfg_StartingNumberMalePartridges PAR_STARTING_NO_MALES 5000
Partridge_Population_Manager.cpp::cfg_unpaireddata_date PAR_UNPAIREDDATA_DATE 150

8. A Note About ODdox

ODdox documentation was created by combining a modified version of the ODD protocol (Grimm et al. 2006) with documented code using doxygen (van Heesch, 1997) to create what we term ODdox documentation. The original ODD (Overview, Design, Detail) protocol divides the model documentation into defined sections covering aspects of model structure and functioning, and finally model details. The new ODdox protocol (Overview, Design, doxygen) broadly follows ODD protocol, but is completed and augmented by extracting comments from the source code. The details of the model are therefore described via descriptions of classes, methods, and variables using hyperlinks to the relevant sections in the source code. In contrast to the ODD, this means that by far the major part of the documentation is placed outside the traditional ODD sections, but linked to them via hyperlinks. The ODdox was specifically designed to facilitate documentation of large object-oriented models with many interacting components, and to provide a flexible way of building documentation as the software is developed. It is therefore structured following logical divisions of the model entities, primarily base class types. At each subdivision there is a class or set of linked classes in focus, and six of the seven ODD sections are written for these classes. The "Submodels" section of ODD becomes superfluous since any links to sub-models are covered by class descriptions for the classes in focus, and submodels per se should not exist. However, there may be important connections between the focus classes and other ODdox sections (e.g. other species, environment). A new section, "Interconnections", is used to describe these and provide html links to them. This approach permits the documentation of large models to be built as an expandable library, and rather than rewriting documentation for additions only requires judicious updating of the interconnection section, doxygen performs the rest of the tasks based on software comments in the new code. Our aim in developing ODdox was therefore to provide an easier, more complete, and more flexible method of documenting large models together with a more user friendly interface, benefitting developers and readers alike.

9. References

Grimm, V., Berger, U., Bastiansen, F., Eliassen, S., Ginot, V., Giske, J., Goss-Custard, J., Grand, T., Heinz, S.K., Huse, G., Huth, A., Jepsen, J.U., Jorgensen, C., Mooij, W.M., Muller, B., Pe'er, G., Piou, C., Railsback, S.F., Robbins, A.M., Robbins, M.M., Rossmanith, E., Ruger, N., Strand, E., Souissi, S., Stillman, R.A., Vabo, R., Visser, U., & DeAngelis, D.L. (2006) A standard protocol for describing individual-based and agent-based models. Ecological Modelling, 198, 115-126.