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.
p4zlim.F90 in NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z – NEMO

source: NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zlim.F90 @ 12537

Last change on this file since 12537 was 12537, checked in by aumont, 4 years ago

Comments in routines have been revised and significantly augmented

File size: 19.3 KB
RevLine 
[10227]1MODULE p4zlim
2   !!======================================================================
3   !!                         ***  MODULE p4zlim  ***
[12537]4   !! TOP :   Computes the nutrient limitation terms of phytoplankton
[10227]5   !!======================================================================
6   !! History :   1.0  !  2004     (O. Aumont) Original code
7   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  F90
8   !!             3.4  !  2011-04  (O. Aumont, C. Ethe) Limitation for iron modelled in quota
9   !!----------------------------------------------------------------------
10   !!   p4z_lim        :   Compute the nutrients limitation terms
11   !!   p4z_lim_init   :   Read the namelist
12   !!----------------------------------------------------------------------
13   USE oce_trc         ! Shared ocean-passive tracers variables
14   USE trc             ! Tracers defined
15   USE sms_pisces      ! PISCES variables
[12537]16   USE iom             ! I/O manager
[10227]17
18   IMPLICIT NONE
19   PRIVATE
20
[12537]21   PUBLIC p4z_lim           ! called in p4zbio.F90
22   PUBLIC p4z_lim_init      ! called in trcsms_pisces.F90
23   PUBLIC p4z_lim_alloc     ! called in trcini_pisces.F90
[10227]24
25   !! * Shared module variables
26   REAL(wp), PUBLIC ::  concnno3    !:  NO3, PO4 half saturation   
27   REAL(wp), PUBLIC ::  concdno3    !:  Phosphate half saturation for diatoms 
[12537]28   REAL(wp), PUBLIC ::  concnnh4    !:  NH4 half saturation for nanophyto 
[10227]29   REAL(wp), PUBLIC ::  concdnh4    !:  NH4 half saturation for diatoms
30   REAL(wp), PUBLIC ::  concnfer    !:  Iron half saturation for nanophyto
31   REAL(wp), PUBLIC ::  concdfer    !:  Iron half saturation for diatoms 
32   REAL(wp), PUBLIC ::  concbno3    !:  NO3 half saturation  for bacteria
33   REAL(wp), PUBLIC ::  concbnh4    !:  NH4 half saturation for bacteria
34   REAL(wp), PUBLIC ::  xsizedia    !:  Minimum size criteria for diatoms
35   REAL(wp), PUBLIC ::  xsizephy    !:  Minimum size criteria for nanophyto
36   REAL(wp), PUBLIC ::  xsizern     !:  Size ratio for nanophytoplankton
37   REAL(wp), PUBLIC ::  xsizerd     !:  Size ratio for diatoms
38   REAL(wp), PUBLIC ::  xksi1       !:  half saturation constant for Si uptake
39   REAL(wp), PUBLIC ::  xksi2       !:  half saturation constant for Si/C
40   REAL(wp), PUBLIC ::  xkdoc       !:  2nd half-sat. of DOC remineralization 
41   REAL(wp), PUBLIC ::  concbfe     !:  Fe half saturation for bacteria
42   REAL(wp), PUBLIC ::  oxymin      !:  half saturation constant for anoxia
43   REAL(wp), PUBLIC ::  qnfelim     !:  optimal Fe quota for nanophyto
44   REAL(wp), PUBLIC ::  qdfelim     !:  optimal Fe quota for diatoms
45   REAL(wp), PUBLIC ::  caco3r      !:  mean rainratio
46
47   !!* Phytoplankton limitation terms
[12537]48   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xnanono3   !: Nanophyto limitation by NO3
49   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xdiatno3   !: Diatoms limitation by NO3
50   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xnanonh4   !: Nanophyto limitation by NH4
51   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xdiatnh4   !:  Diatoms limitation by NH4
52   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xnanopo4   !: Nanophyto limitation by PO4
53   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xdiatpo4   !: Diatoms limitation by PO4
54   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimphy    !: Nutrient limitation term of nanophytoplankton
55   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimdia    !: Nutrient limitation term of diatoms
56   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimnfe    !: Nanophyto limitation by Iron
57   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimdfe    !: Diatoms limitation by iron
58   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimsi     !: Diatoms limitation by Si
59   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimbac    !: Bacterial limitation term
60   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimbacl   !: Bacterial limitation term
61   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   concdfe    !: Limitation of diatoms uptake of Fe
62   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   concnfe    !: Limitation of Nano uptake of Fe
[10227]63
[12537]64   ! Coefficient for iron limitation following Flynn and Hipkin (1999)
[10227]65   REAL(wp) ::  xcoef1   = 0.0016  / 55.85 
66   REAL(wp) ::  xcoef2   = 1.21E-5 * 14. / 55.85 / 7.625 * 0.5 * 1.5
67   REAL(wp) ::  xcoef3   = 1.15E-4 * 14. / 55.85 / 7.625 * 0.5 
68
69   !!----------------------------------------------------------------------
70   !! NEMO/TOP 4.0 , NEMO Consortium (2018)
71   !! $Id: p4zlim.F90 10069 2018-08-28 14:12:24Z nicolasmartin $
72   !! Software governed by the CeCILL license (see ./LICENSE)
73   !!----------------------------------------------------------------------
74CONTAINS
75
76   SUBROUTINE p4z_lim( kt, knt )
77      !!---------------------------------------------------------------------
78      !!                     ***  ROUTINE p4z_lim  ***
79      !!
80      !! ** Purpose :   Compute the co-limitations by the various nutrients
[12537]81      !!                for the various phytoplankton species
[10227]82      !!
[12537]83      !! ** Method  : - Limitation follows the Liebieg law of the minimum
[10227]84      !!---------------------------------------------------------------------
85      INTEGER, INTENT(in)  :: kt, knt
86      !
87      INTEGER  ::   ji, jj, jk
88      REAL(wp) ::   zlim1, zlim2, zlim3, zlim4, zno3, zferlim
89      REAL(wp) ::   zconcd, zconcd2, zconcn, zconcn2
90      REAL(wp) ::   z1_trbdia, z1_trbphy, ztem1, ztem2, zetot1, zetot2
91      REAL(wp) ::   zdenom, zratio, zironmin
92      REAL(wp) ::   zconc1d, zconc1dnh4, zconc0n, zconc0nnh4   
93      !!---------------------------------------------------------------------
94      !
95      IF( ln_timing )   CALL timing_start('p4z_lim')
96      !
97      DO jk = 1, jpkm1
98         DO jj = 1, jpj
99            DO ji = 1, jpi
100               
[12537]101               ! Tuning of the iron concentration to a minimum level that
102               ! is set to the detection limit
103               ! --------------------------------------------------------
[10227]104               zno3    = trb(ji,jj,jk,jpno3) / 40.e-6
105               zferlim = MAX( 3e-11 * zno3 * zno3, 5e-12 )
106               zferlim = MIN( zferlim, 7e-11 )
107               trb(ji,jj,jk,jpfer) = MAX( trb(ji,jj,jk,jpfer), zferlim )
108
[12537]109               ! Computation of a variable Ks of diatoms taking into account
[10227]110               ! that increasing biomass is made of generally bigger cells
[12537]111               !------------------------------------------------------------
[10227]112               zconcd   = MAX( 0.e0 , trb(ji,jj,jk,jpdia) - xsizedia )
113               zconcd2  = trb(ji,jj,jk,jpdia) - zconcd
114               zconcn   = MAX( 0.e0 , trb(ji,jj,jk,jpphy) - xsizephy )
115               zconcn2  = trb(ji,jj,jk,jpphy) - zconcn
116               z1_trbphy   = 1. / ( trb(ji,jj,jk,jpphy) + rtrn )
117               z1_trbdia   = 1. / ( trb(ji,jj,jk,jpdia) + rtrn )
118
119               concdfe(ji,jj,jk) = MAX( concdfer, ( zconcd2 * concdfer + concdfer * xsizerd * zconcd ) * z1_trbdia )
120               zconc1d           = MAX( concdno3, ( zconcd2 * concdno3 + concdno3 * xsizerd * zconcd ) * z1_trbdia )
121               zconc1dnh4        = MAX( concdnh4, ( zconcd2 * concdnh4 + concdnh4 * xsizerd * zconcd ) * z1_trbdia )
122
123               concnfe(ji,jj,jk) = MAX( concnfer, ( zconcn2 * concnfer + concnfer * xsizern * zconcn ) * z1_trbphy )
124               zconc0n           = MAX( concnno3, ( zconcn2 * concnno3 + concnno3 * xsizern * zconcn ) * z1_trbphy )
125               zconc0nnh4        = MAX( concnnh4, ( zconcn2 * concnnh4 + concnnh4 * xsizern * zconcn ) * z1_trbphy )
126
[12537]127               ! Michaelis-Menten Limitation term by nutrients of
128               ! heterotrophic bacteria
129               ! -------------------------------------------------
[10227]130               zdenom = 1. /  ( concbno3 * concbnh4 + concbnh4 * trb(ji,jj,jk,jpno3) + concbno3 * trb(ji,jj,jk,jpnh4) )
131               xnanono3(ji,jj,jk) = trb(ji,jj,jk,jpno3) * concbnh4 * zdenom
132               xnanonh4(ji,jj,jk) = trb(ji,jj,jk,jpnh4) * concbno3 * zdenom
133               !
134               zlim1    = xnanono3(ji,jj,jk) + xnanonh4(ji,jj,jk)
135               zlim2    = trb(ji,jj,jk,jppo4) / ( trb(ji,jj,jk,jppo4) + concbnh4 )
136               zlim3    = trb(ji,jj,jk,jpfer) / ( concbfe + trb(ji,jj,jk,jpfer) )
137               zlim4    = trb(ji,jj,jk,jpdoc) / ( xkdoc   + trb(ji,jj,jk,jpdoc) )
[12537]138               ! Xlimbac is used for DOC solubilization whereas xlimbacl
139               ! is used for all the other bacterial-dependent terms
140               ! -------------------------------------------------------
[10227]141               xlimbacl(ji,jj,jk) = MIN( zlim1, zlim2, zlim3 )
142               xlimbac (ji,jj,jk) = MIN( zlim1, zlim2, zlim3 ) * zlim4
143
[12537]144               ! Michaelis-Menten Limitation term by nutrients: Nanophyto
145               ! --------------------------------------------------------
[10227]146               zdenom = 1. /  ( zconc0n * zconc0nnh4 + zconc0nnh4 * trb(ji,jj,jk,jpno3) + zconc0n * trb(ji,jj,jk,jpnh4) )
147               xnanono3(ji,jj,jk) = trb(ji,jj,jk,jpno3) * zconc0nnh4 * zdenom
148               xnanonh4(ji,jj,jk) = trb(ji,jj,jk,jpnh4) * zconc0n    * zdenom
149               !
150               zlim1    = xnanono3(ji,jj,jk) + xnanonh4(ji,jj,jk)
151               zlim2    = trb(ji,jj,jk,jppo4) / ( trb(ji,jj,jk,jppo4) + zconc0nnh4 )
152               zratio   = trb(ji,jj,jk,jpnfe) * z1_trbphy 
[12537]153
154               ! The minimum iron quota depends on the size of PSU, respiration
155               ! and the reduction of nitrate following the parameterization
156               ! proposed by Flynn and Hipkin (1999)
[10227]157               zironmin = xcoef1 * trb(ji,jj,jk,jpnch) * z1_trbphy + xcoef2 * zlim1 + xcoef3 * xnanono3(ji,jj,jk)
158               zlim3    = MAX( 0.,( zratio - zironmin ) / qnfelim )
159               xnanopo4(ji,jj,jk) = zlim2
160               xlimnfe (ji,jj,jk) = MIN( 1., zlim3 )
161               xlimphy (ji,jj,jk) = MIN( zlim1, zlim2, zlim3 )
[12537]162               
163               !   Michaelis-Menten Limitation term by nutrients : Diatoms
164               !   -------------------------------------------------------
[10227]165               zdenom   = 1. / ( zconc1d * zconc1dnh4 + zconc1dnh4 * trb(ji,jj,jk,jpno3) + zconc1d * trb(ji,jj,jk,jpnh4) )
166               xdiatno3(ji,jj,jk) = trb(ji,jj,jk,jpno3) * zconc1dnh4 * zdenom
167               xdiatnh4(ji,jj,jk) = trb(ji,jj,jk,jpnh4) * zconc1d    * zdenom
168               !
169               zlim1    = xdiatno3(ji,jj,jk) + xdiatnh4(ji,jj,jk)
170               zlim2    = trb(ji,jj,jk,jppo4) / ( trb(ji,jj,jk,jppo4) + zconc1dnh4  )
171               zlim3    = trb(ji,jj,jk,jpsil) / ( trb(ji,jj,jk,jpsil) + xksi(ji,jj) )
172               zratio   = trb(ji,jj,jk,jpdfe) * z1_trbdia
[12537]173
174               ! The minimum iron quota depends on the size of PSU, respiration
175               ! and the reduction of nitrate following the parameterization
176               ! proposed by Flynn and Hipkin (1999)
[10227]177               zironmin = xcoef1 * trb(ji,jj,jk,jpdch) * z1_trbdia + xcoef2 * zlim1 + xcoef3 * xdiatno3(ji,jj,jk)
178               zlim4    = MAX( 0., ( zratio - zironmin ) / qdfelim )
179               xdiatpo4(ji,jj,jk) = zlim2
180               xlimdfe (ji,jj,jk) = MIN( 1., zlim4 )
181               xlimdia (ji,jj,jk) = MIN( zlim1, zlim2, zlim3, zlim4 )
182               xlimsi  (ji,jj,jk) = MIN( zlim1, zlim2, zlim4 )
183           END DO
184         END DO
185      END DO
186
187      ! Compute the fraction of nanophytoplankton that is made of calcifiers
[12537]188      ! This is a purely adhoc formulation described in Aumont et al. (2015)
189      ! This fraction depends on nutrient limitation, light, temperature
[10227]190      ! --------------------------------------------------------------------
191      DO jk = 1, jpkm1
192         DO jj = 1, jpj
193            DO ji = 1, jpi
194               zlim1 =  ( trb(ji,jj,jk,jpno3) * concnnh4 + trb(ji,jj,jk,jpnh4) * concnno3 )    &
195                  &   / ( concnno3 * concnnh4 + concnnh4 * trb(ji,jj,jk,jpno3) + concnno3 * trb(ji,jj,jk,jpnh4) ) 
196               zlim2  = trb(ji,jj,jk,jppo4) / ( trb(ji,jj,jk,jppo4) + concnnh4 )
197               zlim3  = trb(ji,jj,jk,jpfer) / ( trb(ji,jj,jk,jpfer) +  5.E-11   )
198               ztem1  = MAX( 0., tsn(ji,jj,jk,jp_tem) )
199               ztem2  = tsn(ji,jj,jk,jp_tem) - 10.
200               zetot1 = MAX( 0., etot_ndcy(ji,jj,jk) - 1.) / ( 4. + etot_ndcy(ji,jj,jk) ) 
201               zetot2 = 30. / ( 30. + etot_ndcy(ji,jj,jk) ) 
202
203               xfracal(ji,jj,jk) = caco3r * MIN( zlim1, zlim2, zlim3 )                  &
204                  &                       * ztem1 / ( 0.1 + ztem1 )                     &
205                  &                       * MAX( 1., trb(ji,jj,jk,jpphy) * 1.e6 / 2. )  &
206                  &                       * zetot1 * zetot2               &
207                  &                       * ( 1. + EXP(-ztem2 * ztem2 / 25. ) )         &
208                  &                       * MIN( 1., 50. / ( hmld(ji,jj) + rtrn ) )
209               xfracal(ji,jj,jk) = MIN( 0.8 , xfracal(ji,jj,jk) )
210               xfracal(ji,jj,jk) = MAX( 0.02, xfracal(ji,jj,jk) )
211            END DO
212         END DO
213      END DO
214      !
215      DO jk = 1, jpkm1
216         DO jj = 1, jpj
217            DO ji = 1, jpi
218               ! denitrification factor computed from O2 levels
219               nitrfac(ji,jj,jk) = MAX(  0.e0, 0.4 * ( 6.e-6  - trb(ji,jj,jk,jpoxy) )    &
220                  &                                / ( oxymin + trb(ji,jj,jk,jpoxy) )  )
221               nitrfac(ji,jj,jk) = MIN( 1., nitrfac(ji,jj,jk) )
222               !
[12537]223               ! redox factor computed from NO3 levels
[10227]224               nitrfac2(ji,jj,jk) = MAX( 0.e0,       ( 1.E-6 - trb(ji,jj,jk,jpno3) )  &
225                  &                                / ( 1.E-6 + trb(ji,jj,jk,jpno3) ) )
226               nitrfac2(ji,jj,jk) = MIN( 1., nitrfac2(ji,jj,jk) )
227            END DO
228         END DO
229      END DO
230      !
231      IF( lk_iomput .AND. knt == nrdttrc ) THEN        ! save output diagnostics
[12537]232        IF( iom_use( "xfracal" ) )   CALL iom_put( "xfracal", xfracal(:,:,:) * tmask(:,:,:) )  ! Faction of nanophytoplankton that is calcifiers
[10227]233        IF( iom_use( "LNnut"   ) )   CALL iom_put( "LNnut"  , xlimphy(:,:,:) * tmask(:,:,:) )  ! Nutrient limitation term
234        IF( iom_use( "LDnut"   ) )   CALL iom_put( "LDnut"  , xlimdia(:,:,:) * tmask(:,:,:) )  ! Nutrient limitation term
235        IF( iom_use( "LNFe"    ) )   CALL iom_put( "LNFe"   , xlimnfe(:,:,:) * tmask(:,:,:) )  ! Iron limitation term
236        IF( iom_use( "LDFe"    ) )   CALL iom_put( "LDFe"   , xlimdfe(:,:,:) * tmask(:,:,:) )  ! Iron limitation term
237      ENDIF
238      !
239      IF( ln_timing )   CALL timing_stop('p4z_lim')
240      !
241   END SUBROUTINE p4z_lim
242
243
244   SUBROUTINE p4z_lim_init
245      !!----------------------------------------------------------------------
246      !!                  ***  ROUTINE p4z_lim_init  ***
247      !!
[12537]248      !! ** Purpose :   Initialization of the nutrient limitation parameters
[10227]249      !!
[12537]250      !! ** Method  :   Read the namp4zlim namelist and check the parameters
[10227]251      !!      called at the first timestep (nittrc000)
252      !!
[12537]253      !! ** input   :   Namelist namp4zlim
[10227]254      !!
255      !!----------------------------------------------------------------------
256      INTEGER ::   ios   ! Local integer
257      !
258      NAMELIST/namp4zlim/ concnno3, concdno3, concnnh4, concdnh4, concnfer, concdfer, concbfe,   &
259         &                concbno3, concbnh4, xsizedia, xsizephy, xsizern, xsizerd,          & 
260         &                xksi1, xksi2, xkdoc, qnfelim, qdfelim, caco3r, oxymin
261      !!----------------------------------------------------------------------
262      !
263      IF(lwp) THEN
264         WRITE(numout,*)
265         WRITE(numout,*) 'p4z_lim_init : initialization of nutrient limitations'
266         WRITE(numout,*) '~~~~~~~~~~~~'
267      ENDIF
268      !
[12537]269      REWIND( numnatp_ref )              ! Namelist namp4zlim in reference namelist : Pisces nutrient limitation parameters
[10227]270      READ  ( numnatp_ref, namp4zlim, IOSTAT = ios, ERR = 901)
[11536]271901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namp4zlim in reference namelist' )
[12537]272      REWIND( numnatp_cfg )              ! Namelist namp4zlim in configuration namelist : Pisces nutrient limitation parameters
[10227]273      READ  ( numnatp_cfg, namp4zlim, IOSTAT = ios, ERR = 902 )
[11536]274902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namp4zlim in configuration namelist' )
[10227]275      IF(lwm) WRITE( numonp, namp4zlim )
276      !
277      IF(lwp) THEN                         ! control print
278         WRITE(numout,*) '   Namelist : namp4zlim'
279         WRITE(numout,*) '      mean rainratio                           caco3r    = ', caco3r
280         WRITE(numout,*) '      NO3 half saturation of nanophyto         concnno3  = ', concnno3
281         WRITE(numout,*) '      NO3 half saturation of diatoms           concdno3  = ', concdno3
282         WRITE(numout,*) '      NH4 half saturation for phyto            concnnh4  = ', concnnh4
283         WRITE(numout,*) '      NH4 half saturation for diatoms          concdnh4  = ', concdnh4
284         WRITE(numout,*) '      half saturation constant for Si uptake   xksi1     = ', xksi1
285         WRITE(numout,*) '      half saturation constant for Si/C        xksi2     = ', xksi2
286         WRITE(numout,*) '      half-sat. of DOC remineralization        xkdoc     = ', xkdoc
287         WRITE(numout,*) '      Iron half saturation for nanophyto       concnfer  = ', concnfer
288         WRITE(numout,*) '      Iron half saturation for diatoms         concdfer  = ', concdfer
289         WRITE(numout,*) '      size ratio for nanophytoplankton         xsizern   = ', xsizern
290         WRITE(numout,*) '      size ratio for diatoms                   xsizerd   = ', xsizerd
291         WRITE(numout,*) '      NO3 half saturation of bacteria          concbno3  = ', concbno3
292         WRITE(numout,*) '      NH4 half saturation for bacteria         concbnh4  = ', concbnh4
293         WRITE(numout,*) '      Minimum size criteria for diatoms        xsizedia  = ', xsizedia
294         WRITE(numout,*) '      Minimum size criteria for nanophyto      xsizephy  = ', xsizephy
295         WRITE(numout,*) '      Fe half saturation for bacteria          concbfe   = ', concbfe
296         WRITE(numout,*) '      halk saturation constant for anoxia       oxymin   =' , oxymin
297         WRITE(numout,*) '      optimal Fe quota for nano.               qnfelim   = ', qnfelim
298         WRITE(numout,*) '      Optimal Fe quota for diatoms             qdfelim   = ', qdfelim
299      ENDIF
300      !
301      nitrfac (:,:,:) = 0._wp
302      !
303   END SUBROUTINE p4z_lim_init
304
305
306   INTEGER FUNCTION p4z_lim_alloc()
307      !!----------------------------------------------------------------------
308      !!                     ***  ROUTINE p5z_lim_alloc  ***
309      !!----------------------------------------------------------------------
[10425]310      USE lib_mpp , ONLY: ctl_stop
[10227]311      !!----------------------------------------------------------------------
312
313      !*  Biological arrays for phytoplankton growth
314      ALLOCATE( xnanono3(jpi,jpj,jpk), xdiatno3(jpi,jpj,jpk),       &
315         &      xnanonh4(jpi,jpj,jpk), xdiatnh4(jpi,jpj,jpk),       &
316         &      xnanopo4(jpi,jpj,jpk), xdiatpo4(jpi,jpj,jpk),       &
317         &      xlimphy (jpi,jpj,jpk), xlimdia (jpi,jpj,jpk),       &
318         &      xlimnfe (jpi,jpj,jpk), xlimdfe (jpi,jpj,jpk),       &
319         &      xlimbac (jpi,jpj,jpk), xlimbacl(jpi,jpj,jpk),       &
320         &      concnfe (jpi,jpj,jpk), concdfe (jpi,jpj,jpk),       &
321         &      xlimsi  (jpi,jpj,jpk), STAT=p4z_lim_alloc )
322      !
[10425]323      IF( p4z_lim_alloc /= 0 ) CALL ctl_stop( 'STOP', 'p4z_lim_alloc : failed to allocate arrays.' )
[10227]324      !
325   END FUNCTION p4z_lim_alloc
326
327   !!======================================================================
328END MODULE p4zlim
Note: See TracBrowser for help on using the repository browser.