Gadget
tags.h
Go to the documentation of this file.
1 #ifndef tags_h
2 #define tags_h
3 
4 #include "keeper.h"
5 #include "hasname.h"
6 #include "commentstream.h"
7 #include "areatime.h"
8 #include "charptrvector.h"
9 #include "stockptrvector.h"
10 #include "agebandmatrix.h"
11 #include "agebandmatrixptrmatrix.h"
12 #include "livesonareas.h"
13 #include "doublematrixptrvector.h"
15 #include "formula.h"
16 
17 class Tags : public HasName {
18 public:
19  Tags(CommentStream& infile, const char* givenname, const AreaClass* const Area,
20  const TimeClass* const TimeInfo, Keeper* const keeper, StockPtrVector stockvec);
21  ~Tags();
22  void Update(int timeid);
23  void updateTags(int year, int step);
24  void deleteStockTags();
25  int getEndYear() const { return endyear; };
26  int getNumTagTimeSteps() const { return numtagtimesteps; };
27  CharPtrVector getStockNames() { return stocknames; };
28  void setStock(StockPtrVector& Stocks);
29  void updateMatureStock(const TimeClass* const TimeInfo);
30  void updateTransitionStock(const TimeClass* const TimeInfo);
31  void updateStrayStock(const TimeClass* const TimeInfo);
32  void storeConsumptionALK(int area, const char* stockname);
33  const AgeBandMatrix& getConsumptionALK(int area, const char* stockname);
38  void Print(ofstream& outfile) const;
42  void Reset();
43  int isWithinPeriod(int year, int step);
44  int stockIndex(const char* stockname);
45  int areaIndex(const char* stockname, int area);
46  void addToTagStock(int timeid);
47 private:
48  void readNumbers(CommentStream& infile, const char* tagname, const TimeClass* const TimeInfo);
49  CharPtrVector stocknames;
50  //area-age-length distribution of tags by stocks
51  AgeBandMatrixPtrMatrix AgeLengthStock;
52  AgeBandMatrixPtrMatrix NumBeforeEating;
53  Formula tagloss; //percentage of tags that are lost
54  int tagarea; //area of tagging
55  int tagyear; //year of tagging
56  int tagstep; //step of tagging
57  int endyear; //year of last recapture
58  int numtagtimesteps;
59  DoubleMatrixPtrVector NumberByLength;
60  LengthGroupDivision* LgrpDiv;
61  StockPtrVector tagStocks;
62  StockPtrVector matureStocks;
63  StockPtrVector transitionStocks;
64  StockPtrVector strayStocks;
66  Stock* taggingstock;
67  IntVector preyindex;
68  IntVector updated;
69  IntVector Years;
70  IntVector Steps;
71 };
72 #endif
This class implements a dynamic vector of AgeBandMatrixPtrVector values.
Definition: agebandmatrixptrmatrix.h:10
This class implements a vector of PopInfoIndexVector values, indexed from minage not 0.
Definition: agebandmatrix.h:15
This is the class used to store information about the areas used for the current model.
Definition: areatime.h:18
This class implements a dynamic vector of char values.
Definition: charptrvector.h:8
This is the class used to strip comments (and whitespace) from any input stream.
Definition: commentstream.h:40
This class implements a dynamic vector of ConversionIndex values.
Definition: conversionindexptrvector.h:10
This class implements a dynamic vector of DoubleMatrix values.
Definition: doublematrixptrvector.h:10
This is the class used to calculate the value of the variables used in the model simulation.
Definition: formula.h:18
This is the base class for any object that has a name.
Definition: hasname.h:10
This class implements a dynamic vector of int values.
Definition: intvector.h:11
This is the class used to store information about the variables that are used in model simulation.
Definition: keeper.h:17
This is the class used to store information about the length groups of the modelled stock population.
Definition: lengthgroup.h:10
This class implements a dynamic vector of Stock values.
Definition: stockptrvector.h:10
This is the class used to model a stock within the Gadget model.
Definition: stock.h:33
Definition: tags.h:17
void setStock(StockPtrVector &Stocks)
Definition: tags.cc:210
void deleteStockTags()
Definition: tags.cc:410
void addToTagStock(int timeid)
Definition: tags.cc:541
void Update(int timeid)
Definition: tags.cc:280
const AgeBandMatrix & getConsumptionALK(int area, const char *stockname)
Definition: tags.cc:518
int getNumTagTimeSteps() const
Definition: tags.h:26
Tags(CommentStream &infile, const char *givenname, const AreaClass *const Area, const TimeClass *const TimeInfo, Keeper *const keeper, StockPtrVector stockvec)
Definition: tags.cc:11
~Tags()
Definition: tags.cc:179
void updateTags(int year, int step)
Definition: tags.cc:394
int stockIndex(const char *stockname)
Definition: tags.cc:477
void updateStrayStock(const TimeClass *const TimeInfo)
Definition: tags.cc:458
int getEndYear() const
Definition: tags.h:25
void storeConsumptionALK(int area, const char *stockname)
Definition: tags.cc:500
void updateTransitionStock(const TimeClass *const TimeInfo)
Definition: tags.cc:439
void updateMatureStock(const TimeClass *const TimeInfo)
Definition: tags.cc:420
int isWithinPeriod(int year, int step)
Definition: tags.cc:535
int areaIndex(const char *stockname, int area)
Definition: tags.cc:486
CharPtrVector getStockNames()
Definition: tags.h:27
void Print(ofstream &outfile) const
This function will print the model tagged population.
Definition: tags.cc:577
void Reset()
This function will reset the model tagged population.
Definition: tags.cc:194
This is the class used to store information about the timesteps used for the current model.
Definition: areatime.h:87