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

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

CL : Add CVS Header and CeCILL licence information

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 6.3 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 ======================
39      USE oce_trc
40      USE trp_trc
41      USE sms
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)/rjjss
76        sumsedcal=sumsedcal+trn(ji,jj,ikt,jpcal)*e1t(ji,jj)
77     &    *e2t(ji,jj)*wsbio4(ji,jj,ikt)*2./rjjss
78        sumsedpo4=sumsedpo4+(trn(ji,jj,ikt,jpgoc)*wsbio4(ji,jj,ikt)
79     &    +trn(ji,jj,ikt,jppoc)*wsbio3(ji,jj,ikt))/rjjss
80     &    *e1t(ji,jj)*e2t(ji,jj)
81          END DO
82        END DO
83
84C
85C    Then this loss is scaled at each bottom grid cell for
86C    equilibrating the total budget of silica in the ocean.
87C    Thus, the amount of silica lost in the sediments equal
88C    the supply at the surface (dust+rivers)
89C    ------------------------------------------------------
90C
91        DO jj=1,jpj
92          DO ji=1,jpi
93        ikt=max(mbathy(ji,jj)-1,1)
94        xconctmp=trn(ji,jj,ikt,jpdsi)
95        trn(ji,jj,ikt,jpdsi)=trn(ji,jj,ikt,jpdsi)
96     &    -xconctmp*wsbio4(ji,jj,ikt)
97     &    *rfact2/rjjss/fse3t(ji,jj,ikt)
98        trn(ji,jj,ikt,jpsil)=trn(ji,jj,ikt,jpsil)
99     &    +xconctmp*wsbio4(ji,jj,ikt)
100     &    *rfact2/rjjss/fse3t(ji,jj,ikt)*(1.-(sumdepsi+rivalkinput
101     &    /raass/6.)/sumsedsi)
102          END DO
103        END DO
104
105        DO jj=1,jpj
106          DO ji=1,jpi
107        ikt=max(mbathy(ji,jj),1)
108        xconctmp=trn(ji,jj,ikt,jpcal)
109        trn(ji,jj,ikt,jpcal)=trn(ji,jj,ikt,jpcal)
110     &    -xconctmp*wsbio4(ji,jj,ikt)
111     &    *rfact2/rjjss/fse3t(ji,jj,ikt)
112        trn(ji,jj,ikt,jptal)=trn(ji,jj,ikt,jptal)
113     &    +xconctmp*wsbio4(ji,jj,ikt)
114     &    *rfact2/rjjss/fse3t(ji,jj,ikt)*(1.-(rivalkinput
115     &    /raass)/sumsedcal)*2.
116        trn(ji,jj,ikt,jpdic)=trn(ji,jj,ikt,jpdic)
117     &    +xconctmp*wsbio4(ji,jj,ikt)
118     &    *rfact2/rjjss/fse3t(ji,jj,ikt)*(1.-(rivalkinput
119     &    /raass)/sumsedcal)
120         END DO
121       END DO
122
123        DO jj=1,jpj
124          DO ji=1,jpi
125        ikt=max(mbathy(ji,jj),1)
126        trn(ji,jj,ikt,jpgoc)=trn(ji,jj,ikt,jpgoc)
127     &    -trn(ji,jj,ikt,jpgoc)*wsbio4(ji,jj,ikt)*rfact2
128     &    /fse3t(ji,jj,ikt)/rjjss*rivpo4input/(raass*sumsedpo4)
129        trn(ji,jj,ikt,jppoc)=trn(ji,jj,ikt,jppoc)
130     &    -trn(ji,jj,ikt,jppoc)*wsbio3(ji,jj,ikt)*rfact2
131     &    /fse3t(ji,jj,ikt)/rjjss*rivpo4input/(raass*sumsedpo4)
132        trn(ji,jj,ikt,jpbfe)=trn(ji,jj,ikt,jpbfe)
133     &    -trn(ji,jj,ikt,jpbfe)*wsbio4(ji,jj,ikt)*rfact2
134     &    /fse3t(ji,jj,ikt)/rjjss*rivpo4input/(raass*sumsedpo4)
135        trn(ji,jj,ikt,jpsfe)=trn(ji,jj,ikt,jpsfe)
136     &    -trn(ji,jj,ikt,jpsfe)*wsbio3(ji,jj,ikt)*rfact2
137     &    /fse3t(ji,jj,ikt)/rjjss*rivpo4input/(raass*sumsedpo4)
138          END DO
139        END DO
140
141C
142C  Nitrogen fixation (simple parameterization). The total gain
143C  from nitrogen fixation is scaled to balance the loss by 
144C  denitrification
145C  -------------------------------------------------------------
146C
147        denitot=0.
148        DO jk=1,jpk-1
149          DO jj=2,jpj-1
150            DO ji=2,jpi-1
151        denitot=denitot+denitr(ji,jj,jk)*rdenit*e1t(ji,jj)*e2t(ji,jj)
152     &    *fse3t(ji,jj,jk)*tmask(ji,jj,jk)
153            END DO
154          END DO
155        END DO
156C
157C  Potential nitrogen fication dependant on temperature
158C  and iron
159C  ----------------------------------------------------
160C
161        nitrpot(:,:)= 0.
162        nitrpottot=0.
163        DO jj=2,jpj-1
164          DO ji=2,jpi-1
165        nitrpot(ji,jj)=prmax(ji,jj,1)*max(0.,(0.1*tn(ji,jj,1)
166     &    -2.))*conc0/(trn(ji,jj,1,jpno3)+conc0)*rfact2
167     &    *trn(ji,jj,1,jpfer)/(conc3+trn(ji,jj,1,jpfer))
168     &    *trn(ji,jj,1,jppo4)/(conc0+trn(ji,jj,1,jppo4))
169        nitrpottot=nitrpottot+nitrpot(ji,jj)*e1t(ji,jj)
170     &    *e2t(ji,jj)*tmask(ji,jj,1)*fse3t(ji,jj,1)
171          END DO
172        END DO
173C
174C  Nitrogen change due to nitrogen fixation
175C  ----------------------------------------
176C
177 
178
179        DO jj=1,jpj
180          DO ji=1,jpi
181        trn(ji,jj,1,jpnh4)=trn(ji,jj,1,jpnh4)+nitrpot(ji,jj)
182     &    *(denitot-rivnitinput/raass*rfact2)/(nitrpottot+rtrn)
183        trn(ji,jj,1,jpoxy)=trn(ji,jj,1,jpoxy)+nitrpot(ji,jj)
184     &    *(denitot-rivnitinput/raass*rfact2)/(nitrpottot+rtrn)
185     &    *o2nit
186          END DO
187        END DO
188 
189
190C
191#    if defined key_trc_diaadd
192        DO jj = 1,jpj
193          DO ji = 1,jpi
194        trc2d(ji,jj,13) = nitrpot(ji,jj)
195     &    *(denitot-rivnitinput/raass*rfact2)/(nitrpottot+rtrn)
196     &    /rfact2*fse3t(ji,jj,1)
197          END DO
198        END DO
199#    endif
200C
201#endif
202      RETURN
203      END
204
Note: See TracBrowser for help on using the repository browser.