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

source: trunk/NEMO/TOP_SRC/SMS/p4zrem.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:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 7.6 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 ---------------------------------------------------------------------------
6CDIR$ LIST
7      SUBROUTINE p4zrem
8#if defined key_passivetrc && defined key_trc_pisces
9CCC---------------------------------------------------------------------
10CCC
11CCC          ROUTINE p4zrem : PISCES MODEL
12CCC          *****************************
13CCC
14CCC  PURPOSE :
15CCC  ---------
16CCC         Compute remineralization/scavenging of organic compounds
17CCC
18CC   INPUT :
19CC   -----
20CC      common
21CC              all the common defined in opa
22CC
23CC
24CC   OUTPUT :                   : no
25CC   ------
26CC
27CC   EXTERNAL :
28CC   --------
29CC            None
30CC
31CC   MODIFICATIONS:
32CC   --------------
33CC      original  : 2004 - O. Aumont 
34CC----------------------------------------------------------------------
35CC parameters and commons
36CC ======================
37CDIR$ NOLIST
38      USE oce_trc
39      USE trp_trc
40      USE sms
41      IMPLICIT NONE
42CDIR$ LIST
43CC----------------------------------------------------------------------
44CC local declarations
45CC ==================
46      INTEGER ji, jj, jk
47      REAL remip,remik,xlam1b
48      REAL xkeq,xfeequi,siremin
49      REAL zsatur,zsatur2,znusil
50      REAL fesatur(jpi,jpj,jpk)
51CC----------------------------------------------------------------------
52CC statement functions
53CC ===================
54CDIR$ NOLIST
55#include "domzgr_substitute.h90"
56CDIR$ LIST
57C
58C      Computation of the mean phytoplankton concentration as
59C      a crude estimate of the bacterial biomass
60C      --------------------------------------------------
61C
62         DO jj=1,jpj
63           DO ji=1,jpi
64         phymoy(ji,jj)=min((trn(ji,jj,1,jpphy)+trn(ji,jj,1,jpdia))
65     .     ,3.E-6)
66           END DO
67         END DO
68
69         DO jk = 1,jpk-1
70           DO jj = 1,jpj
71             DO ji = 1,jpi
72C
73C    DENITRIFICATION FACTOR COMPUTED FROM O2 LEVELS
74C    ----------------------------------------------
75C
76          nitrfac(ji,jj,jk)=
77     &      max(0.,0.4*(6.E-6-trn(ji,jj,jk,jpoxy))/(oxymin+
78     &      trn(ji,jj,jk,jpoxy)))
79          nitrfac(ji,jj,jk)=min(1.,nitrfac(ji,jj,jk))
80             END DO
81           END DO
82         END DO
83
84         DO jk = 1,jpkm1
85           DO jj = 1,jpj
86             DO ji = 1,jpi
87C
88C     DOC ammonification. Depends on depth, phytoplankton biomass
89C     and a limitation term which is supposed to be a parameterization
90C     of the bacterial activity. 
91C     ----------------------------------------------------------------
92         remik=
93     &     xremik*rfact2/(rjjss*1.E-6)*tmask(ji,jj,jk)
94     &     *xlimbac(ji,jj,jk)*phymoy(ji,jj)*max(0.1
95     &     ,exp(-max(0.,(fsdept(ji,jj,jk)-hmld(ji,jj)))/200.))
96#    if defined key_off_degrad
97     &     *facvol(ji,jj,jk)
98#    endif
99C
100C     Ammonification in oxic waters with oxygen consumption
101C     -----------------------------------------------------
102C
103         olimi(ji,jj,jk)=min((trn(ji,jj,jk,jpoxy)-rtrn)/o2ut,
104     &     remik*(1.-nitrfac(ji,jj,jk))*trn(ji,jj,jk,jpdoc)) 
105         olimi(ji,jj,jk)=max(0.,olimi(ji,jj,jk))
106C
107C     Ammonification in suboxic waters with denitrification
108C     -------------------------------------------------------
109C
110         denitr(ji,jj,jk)=min((trn(ji,jj,jk,jpno3)-rtrn)/6.1,
111     &     remik*nitrfac(ji,jj,jk)*trn(ji,jj,jk,jpdoc))
112             END DO
113           END DO
114         END DO
115
116         DO jk = 1,jpkm1
117           DO jj = 1,jpj
118             DO ji = 1,jpi
119C
120C    NH4 nitrification to NO3. Ceased for oxygen concentrations
121C    below 2 umol/L. Inhibited at strong light 
122C    ----------------------------------------------------------
123C
124         onitr(ji,jj,jk)=nitrif*rfact2/rjjss*trn(ji,jj,jk,jpnh4)
125     &     *1./(1.+emoy(ji,jj,jk))*tmask(ji,jj,jk)
126     &     *(1.-nitrfac(ji,jj,jk))
127#    if defined key_off_degrad
128     &     *facvol(ji,jj,jk)
129#    endif
130             END DO
131           END DO
132         END DO
133
134         DO jk = 1,jpkm1
135           DO jj = 1,jpj
136             DO ji = 1,jpi
137C
138C    Bacterial uptake of iron. No iron is available in DOC. So
139C    Bacteries are obliged to take up iron from the water. Some
140C    studies (especially at Papa) have shown this uptake to be
141C    significant
142C    ----------------------------------------------------------
143C
144         xbactfer(ji,jj,jk)=0.02*20E-6*rfact2
145     &     *prmax(ji,jj,jk)*tmask(ji,jj,jk)*xlimphy(ji,jj,jk)
146     &     *xlimdia(ji,jj,jk)*phymoy(ji,jj)*exp(-max
147     &     (fsdept(ji,jj,jk)-hmld(ji,jj),0.)/200.)
148             END DO
149           END DO
150         END DO
151C
152         DO jk = 1,jpkm1
153           DO jj = 1,jpj
154             DO ji = 1,jpi
155C
156C    POC disaggregation by turbulence and bacterial activity. 
157C    -------------------------------------------------------------
158C
159         remip=xremip/rjjss*rfact2*tmask(ji,jj,jk)*(0.25+0.75
160     &     *exp(-max((fsdept(ji,jj,jk)-150.),0.)/1000.))
161#    if defined key_off_degrad
162     &     *facvol(ji,jj,jk)
163#    endif
164C
165C    POC disaggregation rate is reduced in anoxic zone as shown by
166C    sediment traps data. In oxic area, the exponent of the martin's
167C    law is around -0.87. In anoxic zone, it is around -0.35. This
168C    means a disaggregation constant about 0.5 the value in oxic zones
169C    -----------------------------------------------------------------
170C
171         remip=remip*(1.-0.5*nitrfac(ji,jj,jk))
172C
173         orem(ji,jj,jk)=remip*trn(ji,jj,jk,jppoc)
174         orem2(ji,jj,jk)=remip*trn(ji,jj,jk,jpgoc)
175         ofer(ji,jj,jk)=remip*trn(ji,jj,jk,jpsfe)
176         ofer2(ji,jj,jk)=remip*trn(ji,jj,jk,jpbfe)
177C
178             END DO
179           END DO
180         END DO
181
182         DO jk = 1,jpkm1
183           DO jj = 1,jpj
184             DO ji = 1,jpi
185C
186C     Remineralization rate of BSi depedant on T and saturation
187C     ---------------------------------------------------------
188C
189         zsatur=(sio3eq(ji,jj,jk)-trn(ji,jj,jk,jpsil))/
190     &     (sio3eq(ji,jj,jk)+rtrn)
191         zsatur2=zsatur*(1.+tn(ji,jj,jk)/400.)**2*
192     &     (1.+tn(ji,jj,jk)/400.)**2
193         znusil=0.225*(1.+tn(ji,jj,jk)/15.)*zsatur+0.775
194     &     *exp(9.25*log(zsatur2))
195
196         siremin=xsirem/rjjss*rfact2*tmask(ji,jj,jk)*znusil
197#    if defined key_off_degrad
198     &     *facvol(ji,jj,jk)
199#    endif
200C
201         osil(ji,jj,jk)=siremin*trn(ji,jj,jk,jpdsi)
202             END DO
203           END DO
204         END DO
205
206         DO jk = 1,jpkm1
207           DO jj = 1,jpj
208             DO ji = 1,jpi
209C
210C     scavenging rate of iron. this scavenging rate depends on the
211C     load in particles on which they are adsorbed. The
212C     parameterization has been taken from studies on Th
213C     ------------------------------------------------------------
214C
215         xkeq=fekeq(ji,jj,jk)
216         fesatur(ji,jj,jk)=0.6E-9
217         xfeequi=(-(1.+fesatur(ji,jj,jk)*xkeq-xkeq*trn(ji,jj,jk,jpfer))+
218     &     sqrt((1.+fesatur(ji,jj,jk)*xkeq-xkeq*trn(ji,jj,jk,jpfer))**2
219     &     +4.*trn(ji,jj,jk,jpfer)*xkeq))/(2.*xkeq)
220
221         xlam1b=3E-5+xlam1*(trn(ji,jj,jk,jppoc)
222     &     +trn(ji,jj,jk,jpgoc)+trn(ji,jj,jk,jpcal)+
223     &      trn(ji,jj,jk,jpdsi))*1E6
224
225         xscave(ji,jj,jk)=xfeequi*xlam1b/rjjss*rfact2*tmask(ji,jj,jk)
226#    if defined key_off_degrad
227     &     *facvol(ji,jj,jk)
228#    endif
229C
230C  Increased scavenging for very high iron concentrations
231C  found near the coasts due to increased lithogenic particles
232C  and let's say it unknown processes (precipitation, ...)
233C  -----------------------------------------------------------
234C
235         xaggdfe(ji,jj,jk)=2.*xlam1*rfact2/rjjss*max(0.,
236     &     (trn(ji,jj,jk,jpfer)*1E9-1.))*trn(ji,jj,jk,jpfer)
237     &     *tmask(ji,jj,jk)
238#    if defined key_off_degrad
239     &     *facvol(ji,jj,jk)
240#    endif
241C
242             END DO
243           END DO
244         END DO
245C
246#endif
247      RETURN
248      END
249
Note: See TracBrowser for help on using the repository browser.