New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
par_pisces.F90 in branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES – NEMO

source: branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/par_pisces.F90 @ 6453

Last change on this file since 6453 was 6453, checked in by aumont, 8 years ago

New developments of PISCES (QUOTA, ligands, lability, ...)

  • Property svn:keywords set to Id
File size: 13.6 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   LOGICAL, 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
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#  if defined key_kriest
45   LOGICAL, PUBLIC, PARAMETER ::   lk_kriest      = .TRUE.  !: Kriest flag
46   INTEGER, PUBLIC, PARAMETER ::   jp_kriest      =  1 
47   INTEGER, PUBLIC, PARAMETER ::   jp_kriest_diag =  7
48#  else
49   LOGICAL, PUBLIC, PARAMETER ::   lk_kriest      = .FALSE.  !: Kriest flag
50   INTEGER, PUBLIC, PARAMETER ::   jp_kriest      =  2 
51   INTEGER, PUBLIC, PARAMETER ::   jp_kriest_diag =  0
52#  endif
53#  if defined key_ligand
54   LOGICAL, PUBLIC, PARAMETER ::   lk_ligand      = .TRUE.  !: Kriest flag
55   INTEGER, PUBLIC, PARAMETER ::   jp_ligand      =  2 
56   INTEGER, PUBLIC, PARAMETER ::   jp_ligand_diag =  0
57#  else
58   LOGICAL, PUBLIC, PARAMETER ::   lk_ligand      = .FALSE.  !: Kriest flag
59   INTEGER, PUBLIC, PARAMETER ::   jp_ligand      =  0     
60   INTEGER, PUBLIC, PARAMETER ::   jp_ligand_diag =  0
61#  endif
62   INTEGER, PUBLIC, PARAMETER ::   jp_pisces      =  22 + jp_kriest + jp_ligand            !: number of passive tracers
63   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_2d   =  13                                    !: additional 2d output
64   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_3d   =  13 + jp_kriest_diag + jp_ligand_diag  !: additional 3d output
65   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_trd  =   1                                    !: number of sms trends for PISCES
66
67   ! assign an index in trc arrays for each LOBSTER prognostic variables
68   !    WARNING: be carefull about the order when reading the restart
69        !   !!gm  this warning should be obsolet with IOM
70   INTEGER, PUBLIC, PARAMETER ::   jpdic =  1    !: dissolved inoganic carbon concentration
71   INTEGER, PUBLIC, PARAMETER ::   jptal =  2    !: total alkalinity
72   INTEGER, PUBLIC, PARAMETER ::   jpoxy =  3    !: oxygen carbon concentration
73   INTEGER, PUBLIC, PARAMETER ::   jpcal =  4    !: calcite  concentration
74   INTEGER, PUBLIC, PARAMETER ::   jppo4 =  5    !: phosphate concentration
75   INTEGER, PUBLIC, PARAMETER ::   jppoc =  6    !: small particulate organic phosphate concentration
76   INTEGER, PUBLIC, PARAMETER ::   jpsil =  7    !: silicate concentration
77   INTEGER, PUBLIC, PARAMETER ::   jpphy =  8    !: phytoplancton concentration
78   INTEGER, PUBLIC, PARAMETER ::   jpzoo =  9    !: zooplancton concentration
79   INTEGER, PUBLIC, PARAMETER ::   jpdoc = 10    !: dissolved organic carbon concentration
80   INTEGER, PUBLIC, PARAMETER ::   jpdia = 11    !: Diatoms Concentration
81   INTEGER, PUBLIC, PARAMETER ::   jpmes = 12    !: Mesozooplankton Concentration
82   INTEGER, PUBLIC, PARAMETER ::   jpdsi = 13    !: (big) Silicate Concentration
83   INTEGER, PUBLIC, PARAMETER ::   jpfer = 14    !: Iron Concentration
84   INTEGER, PUBLIC, PARAMETER ::   jpsfe = 15    !: number of particulate organic phosphate concentration
85   INTEGER, PUBLIC, PARAMETER ::   jpdfe = 16    !: Diatoms iron Concentration
86   INTEGER, PUBLIC, PARAMETER ::   jpgsi = 17    !: Diatoms Silicate Concentration
87   INTEGER, PUBLIC, PARAMETER ::   jpnfe = 18    !: Nano iron Concentration
88   INTEGER, PUBLIC, PARAMETER ::   jpnch = 19    !: Nano Chlorophyll Concentration
89   INTEGER, PUBLIC, PARAMETER ::   jpdch = 20    !: Diatoms Chlorophyll Concentration
90   INTEGER, PUBLIC, PARAMETER ::   jpno3 = 21    !: Nitrates Concentration
91   INTEGER, PUBLIC, PARAMETER ::   jpnh4 = 22    !: Ammonium Concentration
92#  if defined key_kriest
93   INTEGER, PUBLIC, PARAMETER ::   jpnum = 23    !: Number of particles in the aggregates
94#  else
95   INTEGER, PUBLIC, PARAMETER ::   jpgoc = 23    !: Big OM particles Concentration
96   INTEGER, PUBLIC, PARAMETER ::   jpbfe = 24    !: Big iron particles Concentration
97#  endif
98#  if defined key_ligand
99   INTEGER, PUBLIC, PARAMETER ::   jplgw = 22 + jp_kriest + 1    !: Weak Ligands
100   INTEGER, PUBLIC, PARAMETER ::   jpfep = 22 + jp_kriest + 2    !: Fe nanoparticle
101#  endif
102
103#elif defined key_pisces_quota 
104   !!---------------------------------------------------------------------
105   !!   'key_pisces' & 'key_kriest'                 PISCES bio-model + ???
106   !!---------------------------------------------------------------------
107   LOGICAL, PUBLIC, PARAMETER ::   lk_pisces     = .TRUE.  !: PISCES flag
108   INTEGER, PUBLIC, PARAMETER ::   nn_p4z        =  3  !: p4z flag
109#  if defined key_kriest
110   LOGICAL, PUBLIC, PARAMETER ::   lk_kriest     = .TRUE. !: Kriest flag
111   INTEGER, PUBLIC, PARAMETER ::   jp_kriest      =  1
112   INTEGER, PUBLIC, PARAMETER ::   jp_kriest_diag =  7
113#  else
114   LOGICAL, PUBLIC, PARAMETER ::   lk_kriest     = .FALSE. !: Kriest flag
115   INTEGER, PUBLIC, PARAMETER ::   jp_kriest      =  4
116   INTEGER, PUBLIC, PARAMETER ::   jp_kriest_diag =  7
117#  endif
118#  if defined key_ligand
119   LOGICAL, PUBLIC, PARAMETER ::   lk_ligand      = .TRUE.  !: Kriest flag
120   INTEGER, PUBLIC, PARAMETER ::   jp_ligand      =  2
121   INTEGER, PUBLIC, PARAMETER ::   jp_ligand_diag =  0
122#  else
123   LOGICAL, PUBLIC, PARAMETER ::   lk_ligand      = .FALSE.  !: Kriest flag
124   INTEGER, PUBLIC, PARAMETER ::   jp_ligand      =  0
125   INTEGER, PUBLIC, PARAMETER ::   jp_ligand_diag =  0
126#  endif
127   INTEGER, PUBLIC, PARAMETER ::   jp_pisces      =  35 + jp_kriest + jp_ligand            !: number of passive tracers
128   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_2d   =  13     !: additional 2d output
129   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_3d   =  13 + jp_kriest_diag + jp_ligand_diag  !: additional 3d output
130   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_trd  =   1     !: number of sms trends for PISCES
131
132   ! assign an index in trc arrays for each LOBSTER prognostic variables
133   !    WARNING: be carefull about the order when reading the restart
134        !   !!gm  this warning should be obsolet with IOM
135   INTEGER, PUBLIC, PARAMETER ::   jpdic =  1    !: dissolved inoganic carbon concentration
136   INTEGER, PUBLIC, PARAMETER ::   jptal =  2    !: total alkalinity
137   INTEGER, PUBLIC, PARAMETER ::   jpoxy =  3    !: oxygen carbon concentration
138   INTEGER, PUBLIC, PARAMETER ::   jpcal =  4    !: calcite  concentration
139   INTEGER, PUBLIC, PARAMETER ::   jppo4 =  5    !: phosphate concentration
140   INTEGER, PUBLIC, PARAMETER ::   jppoc =  6    !: small particulate organic phosphate concentration
141   INTEGER, PUBLIC, PARAMETER ::   jpsil =  7    !: silicate concentration
142   INTEGER, PUBLIC, PARAMETER ::   jpphy =  8    !: phytoplancton concentration
143   INTEGER, PUBLIC, PARAMETER ::   jpzoo =  9    !: zooplancton concentration
144   INTEGER, PUBLIC, PARAMETER ::   jpdoc = 10    !: dissolved organic carbon concentration
145   INTEGER, PUBLIC, PARAMETER ::   jpdia = 11    !: Diatoms Concentration
146   INTEGER, PUBLIC, PARAMETER ::   jpmes = 12    !: Mesozooplankton Concentration
147   INTEGER, PUBLIC, PARAMETER ::   jpdsi = 13    !: (big) Silicate Concentration
148   INTEGER, PUBLIC, PARAMETER ::   jpfer = 14    !: Iron Concentration
149   INTEGER, PUBLIC, PARAMETER ::   jpsfe = 15    !: number of particulate organic phosphate concentration
150   INTEGER, PUBLIC, PARAMETER ::   jpdfe = 16    !: Diatoms iron Concentration
151   INTEGER, PUBLIC, PARAMETER ::   jpgsi = 17    !: Diatoms Silicate Concentration
152   INTEGER, PUBLIC, PARAMETER ::   jpnfe = 18    !: Nano iron Concentration
153   INTEGER, PUBLIC, PARAMETER ::   jpnch = 19    !: Nano Chlorophyll Concentration
154   INTEGER, PUBLIC, PARAMETER ::   jpdch = 20    !: Diatoms Chlorophyll Concentration
155   INTEGER, PUBLIC, PARAMETER ::   jpno3 = 21    !: Nitrates Concentration
156   INTEGER, PUBLIC, PARAMETER ::   jpnh4 = 22    !: Ammonium Concentration
157   INTEGER, PUBLIC, PARAMETER ::   jpdon = 23    !: dissolved organic nitrogen concentration
158   INTEGER, PUBLIC, PARAMETER ::   jpdop = 24    !: dissolved organic phosphorus concentration
159   INTEGER, PUBLIC, PARAMETER ::   jppon = 25    !: small particulate organic nitrogen concentration
160   INTEGER, PUBLIC, PARAMETER ::   jppop = 26    !: small particulate organic phosphorus concentration
161   INTEGER, PUBLIC, PARAMETER ::   jpnph = 27    !: small particulate organic phosphorus concentration
162   INTEGER, PUBLIC, PARAMETER ::   jppph = 28    !: small particulate organic phosphorus concentration
163   INTEGER, PUBLIC, PARAMETER ::   jpndi = 29    !: small particulate organic phosphorus concentration
164   INTEGER, PUBLIC, PARAMETER ::   jppdi = 30    !: small particulate organic phosphorus concentration
165   INTEGER, PUBLIC, PARAMETER ::   jppic = 31    !: small particulate organic phosphorus concentration
166   INTEGER, PUBLIC, PARAMETER ::   jpnpi = 32    !: small particulate organic phosphorus concentration
167   INTEGER, PUBLIC, PARAMETER ::   jpppi = 33    !: small particulate organic phosphorus concentration
168   INTEGER, PUBLIC, PARAMETER ::   jppfe = 34    !: small particulate organic phosphorus concentration
169   INTEGER, PUBLIC, PARAMETER ::   jppch = 35    !: small particulate organic phosphorus concentration
170#  if defined key_kriest
171   INTEGER, PUBLIC, PARAMETER ::   jpnum = 36    !: Number of particles in the aggregates
172#  else
173   INTEGER, PUBLIC, PARAMETER ::   jpgoc = 36    !: Big carbon particles Concentration
174   INTEGER, PUBLIC, PARAMETER ::   jpgon = 37    !: Big nitrogen particles Concentration
175   INTEGER, PUBLIC, PARAMETER ::   jpgop = 38    !: Big phosphorus particles Concentration
176   INTEGER, PUBLIC, PARAMETER ::   jpbfe = 39    !: Big iron particles Concentration
177#  endif
178#  if defined key_ligand
179   INTEGER, PUBLIC, PARAMETER ::   jplgw = 35 + jp_kriest + 1    !: Weak Ligands
180   INTEGER, PUBLIC, PARAMETER ::   jpfep = 35 + jp_kriest + 2    !: Fe nanoparticle
181#  endif
182
183#else
184   !!---------------------------------------------------------------------
185   !!   Default                                   No CFC geochemical model
186   !!---------------------------------------------------------------------
187   LOGICAL, PUBLIC, PARAMETER ::   lk_pisces     = .FALSE.  !: PISCES flag
188   INTEGER, PUBLIC, PARAMETER ::   nn_p4z        =  0  !: p4z flag
189   INTEGER, PUBLIC, PARAMETER ::   jp_pisces     =  0       !: No CFC tracers
190   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_2d  =  0       !: No CFC additional 2d output arrays
191   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_3d  =  0       !: No CFC additional 3d output arrays
192   INTEGER, PUBLIC, PARAMETER ::   jp_pisces_trd =  0       !: number of sms trends for PISCES
193#endif
194
195   ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done)
196   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0     = 1                  !: First index of PISCES tracers
197   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1     = jp_pisces          !: Last  index of PISCES tracers
198   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_2d  = 1               !: First index of 2D diag
199   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_2d  = jp_pisces_2d    !: Last  index of 2D diag
200   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_3d  = 1               !: First index of 3D diag
201   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_3d  = jp_pisces_3d    !: Last  index of 3d diag
202   INTEGER, PUBLIC, PARAMETER ::   jp_pcs0_trd = 1              !: First index of bio diag
203   INTEGER, PUBLIC, PARAMETER ::   jp_pcs1_trd = jp_pisces_trd  !: Last  index of bio diag
204
205
206   !!======================================================================
207END MODULE par_pisces
Note: See TracBrowser for help on using the repository browser.