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 3904 for trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90 – NEMO

Ignore:
Timestamp:
2013-05-24T11:58:01+02:00 (11 years ago)
Author:
cetlod
Message:

bugfixes in PISCES, see ticket #1099

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90

    r3856 r3904  
    140140               !  ---------------------------------- 
    141141# if ! defined key_kriest 
    142                zgrazffeg = grazflux  * zstep * wsbio4(ji,jj,jk)      & 
    143 !                 &                   * tgfunc2(ji,jj,jk) * trn(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpmes) 
    144                &                     * 2. *  trn(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpmes) 
     142               zgrazffeg = grazflux  * zstep * wsbio4(ji,jj,jk) * trn(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpmes) 
    145143               zgrazfffg = zgrazffeg * trn(ji,jj,jk,jpbfe) / (trn(ji,jj,jk,jpgoc) + rtrn) 
    146144# endif 
    147                zgrazffep = grazflux  * zstep *  wsbio3(ji,jj,jk)     & 
    148 !                 &                   * tgfunc2(ji,jj,jk) * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jpmes) 
    149                &                     * 2. * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jpmes) 
     145               zgrazffep = grazflux  * zstep *  wsbio3(ji,jj,jk) * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jpmes) 
    150146               zgrazfffp = zgrazffep * trn(ji,jj,jk,jpsfe) / (trn(ji,jj,jk,jppoc) + rtrn) 
    151147              ! 
     
    154150              ! Compute the proportion of filter feeders 
    155151              zproport  = (zgrazffep + zgrazffeg)/(rtrn + zgraztot) 
     152              ! Compute fractionation of aggregates. It is assumed that diatoms based aggregates are more prone to fractionation 
     153              ! since they are more porous (marine snow instead of fecal pellets) 
    156154              zratio    = trn(ji,jj,jk,jpgsi) / ( trn(ji,jj,jk,jpgoc) + rtrn ) 
    157155              zratio2   = zratio * zratio 
    158 !              zfrac =  zproport * 0.15 * zstep *                     & 
    159 !                       ( 0.2 + 0.8 * zratio2 / ( 1.5**2 + zratio2 ) )   & 
    160 !                      *trn(ji,jj,jk,jpmes)/3E-7 *trn(ji,jj,jk,jpgoc) 
    161               zfrac     = zproport * grazflux  * zstep * wsbio4(ji,jj,jk)      & 
    162                  &       * ( 0.1 + 3.9 * zratio2 / ( 1.**2 + zratio2 ) )       & 
    163                  &       * 2. * trn(ji,jj,jk,jpmes) * trn(ji,jj,jk,jpgoc)  
     156              zfrac     = zproport * zgrazffeg * ( 0.1 + 3.9 * zratio2 / ( 1.**2 + zratio2 ) ) 
    164157 
    165158              zfracfe   = zfrac * trn(ji,jj,jk,jpbfe) / (trn(ji,jj,jk,jpgoc) + rtrn) 
     
    193186               zepshert  = epsher2 * MIN( 1., zncratio ) 
    194187               zepsherv  = zepshert * MIN( 1., zgrasrat / ferat3 ) 
    195                zgrarem2  = zgraztot * ( 1. - zepsherv - unass2 ) + zrespz2  & 
    196                &    + ( 1. - zepsherv - unass2 ) /( 1. - zepsherv + rtrn) * ztortz2 
    197                zgrafer2  = zgraztot * MAX( 0. , ( 1. - unass2 ) * zgrasrat - ferat3 * zepsherv )    & 
    198                &    + ferat3 * ( zrespz2 + ( 1. - zepsherv - unass2 ) /( 1. - zepsherv + rtrn) * ztortz2 ) 
     188               zgrarem2  =  zgraztot * ( 1. - zepsherv - unass2 ) + zrespz2  & 
     189                  &       + ( 1. - zepsherv - unass2 ) /( 1. - zepsherv ) * ztortz2 
     190               zgrafer2  =  zgraztot * MAX( 0. , ( 1. - unass2 ) * zgrasrat - ferat3 * zepsherv )    & 
     191                  &       + ferat3 * ( zrespz2 + ( 1. - zepsherv - unass2 ) /( 1. - zepsherv ) * ztortz2 ) 
    199192               zgrapoc2  = zgraztot * unass2 
    200193 
     
    208201               tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + zgrarsig 
    209202               tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + rno3 * zgrarsig               
    210 #if defined key_kriest 
    211                tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zgrapoc2 
    212                tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) + zgrapoc2 * xkr_dmeso 
    213                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zgraztotf * unass2 
    214 #else 
    215                tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zgrapoc2 - zfrac  
    216                tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zfrac 
    217                tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zgraztotf * unass2 - zfracfe 
    218                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zfracfe 
    219  
    220 #endif 
     203 
    221204               zmortz2 = ztortz2 + zrespz2 
    222                zmortzgoc = unass2 / ( 1. - zepsherv + rtrn ) * ztortz2 
     205               zmortzgoc = unass2 / ( 1. - zepsherv ) * ztortz2 
    223206               tra(ji,jj,jk,jpmes) = tra(ji,jj,jk,jpmes) - zmortz2 + zepsherv * zgraztot  
    224207               tra(ji,jj,jk,jpdia) = tra(ji,jj,jk,jpdia) - zgrazd 
     
    242225#if defined key_kriest 
    243226               znumpoc = trn(ji,jj,jk,jpnum) / ( trn(ji,jj,jk,jppoc) + rtrn ) 
    244                tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortzgoc - zgrazpoc - zgrazffep 
    245                tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) - zgrazpoc * znumpoc & 
    246                &   + zmortzgoc * xkr_dmeso - zgrazffep * znumpoc * wsbio4(ji,jj,jk) / ( wsbio3(ji,jj,jk) + rtrn ) 
    247                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + ferat3 * zmortz2 - zgrazfffp - zgrazpof 
     227               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortzgoc - zgrazpoc - zgrazffep + zgrapoc2 
     228               tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) - zgrazpoc * znumpoc + zgrapoc2 * xkr_dmeso      & 
     229               &                   + zmortzgoc * xkr_dmeso - zgrazffep * znumpoc * wsbio4(ji,jj,jk) / ( wsbio3(ji,jj,jk) + rtrn ) 
     230               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + ferat3 * zmortz2 - zgrazfffp - zgrazpof + zgraztotf * unass2 
    248231#else 
    249                tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - zgrazpoc - zgrazffep 
    250                tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zmortzgoc - zgrazffeg 
    251                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) - zgrazpof - zgrazfffp 
    252                tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + ferat3 * zmortzgoc - zgrazfffg 
     232               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - zgrazpoc - zgrazffep + zfrac 
     233               tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zmortzgoc - zgrazffeg + zgrapoc2 - zfrac 
     234               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) - zgrazpof - zgrazfffp + zfracfe 
     235               tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + ferat3 * zmortzgoc - zgrazfffg + zgraztotf * unass2 - zfracfe 
    253236#endif 
    254  
    255237            END DO 
    256238         END DO 
Note: See TracChangeset for help on using the changeset viewer.