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.
p5zmicro.F90 in branches/CNRS/dev_r4826_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z – NEMO

source: branches/CNRS/dev_r4826_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p5zmicro.F90 @ 5266

Last change on this file since 5266 was 5266, checked in by cetlod, 9 years ago

PISCES_QUOTA : First commits, see ticket #1516

  • Property svn:executable set to *
File size: 20.3 KB
Line 
1MODULE p5zmicro
2   !!======================================================================
3   !!                         ***  MODULE p5zmicro  ***
4   !! TOP :   PISCES Compute the sources/sinks for microzooplankton
5   !!======================================================================
6   !! History :   1.0  !  2004     (O. Aumont) Original code
7   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  F90
8   !!             3.4  !  2011-06  (O. Aumont, C. Ethe) Quota model for iron
9   !!----------------------------------------------------------------------
10#if defined key_pisces_quota
11   !!----------------------------------------------------------------------
12   !!   'key_pisces_quota'                                 PISCES bio-model
13   !!----------------------------------------------------------------------
14   !!   p5z_micro       :   Compute the sources/sinks for microzooplankton
15   !!   p5z_micro_init  :   Initialize and read the appropriate namelist
16   !!----------------------------------------------------------------------
17   USE oce_trc         !  shared variables between ocean and passive tracers
18   USE trc             !  passive tracers common variables
19   USE sms_pisces      !  PISCES Source Minus Sink variables
20   USE p5zlim          !  Co-limitations
21   USE p5zsink         !  vertical flux of particulate matter due to sinking
22   USE p4zint          !  interpolation and computation of various fields
23   USE p5zprod         !  production
24   USE iom             !  I/O manager
25   USE prtctl_trc      !  print control for debugging
26
27   IMPLICIT NONE
28   PRIVATE
29
30   PUBLIC   p5z_micro         ! called in p5zbio.F90
31   PUBLIC   p5z_micro_init    ! called in trcsms_pisces.F90
32
33   !! * Shared module variables
34   REAL(wp), PUBLIC ::  part        !: part of calcite not dissolved in microzoo guts
35   REAL(wp), PUBLIC ::  xprefc     !: microzoo preference for POC
36   REAL(wp), PUBLIC ::  xprefn     !: microzoo preference for nanophyto
37   REAL(wp), PUBLIC ::  xprefp     !: microzoo preference for picophyto
38   REAL(wp), PUBLIC ::  xprefd     !: microzoo preference for diatoms
39   REAL(wp), PUBLIC ::  xprefz     !: microzoo preference for microzoo
40   REAL(wp), PUBLIC ::  xthreshdia  !: diatoms feeding threshold for microzooplankton
41   REAL(wp), PUBLIC ::  xthreshpic  !: picophyto feeding threshold for microzooplankton
42   REAL(wp), PUBLIC ::  xthreshphy  !: nanophyto threshold for microzooplankton
43   REAL(wp), PUBLIC ::  xthreshzoo  !: microzoo threshold for microzooplankton
44   REAL(wp), PUBLIC ::  xthreshpoc  !: poc threshold for microzooplankton
45   REAL(wp), PUBLIC ::  xthresh     !: feeding threshold for microzooplankton
46   REAL(wp), PUBLIC ::  resrat      !: exsudation rate of microzooplankton
47   REAL(wp), PUBLIC ::  mzrat       !: microzooplankton mortality rate
48   REAL(wp), PUBLIC ::  grazrat     !: maximal microzoo grazing rate
49   REAL(wp), PUBLIC ::  xkgraz      !: non assimilated fraction of P by microzoo
50   REAL(wp), PUBLIC ::  unassc      !: Efficicency of microzoo growth
51   REAL(wp), PUBLIC ::  unassn      !: Efficicency of microzoo growth
52   REAL(wp), PUBLIC ::  unassp      !: Efficicency of microzoo growth
53   REAL(wp), PUBLIC ::  epsher      !: half sturation constant for grazing 1
54
55
56   !!* Substitution
57#  include "top_substitute.h90"
58   !!----------------------------------------------------------------------
59   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
60   !! $Id: p4zmicro.F90 3160 2011-11-20 14:27:18Z cetlod $
61   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
62   !!----------------------------------------------------------------------
63
64CONTAINS
65
66   SUBROUTINE p5z_micro( kt, jnt )
67      !!---------------------------------------------------------------------
68      !!                     ***  ROUTINE p5z_micro  ***
69      !!
70      !! ** Purpose :   Compute the sources/sinks for microzooplankton
71      !!
72      !! ** Method  : - ???
73      !!---------------------------------------------------------------------
74      INTEGER, INTENT(in) ::  kt  ! ocean time step
75      INTEGER, INTENT(in) ::  jnt 
76      !
77      INTEGER  :: ji, jj, jk
78      REAL(wp) :: zcompadi, zcompaz , zcompaph, zcompapoc, zcompapon, zcompapop
79      REAL(wp) :: zcompapi, zgraze  , zdenom, zfact, zstep, zfood, zfoodlim
80      REAL(wp) :: ztmp1, ztmp2, ztmp3, ztmp4, ztmp5, ztmptot
81      REAL(wp) :: zepsherf, zepshert, zepsherv, zrespirc, zrespirn, zrespirp, zbasresb, zbasresi
82      REAL(wp) :: zgraztotc, zgraztotn, zgraztotp, zgraztotf
83      REAL(wp) :: zexcess, zgradoc, zgradon, zgradop, zgrafer
84      REAL(wp) :: zgrapoc, zgrapon, zgrapop, zgrapof, zprcaca, zmortz
85      REAL(wp) :: zrespz, ztortz, zgrasratf, zgrasratn, zgrasratp
86      REAL(wp) :: zgraznc, zgraznn, zgraznp, zgrazpoc, zgrazpon, zgrazpop, zgrazpof
87      REAL(wp) :: zgrazdc, zgrazdn, zgrazdp, zgrazdf, zgraznf, zgrazz
88      REAL(wp) :: zgrazpc, zgrazpn, zgrazpp, zgrazpf, zbeta, zrfact2
89      REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing
90      CHARACTER (len=25) :: charout
91      !!---------------------------------------------------------------------
92      !
93      IF( nn_timing == 1 )  CALL timing_start('p5z_micro')
94      !
95      IF( ln_diatrc .AND. lk_iomput )  CALL wrk_alloc( jpi, jpj, jpk, zgrazing )
96      !
97      DO jk = 1, jpkm1
98         DO jj = 1, jpj
99            DO ji = 1, jpi
100               zcompaz = MAX( ( trn(ji,jj,jk,jpzoo) - 1.e-9 ), 0.e0 )
101               zstep   = xstep
102# if defined key_degrad
103               zstep = zstep * facvol(ji,jj,jk)
104# endif
105               zfact   = zstep * tgfunc2(ji,jj,jk) * zcompaz
106
107               !   Michaelis-Menten mortality rates of microzooplankton
108               !   -----------------------------------------------------
109               zrespz = resrat * zfact * ( trn(ji,jj,jk,jpzoo) / ( xkmort + trn(ji,jj,jk,jpzoo) )  &
110               &        + 3. * nitrfac(ji,jj,jk) )
111
112               !   Zooplankton mortality. A square function has been selected with
113               !   no real reason except that it seems to be more stable and may mimic predation.
114               !   ------------------------------------------------------------------------------
115               ztortz = mzrat * 1.e6 * zfact * trn(ji,jj,jk,jpzoo)
116
117               !   Computation of the abundance of the preys
118               !   A threshold can be specified in the namelist
119               !   --------------------------------------------
120               zcompadi  = MIN( MAX( ( trn(ji,jj,jk,jpdia) - xthreshdia ), 0.e0 ), xsizedia )
121               zcompaph  = MAX( ( trn(ji,jj,jk,jpphy) - xthreshphy ), 0.e0 )
122               zcompaz   = MAX( ( trn(ji,jj,jk,jpzoo) - xthreshzoo ), 0.e0 )
123               zcompapi  = MAX( ( trn(ji,jj,jk,jppic) - xthreshpic ), 0.e0 )
124               zcompapoc = MAX( ( trn(ji,jj,jk,jppoc) - xthreshpoc ), 0.e0 )
125               
126               !   Microzooplankton grazing
127               !   ------------------------
128               zfood     = xprefn * zcompaph + xprefc * zcompapoc + xprefd * zcompadi   &
129               &           + xprefz * zcompaz + xprefp * zcompapi
130               zfoodlim  = MAX( 0. , zfood - min(xthresh,0.5*zfood) )
131               zdenom    = zfoodlim / ( xkgraz + zfoodlim )
132               zgraze    = grazrat * zstep * tgfunc2(ji,jj,jk) * trn(ji,jj,jk,jpzoo) 
133
134               !   An active switching parameterization is used here.
135               !   We don't use the KTW parameterization proposed by
136               !   Vallina et al. because it tends to produce to steady biomass
137               !   composition and the variance of Chl is too low as it grazes
138               !   too strongly on winning organisms. Thus, instead of a square
139               !   a 1.5 power value is used which decreases the pressure on the
140               !   most abundant species
141               !   ------------------------------------------------------------ 
142               ztmp1 = xprefn * zcompaph**1.5
143               ztmp2 = xprefp * zcompapi**1.5
144               ztmp3 = xprefc * zcompapoc**1.5
145               ztmp4 = xprefd * zcompadi**1.5
146               ztmp5 = xprefz * zcompaz**1.5
147               ztmptot = ztmp1 + ztmp2 + ztmp3 + ztmp4 + ztmp5 + rtrn
148               ztmp1 = ztmp1 / ztmptot
149               ztmp2 = ztmp2 / ztmptot
150               ztmp3 = ztmp3 / ztmptot
151               ztmp4 = ztmp4 / ztmptot
152               ztmp5 = ztmp5 / ztmptot
153
154               !   Microzooplankton regular grazing on the different preys
155               !   -------------------------------------------------------
156               zgraznc   = zgraze  * ztmp1  * zdenom
157               zgraznn   = zgraznc * trn(ji,jj,jk,jpnph) / (trn(ji,jj,jk,jpphy) + rtrn)
158               zgraznp   = zgraznc * trn(ji,jj,jk,jppph) / (trn(ji,jj,jk,jpphy) + rtrn)
159               zgraznf   = zgraznc * trn(ji,jj,jk,jpnfe) / (trn(ji,jj,jk,jpphy) + rtrn)
160               zgrazpc   = zgraze  * ztmp2  * zdenom
161               zgrazpn   = zgrazpc * trn(ji,jj,jk,jpnpi) / (trn(ji,jj,jk,jppic) + rtrn)
162               zgrazpp   = zgrazpc * trn(ji,jj,jk,jpppi) / (trn(ji,jj,jk,jppic) + rtrn)
163               zgrazpf   = zgrazpc * trn(ji,jj,jk,jppfe) / (trn(ji,jj,jk,jppic) + rtrn)
164               zgrazz    = zgraze  * ztmp5   * zdenom
165               zgrazpoc  = zgraze  * ztmp3   * zdenom
166               zgrazpon  = zgrazpoc * trn(ji,jj,jk,jppon) / ( trn(ji,jj,jk,jppoc) + rtrn )
167               zgrazpop  = zgrazpoc * trn(ji,jj,jk,jppop) / ( trn(ji,jj,jk,jppoc) + rtrn )
168               zgrazdc   = zgraze  * ztmp4  * zdenom
169               zgrazdn   = zgrazdc * trn(ji,jj,jk,jpndi) / (trn(ji,jj,jk,jpdia) + rtrn)
170               zgrazdp   = zgrazdc * trn(ji,jj,jk,jppdi) / (trn(ji,jj,jk,jpdia) + rtrn)
171               zgrazdf   = zgrazdc * trn(ji,jj,jk,jpdfe) / (trn(ji,jj,jk,jpdia) + rtrn)
172               zgrazpof  = zgrazpoc* trn(ji,jj,jk,jpsfe) / (trn(ji,jj,jk,jppoc) + rtrn)
173               !
174               zgraztotc = zgraznc + zgrazpoc + zgrazdc + zgrazz + zgrazpc
175               zgraztotn = zgraznn + zgrazpn + zgrazpon + zgrazdn + zgrazz * no3rat3
176               zgraztotp = zgraznp + zgrazpp + zgrazpop + zgrazdp + zgrazz * po4rat3
177               zgraztotf = zgraznf + zgrazpf + zgrazpof + zgrazdf + zgrazz * ferat3
178               !
179               ! Grazing by microzooplankton
180               IF( ln_diatrc .AND. lk_iomput )  zgrazing(ji,jj,jk) = zgraztotc
181
182               !   Stoichiometruc ratios of the food ingested by zooplanton
183               !   --------------------------------------------------------
184               zgrasratf =  (zgraztotf + rtrn) / ( zgraztotc + rtrn )
185               zgrasratn =  (zgraztotn + rtrn) / ( zgraztotc + rtrn )
186               zgrasratp =  (zgraztotp + rtrn) / ( zgraztotc + rtrn )
187
188               !   Growth efficiency is made a function of the quality
189               !   and the quantity of the preys
190               !   ---------------------------------------------------
191               zepshert  = MIN( 1., zgrasratn/ no3rat3, zgrasratp/ po4rat3, zgrasratf / ferat3)
192               zbeta = 1./ (epsher - 0.2)
193               zepsherf = 0.2 + 1./ (zbeta + 0.04 * 12. * zfood * 1E6 )
194               zepsherv  = zepsherf * zepshert
195
196               !   Respiration of microzooplankton
197               !   Excess carbon in the food is used preferentially
198               !   ------------------------------------------------
199               zexcess  = zgraztotc * zepsherf * (1.0 - zepshert) 
200               zbasresb = MAX(0., zrespz - zexcess)
201               zbasresi = zexcess + MIN(0., zrespz - zexcess) 
202               zrespirc = 0.2 * zepsherv * zgraztotc + zbasresb
203
204               !   Voiding of the excessive elements as DOM
205               !   ----------------------------------------
206               zgradoc   = (1. - unassc - zepsherv) * zgraztotc - zbasresi 
207               zgradon   = (1. - unassn) * zgraztotn - zepsherv * no3rat3 * zgraztotc
208               zgradop   = (1. - unassp) * zgraztotp - zepsherv * po4rat3 * zgraztotc
209               zgrafer   = (1. - unassc) * zgraztotf - zepsherv * ferat3 * zgraztotc
210
211               !   Defecation as a result of non assimilated products
212               !   --------------------------------------------------
213               zgrapoc   = zgraztotc * unassc
214               zgrapon   = zgraztotn * unassn
215               zgrapop   = zgraztotp * unassp
216               zgrapof   = zgraztotf * unassc
217
218               !   Update of the TRA arrays
219               !   ------------------------
220               zrespirn  = zrespirc * no3rat3
221               zrespirp  = zrespirc * po4rat3
222               zgrafer   = zgrafer + zrespirc * ferat3
223
224               tra(ji,jj,jk,jppo4) = tra(ji,jj,jk,jppo4) + zrespirp
225               tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + zrespirn
226               tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) + zgradoc
227               tra(ji,jj,jk,jpdon) = tra(ji,jj,jk,jpdon) + zgradon
228               tra(ji,jj,jk,jpdop) = tra(ji,jj,jk,jpdop) + zgradop
229               tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) - o2ut * zrespirc
230               tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + zgrafer
231               tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) + zepsherv * zgraztotc - zrespirc   &
232               &                     - ztortz - zgrazz
233               tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) - zgraznc
234               tra(ji,jj,jk,jpnph) = tra(ji,jj,jk,jpnph) - zgraznn
235               tra(ji,jj,jk,jppph) = tra(ji,jj,jk,jppph) - zgraznp
236               tra(ji,jj,jk,jppic) = tra(ji,jj,jk,jppic) - zgrazpc
237               tra(ji,jj,jk,jpnpi) = tra(ji,jj,jk,jpnpi) - zgrazpn
238               tra(ji,jj,jk,jpppi) = tra(ji,jj,jk,jpppi) - zgrazpp
239               tra(ji,jj,jk,jpdia) = tra(ji,jj,jk,jpdia) - zgrazdc
240               tra(ji,jj,jk,jpndi) = tra(ji,jj,jk,jpndi) - zgrazdn
241               tra(ji,jj,jk,jppdi) = tra(ji,jj,jk,jppdi) - zgrazdp
242               tra(ji,jj,jk,jpnch) = tra(ji,jj,jk,jpnch) - zgraznc * trn(ji,jj,jk,jpnch)/(trn(ji,jj,jk,jpphy)+rtrn)
243               tra(ji,jj,jk,jppch) = tra(ji,jj,jk,jppch) - zgrazpc * trn(ji,jj,jk,jppch)/(trn(ji,jj,jk,jppic)+rtrn)
244               tra(ji,jj,jk,jpdch) = tra(ji,jj,jk,jpdch) - zgrazdc * trn(ji,jj,jk,jpdch)/(trn(ji,jj,jk,jpdia)+rtrn)
245               tra(ji,jj,jk,jpdsi) = tra(ji,jj,jk,jpdsi) - zgrazdc * trn(ji,jj,jk,jpdsi)/(trn(ji,jj,jk,jpdia)+rtrn)
246               tra(ji,jj,jk,jpgsi) = tra(ji,jj,jk,jpgsi) + zgrazdc * trn(ji,jj,jk,jpdsi)/(trn(ji,jj,jk,jpdia)+rtrn)
247               tra(ji,jj,jk,jpnfe) = tra(ji,jj,jk,jpnfe) - zgraznf
248               tra(ji,jj,jk,jppfe) = tra(ji,jj,jk,jppfe) - zgrazpf
249               tra(ji,jj,jk,jpdfe) = tra(ji,jj,jk,jpdfe) - zgrazdf
250               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + ztortz + zgrapoc - zgrazpoc 
251               tra(ji,jj,jk,jppon) = tra(ji,jj,jk,jppon) + no3rat3 * ztortz + zgrapon - zgrazpon
252               tra(ji,jj,jk,jppop) = tra(ji,jj,jk,jppop) + po4rat3 * ztortz + zgrapop - zgrazpop
253               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + ferat3 * ztortz  + zgrapof - zgrazpof
254#if defined key_kriest
255               tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) + zgrapoc * xkr_dmicro
256#endif
257               !
258               ! calcite production
259               zprcaca = xfracal(ji,jj,jk) * zgraznc
260               prodcal(ji,jj,jk) = prodcal(ji,jj,jk) + zprcaca  ! prodcal=prodcal(nanophy)+prodcal(microzoo)+prodcal(mesozoo)
261               !
262               zprcaca = part * zprcaca
263               tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + zrespirc - zprcaca
264               tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) - 2. * zprcaca
265               tra(ji,jj,jk,jpcal) = tra(ji,jj,jk,jpcal) + rno3 * zrespirn + zprcaca
266#if defined key_kriest
267               tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) + ztortz * xkr_dmicro &
268                                                         - zgrazpoc * trn(ji,jj,jk,jpnum) / ( trn(ji,jj,jk,jppoc) + rtrn )
269#endif
270            END DO
271         END DO
272      END DO
273      !
274      IF( ln_diatrc .AND. lk_iomput .AND. jnt == nrdttrc ) THEN
275         zrfact2 = 1.e3 * rfact2r
276         CALL iom_put( "GRAZ1" , zgrazing(:,:,:) * zrfact2 * tmask(:,:,:) )  ! Total grazing of phyto by zooplankton
277      ENDIF
278      !
279      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
280         WRITE(charout, FMT="('micro')")
281         CALL prt_ctl_trc_info(charout)
282         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm)
283      ENDIF
284      !
285      IF( ln_diatrc .AND. lk_iomput )  CALL wrk_dealloc( jpi, jpj, jpk, zgrazing )
286      !
287      IF( nn_timing == 1 )  CALL timing_stop('p5z_micro')
288      !
289   END SUBROUTINE p5z_micro
290
291
292   SUBROUTINE p5z_micro_init
293
294      !!----------------------------------------------------------------------
295      !!                  ***  ROUTINE p5z_micro_init  ***
296      !!
297      !! ** Purpose :   Initialization of microzooplankton parameters
298      !!
299      !! ** Method  :   Read the nampiszoo namelist and check the parameters
300      !!                called at the first timestep (nittrc000)
301      !!
302      !! ** input   :   Namelist nampiszoo
303      !!
304      !!----------------------------------------------------------------------
305
306      NAMELIST/nampiszoo/ part, grazrat, resrat, mzrat, xprefc, xprefn, &
307         &                xprefp, xprefd, xprefz, xthreshdia, xthreshphy, &
308         &                xthreshpic, xthreshpoc, xthreshzoo, xthresh, xkgraz, &
309         &                epsher, unassc, unassn, unassp
310
311      INTEGER :: ios                 ! Local integer output status for namelist read
312
313      REWIND( numnatp_ref )              ! Namelist nampiszoo in reference namelist : Pisces microzooplankton
314      READ  ( numnatp_ref, nampiszoo, IOSTAT = ios, ERR = 901)
315901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiszoo in reference namelist', lwp )
316
317      REWIND( numnatp_cfg )              ! Namelist nampiszoo in configuration namelist : Pisces microzooplankton
318      READ  ( numnatp_cfg, nampiszoo, IOSTAT = ios, ERR = 902 )
319902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiszoo in configuration namelist', lwp )
320      IF(lwm) WRITE ( numonp, nampiszoo )
321
322      IF(lwp) THEN                         ! control print
323         WRITE(numout,*) ' '
324         WRITE(numout,*) ' Namelist parameters for microzooplankton, nampiszoo'
325         WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
326         WRITE(numout,*) '    part of calcite not dissolved in microzoo guts  part        =', part
327         WRITE(numout,*) '    microzoo preference for POC                     xprefc     =', xprefc
328         WRITE(numout,*) '    microzoo preference for nano                    xprefn     =', xprefn
329         WRITE(numout,*) '    microzoo preference for pico                    xprefp     =', xprefp
330         WRITE(numout,*) '    microzoo preference for diatoms                 xprefd     =', xprefd
331         WRITE(numout,*) '    microzoo preference for microzoo                xprefz     =', xprefz
332         WRITE(numout,*) '    diatoms feeding threshold  for microzoo         xthreshdia  =', xthreshdia
333         WRITE(numout,*) '    nanophyto feeding threshold for microzoo        xthreshphy  =', xthreshphy
334         WRITE(numout,*) '    picophyto feeding threshold for microzoo        xthreshpic  =', xthreshpic
335         WRITE(numout,*) '    poc feeding threshold for microzoo              xthreshpoc  =', xthreshpoc
336         WRITE(numout,*) '    microzoo feeding threshold for microzoo         xthreshzoo  =', xthreshzoo
337         WRITE(numout,*) '    feeding threshold for microzooplankton          xthresh     =', xthresh
338         WRITE(numout,*) '    exsudation rate of microzooplankton             resrat      =', resrat
339         WRITE(numout,*) '    microzooplankton mortality rate                 mzrat       =', mzrat
340         WRITE(numout,*) '    maximal microzoo grazing rate                   grazrat     =', grazrat
341         WRITE(numout,*) '    C egested fraction of fodd by microzoo          unassc      =', unassc
342         WRITE(numout,*) '    N egested fraction of fodd by microzoo          unassn      =', unassn
343         WRITE(numout,*) '    P egested fraction of fodd by microzoo          unassp      =', unassp
344         WRITE(numout,*) '    Efficicency of microzoo growth                  epsher      =', epsher
345         WRITE(numout,*) '    half sturation constant for grazing 1           xkgraz      =', xkgraz
346      ENDIF
347
348   END SUBROUTINE p5z_micro_init
349
350#else
351   !!======================================================================
352   !!  Dummy module :                                   No PISCES bio-model
353   !!======================================================================
354CONTAINS
355   SUBROUTINE p5z_micro                    ! Empty routine
356   END SUBROUTINE p5z_micro
357#endif 
358
359   !!======================================================================
360END MODULE  p5zmicro
Note: See TracBrowser for help on using the repository browser.