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.
h3cexp.F in trunk/NEMO/TOP_SRC/SMS – NEMO

source: trunk/NEMO/TOP_SRC/SMS/h3cexp.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:keywords set to Author Date Id Revision
File size: 7.8 KB
Line 
1CCC $Header$
2      SUBROUTINE h3cexp
3#if defined key_passivetrc && defined key_trc_hamocc3
4CCC---------------------------------------------------------------------
5CCC
6CCC                       ROUTINE h3cexp
7CCC                     ******************
8CCC
9CC
10CC     PURPOSE.
11CC     --------
12CC          *H3CEXP* MODELS EXPORT OF BIOGENIC MATTER (POC ''SOFT
13CC                   TISSUE'' AND CACO3 PARTICLES ''HARD PARTS'')
14CC                   AND ITS DISTRIBUTION IN WATER COLUMN
15CC
16CC     METHOD.
17CC     -------
18CC          IN THE SURFACE LAYER POC IS PRODUCED ACCORDING TO
19CC     NURTRIENTS AVAILABLE AND GROWTH CONDITIONS. NUTRIENT UPTAKE
20CC     KINETICS FOLLOW MICHAELIS-MENTON FORMULATION. PROPORTIONAL
21CC     TO THE AMOUNT OF ORGANIC MATTER, CACO3 HARD PARTS ARE PRODUCED.
22CC     THE TOTAL PARTICLE AMOUNT PRODUCED, IS DISTRIBUTED IN THE WATER
23CC     COLUMN BELOW THE SURFACE LAYER.
24CC
25CC     EXTERNALS.
26CC     ----------
27CC          NONE.
28CC
29CC     REFERENCE.
30CC     ----------
31CC
32CC          BACASTOW, R., AND E. MAIER-REIMER (1985)
33CC          CIRCULATION MODEL OF THE OCEAN CARBON CYCLE.
34CC          1. DESCRIPTION OF THE MODEL, PP. 224-232.
35CC          2. COMPARISON OF THE MODEL RESULTS WITH OBSERVATIONAL DATA,
36CC          PP. 233-240.
37CC          IN: "ATMOSPHERIC CARBON DIOXIDE - ITS SOURCES, SINKS, AND
38CC          GLOBAL tranSPORT", KANDERSTEG, 2 TO 6 SEPTEMBER 1985,
39CC          COMMISSION ON ATMOSPHERIC CHEMISTRY AND GLOBAL POLLUTION,
40CC          INTERNATIONAL ASSOCIATION OF METEOROLOGY AND ATMOSPHERIC
41c PHYSICS.
42CC
43CC   MODIFICATIONS:
44CC   --------------
45CC      original      : 1999    O. Aumont
46CC      modifications : 1999    C. Le Quere
47CC                    : 2001    O. Aumont
48CC                    : 01/03   O. Aumont,EK: add sediments 
49CC                              for calcite and silicate
50CC ---------------------------------------------------------------------
51c ------
52CC parameters and commons
53CC ======================
54CDIR$ NOLIST
55      USE oce_trc
56      USE trp_trc
57      USE sms
58      USE lbclnk
59      IMPLICIT NONE
60#include "domzgr_substitute.h90"
61CDIR$ LIST
62CC----------------------------------------------------------------------
63CC local declarations
64CC ==================
65C
66      INTEGER ji, jj, jk, zkbot(jpi,jpj)
67      REAL prcaca12(jpi,jpj),silpro12(jpi,jpj)
68      REAL silcri,sister
69      REAL zgeolsil, zgeolcal
70C
71      silcri = 4.e-4*rfact/(3600.*24.*30.5)
72      prcaca12 = 0.0
73      fbod = 0.0
74      silpro12 = 0.0
75C
76C VERTICAL DISTRIBUTION OF NEWLY PRODUCED BIOGENIC
77C CACO3 PARTICLES AND POC IN THE WATER COLUMN
78C (PARTS OF NEWLY FORMED MATTER REMAINING IN THE DIFFERENT
79C LAYERS IS DETERMINED BY DMIN3, DISC3 AS DEFINED IN common.passivetrc
80c .hamocc3.h
81C ----------------------------------------------------------------------
82c --------
83C
84      DO jk = 1,jpkb
85        DO jj = 1,jpj
86          DO ji = 1,jpi
87            prcaca12(ji,jj) = prcaca12(ji,jj)+
88     &          e3t(jk)*prcaca(ji,jj,jk)*tmask(ji,jj,jk)*rfactr
89            silpro12(ji,jj) = silpro12(ji,jj)+silpro(ji,jj,jk)*
90     &          tmask(ji,jj,jk)*e3t(jk)*rfactr
91          ENDDO
92        ENDDO
93      ENDDO
94
95C
96#    if defined key_trc_p3zd
97      DO jj = 1,jpj
98        DO ji = 1,jpi
99          fbod(ji,jj) = fbod(ji,jj)+(sinking(ji,jj,11)
100     $        +nu(ji,jj,11))*tmask(ji,jj,10)*rfactr
101        ENDDO
102      ENDDO
103#    else
104      DO jk = 1,jpkb
105        DO jj = 1,jpj
106          DO ji = 1,jpi
107            fbod(ji,jj) = fbod(ji,jj)+
108     &          e3t(jk)*prorca(ji,jj,jk)*tmask(ji,jj,jk)
109     &          *rfactr
110          ENDDO
111        ENDDO
112      ENDDO
113#    endif
114C
115#    if defined key_trc_diaadd
116      DO jj = 1,jpj
117        DO ji = 1,jpi
118          trc2d(ji,jj,5) = fbod(ji,jj)*1.e3
119          trc2d(ji,jj,6) = prcaca12(ji,jj)*1.e3
120          trc2d(ji,jj,7) = silpro12(ji,jj)*1.e3
121        ENDDO
122      ENDDO 
123#    endif
124C
125      DO jk = 1,jpk
126        DO jj = 1,jpj
127          DO ji = 1,jpi
128#    if defined key_trc_p3zd
129            trn(ji,jj,jk,jpcal) = trn(ji,jj,jk,jpcal)+disc3(ji,jj,jk)*
130     &          prcaca12(ji,jj)/e3t(jk)*rdt
131            trn(ji,jj,jk,jpsil) = trn(ji,jj,jk,jpsil)+silpro12(ji,jj)*
132     &          diss3(ji,jj,jk)*1./e3t(jk)*rdt
133CC          trn(ji,jj,jk,jpsil) = min(200.e-6,trn(ji,jj,jk,jpsil))
134#    else
135            tra(ji,jj,jk,jpcal) = tra(ji,jj,jk,jpcal)+disc3(ji,jj,jk)*
136     &                            prcaca12(ji,jj)/e3t(jk)
137            tra(ji,jj,jk,jpsil) = tra(ji,jj,jk,jpsil)+silpro12(ji,jj)*
138     &                            diss3(ji,jj,jk)*1./e3t(jk)
139CC          sister = max(0.,silpro12(ji,jj)*diss3(ji,jj,jk)-silcri)
140CC          tra(ji,jj,jk,jpsil) = tra(ji,jj,jk,jpsil)-
141CC   &                            sister/e3t(jk)*rfactr
142#    endif
143          ENDDO
144        ENDDO
145      ENDDO
146C
147      zkbot = jpk
148C
149      DO jk = 1,jpkm1
150        DO jj = 2,jpjm1
151          DO ji = 2,jpim1
152 
153             IF (tmask(ji,jj,jk).eq.1.and.
154     .           tmask(ji,jj,jk+1).eq.0) THEN
155C
156                  zkbot(ji,jj) = jk
157C
158              ENDIF
159
160             ENDDO
161         ENDDO
162      ENDDO
163C
164C
165C     Initialization
166      zgeolcal = 0.
167      zgeolsil = 0.
168
169C
170C     sedlam --> sedlam/100 for silicate and calcite
171C
172        DO jj = 2,jpjm1
173          DO ji = 2,jpim1
174
175#            if defined key_trc_p3zd
176             trn(ji,jj,zkbot(ji,jj),jpcal) =
177     .          trn(ji,jj,zkbot(ji,jj),jpcal) +
178     .               sedlam/100.
179     .               *sedcal(ji,jj)*rdt/fse3t(ji,jj,zkbot(ji,jj))
180             trn(ji,jj,zkbot(ji,jj),jpsil) =
181     .          trn(ji,jj,zkbot(ji,jj),jpsil) +
182     .               sedlam/100.
183     .               *sedsil(ji,jj)*rdt/fse3t(ji,jj,zkbot(ji,jj))
184#            elif defined key_trc_hamocc3 && ! defined key_trc_p3zd
185             tra(ji,jj,zkbot(ji,jj),jpcal) =
186     .          tra(ji,jj,zkbot(ji,jj),jpcal) +
187     .               sedlam/100.
188     .               *sedcal(ji,jj)/fse3t(ji,jj,zkbot(ji,jj))
189             tra(ji,jj,zkbot(ji,jj),jpsil) =
190     .          tra(ji,jj,zkbot(ji,jj),jpsil) +
191     .               sedlam/100.
192     .               *sedsil(ji,jj)/fse3t(ji,jj,zkbot(ji,jj))
193#            endif
194
195             zgeolcal = zgeolcal + sedlostcal*sedcal(ji,jj)*
196     .                             e1t(ji,jj)*e2t(ji,jj)
197             sedcal(ji,jj) = sedcal(ji,jj)  +
198     .                       discl(ji,jj)*prcaca12(ji,jj)*rdt -
199     .                       sedlam/100.*sedcal(ji,jj)*rdt -
200     .                       sedlostcal*sedcal(ji,jj)*rdt
201
202             zgeolsil = zgeolsil + sedlostsil*sedsil(ji,jj)*
203     .                             e1t(ji,jj)*e2t(ji,jj)
204             sedsil(ji,jj) = sedsil(ji,jj)  +
205     .                       dissl(ji,jj)*silpro12(ji,jj)*rdt -
206     .                       sedlam/100.*sedsil(ji,jj)*rdt - 
207     .                       sedlostsil*sedsil(ji,jj)*rdt
208
209C
210             ENDDO
211         ENDDO
212
213        DO jj = 2,jpjm1
214          DO ji = 2,jpim1
215
216#            if defined key_trc_p3zd
217             trn(ji,jj,1,jpcal) = trn(ji,jj,1,jpcal) + zgeolcal*rdt*
218     .                            cmask(ji,jj)/areacot/fse3t(ji,jj,1)
219             trn(ji,jj,1,jpsil) = trn(ji,jj,1,jpsil) + zgeolsil*rdt*
220     .                            cmask(ji,jj)/areacot/fse3t(ji,jj,1)
221#            elif defined key_trc_hamocc3 && ! defined key_trc_p3zd
222             tra(ji,jj,1,jpcal) = tra(ji,jj,1,jpcal) + zgeolcal*
223     .                            cmask(ji,jj)/areacot/fse3t(ji,jj,1)
224             tra(ji,jj,1,jpsil) = tra(ji,jj,1,jpsil) + zgeolsil*
225     .                            cmask(ji,jj)/areacot/fse3t(ji,jj,1)
226#            endif
227
228             ENDDO
229         ENDDO
230C
231         CALL lbc_lnk(sedcal,'T',1)
232         CALL lbc_lnk(sedsil,'T',1)
233
234C Oa & Ek: diagnostics depending on jpdia2d
235C          left as example
236#     if defined key_trc_diaadd
237           do jj=1,jpj
238             do ji=1,jpi
239              trc2d(ji,jj,12)=sedcal(ji,jj)
240              trc2d(ji,jj,13)=sedsil(ji,jj)
241             end do
242           end do
243#     endif
244
245#endif
246
247      RETURN
248      END
Note: See TracBrowser for help on using the repository browser.