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

source: trunk/NEMO/TOP_SRC/SMS/trcbio.lobster1.h @ 336

Last change on this file since 336 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: 10.5 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.lobster1.h
7CCC      *****************
8CCC
9CC   defined key : key_trc_lobster1
10CC   ===========
11CC
12CC   INPUT :
13CC   -----
14CC      argument
15CC              ktask           : task identificator
16CC              kt              : time step
17CC      COMMON
18CC            /comcoo/          : orthogonal curvilinear coordinates
19CC                                and scale factors
20CC                                depths
21CC            /cottrp/          : present and next fields for passive
22CC                              : tracers
23CC            /comtsk/          : multitasking
24CC            /comtke/          : emin, en()
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,znh4,zno3,zdom    : now concentrations
39CC               zlt,zlno3,zlnh4,zle              : limitation terms for phyto
40CC               zfno3phy and so on..             : fluxes between bio boxes
41CC               zphya,zzooa,zdeta, ...           : after bio trends
42CC               zppz, zpdz, zpppz, zppdz, zfood  : preferences terms
43CC               zfilpz, zfilpd                   : filtration terms
44CC      COMMON
45CC
46CC   EXTERNAL :                   no
47CC   --------
48CC
49CC   REFERENCES :                 no
50CC   ----------
51CC
52CC   MODIFICATIONS:
53CC   --------------
54CC       original : 99-07 (M. Levy)
55CC                  00-12 (E. Kestenare): assign a parameter
56CC                                        to name individual tracers
57CC                  01-03 (M. Levy) LNO3 + dia2d
58CC----------------------------------------------------------------------
59CC----------------------------------------------------------------------
60      USE oce_trc
61      USE trp_trc
62      USE sms
63      USE lbclnk
64      IMPLICIT NONE
65CC local declarations
66CC ==================
67      INTEGER kt
68      INTEGER ji,jj,jk,jn
69      REAL ztot(jpi), ze3t(jpk)
70      REAL zdet,zzoo,zphy,zno3,znh4,zdom,zlno3,zlnh4,zle,zlt
71      REAL zno3phy, znh4phy, zphynh4, zphydom, zphydet, zphyzoo, zdetzoo
72     $    ,zzoonh4, zzoodom, zzoodet, zdetnh4, zdetdom, znh4no3, zdomnh4
73     $    ,zppz,zpdz,zpppz,zppdz,zfood,zfilpz,zfildz,zphya,zzooa,zno3a
74     $    ,znh4a,zdeta,zdoma, ztra, zzoobod
75
76CC----------------------------------------------------------------------
77CC statement functions
78CC ===================
79CDIR$ NOLIST
80#include "domzgr_substitute.h90"
81CDIR$ LIST
82CCC---------------------------------------------------------------------
83CCC  OPA8, LODYC (07/99)
84CCC---------------------------------------------------------------------
85C   | --------------|
86C   | LOBSTER1 MODEL| 
87C   | --------------|
88
89#if defined key_trc_diaadd
90C convert fluxes in per day
91      DO jk=1,jpkbm1
92        ze3t(jk)=e3t(jk)*86400.
93      END DO
94      DO jk=jpkb,jpk
95        ze3t(jk)=0.
96      END DO
97#endif
98C
99C vertical slab
100C =============
101C
102      DO 1000 jj = 2,jpjm1
103C
104C 1. biological level
105C ===================
106C
107        DO ji = 2,jpim1
108          fbod(ji,jj)=0.
109#if defined key_trc_diaadd
110          DO jn=1,jpdia2d
111            trc2d(ji,jj,jn)=0.         
112          END DO
113#endif
114        END DO
115
116        DO jk=1,jpkbm1
117          DO ji = 2,jpim1
118C
119C
120C 1.1 trophic variables( det, zoo, phy, no3, nh4, dom)
121C ---------------------------------------------------
122C
123C negative trophic variables DO not contribute to the fluxes
124C
125            zdet = max(0.,trn(ji,jj,jk,jpdet))
126            zzoo = max(0.,trn(ji,jj,jk,jpzoo))
127            zphy = max(0.,trn(ji,jj,jk,jpphy))
128            zno3 = max(0.,trn(ji,jj,jk,jpno3))
129            znh4 = max(0.,trn(ji,jj,jk,jpnh4))
130            zdom = max(0.,trn(ji,jj,jk,jpdom))
131C
132C
133C 1.2  Limitations
134C ----------------
135C
136            zlt = 1.
137            zle = 1. - exp( -xpar(ji,jj,jk)/aki/zlt) 
138c            zlno3 = (aknut * zno3)/ (( aknut+znh4)*(aknut+zno3+znh4))
139            zlno3 = zno3* exp(-1.5*znh4) / (aknut+zno3)
140            zlnh4 = znh4 / (znh4+aknut) 
141
142C
143C
144C 1.3 sinks and sources
145C ---------------------
146C
147C
148C 1. phytoplankton production and exsudation
149C
150            zno3phy = tmumax * zle * zlt * zlno3 * zphy
151            znh4phy = tmumax * zle * zlt * zlnh4 * zphy
152
153            zphydom = rgamma * (1-fdoml) * (zno3phy + znh4phy)
154            zphynh4 = rgamma * fdoml     * (zno3phy + znh4phy)
155
156C
157C 2. zooplankton production
158C
159C preferences
160C
161            zppz = rppz
162            zpdz = 1. - rppz
163            zpppz = ( zppz * zphy ) /
164     $          ( ( zppz * zphy + zpdz * zdet ) + 1.e-13 )
165            zppdz = ( zpdz * zdet ) /
166     $          ( ( zppz * zphy + zpdz * zdet ) + 1.e-13 )
167            zfood = zpppz * zphy + zppdz * zdet
168C
169C filtration
170C
171            zfilpz = taus * zpppz / (aks + zfood)
172            zfildz = taus * zppdz / (aks + zfood)
173C
174C grazing
175C
176            zphyzoo = zfilpz * zphy * zzoo
177            zdetzoo = zfildz * zdet * zzoo
178C
179C 3. fecal pellets production
180C
181            zzoodet = rpnaz * zphyzoo + rdnaz * zdetzoo
182C
183C 4. zooplankton liquide excretion
184C
185            zzoonh4 = tauzn * zzoo * fdoml
186            zzoodom = tauzn * zzoo * (1-fdoml) 
187
188C 5. mortality
189C
190C phytoplankton mortality
191C
192            zphydet = tmminp * zphy
193C
194C
195C zooplankton mortality
196c closure : flux fbod is redistributed below level jpkbio
197C
198            zzoobod = tmminz * zzoo * zzoo
199            fbod(ji,jj) = fbod(ji,jj) + zzoobod * fse3t(ji,jj,jk)
200C
201C
202C 6. detritus and dom breakdown
203C
204C
205            zdetnh4 = taudn * fdoml * zdet
206            zdetdom = taudn * (1 - fdoml) * zdet
207            zdomnh4 = taudomn * zdom
208C
209C
210C 7. Nitrification
211C
212            znh4no3 = taunn * znh4
213C
214C
215C
216C 1.4 determination of trends
217C ---------------------------
218C
219C total trend for each biological tracer
220C
221            zphya =   zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo
222     $          - zphydet
223            zzooa =   zphyzoo + zdetzoo - zzoodet - zzoodom - zzoonh4
224     $          - zzoobod
225            zno3a = - zno3phy + znh4no3
226            znh4a = - znh4phy - znh4no3 + zphynh4 + zzoonh4 + zdomnh4
227     $          + zdetnh4
228            zdeta = zphydet + zzoodet  - zdetzoo - zdetnh4 - zdetdom
229            zdoma = zphydom + zzoodom + zdetdom - zdomnh4
230C
231#if defined key_trc_diabio
232            trbio(ji,jj,jk,1) = zno3phy
233            trbio(ji,jj,jk,2) = znh4phy
234            trbio(ji,jj,jk,3) = zphynh4
235            trbio(ji,jj,jk,4) = zphydom
236            trbio(ji,jj,jk,5) = zphyzoo
237            trbio(ji,jj,jk,6) = zphydet
238            trbio(ji,jj,jk,7) = zdetzoo
239            trbio(ji,jj,jk,9) = zzoodet
240            trbio(ji,jj,jk,10) = zzoobod
241            trbio(ji,jj,jk,11) = zzoonh4
242            trbio(ji,jj,jk,12) = zzoodom
243            trbio(ji,jj,jk,13) = znh4no3
244            trbio(ji,jj,jk,14) = zdomnh4
245            trbio(ji,jj,jk,15) = zdetnh4
246#endif
247#if defined key_trc_diaadd
248            trc2d(ji,jj,1)=trc2d(ji,jj,1)+zno3phy*ze3t(jk)         
249            trc2d(ji,jj,2)=trc2d(ji,jj,2)+znh4phy*ze3t(jk)
250            trc2d(ji,jj,3)=trc2d(ji,jj,3)+zphydom*ze3t(jk)
251            trc2d(ji,jj,4)=trc2d(ji,jj,4)+zphynh4*ze3t(jk)
252            trc2d(ji,jj,5)=trc2d(ji,jj,5)+zphyzoo*ze3t(jk)
253            trc2d(ji,jj,6)=trc2d(ji,jj,6)+zphydet*ze3t(jk)
254            trc2d(ji,jj,7)=trc2d(ji,jj,7)+zdetzoo*ze3t(jk)
255c trend number 8 is in trcsed.F           
256            trc2d(ji,jj,9)=trc2d(ji,jj,9)+zzoodet*ze3t(jk)
257            trc2d(ji,jj,10)=trc2d(ji,jj,10)+zzoobod*ze3t(jk)
258            trc2d(ji,jj,11)=trc2d(ji,jj,11)+zzoonh4*ze3t(jk)
259            trc2d(ji,jj,12)=trc2d(ji,jj,12)+zzoodom*ze3t(jk)
260            trc2d(ji,jj,13)=trc2d(ji,jj,13)+znh4no3*ze3t(jk)
261            trc2d(ji,jj,14)=trc2d(ji,jj,14)+zdomnh4*ze3t(jk)
262            trc2d(ji,jj,15)=trc2d(ji,jj,15)+zdetnh4*ze3t(jk)
263             
264            trc2d(ji,jj,16)=trc2d(ji,jj,16)+(zno3phy+znh4phy-zphynh4
265     $          -zphydom-zphyzoo-zphydet)*ze3t(jk)
266            trc2d(ji,jj,17)=trc2d(ji,jj,17)+(zphyzoo+zdetzoo-zzoodet
267     $          -zzoobod-zzoonh4-zzoodom) *ze3t(jk)
268            trc2d(ji,jj,18)=trc2d(ji,jj,18)+zdetdom*ze3t(jk)
269
270            trc3d(ji,jj,jk,1)= zno3phy *86400     
271            trc3d(ji,jj,jk,2)= znh4phy *86400     
272            trc3d(ji,jj,jk,3)= znh4no3 *86400     
273#endif
274C
275C tracer flux at totox-point added to the general trend
276C
277            tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) + zdeta
278            tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) + zzooa
279            tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) + zphya
280            tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + zno3a
281            tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + znh4a
282            tra(ji,jj,jk,jpdom) = tra(ji,jj,jk,jpdom) + zdoma
283C
284          END DO
285        END DO
286C
287C 2. under biological level
288C =========================
289C
290        DO jk = jpkb,jpk
291C
292C 2.1 compute the remineralisation of all quantities towards nitrate
293C ------------------------------------------------------------------
294C
295          DO ji=2,jpim1
296            ztot(ji) = 0.
297          END DO
298          DO jn=1,jptra
299            IF (ctrcnm(jn).NE.'NO3') THEN
300                DO ji=2,jpim1
301                  ztra = remdmp(jk,jn) * trn(ji,jj,jk,jn) 
302                  tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) - ztra
303                  ztot(ji) = ztot(ji) + ztra
304                END DO
305            ENDIF
306          END DO
307          DO jn=1,jptra
308            IF (ctrcnm(jn).EQ.'NO3') THEN
309                DO ji=2,jpim1
310                  tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztot(ji)
311                END DO
312#if defined key_trc_diabio
313                trbio(ji,jj,jk,1)=ztot(ji)
314#endif
315            ENDIF
316          END DO
317        END DO
318
319
320#if defined key_trc_diabio
321        DO jk=jpkb,jpkm1
322          DO ji=2,jpim1
323            trbio(ji,jj,jk,2)=tra(ji,jj,jk,jptra)
324          END DO
325        END DO
326#endif
327C
328C
329C END of slab
330C ===========
331C
332 1000 CONTINUE
333
334#if defined key_trc_diaadd
335
336C Lateral boundary conditions on trc2d
337      DO jn=1,jpdia2d
338          CALL lbc_lnk(trc2d(:,:,jn),'T',1. )
339      END DO
340
341C Lateral boundary conditions on trc3d
342      DO jn=1,jpdia3d
343          CALL lbc_lnk(trc3d(:,:,1,jn),'T',1. )
344      END DO
345
346#endif
347
348#if defined key_trc_diabio
349C Lateral boundary conditions on trcbio
350      DO jn=1,jpdiabio
351          CALL lbc_lnk(trbio(:,:,1,jn),'T',1. )
352      END DO
353#endif
Note: See TracBrowser for help on using the repository browser.