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 12349 for NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p5zmicro.F90 – NEMO

Ignore:
Timestamp:
2020-01-28T17:17:13+01:00 (4 years ago)
Author:
aumont
Message:

update of the quota version of PISCES + some corrections of the GGE of zooplankton

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p5zmicro.F90

    r11536 r12349  
    7575      REAL(wp) :: zcompapi, zgraze  , zdenom, zfact, zfood, zfoodlim 
    7676      REAL(wp) :: ztmp1, ztmp2, ztmp3, ztmp4, ztmp5, ztmptot 
    77       REAL(wp) :: zepsherf, zepshert, zepsherv, zrespirc, zrespirn, zrespirp, zbasresb, zbasresi 
     77      REAL(wp) :: zepsherf, zepshert, zepsherq, zepsherv, zrespirc, zrespirn, zrespirp, zbasresb, zbasresi 
    7878      REAL(wp) :: zgraztotc, zgraztotn, zgraztotp, zgraztotf, zbasresn, zbasresp, zbasresf 
    7979      REAL(wp) :: zgradoc, zgradon, zgradop, zgraref, zgradoct, zgradont, zgradopt, zgrareft 
     
    8484      REAL(wp) :: zgrazdc, zgrazdn, zgrazdp, zgrazdf, zgraznf, zgrazz 
    8585      REAL(wp) :: zgrazpc, zgrazpn, zgrazpp, zgrazpf, zbeta, zrfact2, zmetexcess 
     86      REAL(wp) :: zsigma, zdiffdn, zdiffpn, zdiffdp, zproport, zproport2 
    8687      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing, zfezoo 
    8788      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d, zzligprod 
     
    104105               zcompaz = MAX( ( trb(ji,jj,jk,jpzoo) - 1.e-9 ), 0.e0 ) 
    105106               zfact   = xstep * tgfunc2(ji,jj,jk) * zcompaz 
    106  
     107               ! Proportion of nano and diatoms that are within the size range 
     108               ! accessible to microzooplankton.  
     109               zproport  = min(1.0, exp(-1.1 * MAX(0., ( sized(ji,jj,jk) - 1.8 ))**0.8 )) 
     110               zproport2 = sizen(ji,jj,jk)**(-0.54) 
    107111               !   Michaelis-Menten mortality rates of microzooplankton 
    108112               !   ----------------------------------------------------- 
     
    118122               !   A threshold can be specified in the namelist 
    119123               !   -------------------------------------------- 
    120                zcompadi  = MIN( MAX( ( trb(ji,jj,jk,jpdia) - xthreshdia ), 0.e0 ), xsizedia ) 
    121                zcompaph  = MAX( ( trb(ji,jj,jk,jpphy) - xthreshphy ), 0.e0 ) 
     124               zcompadi  = zproport * MAX( ( trb(ji,jj,jk,jpdia) - xthreshdia ), 0.e0 ) 
     125               zcompaph  = zproport2 * MAX( ( trb(ji,jj,jk,jpphy) - xthreshphy ), 0.e0 ) 
    122126               zcompaz   = MAX( ( trb(ji,jj,jk,jpzoo) - xthreshzoo ), 0.e0 ) 
    123127               zcompapi  = MAX( ( trb(ji,jj,jk,jppic) - xthreshpic ), 0.e0 ) 
     
    140144               !   most abundant species 
    141145               !   ------------------------------------------------------------   
    142                ztmp1 = xprefn * zcompaph**1.5 
    143                ztmp2 = xprefp * zcompapi**1.5 
    144                ztmp3 = xprefc * zcompapoc**1.5 
    145                ztmp4 = xprefd * zcompadi**1.5 
    146                ztmp5 = xprefz * zcompaz**1.5 
     146               zsigma = 1.0 - zdenom**2/(0.05**2+zdenom**2) 
     147               zsigma = 0.5 + 1.0*zsigma 
     148               zdiffpn = exp( -ABS(log(0.5 * sizep(ji,jj,jk) / (3.0 * sizen(ji,jj,jk) + rtrn )) )**2 / zsigma**2 ) 
     149               zdiffdn = exp( -ABS(log(3.0 * sizen(ji,jj,jk) / (5.0 * sized(ji,jj,jk) + rtrn )) )**2 / zsigma**2) 
     150               zdiffdp = exp( -ABS(log(0.5 * sizep(ji,jj,jk) / (5.0 * sized(ji,jj,jk) + rtrn )) )**2 / zsigma**2) 
     151               ztmp1 = xprefn * zcompaph * ( zcompaph + zdiffdn * zcompadi + zdiffpn * zcompapi ) / ( 1.0 + zdiffdn + zdiffpn ) 
     152               ztmp2 = xprefp * zcompapi * ( zcompapi + zdiffpn * zcompaph + zdiffdp * zcompadi ) / ( 1.0 + zdiffpn + zdiffdp ) 
     153               ztmp3 = xprefc * zcompapoc**2 
     154               ztmp4 = xprefd * zcompadi * ( zdiffdp * zcompapi + zdiffdn * zcompaph + zcompadi ) / ( 1.0 + zdiffdn + zdiffdp ) 
     155               ztmp5 = xprefz * zcompaz**2 
    147156               ztmptot = ztmp1 + ztmp2 + ztmp3 + ztmp4 + ztmp5 + rtrn 
    148157               ztmp1 = ztmp1 / ztmptot 
     
    192201               zbeta     = MAX( 0., (epsher - epshermin) ) 
    193202               zepsherf  = epshermin + zbeta / ( 1.0 + 0.04E6 * 12. * zfood * zbeta ) 
    194                zepsherv  = zepsherf * zepshert 
     203               zepsherq  = 0.5 + (1.0 - 0.5) * zepshert * ( 1.0 + 1.0 ) / ( zepshert + 1.0 ) 
     204               zepsherv  = zepsherf * zepshert * zepsherq 
    195205 
    196206               !   Respiration of microzooplankton 
Note: See TracChangeset for help on using the changeset viewer.