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 branches/dev_001_GM/NEMO/TOP_SRC/LOBSTER – NEMO

source: branches/dev_001_GM/NEMO/TOP_SRC/LOBSTER/trcexp.F @ 772

Last change on this file since 772 was 772, checked in by gm, 16 years ago

dev_001_GM - change the name of cpp key to key_top, key_lobster, key_pisces, key_kriest and the corresponding lk_

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.5 KB
Line 
1CCC $Header$ 
2      SUBROUTINE trcexp(kt)
3#if defined key_top && defined key_lobster
4CCC---------------------------------------------------------------------
5CCC
6CCC                       ROUTINE trcexp
7CCC                     ******************
8CCC
9CC
10CC     PURPOSE.
11CC     --------
12CC          *TRCEXP* MODELS EXPORT OF BIOGENIC MATTER (POC ''SOFT
13CC                   TISSUE'') AND ITS DISTRIBUTION IN WATER COLUMN
14CC
15CC     METHOD.
16CC     -------
17CC          IN THE SURFACE LAYER POC IS PRODUCED ACCORDING TO
18CC     NURTRIENTS AVAILABLE AND GROWTH CONDITIONS. NUTRIENT UPTAKE
19CC     KINETICS FOLLOW MICHAELIS-MENTON FORMULATION. 
20CC     THE TOTAL PARTICLE AMOUNT PRODUCED, IS DISTRIBUTED IN THE WATER
21CC     COLUMN BELOW THE SURFACE LAYER.
22CC
23CC     EXTERNALS.
24CC     ----------
25CC          NONE.
26CC
27CC     REFERENCE.
28CC     ----------
29CC
30CC   MODIFICATIONS:
31CC   --------------
32CC      original      : 1999    O. Aumont
33CC      modifications : 1999    C. Le Quere
34CC      additions   : 01-05 (O. Aumont, E. Kestenare):
35CC                           add sediment computations
36CC                  :  05-06  (AS. Kremeur) new temporal integration for sedpoc
37CC ---------------------------------------------------------------------
38c ------
39CC parameters and commons
40CC ======================
41CDIR$ NOLIST
42      USE oce_trc
43      USE trp_trc
44      USE sms
45      USE lbclnk
46      USE trc
47      USE trctrp_lec
48
49      IMPLICIT NONE
50CDIR$ LIST
51CC----------------------------------------------------------------------
52CC local declarations
53CC ==================
54C
55      INTEGER kt
56      INTEGER ji, jj, jk, zkbot(jpi,jpj)
57      REAL zwork(jpi,jpj), zgeolpoc, zfact
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            tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3)+
76     &          (1./fse3t(ji,jj,jk))*
77     &          dmin3(ji,jj,jk) *fbod(ji,jj)
78          ENDDO
79        ENDDO
80      ENDDO
81C
82C     Find the last level of the water column
83C     Compute fluxes due to sinking particles (slow)
84C   
85      zkbot = jpk
86      zwork = 0.
87C
88C
89      DO jk = 1,jpkm1
90        DO jj = 2,jpjm1
91          DO ji = 2,jpim1
92   
93             IF ( tmask(ji,jj,jk) .eq. 1 .and.
94     .            tmask(ji,jj,jk+1). eq. 0 ) THEN
95                  zkbot(ji,jj) = jk
96                  zwork(ji,jj) = vsed * trn(ji,jj,jk,jpdet)
97              ENDIF
98   
99             ENDDO
100         ENDDO
101      ENDDO
102C
103C     Initialization
104      zgeolpoc = 0.
105
106C     Release of nutrients from the "simple" sediment
107C
108        DO jj = 2,jpjm1
109          DO ji = 2,jpim1
110             tra(ji,jj,zkbot(ji,jj),jpno3) = 
111     .          tra(ji,jj,zkbot(ji,jj),jpno3) +
112     .               sedlam*sedpocn(ji,jj)/fse3t(ji,jj,zkbot(ji,jj))
113
114C     Deposition of organic matter in the sediment
115C
116             zgeolpoc = zgeolpoc + sedlostpoc*sedpocn(ji,jj)*
117     .                             e1t(ji,jj)*e2t(ji,jj)
118
119             sedpoca(ji,jj) = zwork(ji,jj)*rdt +
120     .                       dminl(ji,jj)*fbod(ji,jj)*rdt -
121     .                       sedlam*sedpocn(ji,jj)*rdt -
122     .                       sedlostpoc*sedpocn(ji,jj)*rdt
123C
124             ENDDO
125         ENDDO
126C
127        DO jj = 2,jpjm1
128          DO ji = 2,jpim1
129             tra(ji,jj,1,jpno3) = tra(ji,jj,1,jpno3) + zgeolpoc*
130     .                            cmask(ji,jj)/areacot/fse3t(ji,jj,1)
131           ENDDO
132         ENDDO
133
134         CALL lbc_lnk( sedpocn, 'T', 1. )
135 
136C Oa & Ek: diagnostics depending on jpdia2d
137C          left as example
138#     if defined key_trc_diaadd
139           do jj=1,jpj
140             do ji=1,jpi
141              trc2d(ji,jj,19)=sedpocn(ji,jj)
142             end do
143           end do
144#     endif
145
146c      ! 1. Leap-frog scheme (only in explicit case, otherwise the
147c      ! -------------------  time stepping is already done in trczdf)
148       IF(l_trczdf_exp .AND. (ln_trcadv_cen2 .OR. ln_trcadv_tvd)) THEN
149         zfact = 2. * rdttra(jk) * FLOAT(ndttrc) 
150         IF( neuler == 0 .AND. kt == nittrc000 ) 
151     .     zfact = rdttra(jk) * FLOAT(ndttrc) 
152         sedpoca(:,:) = ( sedpocb(:,:) + zfact * sedpoca(:,:) )
153      ENDIF
154
155     
156c      ! 2. Time filter and swap of arrays
157c      ! ---------------------------------
158      IF ( ln_trcadv_cen2 .OR. ln_trcadv_tvd  ) THEN         
159          IF( neuler == 0 .AND. kt == nittrc000 ) THEN
160              DO jj = 1, jpj
161                DO ji = 1, jpi
162                  sedpocb(ji,jj) = sedpocn(ji,jj)
163                  sedpocn(ji,jj) = sedpoca(ji,jj)
164                  sedpoca(ji,jj) = 0.
165                END DO
166              END DO
167         ELSE
168             DO jj = 1, jpj
169               DO ji = 1, jpi
170                 sedpocb(ji,jj) = atfp*(sedpocb(ji,jj)+sedpoca(ji,jj)) 
171     .                          + atfp1 * sedpocn(ji,jj)
172                 sedpocn(ji,jj) = sedpoca(ji,jj)
173                 sedpoca(ji,jj) = 0.
174               END DO
175             END DO
176         ENDIF
177         
178      ELSE
179c         !  case of smolar scheme or muscl
180         DO jj = 1, jpj
181            DO ji = 1, jpi
182               sedpocb(ji,jj) = sedpoca(ji,jj)
183               sedpocn(ji,jj) = sedpoca(ji,jj)
184               sedpoca(ji,jj) = 0.
185            END DO
186         END DO
187         
188      ENDIF
189
190#endif
191      RETURN
192      END
Note: See TracBrowser for help on using the repository browser.