source: NEMO/trunk/src/TOP/PISCES/P4Z/p4zmeso.F90 @ 12377

Last change on this file since 12377 was 12377, checked in by acc, 11 months ago

The big one. Merging all 2019 developments from the option 1 branch back onto the trunk.

This changeset reproduces 2019/dev_r11943_MERGE_2019 on the trunk using a 2-URL merge
onto a working copy of the trunk. I.e.:

svn merge —ignore-ancestry \

svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/trunk \
svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/branches/2019/dev_r11943_MERGE_2019 ./

The —ignore-ancestry flag avoids problems that may otherwise arise from the fact that
the merge history been trunk and branch may have been applied in a different order but
care has been taken before this step to ensure that all applicable fixes and updates
are present in the merge branch.

The trunk state just before this step has been branched to releases/release-4.0-HEAD
and that branch has been immediately tagged as releases/release-4.0.2. Any fixes
or additions in response to tickets on 4.0, 4.0.1 or 4.0.2 should be done on
releases/release-4.0-HEAD. From now on future 'point' releases (e.g. 4.0.2) will
remain unchanged with periodic releases as needs demand. Note release-4.0-HEAD is a
transitional naming convention. Future full releases, say 4.2, will have a release-4.2
branch which fulfills this role and the first point release (e.g. 4.2.0) will be made
immediately following the release branch creation.

2020 developments can be started from any trunk revision later than this one.

  • Property svn:keywords set to Id
File size: 17.5 KB
Line 
1MODULE p4zmeso
2   !!======================================================================
3   !!                         ***  MODULE p4zmeso  ***
4   !! TOP :   PISCES Compute the sources/sinks for mesozooplankton
5   !!======================================================================
6   !! History :   1.0  !  2002     (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   !!   p4z_meso       : Compute the sources/sinks for mesozooplankton
11   !!   p4z_meso_init  : Initialization of the parameters for mesozooplankton
12   !!----------------------------------------------------------------------
13   USE oce_trc         ! shared variables between ocean and passive tracers
14   USE trc             ! passive tracers common variables
15   USE sms_pisces      ! PISCES Source Minus Sink variables
16   USE p4zprod         ! production
17   USE prtctl_trc      ! print control for debugging
18   USE iom             ! I/O manager
19
20   IMPLICIT NONE
21   PRIVATE
22
23   PUBLIC   p4z_meso              ! called in p4zbio.F90
24   PUBLIC   p4z_meso_init         ! called in trcsms_pisces.F90
25
26   REAL(wp), PUBLIC ::  part2        !: part of calcite not dissolved in mesozoo guts
27   REAL(wp), PUBLIC ::  xpref2d      !: mesozoo preference for diatoms
28   REAL(wp), PUBLIC ::  xpref2n      !: mesozoo preference for nanophyto
29   REAL(wp), PUBLIC ::  xpref2z      !: mesozoo preference for microzooplankton
30   REAL(wp), PUBLIC ::  xpref2c      !: mesozoo preference for POC
31   REAL(wp), PUBLIC ::  xthresh2zoo  !: zoo feeding threshold for mesozooplankton
32   REAL(wp), PUBLIC ::  xthresh2dia  !: diatoms feeding threshold for mesozooplankton
33   REAL(wp), PUBLIC ::  xthresh2phy  !: nanophyto feeding threshold for mesozooplankton
34   REAL(wp), PUBLIC ::  xthresh2poc  !: poc feeding threshold for mesozooplankton
35   REAL(wp), PUBLIC ::  xthresh2     !: feeding threshold for mesozooplankton
36   REAL(wp), PUBLIC ::  resrat2      !: exsudation rate of mesozooplankton
37   REAL(wp), PUBLIC ::  mzrat2       !: microzooplankton mortality rate
38   REAL(wp), PUBLIC ::  grazrat2     !: maximal mesozoo grazing rate
39   REAL(wp), PUBLIC ::  xkgraz2      !: non assimilated fraction of P by mesozoo
40   REAL(wp), PUBLIC ::  unass2       !: Efficicency of mesozoo growth
41   REAL(wp), PUBLIC ::  sigma2       !: Fraction of mesozoo excretion as DOM
42   REAL(wp), PUBLIC ::  epsher2      !: growth efficiency
43   REAL(wp), PUBLIC ::  epsher2min   !: minimum growth efficiency at high food for grazing 2
44   REAL(wp), PUBLIC ::  grazflux     !: mesozoo flux feeding rate
45
46   !! * Substitutions
47#  include "do_loop_substitute.h90"
48   !!----------------------------------------------------------------------
49   !! NEMO/TOP 4.0 , NEMO Consortium (2018)
50   !! $Id$
51   !! Software governed by the CeCILL license (see ./LICENSE)
52   !!----------------------------------------------------------------------
53CONTAINS
54
55   SUBROUTINE p4z_meso( kt, knt, Kbb, Krhs )
56      !!---------------------------------------------------------------------
57      !!                     ***  ROUTINE p4z_meso  ***
58      !!
59      !! ** Purpose :   Compute the sources/sinks for mesozooplankton
60      !!
61      !! ** Method  : - ???
62      !!---------------------------------------------------------------------
63      INTEGER, INTENT(in) ::   kt, knt   ! ocean time step and ???
64      INTEGER, INTENT(in)  ::  Kbb, Krhs ! time level indices
65      !
66      INTEGER  :: ji, jj, jk
67      REAL(wp) :: zcompadi, zcompaph, zcompapoc, zcompaz, zcompam
68      REAL(wp) :: zgraze2 , zdenom, zdenom2
69      REAL(wp) :: zfact   , zfood, zfoodlim, zproport, zbeta
70      REAL(wp) :: zmortzgoc, zfrac, zfracfe, zratio, zratio2, zfracal, zgrazcal
71      REAL(wp) :: zepsherf, zepshert, zepsherv, zgrarsig, zgraztotc, zgraztotn, zgraztotf
72      REAL(wp) :: zgrarem2, zgrafer2, zgrapoc2, zprcaca, zmortz, zgrasrat, zgrasratn
73      REAL(wp) :: zrespz, ztortz, zgrazd, zgrazz, zgrazpof
74      REAL(wp) :: zgrazn, zgrazpoc, zgraznf, zgrazf
75      REAL(wp) :: zgrazfffp, zgrazfffg, zgrazffep, zgrazffeg
76      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing2, zfezoo2, zz2ligprod
77      CHARACTER (len=25) :: charout
78      !!---------------------------------------------------------------------
79      !
80      IF( ln_timing )   CALL timing_start('p4z_meso')
81      !
82      DO_3D_11_11( 1, jpkm1 )
83         zcompam   = MAX( ( tr(ji,jj,jk,jpmes,Kbb) - 1.e-9 ), 0.e0 )
84         zfact     = xstep * tgfunc2(ji,jj,jk) * zcompam
85
86         !  Respiration rates of both zooplankton
87         !  -------------------------------------
88         zrespz    = resrat2 * zfact * ( tr(ji,jj,jk,jpmes,Kbb) / ( xkmort + tr(ji,jj,jk,jpmes,Kbb) )  &
89         &           + 3. * nitrfac(ji,jj,jk) )
90
91         !  Zooplankton mortality. A square function has been selected with
92         !  no real reason except that it seems to be more stable and may mimic predation
93         !  ---------------------------------------------------------------
94         ztortz    = mzrat2 * 1.e6 * zfact * tr(ji,jj,jk,jpmes,Kbb)  * (1. - nitrfac(ji,jj,jk) )
95         !
96         zcompadi  = MAX( ( tr(ji,jj,jk,jpdia,Kbb) - xthresh2dia ), 0.e0 )
97         zcompaz   = MAX( ( tr(ji,jj,jk,jpzoo,Kbb) - xthresh2zoo ), 0.e0 )
98         zcompapoc = MAX( ( tr(ji,jj,jk,jppoc,Kbb) - xthresh2poc ), 0.e0 )
99         ! Size effect of nanophytoplankton on grazing : the smaller it is, the less prone
100         ! it is to predation by mesozooplankton
101         ! -------------------------------------------------------------------------------
102         zcompaph  = MAX( ( tr(ji,jj,jk,jpphy,Kbb) - xthresh2phy ), 0.e0 ) &
103            &      * MIN(1., MAX( 0., ( quotan(ji,jj,jk) - 0.2) / 0.3 ) )
104
105         !   Mesozooplankton grazing
106         !   ------------------------
107         zfood     = xpref2d * zcompadi + xpref2z * zcompaz + xpref2n * zcompaph + xpref2c * zcompapoc 
108         zfoodlim  = MAX( 0., zfood - MIN( 0.5 * zfood, xthresh2 ) )
109         zdenom    = zfoodlim / ( xkgraz2 + zfoodlim )
110         zdenom2   = zdenom / ( zfood + rtrn )
111         zgraze2   = grazrat2 * xstep * tgfunc2(ji,jj,jk) * tr(ji,jj,jk,jpmes,Kbb) * (1. - nitrfac(ji,jj,jk)) 
112
113         zgrazd    = zgraze2  * xpref2d  * zcompadi  * zdenom2 
114         zgrazz    = zgraze2  * xpref2z  * zcompaz   * zdenom2 
115         zgrazn    = zgraze2  * xpref2n  * zcompaph  * zdenom2 
116         zgrazpoc  = zgraze2  * xpref2c  * zcompapoc * zdenom2 
117
118         zgraznf   = zgrazn   * tr(ji,jj,jk,jpnfe,Kbb) / ( tr(ji,jj,jk,jpphy,Kbb) + rtrn)
119         zgrazf    = zgrazd   * tr(ji,jj,jk,jpdfe,Kbb) / ( tr(ji,jj,jk,jpdia,Kbb) + rtrn)
120         zgrazpof  = zgrazpoc * tr(ji,jj,jk,jpsfe,Kbb) / ( tr(ji,jj,jk,jppoc,Kbb) + rtrn)
121
122         !  Mesozooplankton flux feeding on GOC
123         !  ----------------------------------
124         zgrazffeg = grazflux  * xstep * wsbio4(ji,jj,jk)      &
125         &           * tgfunc2(ji,jj,jk) * tr(ji,jj,jk,jpgoc,Kbb) * tr(ji,jj,jk,jpmes,Kbb) &
126         &           * (1. - nitrfac(ji,jj,jk))
127         zgrazfffg = zgrazffeg * tr(ji,jj,jk,jpbfe,Kbb) / (tr(ji,jj,jk,jpgoc,Kbb) + rtrn)
128         zgrazffep = grazflux  * xstep *  wsbio3(ji,jj,jk)     &
129         &           * tgfunc2(ji,jj,jk) * tr(ji,jj,jk,jppoc,Kbb) * tr(ji,jj,jk,jpmes,Kbb) &
130         &           * (1. - nitrfac(ji,jj,jk))
131         zgrazfffp = zgrazffep * tr(ji,jj,jk,jpsfe,Kbb) / (tr(ji,jj,jk,jppoc,Kbb) + rtrn)
132         !
133         zgraztotc = zgrazd + zgrazz + zgrazn + zgrazpoc + zgrazffep + zgrazffeg
134         ! Compute the proportion of filter feeders
135         zproport  = (zgrazffep + zgrazffeg)/(rtrn + zgraztotc)
136         ! Compute fractionation of aggregates. It is assumed that
137         ! diatoms based aggregates are more prone to fractionation
138         ! since they are more porous (marine snow instead of fecal pellets)
139         zratio    = tr(ji,jj,jk,jpgsi,Kbb) / ( tr(ji,jj,jk,jpgoc,Kbb) + rtrn )
140         zratio2   = zratio * zratio
141         zfrac     = zproport * grazflux  * xstep * wsbio4(ji,jj,jk)      &
142         &          * tr(ji,jj,jk,jpgoc,Kbb) * tr(ji,jj,jk,jpmes,Kbb)          &
143         &          * ( 0.2 + 3.8 * zratio2 / ( 1.**2 + zratio2 ) )
144         zfracfe   = zfrac * tr(ji,jj,jk,jpbfe,Kbb) / (tr(ji,jj,jk,jpgoc,Kbb) + rtrn)
145
146         zgrazffep = zproport * zgrazffep
147         zgrazffeg = zproport * zgrazffeg
148         zgrazfffp = zproport * zgrazfffp
149         zgrazfffg = zproport * zgrazfffg
150         zgraztotc = zgrazd + zgrazz + zgrazn + zgrazpoc + zgrazffep + zgrazffeg
151         zgraztotn = zgrazd * quotad(ji,jj,jk) + zgrazz + zgrazn * quotan(ji,jj,jk)   &
152         &   + zgrazpoc + zgrazffep + zgrazffeg
153         zgraztotf = zgrazf + zgraznf + zgrazz * ferat3 + zgrazpof + zgrazfffp + zgrazfffg
154
155         ! Total grazing ( grazing by microzoo is already computed in p4zmicro )
156         zgrazing2(ji,jj,jk) = zgraztotc
157
158         !    Mesozooplankton efficiency
159         !    --------------------------
160         zgrasrat  =  ( zgraztotf + rtrn )/ ( zgraztotc + rtrn )
161         zgrasratn =  ( zgraztotn + rtrn )/ ( zgraztotc + rtrn )
162         zepshert  = MIN( 1., zgrasratn, zgrasrat / ferat3)
163         zbeta     = MAX(0., (epsher2 - epsher2min) )
164         zepsherf  = epsher2min + zbeta / ( 1.0 + 0.04E6 * 12. * zfood * zbeta ) 
165         zepsherv  = zepsherf * zepshert 
166
167         zgrarem2  = zgraztotc * ( 1. - zepsherv - unass2 ) &
168         &         + ( 1. - epsher2 - unass2 ) / ( 1. - epsher2 ) * ztortz
169         zgrafer2  = zgraztotc * MAX( 0. , ( 1. - unass2 ) * zgrasrat - ferat3 * zepsherv )    &
170         &         + ferat3 * ( ( 1. - epsher2 - unass2 ) /( 1. - epsher2 ) * ztortz )
171         zgrapoc2  = zgraztotc * unass2
172
173         !   Update the arrays TRA which contain the biological sources and sinks
174         zgrarsig  = zgrarem2 * sigma2
175         tr(ji,jj,jk,jppo4,Krhs) = tr(ji,jj,jk,jppo4,Krhs) + zgrarsig
176         tr(ji,jj,jk,jpnh4,Krhs) = tr(ji,jj,jk,jpnh4,Krhs) + zgrarsig
177         tr(ji,jj,jk,jpdoc,Krhs) = tr(ji,jj,jk,jpdoc,Krhs) + zgrarem2 - zgrarsig
178         !
179         IF( ln_ligand ) THEN
180            tr(ji,jj,jk,jplgw,Krhs) = tr(ji,jj,jk,jplgw,Krhs) + (zgrarem2 - zgrarsig) * ldocz
181            zz2ligprod(ji,jj,jk) = (zgrarem2 - zgrarsig) * ldocz
182         ENDIF
183         !
184         tr(ji,jj,jk,jpoxy,Krhs) = tr(ji,jj,jk,jpoxy,Krhs) - o2ut * zgrarsig
185         tr(ji,jj,jk,jpfer,Krhs) = tr(ji,jj,jk,jpfer,Krhs) + zgrafer2
186         zfezoo2(ji,jj,jk)   = zgrafer2
187         tr(ji,jj,jk,jpdic,Krhs) = tr(ji,jj,jk,jpdic,Krhs) + zgrarsig
188         tr(ji,jj,jk,jptal,Krhs) = tr(ji,jj,jk,jptal,Krhs) + rno3 * zgrarsig             
189
190         zmortz = ztortz + zrespz
191         zmortzgoc = unass2 / ( 1. - epsher2 ) * ztortz + zrespz
192         tr(ji,jj,jk,jpmes,Krhs) = tr(ji,jj,jk,jpmes,Krhs) - zmortz + zepsherv * zgraztotc 
193         tr(ji,jj,jk,jpdia,Krhs) = tr(ji,jj,jk,jpdia,Krhs) - zgrazd
194         tr(ji,jj,jk,jpzoo,Krhs) = tr(ji,jj,jk,jpzoo,Krhs) - zgrazz
195         tr(ji,jj,jk,jpphy,Krhs) = tr(ji,jj,jk,jpphy,Krhs) - zgrazn
196         tr(ji,jj,jk,jpnch,Krhs) = tr(ji,jj,jk,jpnch,Krhs) - zgrazn * tr(ji,jj,jk,jpnch,Kbb) / ( tr(ji,jj,jk,jpphy,Kbb) + rtrn )
197         tr(ji,jj,jk,jpdch,Krhs) = tr(ji,jj,jk,jpdch,Krhs) - zgrazd * tr(ji,jj,jk,jpdch,Kbb) / ( tr(ji,jj,jk,jpdia,Kbb) + rtrn )
198         tr(ji,jj,jk,jpdsi,Krhs) = tr(ji,jj,jk,jpdsi,Krhs) - zgrazd * tr(ji,jj,jk,jpdsi,Kbb) / ( tr(ji,jj,jk,jpdia,Kbb) + rtrn )
199         tr(ji,jj,jk,jpgsi,Krhs) = tr(ji,jj,jk,jpgsi,Krhs) + zgrazd * tr(ji,jj,jk,jpdsi,Kbb) / ( tr(ji,jj,jk,jpdia,Kbb) + rtrn )
200         tr(ji,jj,jk,jpnfe,Krhs) = tr(ji,jj,jk,jpnfe,Krhs) - zgraznf
201         tr(ji,jj,jk,jpdfe,Krhs) = tr(ji,jj,jk,jpdfe,Krhs) - zgrazf
202
203         tr(ji,jj,jk,jppoc,Krhs) = tr(ji,jj,jk,jppoc,Krhs) - zgrazpoc - zgrazffep + zfrac
204         prodpoc(ji,jj,jk) = prodpoc(ji,jj,jk) + zfrac
205         conspoc(ji,jj,jk) = conspoc(ji,jj,jk) - zgrazpoc - zgrazffep
206         tr(ji,jj,jk,jpgoc,Krhs) = tr(ji,jj,jk,jpgoc,Krhs) + zmortzgoc - zgrazffeg + zgrapoc2 - zfrac
207         prodgoc(ji,jj,jk) = prodgoc(ji,jj,jk) + zmortzgoc + zgrapoc2
208         consgoc(ji,jj,jk) = consgoc(ji,jj,jk) - zgrazffeg - zfrac
209         tr(ji,jj,jk,jpsfe,Krhs) = tr(ji,jj,jk,jpsfe,Krhs) - zgrazpof - zgrazfffp + zfracfe
210         tr(ji,jj,jk,jpbfe,Krhs) = tr(ji,jj,jk,jpbfe,Krhs) + ferat3 * zmortzgoc - zgrazfffg     &
211           &                + zgraztotf * unass2 - zfracfe
212         zfracal = tr(ji,jj,jk,jpcal,Kbb) / (tr(ji,jj,jk,jppoc,Kbb) + tr(ji,jj,jk,jpgoc,Kbb) + rtrn )
213         zgrazcal = (zgrazffeg + zgrazpoc) * (1. - part2) * zfracal
214         ! calcite production
215         zprcaca = xfracal(ji,jj,jk) * zgrazn
216         prodcal(ji,jj,jk) = prodcal(ji,jj,jk) + zprcaca  ! prodcal=prodcal(nanophy)+prodcal(microzoo)+prodcal(mesozoo)
217         !
218         zprcaca = part2 * zprcaca
219         tr(ji,jj,jk,jpdic,Krhs) = tr(ji,jj,jk,jpdic,Krhs) + zgrazcal - zprcaca
220         tr(ji,jj,jk,jptal,Krhs) = tr(ji,jj,jk,jptal,Krhs) - 2. * ( zgrazcal + zprcaca )
221         tr(ji,jj,jk,jpcal,Krhs) = tr(ji,jj,jk,jpcal,Krhs) - zgrazcal + zprcaca
222      END_3D
223      !
224      IF( lk_iomput .AND. knt == nrdttrc ) THEN
225        CALL iom_put( "PCAL"  , prodcal(:,:,:) * 1.e+3  * rfact2r * tmask(:,:,:) )  !  Calcite production
226        IF( iom_use("GRAZ2") ) THEN  !   Total grazing of phyto by zooplankton
227           zgrazing2(:,:,jpk) = 0._wp ;  CALL iom_put( "GRAZ2" , zgrazing2(:,:,:) * 1.e+3  * rfact2r * tmask(:,:,:) ) 
228         ENDIF
229         IF( iom_use("FEZOO2") ) THEN 
230           zfezoo2 (:,:,jpk) = 0._wp ; CALL iom_put( "FEZOO2", zfezoo2(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) )
231         ENDIF
232         IF( ln_ligand ) THEN
233            zz2ligprod(:,:,jpk) = 0._wp ; CALL iom_put( "LPRODZ2", zz2ligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)  )
234         ENDIF
235      ENDIF
236      !
237      IF(sn_cfctl%l_prttrc)   THEN  ! print mean trends (used for debugging)
238        WRITE(charout, FMT="('meso')")
239        CALL prt_ctl_trc_info(charout)
240        CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm)
241      ENDIF
242      !
243      IF( ln_timing )   CALL timing_stop('p4z_meso')
244      !
245   END SUBROUTINE p4z_meso
246
247
248   SUBROUTINE p4z_meso_init
249      !!----------------------------------------------------------------------
250      !!                  ***  ROUTINE p4z_meso_init  ***
251      !!
252      !! ** Purpose :   Initialization of mesozooplankton parameters
253      !!
254      !! ** Method  :   Read the nampismes namelist and check the parameters
255      !!      called at the first timestep (nittrc000)
256      !!
257      !! ** input   :   Namelist nampismes
258      !!----------------------------------------------------------------------
259      INTEGER ::   ios   ! Local integer
260      !
261      NAMELIST/namp4zmes/ part2, grazrat2, resrat2, mzrat2, xpref2n, xpref2d, xpref2z,   &
262         &                xpref2c, xthresh2dia, xthresh2phy, xthresh2zoo, xthresh2poc, &
263         &                xthresh2, xkgraz2, epsher2, epsher2min, sigma2, unass2, grazflux
264      !!----------------------------------------------------------------------
265      !
266      IF(lwp) THEN
267         WRITE(numout,*) 
268         WRITE(numout,*) 'p4z_meso_init : Initialization of mesozooplankton parameters'
269         WRITE(numout,*) '~~~~~~~~~~~~~'
270      ENDIF
271      !
272      READ  ( numnatp_ref, namp4zmes, IOSTAT = ios, ERR = 901)
273901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namp4zmes in reference namelist' )
274      READ  ( numnatp_cfg, namp4zmes, IOSTAT = ios, ERR = 902 )
275902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namp4zmes in configuration namelist' )
276      IF(lwm) WRITE( numonp, namp4zmes )
277      !
278      IF(lwp) THEN                         ! control print
279         WRITE(numout,*) '   Namelist : namp4zmes'
280         WRITE(numout,*) '      part of calcite not dissolved in mesozoo guts  part2        =', part2
281         WRITE(numout,*) '      mesozoo preference for phyto                   xpref2n      =', xpref2n
282         WRITE(numout,*) '      mesozoo preference for diatoms                 xpref2d      =', xpref2d
283         WRITE(numout,*) '      mesozoo preference for zoo                     xpref2z      =', xpref2z
284         WRITE(numout,*) '      mesozoo preference for poc                     xpref2c      =', xpref2c
285         WRITE(numout,*) '      microzoo feeding threshold  for mesozoo        xthresh2zoo  =', xthresh2zoo
286         WRITE(numout,*) '      diatoms feeding threshold  for mesozoo         xthresh2dia  =', xthresh2dia
287         WRITE(numout,*) '      nanophyto feeding threshold for mesozoo        xthresh2phy  =', xthresh2phy
288         WRITE(numout,*) '      poc feeding threshold for mesozoo              xthresh2poc  =', xthresh2poc
289         WRITE(numout,*) '      feeding threshold for mesozooplankton          xthresh2     =', xthresh2
290         WRITE(numout,*) '      exsudation rate of mesozooplankton             resrat2      =', resrat2
291         WRITE(numout,*) '      mesozooplankton mortality rate                 mzrat2       =', mzrat2
292         WRITE(numout,*) '      maximal mesozoo grazing rate                   grazrat2     =', grazrat2
293         WRITE(numout,*) '      mesozoo flux feeding rate                      grazflux     =', grazflux
294         WRITE(numout,*) '      non assimilated fraction of P by mesozoo       unass2       =', unass2
295         WRITE(numout,*) '      Efficiency of Mesozoo growth                   epsher2      =', epsher2
296         WRITE(numout,*) '      Minimum Efficiency of Mesozoo growth           epsher2min  =', epsher2min
297         WRITE(numout,*) '      Fraction of mesozoo excretion as DOM           sigma2       =', sigma2
298         WRITE(numout,*) '      half sturation constant for grazing 2          xkgraz2      =', xkgraz2
299      ENDIF
300      !
301   END SUBROUTINE p4z_meso_init
302
303   !!======================================================================
304END MODULE p4zmeso
Note: See TracBrowser for help on using the repository browser.