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

source: trunk/NEMO/TOP_SRC/SMS/p3zbio.F @ 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: 20.5 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 ---------------------------------------------------------------------------
6CCC $Header$
7      SUBROUTINE p3zbio
8#if defined key_passivetrc && defined key_trc_p3zd
9CCC   ------------------------------------------------------------------
10CCC   
11CCC   ROUTINE p3zbio
12CCC   ******************
13CCC   
14CCC   
15CC
16CC     PURPOSE.
17CC     --------
18CC          *P3ZBIO* MODELS PRODUCTION OF BIOGENIC MATTER (POC '' SOFT
19CC                   TISSUE'' AND CACO3 PARTICLES ''HARD PARTS'')
20CC                   AND ITS DISTRIBUTION IN WATER COLUMN
21CC
22CC     METHOD.
23CC     -------
24CC          IN THE SURFACE LAYER POC IS PRODUCED ACCORDING TO
25CC     NURTRIENTS AVAILABLE AND GROWTH CONDITIONS. NUTRIENT UPTAKE
26CC     KINETICS FOLLOW MICHAELIS-MENTON FORMULATION. PROPORTIONAL
27CC     TO THE AMOUNT OF ORGANIC MATTER, CACO3 HARD PARTS ARE PRODUCED.
28CC     THE TOTAL PARTICLE AMOUNT PRODUCED, IS DISTRIBUTED IN THE WATER
29CC     COLUMN BELOW THE SURFACE LAYER.
30CC
31CC     EXTERNALS.
32CC     ----------
33CC          NONE.
34CC
35CC     REFERENCE.
36CC     ----------
37CC
38CC          BACASTOW, R., AND E. MAIER-REIMER (1985)
39CC          CIRCULATION MODEL OF THE OCEAN CARBON CYCLE.
40CC          1. DESCRIPTION OF THE MODEL, PP. 224-232.
41CC          2. COMPARISON OF THE MODEL RESULTS WITH OBSERVATIONAL DATA,
42CC          PP. 233-240.
43CC          IN: "ATMOSPHERIC CARBON DIOXIDE - ITS SOURCES, SINKS, AND
44CC          GLOBAL tranSPORT", KANDERSTEG, 2 TO 6 SEPTEMBER 1985,
45CC          COMMISSION ON ATMOSPHERIC CHEMISTRY AND GLOBAL POLLUTION,
46CC          INTERNATIONAL ASSOCIATION OF METEOROLOGY AND ATMOSPHERIC PHYSICS.
47CC
48CC          DUGDALE. R.C. (1967)
49CC          NUTRIENT LIMITATION IN THE SEA: DYNAMICS, IDENTIFICATION
50CC          AND SIGNIFICANCE.
51CC          LIMNOLOGY AND OCEANOGRAPHY, VOL.12, 685-695.
52CC
53CC          PARSONS, T.R., AND M. TAKAHASHI (1973)
54CC          BIOLOGICAL OCEANOGRAPHIC PROCESSES.
55CC          PERGAMON PRESS, 186 PP.
56CC
57CC   MODIFICATIONS:
58CC   --------------
59CC      original      : 1998    O. Aumont
60CC      modifications : 1999    C. Le Quere
61CC      modifications : 1999    O. Aumont
62CC      modifications : 2001    O. Aumont
63CC ----------------------------------------------------------------
64CC parameters and commons
65CC ======================
66C     DIR$ NOLIST
67      USE oce_trc
68      USE trp_trc
69      USE sms
70      IMPLICIT NONE
71C     DIR$ LIST
72CC-----------------------------------------------------------------
73c -----
74CC local declarations
75CC ==================
76C     
77      INTEGER ji, jj, jk
78      INTEGER kmin(jpi,jpj)
79
80      REAL silpot, expofa
81      REAL  calpot, silfra
82      REAL remip,remik
83C     
84      REAL dipnmoy(jpi,jpj),zmeu(jpi,jpj)
85      REAL orem(jpi,jpj,jpk),olimi(jpi,jpj,jpk),intpz(jpi,jpj)
86      REAL phosph2,zoo2,oxygen2
87      REAL phyto2,poc212
88      REAL compaph(jpi,jpj,jpk),compaz
89C     
90      REAL parlux
91      REAL graze,prefc,prefp
92C     
93C     SET HALF PRECISION CONSTANTS
94C-----------------------------
95C     
96      e1       = 0.
97      e2       = 0.
98      zero     = 0.
99      one      = 1.
100      two      = 2.
101      parlux   = 0.21
102     
103      intpz       = 0.   
104C     
105C     Initialisation of variables used to compute PAR
106C     -----------------------------------------------
107C     
108      dipnmoy     = 0.
109      etot        = 0.
110C     
111C     Light penetration in the water column
112C     -------------------------------------
113      DO jj = 1,jpj
114        DO ji = 1,jpi
115          e1(ji,jj,1)=parlux*qsr(ji,jj)
116          e2(ji,jj,1)=parlux*qsr(ji,jj)
117          etot(ji,jj,1)=e1(ji,jj,1)+e2(ji,jj,1)
118        END DO
119      END DO
120
121      DO jk = 1,16
122        DO jj = 1,jpj
123          DO ji = 1,jpi
124            IF (tmask(ji,jj,jk).NE.0) THEN
125C     
126C     Separation in two light bands: red and green
127C     --------------------------------------------
128C     
129                e1(ji,jj,jk+1) = e1(ji,jj,jk)*
130     &              exp(-(ekw1+ekc*trn(ji,jj,jk,jpphy)*12e6
131     &              /dipn(ji,jj,jk))*e3t(jk)/2.)
132                e2(ji,jj,jk+1) = e2(ji,jj,jk)*
133     &              exp(-(ekw2+ekc*trn(ji,jj,jk,jpphy)*12e6
134     &              /dipn(ji,jj,jk))*e3t(jk)/2.)
135                etot(ji,jj,jk) = e1(ji,jj,jk+1)+e2(ji,jj,jk+1)
136C     
137C     Computation of irradiance below level T
138C     ---------------------------------------
139C     
140                e1(ji,jj,jk+1)=e1(ji,jj,jk+1)*
141     $              exp(-(ekw1+ekc*trn(ji,jj,jk,jpphy)*12e6
142     $              /dipn(ji,jj,jk))*e3t(jk)/2.)
143                e2(ji,jj,jk+1)=e2(ji,jj,jk+1)*
144     $              exp(-(ekw2+ekc*trn(ji,jj,jk,jpphy)*12e6
145     $              /dipn(ji,jj,jk))*e3t(jk)/2.)
146C     
147C     Computation of C/Chl ratio (doney et al., 1996)
148C     -----------------------------------------------
149C     
150                dipn(ji,jj,jk)=trn(ji,jj,jk,jppo4)
151     $              /(trn(ji,jj,jk,jppo4)+conc0)
152     $              *(2.5-1.5*MIN(etot(ji,jj,jk)/90.,1.))/7.6/12.
153     $              +1.E-30
154                dipn(ji,jj,jk)=MIN(150.,1./dipn(ji,jj,jk)) 
155            ENDIF
156          END DO
157        END DO
158      END do
159C     
160C     Initialisation of the euphotic depth
161C     
162      DO jj = 1,jpj
163        DO ji = 1,jpi
164          kmin(ji,jj)=1
165          zmeu(ji,jj)=gdept(16)
166        END DO
167      END DO     
168C     
169C     Computation of the euphotic depth
170C     ---------------------------------
171C     
172      DO jk = 2,16
173        DO jj = 1,jpj
174          DO ji = 1,jpi
175            IF (etot(ji,jj,jk).GE.0.0045*qsr(ji,jj)) THEN
176                zmeu(ji,jj) = gdept(jk)
177                IF (gdept(jk).LE.hmld(ji,jj)) THEN
178                    kmin(ji,jj)=jk
179                ENDIF
180            ENDIF
181          END DO
182        END DO
183      END DO
184
185
186      DO jk = 1,16
187        DO jj = 1,jpj
188          DO ji = 1,jpi
189            IF (jk.LE.kmin(ji,jj)) THEN
190C     
191C     C/CHL ET PAR MOYENS SUR LA COUCHE DE MELANGE
192C     
193                dipnmoy(ji,jj)=dipnmoy(ji,jj)+dipn(ji,jj,jk)/
194     $              (float(kmin(ji,jj))+1.E-15)
195            ENDIF
196          END DO
197        END DO
198      END DO
199
200
201      DO jk = 1,jpkb
202        DO jj = 1,jpj
203          DO ji = 1,jpi
204            IF (jk.LE.kmin(ji,jj)) THEN
205                dipn(ji,jj,jk)=dipnmoy(ji,jj)
206            ENDIF
207C     
208#    if defined key_trc_dia3d
209            trc3d(ji,jj,jk,1) = dipn(ji,jj,jk)
210#    endif
211          END DO
212        END DO
213      END DO
214
215#    if defined key_diatrdtrc
216      DO jj = 1,jpj
217        DO ji = 1,jpi
218          trc2d(ji,jj,11) = dipnmoy(ji,jj)
219        END DO
220      END DO
221#    endif
222
223C     
224      DO  jk = 1,jpkb
225        DO  jj = 1,jpj
226          DO  ji = 1,jpi
227            IF (tmask(ji,jj,jk).NE.0) THEN
228C     
229C     Computation of phyto development constant
230C     -----------------------------------------
231C     
232                prbio(ji,jj,jk) = 0.6/rjjss*(1.066)**(tn(ji,jj,jk))
233C     
234C     Computation of production function
235C     ----------------------------------
236C     
237         prbio(ji,jj,jk) = prbio(ji,jj,jk)*(1.-exp(-pislope/rjjss*
238     &     etot(ji,jj,jk)/prbio(ji,jj,jk)))*exp(-betslope/rjjss*
239     &     etot(ji,jj,jk)/prbio(ji,jj,jk))
240#    if defined key_off_degrad
241     &              *facvol(ji,jj,jk)
242#    endif
243C     
244C     Mixed-layer effect on production
245C     --------------------------------
246C     
247                IF (hmld(ji,jj).ge.2*zmeu(ji,jj)) THEN
248                    prbio(ji,jj,jk) = prbio(ji,jj,jk)*0.5
249                   
250                ELSEIF (hmld(ji,jj).le.zmeu(ji,jj)) THEN
251                    prbio(ji,jj,jk) = prbio(ji,jj,jk)
252                ELSE
253                    prbio(ji,jj,jk) = prbio(ji,jj,jk)*(1.-
254     &                  0.5*(hmld(ji,jj)/zmeu(ji,jj)-1))
255                ENDIF
256            ENDIF
257          ENDDO
258        ENDDO
259
260C     
261        DO jj = 1,jpj
262          DO ji = 1,jpi
263            IF (tmask(ji,jj,jk).ne.0) THEN
264C     
265C     Exsudation of Zoo towards DOC
266C     -----------------------------
267C     
268                compaz = max((trn(ji,jj,jk,jpzoo)-0.01E-6),0.)
269                compaph(ji,jj,jk) = max((trn(ji,jj,jk,jpphy)-0.01E-6),
270     $              0.)
271                respz(ji,jj,jk) = resrat/rjjss*trn(ji,jj,jk,jpzoo)/
272     &              (1.E-6+trn(ji,jj,jk,jpzoo))*rfact*compaz*
273     $              tmask(ji,jj,jk)
274#    if defined key_off_degrad
275     &              *facvol(ji,jj,jk)
276#    endif
277c     
278C     
279C     Computation of the fast remineralised fraction as a function of nutrients
280C     -------------------------------------------------------------------------
281C     
282                eps1(ji,jj,jk) =epsbio+0.*7.6e-6/(7.6e-6+
283     $              trn(ji,jj,jk,jppo4))
284C     
285C     Squared mortality of Phyto similar to a sedimentation term during
286c blooms
287C     (Doney et al. 1996)
288C     
289                respp(ji,jj,jk) = wchl/rjjss*1e6*
290     $              trn(ji,jj,jk,jpphy)**2*rfact
291     &              *tmask(ji,jj,jk)
292#    if defined key_off_degrad
293     &              *facvol(ji,jj,jk)
294#    endif
295C     
296C     Phytoplankton mortality
297C     -----------------------
298C     
299                tortp(ji,jj,jk) = mprat/rjjss*trn(ji,jj,jk,jpphy)
300     $              /(1.e-6+trn(ji,jj,jk,jpphy))
301     &              *compaph(ji,jj,jk)*rfact*tmask(ji,jj,jk)
302#    if defined key_off_degrad
303     &              *facvol(ji,jj,jk)
304#    endif
305C     
306C     Zooplankton mortality
307C     ---------------------
308C     
309                tortz(ji,jj,jk) = mzrat/rjjss*trn(ji,jj,jk,jpzoo)
310     $              /(1.E-6+trn(ji,jj,jk,jpzoo))
311     &              *compaz*rfact*tmask(ji,jj,jk)
312#    if defined key_off_degrad
313     &              *facvol(ji,jj,jk)
314#    endif
315C     
316C     Zooplankton grazing
317C     -------------------
318C     
319                graze = grazrat/rjjss*rfact*tmask(ji,jj,jk)
320#    if defined key_off_degrad
321     &              *facvol(ji,jj,jk)
322#    endif
323C     
324C     Preference of zooplankton for Phyto and POC (Fasham et al. 1990)
325C     
326                prefc = xprefc*trn(ji,jj,jk,jpphy)/
327     $              (xprefc*trn(ji,jj,jk,jpphy)
328     &              +xprefp*trn(ji,jj,jk,jppoc)+1E-15)
329
330                prefp = xprefp*trn(ji,jj,jk,jppoc)/
331     $              (xprefc*trn(ji,jj,jk,jpphy)
332     &              +xprefp*trn(ji,jj,jk,jppoc)+1E-15)
333
334                grazp(ji,jj,jk) = graze*prefc*compaph(ji,jj,jk)/
335     $              (xkgraz+prefc*trn(ji,jj,jk,jpphy)+prefp*
336     &              trn(ji,jj,jk,jppoc))*trn(ji,jj,jk,jpzoo)
337               
338
339                grazpoc(ji,jj,jk) = graze*prefp*trn(ji,jj,jk,jppoc)/
340     &              (xkgraz+prefc*trn(ji,jj,jk,jpphy)+prefp*
341     &              trn(ji,jj,jk,jppoc))*trn(ji,jj,jk,jpzoo)
342C     
343C     
344C     Sedimentation of Phyto and POC
345C     ------------------------------
346C     
347                sinking(ji,jj,jk+1) = wsbio/rjjss*trn(ji,jj,jk,jppoc)
348     &              *rfact*tmask(ji,jj,jk+1)
349#    if defined key_off_degrad
350     &              *facvol(ji,jj,jk)
351#    endif
352                nu(ji,jj,jk+1) = smax/rjjss*(1.-tanh(conc0*0.0481e12*
353     &              trn(ji,jj,jk,jppo4)))*trn(ji,jj,jk,jpphy)*rfact*
354     &              tmask(ji,jj,jk+1)
355#    if defined key_off_degrad
356     &              *facvol(ji,jj,jk)
357#    endif
358C     
359C     Remineralization of DOC and POC
360C     
361                remik=1.64*SPOCRI*(1.-tmask(ji,jj,jk+1))+xremik
362                remik=remik/rjjss*rfact*tmask(ji,jj,jk)
363     &              *trn(ji,jj,jk,jppo4)/(trn(ji,jj,jk,jppo4)+32.E-6)
364     &              *trn(ji,jj,jk,jpdoc)/(trn(ji,jj,jk,jpdoc)+15.E-6)
365#    if defined key_off_degrad
366     &              *facvol(ji,jj,jk)
367#    endif
368                remip=xremip/rjjss*rfact*tmask(ji,jj,jk)
369#    if defined key_off_degrad
370     &              *facvol(ji,jj,jk)
371#    endif
372                olimi(ji,jj,jk)=remik*trn(ji,jj,jk,jpdoc) 
373                orem(ji,jj,jk)=remip*trn(ji,jj,jk,jppoc)
374            ENDIF
375          END DO
376        END DO
377      END DO
378C     
379      DO jk = 1,jpkb
380        DO jj = 1,jpj
381          DO ji = 1,jpi
382            IF (tmask(ji,jj,jk).NE.0) THEN
383C     
384C     Computation of Primary Production 
385C     ---------------------------------
386C     
387           prorca(ji,jj,jk) = prbio(ji,jj,jk)*trn(ji,jj,jk,jppo4)*
388     &              trn(ji,jj,jk,jpphy)/(conc0+trn(ji,jj,jk,jppo4))*
389     &              rfact
390C     
391C     Evolution of PO4
392C     ----------------
393C     
394                phosph2 = trn(ji,jj,jk,jppo4)-prorca(ji,jj,jk)
395     &              +eps1(ji,jj,jk)*tortz(ji,jj,jk)
396     &              +olimi(ji,jj,jk)
397C     
398C     Nullity test for PO4
399C     --------------------
400C     
401                prorca(ji,jj,jk)=prorca(ji,jj,jk)
402     &              *(0.5+sign(0.5,phosph2))
403
404C     
405C     Evolution of Phyto
406C     ------------------
407C     
408                phyto2 = trn(ji,jj,jk,jpphy)+prorca(ji,jj,jk)*
409     &              (1.-excret)-(tortp(ji,jj,jk)+
410     &              respp(ji,jj,jk))-grazp(ji,jj,jk)+
411     &              (nu(ji,jj,jk)-nu(ji,jj,jk+1))/e3t(jk)
412C     
413C     Nullity test for Phyto
414C     ----------------------
415C     
416                tortp(ji,jj,jk)=tortp(ji,jj,jk)
417     $              *(0.5+sign(0.5,phyto2))
418                respp(ji,jj,jk)=respp(ji,jj,jk)
419     $              *(0.5+sign(0.5,phyto2))
420                grazp(ji,jj,jk)=grazp(ji,jj,jk)
421     $              *(0.5+sign(0.5,phyto2))
422                prorca(ji,jj,jk)=prorca(ji,jj,jk)
423     $              *(0.5+sign(0.5,phyto2))
424                nu(ji,jj,jk+1)=nu(ji,jj,jk+1)
425     $              *(0.5+sign(0.5,phyto2))
426C     
427C     Evolution of detritus
428C     ---------------------
429C     
430                poc212 = trn(ji,jj,jk,jppoc)-grazpoc(ji,jj,jk)+unass*
431     &              (grazp(ji,jj,jk)+grazpoc(ji,jj,jk))+
432     &              (1.-eps1(ji,jj,jk))*tortz(ji,jj,jk)+
433     &              tortp(ji,jj,jk)+respp(ji,jj,jk) +
434     &              (sinking(ji,jj,jk)-sinking(ji,jj,jk+1))/e3t(jk)
435     &              -orem(ji,jj,jk)
436C     
437C     Nullity test for POC
438C     --------------------
439C     
440                grazpoc(ji,jj,jk)=grazpoc(ji,jj,jk)
441     &              *(0.5+sign(0.5,poc212))
442                sinking(ji,jj,jk+1)=sinking(ji,jj,jk+1)
443     &              *(0.5+sign(0.5,poc212))
444                orem(ji,jj,jk)=orem(ji,jj,jk) 
445     &              *(0.5+sign(0.5,poc212))
446C     
447C     Evolution of Zooplankton
448C     ------------------------
449C     
450                zoo2 = trn(ji,jj,jk,jpzoo)+
451     &              (1-unass)*(grazp(ji,jj,jk)+grazpoc(ji,jj,jk))
452     &              -(tortz(ji,jj,jk)+respz(ji,jj,jk))
453C     
454C     
455C     Nullity test for Zooplankton
456C     ----------------------------
457C     
458                tortz(ji,jj,jk)=tortz(ji,jj,jk)
459     &              *(0.5+sign(0.5,zoo2))
460                respz(ji,jj,jk)=respz(ji,jj,jk)
461     &              *(0.5+sign(0.5,zoo2))
462                grazp(ji,jj,jk)=grazp(ji,jj,jk)
463     &              *(0.5+sign(0.5,zoo2))
464                grazpoc(ji,jj,jk)=grazpoc(ji,jj,jk)
465     &              *(0.5+sign(0.5,zoo2))
466C     
467C     Evolution of O2
468C     ---------------
469C     
470                oxygen2 = trn(ji,jj,jk,jpoxy)+o2ut*
471     &              (prorca(ji,jj,jk)-eps1(ji,jj,jk)*tortz(ji,jj,jk)
472     &              -olimi(ji,jj,jk))
473C     
474                tortz(ji,jj,jk)=tortz(ji,jj,jk)
475     &              *(0.5+sign(0.5,oxygen2))
476                olimi(ji,jj,jk)=olimi(ji,jj,jk)
477     &              *(0.5+sign(0.5,oxygen2))
478C     
479            ENDIF
480          END DO
481        END DO
482      END DO
483C     
484C     Determination of tracers concentration as a function of 
485C     biological sources and sinks
486C     --------------------------------------------------------
487C     
488      DO jk = 1,jpkb
489        DO jj = 1,jpj
490          DO ji = 1,jpi
491C     
492            IF (tmask(ji,jj,jk).NE.0) THEN
493C     
494C     Evolution of PO4
495C     ----------------
496C     
497                trn(ji,jj,jk,jppo4) = trn(ji,jj,jk,jppo4)-
498     &              prorca(ji,jj,jk)+olimi(ji,jj,jk)+
499     &              eps1(ji,jj,jk)*tortz(ji,jj,jk)
500                prodt(ji,jj,jk) = prorca(ji,jj,jk)
501     &              -eps1(ji,jj,jk)*tortz(ji,jj,jk)
502     &              -olimi(ji,jj,jk)
503C     
504C     Evolution of Phytoplankton
505C     --------------------------
506C     
507C     
508                trn(ji,jj,jk,jpphy) = trn(ji,jj,jk,jpphy)+
509     &              prorca(ji,jj,jk)*(1.-excret)-
510     &              (tortp(ji,jj,jk)+respp(ji,jj,jk))-
511     &              grazp(ji,jj,jk)+
512     &              (nu(ji,jj,jk)-nu(ji,jj,jk+1))/e3t(jk)
513C     
514C     Evolution of Zooplankton
515C     ------------------------
516C     
517                trn(ji,jj,jk,jpzoo) = trn(ji,jj,jk,jpzoo)+
518     &              (1-unass)*(grazp(ji,jj,jk)+grazpoc(ji,jj,jk))
519     &              -(tortz(ji,jj,jk)+respz(ji,jj,jk))
520C     
521C     Evolution of DOC
522C     ----------------
523C     
524                trn(ji,jj,jk,jpdoc) = trn(ji,jj,jk,jpdoc)
525     &              +respz(ji,jj,jk)+orem(ji,jj,jk)
526     &              +excret*prorca(ji,jj,jk)-olimi(ji,jj,jk)
527C     
528C     Evolution of Detritus
529C     ---------------------
530C     
531C     
532                trn(ji,jj,jk,jppoc) = trn(ji,jj,jk,jppoc)-
533     &              grazpoc(ji,jj,jk)+unass*
534     &              (grazp(ji,jj,jk)+grazpoc(ji,jj,jk))+
535     &              (1.-eps1(ji,jj,jk))*tortz(ji,jj,jk)+
536     &              tortp(ji,jj,jk)+respp(ji,jj,jk)
537     &              +(sinking(ji,jj,jk)-sinking(ji,jj,jk+1))/e3t(jk)
538     &              -orem(ji,jj,jk)
539C     
540C     Evolution of O2
541C     ---------------
542C     
543                trn(ji,jj,jk,jpoxy)=trn(ji,jj,jk,jpoxy)+
544     &              o2ut*(prorca(ji,jj,jk)-olimi(ji,jj,jk)-
545     &              eps1(ji,jj,jk)*tortz(ji,jj,jk))
546C     
547C     Vertical integral of phyto and zooplanton concentrations
548C     used to compute calcite production
549C     
550            ENDIF
551          END DO
552        END DO
553      END DO
554
555      DO jk=1,jpk
556        DO jj=1,jpj
557          DO ji=1,jpi
558            IF (tmask(ji,jj,jk).NE.0.) then
559                intpz(ji,jj)=intpz(ji,jj)+(trn(ji,jj,jk,jpphy)
560     &              +trn(ji,jj,jk,jpzoo))*e3t(jk)*tmask(ji,jj,jk)
561            ENDIF
562          END DO
563        END DO
564      END DO
565     
566C     
567C     Evolution of calcite and silicates as a function of the two tracers
568C     -------------------------------------------------------------------
569C     
570      DO  jk = 1,jpkb
571        DO  jj = 1,jpj
572          DO  ji = 1,jpi
573            IF (tmask(ji,jj,jk).ne.0) THEN
574C     
575C     potential production of calcite and biogenic silicate
576C     ------------------------------------------------------
577C     
578                silpot = grosip*trn(ji,jj,jk,jpsil)/
579     &              (trn(ji,jj,jk,jpsil)+xksi1)
580                expofa=EXP(0.1*tn(ji,jj,jk)-10.)
581                calpot=expofa/(1.+expofa)
582                calfra=caco3r*calpot
583                silfra=silpot*(1.-calpot)/0.75
584C     
585C     in situ production of calcite and biogenic silicate
586C     ----------------------------------------------------
587C     
588                prcaca(ji,jj,jk)=calfra*(sinking(ji,jj,11)
589     &              +nu(ji,jj,11))*(trn(ji,jj,jk,jpphy)+
590     &              trn(ji,jj,jk,jpzoo))*tmask(ji,jj,1)
591     &              /(intpz(ji,jj)+1.E-15)
592                silpro(ji,jj,jk)=sicmax*silfra*
593     &              (unass*(grazp(ji,jj,jk)+grazpoc(ji,jj,jk))
594     &              +tortp(ji,jj,jk)+respp(ji,jj,jk))
595C     
596C     Compute variable Si/C ratio. Very simple formulation 
597C     based on the assumption that this ratio decreased with
598C     decreasing in situ Si concentrations
599C     --------------------------------------------------------
600C     
601                silpro(ji,jj,jk)=silpro(ji,jj,jk)*trn(ji,jj,jk,jpsil)
602     &              /(trn(ji,jj,jk,jpsil)+xksi2)
603C     
604C     Account for changes in total co2, alkalinity and [po4]
605C     due to uptake by poc-/caco3 producing organismS
606C     ------------------------------------------------------
607C     
608C     Evolution of silicates
609C     ----------------------
610C     
611                silpro(ji,jj,jk)=amin1(silpro(ji,jj,jk),
612     &              (trn(ji,jj,jk,jpsil)-0.05E-6))   
613                trn(ji,jj,jk,jpsil) =trn(ji,jj,jk,jpsil)
614     $              -SILPRO(ji,jj,jk)
615C     
616C     Consumption of Total (12C)O2
617C     ----------------------------
618C     
619                trn(ji,jj,jk,jpdic) = trn(ji,jj,jk,jpdic)
620     &              -prodt(ji,jj,jk)-prcaca(ji,jj,jk)
621C     
622#    if defined key_trc_biohamocc13
623C     Consumption of Total (13C)O2
624C     ----------------------------
625                trn(ji,jj,jk,jp13c) = trn(ji,jj,jk,jp13c)-
626     &              pdb*plafr13*prodt(ji,jj,jk)
627     &              -pdb*prcaca(ji,jj,jk)
628#    endif
629C     
630C     Consumption of alkalinity due to ca++ uptake and increase 
631C     of alkalinity due to nitrate consumption during organic 
632C     soft tissue production
633C     ---------------------------------------------------------
634C     
635                trn(ji,jj,jk,jptal) = trn(ji,jj,jk,jptal)+
636     &              rno3*prodt(ji,jj,jk)-two*prcaca(ji,jj,jk)
637C     
638            ENDIF
639          END DO
640        END DO
641      ENDDO
642C     
643#endif
644C     
645      RETURN
646      END
647
648
649
Note: See TracBrowser for help on using the repository browser.