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

source: trunk/NEMO/TOP_SRC/SMS/trcexp.F @ 274

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