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 8003 for branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z – NEMO

Ignore:
Timestamp:
2017-05-09T12:14:45+02:00 (7 years ago)
Author:
aumont
Message:

modification in the code to remove unnecessary parts such as kriest and non iomput options

Location:
branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zagg.F90

    r7180 r8003  
    3535CONTAINS 
    3636 
    37 #if ! defined key_kriest 
    3837   !!---------------------------------------------------------------------- 
    3938   !!   'standard parameterisation'                  ??? 
     
    6665               ! 
    6766               zstep = xstep  
    68 # if defined key_degrad 
    69                zstep = zstep * facvol(ji,jj,jk) 
    70 # endif 
    7167               zfact = zstep * xdiss(ji,jj,jk) 
    7268               !  Part I : Coagulation dependent on turbulence 
     
    121117 
    122118#else 
    123    !!---------------------------------------------------------------------- 
    124    !!   'Kriest parameterisation'        key_kriest          ??? 
    125    !!---------------------------------------------------------------------- 
    126  
    127    SUBROUTINE p4z_agg ( kt, knt ) 
    128       !!--------------------------------------------------------------------- 
    129       !!                ***  ROUTINE p4z_agg  *** 
    130       !! 
    131       !! ** Purpose :   Compute aggregation of particles 
    132       !! 
    133       !! ** Method  : - ??? 
    134       !!--------------------------------------------------------------------- 
    135       ! 
    136       INTEGER, INTENT(in) :: kt, knt 
    137       ! 
    138       INTEGER  :: ji, jj, jk 
    139       REAL(wp) :: zagg1, zagg2, zagg3, zagg4, zagg5, zfract, zaggsi, zaggsh 
    140       REAL(wp) :: zagg , zaggdoc, zaggdoc1, znumdoc 
    141       REAL(wp) :: znum , zeps, zfm, zgm, zsm 
    142       REAL(wp) :: zdiv , zdiv1, zdiv2, zdiv3, zdiv4, zdiv5 
    143       REAL(wp) :: zval1, zval2, zval3, zval4 
    144       REAL(wp) :: zfact 
    145       CHARACTER (len=25) :: charout 
    146       !!--------------------------------------------------------------------- 
    147       ! 
    148       IF( nn_timing == 1 )  CALL timing_start('p4z_agg') 
    149       ! 
    150       !  Exchange between organic matter compartments due to coagulation/disaggregation 
    151       !  --------------------------------------------------- 
    152  
    153       zval1 = 1. + xkr_zeta 
    154       zval2 = 1. + xkr_eta 
    155       zval3 = 3. + xkr_eta 
    156       zval4 = 4. + xkr_eta 
    157  
    158       DO jk = 1,jpkm1 
    159          DO jj = 1,jpj 
    160             DO ji = 1,jpi 
    161                IF( tmask(ji,jj,jk) /= 0.e0 ) THEN 
    162  
    163                   znum = trb(ji,jj,jk,jppoc)/(trb(ji,jj,jk,jpnum)+rtrn) / xkr_massp 
    164                   !-------------- To avoid sinking speed over 50 m/day ------- 
    165                   znum  = min(xnumm(jk),znum) 
    166                   znum  = MAX( 1.1,znum) 
    167                   !------------------------------------------------------------ 
    168                   zeps  = ( zval1 * znum - 1.) / ( znum - 1.) 
    169                   zdiv  = MAX( 1.e-4, ABS( zeps - zval3) ) * SIGN( 1., zeps - zval3 ) 
    170                   zdiv1 = MAX( 1.e-4, ABS( zeps - 4.   ) ) * SIGN( 1., zeps - 4.    ) 
    171                   zdiv2 = zeps - 2. 
    172                   zdiv3 = zeps - 3. 
    173                   zdiv4 = zeps - zval2 
    174                   zdiv5 = 2.* zeps - zval4 
    175                   zfm   = xkr_frac**( 1.- zeps ) 
    176                   zsm   = xkr_frac**xkr_eta 
    177  
    178                   !    Part I : Coagulation dependant on turbulence 
    179                   !    ---------------------------------------------- 
    180  
    181                   zagg1 =  0.163 * trb(ji,jj,jk,jpnum)**2               & 
    182                      &            * 2.*( (zfm-1.)*(zfm*xkr_mass_max**3-xkr_mass_min**3)    & 
    183                      &            * (zeps-1)/zdiv1 + 3.*(zfm*xkr_mass_max-xkr_mass_min)    & 
    184                      &            * (zfm*xkr_mass_max**2-xkr_mass_min**2)                  & 
    185                      &            * (zeps-1.)**2/(zdiv2*zdiv3))  
    186                   zagg2 =  2*0.163*trb(ji,jj,jk,jpnum)**2*zfm*                       & 
    187                      &                   ((xkr_mass_max**3+3.*(xkr_mass_max**2          & 
    188                      &                    *xkr_mass_min*(zeps-1.)/zdiv2                 & 
    189                      &                    +xkr_mass_max*xkr_mass_min**2*(zeps-1.)/zdiv3)    & 
    190                      &                    +xkr_mass_min**3*(zeps-1)/zdiv1)                  & 
    191                      &                    -zfm*xkr_mass_max**3*(1.+3.*((zeps-1.)/           & 
    192                      &                    (zeps-2.)+(zeps-1.)/zdiv3)+(zeps-1.)/zdiv1))     
    193  
    194                   zagg3 =  0.163*trb(ji,jj,jk,jpnum)**2*zfm**2*8. * xkr_mass_max**3   
    195                    
    196                  !    Aggregation of small into large particles 
    197                  !    Part II : Differential settling 
    198                  !    ---------------------------------------------- 
    199  
    200                   zagg4 =  2.*3.141*0.125*trb(ji,jj,jk,jpnum)**2*                       & 
    201                      &                 xkr_wsbio_min*(zeps-1.)**2                         & 
    202                      &                 *(xkr_mass_min**2*((1.-zsm*zfm)/(zdiv3*zdiv4)      & 
    203                      &                 -(1.-zfm)/(zdiv*(zeps-1.)))-                       & 
    204                      &                 ((zfm*zfm*xkr_mass_max**2*zsm-xkr_mass_min**2)     & 
    205                      &                 *xkr_eta)/(zdiv*zdiv3*zdiv5) )    
    206  
    207                   zagg5 =   2.*3.141*0.125*trb(ji,jj,jk,jpnum)**2                         & 
    208                      &                 *(zeps-1.)*zfm*xkr_wsbio_min                        & 
    209                      &                 *(zsm*(xkr_mass_min**2-zfm*xkr_mass_max**2)         & 
    210                      &                 /zdiv3-(xkr_mass_min**2-zfm*zsm*xkr_mass_max**2)    & 
    211                      &                 /zdiv)   
    212  
    213                   ! 
    214                   !     Fractionnation by swimming organisms 
    215                   !     ------------------------------------ 
    216  
    217                   zfract = 2.*3.141*0.125*trb(ji,jj,jk,jpmes)*12./0.12/0.06**3*trb(ji,jj,jk,jpnum)  & 
    218                     &      * (0.01/xkr_mass_min)**(1.-zeps)*0.1**2  & 
    219                     &      * 10000.*xstep 
    220  
    221                   !     Aggregation of DOC to small particles 
    222                   !     -------------------------------------- 
    223  
    224                   zaggdoc = 0.83 * trb(ji,jj,jk,jpdoc) * xstep * xdiss(ji,jj,jk) * trb(ji,jj,jk,jpdoc)   & 
    225                      &        + 0.005 * 231. * trb(ji,jj,jk,jpdoc) * xstep * trb(ji,jj,jk,jpdoc) 
    226                   zaggdoc1 = 271. * trb(ji,jj,jk,jppoc) * xstep * xdiss(ji,jj,jk) * trb(ji,jj,jk,jpdoc)  & 
    227                      &  + 0.02 * 16706. * trb(ji,jj,jk,jppoc) * xstep * trb(ji,jj,jk,jpdoc) 
    228  
    229 # if defined key_degrad 
    230                    zagg1   = zagg1   * facvol(ji,jj,jk)                  
    231                    zagg2   = zagg2   * facvol(ji,jj,jk)                  
    232                    zagg3   = zagg3   * facvol(ji,jj,jk)                  
    233                    zagg4   = zagg4   * facvol(ji,jj,jk)                  
    234                    zagg5   = zagg5   * facvol(ji,jj,jk)                  
    235                    zaggdoc = zaggdoc * facvol(ji,jj,jk)                  
    236                    zaggdoc1 = zaggdoc1 * facvol(ji,jj,jk) 
    237 # endif 
    238                   zaggsh = ( zagg1 + zagg2 + zagg3 ) * rfact2 * xdiss(ji,jj,jk) / 1000. 
    239                   zaggsi = ( zagg4 + zagg5 ) * xstep / 10. 
    240                   zagg = 0.5 * xkr_stick * ( zaggsh + zaggsi ) 
    241                   ! 
    242                   znumdoc = trb(ji,jj,jk,jpnum) / ( trb(ji,jj,jk,jppoc) + rtrn ) 
    243                   tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zaggdoc + zaggdoc1 
    244                   tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) + zfract + zaggdoc / xkr_massp - zagg 
    245                   tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) - zaggdoc - zaggdoc1 
    246  
    247                ENDIF 
    248             END DO 
    249          END DO 
    250       END DO 
    251       ! 
    252       IF(ln_ctl)   THEN  ! print mean trends (used for debugging) 
    253          WRITE(charout, FMT="('agg')") 
    254          CALL prt_ctl_trc_info(charout) 
    255          CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    256       ENDIF 
    257       ! 
    258       IF( nn_timing == 1 )  CALL timing_stop('p4z_agg') 
    259       ! 
    260    END SUBROUTINE p4z_agg 
    261  
    262 #endif 
    263  
    264 #else 
    265119   !!====================================================================== 
    266120   !!  Dummy module :                                   No PISCES bio-model 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90

    r7617 r8003  
    7272      REAL(wp) ::   zdenom1, zscave, zaggdfea, zaggdfeb, zcoag 
    7373      REAL(wp) ::   ztrc, zdust 
    74 #if ! defined key_kriest 
    7574      REAL(wp) ::   zdenom2 
    76 #endif 
    7775      REAL(wp), POINTER, DIMENSION(:,:,:) :: zTL1, zFe3, ztotlig, precip 
    7876      REAL(wp), POINTER, DIMENSION(:,:,:) :: zFeL1, zFeL2, zTL2, zFe2, zFeP 
     
    274272            DO ji = 1, jpi 
    275273               zstep = xstep 
    276 # if defined key_degrad 
    277                zstep = zstep * facvol(ji,jj,jk) 
    278 # endif 
    279274               ! Scavenging rate of iron. This scavenging rate depends on the load of particles of sea water.  
    280275               ! This parameterization assumes a simple second order kinetics (k[Particles][Fe]). 
     
    303298                  ENDIF 
    304299               ENDIF 
    305 #if defined key_kriest 
    306                ztrc   = ( trb(ji,jj,jk,jppoc) + trb(ji,jj,jk,jpcal) + trb(ji,jj,jk,jpgsi) ) * 1.e6  
    307 #else 
    308300               ztrc   = ( trb(ji,jj,jk,jppoc) + trb(ji,jj,jk,jpgoc) + trb(ji,jj,jk,jpcal) + trb(ji,jj,jk,jpgsi) ) * 1.e6  
    309 #endif 
    310301               IF( ln_dust )  zdust  = dust(ji,jj) / ( wdust / rday ) * tmask(ji,jj,jk) ! dust in kg/m2/s 
    311302               zlam1b = 3.e-5 + xlamdust * zdust + xlam1 * ztrc 
     
    316307               ! --------------------------------------------------------- 
    317308               zdenom1 = xlam1 * trb(ji,jj,jk,jppoc) / zlam1b 
    318 #if ! defined key_kriest 
    319309               zdenom2 = xlam1 * trb(ji,jj,jk,jpgoc) / zlam1b 
    320 #endif 
    321310 
    322311               !  Increased scavenging for very high iron concentrations found near the coasts  
     
    338327               zaggdfea = zlam1a * zstep * zfecollc 
    339328               ! 
    340 #if defined key_kriest 
    341                zaggdfeb = 0. 
    342 #else 
    343329               zlam1b = 3.53E3 *   trb(ji,jj,jk,jpgoc) * xdiss(ji,jj,jk) 
    344330               zaggdfeb = zlam1b * zstep * zfecollc 
    345 #endif 
    346331               ! precipitation of Fe3+, creation of nanoparticles 
    347332               precip(ji,jj,jk) = max( 0., (zfeequi - fe3sol) ) * kfep * zstep 
     
    350335               &                     - zcoag - precip(ji,jj,jk) 
    351336               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zscave * zdenom1 + zaggdfea 
    352 #if ! defined key_kriest  
    353337               tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zscave * zdenom2 + zaggdfeb 
    354 #endif 
    355338               zscav3d(ji,jj,jk)  = zscave 
    356339               zcoll3d(ji,jj,jk)  = zaggdfea + zaggdfeb 
    357340#if defined key_ligand 
    358341               zaggliga = zlam1a * zstep * zligco 
    359 #   if defined key_kriest 
    360                zaggligb = 0. 
    361 #   else 
    362342               zaggligb = zlam1b * zstep * zligco 
    363 #   endif 
    364343               tra(ji,jj,jk,jpfep) = tra(ji,jj,jk,jpfep) + precip(ji,jj,jk) 
    365344               tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) - zaggliga - zaggligb 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zflx.F90

    r6966 r8003  
    158158            zkgwan = 0.251 * zws 
    159159            zkgwan = zkgwan * xconv * ( 1.- fr_i(ji,jj) ) * tmask(ji,jj,1) 
    160 # if defined key_degrad 
    161             zkgwan = zkgwan * facvol(ji,jj,1) 
    162 #endif  
    163160            ! compute gas exchange for CO2 and O2 
    164161            zkgco2(ji,jj) = zkgwan * SQRT( 660./ zsch_co2 ) 
     
    227224         ! 
    228225         CALL wrk_dealloc( jpi, jpj, zw2d ) 
    229       ELSE 
    230          IF( ln_diatrc ) THEN 
    231             trc2d(:,:,jp_pcs0_2d    ) = oce_co2(:,:) / e1e2t(:,:) * rfact2r 
    232             trc2d(:,:,jp_pcs0_2d + 1) = zoflx(:,:) * 1000 * tmask(:,:,1) 
    233             trc2d(:,:,jp_pcs0_2d + 2) = zkgco2(:,:) * tmask(:,:,1) 
    234             trc2d(:,:,jp_pcs0_2d + 3) = ( zpco2atm(:,:) - zh2co3(:,:) / ( chemc(:,:,1) + rtrn ) ) * tmask(:,:,1) 
    235          ENDIF 
    236226      ENDIF 
    237227      ! 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zligand.F90

    r7627 r8003  
    7878               ! --------------------------------------------------------- 
    7979               zstep   = xstep 
    80 # if defined key_degrad 
    81                zstep = zstep * facvol(ji,jj,jk) 
    82 # endif 
    8380               zstep2  = zstep / 365. ! per year 
    8481               ! production from remineralisation of organic matter 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlys.F90

    r7617 r8003  
    120120               !       CACO3 GETS DISSOLVED EVEN IN THE CASE OF OVERSATURATION) 
    121121               zdispot = kdca * zexcess * trb(ji,jj,jk,jpcal) 
    122 # if defined key_degrad 
    123                zdispot = zdispot * facvol(ji,jj,jk) 
    124 # endif 
    125122               !  CHANGE OF [CO3--] , [ALK], PARTICULATE [CACO3], 
    126123               !       AND [SUM(CO2)] DUE TO CACO3 DISSOLUTION/PRECIPITATION 
     
    144141             CALL iom_put( "AOU"   , MAX(0., zwork(:,:,:) ) ) 
    145142         ENDIF 
    146       ELSE 
    147          IF( ln_diatrc ) THEN 
    148             trc3d(:,:,:,jp_pcs0_3d    ) = -1. * LOG10( hi(:,:,:) ) * tmask(:,:,:) 
    149             trc3d(:,:,:,jp_pcs0_3d + 1) = zco3(:,:,:)              * tmask(:,:,:) 
    150             trc3d(:,:,:,jp_pcs0_3d + 2) = zco3sat(:,:,:)           * tmask(:,:,:) 
    151          ENDIF 
    152143      ENDIF 
    153144         ! 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90

    r7617 r8003  
    7676      REAL(wp) :: zepshert, zepsherv, zgrarsig, zgraztot, zgraztotn, zgraztotf 
    7777      REAL(wp) :: zgrarem2, zgrafer2, zgrapoc2, zprcaca, zmortz2, zgrasrat, zgrasratn 
    78 #if defined key_kriest 
    79       REAL znumpoc 
    80 #endif 
    8178      REAL(wp) :: zrespz2, ztortz2, zgrazd, zgrazz, zgrazpof 
    8279      REAL(wp) :: zgrazn, zgrazpoc, zgraznf, zgrazf 
    8380      REAL(wp) :: zgrazfffp, zgrazfffg, zgrazffep, zgrazffeg 
     81      REAL(wp) :: zbeta, zepsherf 
    8482      CHARACTER (len=25) :: charout 
    8583      REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d, zfezoo2 
     
    104102            DO ji = 1, jpi 
    105103               zcompam   = MAX( ( trb(ji,jj,jk,jpmes) - 1.e-9 ), 0.e0 ) 
    106 # if defined key_degrad 
    107                zstep     = xstep * facvol(ji,jj,jk) 
    108 # else 
    109104               zstep     = xstep 
    110 # endif 
    111105               zfact     = zstep * tgfunc2(ji,jj,jk) * zcompam 
    112106 
     
    148142               !  ---------------------------------- 
    149143               !  ---------------------------------- 
    150 # if ! defined key_kriest 
    151144               zgrazffeg = grazflux  * zstep * wsbio4(ji,jj,jk)      & 
    152145               &           * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jpgoc) * trb(ji,jj,jk,jpmes) 
    153146               zgrazfffg = zgrazffeg * trb(ji,jj,jk,jpbfe) / (trb(ji,jj,jk,jpgoc) + rtrn) 
    154 # endif 
    155147               zgrazffep = grazflux  * zstep *  wsbio3(ji,jj,jk)     & 
    156148               &           * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jppoc) * trb(ji,jj,jk,jpmes) 
    157149               zgrazfffp = zgrazffep * trb(ji,jj,jk,jpsfe) / (trb(ji,jj,jk,jppoc) + rtrn) 
    158150              ! 
    159 # if ! defined key_kriest 
    160151              zgraztot  = zgrazd + zgrazz + zgrazn + zgrazpoc + zgrazffep + zgrazffeg 
    161152              ! Compute the proportion of filter feeders 
     
    179170              &   + zgrazpoc + zgrazffep + zgrazffeg 
    180171              zgraztotf = zgrazf + zgraznf + zgrazz * ferat3 + zgrazpof + zgrazfffp + zgrazfffg 
    181 # else 
    182               zgraztot  = zgrazd + zgrazz + zgrazn + zgrazpoc + zgrazffep 
    183               ! Compute the proportion of filter feeders 
    184               zproport  = zgrazffep / ( zgraztot + rtrn ) 
    185               zgrazffep = zproport * zgrazffep 
    186               zgrazfffp = zproport * zgrazfffp 
    187               zgraztot  = zgrazd + zgrazz + zgrazn + zgrazpoc + zgrazffep 
    188               zgraztotn = zgrazd * quotad(ji,jj,jk) + zgrazz + zgrazn * quotan(ji,jj,jk) + zgrazpoc + zgrazffep 
    189               zgraztotf = zgrazf + zgraznf + zgrazz * ferat3 + zgrazpof + zgrazfffp 
    190 # endif 
    191172 
    192173              ! Total grazing ( grazing by microzoo is already computed in p4zmicro ) 
     
    198179               zgrasratn =  ( zgraztotn +rtrn )/ ( zgraztot + rtrn ) 
    199180               zepshert  = MIN( 1., zgrasratn, zgrasrat / ferat3) 
    200                zepsherv  = zepshert * MIN( epsher2, (1. - unass2) * zgrasrat / ferat3, (1. - unass2) * zgrasratn ) 
     181               zbeta = 1./ (epsher2 - 0.2) 
     182               zepsherf = 0.2 + 1./ (zbeta + 0.04 * 12. * zfood *1E6 ) 
     183               zepsherv  = zepshert * MIN( zepsherf, (1. - unass2) * zgrasrat / ferat3, (1. - unass2) * zgrasratn ) 
    201184               zgrarem2  = zgraztot * ( 1. - zepsherv - unass2 ) & 
    202185                &       + ( 1. - epsher2 - unass2 ) / ( 1. - epsher2 ) * ztortz2 
     
    232215               tra(ji,jj,jk,jpdfe) = tra(ji,jj,jk,jpdfe) - zgrazf 
    233216 
    234 #if defined key_kriest 
    235               znumpoc = trb(ji,jj,jk,jpnum) / ( trb(ji,jj,jk,jppoc) + rtrn ) 
    236               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortzgoc - zgrazpoc - zgrazffep + zgrapoc2 
    237               tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) - zgrazpoc * znumpoc + zgrapoc2 * xkr_dmeso      & 
    238                  &   + zmortzgoc * xkr_dmeso - zgrazffep * znumpoc * wsbio4(ji,jj,jk) / ( wsbio3(ji,jj,jk) + rtrn ) 
    239               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + ferat3 * zmortzgoc - zgrazfffp - zgrazpof    & 
    240                  &                 + zgraztotf * unass2 
    241               zfracal = trb(ji,jj,jk,jpcal) / (trb(ji,jj,jk,jppoc) + rtrn ) 
    242               zgrazcal = ( zgrazffep + zgrazpoc ) * (1. - part2) * zfracal 
    243 #else 
    244217              tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - zgrazpoc - zgrazffep + zfrac 
    245218              prodpoc(ji,jj,jk) = prodpoc(ji,jj,jk) + zfrac 
     
    253226              zfracal = trb(ji,jj,jk,jpcal) / (trb(ji,jj,jk,jpgoc) + rtrn ) 
    254227              zgrazcal = zgrazffeg * (1. - part2) * zfracal 
    255 #endif 
    256228 
    257229               ! calcite production 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmicro.F90

    r7617 r8003  
    7878      REAL(wp) :: zgrazp, zgrazm, zgrazsd 
    7979      REAL(wp) :: zgrazmf, zgrazsf, zgrazpf 
     80      REAL(wp) :: zbeta, zepsherf 
    8081      REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d, zfezoo 
    8182#if defined key_ligand 
     
    99100               zcompaz = MAX( ( trb(ji,jj,jk,jpzoo) - 1.e-9 ), 0.e0 ) 
    100101               zstep   = xstep 
    101 # if defined key_degrad 
    102                zstep = zstep * facvol(ji,jj,jk) 
    103 # endif 
    104102               zfact   = zstep * tgfunc2(ji,jj,jk) * zcompaz 
    105103 
     
    146144               zgrasratn = ( zgraztotn + rtrn ) / ( zgraztot + rtrn ) 
    147145               zepshert  =  MIN( 1., zgrasratn, zgrasrat / ferat3) 
    148                zepsherv  = zepshert * MIN( epsher, (1. - unass) * zgrasrat / ferat3, (1. - unass) * zgrasratn ) 
     146               zbeta = 1./ (epsher - 0.2) 
     147               zepsherf = 0.2 + 1./ (zbeta + 0.04 * 12. * zfood * 1E6 ) 
     148               zepsherv  = zepshert * MIN( zepsherf, (1. - unass) * zgrasrat / ferat3, (1. - unass) * zgrasratn ) 
    149149               zgrafer   = zgraztot * MAX( 0. , ( 1. - unass ) * zgrasrat - ferat3 * zepsherv )  
    150150               zgrarem   = zgraztot * ( 1. - zepsherv - unass ) 
     
    169169               tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + zgrarsig 
    170170               tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + rno3 * zgrarsig 
    171 #if defined key_kriest 
    172                tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) + zgrapoc * xkr_dmicro 
    173 #endif 
     171 
    174172               !   Update the arrays TRA which contain the biological sources and sinks 
    175173               !   -------------------------------------------------------------------- 
     
    197195               tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) - 2. * zprcaca 
    198196               tra(ji,jj,jk,jpcal) = tra(ji,jj,jk,jpcal) + zprcaca 
    199 #if defined key_kriest 
    200                tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) + zmortz * xkr_dmicro & 
    201                                                          - zgrazm * trb(ji,jj,jk,jpnum) / ( trb(ji,jj,jk,jppoc) + rtrn ) 
    202 #endif 
    203197            END DO 
    204198         END DO 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmort.F90

    r7180 r8003  
    8787               zcompaph = MAX( ( trb(ji,jj,jk,jpphy) - 1e-8 ), 0.e0 ) 
    8888               zstep    = xstep 
    89 # if defined key_degrad 
    90                zstep    = zstep * facvol(ji,jj,jk) 
    91 # endif 
    9289               !     When highly limited by macronutrients, very small cells  
    9390               !     dominate the community. As a consequence, aggregation 
     
    121118               tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) - 2. * zprcaca 
    122119               tra(ji,jj,jk,jpcal) = tra(ji,jj,jk,jpcal) + zprcaca 
    123 #if defined key_kriest 
    124                tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortp 
    125                tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) + ztortp * xkr_dnano + zrespp * xkr_ddiat 
    126                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zmortp * zfactfe 
    127 #else 
    128120               tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zfracal * zmortp 
    129121               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + ( 1. - zfracal ) * zmortp 
     
    132124               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + ( 1. - zfracal ) * zmortp * zfactfe 
    133125               tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zfracal * zmortp * zfactfe 
    134 #endif 
    135126            END DO 
    136127         END DO 
     
    181172               !     ------------------------------------------------------------ 
    182173               zstep   = xstep 
    183 # if defined key_degrad 
    184                zstep = zstep * facvol(ji,jj,jk) 
    185 # endif 
    186174               !  Phytoplankton respiration  
    187175               !     ------------------------ 
     
    206194               tra(ji,jj,jk,jpdsi) = tra(ji,jj,jk,jpdsi) - zmortp2 * zfactsi 
    207195               tra(ji,jj,jk,jpgsi) = tra(ji,jj,jk,jpgsi) + zmortp2 * zfactsi 
    208 #if defined key_kriest 
    209                tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortp2   
    210                tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) + ztortp2 * xkr_ddiat + zrespp2 * xkr_daggr 
    211                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zmortp2 * zfactfe 
    212 #else 
    213196               tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zrespp2 + 0.5 * ztortp2 
    214197               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + 0.5 * ztortp2 
     
    217200               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + 0.5 * ztortp2 * zfactfe 
    218201               tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + ( zrespp2 + 0.5 * ztortp2 ) * zfactfe 
    219 #endif 
    220202            END DO 
    221203         END DO 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90

    r6966 r8003  
    251251           IF( iom_use( "PAR"   ) ) CALL iom_put( "PAR"  , emoy(:,:,:) * tmask(:,:,:) )  ! Photosynthetically Available Radiation 
    252252        ENDIF 
    253       ELSE 
    254          IF( ln_diatrc ) THEN        ! save output diagnostics 
    255             trc2d(:,:,  jp_pcs0_2d + 10) = heup(:,:  ) * tmask(:,:,1) 
    256             trc3d(:,:,:,jp_pcs0_3d + 3)  = etot(:,:,:) * tmask(:,:,:) 
    257          ENDIF 
    258253      ENDIF 
    259254      ! 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zpoc.F90

    r7627 r8003  
    6565      REAL(wp) ::   zremip, zremig, zdep, zorem, zorem2, zofer 
    6666      REAL(wp) ::   zsizek, zsizek1, alphat, remint, solgoc, zpoc 
    67 #if ! defined key_kriest 
    6867      REAL(wp) ::   zofer2, zofer3 
    69 #endif 
    7068      REAL(wp) ::   zstep, zrfact2 
    7169      CHARACTER (len=25) :: charout 
     
    108106      END DO 
    109107 
    110 #if ! defined key_kriest 
    111108! ----------------------------------------------------------------------- 
    112109! Lability parameterization. This is the big particles part (GOC) 
     
    200197            DO ji = 1, jpi 
    201198               zstep   = xstep 
    202 # if defined key_degrad 
    203                zstep = zstep * facvol(ji,jj,jk) 
    204 # endif 
    205199               ! POC disaggregation by turbulence and bacterial activity.  
    206200               ! -------------------------------------------------------- 
     
    371365         END DO 
    372366      END DO 
    373 #endif 
    374367 
    375368 
     
    379372               IF (tmask(ji,jj,jk) == 1.) THEN 
    380373                 zstep   = xstep 
    381 # if defined key_degrad 
    382                  zstep = zstep * facvol(ji,jj,jk) 
    383 # endif 
    384374                 ! POC disaggregation by turbulence and bacterial activity.  
    385375                 ! -------------------------------------------------------- 
     
    387377                 zorem           = zremip * trb(ji,jj,jk,jppoc) 
    388378                 zofer           = zremip * trb(ji,jj,jk,jpsfe) 
    389 #if defined key_kriest 
    390                  zorem2          = zremip * trb(ji,jj,jk,jpnum) 
    391 #endif 
    392379 
    393380                 ! Update the appropriate tracers trends 
     
    399386                 zfolimi(ji,jj,jk)   = zfolimi(ji,jj,jk) + zofer 
    400387                 tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - zorem 
    401 #if defined key_kriest 
    402                  tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) - zorem2 
    403 #endif 
    404388                 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) - zofer 
    405389 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90

    r7617 r8003  
    488488          CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
    489489       ENDIF 
    490      ELSE 
    491         IF( ln_diatrc ) THEN 
    492            zfact = 1.e+3 * rfact2r 
    493            trc3d(:,:,:,jp_pcs0_3d + 4)  = zprorcan(:,:,:) * zfact * tmask(:,:,:) 
    494            trc3d(:,:,:,jp_pcs0_3d + 5)  = zprorcad(:,:,:) * zfact * tmask(:,:,:) 
    495            trc3d(:,:,:,jp_pcs0_3d + 6)  = zpronewn(:,:,:) * zfact * tmask(:,:,:) 
    496            trc3d(:,:,:,jp_pcs0_3d + 7)  = zpronewd(:,:,:) * zfact * tmask(:,:,:) 
    497            trc3d(:,:,:,jp_pcs0_3d + 8)  = zprorcad(:,:,:) * zfact * tmask(:,:,:) * zysopt(:,:,:) 
    498            trc3d(:,:,:,jp_pcs0_3d + 9)  = zprofed (:,:,:) * zfact * tmask(:,:,:) 
    499 #  if ! defined key_kriest 
    500            trc3d(:,:,:,jp_pcs0_3d + 10) = zprofen (:,:,:) * zfact * tmask(:,:,:) 
    501 #  endif 
    502         ENDIF 
    503      ENDIF 
     490    ENDIF 
    504491 
    505492     IF(ln_ctl)   THEN  ! print mean trends (used for debugging) 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90

    r7627 r8003  
    8080      REAL(wp), POINTER, DIMENSION(:,:  ) :: ztempbac 
    8181      REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepbac, zdepprod, zdepeff, zfacsi, zfacsib 
    82       REAL(wp), POINTER, DIMENSION(:,:,:) :: znitr, zolimi,  zfecbact 
     82      REAL(wp), POINTER, DIMENSION(:,:,:) :: znitr, zolimi,  zfebact 
    8383      !!--------------------------------------------------------------------- 
    8484      ! 
     
    9595      ! Initialisation of temprary arrys 
    9696      zdepprod(:,:,:) = 1._wp 
    97       zdepeff (:,:,:) = 0.3_wp 
     97      zdepeff (:,:,:) = 0.4_wp 
    9898      ztempbac(:,:)   = 0._wp 
    9999      zfebact (:,:,:) = 0._wp 
     
    117117                  zdepbac (ji,jj,jk) = zdepmin**0.683 * ztempbac(ji,jj) 
    118118                  zdepprod(ji,jj,jk) = zdepmin**0.273 
    119                   zdepeff (ji,jj,jk) = 0.3 * zdepmin**0.3 
     119!                  zdepeff (ji,jj,jk) = 0.3 * zdepmin**0.3 
    120120               ENDIF 
    121121            END DO 
     
    139139            DO ji = 1, jpi 
    140140               zstep   = xstep 
    141 # if defined key_degrad 
    142                zstep = zstep * facvol(ji,jj,jk) 
    143 # endif 
    144141               ! DOC ammonification. Depends on depth, phytoplankton biomass 
    145142               ! and a limitation term which is supposed to be a parameterization 
     
    177174            DO ji = 1, jpi 
    178175               zstep   = xstep 
    179 # if defined key_degrad 
    180                zstep = zstep * facvol(ji,jj,jk) 
    181 # endif 
    182176               ! NH4 nitrification to NO3. Ceased for oxygen concentrations 
    183177               ! below 2 umol/L. Inhibited at strong light  
     
    214208                  &              * trb(ji,jj,jk,jpfer) / ( xkferb + trb(ji,jj,jk,jpfer) )    & 
    215209                  &              * zdepprod(ji,jj,jk) * zdepeff(ji,jj,jk) * zdepbac(ji,jj,jk) 
    216 #if defined key_kriest 
    217                tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zbactfer*0.15 
    218                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zbactfer*0.15 
    219                zfebact(ji,jj,jk)   = zbactfer * 0.15 
    220 #else 
    221210               tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zbactfer*0.39 
    222211               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zbactfer*0.3 
    223212               tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zbactfer*0.09 
    224213               zfebact(ji,jj,jk)   = zbactfer * 0.39 
    225 #endif 
    226214            END DO 
    227215         END DO 
     
    242230            DO ji = 1, jpi 
    243231               zstep   = xstep 
    244 # if defined key_degrad 
    245                zstep = zstep * facvol(ji,jj,jk) 
    246 # endif 
    247232               zdep     = MAX( hmld(ji,jj), heup_01(ji,jj) ) 
    248233               zsatur   = MAX( rtrn, ( sio3eq(ji,jj,jk) - trb(ji,jj,jk,jpsil) ) / ( sio3eq(ji,jj,jk) + rtrn ) ) 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90

    r7617 r8003  
    476476         END DO 
    477477         IF( cp_cfg == 'orca' .AND. jp_cfg == 2 ) THEN 
    478             ii0 = 176   ;   ii1 =  176        ! Southern Island : Kerguelen 
    479             ij0 =  37   ;   ij1 =   37  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
     478            ii0 = 177   ;   ii1 =  177        ! Southern Island : Kerguelen 
     479            ij0 =  38   ;   ij1 =   38  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    480480            ! 
    481481            ii0 = 119   ;   ii1 =  119        ! South Georgia 
    482             ij0 =  29   ;   ij1 =   29  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    483             ! 
    484             ii0 = 111   ;   ii1 =  111        ! Falklands 
    485             ij0 =  35   ;   ij1 =   35  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    486             ! 
    487             ii0 = 168   ;   ii1 =  168        ! Crozet 
     482            ij0 =  28   ;   ij1 =   28  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
     483            ! 
     484            ii0 = 167   ;   ii1 =  167        ! Crozet 
    488485            ij0 =  40   ;   ij1 =   40  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    489486            ! 
     
    491488            ij0 =  28   ;   ij1 =   28  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    492489            ! 
    493             ii0 = 140   ;   ii1 =  140        ! Bouvet Island 
     490            ii0 = 144   ;   ii1 =  144        ! Bouvet Island 
    494491            ij0 =  33   ;   ij1 =   33  ;   zcmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) =  0.3_wp   
    495492            ! 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90

    r7617 r8003  
    243243           IF( tmask(ji,jj,1) == 1 ) THEN 
    244244              ikt = mbkt(ji,jj) 
    245 # if defined key_kriest 
    246               zflx =    trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj)    * 1E3 * 1E6 / 1E4 
    247 # else 
    248245              zflx = (  trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj)   & 
    249246                &     + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) )  * 1E3 * 1E6 / 1E4 
    250 #endif 
    251247              zflx  = LOG10( MAX( 1E-3, zflx ) ) 
    252248              zo2   = LOG10( MAX( 10. , trb(ji,jj,ikt,jpoxy) * 1E6 ) ) 
     
    272268            IF( tmask(ji,jj,1) == 1 ) THEN 
    273269               ikt = mbkt(ji,jj)  
    274 # if defined key_kriest 
    275                zwork1(ji,jj) = trb(ji,jj,ikt,jpgsi) * zwscal (ji,jj) 
    276                zwork2(ji,jj) = trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) 
    277 # else 
    278270               zwork1(ji,jj) = trb(ji,jj,ikt,jpgsi) * zwsbio4(ji,jj) 
    279271               zwork2(ji,jj) = trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj)  
    280 # endif 
    281272               ! For calcite, burial efficiency is made a function of saturation 
    282273               zfactcal      = MIN( excess(ji,jj,ikt), 0.2 ) 
     
    304295            zws4 = zwsbio4(ji,jj) * zdep 
    305296            zwsc = zwscal (ji,jj) * zdep 
    306 # if defined key_kriest 
    307             zsiloss = trb(ji,jj,ikt,jpgsi) * zws4 
    308 # else 
    309297            zsiloss = trb(ji,jj,ikt,jpgsi) * zwsc 
    310 # endif 
    311298            zcaloss = trb(ji,jj,ikt,jpcal) * zwsc 
    312299            ! 
     
    336323#endif 
    337324            zrivno3 = 1. - zbureff(ji,jj) 
    338 # if ! defined key_kriest 
    339325            tra(ji,jj,ikt,jpgoc) = tra(ji,jj,ikt,jpgoc) - trb(ji,jj,ikt,jpgoc) * zws4  
    340326            tra(ji,jj,ikt,jppoc) = tra(ji,jj,ikt,jppoc) - trb(ji,jj,ikt,jppoc) * zws3 
     
    345331            tra(ji,jj,ikt,jpfep) = tra(ji,jj,ikt,jpfep) - trn(ji,jj,ikt,jpfep) * zwssfep 
    346332#   endif 
    347 # else 
    348             tra(ji,jj,ikt,jpnum) = tra(ji,jj,ikt,jpnum) - trb(ji,jj,ikt,jpnum) * zws4  
    349             tra(ji,jj,ikt,jppoc) = tra(ji,jj,ikt,jppoc) - trb(ji,jj,ikt,jppoc) * zws3 
    350             tra(ji,jj,ikt,jpsfe) = tra(ji,jj,ikt,jpsfe) - trb(ji,jj,ikt,jpsfe) * zws3 
    351             zwstpoc = trb(ji,jj,ikt,jppoc) * zws3  
    352 #   if defined key_ligand 
    353             tra(ji,jj,ikt,jpfep) = tra(ji,jj,ikt,jpfep) - trn(ji,jj,ikt,jpfep) * zwssfep 
    354 #   endif 
    355 # endif 
    356333 
    357334#if ! defined key_sed 
     
    384361               zlim = ( 1.- xnanono3(ji,jj,jk) - xnanonh4(ji,jj,jk) ) 
    385362               IF( zlim <= 0.2 )   zlim = 0.01 
    386 #if defined key_degrad 
    387                zfact = zlim * rfact2 * facvol(ji,jj,jk) 
    388 #else 
    389363               zfact = zlim * rfact2 
    390 #endif 
    391364               ztrfer = biron(ji,jj,jk)       / ( concfediaz + biron(ji,jj,jk)       ) 
    392365               ztrpo4 = trb  (ji,jj,jk,jppo4) / ( concnnh4   + trb  (ji,jj,jk,jppo4) )  
     
    431404            IF( iom_use("Sdenit" ) ) CALL iom_put( "Sdenit", sdenit (:,:) * 1.e+3 * rno3 ) 
    432405         ENDIF 
    433       ELSE 
    434          IF( ln_diatrc )  & 
    435             &  trc2d(:,:,jp_pcs0_2d + 12) = nitrpot(:,:,1) * nitrfix * rno3 * 1.e+3 * rfact2r * fse3t(:,:,1) * tmask(:,:,1) 
    436406      ENDIF 
    437407      ! 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90

    r7180 r8003  
    2121   USE iom             !  I/O manager 
    2222   USE lib_mpp 
     23   USE p4zsbc 
    2324 
    2425   IMPLICIT NONE 
     
    3738   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sinkcal, sinksil   !: CaCO3 and BSi sinking fluxes 
    3839   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sinkfer            !: Small BFe sinking fluxes 
    39 #if ! defined key_kriest 
    4040   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sinkfer2           !: Big iron sinking fluxes 
    41 #endif 
    4241#if defined key_ligand 
    4342   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sinkfep      !: Fep sinking fluxes 
     
    4645 
    4746   INTEGER  :: ik100 
    48  
    49 #if  defined key_kriest 
    50    REAL(wp) ::  xkr_sfact    !: Sinking factor 
    51    REAL(wp) ::  xkr_stick    !: Stickiness 
    52    REAL(wp) ::  xkr_nnano    !: Nbr of cell in nano size class 
    53    REAL(wp) ::  xkr_ndiat    !: Nbr of cell in diatoms size class 
    54    REAL(wp) ::  xkr_nmicro   !: Nbr of cell in microzoo size class 
    55    REAL(wp) ::  xkr_nmeso    !: Nbr of cell in mesozoo  size class 
    56    REAL(wp) ::  xkr_naggr    !: Nbr of cell in aggregates  size class 
    57  
    58    REAL(wp) ::  xkr_frac  
    59  
    60    REAL(wp), PUBLIC ::  xkr_dnano       !: Size of particles in nano pool 
    61    REAL(wp), PUBLIC ::  xkr_ddiat       !: Size of particles in diatoms pool 
    62    REAL(wp), PUBLIC ::  xkr_dmicro      !: Size of particles in microzoo pool 
    63    REAL(wp), PUBLIC ::  xkr_dmeso       !: Size of particles in mesozoo pool 
    64    REAL(wp), PUBLIC ::  xkr_daggr       !: Size of particles in aggregates pool 
    65    REAL(wp), PUBLIC ::  xkr_wsbio_min   !: min vertical particle speed 
    66    REAL(wp), PUBLIC ::  xkr_wsbio_max   !: max vertical particle speed 
    67  
    68    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   xnumm   !:  maximum number of particles in aggregates 
    69 #endif 
    7047 
    7148   !!* Substitution 
     
    7855CONTAINS 
    7956 
    80 #if ! defined key_kriest 
    8157   !!---------------------------------------------------------------------- 
    8258   !!   'standard sinking parameterisation'                  ??? 
     
    255231          CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
    256232        ENDIF 
    257       ELSE 
    258          IF( ln_diatrc ) THEN 
    259             zfact = 1.e3 * rfact2r 
    260             trc2d(:,:,jp_pcs0_2d + 4) = sinking (:,:,ik100) * zfact * tmask(:,:,1) 
    261             trc2d(:,:,jp_pcs0_2d + 5) = sinking2(:,:,ik100) * zfact * tmask(:,:,1) 
    262             trc2d(:,:,jp_pcs0_2d + 6) = sinkfer (:,:,ik100) * zfact * tmask(:,:,1) 
    263             trc2d(:,:,jp_pcs0_2d + 7) = sinkfer2(:,:,ik100) * zfact * tmask(:,:,1) 
    264             trc2d(:,:,jp_pcs0_2d + 8) = sinksil (:,:,ik100) * zfact * tmask(:,:,1) 
    265             trc2d(:,:,jp_pcs0_2d + 9) = sinkcal (:,:,ik100) * zfact * tmask(:,:,1) 
    266          ENDIF 
    267233      ENDIF 
    268234      ! 
     
    294260      ! 
    295261   END SUBROUTINE p4z_sink_init 
    296  
    297 #else 
    298    !!---------------------------------------------------------------------- 
    299    !!   'Kriest sinking parameterisation'        key_kriest          ??? 
    300    !!---------------------------------------------------------------------- 
    301  
    302    SUBROUTINE p4z_sink ( kt, knt ) 
    303       !!--------------------------------------------------------------------- 
    304       !!                ***  ROUTINE p4z_sink  *** 
    305       !! 
    306       !! ** Purpose :   Compute vertical flux of particulate matter due to 
    307       !!              gravitational sinking - Kriest parameterization 
    308       !! 
    309       !! ** Method  : - ??? 
    310       !!--------------------------------------------------------------------- 
    311       ! 
    312       INTEGER, INTENT(in) :: kt, knt 
    313       ! 
    314       INTEGER  :: ji, jj, jk, jit, niter1, niter2 
    315       REAL(wp) :: znum , zeps, zfm, zgm, zsm 
    316       REAL(wp) :: zdiv , zdiv1, zdiv2, zdiv3, zdiv4, zdiv5 
    317       REAL(wp) :: zval1, zval2, zval3 
    318       REAL(wp) :: zfact 
    319       INTEGER  :: ik1 
    320       CHARACTER (len=25) :: charout 
    321       REAL(wp), POINTER, DIMENSION(:,:,:) :: znum3d  
    322       REAL(wp), POINTER, DIMENSION(:,:,:) :: zw3d 
    323       REAL(wp), POINTER, DIMENSION(:,:  ) :: zw2d 
    324       !!--------------------------------------------------------------------- 
    325       ! 
    326       IF( nn_timing == 1 )  CALL timing_start('p4z_sink') 
    327       ! 
    328       CALL wrk_alloc( jpi, jpj, jpk, znum3d ) 
    329       ! 
    330       !     Initialisation of variables used to compute Sinking Speed 
    331       !     --------------------------------------------------------- 
    332  
    333       znum3d(:,:,:) = 0.e0 
    334       zval1 = 1. + xkr_zeta 
    335       zval2 = 1. + xkr_zeta + xkr_eta 
    336       zval3 = 1. + xkr_eta 
    337  
    338       !     Computation of the vertical sinking speed : Kriest et Evans, 2000 
    339       !     ----------------------------------------------------------------- 
    340  
    341       DO jk = 1, jpkm1 
    342          DO jj = 1, jpj 
    343             DO ji = 1, jpi 
    344                IF( tmask(ji,jj,jk) /= 0.e0 ) THEN 
    345                   znum = trb(ji,jj,jk,jppoc) / ( trb(ji,jj,jk,jpnum) + rtrn ) / xkr_massp 
    346                   ! -------------- To avoid sinking speed over 50 m/day ------- 
    347                   znum  = MIN( xnumm(jk), znum ) 
    348                   znum  = MAX( 1.1      , znum ) 
    349                   znum3d(ji,jj,jk) = znum 
    350                   !------------------------------------------------------------ 
    351                   zeps  = ( zval1 * znum - 1. )/ ( znum - 1. ) 
    352                   zfm   = xkr_frac**( 1. - zeps ) 
    353                   zgm   = xkr_frac**( zval1 - zeps ) 
    354                   zdiv  = MAX( 1.e-4, ABS( zeps - zval2 ) ) * SIGN( 1., ( zeps - zval2 ) ) 
    355                   zdiv1 = zeps - zval3 
    356                   wsbio3(ji,jj,jk) = xkr_wsbio_min * ( zeps - zval1 ) / zdiv    & 
    357                      &             - xkr_wsbio_max *   zgm * xkr_eta  / zdiv 
    358                   wsbio4(ji,jj,jk) = xkr_wsbio_min *   ( zeps-1. )    / zdiv1   & 
    359                      &             - xkr_wsbio_max *   zfm * xkr_eta  / zdiv1 
    360                   IF( znum == 1.1)   wsbio3(ji,jj,jk) = wsbio4(ji,jj,jk) 
    361                ENDIF 
    362             END DO 
    363          END DO 
    364       END DO 
    365  
    366       wscal(:,:,:) = MAX( wsbio3(:,:,:), 30._wp ) 
    367 #if defined key_ligand 
    368       wsfep (:,:,:) = wfep 
    369 #endif 
    370  
    371       !   INITIALIZE TO ZERO ALL THE SINKING ARRAYS 
    372       !   ----------------------------------------- 
    373  
    374       sinking (:,:,:) = 0.e0 
    375       sinking2(:,:,:) = 0.e0 
    376       sinkcal (:,:,:) = 0.e0 
    377       sinkfer (:,:,:) = 0.e0 
    378       sinksil (:,:,:) = 0.e0 
    379 #if defined key_ligand 
    380       sinkfep(:,:,:) = 0.e0 
    381 #endif 
    382  
    383      !   Compute the sedimentation term using p4zsink2 for all the sinking particles 
    384      !   ----------------------------------------------------- 
    385  
    386       niter1 = niter1max 
    387       niter2 = niter2max 
    388  
    389       DO jit = 1, niter1 
    390         CALL p4z_sink2( wsbio3, sinking , jppoc, niter1 ) 
    391         CALL p4z_sink2( wsbio3, sinkfer , jpsfe, niter1 ) 
    392         CALL p4z_sink2( wscal , sinksil , jpgsi, niter1 ) 
    393         CALL p4z_sink2( wscal , sinkcal , jpcal, niter1 ) 
    394 #if defined key_ligand 
    395         CALL p4z_sink2( wsfep,  sinkfep , jpfep, iiter1 ) 
    396 #endif 
    397       END DO 
    398  
    399       DO jit = 1, niter2 
    400         CALL p4z_sink2( wsbio4, sinking2, jpnum, niter2 ) 
    401       END DO 
    402  
    403      IF( iom_use( "tcexp" ) .OR. ( ln_check_mass .AND. kt == nitend .AND. knt == nrdttrc )  )  & 
    404         &   t_oce_co2_exp = glob_sum( sinking(:,:,ik100)  * e1e2t(:,:) * tmask(:,:,1) ) 
    405      ! 
    406      IF( lk_iomput ) THEN 
    407         IF( knt == nrdttrc ) THEN 
    408           CALL wrk_alloc( jpi, jpj,      zw2d ) 
    409           CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 
    410           zfact = 1.e+3 * rfact2r  !  conversion from mol/l/kt to  mol/m3/s 
    411           ! 
    412           IF( iom_use( "EPC100" ) )  THEN 
    413               zw2d(:,:) = sinking(:,:,ik100) * zfact * tmask(:,:,1) ! Export of carbon at 100m 
    414               CALL iom_put( "EPC100"  , zw2d ) 
    415           ENDIF 
    416           IF( iom_use( "EPN100" ) )  THEN 
    417               zw2d(:,:) = sinking2(:,:,ik100) * zfact * tmask(:,:,1) ! Export of number of aggregates ? 
    418               CALL iom_put( "EPN100"  , zw2d ) 
    419           ENDIF 
    420           IF( iom_use( "EPCAL100" ) )  THEN 
    421               zw2d(:,:) = sinkcal(:,:,ik100) * zfact * tmask(:,:,1) ! Export of calcite at 100m 
    422               CALL iom_put( "EPCAL100"  , zw2d ) 
    423           ENDIF 
    424           IF( iom_use( "EPSI100" ) )  THEN 
    425               zw2d(:,:) = sinksil(:,:,ik100) * zfact * tmask(:,:,1) ! Export of bigenic silica at 100m 
    426               CALL iom_put( "EPSI100"  , zw2d ) 
    427           ENDIF 
    428           IF( iom_use( "EXPC" ) )  THEN 
    429               zw3d(:,:,:) = sinking(:,:,:) * zfact * tmask(:,:,:) ! Export of carbon in the water column 
    430               CALL iom_put( "EXPC"  , zw3d ) 
    431           ENDIF 
    432           IF( iom_use( "EXPN" ) )  THEN 
    433               zw3d(:,:,:) = sinking(:,:,:) * zfact * tmask(:,:,:) ! Export of carbon in the water column 
    434               CALL iom_put( "EXPN"  , zw3d ) 
    435           ENDIF 
    436           IF( iom_use( "EXPCAL" ) )  THEN 
    437               zw3d(:,:,:) = sinkcal(:,:,:) * zfact * tmask(:,:,:) ! Export of calcite  
    438               CALL iom_put( "EXPCAL"  , zw3d ) 
    439           ENDIF 
    440           IF( iom_use( "EXPSI" ) )  THEN 
    441               zw3d(:,:,:) = sinksil(:,:,:) * zfact * tmask(:,:,:) ! Export of bigenic silica 
    442               CALL iom_put( "EXPSI"  , zw3d ) 
    443           ENDIF 
    444           IF( iom_use( "XNUM" ) )  THEN 
    445               zw3d(:,:,:) =  znum3d(:,:,:) * tmask(:,:,:) !  Number of particles on aggregats 
    446               CALL iom_put( "XNUM"  , zw3d ) 
    447           ENDIF 
    448           IF( iom_use( "WSC" ) )  THEN 
    449               zw3d(:,:,:) = wsbio3(:,:,:) * tmask(:,:,:) ! Sinking speed of carbon particles 
    450               CALL iom_put( "WSC"  , zw3d ) 
    451           ENDIF 
    452           IF( iom_use( "WSN" ) )  THEN 
    453               zw3d(:,:,:) = wsbio4(:,:,:) * tmask(:,:,:) ! Sinking speed of particles number 
    454               CALL iom_put( "WSN"  , zw3d ) 
    455           ENDIF 
    456           ! 
    457           CALL wrk_dealloc( jpi, jpj,      zw2d ) 
    458           CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
    459       ELSE 
    460          IF( ln_diatrc ) THEN 
    461             zfact = 1.e3 * rfact2r 
    462             trc2d(:,:  ,jp_pcs0_2d + 4)  = sinking (:,:,ik100)  * zfact * tmask(:,:,1) 
    463             trc2d(:,:  ,jp_pcs0_2d + 5)  = sinking2(:,:,ik100)  * zfact * tmask(:,:,1) 
    464             trc2d(:,:  ,jp_pcs0_2d + 6)  = sinkfer (:,:,ik100)  * zfact * tmask(:,:,1) 
    465             trc2d(:,:  ,jp_pcs0_2d + 7)  = sinksil (:,:,ik100)  * zfact * tmask(:,:,1) 
    466             trc2d(:,:  ,jp_pcs0_2d + 8)  = sinkcal (:,:,ik100)  * zfact * tmask(:,:,1) 
    467             trc3d(:,:,:,jp_pcs0_3d + 11) = sinking (:,:,:)      * zfact * tmask(:,:,:) 
    468             trc3d(:,:,:,jp_pcs0_3d + 12) = sinking2(:,:,:)      * zfact * tmask(:,:,:) 
    469             trc3d(:,:,:,jp_pcs0_3d + 13) = sinksil (:,:,:)      * zfact * tmask(:,:,:) 
    470             trc3d(:,:,:,jp_pcs0_3d + 14) = sinkcal (:,:,:)      * zfact * tmask(:,:,:) 
    471             trc3d(:,:,:,jp_pcs0_3d + 15) = znum3d  (:,:,:)              * tmask(:,:,:) 
    472             trc3d(:,:,:,jp_pcs0_3d + 16) = wsbio3  (:,:,:)              * tmask(:,:,:) 
    473             trc3d(:,:,:,jp_pcs0_3d + 17) = wsbio4  (:,:,:)              * tmask(:,:,:) 
    474          ENDIF 
    475       ENDIF 
    476  
    477       ! 
    478       IF(ln_ctl)   THEN  ! print mean trends (used for debugging) 
    479          WRITE(charout, FMT="('sink')") 
    480          CALL prt_ctl_trc_info(charout) 
    481          CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    482       ENDIF 
    483       ! 
    484       CALL wrk_dealloc( jpi, jpj, jpk, znum3d ) 
    485       ! 
    486       IF( nn_timing == 1 )  CALL timing_stop('p4z_sink') 
    487       ! 
    488    END SUBROUTINE p4z_sink 
    489  
    490  
    491    SUBROUTINE p4z_sink_init 
    492       !!---------------------------------------------------------------------- 
    493       !!                  ***  ROUTINE p4z_sink_init  *** 
    494       !! 
    495       !! ** Purpose :   Initialization of sinking parameters 
    496       !!                Kriest parameterization only 
    497       !! 
    498       !! ** Method  :   Read the nampiskrs namelist and check the parameters 
    499       !!      called at the first timestep  
    500       !! 
    501       !! ** input   :   Namelist nampiskrs 
    502       !!---------------------------------------------------------------------- 
    503       INTEGER  ::   jk, jn, kiter 
    504       INTEGER  ::   ios                 ! Local integer output status for namelist read 
    505       REAL(wp) ::   znum, zdiv 
    506       REAL(wp) ::   zws, zwr, zwl,wmax, znummax 
    507       REAL(wp) ::   zmin, zmax, zl, zr, xacc 
    508       ! 
    509       NAMELIST/nampiskrs/ xkr_sfact, xkr_stick ,  & 
    510          &                xkr_nnano, xkr_ndiat, xkr_nmicro, xkr_nmeso, xkr_naggr 
    511       !!---------------------------------------------------------------------- 
    512       ! 
    513       IF( nn_timing == 1 )  CALL timing_start('p4z_sink_init') 
    514       ! 
    515  
    516       REWIND( numnatp_ref )              ! Namelist nampiskrs in reference namelist : Pisces sinking Kriest 
    517       READ  ( numnatp_ref, nampiskrs, IOSTAT = ios, ERR = 901) 
    518 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiskrs in reference namelist', lwp ) 
    519  
    520       REWIND( numnatp_cfg )              ! Namelist nampiskrs in configuration namelist : Pisces sinking Kriest 
    521       READ  ( numnatp_cfg, nampiskrs, IOSTAT = ios, ERR = 902 ) 
    522 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiskrs in configuration namelist', lwp ) 
    523       IF(lwm) WRITE ( numonp, nampiskrs ) 
    524  
    525       IF(lwp) THEN 
    526          WRITE(numout,*) 
    527          WRITE(numout,*) ' Namelist : nampiskrs' 
    528          WRITE(numout,*) '    Sinking factor                           xkr_sfact    = ', xkr_sfact 
    529          WRITE(numout,*) '    Stickiness                               xkr_stick    = ', xkr_stick 
    530          WRITE(numout,*) '    Nbr of cell in nano size class           xkr_nnano    = ', xkr_nnano 
    531          WRITE(numout,*) '    Nbr of cell in diatoms size class        xkr_ndiat    = ', xkr_ndiat 
    532          WRITE(numout,*) '    Nbr of cell in microzoo size class       xkr_nmicro   = ', xkr_nmicro 
    533          WRITE(numout,*) '    Nbr of cell in mesozoo size class        xkr_nmeso    = ', xkr_nmeso 
    534          WRITE(numout,*) '    Nbr of cell in aggregates size class     xkr_naggr    = ', xkr_naggr 
    535       ENDIF 
    536  
    537  
    538       ! max and min vertical particle speed 
    539       xkr_wsbio_min = xkr_sfact * xkr_mass_min**xkr_eta 
    540       xkr_wsbio_max = xkr_sfact * xkr_mass_max**xkr_eta 
    541       IF (lwp) WRITE(numout,*) ' max and min vertical particle speed ', xkr_wsbio_min, xkr_wsbio_max 
    542  
    543       ! 
    544       !    effect of the sizes of the different living pools on particle numbers 
    545       !    nano = 2um-20um -> mean size=6.32 um -> ws=2.596 -> xnum=xnnano=2.337 
    546       !    diat and microzoo = 10um-200um -> 44.7 -> 8.732 -> xnum=xndiat=3.718 
    547       !    mesozoo = 200um-2mm -> 632.45 -> 45.14 -> xnum=xnmeso=7.147 
    548       !    aggregates = 200um-10mm -> 1414 -> 74.34 -> xnum=xnaggr=9.877 
    549       !    doc aggregates = 1um 
    550       ! ---------------------------------------------------------- 
    551  
    552       xkr_dnano = 1. / ( xkr_massp * xkr_nnano ) 
    553       xkr_ddiat = 1. / ( xkr_massp * xkr_ndiat ) 
    554       xkr_dmicro = 1. / ( xkr_massp * xkr_nmicro ) 
    555       xkr_dmeso = 1. / ( xkr_massp * xkr_nmeso ) 
    556       xkr_daggr = 1. / ( xkr_massp * xkr_naggr ) 
    557  
    558       !!--------------------------------------------------------------------- 
    559       !!    'key_kriest'                                                  ??? 
    560       !!--------------------------------------------------------------------- 
    561       !  COMPUTATION OF THE VERTICAL PROFILE OF MAXIMUM SINKING SPEED 
    562       !  Search of the maximum number of particles in aggregates for each k-level. 
    563       !  Bissection Method 
    564       !-------------------------------------------------------------------- 
    565       IF (lwp) THEN 
    566         WRITE(numout,*) 
    567         WRITE(numout,*)'    kriest : Compute maximum number of particles in aggregates' 
    568       ENDIF 
    569  
    570       xacc     =  0.001_wp 
    571       kiter    = 50 
    572       zmin     =  1.10_wp 
    573       zmax     = xkr_mass_max / xkr_mass_min 
    574       xkr_frac = zmax 
    575  
    576       DO jk = 1,jpk 
    577          zl = zmin 
    578          zr = zmax 
    579          wmax = 0.5 * fse3t(1,1,jk) * rday * float(niter1max) / rfact2 
    580          zdiv = xkr_zeta + xkr_eta - xkr_eta * zl 
    581          znum = zl - 1. 
    582          zwl =  xkr_wsbio_min * xkr_zeta / zdiv & 
    583             & - ( xkr_wsbio_max * xkr_eta * znum * & 
    584             &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 
    585             & - wmax 
    586  
    587          zdiv = xkr_zeta + xkr_eta - xkr_eta * zr 
    588          znum = zr - 1. 
    589          zwr =  xkr_wsbio_min * xkr_zeta / zdiv & 
    590             & - ( xkr_wsbio_max * xkr_eta * znum * & 
    591             &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 
    592             & - wmax 
    593 iflag:   DO jn = 1, kiter 
    594             IF    ( zwl == 0._wp ) THEN   ;   znummax = zl 
    595             ELSEIF( zwr == 0._wp ) THEN   ;   znummax = zr 
    596             ELSE 
    597                znummax = ( zr + zl ) / 2. 
    598                zdiv = xkr_zeta + xkr_eta - xkr_eta * znummax 
    599                znum = znummax - 1. 
    600                zws =  xkr_wsbio_min * xkr_zeta / zdiv & 
    601                   & - ( xkr_wsbio_max * xkr_eta * znum * & 
    602                   &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 
    603                   & - wmax 
    604                IF( zws * zwl < 0. ) THEN   ;   zr = znummax 
    605                ELSE                        ;   zl = znummax 
    606                ENDIF 
    607                zdiv = xkr_zeta + xkr_eta - xkr_eta * zl 
    608                znum = zl - 1. 
    609                zwl =  xkr_wsbio_min * xkr_zeta / zdiv & 
    610                   & - ( xkr_wsbio_max * xkr_eta * znum * & 
    611                   &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 
    612                   & - wmax 
    613  
    614                zdiv = xkr_zeta + xkr_eta - xkr_eta * zr 
    615                znum = zr - 1. 
    616                zwr =  xkr_wsbio_min * xkr_zeta / zdiv & 
    617                   & - ( xkr_wsbio_max * xkr_eta * znum * & 
    618                   &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 
    619                   & - wmax 
    620                ! 
    621                IF ( ABS ( zws )  <= xacc ) EXIT iflag 
    622                ! 
    623             ENDIF 
    624             ! 
    625          END DO iflag 
    626  
    627          xnumm(jk) = znummax 
    628          IF (lwp) WRITE(numout,*) '       jk = ', jk, ' wmax = ', wmax,' xnum max = ', xnumm(jk) 
    629          ! 
    630       END DO 
    631       ! 
    632       ik100 = 10        !  last level where depth less than 100 m 
    633       DO jk = jpkm1, 1, -1 
    634          IF( gdept_1d(jk) > 100. )  ik100 = jk - 1 
    635       END DO 
    636       IF (lwp) WRITE(numout,*) 
    637       IF (lwp) WRITE(numout,*) ' Level corresponding to 100m depth ',  ik100 + 1 
    638       IF (lwp) WRITE(numout,*) 
    639       ! 
    640       t_oce_co2_exp = 0._wp 
    641       ! 
    642       IF( nn_timing == 1 )  CALL timing_stop('p4z_sink_init') 
    643       ! 
    644   END SUBROUTINE p4z_sink_init 
    645  
    646 #endif 
    647262 
    648263   SUBROUTINE p4z_sink2( pwsink, psinkflx, jp_tra, kiter ) 
     
    769384         &      sinking(jpi,jpj,jpk) , sinking2(jpi,jpj,jpk)                      ,     &                 
    770385         &      sinkcal(jpi,jpj,jpk) , sinksil (jpi,jpj,jpk)                      ,     &                 
    771 #if defined key_kriest 
    772          &      xnumm(jpk)                                                        ,     &                 
    773 #else 
    774386         &      sinkfer2(jpi,jpj,jpk)                                             ,     &                 
    775 #endif 
    776387#if defined key_ligand 
    777388         &      wsfep(jpi,jpj,jpk)   , sinkfep(jpi,jpj,jpk)                         ,     & 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsms.F90

    r6966 r8003  
    7171      INTEGER ::   ji, jj, jk, jnt, jn, jl 
    7272      REAL(wp) ::  ztra 
    73 #if defined key_kriest 
    74       REAL(wp) ::  zcoef1, zcoef2 
    75 #endif 
    7673      CHARACTER (len=25) :: charout 
    7774      !!--------------------------------------------------------------------- 
     
    166163         ENDIF 
    167164      END DO 
    168  
    169 #if defined key_kriest 
    170       !  
    171       zcoef1 = 1.e0 / xkr_massp  
    172       zcoef2 = 1.e0 / xkr_massp / 1.1 
    173       DO jk = 1,jpkm1 
    174          trb(:,:,jk,jpnum) = MAX(  trb(:,:,jk,jpnum), trb(:,:,jk,jppoc) * zcoef1 / xnumm(jk)  ) 
    175          trb(:,:,jk,jpnum) = MIN(  trb(:,:,jk,jpnum), trb(:,:,jk,jppoc) * zcoef2              ) 
    176       END DO 
    177       ! 
    178 #endif 
    179165      ! 
    180166      ! 
     
    214200      !! ** input   :   file 'namelist.trc.s' containing the following 
    215201      !!             namelist: natext, natbio, natsms 
    216       !!                       natkriest ("key_kriest") 
    217202      !!---------------------------------------------------------------------- 
    218203#if defined key_ligand 
     
    221206#else 
    222207      NAMELIST/nampisbio/ nrdttrc, wsbio, xkmort, ferat3, wsbio2, wsbio2max, wsbio2scale, niter1max, niter2max 
    223 #endif 
    224 #if defined key_kriest 
    225       NAMELIST/nampiskrp/ xkr_eta, xkr_zeta, xkr_ncontent, xkr_mass_min, xkr_mass_max 
    226208#endif 
    227209      NAMELIST/nampisdmp/ ln_pisdmp, nn_pisdmp 
     
    258240      ENDIF 
    259241 
    260 #if defined key_kriest 
    261  
    262       !                               ! nampiskrp : kriest parameters 
    263       !                               ! ----------------------------- 
    264       REWIND( numnatp_ref )              ! Namelist nampiskrp in reference namelist : Pisces Kriest 
    265       READ  ( numnatp_ref, nampiskrp, IOSTAT = ios, ERR = 903) 
    266 903   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiskrp in reference namelist', lwp ) 
    267  
    268       REWIND( numnatp_cfg )              ! Namelist nampiskrp in configuration namelist : Pisces Kriest 
    269       READ  ( numnatp_cfg, nampiskrp, IOSTAT = ios, ERR = 904 ) 
    270 904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiskrp in configuration namelist', lwp ) 
    271       IF(lwm) WRITE ( numonp, nampiskrp ) 
    272  
    273       IF(lwp) THEN 
    274          WRITE(numout,*) 
    275          WRITE(numout,*) ' Namelist : nampiskrp' 
    276          WRITE(numout,*) '    Sinking  exponent                        xkr_eta      = ', xkr_eta 
    277          WRITE(numout,*) '    N content exponent                       xkr_zeta     = ', xkr_zeta 
    278          WRITE(numout,*) '    N content factor                         xkr_ncontent = ', xkr_ncontent 
    279          WRITE(numout,*) '    Minimum mass for Aggregates              xkr_mass_min = ', xkr_mass_min 
    280          WRITE(numout,*) '    Maximum mass for Aggregates              xkr_mass_max = ', xkr_mass_max 
    281          WRITE(numout,*) 
    282      ENDIF 
    283  
    284  
    285      ! Computation of some variables 
    286      xkr_massp = xkr_ncontent * 7.625 * xkr_mass_min**xkr_zeta 
    287  
    288 #endif 
    289  
    290242      REWIND( numnatp_ref )              ! Namelist nampisdmp in reference namelist : Pisces damping 
    291243      READ  ( numnatp_ref, nampisdmp, IOSTAT = ios, ERR = 905) 
     
    484436            &                    + trn(:,:,:,jpzoo) + trn(:,:,:,jpmes)  & 
    485437            &                    + trn(:,:,:,jppoc)                     & 
    486 #if ! defined key_kriest 
    487438            &                    + trn(:,:,:,jpgoc)                     & 
    488 #endif 
    489439            &                    + trn(:,:,:,jpdoc)                     ) * cvol(:,:,:)  ) 
    490440         ! 
     
    498448            &                    + trn(:,:,:,jpzoo) + trn(:,:,:,jpmes)  & 
    499449            &                    + trn(:,:,:,jppoc)                     & 
    500 #if ! defined key_kriest 
    501450            &                    + trn(:,:,:,jpgoc)                     & 
    502 #endif 
    503451            &                    + trn(:,:,:,jpdoc)                     ) * cvol(:,:,:)  ) 
    504452         po4budget = po4budget / areatot 
     
    526474         ferbudget = glob_sum( (   trn(:,:,:,jpfer) + trn(:,:,:,jpnfe)  & 
    527475            &                    + trn(:,:,:,jpdfe)                     & 
    528 #if ! defined key_kriest 
    529476            &                    + trn(:,:,:,jpbfe)                     & 
    530 #endif 
    531477#if defined key_ligand 
    532478            &                    + trn(:,:,:,jpfep)                     & 
Note: See TracChangeset for help on using the changeset viewer.