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

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

CL + CE : NEMO TRC_SRC start

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 6.1 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 ======================
34      USE oce_trc
35      USE trp_trc
36      USE sms
37      IMPLICIT NONE
38CC----------------------------------------------------------------------
39CC local declarations
40CC ==================
41      INTEGER ji, jj, jk, ikt
42      REAL sumsedsi,sumsedpo4,sumsedcal
43      REAL xconctmp,denitot,nitrpottot,nitrpot(jpi,jpj)
44
45CC
46CC----------------------------------------------------------------------
47CC statement functions
48CC ===================
49CDIR$ NOLIST
50#include "domzgr_substitute.h90"
51CDIR$ LIST
52C
53C
54C     Initialisation of variables used to compute Sinking Speed
55C     ---------------------------------------------------------
56C
57        sumsedsi = 0.
58        sumsedpo4 = 0.
59        sumsedcal = 0.
60C
61C    Loss of biogenic silicon, Caco3 organic carbon in the sediments. 
62C    First, the total loss is computed.
63C    The factor for calcite comes from the alkalinity effect
64C    -------------------------------------------------------------
65C
66        DO jj=2,jpjm1
67          DO ji=2,jpim1
68        ikt=max(mbathy(ji,jj)-1,1)
69        sumsedsi=sumsedsi+trn(ji,jj,ikt,jpdsi)*e1t(ji,jj)
70     &    *e2t(ji,jj)*wsbio4(ji,jj,ikt)/rjjss
71        sumsedcal=sumsedcal+trn(ji,jj,ikt,jpcal)*e1t(ji,jj)
72     &    *e2t(ji,jj)*wsbio4(ji,jj,ikt)*2./rjjss
73        sumsedpo4=sumsedpo4+(trn(ji,jj,ikt,jpgoc)*wsbio4(ji,jj,ikt)
74     &    +trn(ji,jj,ikt,jppoc)*wsbio3(ji,jj,ikt))/rjjss
75     &    *e1t(ji,jj)*e2t(ji,jj)
76          END DO
77        END DO
78
79C
80C    Then this loss is scaled at each bottom grid cell for
81C    equilibrating the total budget of silica in the ocean.
82C    Thus, the amount of silica lost in the sediments equal
83C    the supply at the surface (dust+rivers)
84C    ------------------------------------------------------
85C
86        DO jj=1,jpj
87          DO ji=1,jpi
88        ikt=max(mbathy(ji,jj)-1,1)
89        xconctmp=trn(ji,jj,ikt,jpdsi)
90        trn(ji,jj,ikt,jpdsi)=trn(ji,jj,ikt,jpdsi)
91     &    -xconctmp*wsbio4(ji,jj,ikt)
92     &    *rfact2/rjjss/fse3t(ji,jj,ikt)
93        trn(ji,jj,ikt,jpsil)=trn(ji,jj,ikt,jpsil)
94     &    +xconctmp*wsbio4(ji,jj,ikt)
95     &    *rfact2/rjjss/fse3t(ji,jj,ikt)*(1.-(sumdepsi+rivalkinput
96     &    /raass/6.)/sumsedsi)
97          END DO
98        END DO
99
100        DO jj=1,jpj
101          DO ji=1,jpi
102        ikt=max(mbathy(ji,jj),1)
103        xconctmp=trn(ji,jj,ikt,jpcal)
104        trn(ji,jj,ikt,jpcal)=trn(ji,jj,ikt,jpcal)
105     &    -xconctmp*wsbio4(ji,jj,ikt)
106     &    *rfact2/rjjss/fse3t(ji,jj,ikt)
107        trn(ji,jj,ikt,jptal)=trn(ji,jj,ikt,jptal)
108     &    +xconctmp*wsbio4(ji,jj,ikt)
109     &    *rfact2/rjjss/fse3t(ji,jj,ikt)*(1.-(rivalkinput
110     &    /raass)/sumsedcal)*2.
111        trn(ji,jj,ikt,jpdic)=trn(ji,jj,ikt,jpdic)
112     &    +xconctmp*wsbio4(ji,jj,ikt)
113     &    *rfact2/rjjss/fse3t(ji,jj,ikt)*(1.-(rivalkinput
114     &    /raass)/sumsedcal)
115         END DO
116       END DO
117
118        DO jj=1,jpj
119          DO ji=1,jpi
120        ikt=max(mbathy(ji,jj),1)
121        trn(ji,jj,ikt,jpgoc)=trn(ji,jj,ikt,jpgoc)
122     &    -trn(ji,jj,ikt,jpgoc)*wsbio4(ji,jj,ikt)*rfact2
123     &    /fse3t(ji,jj,ikt)/rjjss*rivpo4input/(raass*sumsedpo4)
124        trn(ji,jj,ikt,jppoc)=trn(ji,jj,ikt,jppoc)
125     &    -trn(ji,jj,ikt,jppoc)*wsbio3(ji,jj,ikt)*rfact2
126     &    /fse3t(ji,jj,ikt)/rjjss*rivpo4input/(raass*sumsedpo4)
127        trn(ji,jj,ikt,jpbfe)=trn(ji,jj,ikt,jpbfe)
128     &    -trn(ji,jj,ikt,jpbfe)*wsbio4(ji,jj,ikt)*rfact2
129     &    /fse3t(ji,jj,ikt)/rjjss*rivpo4input/(raass*sumsedpo4)
130        trn(ji,jj,ikt,jpsfe)=trn(ji,jj,ikt,jpsfe)
131     &    -trn(ji,jj,ikt,jpsfe)*wsbio3(ji,jj,ikt)*rfact2
132     &    /fse3t(ji,jj,ikt)/rjjss*rivpo4input/(raass*sumsedpo4)
133          END DO
134        END DO
135
136C
137C  Nitrogen fixation (simple parameterization). The total gain
138C  from nitrogen fixation is scaled to balance the loss by 
139C  denitrification
140C  -------------------------------------------------------------
141C
142        denitot=0.
143        DO jk=1,jpk-1
144          DO jj=2,jpj-1
145            DO ji=2,jpi-1
146        denitot=denitot+denitr(ji,jj,jk)*rdenit*e1t(ji,jj)*e2t(ji,jj)
147     &    *fse3t(ji,jj,jk)*tmask(ji,jj,jk)
148            END DO
149          END DO
150        END DO
151C
152C  Potential nitrogen fication dependant on temperature
153C  and iron
154C  ----------------------------------------------------
155C
156        nitrpot(:,:)= 0.
157        nitrpottot=0.
158        DO jj=2,jpj-1
159          DO ji=2,jpi-1
160        nitrpot(ji,jj)=prmax(ji,jj,1)*max(0.,(0.1*tn(ji,jj,1)
161     &    -2.))*conc0/(trn(ji,jj,1,jpno3)+conc0)*rfact2
162     &    *trn(ji,jj,1,jpfer)/(conc3+trn(ji,jj,1,jpfer))
163     &    *trn(ji,jj,1,jppo4)/(conc0+trn(ji,jj,1,jppo4))
164        nitrpottot=nitrpottot+nitrpot(ji,jj)*e1t(ji,jj)
165     &    *e2t(ji,jj)*tmask(ji,jj,1)*fse3t(ji,jj,1)
166          END DO
167        END DO
168C
169C  Nitrogen change due to nitrogen fixation
170C  ----------------------------------------
171C
172 
173
174        DO jj=1,jpj
175          DO ji=1,jpi
176        trn(ji,jj,1,jpnh4)=trn(ji,jj,1,jpnh4)+nitrpot(ji,jj)
177     &    *(denitot-rivnitinput/raass*rfact2)/(nitrpottot+rtrn)
178        trn(ji,jj,1,jpoxy)=trn(ji,jj,1,jpoxy)+nitrpot(ji,jj)
179     &    *(denitot-rivnitinput/raass*rfact2)/(nitrpottot+rtrn)
180     &    *o2nit
181          END DO
182        END DO
183 
184
185C
186#    if defined key_trc_diaadd
187        DO jj = 1,jpj
188          DO ji = 1,jpi
189        trc2d(ji,jj,13) = nitrpot(ji,jj)
190     &    *(denitot-rivnitinput/raass*rfact2)/(nitrpottot+rtrn)
191     &    /rfact2*fse3t(ji,jj,1)
192          END DO
193        END DO
194#    endif
195C
196#endif
197      RETURN
198      END
199
Note: See TracBrowser for help on using the repository browser.