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 @ 1176

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

update LOBSTER modules to take into account new trends organization, see ticket:248

  • 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!CDIR COLLAPSE
103         ztrbio(:,:,:,:) = 0.
104      ENDIF
105
106      !                                      ! -------------------------- !
107      DO jk = 1, jpkbm1                      !  Upper ocean (bio-layers)  !
108         !                                   ! -------------------------- !
109         DO jj = 2, jpjm1
110            DO ji = 2, jpim1           !!gm  use of fs_2 fs_jpm1  required here
111
112               ! trophic variables( det, zoo, phy, no3, nh4, dom)
113               ! ------------------------------------------------
114
115               ! negative trophic variables DO not contribute to the fluxes
116               zdet = MAX( 0.e0, trn(ji,jj,jk,jpdet) )
117               zzoo = MAX( 0.e0, trn(ji,jj,jk,jpzoo) )
118               zphy = MAX( 0.e0, trn(ji,jj,jk,jpphy) )
119               zno3 = MAX( 0.e0, trn(ji,jj,jk,jpno3) )
120               znh4 = MAX( 0.e0, trn(ji,jj,jk,jpnh4) )
121               zdom = MAX( 0.e0, trn(ji,jj,jk,jpdom) )
122
123               ! Limitations
124               zlt   = 1.
125               zle   = 1. - EXP( -xpar(ji,jj,jk) / aki / zlt )
126               ! psinut,akno3,aknh4 added by asklod AS Kremeur 2005-03
127               zlno3 = zno3 * EXP( -psinut * znh4 ) / ( akno3 + zno3 )
128               zlnh4 = znh4 / (znh4+aknh4) 
129
130
131               ! sinks and sources
132               !    phytoplankton production and exsudation
133               zno3phy = tmumax * zle * zlt * zlno3 * zphy
134               znh4phy = tmumax * zle * zlt * zlnh4 * zphy
135
136               !    fphylab added by asklod AS Kremeur 2005-03
137               zphydom = rgamma * (1 - fphylab) * (zno3phy + znh4phy)
138               zphynh4 = rgamma * fphylab * (zno3phy + znh4phy)
139
140               ! zooplankton production
141               !    preferences
142               zppz = rppz
143               zpdz = 1. - rppz
144               zpppz = ( zppz * zphy ) / ( ( zppz * zphy + zpdz * zdet ) + 1.e-13 )
145               zppdz = ( zpdz * zdet ) / ( ( zppz * zphy + zpdz * zdet ) + 1.e-13 )
146               zfood = zpppz * zphy + zppdz * zdet
147               !    filtration
148               zfilpz = taus * zpppz / (aks + zfood)
149               zfildz = taus * zppdz / (aks + zfood)
150               !    grazing
151               zphyzoo = zfilpz * zphy * zzoo
152               zdetzoo = zfildz * zdet * zzoo
153
154               ! fecal pellets production
155               zzoodet = rpnaz * zphyzoo + rdnaz * zdetzoo
156 
157               ! zooplankton liquide excretion
158               zzoonh4 = tauzn * fzoolab * zzoo 
159               zzoodom = tauzn * (1 - fzoolab) * zzoo
160
161               ! mortality
162               !    phytoplankton mortality
163               zphydet = tmminp * zphy
164
165               !    zooplankton mortality
166               !    closure : flux fbod is redistributed below level jpkbio
167               zzoobod = tmminz * zzoo * zzoo
168               fbod(ji,jj) = fbod(ji,jj) + (1-fdbod) * zzoobod * fse3t(ji,jj,jk)
169               zboddet = fdbod * zzoobod
170
171               ! detritus and dom breakdown
172               zdetnh4 = taudn * fdetlab * zdet
173               zdetdom = taudn * (1 - fdetlab) * zdet 
174
175               zdomnh4 = taudomn * zdom
176
177               ! flux added to express how the excess of nitrogen from
178               ! PHY, ZOO and DET to DOM goes directly to NH4 (flux of ajustment)
179               zdomaju = (1 - redf/reddom) * (zphydom + zzoodom + zdetdom)
180
181               ! Nitrification
182               znh4no3 = taunn * znh4
183
184               ! determination of trends
185               !    total trend for each biological tracer
186               zphya =   zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo - zphydet
187               zzooa =   zphyzoo + zdetzoo - zzoodet - zzoodom - zzoonh4 - zzoobod
188               zno3a = - zno3phy + znh4no3
189               znh4a = - znh4phy - znh4no3 + zphynh4 + zzoonh4 + zdomnh4 + zdetnh4 + zdomaju
190               zdeta =   zphydet + zzoodet - zdetzoo - zdetnh4 - zdetdom + zboddet
191               zdoma =   zphydom + zzoodom + zdetdom - zdomnh4 - zdomaju
192
193#if defined key_trc_diabio
194               trbio(ji,jj,jk, 1) = zno3phy
195               trbio(ji,jj,jk, 2) = znh4phy
196               trbio(ji,jj,jk, 3) = zphynh4
197               trbio(ji,jj,jk, 4) = zphydom
198               trbio(ji,jj,jk, 5) = zphyzoo
199               trbio(ji,jj,jk, 6) = zphydet
200               trbio(ji,jj,jk, 7) = zdetzoo
201               trbio(ji,jj,jk, 9) = zzoodet
202               trbio(ji,jj,jk,10) = zzoobod
203               trbio(ji,jj,jk,11) = zzoonh4
204               trbio(ji,jj,jk,12) = zzoodom
205               trbio(ji,jj,jk,13) = znh4no3
206               trbio(ji,jj,jk,14) = zdomnh4
207               trbio(ji,jj,jk,15) = zdetnh4
208#endif
209#if defined key_trc_diaadd
210               trc2d(ji,jj, 1) = trc2d(ji,jj, 1) + zno3phy * ze3t(ji,jj,jk) 
211               trc2d(ji,jj, 2) = trc2d(ji,jj, 2) + znh4phy * ze3t(ji,jj,jk)
212               trc2d(ji,jj, 3) = trc2d(ji,jj, 3) + zphydom * ze3t(ji,jj,jk)
213               trc2d(ji,jj, 4) = trc2d(ji,jj, 4) + zphynh4 * ze3t(ji,jj,jk)
214               trc2d(ji,jj, 5) = trc2d(ji,jj, 5) + zphyzoo * ze3t(ji,jj,jk)
215               trc2d(ji,jj, 6) = trc2d(ji,jj, 6) + zphydet * ze3t(ji,jj,jk)
216               trc2d(ji,jj, 7) = trc2d(ji,jj, 7) + zdetzoo * ze3t(ji,jj,jk)
217! trend number 8 is in trcsed.F           
218               trc2d(ji,jj, 9) = trc2d(ji,jj, 9) + zzoodet * ze3t(ji,jj,jk)
219               trc2d(ji,jj,10) = trc2d(ji,jj,10) + zzoobod * ze3t(ji,jj,jk)
220               trc2d(ji,jj,11) = trc2d(ji,jj,11) + zzoonh4 * ze3t(ji,jj,jk)
221               trc2d(ji,jj,12) = trc2d(ji,jj,12) + zzoodom * ze3t(ji,jj,jk)
222               trc2d(ji,jj,13) = trc2d(ji,jj,13) + znh4no3 * ze3t(ji,jj,jk)
223               trc2d(ji,jj,14) = trc2d(ji,jj,14) + zdomnh4 * ze3t(ji,jj,jk)
224               trc2d(ji,jj,15) = trc2d(ji,jj,15) + zdetnh4 * ze3t(ji,jj,jk)
225             
226               trc2d(ji,jj,16) = trc2d(ji,jj,16) + (  zno3phy + znh4phy - zphynh4   &
227                  &                                 - zphydom - zphyzoo - zphydet ) * ze3t(ji,jj,jk)
228               trc2d(ji,jj,17) = trc2d(ji,jj,17) + (  zphyzoo + zdetzoo - zzoodet   &
229                  &                                 - zzoobod - zzoonh4 - zzoodom ) * ze3t(ji,jj,jk)
230               trc2d(ji,jj,18) = trc2d(ji,jj,18) + zdetdom * ze3t(ji,jj,jk)
231! trend number 19 is in trcexp.F
232               trc3d(ji,jj,jk,1) = zno3phy * 86400     
233               trc3d(ji,jj,jk,2) = znh4phy * 86400     
234               trc3d(ji,jj,jk,3) = znh4no3 * 86400     
235#endif
236               IF( l_trdtrc ) THEN
237                  ztrbio(ji,jj,jk,1) = zno3phy
238                  ztrbio(ji,jj,jk,2) = znh4phy
239                  ztrbio(ji,jj,jk,3) = zphynh4
240                  ztrbio(ji,jj,jk,4) = zphydom
241                  ztrbio(ji,jj,jk,5) = zphyzoo
242                  ztrbio(ji,jj,jk,6) = zphydet
243                  ztrbio(ji,jj,jk,7) = zdetzoo
244                  !  trend number 8 in trcsed
245                  ztrbio(ji,jj,jk,9) = zzoodet
246                  ztrbio(ji,jj,jk,10) = zzoobod
247                  ztrbio(ji,jj,jk,11) = zzoonh4
248                  ztrbio(ji,jj,jk,12) = zzoodom
249                  ztrbio(ji,jj,jk,13) = znh4no3
250                  ztrbio(ji,jj,jk,14) = zdomnh4
251                  ztrbio(ji,jj,jk,15) = zdetnh4
252                  ztrbio(ji,jj,jk,16) = zdetdom
253                  !  trend number 17 in trcexp
254                ENDIF
255
256
257               ! tracer flux at totox-point added to the general trend
258               tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) + zdeta
259               tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) + zzooa
260               tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) + zphya
261               tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + zno3a
262               tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + znh4a
263               tra(ji,jj,jk,jpdom) = tra(ji,jj,jk,jpdom) + zdoma
264
265            END DO
266         END DO
267      END DO
268
269      !
270
271!!gm do loop until jpkm1 only!
272      !                                      ! -------------------------- !
273      DO jk = jpkb, jpk                      !  Upper ocean (bio-layers)  !
274         !                                   ! -------------------------- !
275
276         DO jj = 2, jpjm1
277            DO ji = 2,jpim1             !!gm use of fs_2 & fs_jpim1 required
278 
279               ! remineralisation of all quantities towards nitrate
280
281               !    trophic variables( det, zoo, phy, no3, nh4, dom)
282               !       negative trophic variables DO not contribute to the fluxes
283               zdet = MAX( 0.e0, trn(ji,jj,jk,jpdet) )
284               zzoo = MAX( 0.e0, trn(ji,jj,jk,jpzoo) )
285               zphy = MAX( 0.e0, trn(ji,jj,jk,jpphy) )
286               zno3 = MAX( 0.e0, trn(ji,jj,jk,jpno3) )
287               znh4 = MAX( 0.e0, trn(ji,jj,jk,jpnh4) )
288               zdom = MAX( 0.e0, trn(ji,jj,jk,jpdom) )
289
290               !    Limitations
291               zlt   = 0.e0
292               zle   = 0.e0
293               zlno3 = 0.e0
294               zlnh4 = 0.e0
295
296               !    sinks and sources
297               !       phytoplankton production and exsudation
298               zno3phy = 0.e0
299               znh4phy = 0.e0
300               zphydom = 0.e0
301               zphynh4 = 0.e0
302
303               !    zooplankton production
304               zphyzoo = 0.e0      ! grazing
305               zdetzoo = 0.e0
306
307               zzoodet = 0.e0      ! fecal pellets production
308
309               zzoonh4 = tauzn * fzoolab * zzoo         ! zooplankton liquide excretion
310               zzoodom = tauzn * (1 - fzoolab) * zzoo
311
312               !    mortality
313               zphydet = tmminp * zphy      ! phytoplankton mortality
314
315               zzoobod = 0.e0               ! zooplankton mortality
316               zboddet = 0.e0               ! closure : flux fbod is redistributed below level jpkbio
317
318               !    detritus and dom breakdown
319               zdetnh4 = taudn * fdetlab * zdet
320               zdetdom = taudn * (1 - fdetlab) * zdet 
321
322               zdomnh4 = taudomn * zdom
323               zdomaju = (1 - redf/reddom) * (zphydom + zzoodom + zdetdom)
324
325               !    Nitrification
326               znh4no3 = taunn * znh4
327
328
329               ! determination of trends
330               !     total trend for each biological tracer
331               zphya =   zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo - zphydet
332               zzooa =   zphyzoo + zdetzoo - zzoodet - zzoodom - zzoonh4 - zzoobod
333               zno3a = - zno3phy + znh4no3
334               znh4a = - znh4phy - znh4no3 + zphynh4 + zzoonh4 + zdomnh4 + zdetnh4 + zdomaju
335               zdeta = zphydet + zzoodet  - zdetzoo - zdetnh4 - zdetdom + zboddet
336               zdoma = zphydom + zzoodom + zdetdom - zdomnh4 - zdomaju
337
338#if defined key_trc_diabio
339               trbio(ji,jj,jk, 1) = zno3phy
340               trbio(ji,jj,jk, 2) = znh4phy
341               trbio(ji,jj,jk, 3) = zphynh4
342               trbio(ji,jj,jk, 4) = zphydom
343               trbio(ji,jj,jk, 5) = zphyzoo
344               trbio(ji,jj,jk, 6) = zphydet
345               trbio(ji,jj,jk, 7) = zdetzoo
346               trbio(ji,jj,jk, 9) = zzoodet
347               trbio(ji,jj,jk,10) = zzoobod
348               trbio(ji,jj,jk,11) = zzoonh4
349               trbio(ji,jj,jk,12) = zzoodom
350               trbio(ji,jj,jk,13) = znh4no3
351               trbio(ji,jj,jk,14) = zdomnh4
352               trbio(ji,jj,jk,15) = zdetnh4
353#endif
354#if defined key_trc_diaadd
355               trc2d(ji,jj, 1) = trc2d(ji,jj, 1) + zno3phy * ze3t(ji,jj,jk)         
356               trc2d(ji,jj, 2) = trc2d(ji,jj, 2) + znh4phy * ze3t(ji,jj,jk)
357               trc2d(ji,jj, 3) = trc2d(ji,jj, 3) + zphydom * ze3t(ji,jj,jk)
358               trc2d(ji,jj, 4) = trc2d(ji,jj, 4) + zphynh4 * ze3t(ji,jj,jk)
359               trc2d(ji,jj, 5) = trc2d(ji,jj, 5) + zphyzoo * ze3t(ji,jj,jk)
360               trc2d(ji,jj, 6) = trc2d(ji,jj, 6) + zphydet * ze3t(ji,jj,jk)
361               trc2d(ji,jj, 7) = trc2d(ji,jj, 7) + zdetzoo * ze3t(ji,jj,jk)
362               ! trend number 8 is in trcsed.F           
363               trc2d(ji,jj, 9) = trc2d(ji,jj, 9) + zzoodet * ze3t(ji,jj,jk)
364               trc2d(ji,jj,10) = trc2d(ji,jj,10) + zzoobod * ze3t(ji,jj,jk)
365               trc2d(ji,jj,11) = trc2d(ji,jj,11) + zzoonh4 * ze3t(ji,jj,jk)
366               trc2d(ji,jj,12) = trc2d(ji,jj,12) + zzoodom * ze3t(ji,jj,jk)
367               trc2d(ji,jj,13) = trc2d(ji,jj,13) + znh4no3 * ze3t(ji,jj,jk)
368               trc2d(ji,jj,14) = trc2d(ji,jj,14) + zdomnh4 * ze3t(ji,jj,jk)
369               trc2d(ji,jj,15) = trc2d(ji,jj,15) + zdetnh4 * ze3t(ji,jj,jk)
370             
371               trc2d(ji,jj,16) = trc2d(ji,jj,16) + (  zno3phy + znh4phy - zphynh4   &
372                  &                                 - zphydom - zphyzoo - zphydet  ) * ze3t(ji,jj,jk)
373               trc2d(ji,jj,17) = trc2d(ji,jj,17) + (  zphyzoo + zdetzoo - zzoodet   &
374                  &                                 - zzoobod - zzoonh4 - zzoodom  ) * ze3t(ji,jj,jk)
375               trc2d(ji,jj,18) = trc2d(ji,jj,18) + zdetdom * ze3t(ji,jj,jk)
376
377               trc3d(ji,jj,jk,1) =  zno3phy * 86400     
378               trc3d(ji,jj,jk,2) =  znh4phy * 86400     
379               trc3d(ji,jj,jk,3) =  znh4no3 * 86400     
380#endif
381               IF( l_trdtrc ) THEN
382                  ztrbio(ji,jj,jk,1) = zno3phy
383                  ztrbio(ji,jj,jk,2) = znh4phy
384                  ztrbio(ji,jj,jk,3) = zphynh4
385                  ztrbio(ji,jj,jk,4) = zphydom
386                  ztrbio(ji,jj,jk,5) = zphyzoo
387                  ztrbio(ji,jj,jk,6) = zphydet
388                  ztrbio(ji,jj,jk,7) = zdetzoo
389                  !  trend number 8 in trcsed
390                  ztrbio(ji,jj,jk,9) = zzoodet
391                  ztrbio(ji,jj,jk,10) = zzoobod
392                  ztrbio(ji,jj,jk,11) = zzoonh4
393                  ztrbio(ji,jj,jk,12) = zzoodom
394                  ztrbio(ji,jj,jk,13) = znh4no3
395                  ztrbio(ji,jj,jk,14) = zdomnh4
396                  ztrbio(ji,jj,jk,15) = zdetnh4
397                  ztrbio(ji,jj,jk,16) = zdetdom
398                  !  trend number 17 in trcexp
399                ENDIF
400
401
402               ! tracer flux at totox-point added to the general trend
403               tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) + zdeta
404               tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) + zzooa
405               tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) + zphya
406               tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + zno3a
407               tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + znh4a
408               tra(ji,jj,jk,jpdom) = tra(ji,jj,jk,jpdom) + zdoma
409               !
410            END DO
411         END DO
412      END DO
413
414#if defined key_trc_diaadd
415      ! Lateral boundary conditions on trc2d and trc3d
416      DO jl = 1, jp_lobster_2d
417          CALL lbc_lnk( trc2d(:,:,jl),'T', 1. )
418      END DO
419      DO jl = 1, jp_lobster_3d
420          CALL lbc_lnk( trc3d(:,:,1,jl),'T', 1. )
421      END DO 
422#endif
423
424#if defined key_trc_diabio
425      ! Lateral boundary conditions on trcbio
426      DO jl = 1, jp_lobster_trd
427          CALL lbc_lnk( trbio(:,:,1,jl),'T', 1. )
428      END DO 
429#endif
430      !
431      IF( l_trdtrc ) THEN
432!CDIRR COLLAPSE
433         DO jl = 1, jp_lobster_trd
434            CALL trd_mod_trc( ztrbio(:,:,:,jl), jl, kt )   ! handle the trend
435         END DO
436      ENDIF
437
438      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
439         WRITE(charout, FMT="('bio')")
440         CALL prt_ctl_trc_info(charout)
441         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm)
442      ENDIF
443
444   END SUBROUTINE trc_bio
445
446#else
447   !!======================================================================
448   !!  Dummy module :                                   No PISCES bio-model
449   !!======================================================================
450CONTAINS
451   SUBROUTINE trc_bio( kt )                   ! Empty routine
452      INTEGER, INTENT( in ) ::   kt
453      WRITE(*,*) 'trc_bio: You should not have seen this print! error?', kt
454   END SUBROUTINE trc_bio
455#endif 
456
457   !!======================================================================
458END MODULE  trcbio
Note: See TracBrowser for help on using the repository browser.