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 @ 274

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

nemo_v1_update_005:RB: update headers for the TOP component.

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