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 15574 for NEMO/branches/2021/dev_r14318_RK3_stage1/src/TOP/PISCES/P4Z/p4zagg.F90 – NEMO

Ignore:
Timestamp:
2021-12-03T20:32:50+01:00 (3 years ago)
Author:
techene
Message:

#2605 #2715 trunk merged into dev_r14318_RK3_stage1

Location:
NEMO/branches/2021/dev_r14318_RK3_stage1
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2021/dev_r14318_RK3_stage1

    • Property svn:externals
      •  

        old new  
        99 
        1010# SETTE 
        11 ^/utils/CI/sette@14244        sette 
         11^/utils/CI/sette@HEAD        sette 
         12 
  • NEMO/branches/2021/dev_r14318_RK3_stage1/src/TOP/PISCES/P4Z/p4zagg.F90

    r13295 r15574  
    22   !!====================================================================== 
    33   !!                         ***  MODULE p4zagg  *** 
    4    !! TOP :  PISCES  aggregation of particles 
     4   !! TOP :  PISCES  aggregation of particles (DOC, POC, GOC) 
     5   !!        This module is the same for both PISCES and PISCES-QUOTA 
    56   !!====================================================================== 
    67   !! History :   1.0  !  2004     (O. Aumont) Original code 
     
    3738      !!                     ***  ROUTINE p4z_agg  *** 
    3839      !! 
    39       !! ** Purpose :   Compute aggregation of particles 
     40      !! ** Purpose :   Compute aggregation of particle. Aggregation by  
     41      !!                brownian motion, differential settling and shear 
     42      !!                are considered. 
    4043      !! 
    41       !! ** Method  : - ??? 
     44      !! ** Method  : - Aggregation rates are computed assuming a fixed and  
     45      !!                constant size spectrum in the different particulate  
     46      !!                pools. The coagulation rates have been computed  
     47      !!                externally using dedicated programs (O. Aumont). They  
     48      !!                are hard-coded because they can't be changed  
     49      !!                independently of each other.  
    4250      !!--------------------------------------------------------------------- 
    4351      INTEGER, INTENT(in) ::   kt, knt   ! 
     
    5664      IF( ln_timing )   CALL timing_start('p4z_agg') 
    5765      ! 
    58       !  Exchange between organic matter compartments due to coagulation/disaggregation 
     66      !  Exchange between organic matter compartments due to  
     67      !  coagulation/disaggregation 
    5968      !  --------------------------------------------------- 
     69 
     70      ! PISCES part 
    6071      IF( ln_p4z ) THEN 
    6172         ! 
    62          DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     73         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 
    6374            ! 
    6475            zfact = xstep * xdiss(ji,jj,jk) 
     76            ! Part I : Coagulation dependent on turbulence 
     77            !  The stickiness has been assumed to be 0.1 
    6578            !  Part I : Coagulation dependent on turbulence 
    66             zagg1 = 25.9  * zfact * tr(ji,jj,jk,jppoc,Kbb) * tr(ji,jj,jk,jppoc,Kbb) 
    67             zagg2 = 4452. * zfact * tr(ji,jj,jk,jppoc,Kbb) * tr(ji,jj,jk,jpgoc,Kbb) 
     79            zagg1 = 12.5  * zfact * tr(ji,jj,jk,jppoc,Kbb) * tr(ji,jj,jk,jppoc,Kbb) 
     80            zagg2 = 169.7 * zfact * tr(ji,jj,jk,jppoc,Kbb) * tr(ji,jj,jk,jpgoc,Kbb) 
    6881 
    6982            ! Part II : Differential settling 
    70  
    71             !  Aggregation of small into large particles 
    72             zagg3 =  47.1 * xstep * tr(ji,jj,jk,jppoc,Kbb) * tr(ji,jj,jk,jpgoc,Kbb) 
    73             zagg4 =  3.3  * xstep * tr(ji,jj,jk,jppoc,Kbb) * tr(ji,jj,jk,jppoc,Kbb) 
     83            ! Aggregation of small into large particles 
     84            ! The stickiness has been assumed to be 0.1 
     85            zagg3 =  8.63  * xstep * tr(ji,jj,jk,jppoc,Kbb) * tr(ji,jj,jk,jppoc,Kbb) 
     86            zagg4 =  132.8 * xstep * tr(ji,jj,jk,jppoc,Kbb) * tr(ji,jj,jk,jpgoc,Kbb) 
    7487 
    7588            zagg   = zagg1 + zagg2 + zagg3 + zagg4 
     
    8093            ! 2nd term is shear aggregation of DOC-POC 
    8194            ! 3rd term is differential settling of DOC-POC 
    82             zaggdoc  = ( ( 0.369 * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) + 102.4 * tr(ji,jj,jk,jppoc,Kbb) ) * zfact       & 
    83             &            + 2.4 * xstep * tr(ji,jj,jk,jppoc,Kbb) ) * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) 
     95            ! 1/3 of DOC is supposed to experience aggregation (HMW) 
     96            zaggdoc  = ( ( 12.0 * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) + 9.05 * tr(ji,jj,jk,jppoc,Kbb) ) * zfact       & 
     97            &            + 2.49 * xstep * tr(ji,jj,jk,jppoc,Kbb) ) * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) 
    8498            ! transfer of DOC to GOC :  
    8599            ! 1st term is shear aggregation 
    86             ! 2nd term is differential settling  
    87             zaggdoc2 = ( 3.53E3 * zfact + 0.1 * xstep ) * tr(ji,jj,jk,jpgoc,Kbb) * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) 
     100            ! 1/3 of DOC is supposed to experience aggregation (HMW) 
     101            zaggdoc2 = ( 1.94 * zfact + 1.37 * xstep ) * tr(ji,jj,jk,jpgoc,Kbb) * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) 
    88102            ! tranfer of DOC to POC due to brownian motion 
    89             zaggdoc3 =  114. * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) *xstep * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) 
     103            ! The temperature dependency has been omitted. 
     104            zaggdoc3 =  ( 127.8 * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) + 725.7 * tr(ji,jj,jk,jppoc,Kbb) ) * xstep * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) 
    90105 
    91106            !  Update the trends 
     
    101116         END_3D 
    102117      ELSE    ! ln_p5z 
     118        ! PISCES-QUOTA part 
    103119        ! 
    104          DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     120         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 
    105121            ! 
    106122            zfact = xstep * xdiss(ji,jj,jk) 
    107123            !  Part I : Coagulation dependent on turbulence 
     124            ! The stickiness has been assumed to be 0.1 
    108125            zaggtmp = 25.9  * zfact * tr(ji,jj,jk,jppoc,Kbb) 
    109126            zaggpoc1 = zaggtmp * tr(ji,jj,jk,jppoc,Kbb) 
    110127            zaggtmp = 4452. * zfact * tr(ji,jj,jk,jpgoc,Kbb) 
    111128            zaggpoc2 = zaggtmp * tr(ji,jj,jk,jppoc,Kbb) 
    112  
     129                   
    113130            ! Part II : Differential settling 
    114  
     131            ! The stickiness has been assumed to be 0.1 
     132    
    115133            !  Aggregation of small into large particles 
    116134            zaggtmp =  47.1 * xstep * tr(ji,jj,jk,jpgoc,Kbb) 
     
    119137            zaggpoc4 = zaggtmp * tr(ji,jj,jk,jppoc,Kbb) 
    120138 
    121             zaggpoc   = zaggpoc1 + zaggpoc2 + zaggpoc3 + zaggpoc4 
     139            zaggpoc = zaggpoc1 + zaggpoc2 + zaggpoc3 + zaggpoc4 
    122140            zaggpon = zaggpoc * tr(ji,jj,jk,jppon,Kbb) / ( tr(ji,jj,jk,jppoc,Kbb) + rtrn) 
    123141            zaggpop = zaggpoc * tr(ji,jj,jk,jppop,Kbb) / ( tr(ji,jj,jk,jppoc,Kbb) + rtrn) 
    124             zaggfe = zaggpoc * tr(ji,jj,jk,jpsfe,Kbb) / ( tr(ji,jj,jk,jppoc,Kbb)  + rtrn ) 
     142            zaggfe  = zaggpoc * tr(ji,jj,jk,jpsfe,Kbb) / ( tr(ji,jj,jk,jppoc,Kbb)  + rtrn ) 
    125143 
    126144            ! Aggregation of DOC to POC :  
     
    128146            ! 2nd term is shear aggregation of DOC-POC 
    129147            ! 3rd term is differential settling of DOC-POC 
    130             zaggtmp = ( ( 0.369 * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) + 102.4 * tr(ji,jj,jk,jppoc,Kbb) ) * zfact       & 
    131             &            + 2.4 * xstep * tr(ji,jj,jk,jppoc,Kbb) ) 
     148            ! 1/3 of DOC is supposed to experience aggregation (HMW) 
     149            zaggtmp = ( ( 0.37 * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) + 20.5 * tr(ji,jj,jk,jppoc,Kbb) ) * zfact       & 
     150            &            + 0.15 * xstep * tr(ji,jj,jk,jppoc,Kbb) ) 
    132151            zaggdoc  = zaggtmp * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) 
    133152            zaggdon  = zaggtmp * 0.3 * tr(ji,jj,jk,jpdon,Kbb) 
     
    137156            ! 1st term is shear aggregation 
    138157            ! 2nd term is differential settling  
    139             zaggtmp = ( 3.53E3 * zfact + 0.1 * xstep ) * tr(ji,jj,jk,jpgoc,Kbb) 
     158            ! 1/3 of DOC is supposed to experience aggregation (HMW) 
     159            zaggtmp = 655.4 * zfact * tr(ji,jj,jk,jpgoc,Kbb) 
    140160            zaggdoc2 = zaggtmp * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) 
    141161            zaggdon2 = zaggtmp * 0.3 * tr(ji,jj,jk,jpdon,Kbb) 
     
    143163 
    144164            ! tranfer of DOC to POC due to brownian motion 
    145             zaggtmp = ( 114. * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) ) * xstep 
     165            ! 1/3 of DOC is supposed to experience aggregation (HMW) 
     166            zaggtmp = ( 260.2 * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) +  418.5 * tr(ji,jj,jk,jppoc,Kbb) ) * xstep 
    146167            zaggdoc3 =  zaggtmp * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) 
    147168            zaggdon3 =  zaggtmp * 0.3 * tr(ji,jj,jk,jpdon,Kbb) 
    148169            zaggdop3 =  zaggtmp * 0.3 * tr(ji,jj,jk,jpdop,Kbb) 
     170 
    149171 
    150172            !  Update the trends 
Note: See TracChangeset for help on using the changeset viewer.