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 – NEMO

Changeset 3904 for trunk


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

bugfixes in PISCES, see ticket #1099

Location:
trunk/NEMOGCM
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/ARCH/CNRS/arch-macport_osx.fcm

    r3756 r3904  
    2727%NCDF_INC            -I/opt/local/include 
    2828%NCDF_LIB            -L/opt/local/lib -lnetcdf -lnetcdff 
    29 %XIOS_ROOT           /Users/smasson/XIOS 
     29%XIOS_ROOT           /Users/cethe/XIOS 
    3030%FC                mpif90  
    3131%FCFLAGS             -fdefault-real-8 -O3 -funroll-all-loops -fcray-pointer  
     
    3434%LDFLAGS             -lstdc++ -lmpi_cxx 
    3535%FPPFLAGS            -P -C -traditional 
    36 %AR                  libtool 
    37 %ARFLAGS             -c -s -o 
     36%AR                  ar 
     37%ARFLAGS             rs 
    3838%MK                  make 
    3939%USER_INC            %NCDF_INC -I%XIOS_ROOT/inc 
  • trunk/NEMOGCM/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist_pisces

    r3824 r3904  
    3030   cn_dir      = './'     !  root directory for the location of the dynamical files 
    3131! 
    32    ln_presatm  = .true.   ! constant atmopsheric pressure (F) or from a file (T) 
     32   ln_presatm  = .false.   ! constant atmopsheric pressure (F) or from a file (T) 
    3333/ 
    3434!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     
    3939   xkmort     =  2.E-7    ! half saturation constant for mortality 
    4040   ferat3     =  10.E-6   ! Fe/C in zooplankton  
    41    wsbio2     =  30.      ! Big particles sinking speed 
     41   wsbio2     =  50.      ! Big particles sinking speed 
    4242   niter1max  =  1        ! Maximum number of iterations for POC 
    4343   niter2max  =  1        ! Maximum number of iterations for GOC 
     
    4747!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
    4848   concnno3   =  1.e-6    ! Nitrate half saturation of nanophytoplankton 
    49    concdno3   =  3.E-6   ! Phosphate half saturation for diatoms 
     49   concdno3   =  3.E-6    ! Phosphate half saturation for diatoms 
    5050   concnnh4   =  1.E-7    ! NH4 half saturation for phyto 
    51    concdnh4   =  3.E-7   ! NH4 half saturation for diatoms 
    52    concnfer   =  1.E-9     ! Iron half saturation for phyto 
    53    concdfer   =  3.E-9   ! Iron half saturation for diatoms 
     51   concdnh4   =  3.E-7    ! NH4 half saturation for diatoms 
     52   concnfer   =  1.E-9    ! Iron half saturation for phyto 
     53   concdfer   =  3.E-9    ! Iron half saturation for diatoms 
    5454   concbfe    =  1.E-11   ! Half-saturation for Fe limitation of Bacteria 
    5555   concbnh4   =  2.5E-8   ! NH4 half saturation for phyto 
     
    6060   xsizerd    =  3.0      ! Size ratio for diatoms 
    6161   xksi1      =  2.E-6    ! half saturation constant for Si uptake 
    62    xksi2      =  20E-6  ! half saturation constant for Si/C 
     62   xksi2      =  20E-6    ! half saturation constant for Si/C 
    6363   xkdoc      =  417.E-6  ! half-saturation constant of DOC remineralization 
    6464   qnfelim    =  7.E-6    ! Optimal quota of phyto 
     
    8484   excret2    =  0.05     ! excretion ratio of diatoms 
    8585   ln_newprod =  .true.   ! Enable new parame. of production (T/F)  
    86    bresp      =  0.00333  ! Basal respiration rate 
     86   bresp      =  0.0333   ! Basal respiration rate 
    8787   chlcnm     =  0.033    ! Minimum Chl/C in nanophytoplankton 
    8888   chlcdm     =  0.05     ! Minimum Chl/C in diatoms 
     
    106106   part2      =  0.75     ! part of calcite not dissolved in mesozoo guts 
    107107   grazrat2   =  0.75     ! maximal mesozoo grazing rate 
    108    resrat2    =  0.005    ! exsudation rate of mesozooplankton 
     108   resrat2    =  0.01     ! exsudation rate of mesozooplankton 
    109109   mzrat2     =  0.03     ! mesozooplankton mortality rate 
    110110   xprefc     =  1.       ! zoo preference for phyto 
     
    118118   xthresh2   =  3E-7     ! Food threshold for grazing 
    119119   xkgraz2    =  20.E-6   ! half sturation constant for meso grazing 
    120    epsher2    =  0.3      ! Efficicency of Mesozoo growth 
     120   epsher2    =  0.4      ! Efficicency of Mesozoo growth 
    121121   sigma2     =  0.6      ! Fraction of mesozoo excretion as DOM 
    122122   unass2     =  0.3      ! non assimilated fraction of P by mesozoo 
     
    128128   part       =  0.5      ! part of calcite not dissolved in microzoo gutsa 
    129129   grazrat    =  3.0      ! maximal zoo grazing rate 
    130    resrat     =  0.03     ! exsudation rate of zooplankton 
     130   resrat     =  0.05     ! exsudation rate of zooplankton 
    131131   mzrat      =  0.004    ! zooplankton mortality rate 
    132132   xpref2c    =  0.1      ! Microzoo preference for POM 
     
    138138   xthresh    =  3.E-7    ! Food threshold for feeding 
    139139   xkgraz     =  20.E-6   ! half sturation constant for grazing 
    140    epsher     =  0.3      ! Efficiency of microzoo growth 
     140   epsher     =  0.4      ! Efficiency of microzoo growth 
    141141   sigma1     =  0.6      ! Fraction of microzoo excretion as DOM 
    142142   unass      =  0.3      ! non assimilated fraction of phyto by zoo 
     
    146146!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
    147147   ln_fechem =  .false.   ! complex iron chemistry ( T/F ) 
    148    ln_ligvar =  .true.   ! variable ligand concentration 
     148   ln_ligvar =  .false.   ! variable ligand concentration 
    149149   xlam1     =  0.005     ! scavenging rate of Iron 
    150150   xlamdust  =  150.0     ! Scavenging rate of dust 
     
    154154&nampisrem     !   parameters for remineralization 
    155155!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
    156    xremik    =  0.35      ! remineralization rate of DOC 
     156   xremik    =  0.3       ! remineralization rate of DOC 
    157157   xremip    =  0.025     ! remineralisation rate of POC 
    158158   nitrif    =  0.05      ! NH4 nitrification rate 
     
    261261&nampismass     !  Mass conservation 
    262262!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
    263    ln_check_mass =  .false.    !  Check mass conservation 
    264 / 
     263   ln_check_mass =  .true.    !  Check mass conservation 
     264/ 
  • trunk/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/EXP00/namelist_pisces

    r3824 r3904  
    3030   cn_dir      = './'     !  root directory for the location of the dynamical files 
    3131! 
    32    ln_presatm  = .true.   ! constant atmopsheric pressure (F) or from a file (T) 
     32   ln_presatm  = .false.   ! constant atmopsheric pressure (F) or from a file (T) 
    3333/ 
    3434!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     
    3939   xkmort     =  2.E-7    ! half saturation constant for mortality 
    4040   ferat3     =  10.E-6   ! Fe/C in zooplankton  
    41    wsbio2     =  30.      ! Big particles sinking speed 
     41   wsbio2     =  50.      ! Big particles sinking speed 
    4242   niter1max  =  1        ! Maximum number of iterations for POC 
    4343   niter2max  =  1        ! Maximum number of iterations for GOC 
     
    4747!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
    4848   concnno3   =  1.e-6    ! Nitrate half saturation of nanophytoplankton 
    49    concdno3   =  3.E-6   ! Phosphate half saturation for diatoms 
     49   concdno3   =  3.E-6    ! Phosphate half saturation for diatoms 
    5050   concnnh4   =  1.E-7    ! NH4 half saturation for phyto 
    51    concdnh4   =  3.E-7   ! NH4 half saturation for diatoms 
    52    concnfer   =  1.E-9     ! Iron half saturation for phyto 
    53    concdfer   =  3.E-9   ! Iron half saturation for diatoms 
     51   concdnh4   =  3.E-7    ! NH4 half saturation for diatoms 
     52   concnfer   =  1.E-9    ! Iron half saturation for phyto 
     53   concdfer   =  3.E-9    ! Iron half saturation for diatoms 
    5454   concbfe    =  1.E-11   ! Half-saturation for Fe limitation of Bacteria 
    5555   concbnh4   =  2.5E-8   ! NH4 half saturation for phyto 
     
    6060   xsizerd    =  3.0      ! Size ratio for diatoms 
    6161   xksi1      =  2.E-6    ! half saturation constant for Si uptake 
    62    xksi2      =  20E-6  ! half saturation constant for Si/C 
     62   xksi2      =  20E-6    ! half saturation constant for Si/C 
    6363   xkdoc      =  417.E-6  ! half-saturation constant of DOC remineralization 
    6464   qnfelim    =  7.E-6    ! Optimal quota of phyto 
     
    8484   excret2    =  0.05     ! excretion ratio of diatoms 
    8585   ln_newprod =  .true.   ! Enable new parame. of production (T/F)  
    86    bresp      =  0.00333  ! Basal respiration rate 
     86   bresp      =  0.0333   ! Basal respiration rate 
    8787   chlcnm     =  0.033    ! Minimum Chl/C in nanophytoplankton 
    8888   chlcdm     =  0.05     ! Minimum Chl/C in diatoms 
     
    106106   part2      =  0.75     ! part of calcite not dissolved in mesozoo guts 
    107107   grazrat2   =  0.75     ! maximal mesozoo grazing rate 
    108    resrat2    =  0.005    ! exsudation rate of mesozooplankton 
     108   resrat2    =  0.01     ! exsudation rate of mesozooplankton 
    109109   mzrat2     =  0.03     ! mesozooplankton mortality rate 
    110110   xprefc     =  1.       ! zoo preference for phyto 
     
    118118   xthresh2   =  3E-7     ! Food threshold for grazing 
    119119   xkgraz2    =  20.E-6   ! half sturation constant for meso grazing 
    120    epsher2    =  0.3      ! Efficicency of Mesozoo growth 
     120   epsher2    =  0.4      ! Efficicency of Mesozoo growth 
    121121   sigma2     =  0.6      ! Fraction of mesozoo excretion as DOM 
    122122   unass2     =  0.3      ! non assimilated fraction of P by mesozoo 
     
    128128   part       =  0.5      ! part of calcite not dissolved in microzoo gutsa 
    129129   grazrat    =  3.0      ! maximal zoo grazing rate 
    130    resrat     =  0.03     ! exsudation rate of zooplankton 
     130   resrat     =  0.05     ! exsudation rate of zooplankton 
    131131   mzrat      =  0.004    ! zooplankton mortality rate 
    132132   xpref2c    =  0.1      ! Microzoo preference for POM 
     
    138138   xthresh    =  3.E-7    ! Food threshold for feeding 
    139139   xkgraz     =  20.E-6   ! half sturation constant for grazing 
    140    epsher     =  0.3      ! Efficiency of microzoo growth 
     140   epsher     =  0.4      ! Efficiency of microzoo growth 
    141141   sigma1     =  0.6      ! Fraction of microzoo excretion as DOM 
    142142   unass      =  0.3      ! non assimilated fraction of phyto by zoo 
     
    146146!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
    147147   ln_fechem =  .false.   ! complex iron chemistry ( T/F ) 
    148    ln_ligvar =  .true.   ! variable ligand concentration 
     148   ln_ligvar =  .false.   ! variable ligand concentration 
    149149   xlam1     =  0.005     ! scavenging rate of Iron 
    150150   xlamdust  =  150.0     ! Scavenging rate of dust 
     
    154154&nampisrem     !   parameters for remineralization 
    155155!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
    156    xremik    =  0.35      ! remineralization rate of DOC 
     156   xremik    =  0.3       ! remineralization rate of DOC 
    157157   xremip    =  0.025     ! remineralisation rate of POC 
    158158   nitrif    =  0.05      ! NH4 nitrification rate 
     
    261261&nampismass     !  Mass conservation 
    262262!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
    263    ln_check_mass =  .false.    !  Check mass conservation 
    264 / 
     263   ln_check_mass =  .true.    !  Check mass conservation 
     264/ 
  • trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90

    r3780 r3904  
    263263               zdep    = MIN( 1., 1000. / fsdept(ji,jj,jk) ) 
    264264               zlam1b  = xlam1 * MAX( 0.e0, ( trn(ji,jj,jk,jpfer) * 1.e9 - ztotlig(ji,jj,jk) ) ) 
    265                zcoag   = zfeequi * zlam1b * zstep + 1E-4 * ( 1. - zlamfac ) * zdep * zstep *zfecoll 
     265               zcoag   = zfeequi * zlam1b * zstep + 1E-4 * ( 1. - zlamfac ) * zdep * zstep * trn(ji,jj,jk,jpfer) 
    266266 
    267267               !  Compute the coagulation of colloidal iron. This parameterization  
     
    278278               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zscave * zdenom1 + zaggdfea + zaggdfeb 
    279279#else 
    280                zlam1b = 3.53E3 *   trn(ji,jj,jk,jpgoc) * xdiss(ji,jj,jk) + 1E-4 * ( 1. - zlamfac ) * zdep  
     280               zlam1b = 3.53E3 *   trn(ji,jj,jk,jpgoc) * xdiss(ji,jj,jk) 
    281281               zaggdfeb = zlam1b * zstep * zfecoll 
    282282               ! 
  • 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 
  • trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90

    r3686 r3904  
    201201                      zconctemp2  = trn(ji,jj,jk,jpdia) - zconctemp 
    202202                      ! 
    203                       zpislopead (ji,jj,jk) = pislope  * ( 1.+ zadap  * EXP( enano(ji,jj,jk) ) ) 
     203                      zpislopead (ji,jj,jk) = pislope  * ( 1.+ zadap  * EXP( -0.21 * enano(ji,jj,jk) ) ) 
    204204                      zpislopead2(ji,jj,jk) = (pislope * zconctemp2 + pislope2 * zconctemp)  / ( trn(ji,jj,jk,jpdia) + rtrn ) 
    205205 
  • trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90

    r3751 r3904  
    6969      REAL(wp) ::  zwflux, zfminus, zfplus 
    7070      REAL(wp) ::  zlim, zfact, zfactcal 
    71       REAL(wp) ::  zo2, zno3, zflx, zpdenit, z1pdenit 
     71      REAL(wp) ::  zo2, zno3, zflx, zpdenit, z1pdenit, zdenitt, zolimit 
    7272      REAL(wp) ::  zsiloss, zcaloss, zwsbio3, zwsbio4, zwscal, zdep, zwstpoc 
    7373      REAL(wp) ::  ztrfer, ztrpo4, zwdust 
     
    135135         ENDIF 
    136136         zsidep(:,:) = 8.8 * 0.075 * dust(:,:) * rfact2 / fse3t(:,:,1) / ( 28.1  * rmtss ) 
    137          zpdep (:,:) = 0.1 * 0.021 * dust(:,:) * rfact2 / fse3t(:,:,1) / ( 31.   * rmtss ) 
     137         zpdep (:,:) = 0.1 * 0.021 * dust(:,:) * rfact2 / fse3t(:,:,1) / ( 31.   * rmtss ) / po4r  
    138138         !                                              ! Iron solubilization of particles in the water column 
    139139         zwdust = 0.005 / ( wdust * 55.85 * 30.42 ) / ( 45. * rday )  
     
    246246#endif 
    247247 
    248       ! THEN this loss is scaled at each bottom grid cell for 
    249       ! equilibrating the total budget of silica in the ocean. 
    250       ! Thus, the amount of silica lost in the sediments equal 
    251       ! the supply at the surface (dust+rivers) 
     248      ! This loss is scaled at each bottom grid cell for equilibrating the total budget of silica in the ocean. 
     249      ! Thus, the amount of silica lost in the sediments equal the supply at the surface (dust+rivers) 
    252250      ! ------------------------------------------------------ 
    253251#if ! defined key_sed 
     
    302300 
    303301#if ! defined key_sed 
    304             zpdenit  = MIN( ( trn(ji,jj,ikt,jpno3) - rtrn ) / rdenit, zdenit2d(ji,jj) * zwstpoc * zrivno3 ) 
     302            ! The 0.5 factor in zpdenit and zdenitt is to avoid negative NO3 concentration after both denitrification 
     303            ! in the sediments and just above the sediments. Not very clever, but simpliest option. 
     304            zpdenit  = MIN( 0.5 * ( trn(ji,jj,ikt,jpno3) - rtrn ) / rdenit, zdenit2d(ji,jj) * zwstpoc * zrivno3 ) 
    305305            z1pdenit = zwstpoc * zrivno3 - zpdenit 
    306             trn(ji,jj,ikt,jpdoc) = trn(ji,jj,ikt,jpdoc) + z1pdenit 
    307             trn(ji,jj,ikt,jppo4) = trn(ji,jj,ikt,jppo4) + zpdenit 
    308             trn(ji,jj,ikt,jpnh4) = trn(ji,jj,ikt,jpnh4) + zpdenit 
    309             trn(ji,jj,ikt,jpno3) = trn(ji,jj,ikt,jpno3) - rdenit * zpdenit 
    310             trn(ji,jj,ikt,jptal) = trn(ji,jj,ikt,jptal) + rno3 * ( 1. + rdenit ) * zpdenit 
    311             trn(ji,jj,ikt,jpdic) = trn(ji,jj,ikt,jpdic) + zpdenit 
     306            zolimit = MIN( ( trn(ji,jj,ikt,jpoxy) - rtrn ) / o2ut, z1pdenit * ( 1.- nitrfac(ji,jj,ikt) ) ) 
     307            zdenitt = MIN(  0.5 * ( trn(ji,jj,ikt,jpno3) - rtrn ) / rdenit, z1pdenit * nitrfac(ji,jj,ikt) ) 
     308            trn(ji,jj,ikt,jpdoc) = trn(ji,jj,ikt,jpdoc) + z1pdenit - zolimit - zdenitt 
     309            trn(ji,jj,ikt,jppo4) = trn(ji,jj,ikt,jppo4) + zpdenit + zolimit + zdenitt 
     310            trn(ji,jj,ikt,jpnh4) = trn(ji,jj,ikt,jpnh4) + zpdenit + zolimit + zdenitt 
     311            trn(ji,jj,ikt,jpno3) = trn(ji,jj,ikt,jpno3) - rdenit * (zpdenit + zdenitt) 
     312            trn(ji,jj,ikt,jpoxy) = trn(ji,jj,ikt,jpoxy) - zolimit * o2ut 
     313            trn(ji,jj,ikt,jptal) = trn(ji,jj,ikt,jptal) + rno3 * (zolimit + (1.+rdenit) * (zpdenit + zdenitt) ) 
     314            trn(ji,jj,ikt,jpdic) = trn(ji,jj,ikt,jpdic) + zpdenit + zolimit + zdenitt 
    312315            zwork4(ji,jj) = rdenit * zpdenit * fse3t(ji,jj,ikt) 
    313316#endif 
  • trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90

    r3829 r3904  
    156156            DO ji = 1, jpi 
    157157               IF( tmask(ji,jj,jk) == 1 ) THEN 
    158                  zwsmax = 0.8 * fse3t(ji,jj,jk) / xstep 
     158                 zwsmax = 0.5 * fse3t(ji,jj,jk) / xstep 
    159159                 wsbio3(ji,jj,jk) = MIN( wsbio3(ji,jj,jk), zwsmax * FLOAT( iiter1 ) ) 
    160160                 wsbio4(ji,jj,jk) = MIN( wsbio4(ji,jj,jk), zwsmax * FLOAT( iiter2 ) ) 
     
    217217               zaggdoc  = ( ( 0.369 * 0.3 * trn(ji,jj,jk,jpdoc) + 102.4 * trn(ji,jj,jk,jppoc) ) * zfact       & 
    218218               &            + 2.4 * zstep * trn(ji,jj,jk,jppoc) ) * 0.3 * trn(ji,jj,jk,jpdoc) 
    219 !               zaggdoc  = ( 0.83 * trn(ji,jj,jk,jpdoc) + 271. * trn(ji,jj,jk,jppoc) ) * zfact * trn(ji,jj,jk,jpdoc) 
    220219               ! transfer of DOC to GOC :  
    221220               ! 1st term is shear aggregation 
    222221               ! 2nd term is differential settling  
    223222               zaggdoc2 = ( 3.53E3 * zfact + 0.1 * zstep ) * trn(ji,jj,jk,jpgoc) * 0.3 * trn(ji,jj,jk,jpdoc) 
    224 !               zaggdoc2 = 1.07e4 * zfact * trn(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpdoc) 
    225223               ! tranfer of DOC to POC due to brownian motion 
    226 !               zaggdoc3 =   0.02 * ( 16706. * trn(ji,jj,jk,jppoc) + 231. * trn(ji,jj,jk,jpdoc) ) * zstep * trn(ji,jj,jk,jpdoc) 
    227224               zaggdoc3 =  ( 5095. * trn(ji,jj,jk,jppoc) + 114. * 0.3 * trn(ji,jj,jk,jpdoc) ) *zstep * 0.3 * trn(ji,jj,jk,jpdoc) 
    228225 
Note: See TracChangeset for help on using the changeset viewer.