Indian Ocean Skipjack
dimensions.hpp
1 #pragma once
2 
3 #include "imports.hpp"
4 
5 namespace IOSKJ {
6 
7 typedef unsigned int uint;
8 
9 const uint year_min = 1950;
10 const uint year_max = 2035;
11 
12 uint time_calc(uint year,uint quarter){
13  return (year-year_min)*4+quarter;
14 }
15 uint year(uint time){
16  return year_min+time/4;
17 }
18 uint quarter(uint time){
19  return time%4;
20 }
21 
22 class Year : public Dimension<Year,year_max-year_min+1,year_min> {
23 public:
24  Year(void):Dimension<Year,year_max-year_min+1,year_min>("year"){}
25  static const char* name(void) { return "year"; }
26 } years;
27 
28 STENCILA_DIM(Quarter,quarters,quarter,4);
29 
38 const uint data_years_size = 2014-1982+1;
39 class DataYear : public Dimension<DataYear,data_years_size,1982> {
40 public:
41  DataYear(void):Dimension<DataYear,data_years_size,1982>("data_year"){}
42  static const char* name(void) { return "data_year"; }
43 } data_years;
44 
51 STENCILA_DIM_RANGE(RecdevYear,recdev_years,recdev_year,1985,2012);
52 
53 STENCILA_DIM(Region,regions,region,3);
54 STENCILA_DIM(RegionFrom,region_froms,region_from,3);
55 enum {
56  WE = 0,
57  MA = 1,
58  EA = 2
59 };
60 
61 STENCILA_DIM(Age,ages,age,24);
62 
63 STENCILA_DIM(Size,sizes,size,40);
64 STENCILA_DIM(SizeFrom,size_froms,size_from,40);
65 
66 STENCILA_DIM(Method,methods,method,4);
67 enum {
68  PS = 0,
69  PL = 1,
70  GN = 2,
71  OT = 3
72 };
73 
74 STENCILA_DIM(SelectivityKnot,selectivity_knots,selectivity_knot,7);
75 
76 STENCILA_DIM(ZSize,z_sizes,z_size,4);
77 
78 }
Definition: data.hpp:6
Definition: dimensions.hpp:39
Definition: dimensions.hpp:22