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