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 trunk/NEMO/TOP_SRC/SMS – NEMO

source: trunk/NEMO/TOP_SRC/SMS/p4zsed.F @ 491

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

nemo_v1_update_028 : CT : add missing headers

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