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

    r10425 r12537  
    22   !!====================================================================== 
    33   !!                         ***  MODULE p4zsink  *** 
    4    !! TOP :  PISCES  vertical flux of particulate matter due to gravitational sinking 
     4   !! TOP :  PISCES  vertical flux of particulate matter due to  
     5   !!        gravitational sinking 
     6   !!        This module is the same for both PISCES and PISCES-QUOTA 
    57   !!====================================================================== 
    68   !! History :   1.0  !  2004     (O. Aumont) Original code 
     
    810   !!             3.4  !  2011-06  (O. Aumont, C. Ethe) Change aggregation formula 
    911   !!             3.5  !  2012-07  (O. Aumont) Introduce potential time-splitting 
     12   !!             4.0  !  2019     (O. Aumont) an external subroutine is called 
     13   !!                                          to compute the impact of sinking 
    1014   !!---------------------------------------------------------------------- 
    1115   !!   p4z_sink       :  Compute vertical flux of particulate matter due to gravitational sinking 
     
    2529 
    2630   PUBLIC   p4z_sink         ! called in p4zbio.F90 
    27    PUBLIC   p4z_sink_init    ! called in trcsms_pisces.F90 
    28    PUBLIC   p4z_sink_alloc 
     31   PUBLIC   p4z_sink_init    ! called in trcini_pisces.F90 
     32   PUBLIC   p4z_sink_alloc   ! called in trcini_pisces.F90 
    2933 
    3034   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sinking, sinking2  !: POC sinking fluxes  
    3135   !                                                          !  (different meanings depending on the parameterization) 
    32    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sinkingn, sinking2n  !: POC sinking fluxes  
    33    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sinkingp, sinking2p  !: POC sinking fluxes  
     36   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sinkingn, sinking2n  !: PON sinking fluxes  
     37   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sinkingp, sinking2p  !: POP sinking fluxes  
    3438   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sinkcal, sinksil   !: CaCO3 and BSi sinking fluxes 
    3539   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sinkfer            !: Small BFe sinking fluxes 
     
    4549CONTAINS 
    4650 
    47    !!---------------------------------------------------------------------- 
    48    !!   'standard sinking parameterisation'                  ??? 
    49    !!---------------------------------------------------------------------- 
    50  
    5151   SUBROUTINE p4z_sink ( kt, knt ) 
    5252      !!--------------------------------------------------------------------- 
     
    5454      !! 
    5555      !! ** Purpose :   Compute vertical flux of particulate matter due to  
    56       !!                gravitational sinking 
    57       !! 
    58       !! ** Method  : - ??? 
     56      !!                gravitational sinking.  
     57      !! 
     58      !! ** Method  : - An external advection subroutine is called to compute 
     59      !!                the impact of sinking on the particles. The tracers 
     60      !!                concentrations are updated in this subroutine which 
     61      !!                is mandatory to deal with negative concentrations 
    5962      !!--------------------------------------------------------------------- 
    6063      INTEGER, INTENT(in) :: kt, knt 
     
    7578      consgoc(:,:,:) = 0. 
    7679 
    77       ! 
    78       !    Sinking speeds of detritus is increased with depth as shown 
    79       !    by data and from the coagulation theory 
    80       !    ----------------------------------------------------------- 
     80      ! Sinking speeds of big detritus is increased with depth as shown 
     81      ! by data and from the coagulation theory. This is controled by 
     82      ! wsbio2max and wsbio2scale. If wsbio2max is set to wsbio2, then 
     83      ! sinking speed is constant with depth. 
     84      ! CaCO3 and bSi are supposed to sink at the big particles speed  
     85      ! due to their high density 
     86      ! --------------------------------------------------------------- 
    8187      DO jk = 1, jpkm1 
    8288         DO jj = 1, jpj 
     
    8995      END DO 
    9096 
    91       ! limit the values of the sinking speeds to avoid numerical instabilities   
     97      ! Sinking speed of the small particles is constant 
    9298      wsbio3(:,:,:) = wsbio 
    9399 
    94       ! 
    95       !  Initializa to zero all the sinking arrays  
    96       !   ----------------------------------------- 
     100      ! Initialize to zero all the sinking arrays  
     101      ! ----------------------------------------- 
    97102      sinking (:,:,:) = 0.e0 
    98103      sinking2(:,:,:) = 0.e0 
     
    102107      sinkfer2(:,:,:) = 0.e0 
    103108 
    104       !   Compute the sedimentation term using p4zsink2 for all the sinking particles 
    105       !   ----------------------------------------------------- 
     109      ! Compute the sedimentation term using trc_sink for all the sinking particles 
     110      ! --------------------------------------------------------------------------- 
    106111      CALL trc_sink( kt, wsbio3, sinking , jppoc, rfact2 ) 
    107112      CALL trc_sink( kt, wsbio3, sinkfer , jpsfe, rfact2 ) 
     
    111116      CALL trc_sink( kt, wsbio4, sinkcal , jpcal, rfact2 ) 
    112117 
     118      ! PISCES-QUOTA part 
    113119      IF( ln_p5z ) THEN 
    114120         sinkingn (:,:,:) = 0.e0 
     
    117123         sinking2p(:,:,:) = 0.e0 
    118124 
    119          !   Compute the sedimentation term using p4zsink2 for all the sinking particles 
    120          !   ----------------------------------------------------- 
     125         ! Compute the sedimentation term using trc_sink for all the sinking particles 
     126         ! --------------------------------------------------------------------------- 
    121127         CALL trc_sink( kt, wsbio3, sinkingn , jppon, rfact2 ) 
    122128         CALL trc_sink( kt, wsbio3, sinkingp , jppop, rfact2 ) 
     
    186192      !!---------------------------------------------------------------------- 
    187193      !!                  ***  ROUTINE p4z_sink_init  *** 
     194      !! 
     195      !! ** Purpose :   Initialization of sinking parameters 
     196      !! 
     197      !! ** Method  :    
     198      !! 
     199      !! ** input   :    
    188200      !!---------------------------------------------------------------------- 
    189201      INTEGER :: jk 
Note: See TracChangeset for help on using the changeset viewer.