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 4529 for trunk – NEMO

Changeset 4529 for trunk


Ignore:
Timestamp:
2014-03-15T12:00:04+01:00 (10 years ago)
Author:
cetlod
Message:

Bugfix and minor improvment on PISCES, see ticket #1258

Location:
trunk/NEMOGCM
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/CONFIG/SHARED/namelist_pisces_ref

    r4388 r4529  
    3131   cn_dir      = './'     !  root directory for the location of the dynamical files 
    3232! 
    33    ln_presatm  = .true.   ! constant atmopsheric pressure (F) or from a file (T) 
     33   ln_presatm  = .false.   ! constant atmopsheric pressure (F) or from a file (T) 
    3434/ 
    3535!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     
    4040   xkmort     =  2.E-7    ! half saturation constant for mortality 
    4141   ferat3     =  10.E-6   ! Fe/C in zooplankton  
    42    wsbio2     =  50.      ! Big particles sinking speed 
     42   wsbio2     =  30.      ! Big particles sinking speed 
    4343   niter1max  =  1        ! Maximum number of iterations for POC 
    4444   niter2max  =  1        ! Maximum number of iterations for GOC 
     
    4848!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
    4949   concnno3   =  1.e-6    ! Nitrate half saturation of nanophytoplankton 
    50    concdno3   =  3.E-6   ! Phosphate half saturation for diatoms 
     50   concdno3   =  3.E-6    ! Phosphate half saturation for diatoms 
    5151   concnnh4   =  1.E-7    ! NH4 half saturation for phyto 
    52    concdnh4   =  3.E-7   ! NH4 half saturation for diatoms 
    53    concnfer   =  1.E-9     ! Iron half saturation for phyto 
    54    concdfer   =  3.E-9   ! Iron half saturation for diatoms 
     52   concdnh4   =  3.E-7    ! NH4 half saturation for diatoms 
     53   concnfer   =  1.E-9    ! Iron half saturation for phyto 
     54   concdfer   =  3.E-9    ! Iron half saturation for diatoms 
    5555   concbfe    =  1.E-11   ! Half-saturation for Fe limitation of Bacteria 
    56    concbnh4   =  2.5E-8   ! NH4 half saturation for phyto 
    57    concbno3   =  2.5E-7   ! Phosphate half saturation for diatoms 
     56   concbnh4   =  2.E-8    ! NH4 half saturation for phyto 
     57   concbno3   =  2.E-7    ! Phosphate half saturation for diatoms 
    5858   xsizedia   =  1.E-6    ! Minimum size criteria for diatoms 
    5959   xsizephy   =  1.E-6    ! Minimum size criteria for phyto 
     
    8282   pislope    =  2.       ! P-I slope 
    8383   pislope2   =  2.       ! P-I slope  for diatoms 
     84   xadap      =  0.       ! Adaptation factor to low light 
    8485   excret     =  0.05     ! excretion ratio of phytoplankton 
    8586   excret2    =  0.05     ! excretion ratio of diatoms 
     
    107108   part2      =  0.75     ! part of calcite not dissolved in mesozoo guts 
    108109   grazrat2   =  0.75     ! maximal mesozoo grazing rate 
    109    resrat2    =  0.01     ! exsudation rate of mesozooplankton 
     110   resrat2    =  0.005    ! exsudation rate of mesozooplankton 
    110111   mzrat2     =  0.03     ! mesozooplankton mortality rate 
    111112   xprefc     =  1.       ! zoo preference for phyto 
     
    119120   xthresh2   =  3E-7     ! Food threshold for grazing 
    120121   xkgraz2    =  20.E-6   ! half sturation constant for meso grazing 
    121    epsher2    =  0.3      ! Efficicency of Mesozoo growth 
    122    sigma2     =  0.4      ! Fraction of mesozoo excretion as DOM 
     122   epsher2    =  0.35     ! Efficicency of Mesozoo growth 
     123   sigma2     =  0.6      ! Fraction of mesozoo excretion as DOM 
    123124   unass2     =  0.3      ! non assimilated fraction of P by mesozoo 
    124125   grazflux   =  2.e3     ! flux-feeding rate 
     
    129130   part       =  0.5      ! part of calcite not dissolved in microzoo gutsa 
    130131   grazrat    =  3.0      ! maximal zoo grazing rate 
    131    resrat     =  0.05     ! exsudation rate of zooplankton 
     132   resrat     =  0.03     ! exsudation rate of zooplankton 
    132133   mzrat      =  0.004    ! zooplankton mortality rate 
    133134   xpref2c    =  0.1      ! Microzoo preference for POM 
     
    139140   xthresh    =  3.E-7    ! Food threshold for feeding 
    140141   xkgraz     =  20.E-6   ! half sturation constant for grazing 
    141    epsher     =  0.4      ! Efficiency of microzoo growth 
     142   epsher     =  0.3      ! Efficiency of microzoo growth 
    142143   sigma1     =  0.6      ! Fraction of microzoo excretion as DOM 
    143144   unass      =  0.3      ! non assimilated fraction of phyto by zoo 
     
    185186   sn_ndepo    = 'ndeposition.orca',    -12            , 'ndep'        ,  .false.     , .true. , 'yearly'  , ''       , ''    , '' 
    186187   sn_ironsed  = 'bathy.orca'      ,    -12            , 'bathy'       ,  .false.     , .true. , 'yearly'  , ''       , ''    , '' 
    187    sn_hydrofe  = 'hydrofe'         ,    -12            , 'epsdb'       ,  .false.     , .true. , 'yearly'  , ''       , ''    , '' 
     188   sn_hydrofe  = 'hydrofe.orca'    ,    -12            , 'epsdb'       ,  .false.     , .true. , 'yearly'  , ''       , ''    , '' 
    188189! 
    189190   cn_dir      = './'      !  root directory for the location of the dynamical files 
     
    195196   ln_ironice  =  .true.   ! boolean for Fe input from sea ice 
    196197   ln_hydrofe  =  .false.  ! boolean for from hydrothermal vents 
    197    sedfeinput  =  1.e-9    ! Coastal release of Iron 
    198    dustsolub   =  0.02     ! Solubility of the dust 
     198   sedfeinput  =  2.e-9    ! Coastal release of Iron 
     199   dustsolub   =  0.02     ! Solubility of the dusta 
     200   mfrac       =  0.035    ! Fe mineral fraction of dust 
    199201   wdust       =  2.0      ! Dust sinking speed  
    200202   icefeinput  =  15.e-9   ! Iron concentration in sea ice 
     
    202204   diazolight  =  50.      ! Diazotrophs sensitivity to light (W/m2) 
    203205   concfediaz  =  1.e-10   ! Diazotrophs half-saturation Cste for Iron 
    204    hratio      =  9.e+5    ! Fe to 3He ratio assumed for vent iron supply  
     206   hratio      =  1.e+7    ! Fe to 3He ratio assumed for vent iron supply  
    205207/ 
    206208!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
  • trunk/NEMOGCM/CONFIG/cfg.txt

    r4494 r4529  
    66ORCA2_SAS_LIM OPA_SRC SAS_SRC LIM_SRC_2 NST_SRC 
    77C1D_PAPA OPA_SRC 
    8 ORCA2_LIM_PISCES OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC 
    98ORCA2_LIM3 OPA_SRC LIM_SRC_3 NST_SRC 
    109ORCA2_LIM OPA_SRC LIM_SRC_2 NST_SRC 
    1110AMM12 OPA_SRC 
    1211GYRE_BFM OPA_SRC TOP_SRC 
     12ORCA2_LIM_PISCES OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC 
  • trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zbio.F90

    r3531 r4529  
    8686      CALL p4z_prod ( kt, jnt )     ! phytoplankton growth rate over the global ocean.  
    8787      !                             ! (for each element : C, Si, Fe, Chl ) 
    88       CALL p4z_rem  ( kt, jnt )     ! remineralization terms of organic matter+scavenging of Fe 
    8988      CALL p4z_mort ( kt      )     ! phytoplankton mortality 
    9089      !                             ! zooplankton sources/sinks routines  
    9190      CALL p4z_micro( kt, jnt )           ! microzooplankton 
    9291      CALL p4z_meso ( kt, jnt )           ! mesozooplankton 
    93  
     92      CALL p4z_rem  ( kt, jnt )     ! remineralization terms of organic matter+scavenging of Fe 
    9493      !                             ! test if tracers concentrations fall below 0. 
    9594      xnegtr(:,:,:) = 1.e0 
     
    148147   !!====================================================================== 
    149148END MODULE  p4zbio 
     149 
  • trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90

    r4521 r4529  
    244244               ztrc   = ( trn(ji,jj,jk,jppoc) + trn(ji,jj,jk,jpgoc) + trn(ji,jj,jk,jpcal) + trn(ji,jj,jk,jpgsi) ) * 1.e6  
    245245#endif 
    246                IF( ln_dust )  zdust  = dust(ji,jj) / ( wdust * 30.42 * 0.035 ) * tmask(ji,jj,jk) 
     246               IF( ln_dust )  zdust  = dust(ji,jj) / ( wdust * rday ) * tmask(ji,jj,jk) ! dust in kg/m2/s 
    247247               zlam1b = 3.e-5 + xlamdust * zdust + xlam1 * ztrc 
    248248               zscave = zfeequi * zlam1b * zstep 
  • trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlim.F90

    r4147 r4529  
    9292               zno3    = trn(ji,jj,jk,jpno3) / 40.e-6 
    9393               zferlim = MAX( 3e-11 * zno3 * zno3, 5e-12 ) 
    94                zferlim = MIN( zferlim, 5e-11 ) 
     94               zferlim = MIN( zferlim, 7e-11 ) 
    9595               trn(ji,jj,jk,jpfer) = MAX( trn(ji,jj,jk,jpfer), zferlim ) 
    9696 
     
    137137               zironmin = xcoef1 * trn(ji,jj,jk,jpnch) * z1_trnphy + xcoef2 * zlim1 + xcoef3 * xnanono3(ji,jj,jk) 
    138138               zlim3    = MAX( 0.,( zratio - zironmin ) / qnfelim ) 
    139                xlimnfe(ji,jj,jk) = MIN( 1., zlim3 ) 
    140                xlimphy(ji,jj,jk) = MIN( zlim1, zlim2, zlim3 ) 
     139               xnanopo4(ji,jj,jk) = zlim2 
     140               xlimnfe (ji,jj,jk) = MIN( 1., zlim3 ) 
     141               xlimphy (ji,jj,jk) = MIN( zlim1, zlim2, zlim3 ) 
    141142               ! 
    142143               !   Michaelis-Menten Limitation term for nutrients Diatoms 
     
    152153               zironmin = xcoef1 * trn(ji,jj,jk,jpdch) * z1_trndia + xcoef2 * zlim1 + xcoef3 * xdiatno3(ji,jj,jk) 
    153154               zlim4    = MAX( 0., ( zratio - zironmin ) / qdfelim ) 
    154                xlimdfe(ji,jj,jk) = MIN( 1., zlim4 ) 
    155                xlimdia(ji,jj,jk) = MIN( zlim1, zlim2, zlim3, zlim4 ) 
    156                xlimsi(ji,jj,jk)  = MIN( zlim1, zlim2, zlim4 ) 
     155               xdiatpo4(ji,jj,jk) = zlim2 
     156               xlimdfe (ji,jj,jk) = MIN( 1., zlim4 ) 
     157               xlimdia (ji,jj,jk) = MIN( zlim1, zlim2, zlim3, zlim4 ) 
     158               xlimsi  (ji,jj,jk) = MIN( zlim1, zlim2, zlim4 ) 
    157159           END DO 
    158160         END DO 
  • trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90

    r4521 r4529  
    7171      INTEGER  :: ji, jj, jk 
    7272      REAL(wp) :: zcompadi, zcompaph, zcompapoc, zcompaz, zcompam 
    73       REAL(wp) :: zgraze2 , zdenom, zdenom2, zncratio 
     73      REAL(wp) :: zgraze2 , zdenom, zdenom2 
    7474      REAL(wp) :: zfact   , zstep, zfood, zfoodlim, zproport 
    7575      REAL(wp) :: zmortzgoc, zfrac, zfracfe, zratio, zratio2 
    76       REAL(wp) :: zepshert, zepsherv, zgrarsig, zgraztot, zgraztotf 
    77       REAL(wp) :: zgrarem2, zgrafer2, zgrapoc2, zprcaca, zmortz2, zgrasrat 
     76      REAL(wp) :: zepshert, zepsherv, zgrarsig, zgraztot, zgraztotn, zgraztotf 
     77      REAL(wp) :: zgrarem2, zgrafer2, zgrapoc2, zprcaca, zmortz2, zgrasrat, zgrasratn 
    7878#if defined key_kriest 
    7979      REAL znumpoc 
     
    9898         DO jj = 1, jpj 
    9999            DO ji = 1, jpi 
    100                zcompam   = MAX( ( trn(ji,jj,jk,jpmes) - 1.e-8 ), 0.e0 ) 
     100               zcompam   = MAX( ( trn(ji,jj,jk,jpmes) - 1.e-9 ), 0.e0 ) 
    101101# if defined key_degrad 
    102102               zstep     = xstep * facvol(ji,jj,jk) 
     
    116116               ztortz2   = mzrat2 * 1.e6 * zfact * trn(ji,jj,jk,jpmes) 
    117117               ! 
    118  
    119118               zcompadi  = MAX( ( trn(ji,jj,jk,jpdia) - xthresh2dia ), 0.e0 ) 
    120119               zcompaz   = MAX( ( trn(ji,jj,jk,jpzoo) - xthresh2zoo ), 0.e0 ) 
    121                zcompaph  = MAX( ( trn(ji,jj,jk,jpphy) - xthresh2phy ), 0.e0 ) 
     120               ! Size effect of nanophytoplankton on grazing : the smaller it is, the less prone 
     121               ! it is to predation by mesozooplankton 
     122               ! ------------------------------------------------------------------------------- 
     123               zcompaph  = MAX( ( trn(ji,jj,jk,jpphy) - xthresh2phy ), 0.e0 ) & 
     124                  &      * MIN(1., MAX( 0., ( quotan(ji,jj,jk) - 0.2) / 0.3 ) ) 
    122125               zcompapoc = MAX( ( trn(ji,jj,jk,jppoc) - xthresh2poc ), 0.e0 ) 
    123126 
     
    139142               !  Mesozooplankton flux feeding on GOC 
    140143               !  ---------------------------------- 
     144               !  ---------------------------------- 
    141145# if ! defined key_kriest 
    142                zgrazffeg = grazflux  * zstep * wsbio4(ji,jj,jk) * trn(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpmes) 
     146               zgrazffeg = grazflux  * zstep * wsbio4(ji,jj,jk)      & 
     147               &           * tgfunc2(ji,jj,jk) * trn(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpmes) 
    143148               zgrazfffg = zgrazffeg * trn(ji,jj,jk,jpbfe) / (trn(ji,jj,jk,jpgoc) + rtrn) 
    144149# endif 
    145                zgrazffep = grazflux  * zstep *  wsbio3(ji,jj,jk) * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jpmes) 
     150               zgrazffep = grazflux  * zstep *  wsbio3(ji,jj,jk)     & 
     151               &           * tgfunc2(ji,jj,jk) * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jpmes) 
    146152               zgrazfffp = zgrazffep * trn(ji,jj,jk,jpsfe) / (trn(ji,jj,jk,jppoc) + rtrn) 
    147153              ! 
     
    150156              ! Compute the proportion of filter feeders 
    151157              zproport  = (zgrazffep + zgrazffeg)/(rtrn + zgraztot) 
    152               ! Compute fractionation of aggregates. It is assumed that diatoms based aggregates are more prone to fractionation 
     158              ! Compute fractionation of aggregates. It is assumed that  
     159              ! diatoms based aggregates are more prone to fractionation 
    153160              ! since they are more porous (marine snow instead of fecal pellets) 
    154161              zratio    = trn(ji,jj,jk,jpgsi) / ( trn(ji,jj,jk,jpgoc) + rtrn ) 
    155162              zratio2   = zratio * zratio 
    156               zfrac     = zproport * zgrazffeg * ( 0.1 + 3.9 * zratio2 / ( 1.**2 + zratio2 ) ) 
    157  
     163              zfrac     = zproport * grazflux  * zstep * wsbio4(ji,jj,jk)      & 
     164               &          * trn(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpmes)          & 
     165               &          * ( 0.1 + 3.9 * zratio2 / ( 1.**2 + zratio2 ) ) 
    158166              zfracfe   = zfrac * trn(ji,jj,jk,jpbfe) / (trn(ji,jj,jk,jpgoc) + rtrn) 
    159167 
     
    163171              zgrazfffg = zproport * zgrazfffg 
    164172              zgraztot  = zgrazd + zgrazz + zgrazn + zgrazpoc + zgrazffep + zgrazffeg 
     173              zgraztotn = zgrazd * quotad(ji,jj,jk) + zgrazz + zgrazn * quotan(ji,jj,jk)   & 
     174              &   + zgrazpoc + zgrazffep + zgrazffeg 
    165175              zgraztotf = zgrazf + zgraznf + zgrazz * ferat3 + zgrazpof + zgrazfffp + zgrazfffg 
    166176# else 
     
    171181              zgrazfffp = zproport * zgrazfffp 
    172182              zgraztot  = zgrazd + zgrazz + zgrazn + zgrazpoc + zgrazffep 
     183              zgraztotn = zgrazd * quotad(ji,jj,jk) + zgrazz + zgrazn * quotan(ji,jj,jk) + zgrazpoc + zgrazffep 
    173184              zgraztotf = zgrazf + zgraznf + zgrazz * ferat3 + zgrazpof + zgrazfffp 
    174185# endif 
     
    179190              !    Mesozooplankton efficiency 
    180191              !    -------------------------- 
    181               zgrasrat   =  zgraztotf / ( zgraztot + rtrn ) 
    182               zncratio   = (  xprefc   * zcompadi * quotad(ji,jj,jk)  & 
    183                   &         + xprefp   * zcompaph * quotan(ji,jj,jk)  & 
    184                   &         + xprefz   * zcompaz                      & 
    185                   &         + xprefpoc * zcompapoc   ) / ( zfood + rtrn ) 
    186                zepshert  = epsher2 * MIN( 1., zncratio ) 
    187                zepsherv  = zepshert * MIN( 1., zgrasrat / ferat3 ) 
    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 ) 
     192               zgrasrat  =  ( zgraztotf +rtrn )/ ( zgraztot + rtrn ) 
     193               zgrasratn =  ( zgraztotn +rtrn )/ ( zgraztot + rtrn ) 
     194               zepshert  = MIN( 1., zgrasratn, zgrasrat / ferat3) 
     195               zepsherv  = zepshert * MIN( epsher2, (1. - unass2) * zgrasrat / ferat3, (1. - unass2) * zgrasratn ) 
     196               zgrarem2  = zgraztot * ( 1. - zepsherv - unass2 ) & 
     197                &       + ( 1. - epsher2 - unass2 ) / ( 1. - epsher2 ) * ztortz2 
     198               zgrafer2  = zgraztot * MAX( 0. , ( 1. - unass2 ) * zgrasrat - ferat3 * zepsherv )    & 
     199                &       + ferat3 * ( ( 1. - epsher2 - unass2 ) /( 1. - epsher2 ) * ztortz2 ) 
    192200               zgrapoc2  = zgraztot * unass2 
    193201 
     
    215223               tra(ji,jj,jk,jpdfe) = tra(ji,jj,jk,jpdfe) - zgrazf 
    216224 
     225               ! calcite production 
    217226               zprcaca = xfracal(ji,jj,jk) * zgrazn 
    218                ! calcite production 
    219227               prodcal(ji,jj,jk) = prodcal(ji,jj,jk) + zprcaca  ! prodcal=prodcal(nanophy)+prodcal(microzoo)+prodcal(mesozoo) 
    220228               ! 
     
    224232               tra(ji,jj,jk,jpcal) = tra(ji,jj,jk,jpcal) + zprcaca 
    225233#if defined key_kriest 
    226                znumpoc = trn(ji,jj,jk,jpnum) / ( trn(ji,jj,jk,jppoc) + rtrn ) 
    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 
     234              znumpoc = trn(ji,jj,jk,jpnum) / ( trn(ji,jj,jk,jppoc) + rtrn ) 
     235              tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortzgoc - zgrazpoc - zgrazffep + zgrapoc2 
     236              tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) - zgrazpoc * znumpoc + zgrapoc2 * xkr_dmeso      & 
     237                 &   + zmortzgoc * xkr_dmeso - zgrazffep * znumpoc * wsbio4(ji,jj,jk) / ( wsbio3(ji,jj,jk) + rtrn ) 
     238              tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + ferat3 * zmortzgoc - zgrazfffp - zgrazpof    & 
     239                 &                 + zgraztotf * unass2 
    231240#else 
    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 
     241              tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - zgrazpoc - zgrazffep + zfrac 
     242              tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zmortzgoc - zgrazffeg + zgrapoc2 - zfrac 
     243              tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) - zgrazpof - zgrazfffp + zfracfe 
     244              tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + ferat3 * zmortzgoc - zgrazfffg     & 
     245                 &                + zgraztotf * unass2 - zfracfe 
    236246#endif 
    237247            END DO 
  • trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmicro.F90

    r4521 r4529  
    7272      INTEGER  :: ji, jj, jk 
    7373      REAL(wp) :: zcompadi, zcompaz , zcompaph, zcompapoc 
    74       REAL(wp) :: zgraze  , zdenom, zdenom2, zncratio 
     74      REAL(wp) :: zgraze  , zdenom, zdenom2 
    7575      REAL(wp) :: zfact   , zstep, zfood, zfoodlim 
    76       REAL(wp) :: zepshert, zepsherv, zgrarsig, zgraztot, zgraztotf 
     76      REAL(wp) :: zepshert, zepsherv, zgrarsig, zgraztot, zgraztotn, zgraztotf 
    7777      REAL(wp) :: zgrarem, zgrafer, zgrapoc, zprcaca, zmortz 
    78       REAL(wp) :: zrespz, ztortz, zgrasrat 
     78      REAL(wp) :: zrespz, ztortz, zgrasrat, zgrasratn 
    7979      REAL(wp) :: zgrazp, zgrazm, zgrazsd 
    8080      REAL(wp) :: zgrazmf, zgrazsf, zgrazpf 
     
    9191         DO jj = 1, jpj 
    9292            DO ji = 1, jpi 
    93                zcompaz = MAX( ( trn(ji,jj,jk,jpzoo) - 1.e-8 ), 0.e0 ) 
     93               zcompaz = MAX( ( trn(ji,jj,jk,jpzoo) - 1.e-9 ), 0.e0 ) 
    9494               zstep   = xstep 
    9595# if defined key_degrad 
     
    130130               zgraztot  = zgrazp  + zgrazm  + zgrazsd  
    131131               zgraztotf = zgrazpf + zgrazsf + zgrazmf  
     132               zgraztotn = zgrazp * quotan(ji,jj,jk) + zgrazm + zgrazsd * quotad(ji,jj,jk) 
    132133 
    133134               ! Grazing by microzooplankton 
     
    137138               !    -------------------------------------------- 
    138139               zgrasrat  = zgraztotf / ( zgraztot + rtrn ) 
    139                zncratio  = ( xpref2p * zcompaph * quotan(ji,jj,jk) & 
    140                   &        + xpref2d * zcompadi * quotad(ji,jj,jk) + xpref2c * zcompapoc ) / ( zfood + rtrn ) 
    141                zepshert  = epsher * MIN( 1., zncratio ) 
    142                zepsherv  = zepshert * MIN( 1., zgrasrat / ferat3 ) 
     140               zgrasratn = zgraztotn / ( zgraztot + rtrn ) 
     141               zepshert  =  MIN( 1., zgrasratn, zgrasrat / ferat3) 
     142               zepsherv  = zepshert * MIN( epsher, (1. - unass) * zgrasrat / ferat3, (1. - unass) * zgrasratn ) 
    143143               zgrafer   = zgraztot * MAX( 0. , ( 1. - unass ) * zgrasrat - ferat3 * zepsherv )  
    144144               zgrarem   = zgraztot * ( 1. - zepsherv - unass ) 
     
    174174               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortz - zgrazm 
    175175               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + ferat3 * zmortz - zgrazmf 
    176                zprcaca = xfracal(ji,jj,jk) * zgrazp 
    177176               ! 
    178177               ! calcite production 
     178               zprcaca = xfracal(ji,jj,jk) * zgrazp 
    179179               prodcal(ji,jj,jk) = prodcal(ji,jj,jk) + zprcaca  ! prodcal=prodcal(nanophy)+prodcal(microzoo)+prodcal(mesozoo) 
    180180               ! 
  • trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmort.F90

    r4147 r4529  
    1818   USE sms_pisces      !  PISCES Source Minus Sink variables 
    1919   USE p4zsink         !  vertical flux of particulate matter due to sinking 
     20   USE p4zprod         !  Primary productivity  
    2021   USE prtctl_trc      !  print control for debugging 
    2122 
     
    7273      !!--------------------------------------------------------------------- 
    7374      INTEGER  :: ji, jj, jk 
    74       REAL(wp) :: zcompaph 
     75      REAL(wp) :: zsizerat, zcompaph 
    7576      REAL(wp) :: zfactfe, zfactch, zprcaca, zfracal 
    7677      REAL(wp) :: ztortp , zrespp , zmortp , zstep 
     
    8990               zstep    = zstep * facvol(ji,jj,jk) 
    9091# endif 
     92               !     When highly limited by macronutrients, very small cells  
     93               !     dominate the community. As a consequence, aggregation 
     94               !     due to turbulence is negligible. Mortality is also set 
     95               !     to 0 
     96               zsizerat = MIN(1., MAX( 0., (quotan(ji,jj,jk) - 0.2) / 0.3) ) * trn(ji,jj,jk,jpphy) 
    9197               !     Squared mortality of Phyto similar to a sedimentation term during 
    9298               !     blooms (Doney et al. 1996) 
    93                zrespp = wchl * 1.e6 * zstep * xdiss(ji,jj,jk) * zcompaph * trn(ji,jj,jk,jpphy)  
     99               zrespp = wchl * 1.e6 * zstep * xdiss(ji,jj,jk) * zcompaph * zsizerat  
    94100 
    95101               !     Phytoplankton mortality. This mortality loss is slightly 
    96102               !     increased when nutrients are limiting phytoplankton growth 
    97103               !     as observed for instance in case of iron limitation. 
    98                ztortp = mprat * xstep * trn(ji,jj,jk,jpphy) / ( xkmort + trn(ji,jj,jk,jpphy) ) * zcompaph 
     104               ztortp = mprat * xstep * zcompaph / ( xkmort + trn(ji,jj,jk,jpphy) ) * zsizerat 
    99105 
    100106               zmortp = zrespp + ztortp 
     
    166172            DO ji = 1, jpi 
    167173 
    168                zcompadi = MAX( ( trn(ji,jj,jk,jpdia) - 1e-8), 0. ) 
     174               zcompadi = MAX( ( trn(ji,jj,jk,jpdia) - 1e-9), 0. ) 
    169175 
    170176               !    Aggregation term for diatoms is increased in case of nutrient 
     
    181187               zlim1   = 0.25 * ( 1. - zlim2 ) / ( 0.25 + zlim2 )  
    182188               zrespp2 = 1.e6 * zstep * (  wchld + wchldm * zlim1 ) * xdiss(ji,jj,jk) * zcompadi * trn(ji,jj,jk,jpdia) 
    183               ! zlim1   = 1.0 - xlimdia(ji,jj,jk)  
    184               ! zrespp2 = 1.e6 * zstep * (  wchl + wchld * zlim1 ) * xdiss(ji,jj,jk) * zcompadi * trn(ji,jj,jk,jpdia) 
    185189 
    186190               !     Phytoplankton mortality.  
  • trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90

    r4148 r4529  
    3535   REAL(wp), PUBLIC ::  pislope         !: 
    3636   REAL(wp), PUBLIC ::  pislope2        !: 
     37   REAL(wp), PUBLIC ::  xadap           !: 
    3738   REAL(wp), PUBLIC ::  excret          !: 
    3839   REAL(wp), PUBLIC ::  excret2         !: 
     
    158159                  IF( etot(ji,jj,jk) > 1.E-3 ) THEN 
    159160                      ztn         = MAX( 0., tsn(ji,jj,jk,jp_tem) - 15. ) 
    160                       zadap       = ztn / ( 2.+ ztn ) 
     161                      zadap       = xadap * ztn / ( 2.+ ztn ) 
    161162                      zconctemp   = MAX( 0.e0 , trn(ji,jj,jk,jpdia) - xsizedia ) 
    162163                      zconctemp2  = trn(ji,jj,jk,jpdia) - zconctemp 
     
    227228      ENDIF 
    228229 
     230 
    229231      !  Computation of a proxy of the N/C ratio 
    230232      !  --------------------------------------- 
     
    235237!CDIR NOVERRCHK 
    236238            DO ji = 1, jpi 
    237                 zval = ( xnanonh4(ji,jj,jk) + xnanono3(ji,jj,jk) ) * prmax(ji,jj,jk) / ( zprbio(ji,jj,jk) + rtrn ) 
    238                 quotan(ji,jj,jk) = MIN( 1., 0.5 + 0.5 * zval ) 
    239                 zval = ( xdiatnh4(ji,jj,jk) + xdiatno3(ji,jj,jk) ) * prmax(ji,jj,jk) / ( zprdia(ji,jj,jk) + rtrn ) 
    240                 quotad(ji,jj,jk) = MIN( 1., 0.5 + 0.5 * zval ) 
     239                zval = MIN( xnanopo4(ji,jj,jk), ( xnanonh4(ji,jj,jk) + xnanono3(ji,jj,jk) ) )   & 
     240                &      * prmax(ji,jj,jk) / ( zprbio(ji,jj,jk) + rtrn ) 
     241                quotan(ji,jj,jk) = MIN( 1., 0.2 + 0.8 * zval ) 
     242                zval = MIN( xdiatpo4(ji,jj,jk), ( xdiatnh4(ji,jj,jk) + xdiatno3(ji,jj,jk) ) )   & 
     243                &      * prmax(ji,jj,jk) / ( zprdia(ji,jj,jk) + rtrn ) 
     244                quotad(ji,jj,jk) = MIN( 1., 0.2 + 0.8 * zval ) 
    241245            END DO 
    242246         END DO 
     
    274278            zmxltst = MAX( 0.e0, hmld(ji,jj) - heup(ji,jj) ) 
    275279            zmxlday = zmxltst * zmxltst * r1_rday 
    276             zmixnano(ji,jj) = 1. - zmxlday / ( 3. + zmxlday ) 
     280            zmixnano(ji,jj) = 1. - zmxlday / ( 2. + zmxlday ) 
    277281            zmixdiat(ji,jj) = 1. - zmxlday / ( 4. + zmxlday ) 
    278282         END DO 
     
    470474      !!---------------------------------------------------------------------- 
    471475      ! 
    472       NAMELIST/nampisprod/ pislope, pislope2, ln_newprod, bresp, excret, excret2,  & 
     476      NAMELIST/nampisprod/ pislope, pislope2, xadap, ln_newprod, bresp, excret, excret2,  & 
    473477         &                 chlcnm, chlcdm, chlcmin, fecnm, fecdm, grosip 
    474478      INTEGER :: ios                 ! Local integer output status for namelist read 
     
    491495         WRITE(numout,*) '    mean Si/C ratio                           grosip       =', grosip 
    492496         WRITE(numout,*) '    P-I slope                                 pislope      =', pislope 
     497         WRITE(numout,*) '    Acclimation factor to low light           xadap       =', xadap 
    493498         WRITE(numout,*) '    excretion ratio of nanophytoplankton      excret       =', excret 
    494499         WRITE(numout,*) '    excretion ratio of diatoms                excret2      =', excret2 
  • trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90

    r4521 r4529  
    3535   REAL(wp), PUBLIC  :: sedfeinput  !: Coastal release of Iron 
    3636   REAL(wp), PUBLIC  :: dustsolub   !: Solubility of the dust 
     37   REAL(wp), PUBLIC  :: mfrac       !: Mineral Content of the dust 
    3738   REAL(wp), PUBLIC  :: icefeinput  !: Iron concentration in sea ice 
    3839   REAL(wp), PUBLIC  :: wdust       !: Sinking speed of the dust  
     
    232233         WRITE(numout,*) '    coastal release of iron                  sedfeinput  = ', sedfeinput 
    233234         WRITE(numout,*) '    solubility of the dust                   dustsolub   = ', dustsolub 
     235         WRITE(numout,*) '    Mineral Fe content of the dust           mfrac       = ', mfrac 
    234236         WRITE(numout,*) '    Iron concentration in sea ice            icefeinput  = ', icefeinput 
    235237         WRITE(numout,*) '    sinking speed of the dust                wdust       = ', wdust 
     
    278280               sumdepsi = sumdepsi + glob_sum( zdust(:,:,jm) * e1e2t(:,:) * tmask(:,:,1) * ztimes_dust ) 
    279281            ENDDO 
    280             sumdepsi = sumdepsi / ( nyear_len(1) * rday ) * 12. * 8.8 * 0.075 / 28.1  
     282            sumdepsi = sumdepsi / ( nyear_len(1) * rday ) * 12. * 8.8 * 0.075 * mfrac / 28.1  
    281283            DEALLOCATE( zdust) 
    282284         ENDIF 
  • trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90

    r4521 r4529  
    7171      REAL(wp) ::  zo2, zno3, zflx, zpdenit, z1pdenit, zdenitt, zolimit 
    7272      REAL(wp) ::  zsiloss, zcaloss, zws3, zws4, zwsc, zdep, zwstpoc 
    73       REAL(wp) ::  ztrfer, ztrpo4, zwdust 
     73      REAL(wp) ::  ztrfer, ztrpo4, zwdust, zlight 
    7474      REAL(wp) ::  zrdenittot, zsdenittot, znitrpottot 
    7575      ! 
    7676      CHARACTER (len=25) :: charout 
    7777      REAL(wp), POINTER, DIMENSION(:,:  ) :: zpdep, zsidep, zwork1, zwork2, zwork3, zwork4 
    78       REAL(wp), POINTER, DIMENSION(:,:  ) :: zdenit2d, zironice 
     78      REAL(wp), POINTER, DIMENSION(:,:  ) :: zdenit2d, zironice, zbureff 
    7979      REAL(wp), POINTER, DIMENSION(:,:  ) :: zwsbio3, zwsbio4, zwscal 
    80       REAL(wp), POINTER, DIMENSION(:,:,:) :: znitrpot, zirondep 
     80      REAL(wp), POINTER, DIMENSION(:,:,:) :: znitrpot, zirondep, zsoufer 
    8181      !!--------------------------------------------------------------------- 
    8282      ! 
     
    9393      ! 
    9494      ! Allocate temporary workspace 
    95       CALL wrk_alloc( jpi, jpj, zdenit2d, zwork1, zwork2, zwork3, zwork4 ) 
     95      CALL wrk_alloc( jpi, jpj, zdenit2d, zwork1, zwork2, zwork3, zwork4, zbureff ) 
    9696      CALL wrk_alloc( jpi, jpj, zwsbio3, zwsbio4, zwscal ) 
    97       CALL wrk_alloc( jpi, jpj, jpk, znitrpot ) 
     97      CALL wrk_alloc( jpi, jpj, jpk, znitrpot, zsoufer ) 
    9898 
    9999      zdenit2d(:,:) = 0.e0 
     100      zbureff (:,:) = 0.e0 
    100101 
    101102      ! Iron input/uptake due to sea ice : Crude parameterization based on Lancelot et al. 
     
    131132         !                                              ! Iron and Si deposition at the surface 
    132133         IF( ln_solub ) THEN 
    133             zirondep(:,:,1) = solub(:,:) * dust(:,:) * rfact2 / fse3t(:,:,1) / ( 55.85 * rmtss ) + 3.e-10 * r1_ryyss  
     134            zirondep(:,:,1) = solub(:,:) * dust(:,:) * mfrac * rfact2 / fse3t(:,:,1) / ( 55.85 * rmtss ) + 3.e-10 * r1_ryyss  
    134135         ELSE 
    135             zirondep(:,:,1) = dustsolub  * dust(:,:) * rfact2 / fse3t(:,:,1) / ( 55.85 * rmtss ) + 3.e-10 * r1_ryyss  
     136            zirondep(:,:,1) = dustsolub  * dust(:,:) * mfrac * rfact2 / fse3t(:,:,1) / ( 55.85 * rmtss ) + 3.e-10 * r1_ryyss  
    136137         ENDIF 
    137          zsidep(:,:) = 8.8 * 0.075 * dust(:,:) * rfact2 / fse3t(:,:,1) / ( 28.1  * rmtss ) 
    138          zpdep (:,:) = 0.1 * 0.021 * dust(:,:) * rfact2 / fse3t(:,:,1) / ( 31.   * rmtss ) / po4r  
     138         zsidep(:,:) = 8.8 * 0.075 * dust(:,:) * mfrac * rfact2 / fse3t(:,:,1) / ( 28.1  * rmtss ) 
     139         zpdep (:,:) = 0.1 * 0.021 * dust(:,:) * mfrac * rfact2 / fse3t(:,:,1) / ( 31.   * rmtss ) / po4r  
    139140         !                                              ! Iron solubilization of particles in the water column 
    140          zwdust = 0.005 / ( wdust * 55.85 * 30.42 ) / ( 45. * rday )  
     141         !                                              ! dust in kg/m2/s ---> 1/55.85 to put in mol/Fe ;  wdust in m/j 
     142         zwdust = 0.03 * rday / ( wdust * 55.85 ) / ( 270. * rday ) 
    141143         DO jk = 2, jpkm1 
    142             zirondep(:,:,jk) = dust(:,:) * zwdust * rfact2 * EXP( -fsdept(:,:,jk) / 1000. ) 
     144            zirondep(:,:,jk) = dust(:,:) * mfrac * zwdust * rfact2 * EXP( -fsdept(:,:,jk) / 540. ) 
    143145         END DO 
    144146         !                                              ! Iron solubilization of particles in the water column 
     
    152154               IF( jnt == nrdttrc ) THEN 
    153155                  CALL iom_put( "Irondep", zirondep(:,:,1) * zfact * fse3t(:,:,1) * tmask(:,:,1) ) ! surface downward dust depo of iron 
    154                   CALL iom_put( "pdust"  , dust(:,:) / ( wdust * 30.42 * 0.035 )  * tmask(:,:,1) ) ! dust concentration at surface 
     156                  CALL iom_put( "pdust"  , dust(:,:) / ( wdust * rday )  * tmask(:,:,1) ) ! dust concentration at surface 
    155157               ENDIF 
    156158            ELSE 
     
    215217#if ! defined key_sed 
    216218      ! Computation of the sediment denitrification proportion: The metamodel from midlleburg (2006) is being used 
     219      ! Computation of the fraction of organic matter that is permanently buried from Dunne's model 
    217220      ! ------------------------------------------------------- 
    218221      DO jj = 1, jpj 
     
    233236              &                + 0.4721 * zo2 - 0.0996 * zdep + 0.4256 * zflx * zo2 
    234237              zdenit2d(ji,jj) = 10.0**( zdenit2d(ji,jj) ) 
     238              ! 
     239              zflx = (  trn(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj)   & 
     240                &     + trn(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) ) * 1E6 
     241              zbureff(ji,jj) = 0.013 + 0.53 * zflx**2 / ( 7.0 + zflx )**2 
    235242           ENDIF 
    236243         END DO 
    237244      END DO  
     245 
    238246      ! Loss of biogenic silicon, Caco3 organic carbon in the sediments.  
    239247      ! First, the total loss is computed. 
     
    266274#if ! defined key_sed 
    267275      zrivsil =  1._wp - ( sumdepsi + rivdsiinput * r1_ryyss ) / zsumsedsi 
    268       zrivno3 =  1._wp - ( rivdininput * r1_ryyss ) / zsumsedpo4 
    269276#endif 
    270277 
     
    301308            zws4 = zwsbio4(ji,jj) * zdep 
    302309            zws3 = zwsbio3(ji,jj) * zdep 
     310            zrivno3 = 1. - zbureff(ji,jj) 
    303311# if ! defined key_kriest 
    304312            trn(ji,jj,ikt,jpgoc) = trn(ji,jj,ikt,jpgoc) - trn(ji,jj,ikt,jpgoc) * zws4 
     
    334342 
    335343      ! Nitrogen fixation process 
     344      ! Small source iron from particulate inorganic iron 
    336345      !----------------------------------- 
    337346      DO jk = 1, jpkm1 
    338347         DO jj = 1, jpj 
    339348            DO ji = 1, jpi 
    340                !                                       ! Potential nitrogen fixation dependant on temperature and iron 
     349               !                      ! Potential nitrogen fixation dependant on temperature and iron 
    341350               zlim = ( 1.- xnanono3(ji,jj,jk) - xnanonh4(ji,jj,jk) ) 
    342351               IF( zlim <= 0.2 )   zlim = 0.01 
     
    348357               ztrfer = biron(ji,jj,jk)       / ( concfediaz + biron(ji,jj,jk)       ) 
    349358               ztrpo4 = trn  (ji,jj,jk,jppo4) / ( concnnh4   + trn  (ji,jj,jk,jppo4) )  
     359               zlight =  ( 1.- EXP( -etot(ji,jj,jk) / diazolight ) )  
    350360               znitrpot(ji,jj,jk) =  MAX( 0.e0, ( 0.6 * tgfunc(ji,jj,jk) - 2.15 ) * r1_rday )   & 
    351                  &         *  zfact * MIN( ztrfer, ztrpo4 ) * ( 1.- EXP( -etot(ji,jj,jk) / diazolight ) ) 
     361                 &         *  zfact * MIN( ztrfer, ztrpo4 ) * zlight 
     362               zsoufer(ji,jj,jk) = zlight * 2E-11 / (2E-11 + biron(ji,jj,jk)) 
    352363            END DO 
    353364         END DO 
    354365      END DO 
    355   
    356       IF( ln_check_mass ) THEN 
    357          ! The total gain from nitrogen fixation is scaled to balance the loss by denitrification 
    358          ! ------------------------------------------------------------- 
    359          zrdenittot   = glob_sum ( denitr(:,:,:) * rdenit * xnegtr(:,:,:) * cvol(:,:,:) ) 
    360          zsdenittot   = glob_sum ( zwork4(:,:)   * e1e2t(:,:) ) 
    361          znitrpottot  = glob_sum ( znitrpot(:,:,:)                        * cvol(:,:,:) ) 
    362          IF( kt == nitend .AND. jnt == nrdttrc ) THEN 
    363             zfact = 1.e+3 * rfact2r * rno3 * 365. * 86400. * 14. / 1e12 
    364             IF(lwp) WRITE(numnit,9100) ndastp, znitrpottot * nitrfix * zfact, zrdenittot * zfact , zsdenittot * zfact 
    365          ENDIF 
    366        ENDIF 
    367366 
    368367      ! Nitrogen change due to nitrogen fixation 
     
    371370         DO jj = 1, jpj 
    372371            DO ji = 1, jpi 
    373                ! zfact = znitrpot(ji,jj,jk) * ( zrdenittot + zsdenittot ) / znitrpottot 
    374372               zfact = znitrpot(ji,jj,jk) * nitrfix 
    375373               trn(ji,jj,jk,jpnh4) = trn(ji,jj,jk,jpnh4) +             zfact 
    376374               trn(ji,jj,jk,jptal) = trn(ji,jj,jk,jptal) + rno3      * zfact 
    377375               trn(ji,jj,jk,jpoxy) = trn(ji,jj,jk,jpoxy) + o2nit     * zfact  
    378                trn(ji,jj,jk,jppo4) = trn(ji,jj,jk,jppo4) + 30. / 46. * zfact 
     376               trn(ji,jj,jk,jppo4) = trn(ji,jj,jk,jppo4) + concdnh4 / ( concdnh4 + trn(ji,jj,jk,jppo4) ) & 
     377               &                     * 0.002 * trn(ji,jj,jk,jpdoc) * rfact2 / rday 
     378               trn(ji,jj,jk,jpfer) = trn(ji,jj,jk,jpfer) + 0.002 * 4E-10 * zsoufer(ji,jj,jk) * rfact2 / rday 
    379379           END DO 
    380380         END DO  
    381381      END DO 
     382 
     383  
     384      IF( ln_check_mass ) THEN 
     385        ! Global budget of N SMS : denitrification in the water column and in the sediment 
     386         !                          nitrogen fixation by the diazotrophs 
     387         ! -------------------------------------------------------------------------------- 
     388         zrdenittot   = glob_sum ( denitr(:,:,:) * rdenit * xnegtr(:,:,:) * cvol(:,:,:) ) 
     389         zsdenittot   = glob_sum ( zwork4(:,:)   * e1e2t(:,:) ) 
     390         znitrpottot  = glob_sum ( znitrpot(:,:,:) * nitrfix              * cvol(:,:,:) ) 
     391         IF( kt == nitend .AND. jnt == nrdttrc ) THEN 
     392            zfact = 1.e+3 * rfact2r * rno3 * ryyss * 14. / 1e12 
     393            IF(lwp) WRITE(numnit,9100) ndastp, znitrpottot * nitrfix * zfact, zrdenittot * zfact , zsdenittot * zfact 
     394         ENDIF 
     395       ENDIF 
    382396      ! 
    383397      IF( ln_diatrc ) THEN 
  • trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/sms_pisces.F90

    r4148 r4529  
    6868   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xnanonh4   !: ??? 
    6969   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xdiatnh4   !: ??? 
     70   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xnanopo4   !: ??? 
     71   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xdiatpo4   !: ??? 
    7072   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimphy    !: ??? 
    7173   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimdia    !: ??? 
     
    136138         &      xnanono3(jpi,jpj,jpk), xdiatno3(jpi,jpj,jpk),       & 
    137139         &      xnanonh4(jpi,jpj,jpk), xdiatnh4(jpi,jpj,jpk),       & 
     140         &      xnanopo4(jpi,jpj,jpk), xdiatpo4(jpi,jpj,jpk),       & 
    138141         &      xlimphy (jpi,jpj,jpk), xlimdia (jpi,jpj,jpk),       & 
    139142         &      xlimnfe (jpi,jpj,jpk), xlimdfe (jpi,jpj,jpk),       & 
  • trunk/NEMOGCM/NEMO/TOP_SRC/par_trc.F90

    r4230 r4529  
    3838# endif 
    3939 
    40    REAL(wp), PUBLIC  :: rtrn  = 1.e-15      !: truncation value      
     40   REAL(wp), PUBLIC  :: rtrn  = 0.5 * EPSILON( 1.e0 )    !: truncation value 
    4141 
    4242   !!---------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.