source: branches/CNRS/dev_r4826_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/par_pisces.F90 @ 5266

Last change on this file since 5266 was 5266, checked in by cetlod, 6 years ago

PISCES_QUOTA : First commits, see ticket #1516

  • Property svn:keywords set to Id
File size: 18.2 KB
Line 
1MODULE par_pisces
2   !!======================================================================
3   !!                        ***  par_pisces  ***
4   !! TOP :   set the PISCES parameters
5   !!======================================================================
6   !! History :   2.0  !  2007-12  (C. Ethe, G. Madec)  revised architecture
7   !!----------------------------------------------------------------------
8   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
9   !! $Id$
10   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
11   !!----------------------------------------------------------------------
12
13   IMPLICIT NONE
14
15#if defined key_pisces_reduced
16   !!---------------------------------------------------------------------
17   !!   'key_pisces_reduced'   :                                LOBSTER bio-model
18   !!---------------------------------------------------------------------
19   INTEGER, PUBLIC, PARAMETER ::   lk_pisces     = .TRUE.  !: PISCES flag
20   INTEGER, PUBLIC, PARAMETER ::   nn_p4z        =  1      !: p4z flag
21   INTEGER, PUBLIC, PARAMETER ::   jp_pisces     =  6      !: number of passive tracers
22   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_2d  =  19     !: additional 2d output
23   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_3d  =   3     !: additional 3d output
24   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_trd =   17    !: number of sms trends for PISCES
25
26   ! assign an index in trc arrays for each LOBSTER prognostic variables
27   INTEGER, PUBLIC, PARAMETER ::   jpdet     =  1        !: detritus                    [mmoleN/m3]
28   INTEGER, PUBLIC, PARAMETER ::   jpzoo     =  2        !: zooplancton concentration   [mmoleN/m3]
29   INTEGER, PUBLIC, PARAMETER ::   jpphy     =  3        !: phytoplancton concentration [mmoleN/m3]
30   INTEGER, PUBLIC, PARAMETER ::   jpno3     =  4        !: nitrate concentration       [mmoleN/m3]
31   INTEGER, PUBLIC, PARAMETER ::   jpnh4     =  5        !: ammonium concentration      [mmoleN/m3]
32   INTEGER, PUBLIC, PARAMETER ::   jpdom     =  6        !: dissolved organic matter    [mmoleN/m3]
33
34   ! productive layer depth
35   INTEGER, PUBLIC, PARAMETER ::   jpkb      = 12        !: first vertical layers where biology is active
36   INTEGER, PUBLIC, PARAMETER ::   jpkbm1    = jpkb - 1  !: first vertical layers where biology is active
37
38#elif defined key_pisces  &&  defined key_kriest
39   !!---------------------------------------------------------------------
40   !!   'key_pisces' & 'key_kriest'                 PISCES bio-model + ???
41   !!---------------------------------------------------------------------
42   LOGICAL, PUBLIC, PARAMETER ::   lk_pisces     = .TRUE.  !: PISCES flag
43   INTEGER, PUBLIC, PARAMETER ::   nn_p4z        =  2      !: p4z flag
44   LOGICAL, PUBLIC, PARAMETER ::   lk_kriest     = .TRUE.  !: Kriest flag
45   INTEGER, PUBLIC, PARAMETER ::   jp_pisces     =  23     !: number of passive tracers
46   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_2d  =  13     !: additional 2d output
47   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_3d  =  18     !: additional 3d output
48   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_trd =   1     !: number of sms trends for PISCES
49
50   ! assign an index in trc arrays for each LOBSTER prognostic variables
51   !    WARNING: be carefull about the order when reading the restart
52        !   !!gm  this warning should be obsolet with IOM
53   INTEGER, PUBLIC, PARAMETER ::   jpdic =  1    !: dissolved inoganic carbon concentration
54   INTEGER, PUBLIC, PARAMETER ::   jptal =  2    !: total alkalinity
55   INTEGER, PUBLIC, PARAMETER ::   jpoxy =  3    !: oxygen carbon concentration
56   INTEGER, PUBLIC, PARAMETER ::   jpcal =  4    !: calcite  concentration
57   INTEGER, PUBLIC, PARAMETER ::   jppo4 =  5    !: phosphate concentration
58   INTEGER, PUBLIC, PARAMETER ::   jppoc =  6    !: small particulate organic phosphate concentration
59   INTEGER, PUBLIC, PARAMETER ::   jpsil =  7    !: silicate concentration
60   INTEGER, PUBLIC, PARAMETER ::   jpphy =  8    !: phytoplancton concentration
61   INTEGER, PUBLIC, PARAMETER ::   jpzoo =  9    !: zooplancton concentration
62   INTEGER, PUBLIC, PARAMETER ::   jpdoc = 10    !: dissolved organic carbon concentration
63   INTEGER, PUBLIC, PARAMETER ::   jpdia = 11    !: Diatoms Concentration
64   INTEGER, PUBLIC, PARAMETER ::   jpmes = 12    !: Mesozooplankton Concentration
65   INTEGER, PUBLIC, PARAMETER ::   jpdsi = 13    !: (big) Silicate Concentration
66   INTEGER, PUBLIC, PARAMETER ::   jpfer = 14    !: Iron Concentration
67   INTEGER, PUBLIC, PARAMETER ::   jpnum = 15    !: Big iron particles Concentration
68   INTEGER, PUBLIC, PARAMETER ::   jpsfe = 16    !: number of particulate organic phosphate concentration
69   INTEGER, PUBLIC, PARAMETER ::   jpdfe = 17    !: Diatoms iron Concentration
70   INTEGER, PUBLIC, PARAMETER ::   jpgsi = 18    !: Diatoms Silicate Concentration
71   INTEGER, PUBLIC, PARAMETER ::   jpnfe = 19    !: Nano iron Concentration
72   INTEGER, PUBLIC, PARAMETER ::   jpnch = 20    !: Nano Chlorophyll Concentration
73   INTEGER, PUBLIC, PARAMETER ::   jpdch = 21    !: Diatoms Chlorophyll Concentration
74   INTEGER, PUBLIC, PARAMETER ::   jpno3 = 22    !: Nitrates Concentration
75   INTEGER, PUBLIC, PARAMETER ::   jpnh4 = 23    !: Ammonium Concentration
76
77#elif defined key_pisces
78   !!---------------------------------------------------------------------
79   !!   'key_pisces'   :                         standard PISCES bio-model
80   !!---------------------------------------------------------------------
81   LOGICAL, PUBLIC, PARAMETER ::   lk_pisces     = .TRUE.  !: PISCES flag
82   INTEGER, PUBLIC, PARAMETER ::   nn_p4z        =  2  !: p4z flag
83   LOGICAL, PUBLIC, PARAMETER ::   lk_kriest     = .FALSE. !: Kriest flag
84   INTEGER, PUBLIC, PARAMETER ::   jp_pisces     = 24      !: number of PISCES passive tracers
85   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_2d  = 13      !: additional 2d output
86   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_3d  = 11      !: additional 3d output
87   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_trd =  1      !: number of sms trends for PISCES
88
89   ! assign an index in trc arrays for each LOBSTER prognostic variables
90   !    WARNING: be carefull about the order when reading the restart
91        !   !!gm  this warning should be obsolet with IOM
92   INTEGER, PUBLIC, PARAMETER ::   jpdic =  1    !: dissolved inoganic carbon concentration
93   INTEGER, PUBLIC, PARAMETER ::   jptal =  2    !: total alkalinity
94   INTEGER, PUBLIC, PARAMETER ::   jpoxy =  3    !: oxygen carbon concentration
95   INTEGER, PUBLIC, PARAMETER ::   jpcal =  4    !: calcite  concentration
96   INTEGER, PUBLIC, PARAMETER ::   jppo4 =  5    !: phosphate concentration
97   INTEGER, PUBLIC, PARAMETER ::   jppoc =  6    !: small particulate organic phosphate concentration
98   INTEGER, PUBLIC, PARAMETER ::   jpsil =  7    !: silicate concentration
99   INTEGER, PUBLIC, PARAMETER ::   jpphy =  8    !: phytoplancton concentration
100   INTEGER, PUBLIC, PARAMETER ::   jpzoo =  9    !: zooplancton concentration
101   INTEGER, PUBLIC, PARAMETER ::   jpdoc = 10    !: dissolved organic carbon concentration
102   INTEGER, PUBLIC, PARAMETER ::   jpdia = 11    !: Diatoms Concentration
103   INTEGER, PUBLIC, PARAMETER ::   jpmes = 12    !: Mesozooplankton Concentration
104   INTEGER, PUBLIC, PARAMETER ::   jpdsi = 13    !: (big) Silicate Concentration
105   INTEGER, PUBLIC, PARAMETER ::   jpfer = 14    !: Iron Concentration
106   INTEGER, PUBLIC, PARAMETER ::   jpbfe = 15    !: Big iron particles Concentration
107   INTEGER, PUBLIC, PARAMETER ::   jpgoc = 16    !: big particulate organic phosphate concentration
108   INTEGER, PUBLIC, PARAMETER ::   jpsfe = 17    !: Small iron particles Concentration
109   INTEGER, PUBLIC, PARAMETER ::   jpdfe = 18    !: Diatoms iron Concentration
110   INTEGER, PUBLIC, PARAMETER ::   jpgsi = 19    !: Diatoms Silicate Concentration
111   INTEGER, PUBLIC, PARAMETER ::   jpnfe = 20    !: Nano iron Concentration
112   INTEGER, PUBLIC, PARAMETER ::   jpnch = 21    !: Nano Chlorophyll Concentration
113   INTEGER, PUBLIC, PARAMETER ::   jpdch = 22    !: Diatoms Chlorophyll Concentration
114   INTEGER, PUBLIC, PARAMETER ::   jpno3 = 23    !: Nitrates Concentration
115   INTEGER, PUBLIC, PARAMETER ::   jpnh4 = 24    !: Ammonium Concentration
116
117#elif defined key_pisces_quota  &&  defined key_kriest
118   !!---------------------------------------------------------------------
119   !!   'key_pisces' & 'key_kriest'                 PISCES bio-model + ???
120   !!---------------------------------------------------------------------
121   LOGICAL, PUBLIC, PARAMETER ::   lk_pisces     = .TRUE.  !: PISCES flag
122   INTEGER, PUBLIC, PARAMETER ::   nn_p4z        =  3 !: p4z flag
123   LOGICAL, PUBLIC, PARAMETER ::   lk_kriest     = .TRUE.  !: Kriest flag
124   INTEGER, PUBLIC, PARAMETER ::   jp_pisces     =  36     !: number of passive tracers
125   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_2d  =  13     !: additional 2d output
126   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_3d  =  18     !: additional 3d output
127   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_trd =   1     !: number of sms trends for PISCES
128
129   ! assign an index in trc arrays for each LOBSTER prognostic variables
130   !    WARNING: be carefull about the order when reading the restart
131        !   !!gm  this warning should be obsolet with IOM
132   INTEGER, PUBLIC, PARAMETER ::   jpdic =  1    !: dissolved inoganic carbon concentration
133   INTEGER, PUBLIC, PARAMETER ::   jptal =  2    !: total alkalinity
134   INTEGER, PUBLIC, PARAMETER ::   jpoxy =  3    !: oxygen carbon concentration
135   INTEGER, PUBLIC, PARAMETER ::   jpcal =  4    !: calcite  concentration
136   INTEGER, PUBLIC, PARAMETER ::   jppo4 =  5    !: phosphate concentration
137   INTEGER, PUBLIC, PARAMETER ::   jppoc =  6    !: small particulate organic phosphate concentration
138   INTEGER, PUBLIC, PARAMETER ::   jpsil =  7    !: silicate concentration
139   INTEGER, PUBLIC, PARAMETER ::   jpphy =  8    !: phytoplancton concentration
140   INTEGER, PUBLIC, PARAMETER ::   jpzoo =  9    !: zooplancton concentration
141   INTEGER, PUBLIC, PARAMETER ::   jpdoc = 10    !: dissolved organic carbon concentration
142   INTEGER, PUBLIC, PARAMETER ::   jpdia = 11    !: Diatoms Concentration
143   INTEGER, PUBLIC, PARAMETER ::   jpmes = 12    !: Mesozooplankton Concentration
144   INTEGER, PUBLIC, PARAMETER ::   jpdsi = 13    !: (big) Silicate Concentration
145   INTEGER, PUBLIC, PARAMETER ::   jpfer = 14    !: Iron Concentration
146   INTEGER, PUBLIC, PARAMETER ::   jpnum = 15    !: Big iron particles Concentration
147   INTEGER, PUBLIC, PARAMETER ::   jpsfe = 16    !: number of particulate organic phosphate concentration
148   INTEGER, PUBLIC, PARAMETER ::   jpdfe = 17    !: Diatoms iron Concentration
149   INTEGER, PUBLIC, PARAMETER ::   jpgsi = 18    !: Diatoms Silicate Concentration
150   INTEGER, PUBLIC, PARAMETER ::   jpnfe = 19    !: Nano iron Concentration
151   INTEGER, PUBLIC, PARAMETER ::   jpnch = 20    !: Nano Chlorophyll Concentration
152   INTEGER, PUBLIC, PARAMETER ::   jpdch = 21    !: Diatoms Chlorophyll Concentration
153   INTEGER, PUBLIC, PARAMETER ::   jpno3 = 22    !: Nitrates Concentration
154   INTEGER, PUBLIC, PARAMETER ::   jpnh4 = 23    !: Ammonium Concentration
155   INTEGER, PUBLIC, PARAMETER ::   jpdon = 24    !: dissolved organic nitrogen concentration
156   INTEGER, PUBLIC, PARAMETER ::   jpdop = 25    !: dissolved organic phosphorus concentration
157   INTEGER, PUBLIC, PARAMETER ::   jppon = 26    !: small particulate organic nitrogen concentration
158   INTEGER, PUBLIC, PARAMETER ::   jppop = 27    !: small particulate organic phosphorus concentration
159   INTEGER, PUBLIC, PARAMETER ::   jpnph = 28    !: small particulate organic phosphorus concentration
160   INTEGER, PUBLIC, PARAMETER ::   jppph = 29    !: small particulate organic phosphorus concentration
161   INTEGER, PUBLIC, PARAMETER ::   jpndi = 30    !: small particulate organic phosphorus concentration
162   INTEGER, PUBLIC, PARAMETER ::   jppdi = 31    !: small particulate organic phosphorus concentration
163   INTEGER, PUBLIC, PARAMETER ::   jppic = 32    !: small particulate organic phosphorus concentration
164   INTEGER, PUBLIC, PARAMETER ::   jpnpi = 33    !: small particulate organic phosphorus concentration
165   INTEGER, PUBLIC, PARAMETER ::   jpppi = 34    !: small particulate organic phosphorus concentration
166   INTEGER, PUBLIC, PARAMETER ::   jppfe = 35    !: small particulate organic phosphorus concentration
167   INTEGER, PUBLIC, PARAMETER ::   jppch = 36    !: small particulate organic phosphorus concentration
168
169#elif defined key_pisces_quota
170   !!---------------------------------------------------------------------
171   !!   'key_pisces'   :                         standard PISCES bio-model
172   !!---------------------------------------------------------------------
173   LOGICAL, PUBLIC, PARAMETER ::   lk_pisces     = .TRUE.  !: PISCES flag
174   INTEGER, PUBLIC, PARAMETER ::   nn_p4z        =  3  !: p4z flag
175   LOGICAL, PUBLIC, PARAMETER ::   lk_kriest     = .FALSE. !: Kriest flag
176   INTEGER, PUBLIC, PARAMETER ::   jp_pisces     = 39      !: number of PISCES passive tracers
177   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_2d  = 13      !: additional 2d output
178   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_3d  = 11      !: additional 3d output
179   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_trd =  1      !: number of sms trends for PISCES
180
181   ! assign an index in trc arrays for each LOBSTER prognostic variables
182   !    WARNING: be carefull about the order when reading the restart
183        !   !!gm  this warning should be obsolet with IOM
184   INTEGER, PUBLIC, PARAMETER ::   jpdic =  1    !: dissolved inoganic carbon concentration
185   INTEGER, PUBLIC, PARAMETER ::   jptal =  2    !: total alkalinity
186   INTEGER, PUBLIC, PARAMETER ::   jpoxy =  3    !: oxygen carbon concentration
187   INTEGER, PUBLIC, PARAMETER ::   jpcal =  4    !: calcite  concentration
188   INTEGER, PUBLIC, PARAMETER ::   jppo4 =  5    !: phosphate concentration
189   INTEGER, PUBLIC, PARAMETER ::   jppoc =  6    !: small particulate organic phosphate concentration
190   INTEGER, PUBLIC, PARAMETER ::   jpsil =  7    !: silicate concentration
191   INTEGER, PUBLIC, PARAMETER ::   jpphy =  8    !: phytoplancton concentration
192   INTEGER, PUBLIC, PARAMETER ::   jpzoo =  9    !: zooplancton concentration
193   INTEGER, PUBLIC, PARAMETER ::   jpdoc = 10    !: dissolved organic carbon concentration
194   INTEGER, PUBLIC, PARAMETER ::   jpdia = 11    !: Diatoms Concentration
195   INTEGER, PUBLIC, PARAMETER ::   jpmes = 12    !: Mesozooplankton Concentration
196   INTEGER, PUBLIC, PARAMETER ::   jpdsi = 13    !: (big) Silicate Concentration
197   INTEGER, PUBLIC, PARAMETER ::   jpfer = 14    !: Iron Concentration
198   INTEGER, PUBLIC, PARAMETER ::   jpbfe = 15    !: Big iron particles Concentration
199   INTEGER, PUBLIC, PARAMETER ::   jpgoc = 16    !: big particulate organic phosphate concentration
200   INTEGER, PUBLIC, PARAMETER ::   jpsfe = 17    !: Small iron particles Concentration
201   INTEGER, PUBLIC, PARAMETER ::   jpdfe = 18    !: Diatoms iron Concentration
202   INTEGER, PUBLIC, PARAMETER ::   jpgsi = 19    !: Diatoms Silicate Concentration
203   INTEGER, PUBLIC, PARAMETER ::   jpnfe = 20    !: Nano iron Concentration
204   INTEGER, PUBLIC, PARAMETER ::   jpnch = 21    !: Nano Chlorophyll Concentration
205   INTEGER, PUBLIC, PARAMETER ::   jpdch = 22    !: Diatoms Chlorophyll Concentration
206   INTEGER, PUBLIC, PARAMETER ::   jpno3 = 23    !: Nitrates Concentration
207   INTEGER, PUBLIC, PARAMETER ::   jpnh4 = 24    !: Ammonium Concentration
208   INTEGER, PUBLIC, PARAMETER ::   jpdon = 25    !: dissolved organic nitrogen concentration
209   INTEGER, PUBLIC, PARAMETER ::   jpdop = 26    !: dissolved organic phosphorus concentration
210   INTEGER, PUBLIC, PARAMETER ::   jppon = 27    !: small particulate organic nitrogen concentration
211   INTEGER, PUBLIC, PARAMETER ::   jppop = 28    !: small particulate organic phosphorus concentration
212   INTEGER, PUBLIC, PARAMETER ::   jpgon = 29    !: big particulate organic nitrogen concentration
213   INTEGER, PUBLIC, PARAMETER ::   jpgop = 30    !: big particulate organic phosphate concentration
214   INTEGER, PUBLIC, PARAMETER ::   jpnph = 31    !: big particulate organic phosphate concentration
215   INTEGER, PUBLIC, PARAMETER ::   jppph = 32    !: big particulate organic phosphate concentration
216   INTEGER, PUBLIC, PARAMETER ::   jpndi = 33    !: big particulate organic phosphate concentration
217   INTEGER, PUBLIC, PARAMETER ::   jppdi = 34    !: big particulate organic phosphate concentration
218   INTEGER, PUBLIC, PARAMETER ::   jppic = 35    !: big particulate organic phosphate concentration
219   INTEGER, PUBLIC, PARAMETER ::   jpnpi = 36    !: big particulate organic phosphate concentration
220   INTEGER, PUBLIC, PARAMETER ::   jpppi = 37    !: big particulate organic phosphate concentration
221   INTEGER, PUBLIC, PARAMETER ::   jppfe = 38    !: big particulate organic phosphate concentration
222   INTEGER, PUBLIC, PARAMETER ::   jppch = 39    !: big particulate organic phosphate concentration
223
224
225#else
226   !!---------------------------------------------------------------------
227   !!   Default                                   No CFC geochemical model
228   !!---------------------------------------------------------------------
229   LOGICAL, PUBLIC, PARAMETER ::   lk_pisces     = .FALSE.  !: PISCES flag
230   LOGICAL, PUBLIC, PARAMETER ::   nn_p4z        =  0  !: p4z flag
231   INTEGER, PUBLIC, PARAMETER ::   jp_pisces     =  0       !: No CFC tracers
232   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_2d  =  0       !: No CFC additional 2d output arrays
233   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_3d  =  0       !: No CFC additional 3d output arrays
234   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_trd =  0       !: number of sms trends for PISCES
235#endif
236
237   ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done)
238   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0     = 1                  !: First index of PISCES tracers
239   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1     = jp_pisces          !: Last  index of PISCES tracers
240   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_2d  = 1               !: First index of 2D diag
241   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_2d  = jp_pisces_2d    !: Last  index of 2D diag
242   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_3d  = 1               !: First index of 3D diag
243   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_3d  = jp_pisces_3d    !: Last  index of 3d diag
244   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_trd = 1              !: First index of bio diag
245   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_trd = jp_pisces_trd  !: Last  index of bio diag
246
247
248   !!======================================================================
249END MODULE par_pisces
Note: See TracBrowser for help on using the repository browser.