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.
Changeset 12537 for NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p5zmort.F90 – NEMO

Ignore:
Timestamp:
2020-03-11T16:02:54+01:00 (4 years ago)
Author:
aumont
Message:

Comments in routines have been revised and significantly augmented

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p5zmort.F90

    r11536 r12537  
    22   !!====================================================================== 
    33   !!                         ***  MODULE p5zmort  *** 
    4    !! TOP :   PISCES Compute the mortality terms for phytoplankton 
     4   !! TOP :   PISCES-QUOTA Compute the mortality terms for phytoplankton 
    55   !!====================================================================== 
    66   !! History :   1.0  !  2002     (O. Aumont)  Original code 
     
    1414   USE trc             !  passive tracers common variables  
    1515   USE sms_pisces      !  PISCES Source Minus Sink variables 
    16    USE p4zlim 
    17    USE p5zlim          !  Phytoplankton limitation terms 
     16   USE p4zlim          !  Phytoplankton limitation terms (p4z) 
     17   USE p5zlim          !  Phytoplankton limitation terms (p5z) 
    1818   USE prtctl_trc      !  print control for debugging 
    1919 
     
    2121   PRIVATE 
    2222 
    23    PUBLIC   p5z_mort     
    24    PUBLIC   p5z_mort_init     
     23   PUBLIC   p5z_mort           ! Called from p4zbio.F90  
     24   PUBLIC   p5z_mort_init      ! Called from trcini_pisces.F90  
    2525 
    2626   !! * Shared module variables 
    27    REAL(wp), PUBLIC :: wchln    !: 
    28    REAL(wp), PUBLIC :: wchlp   !: 
    29    REAL(wp), PUBLIC :: wchld   !: 
    30    REAL(wp), PUBLIC :: wchldm  !: 
    31    REAL(wp), PUBLIC :: mpratn   !: 
    32    REAL(wp), PUBLIC :: mpratp  !: 
    33    REAL(wp), PUBLIC :: mpratd  !: 
     27   REAL(wp), PUBLIC :: wchln   !! Quadratic mortality rate of nanophytoplankton 
     28   REAL(wp), PUBLIC :: wchlp   !: Quadratic mortality rate of picophytoplankton 
     29   REAL(wp), PUBLIC :: wchld   !: Quadratic mortality rate of diatoms 
     30   REAL(wp), PUBLIC :: wchldm  !: Maximum quadratic mortality rate of diatoms 
     31   REAL(wp), PUBLIC :: mpratn  !: Linear mortality rate of nanophytoplankton 
     32   REAL(wp), PUBLIC :: mpratp  !: Linear mortality rate of picophytoplankton 
     33   REAL(wp), PUBLIC :: mpratd  !: Linear mortality rate of diatoms 
    3434 
    3535   !!---------------------------------------------------------------------- 
     
    4545      !!                     ***  ROUTINE p5z_mort  *** 
    4646      !! 
    47       !! ** Purpose :   Calls the different subroutine to initialize and compute 
     47      !! ** Purpose :   Calls the different subroutine to compute 
    4848      !!                the different phytoplankton mortality terms 
    4949      !! 
     
    8282            DO ji = 1, jpi 
    8383               zcompaph = MAX( ( trb(ji,jj,jk,jpphy) - 1e-9 ), 0.e0 ) 
    84                !   Squared mortality of Phyto similar to a sedimentation term during 
    85                !   blooms (Doney et al. 1996) 
    86                !   ----------------------------------------------------------------- 
     84               ! Quadratic mortality of nano due to aggregation during 
     85               ! blooms (Doney et al. 1996) 
     86               ! ----------------------------------------------------- 
    8787               zrespp = wchln * 1.e6 * xstep * xdiss(ji,jj,jk) * zcompaph * trb(ji,jj,jk,jpphy) 
    8888 
    89                !   Phytoplankton linear mortality 
    90                !   ------------------------------ 
    91                ztortp = mpratn * xstep  * zcompaph 
     89               ! Phytoplankton linear mortality 
     90               ! A michaelis-menten like term is introduced to avoid  
     91               ! extinction of nanophyto in highly limited areas 
     92               ! ---------------------------------------------------- 
     93               ztortp = mpratn * xstep  * zcompaphi * trb(ji,jj,jk,jpphy) /  ( xkmort + trb(ji,jj,jk,jpphy) ) 
    9294               zmortp = zrespp + ztortp 
    9395 
    94                !   Update the arrays TRA which contains the biological sources and sinks 
     96               ! Update the arrays TRA which contains the biological sources and sinks 
    9597 
    9698               zfactn  = trb(ji,jj,jk,jpnph)/(trb(ji,jj,jk,jpphy)+rtrn) 
     
    103105               tra(ji,jj,jk,jpnch) = tra(ji,jj,jk,jpnch) - zmortp * zfactch 
    104106               tra(ji,jj,jk,jpnfe) = tra(ji,jj,jk,jpnfe) - zmortp * zfactfe 
     107               ! Production PIC particles due to mortality 
    105108               zprcaca = xfracal(ji,jj,jk) * zmortp 
    106                ! 
    107109               prodcal(ji,jj,jk) = prodcal(ji,jj,jk) + zprcaca  ! prodcal=prodcal(nanophy)+prodcal(microzoo)+prodcal(mesozoo) 
    108110               ! 
     
    151153            DO ji = 1, jpi 
    152154               zcompaph = MAX( ( trb(ji,jj,jk,jppic) - 1e-9 ), 0.e0 ) 
    153                !  Squared mortality of Phyto similar to a sedimentation term during 
    154                !  blooms (Doney et al. 1996) 
    155                !  ----------------------------------------------------------------- 
     155 
     156               ! Quadratic mortality of pico due to aggregation during 
     157               ! blooms (Doney et al. 1996) 
     158               ! ----------------------------------------------------- 
    156159               zrespp = wchlp * 1.e6 * xstep * xdiss(ji,jj,jk) * zcompaph * trb(ji,jj,jk,jppic) 
    157160 
    158                !     Phytoplankton mortality  
    159                ztortp = mpratp * xstep  * zcompaph 
     161               ! Phytoplankton linear mortality 
     162               ! A michaelis-menten like term is introduced to avoid  
     163               ! extinction of picophyto in highly limited areas 
     164               ! ---------------------------------------------------- 
     165               ztortp = mpratp * xstep  * zcompaph * trb(ji,jj,jk,jppic) /  ( xkmort + trb(ji,jj,jk,jppic) ) 
    160166               zmortp = zrespp + ztortp 
    161167 
    162168               !   Update the arrays TRA which contains the biological sources and sinks 
    163  
    164169               zfactn = trb(ji,jj,jk,jpnpi)/(trb(ji,jj,jk,jppic)+rtrn) 
    165170               zfactp = trb(ji,jj,jk,jpppi)/(trb(ji,jj,jk,jppic)+rtrn) 
     
    225230               zrespp2 = 1.e6 * xstep * (  wchld + wchldm * zlim1 ) * xdiss(ji,jj,jk) * zcompadi * trb(ji,jj,jk,jpdia) 
    226231 
    227                !  Phytoplankton linear mortality  
    228                !  ------------------------------ 
    229                ztortp2 = mpratd * xstep  * zcompadi 
     232               ! Phytoplankton linear mortality 
     233               ! A michaelis-menten like term is introduced to avoid  
     234               ! extinction of diatoms in highly limited areas 
     235               !  --------------------------------------------------- 
     236               ztortp2 = mpratd * xstep  * zcompadi * trb(ji,jj,jk,jpdia) /  ( xkmort + trb(ji,jj,jk,jpdia) ) 
    230237               zmortp2 = zrespp2 + ztortp2 
    231238 
     
    273280      !!                  ***  ROUTINE p5z_mort_init  *** 
    274281      !! 
    275       !! ** Purpose :   Initialization of phytoplankton parameters 
    276       !! 
    277       !! ** Method  :   Read the nampismort namelist and check the parameters 
     282      !! ** Purpose :   Initialization of phytoplankton mortality parameters 
     283      !! 
     284      !! ** Method  :   Read the namp5zmort namelist and check the parameters 
    278285      !!      called at the first timestep 
    279286      !! 
    280       !! ** input   :   Namelist nampismort 
     287      !! ** input   :   Namelist namp5zmort 
    281288      !! 
    282289      !!---------------------------------------------------------------------- 
    283       INTEGER :: ios                 ! Local integer output status for namelist read 
     290      INTEGER :: ios   ! Local integer output status for namelist read 
    284291      !! 
    285292      NAMELIST/namp5zmort/ wchln, wchlp, wchld, wchldm, mpratn, mpratp, mpratd 
    286293      !!---------------------------------------------------------------------- 
    287294 
    288       REWIND( numnatp_ref )              ! Namelist nampismort in reference namelist : Pisces phytoplankton 
     295      REWIND( numnatp_ref )              ! Namelist namp5zmort in reference namelist : Pisces phytoplankton 
    289296      READ  ( numnatp_ref, namp5zmort, IOSTAT = ios, ERR = 901) 
    290297901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namp5zmort in reference namelist' ) 
    291298 
    292       REWIND( numnatp_cfg )              ! Namelist nampismort in configuration namelist : Pisces phytoplankton 
     299      REWIND( numnatp_cfg )              ! Namelist namp5zmort in configuration namelist : Pisces phytoplankton 
    293300      READ  ( numnatp_cfg, namp5zmort, IOSTAT = ios, ERR = 902 ) 
    294301902   IF( ios >  0 ) CALL ctl_nam ( ios , 'namp5zmort in configuration namelist' ) 
Note: See TracChangeset for help on using the changeset viewer.