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.
p4zsed.F in tags/nemo_v1_13_dev5/NEMO/TOP_SRC/SMS – NEMO

source: tags/nemo_v1_13_dev5/NEMO/TOP_SRC/SMS/p4zsed.F @ 9087

Last change on this file since 9087 was 502, checked in by opalod, 18 years ago

nemo_v1_update_069:CE:add a correction factor for degradation

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 9.1 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 p4zsed
8#if defined key_passivetrc && defined key_trc_pisces
9CCC---------------------------------------------------------------------
10CCC
11CCC          ROUTINE p4zsed : PISCES MODEL
12CCC          *****************************
13CCC
14CCC  PURPOSE :
15CCC  ---------
16CCC         Compute loss of organic matter in the sediments. This
17CCC         is by no way a sediment model. The loss is simply 
18CCC         computed to balance the inout from rivers and dust
19CCC
20CC   INPUT :
21CC   -----
22CC      common
23CC              all the common defined in opa
24CC
25CC
26CC   OUTPUT :                   : no
27CC   ------
28CC
29CC   EXTERNAL :
30CC   --------
31CC             None
32CC
33CC   MODIFICATIONS:
34CC   --------------
35CC      original  : 2004 - O. Aumont 
36CC----------------------------------------------------------------------
37CC parameters and commons
38CC ======================
39CDIR$ NOLIST
40      USE oce_trc
41      USE trp_trc
42      USE sms
43      USE lib_mpp
44      IMPLICIT NONE
45#include "domzgr_substitute.h90"
46CDIR$ LIST
47CC----------------------------------------------------------------------
48CC local declarations
49CC ==================
50      INTEGER ji, jj, jk, ikt
51      REAL sumsedsi,sumsedpo4,sumsedcal
52      REAL xconctmp,denitot,nitrpottot,nitrpot(jpi,jpj,jpk)
53      REAL xlim,xconctmp2,zstep,zfact
54      REAL irondep(jpi,jpj,jpk),sidep(jpi,jpj)
55      REAL zvol
56CC
57C
58C     Time step duration for the biology
59C     ----------------------------------
60C
61        zstep=rfact2/rjjss
62C
63C
64C     Initialisation of variables used to compute deposition
65C     ------------------------------------------------------
66C
67      irondep     = 0.
68      sidep       = 0.
69C
70C     Iron and Si deposition at the surface
71C     -------------------------------------
72C
73       do jj=1,jpj
74         do ji=1,jpi
75         irondep(ji,jj,1)=(0.014*dust(ji,jj)/(55.85*rmoss)
76     &      +3E-10/raass)*rfact2/fse3t(ji,jj,1)
77         sidep(ji,jj)=8.8*0.075*dust(ji,jj)*rfact2
78     &      /(fse3t(ji,jj,1)*28.1*rmoss)
79         end do
80       end do
81C
82C     Iron solubilization of particles in the water column
83C     ----------------------------------------------------
84C
85      do jk=2,jpk-1
86        do jj=1,jpj
87          do ji=1,jpi
88          irondep(ji,jj,jk)=dust(ji,jj)/(10.*55.85*rmoss)*rfact2
89     &      *0.0001
90          end do
91        end do
92      end do
93C
94C    Add the external input of nutrients, carbon and alkalinity
95C    ----------------------------------------------------------
96C
97        DO jj = 1,jpj
98          DO ji = 1,jpi
99          trn(ji,jj,1,jppo4) = trn(ji,jj,1,jppo4)
100     &      +rivinp(ji,jj)*rfact2
101          trn(ji,jj,1,jpno3) = trn(ji,jj,1,jpno3)
102     &      +(rivinp(ji,jj)+nitdep(ji,jj))*rfact2
103          trn(ji,jj,1,jpfer) = trn(ji,jj,1,jpfer)
104     &      +rivinp(ji,jj)*9E-5*rfact2
105          trn(ji,jj,1,jpsil) = trn(ji,jj,1,jpsil)
106     &      +sidep(ji,jj)+cotdep(ji,jj)*rfact2/6.
107          trn(ji,jj,1,jpdic) = trn(ji,jj,1,jpdic)
108     &      +rivinp(ji,jj)*rfact2*2.631
109          trn(ji,jj,1,jptal) = trn(ji,jj,1,jptal)
110     &      +(cotdep(ji,jj)-rno3*(rivinp(ji,jj)
111     &      +nitdep(ji,jj)))*rfact2
112          END DO
113        END DO
114C
115
116C
117C     Add the external input of iron which is 3D distributed
118C     (dust, river and sediment mobilization)
119C     ------------------------------------------------------
120C
121        DO jk=1,jpkm1
122          DO jj=1,jpj
123            DO ji=1,jpi
124          trn(ji,jj,jk,jpfer) = trn(ji,jj,jk,jpfer)
125     &      +irondep(ji,jj,jk)+ironsed(ji,jj,jk)*rfact2
126            END DO
127          END DO
128        END DO
129C
130C     Initialisation of variables used to compute Sinking Speed
131C     ---------------------------------------------------------
132C
133        sumsedsi = 0.
134        sumsedpo4 = 0.
135        sumsedcal = 0.
136C
137C    Loss of biogenic silicon, Caco3 organic carbon in the sediments. 
138C    First, the total loss is computed.
139C    The factor for calcite comes from the alkalinity effect
140C    -------------------------------------------------------------
141C
142        DO jj=2,jpjm1
143          DO ji=2,jpim1
144        ikt=max(mbathy(ji,jj)-1,1)
145        zfact=e1t(ji,jj)*e2t(ji,jj)/rjjss
146        sumsedsi=sumsedsi+trn(ji,jj,ikt,jpdsi)*wsbio4(ji,jj,ikt)
147     &    *zfact
148        sumsedcal=sumsedcal+trn(ji,jj,ikt,jpcal)*wscal(ji,jj,ikt)
149     &    *2.*zfact
150        sumsedpo4=sumsedpo4+(trn(ji,jj,ikt,jpgoc)*wsbio4(ji,jj,ikt)
151     &    +trn(ji,jj,ikt,jppoc)*wsbio3(ji,jj,ikt))*zfact
152          END DO
153        END DO
154
155         IF( lk_mpp ) THEN
156            CALL mpp_sum( sumsedsi )   ! sums over the global domain
157            CALL mpp_sum( sumsedcal )   ! sums over the global domain
158            CALL mpp_sum( sumsedpo4 )   ! sums over the global domain
159         ENDIF
160C
161C    Then this loss is scaled at each bottom grid cell for
162C    equilibrating the total budget of silica in the ocean.
163C    Thus, the amount of silica lost in the sediments equal
164C    the supply at the surface (dust+rivers)
165C    ------------------------------------------------------
166C
167        DO jj=1,jpj
168          DO ji=1,jpi
169        ikt=max(mbathy(ji,jj)-1,1)
170        xconctmp=trn(ji,jj,ikt,jpdsi)*wsbio4(ji,jj,ikt)*zstep
171     &    /fse3t(ji,jj,ikt)
172        trn(ji,jj,ikt,jpdsi)=trn(ji,jj,ikt,jpdsi)-xconctmp
173        trn(ji,jj,ikt,jpsil)=trn(ji,jj,ikt,jpsil)+xconctmp
174     &    *(1.-(sumdepsi+rivalkinput/raass/6.)/sumsedsi)
175          END DO
176        END DO
177
178        DO jj=1,jpj
179          DO ji=1,jpi
180        ikt=max(mbathy(ji,jj)-1,1)
181        xconctmp=trn(ji,jj,ikt,jpcal)*wscal(ji,jj,ikt)*zstep
182     &    /fse3t(ji,jj,ikt)
183        trn(ji,jj,ikt,jpcal)=trn(ji,jj,ikt,jpcal)-xconctmp
184        trn(ji,jj,ikt,jptal)=trn(ji,jj,ikt,jptal)+xconctmp
185     &    *(1.-(rivalkinput/raass)/sumsedcal)*2.
186        trn(ji,jj,ikt,jpdic)=trn(ji,jj,ikt,jpdic)+xconctmp
187     &    *(1.-(rivalkinput/raass)/sumsedcal)
188         END DO
189       END DO
190
191        DO jj=1,jpj
192          DO ji=1,jpi
193        ikt=max(mbathy(ji,jj)-1,1)
194        xconctmp=trn(ji,jj,ikt,jpgoc)
195        xconctmp2=trn(ji,jj,ikt,jppoc)
196        trn(ji,jj,ikt,jpgoc)=trn(ji,jj,ikt,jpgoc)
197     &    -xconctmp*wsbio4(ji,jj,ikt)*zstep/fse3t(ji,jj,ikt)
198        trn(ji,jj,ikt,jppoc)=trn(ji,jj,ikt,jppoc)
199     &    -xconctmp2*wsbio3(ji,jj,ikt)*zstep/fse3t(ji,jj,ikt)
200        trn(ji,jj,ikt,jpdoc)=trn(ji,jj,ikt,jpdoc)
201     &    +(xconctmp*wsbio4(ji,jj,ikt)+xconctmp2*wsbio3(ji,jj,ikt))
202     &    *zstep/fse3t(ji,jj,ikt)*(1.-rivpo4input
203     &    /(raass*sumsedpo4))
204        trn(ji,jj,ikt,jpbfe)=trn(ji,jj,ikt,jpbfe)
205     &    -trn(ji,jj,ikt,jpbfe)*wsbio4(ji,jj,ikt)*zstep
206     &    /fse3t(ji,jj,ikt)
207        trn(ji,jj,ikt,jpsfe)=trn(ji,jj,ikt,jpsfe)
208     &    -trn(ji,jj,ikt,jpsfe)*wsbio3(ji,jj,ikt)*zstep
209     &    /fse3t(ji,jj,ikt)
210          END DO
211        END DO
212C
213C  Nitrogen fixation (simple parameterization). The total gain
214C  from nitrogen fixation is scaled to balance the loss by 
215C  denitrification
216C  -------------------------------------------------------------
217C
218        denitot=0.
219        DO jk=1,jpk-1
220          DO jj=2,jpj-1
221            DO ji=2,jpi-1
222        denitot=denitot+denitr(ji,jj,jk)*rdenit*e1t(ji,jj)*e2t(ji,jj)
223     &    *fse3t(ji,jj,jk)*tmask(ji,jj,jk)*znegtr(ji,jj,jk)
224            END DO
225          END DO
226        END DO
227
228        IF( lk_mpp )   CALL mpp_sum( denitot )  ! sum over the global domain
229C
230C  Potential nitrogen fication dependant on temperature
231C  and iron
232C  ----------------------------------------------------
233C
234       DO jk=1,jpk
235        DO jj=1,jpj
236          DO ji=1,jpi
237        xlim=(1.-xnanono3(ji,jj,jk)-xnanonh4(ji,jj,jk))
238        if (xlim.le.0.2) xlim=0.01
239        nitrpot(ji,jj,jk)=max(0.,(0.6*tgfunc(ji,jj,jk)-2.15)/rjjss)
240#if defined key_off_degrad
241     &    *facvol(ji,jj,jk)
242#endif
243     &    *xlim*rfact2*trn(ji,jj,jk,jpfer)/(conc3
244     &    +trn(ji,jj,jk,jpfer))*(1.-exp(-etot(ji,jj,jk)/50.))
245          END DO
246        END DO
247       END DO
248C
249      nitrpottot=0.
250      DO jk=1,jpkm1
251        DO jj=2,jpj-1
252          DO ji=2,jpi-1
253        nitrpottot=nitrpottot+nitrpot(ji,jj,jk)*e1t(ji,jj)
254     &    *e2t(ji,jj)*tmask(ji,jj,jk)*fse3t(ji,jj,jk)
255          END DO
256        END DO
257      END DO
258
259        IF( lk_mpp )   CALL mpp_sum( nitrpottot )  ! sum over the global domain
260C
261C  Nitrogen change due to nitrogen fixation
262C  ----------------------------------------
263C
264       DO jk=1,jpk
265        DO jj=1,jpj
266          DO ji=1,jpi
267#if ! defined key_cfg_1d && ( defined key_orca_r4 || defined key_orca_r2 || defined key_orca_r05 || defined key_orca_r025 )
268        zfact=nitrpot(ji,jj,jk)*denitot/nitrpottot
269#else
270        zfact=nitrpot(ji,jj,jk)*1.E-7
271#endif
272        trn(ji,jj,jk,jpnh4)=trn(ji,jj,jk,jpnh4)+zfact
273        trn(ji,jj,jk,jpoxy)=trn(ji,jj,jk,jpoxy)+zfact*o2nit
274        trn(ji,jj,jk,jppo4)=trn(ji,jj,jk,jppo4)+30./46.*zfact
275          END DO
276        END DO
277       END DO
278C
279#    if defined key_trc_diaadd
280        DO jj = 1,jpj
281          DO ji = 1,jpi
282        trc2d(ji,jj,13) = nitrpot(ji,jj,1)*1E-7*fse3t(ji,jj,1)*1E3
283     &    /rfact2
284        trc2d(ji,jj,12) = irondep(ji,jj,1)*1e3*rfact2r
285     &    *fse3t(ji,jj,1)
286          END DO
287        END DO
288#    endif
289C
290#endif
291      RETURN
292      END
Note: See TracBrowser for help on using the repository browser.