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

source: tags/nemo_v1_04/NEMO/TOP_SRC/SMS/p4zsed.F @ 280

Last change on this file since 280 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: 6.9 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 p4zsed
7#if defined key_passivetrc && defined key_trc_pisces
8CCC---------------------------------------------------------------------
9CCC
10CCC          ROUTINE p4zsed : PISCES MODEL
11CCC          *****************************
12CCC
13CCC  PURPOSE :
14CCC  ---------
15CCC         Compute loss of organic matter in the sediments. This
16CCC         is by no way a sediment model. The loss is simply 
17CCC         computed to balance the inout from rivers and dust
18CCC
19CC   INPUT :
20CC   -----
21CC      common
22CC              all the common defined in opa
23CC
24CC
25CC   OUTPUT :                   : no
26CC   ------
27CC
28CC   EXTERNAL :
29CC   --------
30CC             None
31CC
32CC   MODIFICATIONS:
33CC   --------------
34CC      original  : 2004 - O. Aumont 
35CC----------------------------------------------------------------------
36CC parameters and commons
37CC ======================
38      USE oce_trc
39      USE trp_trc
40      USE sms
41      USE lib_mpp
42      IMPLICIT NONE
43CC----------------------------------------------------------------------
44CC local declarations
45CC ==================
46      INTEGER ji, jj, jk, ikt
47      REAL sumsedsi,sumsedpo4,sumsedcal
48      REAL xconctmp,denitot,nitrpottot,nitrpot(jpi,jpj)
49
50CC
51CC----------------------------------------------------------------------
52CC statement functions
53CC ===================
54CDIR$ NOLIST
55#include "domzgr_substitute.h90"
56CDIR$ LIST
57C
58C
59C     Initialisation of variables used to compute Sinking Speed
60C     ---------------------------------------------------------
61C
62        sumsedsi = 0.
63        sumsedpo4 = 0.
64        sumsedcal = 0.
65C
66C    Loss of biogenic silicon, Caco3 organic carbon in the sediments. 
67C    First, the total loss is computed.
68C    The factor for calcite comes from the alkalinity effect
69C    -------------------------------------------------------------
70C
71        DO jj=2,jpjm1
72          DO ji=2,jpim1
73        ikt=max(mbathy(ji,jj)-1,1)
74        sumsedsi=sumsedsi+trn(ji,jj,ikt,jpdsi)*e1t(ji,jj)
75     &    *e2t(ji,jj)*wsbio4(ji,jj,ikt)*tmask(ji,jj,ikt)
76     &    *tmask_i(ji,jj)/rjjss
77        sumsedcal=sumsedcal+trn(ji,jj,ikt,jpcal)*e1t(ji,jj)
78     &    *e2t(ji,jj)*wsbio4(ji,jj,ikt)*tmask(ji,jj,ikt)*2.
79     &    *tmask_i(ji,jj)/rjjss
80        sumsedpo4=sumsedpo4+(trn(ji,jj,ikt,jpgoc)*wsbio4(ji,jj,ikt)
81     &    +trn(ji,jj,ikt,jppoc)*wsbio3(ji,jj,ikt))/rjjss
82     &    *tmask(ji,jj,ikt)*tmask_i(ji,jj)*e1t(ji,jj)*e2t(ji,jj)
83          END DO
84        END DO
85
86         IF( lk_mpp ) THEN
87            CALL mpp_sum( sumsedsi )   ! sums over the global domain
88            CALL mpp_sum( sumsedcal )   ! sums over the global domain
89            CALL mpp_sum( sumsedpo4 )   ! sums over the global domain
90         ENDIF
91C
92C    Then this loss is scaled at each bottom grid cell for
93C    equilibrating the total budget of silica in the ocean.
94C    Thus, the amount of silica lost in the sediments equal
95C    the supply at the surface (dust+rivers)
96C    ------------------------------------------------------
97C
98        DO jj=1,jpj
99          DO ji=1,jpi
100        ikt=max(mbathy(ji,jj)-1,1)
101        xconctmp=trn(ji,jj,ikt,jpdsi)
102        trn(ji,jj,ikt,jpdsi)=trn(ji,jj,ikt,jpdsi)
103     &    -xconctmp*wsbio4(ji,jj,ikt)
104     &    *rfact2/rjjss/fse3t(ji,jj,ikt)
105        trn(ji,jj,ikt,jpsil)=trn(ji,jj,ikt,jpsil)
106     &    +xconctmp*wsbio4(ji,jj,ikt)
107     &    *rfact2/rjjss/fse3t(ji,jj,ikt)*(1.-(sumdepsi+rivalkinput
108     &    /raass/6.)/sumsedsi)
109          END DO
110        END DO
111
112        DO jj=1,jpj
113          DO ji=1,jpi
114        ikt=max(mbathy(ji,jj)-1,1)
115        xconctmp=trn(ji,jj,ikt,jpcal)
116        trn(ji,jj,ikt,jpcal)=trn(ji,jj,ikt,jpcal)
117     &    -xconctmp*wsbio4(ji,jj,ikt)
118     &    *rfact2/rjjss/fse3t(ji,jj,ikt)
119        trn(ji,jj,ikt,jptal)=trn(ji,jj,ikt,jptal)
120     &    +xconctmp*wsbio4(ji,jj,ikt)
121     &    *rfact2/rjjss/fse3t(ji,jj,ikt)*(1.-(rivalkinput
122     &    /raass)/sumsedcal)*2.
123        trn(ji,jj,ikt,jpdic)=trn(ji,jj,ikt,jpdic)
124     &    +xconctmp*wsbio4(ji,jj,ikt)
125     &    *rfact2/rjjss/fse3t(ji,jj,ikt)*(1.-(rivalkinput
126     &    /raass)/sumsedcal)
127         END DO
128       END DO
129
130        DO jj=1,jpj
131          DO ji=1,jpi
132        ikt=max(mbathy(ji,jj)-1,1)
133        trn(ji,jj,ikt,jpgoc)=trn(ji,jj,ikt,jpgoc)
134     &    -trn(ji,jj,ikt,jpgoc)*wsbio4(ji,jj,ikt)*rfact2
135     &    /fse3t(ji,jj,ikt)/rjjss*rivpo4input/(raass*sumsedpo4)
136        trn(ji,jj,ikt,jppoc)=trn(ji,jj,ikt,jppoc)
137     &    -trn(ji,jj,ikt,jppoc)*wsbio3(ji,jj,ikt)*rfact2
138     &    /fse3t(ji,jj,ikt)/rjjss*rivpo4input/(raass*sumsedpo4)
139        trn(ji,jj,ikt,jpbfe)=trn(ji,jj,ikt,jpbfe)
140     &    -trn(ji,jj,ikt,jpbfe)*wsbio4(ji,jj,ikt)*rfact2
141     &    /fse3t(ji,jj,ikt)/rjjss*rivpo4input/(raass*sumsedpo4)
142        trn(ji,jj,ikt,jpsfe)=trn(ji,jj,ikt,jpsfe)
143     &    -trn(ji,jj,ikt,jpsfe)*wsbio3(ji,jj,ikt)*rfact2
144     &    /fse3t(ji,jj,ikt)/rjjss*rivpo4input/(raass*sumsedpo4)
145          END DO
146        END DO
147C
148C  Nitrogen fixation (simple parameterization). The total gain
149C  from nitrogen fixation is scaled to balance the loss by 
150C  denitrification
151C  -------------------------------------------------------------
152C
153        denitot=0.
154        DO jk=1,jpk-1
155          DO jj=1,jpj
156            DO ji=1,jpi
157        denitot=denitot+denitr(ji,jj,jk)*rdenit*e1t(ji,jj)*e2t(ji,jj)
158     &    *fse3t(ji,jj,jk)*tmask(ji,jj,jk)*tmask_i(ji,jj)
159            END DO
160          END DO
161        END DO
162       
163        IF( lk_mpp )   CALL mpp_sum( denitot )  ! sum over the global domain
164C
165C  Potential nitrogen fication dependant on temperature
166C  and iron
167C  ----------------------------------------------------
168C
169        nitrpot(:,:)= 0.
170        nitrpottot=0.
171        DO jj=1,jpj
172          DO ji=1,jpi
173        nitrpot(ji,jj)=prmax(ji,jj,1)*max(0.,(0.1*tn(ji,jj,1)
174     &    -2.))*conc0/(trn(ji,jj,1,jpno3)+conc0)*rfact2
175     &    *trn(ji,jj,1,jpfer)/(conc3+trn(ji,jj,1,jpfer))
176     &    *trn(ji,jj,1,jppo4)/(conc0+trn(ji,jj,1,jppo4))
177        nitrpottot=nitrpottot+nitrpot(ji,jj)*e1t(ji,jj)
178     &    *e2t(ji,jj)*tmask_i(ji,jj)*fse3t(ji,jj,1)
179          END DO
180        END DO
181C
182        IF( lk_mpp )   CALL mpp_sum( nitrpottot )  ! sum over the global domain
183C
184C  Nitrogen change due to nitrogen fixation
185C  ----------------------------------------
186C
187 
188
189        DO jj=1,jpj
190          DO ji=1,jpi
191        trn(ji,jj,1,jpnh4)=trn(ji,jj,1,jpnh4)+nitrpot(ji,jj)
192     &    *(denitot-rivnitinput/raass*rfact2)/(nitrpottot+rtrn)
193        trn(ji,jj,1,jpoxy)=trn(ji,jj,1,jpoxy)+nitrpot(ji,jj)
194     &    *(denitot-rivnitinput/raass*rfact2)/(nitrpottot+rtrn)
195     &    *o2nit
196          END DO
197        END DO
198 
199
200C
201#    if defined key_trc_diaadd
202        DO jj = 1,jpj
203          DO ji = 1,jpi
204        trc2d(ji,jj,13) = nitrpot(ji,jj)
205     &    *(denitot-rivnitinput/raass*rfact2)/(nitrpottot+rtrn)
206     &    /rfact2*fse3t(ji,jj,1)
207          END DO
208        END DO
209#    endif
210C
211#endif
212      RETURN
213      END
Note: See TracBrowser for help on using the repository browser.