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.
trcexp.F in tags/nemo_v1/NEMO/TOP_SRC/SMS – NEMO

source: tags/nemo_v1/NEMO/TOP_SRC/SMS/trcexp.F @ 252

Last change on this file since 252 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:keywords set to Author Date Id Revision
File size: 5.6 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 ---------------------------------------------------------------------------
6CCC $Header$ 
7      SUBROUTINE trcexp
8#if defined key_passivetrc 
9#if defined key_trc_npzd || defined key_trc_lobster1 || defined key_trc_hamocc3
10CCC---------------------------------------------------------------------
11CCC
12CCC                       ROUTINE trcexp
13CCC                     ******************
14CCC
15CC
16CC     PURPOSE.
17CC     --------
18CC          *TRCEXP* MODELS EXPORT OF BIOGENIC MATTER (POC ''SOFT
19CC                   TISSUE'') AND ITS DISTRIBUTION IN WATER COLUMN
20CC
21CC     METHOD.
22CC     -------
23CC          IN THE SURFACE LAYER POC IS PRODUCED ACCORDING TO
24CC     NURTRIENTS AVAILABLE AND GROWTH CONDITIONS. NUTRIENT UPTAKE
25CC     KINETICS FOLLOW MICHAELIS-MENTON FORMULATION. 
26CC     THE TOTAL PARTICLE AMOUNT PRODUCED, IS DISTRIBUTED IN THE WATER
27CC     COLUMN BELOW THE SURFACE LAYER.
28CC
29CC     EXTERNALS.
30CC     ----------
31CC          NONE.
32CC
33CC     REFERENCE.
34CC     ----------
35CC
36CC   MODIFICATIONS:
37CC   --------------
38CC      original      : 1999    O. Aumont
39CC      modifications : 1999    C. Le Quere
40CC      additions   : 01-05 (O. Aumont, E. Kestenare):
41CC                           add sediment computations
42CC ---------------------------------------------------------------------
43c ------
44CC parameters and commons
45CC ======================
46CDIR$ NOLIST
47      USE oce_trc
48      USE trp_trc
49      USE sms
50      USE lbclnk
51
52      IMPLICIT NONE
53CDIR$ LIST
54CC----------------------------------------------------------------------
55CC local declarations
56CC ==================
57C
58      INTEGER ji, jj, jk, zkbot(jpi,jpj)
59      REAL zwork(jpi,jpj), zgeolpoc
60CC----------------------------------------------------------------------
61CC statement functions
62CC ===================
63CDIR$ NOLIST
64#include "domzgr_substitute.h90"
65CDIR$ LIST
66C
67C VERTICAL DISTRIBUTION OF NEWLY PRODUCED BIOGENIC
68C POC IN THE WATER COLUMN
69C (PARTS OF NEWLY FORMED MATTER REMAINING IN THE DIFFERENT
70C LAYERS IS DETERMINED BY DMIN3 DEFINED IN common.passivetrc.*.h
71C ----------------------------------------------------------------------
72C
73C
74      DO jk = 1,jpkm1
75        DO jj = 2,jpjm1
76          DO ji = 2,jpim1
77#    if defined key_trc_p3zd
78            trn(ji,jj,jk,jppoc) = trn(ji,jj,jk,jppoc)+
79     &          (1./fse3t(ji,jj,jk))*rdt*
80     &          dmin3(ji,jj,jk) *fbod(ji,jj)
81#    elif defined key_trc_hamocc3 && ! defined key_trc_p3zd
82            tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc)+
83     &          (1./fse3t(ji,jj,jk))*
84     &          dmin3(ji,jj,jk) *fbod(ji,jj)
85#    else
86            tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3)+
87     &          (1./fse3t(ji,jj,jk))*
88     &          dmin3(ji,jj,jk) *fbod(ji,jj)
89#    endif
90          ENDDO
91        ENDDO
92      ENDDO
93C
94C     Find the last level of the water column
95C     Compute fluxes due to sinking particles (slow)
96C   
97      zkbot = jpk
98      zwork = 0.
99C
100C
101      DO jk = 1,jpkm1
102        DO jj = 2,jpjm1
103          DO ji = 2,jpim1
104   
105             IF (tmask(ji,jj,jk).eq.1.and.
106     .           tmask(ji,jj,jk+1).eq.0) THEN
107C
108                  zkbot(ji,jj) = jk
109#    if  ! defined key_trc_hamocc3
110                  zwork(ji,jj) = vsed * trn(ji,jj,jk,jpdet)
111#    endif
112C
113              ENDIF
114   
115             ENDDO
116         ENDDO
117      ENDDO
118C
119C     Initialization
120      zgeolpoc = 0.
121
122C     Release of nutrients from the "simple" sediment
123C
124        DO jj = 2,jpjm1
125          DO ji = 2,jpim1
126
127#            if defined key_trc_p3zd
128             trn(ji,jj,zkbot(ji,jj),jppo4) = 
129     .          trn(ji,jj,zkbot(ji,jj),jppo4) +
130     .               sedlam*sedpoc(ji,jj)*rdt/fse3t(ji,jj,zkbot(ji,jj))
131#            elif defined key_trc_hamocc3 && ! defined key_trc_p3zd
132             tra(ji,jj,zkbot(ji,jj),jppo4) = 
133     .          tra(ji,jj,zkbot(ji,jj),jppo4) +
134     .               sedlam*sedpoc(ji,jj)/fse3t(ji,jj,zkbot(ji,jj))
135#            else
136             tra(ji,jj,zkbot(ji,jj),jpno3) = 
137     .          tra(ji,jj,zkbot(ji,jj),jpno3) +
138     .               sedlam*sedpoc(ji,jj)/fse3t(ji,jj,zkbot(ji,jj))
139#            endif
140C
141C     Deposition of organic matter in the sediment
142C
143             zgeolpoc = zgeolpoc + sedlostpoc*sedpoc(ji,jj)*
144     .                             e1t(ji,jj)*e2t(ji,jj)
145
146             sedpoc(ji,jj) = sedpoc(ji,jj)  +
147     .                       zwork(ji,jj)*rdt +
148     .                       dminl(ji,jj)*fbod(ji,jj)*rdt -
149     .                       sedlam*sedpoc(ji,jj)*rdt -
150     .                       sedlostpoc*sedpoc(ji,jj)*rdt
151C
152             ENDDO
153         ENDDO
154C
155        DO jj = 2,jpjm1
156          DO ji = 2,jpim1
157
158#            if defined key_trc_p3zd
159             trn(ji,jj,1,jppo4) = trn(ji,jj,1,jppo4) + zgeolpoc*rdt*
160     .                            cmask(ji,jj)/areacot/fse3t(ji,jj,1)
161#            elif defined key_trc_hamocc3 && ! defined key_trc_p3zd
162             tra(ji,jj,1,jppo4) = tra(ji,jj,1,jppo4) + zgeolpoc*
163     .                            cmask(ji,jj)/areacot/fse3t(ji,jj,1)
164#            else
165             tra(ji,jj,1,jpno3) = tra(ji,jj,1,jpno3) + zgeolpoc*
166     .                            cmask(ji,jj)/areacot/fse3t(ji,jj,1)
167#            endif
168
169             ENDDO
170         ENDDO
171
172         CALL lbc_lnk( sedpoc, 'T', 1. )
173 
174C Oa & Ek: diagnostics depending on jpdia2d
175C          left as example
176#     if defined key_trc_diaadd
177           do jj=1,jpj
178             do ji=1,jpi
179              trc2d(ji,jj,11)=sedpoc(ji,jj)
180C              trc2d(ji,jj,5) = fbod(ji,jj)
181             end do
182           end do
183#     endif
184
185#        if defined key_trc_p3zd
186            CALL lbc_lnk( trn,'T',1)
187#        endif
188C
189#endif
190#endif
191      RETURN
192      END
Note: See TracBrowser for help on using the repository browser.