Changeset 13233 for NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p5zmicro.F90
- Timestamp:
- 2020-07-02T20:34:16+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p5zmicro.F90
r12537 r13233 15 15 USE trc ! passive tracers common variables 16 16 USE sms_pisces ! PISCES Source Minus Sink variables 17 USE p4zlim 17 USE p4zlim ! PISCES nutrient limitation term of PISCES std 18 18 USE p5zlim ! Phytoplankton limitation terms 19 19 USE iom ! I/O manager … … 50 50 REAL(wp), PUBLIC :: srespir !: half sturation constant for grazing 1 51 51 REAL(wp), PUBLIC :: ssigma !: Fraction excreted as semi-labile DOM 52 REAL(wp), PUBLIC :: xsigma !: Width of the grazing window 53 REAL(wp), PUBLIC :: xsigmadel !: Maximum additional width of the grazing window at low food density 52 54 LOGICAL, PUBLIC :: bmetexc !: Use of excess carbon for respiration 53 55 … … 161 163 ! ---------------------------------------------------------- 162 164 zsigma = 1.0 - zdenom**2/(0.05**2+zdenom**2) 163 zsigma = 0.5 + 1.0*zsigma165 zsigma = xsigma + xsigmadel * zsigma 164 166 zdiffpn = exp( -ABS(log(0.5 * sizep(ji,jj,jk) / (3.0 * sizen(ji,jj,jk) + rtrn )) )**2 / zsigma**2 ) 165 167 zdiffdn = exp( -ABS(log(3.0 * sizen(ji,jj,jk) / (5.0 * sized(ji,jj,jk) + rtrn )) )**2 / zsigma**2) … … 179 181 ! Microzooplankton regular grazing on the different preys 180 182 ! ------------------------------------------------------- 181 zgraznc = zgraze * ztmp1 * zdenom 183 ! Nanophytoplankton 184 zgraznc = zgraze * ztmp1 * zdenom 182 185 zgraznn = zgraznc * trb(ji,jj,jk,jpnph) / (trb(ji,jj,jk,jpphy) + rtrn) 183 186 zgraznp = zgraznc * trb(ji,jj,jk,jppph) / (trb(ji,jj,jk,jpphy) + rtrn) 184 187 zgraznf = zgraznc * trb(ji,jj,jk,jpnfe) / (trb(ji,jj,jk,jpphy) + rtrn) 188 189 ! Picophytoplankton 185 190 zgrazpc = zgraze * ztmp2 * zdenom 186 191 zgrazpn = zgrazpc * trb(ji,jj,jk,jpnpi) / (trb(ji,jj,jk,jppic) + rtrn) 187 192 zgrazpp = zgrazpc * trb(ji,jj,jk,jpppi) / (trb(ji,jj,jk,jppic) + rtrn) 188 193 zgrazpf = zgrazpc * trb(ji,jj,jk,jppfe) / (trb(ji,jj,jk,jppic) + rtrn) 194 ! Microzooplankton 189 195 zgrazz = zgraze * ztmp5 * zdenom 196 197 ! small POC 190 198 zgrazpoc = zgraze * ztmp3 * zdenom 191 199 zgrazpon = zgrazpoc * trb(ji,jj,jk,jppon) / ( trb(ji,jj,jk,jppoc) + rtrn ) 192 200 zgrazpop = zgrazpoc * trb(ji,jj,jk,jppop) / ( trb(ji,jj,jk,jppoc) + rtrn ) 193 201 zgrazpof = zgrazpoc* trb(ji,jj,jk,jpsfe) / (trb(ji,jj,jk,jppoc) + rtrn) 202 203 ! Diatoms 194 204 zgrazdc = zgraze * ztmp4 * zdenom 195 205 zgrazdn = zgrazdc * trb(ji,jj,jk,jpndi) / (trb(ji,jj,jk,jpdia) + rtrn) … … 197 207 zgrazdf = zgrazdc * trb(ji,jj,jk,jpdfe) / (trb(ji,jj,jk,jpdia) + rtrn) 198 208 ! 209 ! Total ingestion rates in C, P, Fe, N 199 210 zgraztotc = zgraznc + zgrazpoc + zgrazdc + zgrazz + zgrazpc 200 211 zgraztotn = zgraznn + zgrazpn + zgrazpon + zgrazdn + zgrazz * no3rat3 … … 221 232 zepshert = MIN( 1., zgrasratn/ no3rat3, zgrasratp/ po4rat3, zgrasratf / ferat3) 222 233 zbeta = MAX( 0., (epsher - epshermin) ) 234 ! Food density deprivation of GGE 223 235 zepsherf = epshermin + zbeta / ( 1.0 + 0.04E6 * 12. * zfood * zbeta ) 236 ! Food quality deprivation of GGE 224 237 zepsherq = 0.5 + (1.0 - 0.5) * zepshert * ( 1.0 + 1.0 ) / ( zepshert + 1.0 ) 238 ! Actual GGE 225 239 zepsherv = zepsherf * zepshert * zepsherq 226 240 227 241 ! Respiration of microzooplankton 228 242 ! Excess carbon in the food is used preferentially 243 ! when activated by zmetexcess 229 244 ! ------------------------------------------------ 230 245 zexcess = zgraztotc * zepsherf * (1.0 - zepshert) * zmetexcess … … 380 395 & xprefp, xprefd, xprefz, xthreshdia, xthreshphy, & 381 396 & xthreshpic, xthreshpoc, xthreshzoo, xthresh, xkgraz, & 382 & epsher, epshermin, ssigma, srespir, unassc, unassn, unassp 397 & epsher, epshermin, ssigma, srespir, unassc, unassn, unassp, & 398 & xsigma, xsigmadel 383 399 !!---------------------------------------------------------------------- 384 400 ! … … 420 436 WRITE(numout,*) ' half sturation constant for grazing 1 xkgraz =', xkgraz 421 437 WRITE(numout,*) ' Use of excess carbon for respiration bmetexc =', bmetexc 438 WRITE(numout,*) ' Width of the grazing window xsigma =', xsigma 439 WRITE(numout,*) ' Maximum additional width of the grazing window xsigmadel =', xsigmadel 422 440 ENDIF 423 441 !
Note: See TracChangeset
for help on using the changeset viewer.