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/p4zmort.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/p4zmort.F90

    r12496 r12537  
    2020   PRIVATE 
    2121 
    22    PUBLIC   p4z_mort     
    23    PUBLIC   p4z_mort_init     
    24  
    25    REAL(wp), PUBLIC ::   wchln    !: 
    26    REAL(wp), PUBLIC ::   wchld    !: 
    27    REAL(wp), PUBLIC ::   wchldm   !: 
    28    REAL(wp), PUBLIC ::   mpratn   !: 
    29    REAL(wp), PUBLIC ::   mpratd   !: 
     22   PUBLIC   p4z_mort           ! Called from p4zbio.F90  
     23   PUBLIC   p4z_mort_init      ! Called from trcini_pisces.F90  
     24 
     25   REAL(wp), PUBLIC ::   wchln    !: Quadratic mortality rate of nanophytoplankton 
     26   REAL(wp), PUBLIC ::   wchld    !: Quadratic mortality rate of diatoms 
     27   REAL(wp), PUBLIC ::   wchldm   !: Maximum quadratic mortality rate of diatoms 
     28   REAL(wp), PUBLIC ::   mpratn   !: Linear mortality rate of nanophytoplankton 
     29   REAL(wp), PUBLIC ::   mpratd   !: Linear mortality rate of diatoms 
    3030 
    3131   !!---------------------------------------------------------------------- 
     
    4040      !!                     ***  ROUTINE p4z_mort  *** 
    4141      !! 
    42       !! ** Purpose :   Calls the different subroutine to initialize and compute 
     42      !! ** Purpose :   Calls the different subroutine to compute 
    4343      !!                the different phytoplankton mortality terms 
    4444      !! 
     
    4949      ! 
    5050      CALL p4z_nano            ! nanophytoplankton 
    51       ! 
    5251      CALL p4z_diat            ! diatoms 
    5352      ! 
     
    8281               !     to 0 
    8382               zsizerat = MIN(1., MAX( 0., (quotan(ji,jj,jk) - 0.2) / 0.3) ) * trb(ji,jj,jk,jpphy) 
    84                !     Squared mortality of Phyto similar to a sedimentation term during 
    85                !     blooms (Doney et al. 1996) 
     83 
     84               ! Quadratic mortality of nano due to aggregation during 
     85               ! blooms (Doney et al. 1996) 
     86               ! ----------------------------------------------------- 
    8687               zrespp = wchln * 1.e6 * xstep * xdiss(ji,jj,jk) * zcompaph * zsizerat  
    8788 
    88                !     Phytoplankton mortality. This mortality loss is slightly 
    89                !     increased when nutrients are limiting phytoplankton growth 
    90                !     as observed for instance in case of iron limitation. 
     89               ! Phytoplankton linear mortality 
     90               ! A michaelis-menten like term is introduced to avoid  
     91               ! extinction of nanophyto in highly limited areas 
     92               ! ---------------------------------------------------- 
    9193               ztortp = mpratn * xstep * zcompaph / ( xkmort + trb(ji,jj,jk,jpphy) ) * zsizerat 
    9294 
    9395               zmortp = zrespp + ztortp 
    9496 
    95                !   Update the arrays TRA which contains the biological sources and sinks 
    96  
     97               ! Update the arrays TRA which contains the biological sources and sinks 
    9798               zfactfe = trb(ji,jj,jk,jpnfe)/(trb(ji,jj,jk,jpphy)+rtrn) 
    9899               zfactch = trb(ji,jj,jk,jpnch)/(trb(ji,jj,jk,jpphy)+rtrn) 
     
    100101               tra(ji,jj,jk,jpnch) = tra(ji,jj,jk,jpnch) - zmortp * zfactch 
    101102               tra(ji,jj,jk,jpnfe) = tra(ji,jj,jk,jpnfe) - zmortp * zfactfe 
     103               ! Production PIC particles due to mortality 
    102104               zprcaca = xfracal(ji,jj,jk) * zmortp 
    103                ! 
    104105               prodcal(ji,jj,jk) = prodcal(ji,jj,jk) + zprcaca  ! prodcal=prodcal(nanophy)+prodcal(microzoo)+prodcal(mesozoo) 
    105                ! 
    106106               zfracal = 0.5 * xfracal(ji,jj,jk) 
    107107               tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) - zprcaca 
     
    146146      IF( ln_timing )   CALL timing_start('p4z_diat') 
    147147      ! 
    148       !    Aggregation term for diatoms is increased in case of nutrient 
    149       !    stress as observed in reality. The stressed cells become more 
    150       !    sticky and coagulate to sink quickly out of the euphotic zone 
    151       !     ------------------------------------------------------------ 
     148      ! Aggregation term for diatoms is increased in case of nutrient 
     149      ! stress as observed in reality. The stressed cells become more 
     150      ! sticky and coagulate to sink quickly out of the euphotic zone 
     151      ! ------------------------------------------------------------- 
    152152 
    153153      DO jk = 1, jpkm1 
     
    157157               zcompadi = MAX( ( trb(ji,jj,jk,jpdia) - 1e-9), 0. ) 
    158158 
    159                !    Aggregation term for diatoms is increased in case of nutrient 
    160                !    stress as observed in reality. The stressed cells become more 
    161                !    sticky and coagulate to sink quickly out of the euphotic zone 
    162                !     ------------------------------------------------------------ 
    163                !  Phytoplankton respiration  
    164                !     ------------------------ 
     159               ! Aggregation term for diatoms is increased in case of nutrient 
     160               ! stress as observed in reality. The stressed cells become more 
     161               ! sticky and coagulate to sink quickly out of the euphotic zone 
     162               ! ------------------------------------------------------------ 
    165163               zlim2   = xlimdia(ji,jj,jk) * xlimdia(ji,jj,jk) 
    166164               zlim1   = 0.25 * ( 1. - zlim2 ) / ( 0.25 + zlim2 )  
    167165               zrespp2 = 1.e6 * xstep * (  wchld + wchldm * zlim1 ) * xdiss(ji,jj,jk) * zcompadi * trb(ji,jj,jk,jpdia) 
    168166 
    169                !     Phytoplankton mortality.  
    170                !     ------------------------ 
     167               ! Phytoplankton linear mortality 
     168               ! A michaelis-menten like term is introduced to avoid  
     169               ! extinction of diatoms in highly limited areas 
     170               !  --------------------------------------------------- 
    171171               ztortp2 = mpratd * xstep * trb(ji,jj,jk,jpdia)  / ( xkmort + trb(ji,jj,jk,jpdia) ) * zcompadi  
    172172 
    173173               zmortp2 = zrespp2 + ztortp2 
    174174 
    175                !   Update the arrays tra which contains the biological sources and sinks 
     175               ! Update the arrays tra which contains the biological sources and sinks 
    176176               !   --------------------------------------------------------------------- 
    177177               zfactch = trb(ji,jj,jk,jpdch) / ( trb(ji,jj,jk,jpdia) + rtrn ) 
     
    210210      !! ** Purpose :   Initialization of phytoplankton parameters 
    211211      !! 
    212       !! ** Method  :   Read the nampismort namelist and check the parameters 
     212      !! ** Method  :   Read the namp4zmort namelist and check the parameters 
    213213      !!              called at the first timestep 
    214214      !! 
    215       !! ** input   :   Namelist nampismort 
     215      !! ** input   :   Namelist namp4zmort 
    216216      !! 
    217217      !!---------------------------------------------------------------------- 
     
    227227      ENDIF 
    228228      ! 
    229       REWIND( numnatp_ref )              ! Namelist nampismort in reference namelist : Pisces phytoplankton 
     229      REWIND( numnatp_ref )              ! Namelist namp4zmort in reference namelist : Pisces phytoplankton 
    230230      READ  ( numnatp_ref, namp4zmort, IOSTAT = ios, ERR = 901) 
    231231901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namp4zmort in reference namelist' ) 
    232       REWIND( numnatp_cfg )              ! Namelist nampismort in configuration namelist : Pisces phytoplankton 
     232      REWIND( numnatp_cfg )              ! Namelist namp4zmort in configuration namelist : Pisces phytoplankton 
    233233      READ  ( numnatp_cfg, namp4zmort, IOSTAT = ios, ERR = 902 ) 
    234234902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namp4zmort in configuration namelist' ) 
Note: See TracChangeset for help on using the changeset viewer.