Ignore:
Timestamp:
2020-03-11T16:02:54+01:00 (12 months 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/p4zrem.F90

    r12524 r12537  
    33   !!                         ***  MODULE p4zrem  *** 
    44   !! TOP :   PISCES Compute remineralization/dissolution of organic compounds 
     5   !!         except for POC which is treated in p4zpoc.F90 
     6   !!         This module is common to both PISCES and PISCES-QUOTA 
    57   !!========================================================================= 
    68   !! History :   1.0  !  2004     (O. Aumont) Original code 
     
    1719   USE p4zche          !  chemical model 
    1820   USE p4zprod         !  Growth rate of the 2 phyto groups 
    19    USE p4zlim 
     21   USE p4zlim          !  Nutrient limitation terms 
    2022   USE prtctl_trc      !  print control for debugging 
    2123   USE iom             !  I/O manager 
     
    2628 
    2729   PUBLIC   p4z_rem         ! called in p4zbio.F90 
    28    PUBLIC   p4z_rem_init    ! called in trcsms_pisces.F90 
    29    PUBLIC   p4z_rem_alloc 
    30  
    31    REAL(wp), PUBLIC ::   xremikc    !: remineralisation rate of DOC  
    32    REAL(wp), PUBLIC ::   xremikn    !: remineralisation rate of DON  
    33    REAL(wp), PUBLIC ::   xremikp    !: remineralisation rate of DOP  
    34    REAL(wp), PUBLIC ::   xremik     !: remineralisation rate of POC  
     30   PUBLIC   p4z_rem_init    ! called in trcini_pisces.F90 
     31   PUBLIC   p4z_rem_alloc   ! called in trcini_pisces.F90 
     32 
     33   !! * Shared module variables 
     34   REAL(wp), PUBLIC ::   xremikc    !: remineralisation rate of DOC (p5z)  
     35   REAL(wp), PUBLIC ::   xremikn    !: remineralisation rate of DON (p5z)  
     36   REAL(wp), PUBLIC ::   xremikp    !: remineralisation rate of DOP (p5z)  
     37   REAL(wp), PUBLIC ::   xremik     !: remineralisation rate of DOC (p4z)  
    3538   REAL(wp), PUBLIC ::   nitrif     !: NH4 nitrification rate  
    36    REAL(wp), PUBLIC ::   xsirem     !: remineralisation rate of POC  
    37    REAL(wp), PUBLIC ::   xsiremlab  !: fast remineralisation rate of POC  
     39   REAL(wp), PUBLIC ::   xsirem     !: remineralisation rate of biogenic silica 
     40   REAL(wp), PUBLIC ::   xsiremlab  !: fast remineralisation rate of BSi 
    3841   REAL(wp), PUBLIC ::   xsilab     !: fraction of labile biogenic silica  
    3942   REAL(wp), PUBLIC ::   feratb     !: Fe/C quota in bacteria 
    40    REAL(wp), PUBLIC ::   xkferb     !: Half-saturation constant for bacteria Fe/C 
     43   REAL(wp), PUBLIC ::   xkferb     !: Half-saturation constant for bacterial Fe/C 
    4144 
    4245   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   denitr   !: denitrification array 
     
    5356      !!                     ***  ROUTINE p4z_rem  *** 
    5457      !! 
    55       !! ** Purpose :   Compute remineralization/scavenging of organic compounds 
    56       !! 
    57       !! ** Method  : - ??? 
     58      !! ** Purpose :   Compute remineralization/dissolution of organic compounds 
     59      !!                Computes also nitrification of ammonium  
     60      !!                The solubilization/remineralization of POC is treated  
     61      !!                in p4zpoc.F90. The dissolution of calcite is processed 
     62      !!                in p4zlys.F90.  
     63      !! 
     64      !! ** Method  : - Bacterial biomass is computed implicitely based on a  
     65      !!                parameterization developed from an explicit modeling 
     66      !!                of PISCES in an alternative version  
    5867      !!--------------------------------------------------------------------- 
    5968      INTEGER, INTENT(in) ::   kt, knt ! ocean time step 
     
    7382      IF( ln_timing )   CALL timing_start('p4z_rem') 
    7483      ! 
    75       ! Initialisation of arrys 
     84      ! Initialisation of arrays 
    7685      zdepprod(:,:,:) = 1._wp 
    7786      zdepeff (:,:,:) = 0.3_wp 
     
    8190      zfacsi(:,:,:)   = xsilab 
    8291 
    83       ! Computation of the mean phytoplankton concentration as 
    84       ! a crude estimate of the bacterial biomass 
     92      ! Computation of the mean bacterial concentration 
    8593      ! this parameterization has been deduced from a model version 
    8694      ! that was modeling explicitely bacteria 
     
    107115            DO jj = 1, jpj 
    108116               DO ji = 1, jpi 
    109                   ! DOC ammonification. Depends on depth, phytoplankton biomass 
    110                   ! and a limitation term which is supposed to be a parameterization of the bacterial activity.  
     117                  ! DOC ammonification. Depends on a limitation term of the bacterial activity 
     118                  ! and on the implicit bacteria concentration 
     119                  ! -------------------------------------------------------------------------- 
    111120                  zremik = xremik * xstep / 1.e-6 * xlimbac(ji,jj,jk) * zdepbac(ji,jj,jk)  
    112121                  zremik = MAX( zremik, 2.74e-4 * xstep ) 
     122 
    113123                  ! Ammonification in oxic waters with oxygen consumption 
    114124                  ! ----------------------------------------------------- 
    115125                  zolimit = zremik * ( 1.- nitrfac(ji,jj,jk) ) * trb(ji,jj,jk,jpdoc)  
    116126                  zolimi(ji,jj,jk) = MIN( ( trb(ji,jj,jk,jpoxy) - rtrn ) / o2ut, zolimit )  
     127 
    117128                  ! Ammonification in suboxic waters with denitrification 
    118                   ! ------------------------------------------------------- 
     129                  ! ----------------------------------------------------- 
    119130                  zammonic = zremik * nitrfac(ji,jj,jk) * trb(ji,jj,jk,jpdoc) 
    120131                  denitr(ji,jj,jk)  = zammonic * ( 1. - nitrfac2(ji,jj,jk) ) 
    121132                  denitr(ji,jj,jk)  = MIN( ( trb(ji,jj,jk,jpno3) - rtrn ) / rdenit, denitr(ji,jj,jk) ) 
     133 
     134                  ! Ammonification in waters depleted in O2 and NO3 based on  
     135                  ! other redox processes 
     136                  ! -------------------------------------------------------- 
    122137                  zoxyremc          = zammonic - denitr(ji,jj,jk) 
    123138                  ! 
     
    125140                  denitr (ji,jj,jk) = MAX( 0.e0, denitr (ji,jj,jk) ) 
    126141                  zoxyremc          = MAX( 0.e0, zoxyremc ) 
    127  
    128                   ! 
     142                  ! Update of the TRA arrays 
    129143                  tra(ji,jj,jk,jppo4) = tra(ji,jj,jk,jppo4) + zolimi (ji,jj,jk) + denitr(ji,jj,jk) + zoxyremc 
    130144                  tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + zolimi (ji,jj,jk) + denitr(ji,jj,jk) + zoxyremc 
     
    142156            DO jj = 1, jpj 
    143157               DO ji = 1, jpi 
    144                   ! DOC ammonification. Depends on depth, phytoplankton biomass 
    145                   ! and a limitation term which is supposed to be a parameterization of the bacterial activity.  
    146                   ! ----------------------------------------------------------------- 
     158                  ! DOC ammonification. Depends on a limitation term of the bacterial activity 
     159                  ! and on the implicit bacteria concentration 
     160                  ! --------------------------------------------------------------- 
     161----------- 
    147162                  zremik = xstep / 1.e-6 * MAX(0.01, xlimbac(ji,jj,jk)) * zdepbac(ji,jj,jk)  
    148163                  zremik = MAX( zremik, 2.74e-4 * xstep / xremikc ) 
     
    170185                  zoxyremn  = zremikn * zoxyremc * trb(ji,jj,jk,jpdon) / ( trb(ji,jj,jk,jpdoc) + rtrn ) 
    171186                  zoxyremp  = zremikp * zoxyremc * trb(ji,jj,jk,jpdop) / ( trb(ji,jj,jk,jpdoc) + rtrn ) 
    172  
     187                  ! Update of the TRA arrays 
    173188                  tra(ji,jj,jk,jppo4) = tra(ji,jj,jk,jppo4) + zolimip + zdenitrp + zoxyremp 
    174189                  tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + zolimin + zdenitrn + zoxyremn 
     
    185200         ! 
    186201      ENDIF 
    187  
    188202 
    189203      DO jk = 1, jpkm1 
     
    220234               ! Bacteries are obliged to take up iron from the water. Some 
    221235               ! studies (especially at Papa) have shown this uptake to be significant 
    222                ! ---------------------------------------------------------- 
     236               ! --------------------------------------------------------------------- 
    223237               zbactfer = feratb *  rfact2 * 0.6_wp / rday * tgfunc(ji,jj,jk) * xlimbacl(ji,jj,jk)     & 
    224238                  &              * trb(ji,jj,jk,jpfer) / ( xkferb + trb(ji,jj,jk,jpfer) )    & 
    225239                  &              * zdepeff(ji,jj,jk) * zdepbac(ji,jj,jk) 
     240 
     241               ! Only the transfer of iron from its dissolved form to particles 
     242               ! is treated here. The GGE of bacteria supposed to be equal to  
     243               ! 0.33. This is hard-coded.  
    226244               tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zbactfer*0.33 
    227245               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zbactfer*0.25 
     
    242260      ! of bSi. Set to a constant in the upper ocean 
    243261      ! --------------------------------------------------------------- 
    244  
    245262      DO jk = 1, jpkm1 
    246263         DO jj = 1, jpj 
    247264            DO ji = 1, jpi 
     265               ! Remineralization rate of BSi depedant on T and saturation 
     266               ! The parameterization is taken from Ridgwell et al. (2002)  
     267               ! --------------------------------------------------------- 
    248268               zdep     = MAX( hmld(ji,jj), heup_01(ji,jj) ) 
    249269               zsatur   = MAX( rtrn, ( sio3eq(ji,jj,jk) - trb(ji,jj,jk,jpsil) ) / ( sio3eq(ji,jj,jk) + rtrn ) ) 
    250270               zsatur2  = ( 1. + tsn(ji,jj,jk,jp_tem) / 400.)**37 
    251271               znusil   = 0.225  * ( 1. + tsn(ji,jj,jk,jp_tem) / 15.) * zsatur + 0.775 * zsatur2 * zsatur**9.25 
    252                ! Remineralization rate of BSi depedant on T and saturation 
    253                ! --------------------------------------------------------- 
     272               ! Computation of the vertical evolution of the labile fraction 
     273               ! of bSi. This is computed assuming steady state. 
    254274               IF ( gdept_n(ji,jj,jk) > zdep ) THEN 
    255275                  zfacsib(ji,jj,jk) = zfacsib(ji,jj,jk-1) * EXP( -0.5 * ( xsiremlab - xsirem )  & 
     
    261281               zsiremin = ( xsiremlab * zfacsi(ji,jj,jk) + xsirem * ( 1. - zfacsi(ji,jj,jk) ) ) * xstep * znusil 
    262282               zosil    = zsiremin * trb(ji,jj,jk,jpgsi) 
    263                ! 
     283               ! Update of the TRA arrays 
    264284               tra(ji,jj,jk,jpgsi) = tra(ji,jj,jk,jpgsi) - zosil 
    265285               tra(ji,jj,jk,jpsil) = tra(ji,jj,jk,jpsil) + zosil 
Note: See TracChangeset for help on using the changeset viewer.