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.
trcbio.F90 in trunk/NEMO/TOP_SRC/LOBSTER – NEMO

source: trunk/NEMO/TOP_SRC/LOBSTER/trcbio.F90 @ 1194

Last change on this file since 1194 was 1194, checked in by cetlod, 16 years ago

Correction of LOBSTER modules to ensure reproductibility for GYRE_LOBSTER, see ticket:253

  • Property svn:keywords set to Id
File size: 19.6 KB
Line 
1MODULE trcbio
2   !!======================================================================
3   !!                         ***  MODULE trcbio  ***
4   !! TOP :   LOBSTER
5   !!======================================================================
6   !! History :    -   !  1999-07  (M. Levy) Original code
7   !!              -   !  2000-12  (E. Kestenare) assign a parameter to name individual tracers
8   !!              -   !  2001-03  (M. Levy)  LNO3 + dia2d
9   !!             2.0  !  2007-12  (C. Deltel, G. Madec)  F90
10   !!----------------------------------------------------------------------
11#if defined key_lobster
12   !!----------------------------------------------------------------------
13   !!   'key_lobster'                                     LOBSTER bio-model
14   !!----------------------------------------------------------------------
15   !!   trc_bio        : 
16   !!----------------------------------------------------------------------
17   USE oce_trc         !
18   USE trc             !
19   USE sms_lobster     !
20   USE lbclnk          !
21   USE prtctl_trc      ! Print control for debbuging
22   USE trdmld_trc
23   USE trdmld_trc_oce
24   
25   IMPLICIT NONE
26   PRIVATE
27
28   PUBLIC   trc_bio    ! called in ???
29
30   !!* Substitution
31#  include "domzgr_substitute.h90"
32   !!----------------------------------------------------------------------
33   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007)
34   !! $Id$
35   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
36   !!----------------------------------------------------------------------
37
38CONTAINS
39
40   SUBROUTINE trc_bio( kt )
41      !!---------------------------------------------------------------------
42      !!                     ***  ROUTINE trc_bio  ***
43      !!
44      !! ** Purpose :   compute the now trend due to biogeochemical processes
45      !!              and add it to the general trend of passive tracers equations
46      !!
47      !! ** Method  :   each now biological flux is calculated in function of now
48      !!              concentrations of tracers.
49      !!              depending on the tracer, these fluxes are sources or sinks.
50      !!              the total of the sources and sinks for each tracer
51      !!              is added to the general trend.
52      !!       
53      !!                      tra = tra + zf...tra - zftra...
54      !!                                     |         |
55      !!                                     |         |
56      !!                                  source      sink
57      !!       
58      !!              IF 'key_trc_diabio' defined , the biogeochemical trends
59      !!              for passive tracers are saved for futher diagnostics.
60      !!---------------------------------------------------------------------
61      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index     
62      !!
63      INTEGER  ::   ji, jj, jk, jn, jl
64      REAL(wp) ::   zdet, zzoo, zphy, zno3, znh4, zdom      ! now concentrations
65      REAL(wp) ::   zlno3, zlnh4, zle, zlt                  ! limitation terms for phyto
66      REAL(wp) ::   zno3phy, znh4phy, zphynh4, zphydom
67      REAL(wp) ::   zphydet, zphyzoo, zdetzoo
68      REAL(wp) ::   zzoonh4, zzoodom, zzoodet, zdetnh4, zdetdom
69      REAL(wp) ::   znh4no3, zdomnh4, zppz, zpdz, zpppz, zppdz, zfood
70      REAL(wp) ::   zfilpz, zfildz, zphya, zzooa, zno3a
71      REAL(wp) ::   znh4a, zdeta, zdoma, zzoobod, zboddet, zdomaju
72#if defined key_trc_diaadd
73      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ze3t
74#endif
75      REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE ::   ztrbio
76      CHARACTER (len=25) :: charout
77      !!---------------------------------------------------------------------
78
79      IF( kt == nit000 ) THEN
80         IF(lwp) WRITE(numout,*)
81         IF(lwp) WRITE(numout,*) ' trc_bio: LOBSTER bio-model'
82         IF(lwp) WRITE(numout,*) ' ~~~~~~~'
83      ENDIF
84
85#if defined key_trc_diaadd
86      ! convert fluxes in per day
87      ze3t(:,:,:) = 0.e0
88      DO jk = 1, jpkbm1
89         ze3t(:,:,jk) = fse3t(:,:,jk) * 86400.
90      END DO 
91#endif
92
93      fbod(:,:) = 0.e0
94#if defined key_trc_diaadd
95      DO jl = 1, jp_lobster_2d
96         trc2d(:,:,jl) = 0.e0
97      END DO 
98#endif
99
100      IF( l_trdtrc )THEN
101         ALLOCATE( ztrbio(jpi,jpj,jpk,jp_lobster_trd) )
102         ztrbio(:,:,:,:) = 0.
103      ENDIF
104
105      !                                      ! -------------------------- !
106      DO jk = 1, jpkbm1                      !  Upper ocean (bio-layers)  !
107         !                                   ! -------------------------- !
108         DO jj = 2, jpjm1
109            DO ji = 2, jpim1           !!gm  use of fs_2 fs_jpm1  required here
110
111               ! trophic variables( det, zoo, phy, no3, nh4, dom)
112               ! ------------------------------------------------
113
114               ! negative trophic variables DO not contribute to the fluxes
115               zdet = MAX( 0.e0, trn(ji,jj,jk,jpdet) )
116               zzoo = MAX( 0.e0, trn(ji,jj,jk,jpzoo) )
117               zphy = MAX( 0.e0, trn(ji,jj,jk,jpphy) )
118               zno3 = MAX( 0.e0, trn(ji,jj,jk,jpno3) )
119               znh4 = MAX( 0.e0, trn(ji,jj,jk,jpnh4) )
120               zdom = MAX( 0.e0, trn(ji,jj,jk,jpdom) )
121
122               ! Limitations
123               zlt   = 1.
124               zle   = 1. - EXP( -xpar(ji,jj,jk) / aki / zlt )
125               ! psinut,akno3,aknh4 added by asklod AS Kremeur 2005-03
126               zlno3 = zno3 * EXP( -psinut * znh4 ) / ( akno3 + zno3 )
127               zlnh4 = znh4 / (znh4+aknh4) 
128
129
130               ! sinks and sources
131               !    phytoplankton production and exsudation
132               zno3phy = tmumax * zle * zlt * zlno3 * zphy
133               znh4phy = tmumax * zle * zlt * zlnh4 * zphy
134
135               !    fphylab added by asklod AS Kremeur 2005-03
136               zphydom = rgamma * (1 - fphylab) * (zno3phy + znh4phy)
137               zphynh4 = rgamma * fphylab * (zno3phy + znh4phy)
138
139               ! zooplankton production
140               !    preferences
141               zppz = rppz
142               zpdz = 1. - rppz
143               zpppz = ( zppz * zphy ) / ( ( zppz * zphy + zpdz * zdet ) + 1.e-13 )
144               zppdz = ( zpdz * zdet ) / ( ( zppz * zphy + zpdz * zdet ) + 1.e-13 )
145               zfood = zpppz * zphy + zppdz * zdet
146               !    filtration
147               zfilpz = taus * zpppz / (aks + zfood)
148               zfildz = taus * zppdz / (aks + zfood)
149               !    grazing
150               zphyzoo = zfilpz * zphy * zzoo
151               zdetzoo = zfildz * zdet * zzoo
152
153               ! fecal pellets production
154               zzoodet = rpnaz * zphyzoo + rdnaz * zdetzoo
155 
156               ! zooplankton liquide excretion
157               zzoonh4 = tauzn * fzoolab * zzoo 
158               zzoodom = tauzn * (1 - fzoolab) * zzoo
159
160               ! mortality
161               !    phytoplankton mortality
162               zphydet = tmminp * zphy
163
164               !    zooplankton mortality
165               !    closure : flux fbod is redistributed below level jpkbio
166               zzoobod = tmminz * zzoo * zzoo
167               fbod(ji,jj) = fbod(ji,jj) + (1-fdbod) * zzoobod * fse3t(ji,jj,jk)
168               zboddet = fdbod * zzoobod
169
170               ! detritus and dom breakdown
171               zdetnh4 = taudn * fdetlab * zdet
172               zdetdom = taudn * (1 - fdetlab) * zdet 
173
174               zdomnh4 = taudomn * zdom
175
176               ! flux added to express how the excess of nitrogen from
177               ! PHY, ZOO and DET to DOM goes directly to NH4 (flux of ajustment)
178               zdomaju = (1 - redf/reddom) * (zphydom + zzoodom + zdetdom)
179
180               ! Nitrification
181               znh4no3 = taunn * znh4
182
183               ! determination of trends
184               !    total trend for each biological tracer
185               zphya =   zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo - zphydet
186               zzooa =   zphyzoo + zdetzoo - zzoodet - zzoodom - zzoonh4 - zzoobod
187               zno3a = - zno3phy + znh4no3
188               znh4a = - znh4phy - znh4no3 + zphynh4 + zzoonh4 + zdomnh4 + zdetnh4 + zdomaju
189               zdeta =   zphydet + zzoodet - zdetzoo - zdetnh4 - zdetdom + zboddet
190               zdoma =   zphydom + zzoodom + zdetdom - zdomnh4 - zdomaju
191
192#if defined key_trc_diabio
193               trbio(ji,jj,jk, 1) = zno3phy
194               trbio(ji,jj,jk, 2) = znh4phy
195               trbio(ji,jj,jk, 3) = zphynh4
196               trbio(ji,jj,jk, 4) = zphydom
197               trbio(ji,jj,jk, 5) = zphyzoo
198               trbio(ji,jj,jk, 6) = zphydet
199               trbio(ji,jj,jk, 7) = zdetzoo
200               trbio(ji,jj,jk, 9) = zzoodet
201               trbio(ji,jj,jk,10) = zzoobod
202               trbio(ji,jj,jk,11) = zzoonh4
203               trbio(ji,jj,jk,12) = zzoodom
204               trbio(ji,jj,jk,13) = znh4no3
205               trbio(ji,jj,jk,14) = zdomnh4
206               trbio(ji,jj,jk,15) = zdetnh4
207#endif
208#if defined key_trc_diaadd
209               trc2d(ji,jj, 1) = trc2d(ji,jj, 1) + zno3phy * ze3t(ji,jj,jk) 
210               trc2d(ji,jj, 2) = trc2d(ji,jj, 2) + znh4phy * ze3t(ji,jj,jk)
211               trc2d(ji,jj, 3) = trc2d(ji,jj, 3) + zphydom * ze3t(ji,jj,jk)
212               trc2d(ji,jj, 4) = trc2d(ji,jj, 4) + zphynh4 * ze3t(ji,jj,jk)
213               trc2d(ji,jj, 5) = trc2d(ji,jj, 5) + zphyzoo * ze3t(ji,jj,jk)
214               trc2d(ji,jj, 6) = trc2d(ji,jj, 6) + zphydet * ze3t(ji,jj,jk)
215               trc2d(ji,jj, 7) = trc2d(ji,jj, 7) + zdetzoo * ze3t(ji,jj,jk)
216! trend number 8 is in trcsed.F           
217               trc2d(ji,jj, 9) = trc2d(ji,jj, 9) + zzoodet * ze3t(ji,jj,jk)
218               trc2d(ji,jj,10) = trc2d(ji,jj,10) + zzoobod * ze3t(ji,jj,jk)
219               trc2d(ji,jj,11) = trc2d(ji,jj,11) + zzoonh4 * ze3t(ji,jj,jk)
220               trc2d(ji,jj,12) = trc2d(ji,jj,12) + zzoodom * ze3t(ji,jj,jk)
221               trc2d(ji,jj,13) = trc2d(ji,jj,13) + znh4no3 * ze3t(ji,jj,jk)
222               trc2d(ji,jj,14) = trc2d(ji,jj,14) + zdomnh4 * ze3t(ji,jj,jk)
223               trc2d(ji,jj,15) = trc2d(ji,jj,15) + zdetnh4 * ze3t(ji,jj,jk)
224             
225               trc2d(ji,jj,16) = trc2d(ji,jj,16) + (  zno3phy + znh4phy - zphynh4   &
226                  &                                 - zphydom - zphyzoo - zphydet ) * ze3t(ji,jj,jk)
227               trc2d(ji,jj,17) = trc2d(ji,jj,17) + (  zphyzoo + zdetzoo - zzoodet   &
228                  &                                 - zzoobod - zzoonh4 - zzoodom ) * ze3t(ji,jj,jk)
229               trc2d(ji,jj,18) = trc2d(ji,jj,18) + zdetdom * ze3t(ji,jj,jk)
230! trend number 19 is in trcexp.F
231               trc3d(ji,jj,jk,1) = zno3phy * 86400     
232               trc3d(ji,jj,jk,2) = znh4phy * 86400     
233               trc3d(ji,jj,jk,3) = znh4no3 * 86400     
234#endif
235               IF( l_trdtrc ) THEN
236                  ztrbio(ji,jj,jk,1) = zno3phy
237                  ztrbio(ji,jj,jk,2) = znh4phy
238                  ztrbio(ji,jj,jk,3) = zphynh4
239                  ztrbio(ji,jj,jk,4) = zphydom
240                  ztrbio(ji,jj,jk,5) = zphyzoo
241                  ztrbio(ji,jj,jk,6) = zphydet
242                  ztrbio(ji,jj,jk,7) = zdetzoo
243                  !  trend number 8 in trcsed
244                  ztrbio(ji,jj,jk,9) = zzoodet
245                  ztrbio(ji,jj,jk,10) = zzoobod
246                  ztrbio(ji,jj,jk,11) = zzoonh4
247                  ztrbio(ji,jj,jk,12) = zzoodom
248                  ztrbio(ji,jj,jk,13) = znh4no3
249                  ztrbio(ji,jj,jk,14) = zdomnh4
250                  ztrbio(ji,jj,jk,15) = zdetnh4
251                  ztrbio(ji,jj,jk,16) = zdetdom
252                  !  trend number 17 in trcexp
253                ENDIF
254
255
256               ! tracer flux at totox-point added to the general trend
257               tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) + zdeta
258               tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) + zzooa
259               tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) + zphya
260               tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + zno3a
261               tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + znh4a
262               tra(ji,jj,jk,jpdom) = tra(ji,jj,jk,jpdom) + zdoma
263
264            END DO
265         END DO
266      END DO
267
268      !
269
270!!gm do loop until jpkm1 only!
271      !                                      ! -------------------------- !
272      DO jk = jpkb, jpk                      !  Upper ocean (bio-layers)  !
273         !                                   ! -------------------------- !
274
275         DO jj = 2, jpjm1
276            DO ji = 2,jpim1             !!gm use of fs_2 & fs_jpim1 required
277 
278               ! remineralisation of all quantities towards nitrate
279
280               !    trophic variables( det, zoo, phy, no3, nh4, dom)
281               !       negative trophic variables DO not contribute to the fluxes
282               zdet = MAX( 0.e0, trn(ji,jj,jk,jpdet) )
283               zzoo = MAX( 0.e0, trn(ji,jj,jk,jpzoo) )
284               zphy = MAX( 0.e0, trn(ji,jj,jk,jpphy) )
285               zno3 = MAX( 0.e0, trn(ji,jj,jk,jpno3) )
286               znh4 = MAX( 0.e0, trn(ji,jj,jk,jpnh4) )
287               zdom = MAX( 0.e0, trn(ji,jj,jk,jpdom) )
288
289               !    Limitations
290               zlt   = 0.e0
291               zle   = 0.e0
292               zlno3 = 0.e0
293               zlnh4 = 0.e0
294
295               !    sinks and sources
296               !       phytoplankton production and exsudation
297               zno3phy = 0.e0
298               znh4phy = 0.e0
299               zphydom = 0.e0
300               zphynh4 = 0.e0
301
302               !    zooplankton production
303               zphyzoo = 0.e0      ! grazing
304               zdetzoo = 0.e0
305
306               zzoodet = 0.e0      ! fecal pellets production
307
308               zzoonh4 = tauzn * fzoolab * zzoo         ! zooplankton liquide excretion
309               zzoodom = tauzn * (1 - fzoolab) * zzoo
310
311               !    mortality
312               zphydet = tmminp * zphy      ! phytoplankton mortality
313
314               zzoobod = 0.e0               ! zooplankton mortality
315               zboddet = 0.e0               ! closure : flux fbod is redistributed below level jpkbio
316
317               !    detritus and dom breakdown
318               zdetnh4 = taudn * fdetlab * zdet
319               zdetdom = taudn * (1 - fdetlab) * zdet 
320
321               zdomnh4 = taudomn * zdom
322               zdomaju = (1 - redf/reddom) * (zphydom + zzoodom + zdetdom)
323
324               !    Nitrification
325               znh4no3 = taunn * znh4
326
327
328               ! determination of trends
329               !     total trend for each biological tracer
330               zphya =   zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo - zphydet
331               zzooa =   zphyzoo + zdetzoo - zzoodet - zzoodom - zzoonh4 - zzoobod
332               zno3a = - zno3phy + znh4no3
333               znh4a = - znh4phy - znh4no3 + zphynh4 + zzoonh4 + zdomnh4 + zdetnh4 + zdomaju
334               zdeta = zphydet + zzoodet  - zdetzoo - zdetnh4 - zdetdom + zboddet
335               zdoma = zphydom + zzoodom + zdetdom - zdomnh4 - zdomaju
336
337#if defined key_trc_diabio
338               trbio(ji,jj,jk, 1) = zno3phy
339               trbio(ji,jj,jk, 2) = znh4phy
340               trbio(ji,jj,jk, 3) = zphynh4
341               trbio(ji,jj,jk, 4) = zphydom
342               trbio(ji,jj,jk, 5) = zphyzoo
343               trbio(ji,jj,jk, 6) = zphydet
344               trbio(ji,jj,jk, 7) = zdetzoo
345               trbio(ji,jj,jk, 9) = zzoodet
346               trbio(ji,jj,jk,10) = zzoobod
347               trbio(ji,jj,jk,11) = zzoonh4
348               trbio(ji,jj,jk,12) = zzoodom
349               trbio(ji,jj,jk,13) = znh4no3
350               trbio(ji,jj,jk,14) = zdomnh4
351               trbio(ji,jj,jk,15) = zdetnh4
352#endif
353#if defined key_trc_diaadd
354               trc2d(ji,jj, 1) = trc2d(ji,jj, 1) + zno3phy * ze3t(ji,jj,jk)         
355               trc2d(ji,jj, 2) = trc2d(ji,jj, 2) + znh4phy * ze3t(ji,jj,jk)
356               trc2d(ji,jj, 3) = trc2d(ji,jj, 3) + zphydom * ze3t(ji,jj,jk)
357               trc2d(ji,jj, 4) = trc2d(ji,jj, 4) + zphynh4 * ze3t(ji,jj,jk)
358               trc2d(ji,jj, 5) = trc2d(ji,jj, 5) + zphyzoo * ze3t(ji,jj,jk)
359               trc2d(ji,jj, 6) = trc2d(ji,jj, 6) + zphydet * ze3t(ji,jj,jk)
360               trc2d(ji,jj, 7) = trc2d(ji,jj, 7) + zdetzoo * ze3t(ji,jj,jk)
361               ! trend number 8 is in trcsed.F           
362               trc2d(ji,jj, 9) = trc2d(ji,jj, 9) + zzoodet * ze3t(ji,jj,jk)
363               trc2d(ji,jj,10) = trc2d(ji,jj,10) + zzoobod * ze3t(ji,jj,jk)
364               trc2d(ji,jj,11) = trc2d(ji,jj,11) + zzoonh4 * ze3t(ji,jj,jk)
365               trc2d(ji,jj,12) = trc2d(ji,jj,12) + zzoodom * ze3t(ji,jj,jk)
366               trc2d(ji,jj,13) = trc2d(ji,jj,13) + znh4no3 * ze3t(ji,jj,jk)
367               trc2d(ji,jj,14) = trc2d(ji,jj,14) + zdomnh4 * ze3t(ji,jj,jk)
368               trc2d(ji,jj,15) = trc2d(ji,jj,15) + zdetnh4 * ze3t(ji,jj,jk)
369             
370               trc2d(ji,jj,16) = trc2d(ji,jj,16) + (  zno3phy + znh4phy - zphynh4   &
371                  &                                 - zphydom - zphyzoo - zphydet  ) * ze3t(ji,jj,jk)
372               trc2d(ji,jj,17) = trc2d(ji,jj,17) + (  zphyzoo + zdetzoo - zzoodet   &
373                  &                                 - zzoobod - zzoonh4 - zzoodom  ) * ze3t(ji,jj,jk)
374               trc2d(ji,jj,18) = trc2d(ji,jj,18) + zdetdom * ze3t(ji,jj,jk)
375
376               trc3d(ji,jj,jk,1) =  zno3phy * 86400     
377               trc3d(ji,jj,jk,2) =  znh4phy * 86400     
378               trc3d(ji,jj,jk,3) =  znh4no3 * 86400     
379#endif
380               IF( l_trdtrc ) THEN
381                  ztrbio(ji,jj,jk,1) = zno3phy
382                  ztrbio(ji,jj,jk,2) = znh4phy
383                  ztrbio(ji,jj,jk,3) = zphynh4
384                  ztrbio(ji,jj,jk,4) = zphydom
385                  ztrbio(ji,jj,jk,5) = zphyzoo
386                  ztrbio(ji,jj,jk,6) = zphydet
387                  ztrbio(ji,jj,jk,7) = zdetzoo
388                  !  trend number 8 in trcsed
389                  ztrbio(ji,jj,jk,9) = zzoodet
390                  ztrbio(ji,jj,jk,10) = zzoobod
391                  ztrbio(ji,jj,jk,11) = zzoonh4
392                  ztrbio(ji,jj,jk,12) = zzoodom
393                  ztrbio(ji,jj,jk,13) = znh4no3
394                  ztrbio(ji,jj,jk,14) = zdomnh4
395                  ztrbio(ji,jj,jk,15) = zdetnh4
396                  ztrbio(ji,jj,jk,16) = zdetdom
397                  !  trend number 17 in trcexp
398                ENDIF
399
400
401               ! tracer flux at totox-point added to the general trend
402               tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) + zdeta
403               tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) + zzooa
404               tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) + zphya
405               tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + zno3a
406               tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + znh4a
407               tra(ji,jj,jk,jpdom) = tra(ji,jj,jk,jpdom) + zdoma
408               !
409            END DO
410         END DO
411      END DO
412
413#if defined key_trc_diaadd
414      ! Lateral boundary conditions on trc2d and trc3d
415      DO jl = 1, jp_lobster_2d
416          CALL lbc_lnk( trc2d(:,:,jl),'T', 1. )
417      END DO
418      DO jl = 1, jp_lobster_3d
419          CALL lbc_lnk( trc3d(:,:,1,jl),'T', 1. )
420      END DO 
421#endif
422
423#if defined key_trc_diabio
424      ! Lateral boundary conditions on trcbio
425      DO jl = 1, jp_lobster_trd
426          CALL lbc_lnk( trbio(:,:,1,jl),'T', 1. )
427      END DO 
428#endif
429      !
430      IF( l_trdtrc ) THEN
431         DO jl = 1, jp_lobster_trd
432            CALL trd_mod_trc( ztrbio(:,:,:,jl), jl, kt )   ! handle the trend
433         END DO
434      ENDIF
435
436      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
437         WRITE(charout, FMT="('bio')")
438         CALL prt_ctl_trc_info(charout)
439         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm)
440      ENDIF
441
442   END SUBROUTINE trc_bio
443
444#else
445   !!======================================================================
446   !!  Dummy module :                                   No PISCES bio-model
447   !!======================================================================
448CONTAINS
449   SUBROUTINE trc_bio( kt )                   ! Empty routine
450      INTEGER, INTENT( in ) ::   kt
451      WRITE(*,*) 'trc_bio: You should not have seen this print! error?', kt
452   END SUBROUTINE trc_bio
453#endif 
454
455   !!======================================================================
456END MODULE  trcbio
Note: See TracBrowser for help on using the repository browser.