ALMaSS Bembidion ODdox
1.1
The bembidion model description following ODdox protocol
|
Go to the documentation of this file.
28 #include "../Landscape/ls.h"
29 #include "../BatchALMaSS/PopulationManager.h"
30 #include "../BatchALMaSS/AOR_Probe.h"
31 #include "../BatchALMaSS/MovementMap.h"
32 #include "../BatchALMaSS/positionmap.h"
33 #include "../Bembidion/bembidion_all.h"
35 #include "../BatchALMaSS/BoostRandomGenerators.h"
36 extern boost::variate_generator<base_generator_type&, boost::uniform_real<> >
g_rand_uni;
115 {0.0626,0.0626,0.0940,0.0529,0.0492,0.0633},
116 {0.0631,0.0631,0.0545,0.0268,0.0236,0.0295}};
229 #ifdef __LAMBDA_RECORD
261 for (
int i=0; i<a_beetle; i++) {
306 for (
int i=0; i<size; i++)
316 #ifdef __LAMBDA_RECORD
368 for (
int i=size-1; i>=0; i--)
622 vector<APoint>::reverse_iterator ritE=
EggList.rend();
623 vector<APoint>::reverse_iterator ritB=
EggList.rbegin();
625 if ((*ritB).m_x<0) ritB++;
else break;
877 if (temp2<0) temp2=0;
else if (temp2>25) temp2=25;
878 temp2=(int)(floor((
float)temp2+2.0)*0.2);
1237 double DailyMortChance;
1239 int LengthOfStageAtTemp;
1241 if (temp2 <1) temp2=1;
1248 DailyMortChance = (100-(-7.1429+1.42857*temp2))*
1257 DailyMortChance = (100-(-74.623+7.26415*temp2))
1269 if (random(1000) < (DailyMortChance*10))
return 2;
1639 else if (day>100)
return 0;
1653 if (random(1000)<81)
1715 else mortchance=0.1;
1716 if (random(1000) < ((1-mortchance)*1000))
return true;
1729 if (p_disp_aggreg ==
true)
1763 if (random(100)<p_turning)
1780 for (
int i=0; i<p_distance; i++)
1787 while ((qual==3)&&(tries++<10))
1824 for (
int i=0; i<p_distance; i++)
1831 while ((qual==3)&&(tries++<10))
1897 for (
int i=0; i<NoEggs; i++)
1955 if (random(100)>=40)
1987 if (random(100)<p_turning)
1990 if (random(2)==1) p_direction=((1+p_direction) & 0x07);
1991 else p_direction=((7+p_direction) & 0x07);
1999 if ((vx-p_distance<0) || (vy-p_distance<0)
2004 for (
int i=0; i<p_distance; i++)
2011 while ((qual==3)&&(tries++<10))
2027 if (random(2)==1) p_direction=((1+p_direction) & 0x07);
2028 else p_direction=((7+p_direction) & 0x07);
2032 if (random(100)>=40)
2035 if (random(2)==1) p_direction=((1+p_direction) & 0x07);
2036 else p_direction=((7+p_direction) & 0x07);
2061 for (
int i=0; i<p_distance; i++)
2069 while ((qual==3)&(tries++<10))
2083 if (random(2)==1) p_direction=((1+p_direction) & 0x07);
2084 else p_direction=((7+p_direction) & 0x07);
2088 if (random(100)>=40)
2091 if (random(2)==1) p_direction=((1+p_direction) & 0x07);
2092 else p_direction=((7+p_direction) & 0x07);
2181 g_msg->
Warn(
"Unknown pesticide type used in Bembidion_Adult::InternalPesticideHandlingAndResponse() pesticide code ",
int(tp));
2199 #ifdef __BEETLEPESTICIDE1
2335 if (diff< abs(y)) diff = abs(y);
2338 if (diff2>diff) diff=diff2;
2360 for (
int i=0; i<4; i++)
2368 for (
int i=0; i<365; i++)
2374 for (
int i=0; i<365; i++)
2395 for (
int i=0; i<365; i++)
delete m_EList[i];
2471 #ifdef __RECORD_RECOVERY_POLYGONS
2473 ofstream ofile(
"RecoveryPolygonsCounter.txt",ios::out);
2474 ofile <<
"This file records the number of females in each polygon each day" << endl;
2477 ifstream ifile(
"RecoveryPolygonsList.txt",ios::in);
2480 m_RecoveryPolygons[0] = n;
2481 for (
int i=0; i<n; i++) ifile >> m_RecoveryPolygons[1+i];
2482 for (
int i=0; i<n; i++) m_RecoveryPolygonsC[1+i]=0;
2486 #ifdef __BEETLEPESTICIDE1
2487 PestMortLocOutputOpen();
2503 #ifdef __RECORD_RECOVERY_POLYGONS
2504 void Bembidion_Population_Manager::RecordRecoveryPolygons()
2511 for (
int j=0; j<sz; j++)
2514 for (
int i=1; i<=m_RecoveryPolygons[0]; i++)
2516 if (p == m_RecoveryPolygons[i]) {
2517 m_RecoveryPolygonsC[i]++;
2523 ofstream ofile(
"RecoveryPolygonsCounter.txt",ios::app);
2524 for (
int i=1; i<=m_RecoveryPolygons[0]; i++)
2526 ofile << m_RecoveryPolygonsC[i] <<
'\t';
2527 m_RecoveryPolygonsC[i] = 0;
2569 #ifdef __RECORD_RECOVERY_POLYGONS
2573 RecordRecoveryPolygons();
2595 for (
int i=0; i<365; i++)
2619 for(
int i=0; i<=today; i++)
2621 double et,l1t,l2t,l3t,pt;
2636 for(
int i=0; i<=today; i++)
2652 #ifdef __LAMBDA_RECORD
2659 #ifdef __BEETLEPESTICIDE1
2660 if (today==0) PestMortLocOutput();
2664 for (
int i=0; i<365; i++)
2674 for (
int i=0; i<365; i++)
m_EList[i]->SetStepDone(
false);
2675 for (
int i=0; i<365; i++)
m_EList[i]->Step();
2712 #ifdef __BEETLEPESTICIDE1
2759 for (
int n=0; n<365; n++)
2766 for (
unsigned i=0; i<p_TheProbe->
m_NoAreas; i++)
2770 && (X<=p_TheProbe->m_Rect[i].m_x2)
2771 && (Y<=p_TheProbe->m_Rect[i].m_y2))
2772 for (
unsigned k=0; k<p_TheProbe->
m_NoFarms; k++)
2783 for (
int n=0; n<365; n++)
2790 for (
unsigned i=0; i<p_TheProbe->
m_NoAreas; i++)
2794 && (X<=p_TheProbe->m_Rect[i].m_x2)
2795 && (Y<=p_TheProbe->m_Rect[i].m_y2))
2798 if (p_TheProbe->
m_RefEle[k]==EleType)
2807 for (
int n=0; n<365; n++)
2814 for (
unsigned i=0; i<p_TheProbe->
m_NoAreas; i++)
2818 && (X<=p_TheProbe->m_Rect[i].m_x2)
2819 && (Y<=p_TheProbe->m_Rect[i].m_y2))
2822 if (p_TheProbe->
m_RefVeg[k]==VegType)
2831 for (
int n=0; n<365; n++)
2837 for (
unsigned i=0; i<p_TheProbe->
m_NoAreas; i++)
2841 && (X<=p_TheProbe->m_Rect[i].m_x2)
2858 Sp=
TheArray[ListIndex][j]->SupplyPosition();
2859 unsigned Farm=
TheArray[ListIndex][j]->SupplyFarmOwnerRef();
2860 for (
unsigned i=0; i<p_TheProbe->
m_NoAreas; i++)
2866 for (
unsigned k=0; k<p_TheProbe->
m_NoFarms; k++)
2878 Sp=
TheArray[ListIndex][j]->SupplyPosition();
2879 for (
unsigned i=0; i<p_TheProbe->
m_NoAreas; i++)
2899 Sp=
TheArray[ListIndex][j]->SupplyPosition();
2900 for (
unsigned i=0; i<p_TheProbe->
m_NoAreas; i++)
2921 Sp=
TheArray[ListIndex][j]->SupplyPosition();
2922 for (
unsigned i=0; i<p_TheProbe->
m_NoAreas; i++)
2949 for (
int i=0; i<number; i++)
2967 TheArray[ ob_type ].push_back( new_Larva );
2981 TheArray[ ob_type ].push_back( new_Pupa );
2994 TheArray[ ob_type ].push_back( new_Adult );
3013 fprintf(a_prb,
"%d %d %d %d %d\n", 0,w ,0, h, totalF);
3014 for (
unsigned j=0; j<totalF; j++)
3020 fprintf(a_prb,
"%d\t%d\n", x, y);
3037 for (
unsigned j=0; j<totalF; j++)
3039 FS=dynamic_cast<Bembidion_Adult*>(
TheArray[3][j]);
3064 if (today!=1)
return;
3075 for (
unsigned j = 0; j < size2; j++ ) {
3076 if (random(100) > esize) {
3082 else if (esize>100) {
3089 for (
unsigned j = 0; j < size2; j++ ) {
3090 if (random(100) < esize) {
3100 for (
unsigned j = 0; j < size2; j++ ) {
3101 for (
int e=0; e<esize; e++) {
3111 #ifdef __BEETLEPESTICIDE1
3113 void Bembidion_Population_Manager::PestMortLocOutputError(
void )
3115 cout <<
"Cannot open output file for Bembidion pesticide location output " <<
"Bem_PesticideLocationMort.txt" << endl;
3121 void Bembidion_Population_Manager::PestMortLocOutputOpen(
void )
3123 ofstream ofile(
"Bem_PesticideLocationMort.txt",ios::out);
3124 if ( !ofile.is_open() ) PestMortLocOutputError();
3125 ofile <<
"Year" <<
'\t' <<
"inCrop" <<
'\t' <<
"inField" <<
'\t' <<
"offField" << endl;
3129 void Bembidion_Population_Manager::PestMortLocOutput(
void )
3131 ofstream ofile(
"Bem_PesticideLocationMort.txt",ios::app);
3132 if ( !ofile.is_open() ) PestMortLocOutputError();
3140 void Bembidion_Population_Manager::LocOutputOpen(
void )
3142 ofstream ofile(
"Bem_Locations.txt",ios::out);
3143 if ( !ofile.is_open() ) PestMortLocOutputError();
3144 ofile <<
"Year" <<
'\t' <<
"Day" <<
'\t' ;
3145 for (
int i=0; i< 100; i++)
3147 ofile <<
"inCrop" << i <<
'\t' <<
"inField" << i <<
'\t' <<
"offField" << i <<
'\t';
3149 ofile <<
"inCropTotal" <<
'\t' <<
"inFieldTotal" <<
'\t' <<
"offFieldTotal" << endl;
3154 void Bembidion_Population_Manager::DoInFieldLocationOutput()
3164 for (
int i=0; i<100; i++)
3170 for (
unsigned i=0; i<no; i++)
3175 int cell = (p.m_x / mw10) + ((p.m_y / mh10) * 10);
3181 else infield[cell]++;
3182 }
else offfield[cell]++;
3184 ofstream ofile(
"Bem_Locations.txt",ios::app);
3185 if ( !ofile.is_open() ) LocOutputError();
3187 int incr=0,offc=0,offf=0;
3188 for (
int i=0; i< 100; i++)
3190 ofile << incrop[i] <<
'\t' << infield[i] <<
'\t' << offfield[i] <<
'\t';
3193 offf += offfield[i];
3195 ofile << incr <<
'\t' << offc <<
'\t' << offf << endl;
3199 void Bembidion_Population_Manager::LocOutputError(
void )
3201 cout <<
"Cannot open output file for Bembidion location output " <<
"Bem_Locations.txt" << endl;
void SetPPPThreshold(double a_thresh)
virtual void BeginStep()
Adult BeginStep.
bool st_Aging()
Daily ageing.
const double PupaDevelConst2
Day degree constant.
void AddEgg(int x, int y)
Add an egg to the list.
double m_AgeDegrees
Record pupal day degrees.
const double LarvalDailyMort[3][6]
Daily fixed mortality probability based on three larval stages and temperature.
static CfgBool cfg_SavePesticideMortLocation("BEM_SAVEPESTMORTLOC", CFG_CUSTOM, false)
Controls whether pesticide mortality location should be recorded.
const double EggDevelConst2
Day degree constant.
TTypesOfVegetation TranslateVegTypes(int VegReference)
bool DDepMort()
Density-dependent mortality.
int m_catastrophestartyear
int st_Develop()
Larvae state development.
Bembidion_Adult(int x, int y, Landscape *L, Bembidion_Population_Manager *BPM)
static param_Point pPoint
A helper attribute when simulating movement.
TTypesOfVegetation SupplyVegType(int a_x, int a_y)
int OldDirection
The last direction moved.
TTypesOfLandscapeElement SupplyElementType(int a_polyref)
void st_Pupate()
Larvae state pupation.
The population manager class for beetles.
int st_Develop()
Pupal state development.
virtual ~Bembidion_Adult()
void CreateObjects(int ob_type, TAnimal *pvo, void *null, struct_Bembidion *data, int number)
Method to add beetles to the population.
static CfgFloat cfg_Pupa_SoilCultivationMortality("BEM_PUPAESOILMORT", CFG_CUSTOM, 0.500)
void CanReproduce()
Does reproduction if possible.
void ReInit(int x, int y, Landscape *L, Bembidion_Population_Manager *BPM)
ReInit for object pool.
vector< TListOfAnimals > TheArray
void Reproduce(int p_x, int p_y)
Produces the eggs.
virtual void TheRipleysOutputProbe(FILE *a_prb)
Special output functionality.
virtual void Step()
Larvae Step code.
TTypesOfPopulation m_population_type
static CfgInt cfg_PesticideTrialPupaeTreatmentMort("BEM_PTRIALPUPAEMORT", CFG_CUSTOM, 0)
static CfgInt cfg_LDDepMort1("BEM_LDDEPMORTONE", CFG_CUSTOM, 0)
Larval density dependent mortality.
int m_EPopSize
To store the current population size.
static CfgInt cfg_beetlestartnos("BEM_STARTNO", CFG_CUSTOM, 10000)
Controls the numbers of adults entering the simulation.
double m_LDayDeg[365][3]
Storage for daily day degrees for larve.
static CfgFloat cfg_Adult_SoilCultivationMortality("BEM_ADULTSOILMORT", CFG_CUSTOM, 0.270)
static CfgFloat cfg_Egg_SoilCultivationMortality("BEM_EGGSOILMORT", CFG_CUSTOM, 0.500)
void st_Emerge()
Pupal state emergence.
int st_Aggregate()
Aggregation behaviour.
The class describing the base class for beetle objects objects.
static CfgBool cfg_SaveInfieldLocation("BEM_SAVEINFIELDLOC", CFG_CUSTOM, false)
Controls whether in-field off-field location should be recorded.
FILE * ReallyBigOutputPrb
SimplePositionMap * m_AdultPosMap
Optimsied map of adult positions.
Bembidion_Population_Manager(Landscape *p_L)
Constructor.
Landscape * m_OurLandscape
virtual void Init(void)
Intialises the population manager.
virtual void KillThis()
Kill this pupa.
const double DailyAdultMort
Daily fixed mortality probability.
int m_AdPopSize
To store the current population size.
const int DipsersalDayDegrees
The class describing the beetle Egg_List objects.
bool OpenTheRipleysOutputProbe(string a_NWordFilename)
virtual void DoAlmostLast(void)
Removes dead or pupated larvae from the simulation.
static CfgFloat cfg_BemAdultPPPEffectProb("BEM_ADPPPEFFECTPROB", CFG_CUSTOM, 0, 0.0, 1.0)
The probability of daily effect per day on threshold excedence.
int st_Forage()
Foraging behaviour.
double LDDepMort1
Storage for density-dependent mortality parameter.
static CfgFloat cfg_Pupa_InsecticideApplication("BEM_PUPAEINSECTICIDEMORT", CFG_CUSTOM, 0.800)
const int StartAggregatingDayProb
char m_SimulationName[255]
static CfgFloat cfg_BemAdultPPPElimiationRate("BEM_ADPPPELIMIATIONRATE", CFG_CUSTOM, 0.0, 0.0, 1.0)
Pesticide body burden is multiplied by this daily.
double SupplyEDayDeg(int day)
Get egg day degress for a specific day.
virtual ~Bembidion_Population_Manager()
Destructor.
unsigned GetLiveArraySize(int a_listindex)
Gets the number of 'live' objects for a list index in the TheArray.
static CfgFloat cfg_Adult_InsecticideApplication("BEM_ADULTINSECTICIDEMORT", CFG_CUSTOM, 0.800)
const double DevelopmentInflectionPoint
Inflection point in larval day degree calculations.
static CfgInt cfg_SaveInfieldLocationStartDay("BEM_INCROPREFSTARTDAY", CFG_CUSTOM, -2)
Start day in year to record in-field locations.
int Supply_m_Location_x()
void CopyMyself(int a_beetle)
For experimental purposes.
const char * SimulationName
Bembidion_Pupae(int x, int y, Landscape *L, Bembidion_Population_Manager *BPM)
Pupae class constructor.
int m_PPopSize
To store the current population size.
static CfgFloat cfg_BemAdultPPPEffectProbDecay("BEM_ADPPPEFFECTPROBDECAY", CFG_CUSTOM, 0, 0.0, 1.0)
The probability of daily effect per day on threshold excedence.
static CfgInt cfg_PesticideTrialEggTreatmentMort("BEM_PTRIALEGGMORT", CFG_CUSTOM, 0)
virtual void TheAOROutputProbe()
Special output functionality.
const int FieldHibernateChance
SimplePositionMap * m_LarvaePosMap
Optimised map of larval positions.
static CfgFloat cfg_Egg_InsecticideApplication("BEM_EGGINSECTICIDEMORT", CFG_CUSTOM, 0)
virtual void BeginStep()
Pupae BeginStep code.
void ReInit(int x, int y, Landscape *L, Bembidion_Population_Manager *BPM)
ReInit for object pool.
int m_LPopSize
To store the current population size.
static param_List15 pList
A helper attribute when simulating movement.
class MapErrorMsg * g_msg
Bembidion_Base(int x, int y, Landscape *L, Bembidion_Population_Manager *BPM)
Constructor.
const double DailyEggMort
Daily fixed mortality probability.
void SetAdultPPPElimRate(double a_rate)
TTypesOfLandscapeElement m_RefEle[25]
The landscape class containing all environmental and topographical data.
void LamdaBirth(int x, int y)
const int PesticideTrialEggToxicMort
CfgBool cfg_ReallyBigOutput_used
void MoveTo(int p_dist, unsigned p_direction, int p_turning)
Moves attempting egg laying under way.
static CfgInt cfg_DDepRange("BEM_DDEPRANGE", CFG_CUSTOM, 3)
Adult/Larve density dependent range.
virtual void KillThis()
Kill this larva.
double SupplyPesticide(int a_x, int a_y, PlantProtectionProducts a_ppp)
Gets total pesticide for a location.
int SupplyDayInMonth(void)
TTypesOfVegetation m_RefVeg[25]
const int PesticideTrialLarvaeToxicMort
int SupplySimAreaHeight(void)
int SupplyFarmOwner(int a_x, int a_y)
int SupplySimAreaWidth(void)
static CfgFloat cfg_BemAdultPPPThreshold("BEM_ADPPPTHRESHOLD", CFG_CUSTOM, 9999999999.9)
Adult PPP threshold for effect.
Bool configurator entry class.
static CfgInt cfg_MaxDailyMovement("BEM_MAXDAILYMOVEMENT", CFG_CUSTOM, 14)
Max daily movement in m.
boost::variate_generator< base_generator_type &, boost::uniform_real<> > g_rand_uni
int st_Dispersal()
Intiate Dispersal behaviour.
The base class for all ALMaSS animal classes.
const double DailyLarvaeMort
Daily fixed mortality probability.
const double LDevelConst2[3]
Day degree constant.
virtual void Catastrophe()
Method to arbitrarily alter populations size.
A class defining an animals position.
void ReInit(int x, int y, Landscape *L, Bembidion_Population_Manager *BPM)
ReInit for object pool.
CfgBool cfg_RipleysOutput_used
bool m_CanReproduce
Signal reproductive readiness.
unsigned BeforeStepActions[12]
virtual bool DailyMortality()
Larvae non-temperature or density related mortality.
virtual bool DailyMortality()
Density-independent mortality.
void SetPPPEffectProbDecay(double a_decay)
int st_Develop()
Egg_List state development.
Bembidion_Egg_List(int today, Bembidion_Population_Manager *BPM, Landscape *L)
Egg_List class constructor.
void Warn(MapErrorState a_level, std::string a_msg1, std::string a_msg2)
Data structure to hold & output probe data probe data is designed to be used to return the number of ...
Base class for all population managers.
int LDDepMort0
Storage for density-dependent mortality parameter.
The class describing the beetle larvae objects.
int SupplyDayInYear(void)
bool m_StepDone
Indicates whether the iterative step code is done for this timestep.
double m_currentPPPEffectProb
Current effect probability.
TTypesOfPesticide SupplyPesticideType(void)
int m_EggCounter
The number of eggs produced.
virtual void InternalPesticideHandlingAndResponse()
Hand pesticide events code for the beetle.
int SupplyYearNumber(void)
double ADDepMort1
Storage for density-dependent mortality parameter.
const double DevelConst1
Day degree threshold constant for all stages.
int MoveToAggr(int p_dist, unsigned p_direction, int p_turning)
Moves using a stopping rule for hibernation.
double m_negDegrees
The number of negative day degrees experienced.
TTypesOfLandscapeElement m_EleType
double g_SpeedyDivides[2001]
Facilitating array for divisions by integers (= *1/N)
double m_body_burden
Current body burden of pesticide.
const double AdultEggLayingThreshold
Temperature threshold for egg laying.
Bembidion_Population_Manager * BPM
void SetPPPEffectProb(double a_conc)
The class describing the beetle pupae objects.
static CfgFloat cfg_Larva_SoilCultivationMortality("BEM_LARVAESOILMORT", CFG_CUSTOM, 0.500)
virtual void DoBefore(void)
Replaces the Step function for the Egg_List.
virtual bool DailyMortality()
Pupae non-temperature or density related mortality.
Bembidion_Egg_List * m_EList[365]
Replacement for TheArray[0].
virtual void Step()
Adult Step.
double SupplyLDayDeg(int L, int day)
Get larval day degress for a specific dayand instar.
const double above12Larvae[3]
Day degree constant above inflection point.
A data class for Bembidion data.
virtual bool OnFarmEvent(FarmToDo event)
Larvae reactions to management events.
TTypesOfBeetleState CurrentBState
Current behavioural state.
virtual void CopyMyself()
static CfgFloat cfg_BeetleHarvestMort("BEM_HARVESTMORT", CFG_CUSTOM, 0.290)
static double m_AdultPPPElimRate
the daily elimination rate for pesticides
virtual void st_Die()
Common state Die.
const char * StateNames[100]
virtual void BeginStep()
Larvae class BeginStep code.
static CfgInt cfg_LDDepMort0("BEM_LDDEPMORTZERO", CFG_CUSTOM, 3)
Larval density dependent mortality.
const double DailyPupaeMort
Daily fixed mortality probability.
The class describing the adult (female) beetle objects.
Landscape * m_TheLandscape
void Init()
Intitialise attribute values.
static CfgInt cfg_PesticideTrialLarvaeTreatmentMort("BEM_PTRIALLARVAEMORT", CFG_CUSTOM, 0)
bool OpenTheReallyBigProbe()
CfgInt cfg_pm_eventfrequency
int st_Hibernate()
Hibernation behaviour.
Bembidion_Larvae(int x, int y, Landscape *L, Bembidion_Population_Manager *BPM)
Larvae class constructor.
virtual bool OnFarmEvent(FarmToDo event)
Adult reactions to management events.
void ReInit(int x, int y, Landscape *L, Bembidion_Population_Manager *BPM)
ReInit for object pool.
void st_Hatch()
Egg_List state hatching.
double m_PDayDeg[365]
Storage for daily day degrees for pupae.
void CopyMyselfB(int a_beetle)
For experimental purposes.
static double m_PPPThreshold
PPP effects threshold.
Integer configurator entry class.
unsigned m_ListNameLength
virtual void TheReallyBigOutputProbe()
Special output functionality.
int GetCurrentStateNo()
Returns the current state number.
double m_AgeDegrees
Record larvae day degrees.
virtual void Step()
Pupae Step code.
The base class for all farm types.
virtual bool OnFarmEvent(FarmToDo event)
Pupal reactions to management events.
double SupplyPDayDeg(int day)
Get pupal day degress for a specific day.
static CfgFloat cfg_BeetleStriglingMort("BEM_STRIGLINGMORT", CFG_CUSTOM, 0.250)
int ADDepMort0
Storage for density-dependent mortality parameter.
CfgBool cfg_AOROutput_used
void CheckManagement(void)
virtual void DoFirst(void)
Does day degree development calculations here.
int Supply_m_Location_y()
virtual void EndStep()
Adult EndStep.
Double configurator entry class.
Bembidion_Population_Manager * m_OurPopulation
Pointer to the population manager.
double m_EDayDeg[365]
Storage for daily day degrees for eggs.
const double EggProductionSlope
const int PesticideTrialAdultToxicMort
const int PesticideTrialPupaeToxicMort
static CfgInt cfg_ADDepMort1("BEM_ADDEPMORTONE", CFG_CUSTOM, 10)
Chance of death if there is another adult within the density-dependent range square this beetle is in...
virtual void BeginStep()
Egg_List class BeginStep code.
CfgBool cfg_ReallyBigOutputMonthly_used
int m_LarvalStage
Current larval growth stage (1-3)
const double above12Pupae
Day degree constant above inflection point.
TListOfEggs EggList
The list of eggs.
int TodaysEggProduction
Daily temperature determined egg production.
virtual void ReinitialiseObject()
Used to re-use an object - must be implemented in descendent classes.
const int StartAggregatingDay
static CfgInt cfg_SaveInfieldLocationInterval("BEM_INCROPREFINTERVAL", CFG_CUSTOM, 10000)
Interval for recording in-crop locations - > 364 is ignored.
int m_CurrentStateNo
The basic state number for all objects - '-1' indicates death.
virtual float Probe(int ListIndex, probe_data *p_TheProbe)
Overides the Population_Manager::Probe method.
int SupplyLastTreatment(int a_polyref, int *a_index)
double m_HibernateDegrees
The number of day degrees experienced in the spring which may trigger dispersal.
virtual void DoLast(void)
Adds output adult locations to DoLast.
bool WinterMort()
Density-independent winter mortality.
const char * m_ListNames[32]
void Warn(std::string a_msg1, std::string a_msg2)
const int StopAggregationDay
static CfgInt cfg_InCropRef("BEM_INCROPREF", CFG_CUSTOM, 603)
Defines the crop reference for in-crop if pest mort location or in-field locations are switched on.
int MoveTo_quality_assess()
Moves w.r.t. habitat quality only.
static double m_PPPEffectProb
Effect probability on threshold excedence.
Function class to compare to Eggs X.
int DailyMovement(int p_distance, bool disp_aggreg)
Initiates the daily movement for the beelt.
static CfgInt cfg_PesticideTrialAdultTreatmentMort("BEM_PTRIALADULTMORT", CFG_CUSTOM, 0)
bool IsStartHabitat(int a_x, int a_y)
Used to specify legal starting habitats for simulation start-up.
const double above12Egg
Day degree constant above inflection point.
virtual void Step()
Egg_List class Step code.
int SupplyPolyRef(int a_x, int a_y)
static CfgInt cfg_TotalNoEggs("BEM_TOTALEGGS", CFG_CUSTOM, 256)
The maximum number of eggs it is possible to produce per female.
static CfgFloat cfg_Larva_InsecticideApplication("BEM_LARVAEINSECTICIDEMORT", CFG_CUSTOM, 0.800)
MovementMap * m_MoveMap
Map of suitability for movement.
void DailyMortality()
Egg_List non-temperature or density related mortality.
bool TempRelatedLarvalMortality(int temp2)
Determine larval temperature related mortality.
static double m_PPPEffectProbDecay
Effect probability on threshold excedence.
void LamdaDeath(int x, int y)
const float DispersalThreshold
Adult dispersal temp threshold for DD calcuation.
TTypesOfVegetation m_VegType
static CfgInt cfg_ADDepMort0("BEM_ADDEPMORTZERO", CFG_CUSTOM, 2)
Adult density dependent mortality constant.
void IncLiveArraySize(int a_listindex)
Increments the number of 'live' objects for a list index in the TheArray.