1 |
C $Header: /u/gcmpack/MITgcm_contrib/darwin2/pkg/monod/MONOD_SIZE.h,v 1.4 2012/07/26 20:43:36 stephd Exp $ |
2 |
C $Name: $ |
3 |
|
4 |
c MONOD_SIZE.h |
5 |
c description: Size specification for generalized ecosystem model |
6 |
c Mick Follows, Scott Grant Fall/Winter 2005 |
7 |
c Stephanie Dutkiewicz Spring/Summer 2006 |
8 |
c |
9 |
c |
10 |
c npmax = no of "functional groups" of phytoplankton |
11 |
c nzmax = no of "functional groups" of zooplankton |
12 |
c |
13 |
c |
14 |
|
15 |
INTEGER npmax |
16 |
INTEGER nzmax |
17 |
PARAMETER(npmax=78,nzmax=2) |
18 |
|
19 |
C iPO4 :: index of PO4 in Ptracer |
20 |
C iNO3 :: index of NO3 in Ptracer |
21 |
C iFeT :: index of FeT in Ptracer |
22 |
C iSi :: index of Si in Ptracer |
23 |
C iDOP :: index of DOP in Ptracer |
24 |
C iDON :: index of DON in Ptracer |
25 |
C iDOFe :: index of DOFe in Ptracer |
26 |
C iPOP :: index of POP in Ptracer |
27 |
C iPON :: index of PON in Ptracer |
28 |
C iPOFe :: index of POFe in Ptracer |
29 |
C iPOSi :: index of POSi in Ptracer |
30 |
C iNH4 :: index of NH4 in Ptracer |
31 |
C iNO2 :: index of NO2 in Ptracer |
32 |
C iZoo :: index of first zooplankton |
33 |
C iPhy :: index of first phytoplankton |
34 |
C iChl :: index of first phytoplankton Chl (if using dynamic chl) |
35 |
C iCDOM :: index of CDOM (if using CDOM) |
36 |
C nDarwin :: total number of ptracers used by DARWIN |
37 |
C nCompZooMax :: maximum number of components each zooplankton can have (P,N,...) |
38 |
C strideCompZoo :: increment between components of zooplankton |
39 |
C :: iZooComp(nz) = iZoo+(nz-1)*strideTypeZoo+(iComp-1)*strideCompZoo |
40 |
C strideTypeZoo :: increment between types of zooplankton |
41 |
C :: iZooComp(nz) = iZoo+(nz-1)*strideTypeZoo+(iComp-1)*strideCompZoo |
42 |
C the only reasonable choices for the above two are: |
43 |
C strideCompZoo = 1 |
44 |
C strideTypeZoo = nCompZooMax |
45 |
C (the traditional choice) or |
46 |
C strideCompZoo = nzmax |
47 |
C strideTypeZoo = 1 |
48 |
C remember to bring the fields in data.ptracers in the right order ! |
49 |
|
50 |
INTEGER iPO4 |
51 |
INTEGER iNO3 |
52 |
INTEGER iFeT |
53 |
INTEGER iSi |
54 |
INTEGER iDOP |
55 |
INTEGER iDON |
56 |
INTEGER iDOFe |
57 |
INTEGER iPOP |
58 |
INTEGER iPON |
59 |
INTEGER iPOFe |
60 |
INTEGER iPOSi |
61 |
INTEGER iNH4 |
62 |
INTEGER iNO2 |
63 |
INTEGER iZoo |
64 |
INTEGER iPhy |
65 |
INTEGER nDarwin |
66 |
INTEGER nCompZooMax |
67 |
INTEGER strideCompZoo |
68 |
INTEGER strideTypeZoo |
69 |
INTEGER iTot |
70 |
INTEGER nTOT |
71 |
#ifdef ALLOW_CARBON |
72 |
INTEGER iDIC |
73 |
INTEGER iDOC |
74 |
INTEGER iPOC |
75 |
INTEGER iPIC |
76 |
INTEGER iALK |
77 |
INTEGER iO2 |
78 |
INTEGER iZoC |
79 |
#endif |
80 |
#ifdef DYNAMIC_CHL |
81 |
INTEGER iChl |
82 |
#endif |
83 |
#ifdef ALLOW_CDOM |
84 |
INTEGER iCDOM |
85 |
#endif |
86 |
#ifdef ONLY_P_CYCLE |
87 |
INTEGER nptot |
88 |
PARAMETER (nptot=npmax+nzmax+4) |
89 |
c |
90 |
PARAMETER (nCompZooMax=1) |
91 |
PARAMETER (strideCompZoo=1) |
92 |
PARAMETER (strideTypeZoo=nCompZooMax) |
93 |
PARAMETER (iPO4 =1) |
94 |
PARAMETER (iNO3 =nptot) |
95 |
PARAMETER (iFeT =nptot) |
96 |
PARAMETER (iSi =nptot) |
97 |
PARAMETER (iDOP =2) |
98 |
PARAMETER (iDON =nptot) |
99 |
PARAMETER (iDOFe =nptot) |
100 |
PARAMETER (iZoo =3) |
101 |
PARAMETER (iPOP =iZoo+nzmax*nCompZooMax) |
102 |
PARAMETER (iPON =nptot ) |
103 |
PARAMETER (iPOFe =nptot ) |
104 |
PARAMETER (iPOSi =nptot ) |
105 |
PARAMETER (iNH4 =nptot ) |
106 |
PARAMETER (iNO2 =nptot ) |
107 |
PARAMETER (iPhy =iPOP +1) |
108 |
#ifdef DYNAMIC_CHL |
109 |
PARAMETER (iChl =iPhy +npmax) |
110 |
PARAMETER (iTOT =iPhy +npmax+npmax) |
111 |
#else |
112 |
PARAMETER (iTOT =iPhy +npmax) |
113 |
#endif |
114 |
#ifdef ALLOW_CDOM |
115 |
PARAMETER (iCDOM =iTOT) |
116 |
PARAMETER (nTOT = iCDOM+1) |
117 |
#else |
118 |
PARAMETER (nTOT =iTOT) |
119 |
#endif |
120 |
PARAMETER (nDarwin=nTOT-1) |
121 |
#else /* ALL NUTRIENT CYCLES */ |
122 |
PARAMETER (nCompZooMax=4) |
123 |
PARAMETER (strideCompZoo=1) |
124 |
PARAMETER (strideTypeZoo=nCompZooMax) |
125 |
PARAMETER (iPO4 =1) |
126 |
PARAMETER (iNO3 =2) |
127 |
PARAMETER (iFeT =3) |
128 |
PARAMETER (iSi =4) |
129 |
PARAMETER (iDOP =5) |
130 |
PARAMETER (iDON =6) |
131 |
PARAMETER (iDOFe =7) |
132 |
PARAMETER (iZoo =8) |
133 |
PARAMETER (iPOP =iZoo+nzmax*nCompZooMax) |
134 |
PARAMETER (iPON =iPOP +1) |
135 |
PARAMETER (iPOFe =iPON +1) |
136 |
PARAMETER (iPOSi =iPOFe +1) |
137 |
PARAMETER (iNH4 =iPOSi +1) |
138 |
PARAMETER (iNO2 =iNH4 +1) |
139 |
PARAMETER (iPhy =iNO2 +1) |
140 |
#ifdef DYNAMIC_CHL |
141 |
PARAMETER (iChl =iPhy +npmax) |
142 |
PARAMETER (iTOT =iPhy +npmax+npmax) |
143 |
#else |
144 |
PARAMETER (iTOT =iPhy +npmax) |
145 |
#endif |
146 |
#ifdef ALLOW_CDOM |
147 |
PARAMETER (iCDOM =iTOT) |
148 |
PARAMETER (nTOT = iCDOM+1) |
149 |
#else |
150 |
PARAMETER (nTOT =iTOT) |
151 |
#endif |
152 |
#ifdef ALLOW_CARBON |
153 |
PARAMETER (iDIC =nTOT) |
154 |
PARAMETER (iDOC =iDIC+1) |
155 |
PARAMETER (iPOC =iDOC+1) |
156 |
PARAMETER (iPIC =iPOC+1) |
157 |
PARAMETER (iALK =iPIC+1) |
158 |
PARAMETER (iO2 =iALK+1) |
159 |
PARAMETER (iZoC =iO2+1) |
160 |
PARAMETER (nDarwin=iZoC+nzmax-1) |
161 |
#else |
162 |
PARAMETER (nDarwin=nTOT-1) |
163 |
#endif |
164 |
#endif |
165 |
|
166 |
|
167 |
C iZooP(nzmax) :: index of phosphorus content of each zooplankton type |
168 |
C iZooN(nzmax) :: index of nitrogen content of each zooplankton type |
169 |
C iZooFe(nzmax) :: index of iron content of each zooplankton type |
170 |
C iZooSi(nzmax) :: index of silica content of each zooplankton type |
171 |
C these are computed in darwin_init_fixed from iZoo, strideCompZoo and strideTypeZoo |
172 |
INTEGER iZooP (nzmax) |
173 |
INTEGER iZooN (nzmax) |
174 |
INTEGER iZooFe(nzmax) |
175 |
INTEGER iZooSi(nzmax) |
176 |
#ifdef ALLOW_CARBON |
177 |
INTEGER iZooC(nzmax) |
178 |
#endif |
179 |
COMMON/DARWIN_SIZE/ iZooP, iZooN, iZooFe, iZooSi |
180 |
#ifdef ALLOW_CARBON |
181 |
& ,iZooC |
182 |
#endif |
183 |
|
184 |
|