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.
trcbio.npzd.h in trunk/NEMO/TOP_SRC/SMS – NEMO

source: trunk/NEMO/TOP_SRC/SMS/trcbio.npzd.h @ 247

Last change on this file since 247 was 247, checked in by opalod, 19 years ago

CL : Add CVS Header and CeCILL licence information

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 7.2 KB
Line 
1
2CCC $Header$ 
3CCC  TOP 1.0 , LOCEAN-IPSL (2005) 
4C This software is governed by CeCILL licence see modipsl/doc/NEMO_CeCILL.txt
5C ---------------------------------------------------------------------------
6C $Id$
7CCC
8CCC      trcbio.npzd.h
9CCC      *****************
10CCC
11CC   defined key : key_trc_npzd
12CC   ===========
13CC
14CC
15CC   INPUT :
16CC   -----
17CC      argument
18CC              ktask           : task identificator
19CC              kt              : time step
20CC      COMMON
21CC            /comcoo/          : orthogonal curvilinear coordinates
22CC                                and scale factors
23CC                                depths
24CC            /cottrp/          : present and next fields for passive
25CC                              : tracers
26CC            /comtsk/          : multitasking
27CC            /cotbio/          : biological parameters
28CC
29CC   OUTPUT :
30CC   ------
31CC      COMMON
32CC            /cottrp/ tra      : general tracer trend increased by the
33CC                                now horizontal tracer advection trend
34CC            /cottbd/ trbio    : now horizontal tracer advection trend
35CC                                (IF 'key_trc_diabio' is activated)
36CC
37CC   WORKSPACE :
38CC   ---------
39CC      local
40CC               zdet,zzoo,zphy,znut              : now concentrations
41CC               zlt,zlnut,zlpe                   : limitation terms for phyto
42CC                                                 
43CC               zflxnp,zflxpn,zflxpz,zflxdz      : fluxes between bio
44CC                                                  boxes
45CC               zflxpd,zflxzd,zflxdn
46CC               zphya,zzooa,znuta,zdeta          : after bio trends
47CC               zphimp, zmp, zphimz, zmz         : mortality terms
48CC               zppz, zpdz, zpppz, zppdz, zfood  : preferences terms
49CC               zfilpz, zfilpd                   : filtration terms
50CC
51CC   EXTERNAL :                   no
52CC   --------
53CC
54CC   REFERENCES :                 no
55CC   ----------
56CC
57CC   MODIFICATIONS:
58CC   --------------
59CC       original : 95-02 (M. Levy)
60CC                  99-07 (M. Levy) version .h
61CC                  99-09 (M. Levy) version with no deep mixing limitation
62CC       adaptations : 00-12 (E. Kestenare) 
63CC                     assign a parameter to name individual tracers
64CC                     01-02 (E. Kestenare)
65CC                     introduce jpno3 instead of jpnut
66CC                     01-02 (E. Kestenare) add sediments
67      USE oce_trc
68      USE_trp_trc
69      USE sms
70      IMPLICIT NONE
71CC local declarations
72CC ==================
73      INTEGER kt
74
75      INTEGER ji,jj,jk,jn
76      REAL ztot(jpi)
77      REAL zdet,zzoo,zphy,znut,zflxnp,zflxpn,zppz,zpdz,zpppz,
78     $    zppdz,zfood,zfilpz,zfildz,zflxpz,zflxdz,zflxzl,zflxzn,zflxpd,
79     $    zflxzd,zflxdn,zphya,zzooa,znuta,zdeta,ztra
80      REAL zle,zlt,zlnut
81
82CCC---------------------------------------------------------------------
83CCC  OPA8, LODYC (15/11/96)
84CCC---------------------------------------------------------------------
85C   | --------------|
86C   | NPZD MODEL| 
87C   | --------------|
88
89C
90C vertical slab
91C =============
92C
93      DO 1000 jj = 2,jpjm1
94C
95C 1. biological level
96C ===================
97C
98C       set fbod to 0 for sediments
99        DO ji = 2,jpim1
100          fbod(ji,jj)=0.
101        END DO
102 
103        DO jk=1,jpkbm1
104          DO ji = 2,jpim1
105C
106C
107C 1.1 trophic variables( det, zoo, phy, nut)
108C ------------------------------------------
109C
110C negative trophic variables DO not contribute to the fluxes
111C
112            zdet = max(0.,trn(ji,jj,jk,jpdet))
113            zzoo = max(0.,trn(ji,jj,jk,jpzoo))
114            zphy = max(0.,trn(ji,jj,jk,jpphy))
115            znut = max(0.,trn(ji,jj,jk,jpno3))
116C
117C
118C 1.2 Limitations
119C -----------------------
120C
121            zlt = 1.
122            zle = 1. - exp( -xpar(ji,jj,jk)/aki/zlt) 
123            zlnut = znut / ( znut + aknut )
124C
125C
126C 1.3 sinks and sources
127C ---------------------
128C
129C
130C 4.1 phytoplankton production and exsudation
131C
132            zflxnp = tmumax * zle * zlt * zlnut  * zphy
133            zflxpn = rgamma * zflxnp
134C
135C 4.2 zoolplankton production
136C
137C preferences
138C
139            zppz = rppz
140            zpdz = 1. - rppz
141            zpppz = ( zppz * zphy ) /
142     $          ( ( zppz * zphy + zpdz * zdet ) + 1.e-13 )
143            zppdz = ( zpdz * zdet ) /
144     $          ( ( zppz * zphy + zpdz * zdet ) + 1.e-13 )
145            zfood = zpppz * zphy + zppdz * zdet
146C
147C filtration
148C
149            zfilpz = taus * zpppz / (aks + zfood)
150            zfildz = taus * zppdz / (aks + zfood)
151C
152C grazing
153C
154
155            zflxpz = zfilpz * zphy * zzoo
156            zflxdz = zfildz * zdet * zzoo
157C
158C 3. fecal pellets production
159C
160            zflxzl = rpnaz * zflxpz + rdnaz * zflxdz
161C
162C 4. zooplankton liquide excretion IF zzoo greater THEN eggzoo
163C
164            zflxzn = tauzn * zzoo * (1. + sign(1., zzoo - eggzoo))/2.
165C
166C 5. mortality
167C
168C phytoplankton mortality
169C
170            zflxpd = tmminp * zphy
171C
172C
173C zooplankton mortality if zzoo greater then eggzoo
174C
175C
176            zflxzd = tmminz * zzoo * (1. + sign(1., zzoo - eggzoo))/2.
177C
178C
179C 6. detritus breakdomn
180C
181            zflxdn = taudn * zdet
182C
183C
184C 1.4 determination of trends
185C ---------------------------
186C
187C total trend for each biological tracer
188C
189            zphya = zflxnp - zflxpn - zflxpz - zflxpd
190            zzooa = zflxpz + zflxdz - zflxzd - zflxzl - zflxzn
191            znuta = zflxpn + zflxzn + zflxdn - zflxnp
192            zdeta = zflxpd + zflxzd + zflxzl - zflxdn - zflxdz
193C
194#if defined key_trc_diabio
195            trbio(ji,jj,jk,1) = zflxnp
196            trbio(ji,jj,jk,2) = zflxpz
197            trbio(ji,jj,jk,3) = zflxpd
198            trbio(ji,jj,jk,4) = zflxdz
199            trbio(ji,jj,jk,5) = zflxzd + zflxzl
200            trbio(ji,jj,jk,6) = zflxzn
201            trbio(ji,jj,jk,7) = zflxdn
202            trbio(ji,jj,jk,9) = zflxpn + zflxzn + zflxdn
203#endif
204C
205C tracer flux at totox-point added to the general trend
206C
207            tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) + zdeta
208            tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) + zzooa
209            tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) + zphya
210            tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + znuta
211C
212          END DO
213        END DO
214
215C
216C 2. under biological level
217C =========================
218C
219        DO jk=jpkb,jpk
220C
221C 2.1 compute the remineralisation of all quantities towards nutrients
222C --------------------------------------------------------------------
223C
224          DO ji=2,jpim1
225            ztot(ji) = 0.
226          END DO
227          DO jn=1,jptra
228            IF (ctrcnm(jn).NE.'NO3') THEN
229                DO ji=2,jpim1
230                  ztra = remdmp(jk,jn) * trn(ji,jj,jk,jn) 
231                  tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) - ztra
232                  ztot(ji) = ztot(ji) + ztra
233                END DO
234            ENDIF
235          END DO
236          DO jn=1,jptra
237            IF (ctrcnm(jn).EQ.'NUT') THEN
238                DO ji=2,jpim1
239                  tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztot(ji)
240                END DO
241#if defined key_trc_diabio
242                trbio(ji,jj,jk,1)=ztot(ji)
243#endif
244            ENDIF
245          END DO
246        END DO
247C
248#if defined key_trc_diabio
249        DO jk=jpkb,jpkm1
250          DO ji=2,jpim1
251            trbio(ji,jj,jk,9)=tra(ji,jj,jk,jptra)
252          END DO
253        END DO
254#endif
255C
256C
257C END of slab
258C ===========
259C
260 1000 CONTINUE
Note: See TracBrowser for help on using the repository browser.