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

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

nemo_v1_update_027 : CE + RB + CT : update of SMS routines

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