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

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