Index: NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p5zmort.F90
===================================================================
--- NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p5zmort.F90	(revision 11710)
+++ NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p5zmort.F90	(revision 12537)
@@ -2,5 +2,5 @@
    !!======================================================================
    !!                         ***  MODULE p5zmort  ***
-   !! TOP :   PISCES Compute the mortality terms for phytoplankton
+   !! TOP :   PISCES-QUOTA Compute the mortality terms for phytoplankton
    !!======================================================================
    !! History :   1.0  !  2002     (O. Aumont)  Original code
@@ -14,6 +14,6 @@
    USE trc             !  passive tracers common variables 
    USE sms_pisces      !  PISCES Source Minus Sink variables
-   USE p4zlim
-   USE p5zlim          !  Phytoplankton limitation terms
+   USE p4zlim          !  Phytoplankton limitation terms (p4z)
+   USE p5zlim          !  Phytoplankton limitation terms (p5z)
    USE prtctl_trc      !  print control for debugging
 
@@ -21,15 +21,15 @@
    PRIVATE
 
-   PUBLIC   p5z_mort    
-   PUBLIC   p5z_mort_init    
+   PUBLIC   p5z_mort           ! Called from p4zbio.F90 
+   PUBLIC   p5z_mort_init      ! Called from trcini_pisces.F90 
 
    !! * Shared module variables
-   REAL(wp), PUBLIC :: wchln    !:
-   REAL(wp), PUBLIC :: wchlp   !:
-   REAL(wp), PUBLIC :: wchld   !:
-   REAL(wp), PUBLIC :: wchldm  !:
-   REAL(wp), PUBLIC :: mpratn   !:
-   REAL(wp), PUBLIC :: mpratp  !:
-   REAL(wp), PUBLIC :: mpratd  !:
+   REAL(wp), PUBLIC :: wchln   !! Quadratic mortality rate of nanophytoplankton
+   REAL(wp), PUBLIC :: wchlp   !: Quadratic mortality rate of picophytoplankton
+   REAL(wp), PUBLIC :: wchld   !: Quadratic mortality rate of diatoms
+   REAL(wp), PUBLIC :: wchldm  !: Maximum quadratic mortality rate of diatoms
+   REAL(wp), PUBLIC :: mpratn  !: Linear mortality rate of nanophytoplankton
+   REAL(wp), PUBLIC :: mpratp  !: Linear mortality rate of picophytoplankton
+   REAL(wp), PUBLIC :: mpratd  !: Linear mortality rate of diatoms
 
    !!----------------------------------------------------------------------
@@ -45,5 +45,5 @@
       !!                     ***  ROUTINE p5z_mort  ***
       !!
-      !! ** Purpose :   Calls the different subroutine to initialize and compute
+      !! ** Purpose :   Calls the different subroutine to compute
       !!                the different phytoplankton mortality terms
       !!
@@ -82,15 +82,17 @@
             DO ji = 1, jpi
                zcompaph = MAX( ( trb(ji,jj,jk,jpphy) - 1e-9 ), 0.e0 )
-               !   Squared mortality of Phyto similar to a sedimentation term during
-               !   blooms (Doney et al. 1996)
-               !   -----------------------------------------------------------------
+               ! Quadratic mortality of nano due to aggregation during
+               ! blooms (Doney et al. 1996)
+               ! -----------------------------------------------------
                zrespp = wchln * 1.e6 * xstep * xdiss(ji,jj,jk) * zcompaph * trb(ji,jj,jk,jpphy)
 
-               !   Phytoplankton linear mortality
-               !   ------------------------------
-               ztortp = mpratn * xstep  * zcompaph
+               ! Phytoplankton linear mortality
+               ! A michaelis-menten like term is introduced to avoid 
+               ! extinction of nanophyto in highly limited areas
+               ! ----------------------------------------------------
+               ztortp = mpratn * xstep  * zcompaphi * trb(ji,jj,jk,jpphy) /  ( xkmort + trb(ji,jj,jk,jpphy) )
                zmortp = zrespp + ztortp
 
-               !   Update the arrays TRA which contains the biological sources and sinks
+               ! Update the arrays TRA which contains the biological sources and sinks
 
                zfactn  = trb(ji,jj,jk,jpnph)/(trb(ji,jj,jk,jpphy)+rtrn)
@@ -103,6 +105,6 @@
                tra(ji,jj,jk,jpnch) = tra(ji,jj,jk,jpnch) - zmortp * zfactch
                tra(ji,jj,jk,jpnfe) = tra(ji,jj,jk,jpnfe) - zmortp * zfactfe
+               ! Production PIC particles due to mortality
                zprcaca = xfracal(ji,jj,jk) * zmortp
-               !
                prodcal(ji,jj,jk) = prodcal(ji,jj,jk) + zprcaca  ! prodcal=prodcal(nanophy)+prodcal(microzoo)+prodcal(mesozoo)
                !
@@ -151,15 +153,18 @@
             DO ji = 1, jpi
                zcompaph = MAX( ( trb(ji,jj,jk,jppic) - 1e-9 ), 0.e0 )
-               !  Squared mortality of Phyto similar to a sedimentation term during
-               !  blooms (Doney et al. 1996)
-               !  -----------------------------------------------------------------
+
+               ! Quadratic mortality of pico due to aggregation during
+               ! blooms (Doney et al. 1996)
+               ! -----------------------------------------------------
                zrespp = wchlp * 1.e6 * xstep * xdiss(ji,jj,jk) * zcompaph * trb(ji,jj,jk,jppic)
 
-               !     Phytoplankton mortality 
-               ztortp = mpratp * xstep  * zcompaph
+               ! Phytoplankton linear mortality
+               ! A michaelis-menten like term is introduced to avoid 
+               ! extinction of picophyto in highly limited areas
+               ! ----------------------------------------------------
+               ztortp = mpratp * xstep  * zcompaph * trb(ji,jj,jk,jppic) /  ( xkmort + trb(ji,jj,jk,jppic) )
                zmortp = zrespp + ztortp
 
                !   Update the arrays TRA which contains the biological sources and sinks
-
                zfactn = trb(ji,jj,jk,jpnpi)/(trb(ji,jj,jk,jppic)+rtrn)
                zfactp = trb(ji,jj,jk,jpppi)/(trb(ji,jj,jk,jppic)+rtrn)
@@ -225,7 +230,9 @@
                zrespp2 = 1.e6 * xstep * (  wchld + wchldm * zlim1 ) * xdiss(ji,jj,jk) * zcompadi * trb(ji,jj,jk,jpdia)
 
-               !  Phytoplankton linear mortality 
-               !  ------------------------------
-               ztortp2 = mpratd * xstep  * zcompadi
+               ! Phytoplankton linear mortality
+               ! A michaelis-menten like term is introduced to avoid 
+               ! extinction of diatoms in highly limited areas
+               !  ---------------------------------------------------
+               ztortp2 = mpratd * xstep  * zcompadi * trb(ji,jj,jk,jpdia) /  ( xkmort + trb(ji,jj,jk,jpdia) )
                zmortp2 = zrespp2 + ztortp2
 
@@ -273,22 +280,22 @@
       !!                  ***  ROUTINE p5z_mort_init  ***
       !!
-      !! ** Purpose :   Initialization of phytoplankton parameters
-      !!
-      !! ** Method  :   Read the nampismort namelist and check the parameters
+      !! ** Purpose :   Initialization of phytoplankton mortality parameters
+      !!
+      !! ** Method  :   Read the namp5zmort namelist and check the parameters
       !!      called at the first timestep
       !!
-      !! ** input   :   Namelist nampismort
+      !! ** input   :   Namelist namp5zmort
       !!
       !!----------------------------------------------------------------------
-      INTEGER :: ios                 ! Local integer output status for namelist read
+      INTEGER :: ios   ! Local integer output status for namelist read
       !!
       NAMELIST/namp5zmort/ wchln, wchlp, wchld, wchldm, mpratn, mpratp, mpratd
       !!----------------------------------------------------------------------
 
-      REWIND( numnatp_ref )              ! Namelist nampismort in reference namelist : Pisces phytoplankton
+      REWIND( numnatp_ref )              ! Namelist namp5zmort in reference namelist : Pisces phytoplankton
       READ  ( numnatp_ref, namp5zmort, IOSTAT = ios, ERR = 901)
 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namp5zmort in reference namelist' )
 
-      REWIND( numnatp_cfg )              ! Namelist nampismort in configuration namelist : Pisces phytoplankton
+      REWIND( numnatp_cfg )              ! Namelist namp5zmort in configuration namelist : Pisces phytoplankton
       READ  ( numnatp_cfg, namp5zmort, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 ) CALL ctl_nam ( ios , 'namp5zmort in configuration namelist' )
