Index: trunk/NEMOGCM/ARCH/CNRS/arch-macport_osx.fcm
===================================================================
--- trunk/NEMOGCM/ARCH/CNRS/arch-macport_osx.fcm	(revision 3903)
+++ trunk/NEMOGCM/ARCH/CNRS/arch-macport_osx.fcm	(revision 3904)
@@ -27,5 +27,5 @@
 %NCDF_INC            -I/opt/local/include
 %NCDF_LIB            -L/opt/local/lib -lnetcdf -lnetcdff
-%XIOS_ROOT           /Users/smasson/XIOS
+%XIOS_ROOT           /Users/cethe/XIOS
 %FC	             mpif90 
 %FCFLAGS             -fdefault-real-8 -O3 -funroll-all-loops -fcray-pointer 
@@ -34,6 +34,6 @@
 %LDFLAGS             -lstdc++ -lmpi_cxx
 %FPPFLAGS            -P -C -traditional
-%AR                  libtool
-%ARFLAGS             -c -s -o
+%AR                  ar
+%ARFLAGS             rs
 %MK                  make
 %USER_INC            %NCDF_INC -I%XIOS_ROOT/inc
Index: trunk/NEMOGCM/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist_pisces
===================================================================
--- trunk/NEMOGCM/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist_pisces	(revision 3903)
+++ trunk/NEMOGCM/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist_pisces	(revision 3904)
@@ -30,5 +30,5 @@
    cn_dir      = './'     !  root directory for the location of the dynamical files
 !
-   ln_presatm  = .true.   ! constant atmopsheric pressure (F) or from a file (T)
+   ln_presatm  = .false.   ! constant atmopsheric pressure (F) or from a file (T)
 /
 !'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
@@ -39,5 +39,5 @@
    xkmort     =  2.E-7    ! half saturation constant for mortality
    ferat3     =  10.E-6   ! Fe/C in zooplankton 
-   wsbio2     =  30.      ! Big particles sinking speed
+   wsbio2     =  50.      ! Big particles sinking speed
    niter1max  =  1        ! Maximum number of iterations for POC
    niter2max  =  1        ! Maximum number of iterations for GOC
@@ -47,9 +47,9 @@
 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    concnno3   =  1.e-6    ! Nitrate half saturation of nanophytoplankton
-   concdno3   =  3.E-6   ! Phosphate half saturation for diatoms
+   concdno3   =  3.E-6    ! Phosphate half saturation for diatoms
    concnnh4   =  1.E-7    ! NH4 half saturation for phyto
-   concdnh4   =  3.E-7   ! NH4 half saturation for diatoms
-   concnfer   =  1.E-9     ! Iron half saturation for phyto
-   concdfer   =  3.E-9   ! Iron half saturation for diatoms
+   concdnh4   =  3.E-7    ! NH4 half saturation for diatoms
+   concnfer   =  1.E-9    ! Iron half saturation for phyto
+   concdfer   =  3.E-9    ! Iron half saturation for diatoms
    concbfe    =  1.E-11   ! Half-saturation for Fe limitation of Bacteria
    concbnh4   =  2.5E-8   ! NH4 half saturation for phyto
@@ -60,5 +60,5 @@
    xsizerd    =  3.0      ! Size ratio for diatoms
    xksi1      =  2.E-6    ! half saturation constant for Si uptake
-   xksi2      =  20E-6  ! half saturation constant for Si/C
+   xksi2      =  20E-6    ! half saturation constant for Si/C
    xkdoc      =  417.E-6  ! half-saturation constant of DOC remineralization
    qnfelim    =  7.E-6    ! Optimal quota of phyto
@@ -84,5 +84,5 @@
    excret2    =  0.05     ! excretion ratio of diatoms
    ln_newprod =  .true.   ! Enable new parame. of production (T/F) 
-   bresp      =  0.00333  ! Basal respiration rate
+   bresp      =  0.0333   ! Basal respiration rate
    chlcnm     =  0.033    ! Minimum Chl/C in nanophytoplankton
    chlcdm     =  0.05     ! Minimum Chl/C in diatoms
@@ -106,5 +106,5 @@
    part2      =  0.75     ! part of calcite not dissolved in mesozoo guts
    grazrat2   =  0.75     ! maximal mesozoo grazing rate
-   resrat2    =  0.005    ! exsudation rate of mesozooplankton
+   resrat2    =  0.01     ! exsudation rate of mesozooplankton
    mzrat2     =  0.03     ! mesozooplankton mortality rate
    xprefc     =  1.       ! zoo preference for phyto
@@ -118,5 +118,5 @@
    xthresh2   =  3E-7     ! Food threshold for grazing
    xkgraz2    =  20.E-6   ! half sturation constant for meso grazing
-   epsher2    =  0.3      ! Efficicency of Mesozoo growth
+   epsher2    =  0.4      ! Efficicency of Mesozoo growth
    sigma2     =  0.6      ! Fraction of mesozoo excretion as DOM
    unass2     =  0.3      ! non assimilated fraction of P by mesozoo
@@ -128,5 +128,5 @@
    part       =  0.5      ! part of calcite not dissolved in microzoo gutsa
    grazrat    =  3.0      ! maximal zoo grazing rate
-   resrat     =  0.03     ! exsudation rate of zooplankton
+   resrat     =  0.05     ! exsudation rate of zooplankton
    mzrat      =  0.004    ! zooplankton mortality rate
    xpref2c    =  0.1      ! Microzoo preference for POM
@@ -138,5 +138,5 @@
    xthresh    =  3.E-7    ! Food threshold for feeding
    xkgraz     =  20.E-6   ! half sturation constant for grazing
-   epsher     =  0.3      ! Efficiency of microzoo growth
+   epsher     =  0.4      ! Efficiency of microzoo growth
    sigma1     =  0.6      ! Fraction of microzoo excretion as DOM
    unass      =  0.3      ! non assimilated fraction of phyto by zoo
@@ -146,5 +146,5 @@
 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ln_fechem =  .false.   ! complex iron chemistry ( T/F )
-   ln_ligvar =  .true.   ! variable ligand concentration
+   ln_ligvar =  .false.   ! variable ligand concentration
    xlam1     =  0.005     ! scavenging rate of Iron
    xlamdust  =  150.0     ! Scavenging rate of dust
@@ -154,5 +154,5 @@
 &nampisrem     !   parameters for remineralization
 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-   xremik    =  0.35      ! remineralization rate of DOC
+   xremik    =  0.3       ! remineralization rate of DOC
    xremip    =  0.025     ! remineralisation rate of POC
    nitrif    =  0.05      ! NH4 nitrification rate
@@ -261,4 +261,4 @@
 &nampismass     !  Mass conservation
 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-   ln_check_mass =  .false.    !  Check mass conservation
-/
+   ln_check_mass =  .true.    !  Check mass conservation
+/
Index: trunk/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/EXP00/namelist_pisces
===================================================================
--- trunk/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/EXP00/namelist_pisces	(revision 3903)
+++ trunk/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/EXP00/namelist_pisces	(revision 3904)
@@ -30,5 +30,5 @@
    cn_dir      = './'     !  root directory for the location of the dynamical files
 !
-   ln_presatm  = .true.   ! constant atmopsheric pressure (F) or from a file (T)
+   ln_presatm  = .false.   ! constant atmopsheric pressure (F) or from a file (T)
 /
 !'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
@@ -39,5 +39,5 @@
    xkmort     =  2.E-7    ! half saturation constant for mortality
    ferat3     =  10.E-6   ! Fe/C in zooplankton 
-   wsbio2     =  30.      ! Big particles sinking speed
+   wsbio2     =  50.      ! Big particles sinking speed
    niter1max  =  1        ! Maximum number of iterations for POC
    niter2max  =  1        ! Maximum number of iterations for GOC
@@ -47,9 +47,9 @@
 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    concnno3   =  1.e-6    ! Nitrate half saturation of nanophytoplankton
-   concdno3   =  3.E-6   ! Phosphate half saturation for diatoms
+   concdno3   =  3.E-6    ! Phosphate half saturation for diatoms
    concnnh4   =  1.E-7    ! NH4 half saturation for phyto
-   concdnh4   =  3.E-7   ! NH4 half saturation for diatoms
-   concnfer   =  1.E-9     ! Iron half saturation for phyto
-   concdfer   =  3.E-9   ! Iron half saturation for diatoms
+   concdnh4   =  3.E-7    ! NH4 half saturation for diatoms
+   concnfer   =  1.E-9    ! Iron half saturation for phyto
+   concdfer   =  3.E-9    ! Iron half saturation for diatoms
    concbfe    =  1.E-11   ! Half-saturation for Fe limitation of Bacteria
    concbnh4   =  2.5E-8   ! NH4 half saturation for phyto
@@ -60,5 +60,5 @@
    xsizerd    =  3.0      ! Size ratio for diatoms
    xksi1      =  2.E-6    ! half saturation constant for Si uptake
-   xksi2      =  20E-6  ! half saturation constant for Si/C
+   xksi2      =  20E-6    ! half saturation constant for Si/C
    xkdoc      =  417.E-6  ! half-saturation constant of DOC remineralization
    qnfelim    =  7.E-6    ! Optimal quota of phyto
@@ -84,5 +84,5 @@
    excret2    =  0.05     ! excretion ratio of diatoms
    ln_newprod =  .true.   ! Enable new parame. of production (T/F) 
-   bresp      =  0.00333  ! Basal respiration rate
+   bresp      =  0.0333   ! Basal respiration rate
    chlcnm     =  0.033    ! Minimum Chl/C in nanophytoplankton
    chlcdm     =  0.05     ! Minimum Chl/C in diatoms
@@ -106,5 +106,5 @@
    part2      =  0.75     ! part of calcite not dissolved in mesozoo guts
    grazrat2   =  0.75     ! maximal mesozoo grazing rate
-   resrat2    =  0.005    ! exsudation rate of mesozooplankton
+   resrat2    =  0.01     ! exsudation rate of mesozooplankton
    mzrat2     =  0.03     ! mesozooplankton mortality rate
    xprefc     =  1.       ! zoo preference for phyto
@@ -118,5 +118,5 @@
    xthresh2   =  3E-7     ! Food threshold for grazing
    xkgraz2    =  20.E-6   ! half sturation constant for meso grazing
-   epsher2    =  0.3      ! Efficicency of Mesozoo growth
+   epsher2    =  0.4      ! Efficicency of Mesozoo growth
    sigma2     =  0.6      ! Fraction of mesozoo excretion as DOM
    unass2     =  0.3      ! non assimilated fraction of P by mesozoo
@@ -128,5 +128,5 @@
    part       =  0.5      ! part of calcite not dissolved in microzoo gutsa
    grazrat    =  3.0      ! maximal zoo grazing rate
-   resrat     =  0.03     ! exsudation rate of zooplankton
+   resrat     =  0.05     ! exsudation rate of zooplankton
    mzrat      =  0.004    ! zooplankton mortality rate
    xpref2c    =  0.1      ! Microzoo preference for POM
@@ -138,5 +138,5 @@
    xthresh    =  3.E-7    ! Food threshold for feeding
    xkgraz     =  20.E-6   ! half sturation constant for grazing
-   epsher     =  0.3      ! Efficiency of microzoo growth
+   epsher     =  0.4      ! Efficiency of microzoo growth
    sigma1     =  0.6      ! Fraction of microzoo excretion as DOM
    unass      =  0.3      ! non assimilated fraction of phyto by zoo
@@ -146,5 +146,5 @@
 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ln_fechem =  .false.   ! complex iron chemistry ( T/F )
-   ln_ligvar =  .true.   ! variable ligand concentration
+   ln_ligvar =  .false.   ! variable ligand concentration
    xlam1     =  0.005     ! scavenging rate of Iron
    xlamdust  =  150.0     ! Scavenging rate of dust
@@ -154,5 +154,5 @@
 &nampisrem     !   parameters for remineralization
 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-   xremik    =  0.35      ! remineralization rate of DOC
+   xremik    =  0.3       ! remineralization rate of DOC
    xremip    =  0.025     ! remineralisation rate of POC
    nitrif    =  0.05      ! NH4 nitrification rate
@@ -261,4 +261,4 @@
 &nampismass     !  Mass conservation
 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
-   ln_check_mass =  .false.    !  Check mass conservation
-/
+   ln_check_mass =  .true.    !  Check mass conservation
+/
Index: trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90
===================================================================
--- trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90	(revision 3903)
+++ trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90	(revision 3904)
@@ -263,5 +263,5 @@
                zdep    = MIN( 1., 1000. / fsdept(ji,jj,jk) )
                zlam1b  = xlam1 * MAX( 0.e0, ( trn(ji,jj,jk,jpfer) * 1.e9 - ztotlig(ji,jj,jk) ) )
-               zcoag   = zfeequi * zlam1b * zstep + 1E-4 * ( 1. - zlamfac ) * zdep * zstep *zfecoll
+               zcoag   = zfeequi * zlam1b * zstep + 1E-4 * ( 1. - zlamfac ) * zdep * zstep * trn(ji,jj,jk,jpfer)
 
                !  Compute the coagulation of colloidal iron. This parameterization 
@@ -278,5 +278,5 @@
                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zscave * zdenom1 + zaggdfea + zaggdfeb
 #else
-               zlam1b = 3.53E3 *   trn(ji,jj,jk,jpgoc) * xdiss(ji,jj,jk) + 1E-4 * ( 1. - zlamfac ) * zdep 
+               zlam1b = 3.53E3 *   trn(ji,jj,jk,jpgoc) * xdiss(ji,jj,jk)
                zaggdfeb = zlam1b * zstep * zfecoll
                !
Index: trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90
===================================================================
--- trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90	(revision 3903)
+++ trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90	(revision 3904)
@@ -140,12 +140,8 @@
                !  ----------------------------------
 # if ! defined key_kriest
-               zgrazffeg = grazflux  * zstep * wsbio4(ji,jj,jk)      &
-!                 &                   * tgfunc2(ji,jj,jk) * trn(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpmes)
-               &                     * 2. *  trn(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpmes)
+               zgrazffeg = grazflux  * zstep * wsbio4(ji,jj,jk) * trn(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpmes)
                zgrazfffg = zgrazffeg * trn(ji,jj,jk,jpbfe) / (trn(ji,jj,jk,jpgoc) + rtrn)
 # endif
-               zgrazffep = grazflux  * zstep *  wsbio3(ji,jj,jk)     &
-!                 &                   * tgfunc2(ji,jj,jk) * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jpmes)
-               &                     * 2. * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jpmes)
+               zgrazffep = grazflux  * zstep *  wsbio3(ji,jj,jk) * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jpmes)
                zgrazfffp = zgrazffep * trn(ji,jj,jk,jpsfe) / (trn(ji,jj,jk,jppoc) + rtrn)
               !
@@ -154,12 +150,9 @@
               ! Compute the proportion of filter feeders
               zproport  = (zgrazffep + zgrazffeg)/(rtrn + zgraztot)
+              ! Compute fractionation of aggregates. It is assumed that diatoms based aggregates are more prone to fractionation
+              ! since they are more porous (marine snow instead of fecal pellets)
               zratio    = trn(ji,jj,jk,jpgsi) / ( trn(ji,jj,jk,jpgoc) + rtrn )
               zratio2   = zratio * zratio
-!              zfrac =  zproport * 0.15 * zstep *                     &
-!                       ( 0.2 + 0.8 * zratio2 / ( 1.5**2 + zratio2 ) )   &
-!                      *trn(ji,jj,jk,jpmes)/3E-7 *trn(ji,jj,jk,jpgoc)
-              zfrac     = zproport * grazflux  * zstep * wsbio4(ji,jj,jk)      &
-                 &       * ( 0.1 + 3.9 * zratio2 / ( 1.**2 + zratio2 ) )       &
-                 &       * 2. * trn(ji,jj,jk,jpmes) * trn(ji,jj,jk,jpgoc) 
+              zfrac     = zproport * zgrazffeg * ( 0.1 + 3.9 * zratio2 / ( 1.**2 + zratio2 ) )
 
               zfracfe   = zfrac * trn(ji,jj,jk,jpbfe) / (trn(ji,jj,jk,jpgoc) + rtrn)
@@ -193,8 +186,8 @@
                zepshert  = epsher2 * MIN( 1., zncratio )
                zepsherv  = zepshert * MIN( 1., zgrasrat / ferat3 )
-               zgrarem2  = zgraztot * ( 1. - zepsherv - unass2 ) + zrespz2  &
-               &    + ( 1. - zepsherv - unass2 ) /( 1. - zepsherv + rtrn) * ztortz2
-               zgrafer2  = zgraztot * MAX( 0. , ( 1. - unass2 ) * zgrasrat - ferat3 * zepsherv )    &
-               &    + ferat3 * ( zrespz2 + ( 1. - zepsherv - unass2 ) /( 1. - zepsherv + rtrn) * ztortz2 )
+               zgrarem2  =  zgraztot * ( 1. - zepsherv - unass2 ) + zrespz2  &
+                  &       + ( 1. - zepsherv - unass2 ) /( 1. - zepsherv ) * ztortz2
+               zgrafer2  =  zgraztot * MAX( 0. , ( 1. - unass2 ) * zgrasrat - ferat3 * zepsherv )    &
+                  &       + ferat3 * ( zrespz2 + ( 1. - zepsherv - unass2 ) /( 1. - zepsherv ) * ztortz2 )
                zgrapoc2  = zgraztot * unass2
 
@@ -208,17 +201,7 @@
                tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + zgrarsig
                tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + rno3 * zgrarsig              
-#if defined key_kriest
-               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zgrapoc2
-               tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) + zgrapoc2 * xkr_dmeso
-               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zgraztotf * unass2
-#else
-               tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zgrapoc2 - zfrac 
-               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zfrac
-               tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zgraztotf * unass2 - zfracfe
-               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zfracfe
-
-#endif
+
                zmortz2 = ztortz2 + zrespz2
-               zmortzgoc = unass2 / ( 1. - zepsherv + rtrn ) * ztortz2
+               zmortzgoc = unass2 / ( 1. - zepsherv ) * ztortz2
                tra(ji,jj,jk,jpmes) = tra(ji,jj,jk,jpmes) - zmortz2 + zepsherv * zgraztot 
                tra(ji,jj,jk,jpdia) = tra(ji,jj,jk,jpdia) - zgrazd
@@ -242,15 +225,14 @@
 #if defined key_kriest
                znumpoc = trn(ji,jj,jk,jpnum) / ( trn(ji,jj,jk,jppoc) + rtrn )
-               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortzgoc - zgrazpoc - zgrazffep
-               tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) - zgrazpoc * znumpoc &
-               &   + zmortzgoc * xkr_dmeso - zgrazffep * znumpoc * wsbio4(ji,jj,jk) / ( wsbio3(ji,jj,jk) + rtrn )
-               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + ferat3 * zmortz2 - zgrazfffp - zgrazpof
+               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortzgoc - zgrazpoc - zgrazffep + zgrapoc2
+               tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) - zgrazpoc * znumpoc + zgrapoc2 * xkr_dmeso      &
+               &                   + zmortzgoc * xkr_dmeso - zgrazffep * znumpoc * wsbio4(ji,jj,jk) / ( wsbio3(ji,jj,jk) + rtrn )
+               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + ferat3 * zmortz2 - zgrazfffp - zgrazpof + zgraztotf * unass2
 #else
-               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - zgrazpoc - zgrazffep
-               tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zmortzgoc - zgrazffeg
-               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) - zgrazpof - zgrazfffp
-               tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + ferat3 * zmortzgoc - zgrazfffg
+               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - zgrazpoc - zgrazffep + zfrac
+               tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zmortzgoc - zgrazffeg + zgrapoc2 - zfrac
+               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) - zgrazpof - zgrazfffp + zfracfe
+               tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + ferat3 * zmortzgoc - zgrazfffg + zgraztotf * unass2 - zfracfe
 #endif
-
             END DO
          END DO
Index: trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90
===================================================================
--- trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90	(revision 3903)
+++ trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90	(revision 3904)
@@ -201,5 +201,5 @@
                       zconctemp2  = trn(ji,jj,jk,jpdia) - zconctemp
                       !
-                      zpislopead (ji,jj,jk) = pislope  * ( 1.+ zadap  * EXP( enano(ji,jj,jk) ) )
+                      zpislopead (ji,jj,jk) = pislope  * ( 1.+ zadap  * EXP( -0.21 * enano(ji,jj,jk) ) )
                       zpislopead2(ji,jj,jk) = (pislope * zconctemp2 + pislope2 * zconctemp)  / ( trn(ji,jj,jk,jpdia) + rtrn )
 
Index: trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90
===================================================================
--- trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90	(revision 3903)
+++ trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90	(revision 3904)
@@ -69,5 +69,5 @@
       REAL(wp) ::  zwflux, zfminus, zfplus
       REAL(wp) ::  zlim, zfact, zfactcal
-      REAL(wp) ::  zo2, zno3, zflx, zpdenit, z1pdenit
+      REAL(wp) ::  zo2, zno3, zflx, zpdenit, z1pdenit, zdenitt, zolimit
       REAL(wp) ::  zsiloss, zcaloss, zwsbio3, zwsbio4, zwscal, zdep, zwstpoc
       REAL(wp) ::  ztrfer, ztrpo4, zwdust
@@ -135,5 +135,5 @@
          ENDIF
          zsidep(:,:) = 8.8 * 0.075 * dust(:,:) * rfact2 / fse3t(:,:,1) / ( 28.1  * rmtss )
-         zpdep (:,:) = 0.1 * 0.021 * dust(:,:) * rfact2 / fse3t(:,:,1) / ( 31.   * rmtss )
+         zpdep (:,:) = 0.1 * 0.021 * dust(:,:) * rfact2 / fse3t(:,:,1) / ( 31.   * rmtss ) / po4r 
          !                                              ! Iron solubilization of particles in the water column
          zwdust = 0.005 / ( wdust * 55.85 * 30.42 ) / ( 45. * rday ) 
@@ -246,8 +246,6 @@
 #endif
 
-      ! THEN this loss is scaled at each bottom grid cell for
-      ! equilibrating the total budget of silica in the ocean.
-      ! Thus, the amount of silica lost in the sediments equal
-      ! the supply at the surface (dust+rivers)
+      ! This loss is scaled at each bottom grid cell for equilibrating the total budget of silica in the ocean.
+      ! Thus, the amount of silica lost in the sediments equal the supply at the surface (dust+rivers)
       ! ------------------------------------------------------
 #if ! defined key_sed
@@ -302,12 +300,17 @@
 
 #if ! defined key_sed
-            zpdenit  = MIN( ( trn(ji,jj,ikt,jpno3) - rtrn ) / rdenit, zdenit2d(ji,jj) * zwstpoc * zrivno3 )
+            ! The 0.5 factor in zpdenit and zdenitt is to avoid negative NO3 concentration after both denitrification
+            ! in the sediments and just above the sediments. Not very clever, but simpliest option.
+            zpdenit  = MIN( 0.5 * ( trn(ji,jj,ikt,jpno3) - rtrn ) / rdenit, zdenit2d(ji,jj) * zwstpoc * zrivno3 )
             z1pdenit = zwstpoc * zrivno3 - zpdenit
-            trn(ji,jj,ikt,jpdoc) = trn(ji,jj,ikt,jpdoc) + z1pdenit
-            trn(ji,jj,ikt,jppo4) = trn(ji,jj,ikt,jppo4) + zpdenit
-            trn(ji,jj,ikt,jpnh4) = trn(ji,jj,ikt,jpnh4) + zpdenit
-            trn(ji,jj,ikt,jpno3) = trn(ji,jj,ikt,jpno3) - rdenit * zpdenit
-            trn(ji,jj,ikt,jptal) = trn(ji,jj,ikt,jptal) + rno3 * ( 1. + rdenit ) * zpdenit
-            trn(ji,jj,ikt,jpdic) = trn(ji,jj,ikt,jpdic) + zpdenit
+            zolimit = MIN( ( trn(ji,jj,ikt,jpoxy) - rtrn ) / o2ut, z1pdenit * ( 1.- nitrfac(ji,jj,ikt) ) )
+            zdenitt = MIN(  0.5 * ( trn(ji,jj,ikt,jpno3) - rtrn ) / rdenit, z1pdenit * nitrfac(ji,jj,ikt) )
+            trn(ji,jj,ikt,jpdoc) = trn(ji,jj,ikt,jpdoc) + z1pdenit - zolimit - zdenitt
+            trn(ji,jj,ikt,jppo4) = trn(ji,jj,ikt,jppo4) + zpdenit + zolimit + zdenitt
+            trn(ji,jj,ikt,jpnh4) = trn(ji,jj,ikt,jpnh4) + zpdenit + zolimit + zdenitt
+            trn(ji,jj,ikt,jpno3) = trn(ji,jj,ikt,jpno3) - rdenit * (zpdenit + zdenitt)
+            trn(ji,jj,ikt,jpoxy) = trn(ji,jj,ikt,jpoxy) - zolimit * o2ut
+            trn(ji,jj,ikt,jptal) = trn(ji,jj,ikt,jptal) + rno3 * (zolimit + (1.+rdenit) * (zpdenit + zdenitt) )
+            trn(ji,jj,ikt,jpdic) = trn(ji,jj,ikt,jpdic) + zpdenit + zolimit + zdenitt
             zwork4(ji,jj) = rdenit * zpdenit * fse3t(ji,jj,ikt)
 #endif
Index: trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90
===================================================================
--- trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90	(revision 3903)
+++ trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90	(revision 3904)
@@ -156,5 +156,5 @@
             DO ji = 1, jpi
                IF( tmask(ji,jj,jk) == 1 ) THEN
-                 zwsmax = 0.8 * fse3t(ji,jj,jk) / xstep
+                 zwsmax = 0.5 * fse3t(ji,jj,jk) / xstep
                  wsbio3(ji,jj,jk) = MIN( wsbio3(ji,jj,jk), zwsmax * FLOAT( iiter1 ) )
                  wsbio4(ji,jj,jk) = MIN( wsbio4(ji,jj,jk), zwsmax * FLOAT( iiter2 ) )
@@ -217,12 +217,9 @@
                zaggdoc  = ( ( 0.369 * 0.3 * trn(ji,jj,jk,jpdoc) + 102.4 * trn(ji,jj,jk,jppoc) ) * zfact       &
                &            + 2.4 * zstep * trn(ji,jj,jk,jppoc) ) * 0.3 * trn(ji,jj,jk,jpdoc)
-!               zaggdoc  = ( 0.83 * trn(ji,jj,jk,jpdoc) + 271. * trn(ji,jj,jk,jppoc) ) * zfact * trn(ji,jj,jk,jpdoc)
                ! transfer of DOC to GOC : 
                ! 1st term is shear aggregation
                ! 2nd term is differential settling 
                zaggdoc2 = ( 3.53E3 * zfact + 0.1 * zstep ) * trn(ji,jj,jk,jpgoc) * 0.3 * trn(ji,jj,jk,jpdoc)
-!               zaggdoc2 = 1.07e4 * zfact * trn(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpdoc)
                ! tranfer of DOC to POC due to brownian motion
-!               zaggdoc3 =   0.02 * ( 16706. * trn(ji,jj,jk,jppoc) + 231. * trn(ji,jj,jk,jpdoc) ) * zstep * trn(ji,jj,jk,jpdoc)
                zaggdoc3 =  ( 5095. * trn(ji,jj,jk,jppoc) + 114. * 0.3 * trn(ji,jj,jk,jpdoc) ) *zstep * 0.3 * trn(ji,jj,jk,jpdoc)
 
