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

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

CL + CE : NEMO TRC_SRC start

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