source: NEMO/trunk/src/TOP/PISCES/P4Z/p5zmicro.F90 @ 10227

Last change on this file since 10227 was 10227, checked in by aumont, 2 years ago

rename p4zice and p5zice to their orginal names p4zlim and p5zlim. Namelists files should be changed accordingly.

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