- Timestamp:
- 2020-03-11T16:02:54+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p5zlim.F90
r12349 r12537 2 2 !!====================================================================== 3 3 !! *** MODULE p5zlim *** 4 !! TOP : PISCES with variable stoichiometry 4 !! TOP : PISCES-QUOTA : Computes the various nutrient limitation terms 5 !! of phytoplankton 5 6 !!====================================================================== 6 7 !! History : 1.0 ! 2004 (O. Aumont) Original code … … 14 15 USE oce_trc ! Shared ocean-passive tracers variables 15 16 USE trc ! Tracers defined 16 USE p4zlim 17 USE p4zlim ! Nutrient limitation 17 18 USE sms_pisces ! PISCES variables 18 19 USE iom ! I/O manager … … 21 22 PRIVATE 22 23 23 PUBLIC p5z_lim 24 PUBLIC p5z_lim_init 25 PUBLIC p5z_lim_alloc 24 PUBLIC p5z_lim ! called in p4zbio.F90 25 PUBLIC p5z_lim_init ! called in trcsms_pisces.F90 26 PUBLIC p5z_lim_alloc ! called in trcini_pisces.F90 26 27 27 28 !! * Shared module variables … … 72 73 73 74 !!* Phytoplankton nutrient limitation terms 74 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xpicono3 !: ???75 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xpiconh4 !: ???76 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xpicopo4 !: ???77 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xnanodop !: ???78 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xpicodop !: ???79 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xdiatdop !: ???80 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xnanofer !: ???81 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xpicofer !: ???82 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xdiatfer !: ???83 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xlimpic !: ???84 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xlimpics !: ???85 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xlimphys !: ???86 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xlimdias !: ???87 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xlimpfe !: ???88 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: fvnuptk 89 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: fvpuptk 90 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: fvduptk 91 92 ! Coefficient for iron limitation 75 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xpicono3 !: Limitation of NO3 uptake by picophyto 76 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xpiconh4 !: Limitation of NH4 uptake by picophyto 77 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xpicopo4 !: Limitation of PO4 uptake by picophyto 78 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xnanodop !: Limitation of DOP uptake by nanophyto 79 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xpicodop !: Limitation of DOP uptake by picophyto 80 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xdiatdop !: Limitation of DOP uptake by diatoms 81 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xnanofer !: Limitation of Fe uptake by nanophyto 82 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xpicofer !: Limitation of Fe uptake by picophyto 83 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xdiatfer !: Limitation of Fe uptake by diatoms 84 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xlimpic !: Limitation of picophyto PP by nutrients 85 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xlimpics !: Limitation of picophyto PP by nutrients 86 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xlimphys !: Limitation of nanophyto PP by nutrients 87 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xlimdias !: Limitation of diatoms PP by nutrients 88 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xlimpfe !: Limitation of picophyto PP by Fe 89 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: fvnuptk !: Maximum potential uptake rate of nanophyto 90 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: fvpuptk !: Maximum potential uptake rate of picophyto 91 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: fvduptk !: Maximum potential uptake rate of diatoms 92 93 ! Coefficient for iron limitation following Flynn and Hipkin (1999) 93 94 REAL(wp) :: xcoef1 = 0.00167 / 55.85 94 95 REAL(wp) :: xcoef2 = 1.21E-5 * 14. / 55.85 / 7.625 * 0.5 * 1.5 … … 110 111 !! approach. The quota model is derived from theoretical 111 112 !! models proposed by Pahlow and Oschlies (2009) and 112 !! Flynn (2001). Various adaptations from several publications113 !! by these authors have been also adopted.113 !! Flynn (2001). Various adaptations from several 114 !! publications by these authors have been also adopted. 114 115 !! 115 116 !! ** Method : Quota based approach. The quota model is derived from … … 145 146 DO ji = 1, jpi 146 147 ! 147 ! Tuning of the iron concentration to a minimum level that is set to the detection limit 148 !------------------------------------- 148 ! Tuning of the iron concentration to a minimum level that 149 ! is set to the detection limit 150 ! -------------------------------------------------------- 149 151 zno3 = trb(ji,jj,jk,jpno3) / 40.e-6 150 152 zferlim = MAX( 3e-11 * zno3 * zno3, 5e-12 ) … … 152 154 trb(ji,jj,jk,jpfer) = MAX( trb(ji,jj,jk,jpfer), zferlim ) 153 155 154 ! Computation of the mean relative size of each community155 ! ------------------------------------------------------- 156 ! Computation of the Chl/C ratio of each phytoplankton group 157 ! ---------------------------------------------------------- 156 158 z1_trnphy = 1. / ( trb(ji,jj,jk,jpphy) + rtrn ) 157 159 z1_trnpic = 1. / ( trb(ji,jj,jk,jppic) + rtrn ) … … 161 163 zdiatchl = trb(ji,jj,jk,jpdch) * z1_trndia 162 164 163 ! Computation of a variable Ks for iron on diatoms taking into account 164 ! that increasing biomass is made of generally bigger cells 165 !------------------------------------------------ 165 ! Computation of a variable Ks for the different phytoplankton 166 ! group as a function of their relative size. Allometry 167 ! from Edwards et al. (2012) 168 ! ------------------------------------------------------------ 169 170 ! diatoms 166 171 zsized = sized(ji,jj,jk)**0.81 167 172 zconcdfe = concdfer * zsized … … 170 175 zconc0dpo4 = concdpo4 * zsized 171 176 177 ! picophytoplankton 172 178 zsizep = sizep(ji,jj,jk)**0.81 173 179 zconcpfe = concpfer * zsizep … … 176 182 zconc0ppo4 = concppo4 * zsizep 177 183 184 ! nanophytoplankton 178 185 zsizen = sizen(ji,jj,jk)**0.81 179 186 zconcnfe = concnfer * zsizen … … 193 200 194 201 ! Computation of the optimal allocation parameters 195 ! Based on the different papers by Pahlow et al., and Smith et al. 196 ! ----------------------------------------------------------------- 202 ! Based on the different papers by Pahlow et al., and 203 ! Smith et al. 204 ! --------------------------------------------------- 205 206 ! Nanophytoplankton 197 207 znutlim = MAX( trb(ji,jj,jk,jpnh4) / zconc0nnh4, & 198 208 & trb(ji,jj,jk,jpno3) / zconc0n) … … 202 212 znutlim = biron(ji,jj,jk) / zconcnfe 203 213 fananof = MAX(0.01, MIN(0.99, 1. / ( SQRT(znutlim) + 1.) ) ) 214 215 ! Picophytoplankton 204 216 znutlim = MAX( trb(ji,jj,jk,jpnh4) / zconc0pnh4, & 205 217 & trb(ji,jj,jk,jpno3) / zconc0p) … … 209 221 znutlim = biron(ji,jj,jk) / zconcpfe 210 222 fapicof = MAX(0.01, MIN(0.99, 1. / ( SQRT(znutlim) + 1.) ) ) 223 224 ! Diatoms 211 225 znutlim = MAX( trb(ji,jj,jk,jpnh4) / zconc1dnh4, & 212 226 & trb(ji,jj,jk,jpno3) / zconc1d ) … … 216 230 znutlim = biron(ji,jj,jk) / zconcdfe 217 231 fadiatf = MAX(0.01, MIN(0.99, 1. / ( SQRT(znutlim) + 1.) ) ) 218 ! 219 ! Michaelis-Menten Limitation term for nutrients Small bacteria 220 ! ------------------------------------------------------------- 232 233 ! Michaelis-Menten Limitation term by nutrients of 234 ! heterotrophic bacteria 235 ! ------------------------------------------------- 221 236 zbactnh4 = trb(ji,jj,jk,jpnh4) / ( concbnh4 + trb(ji,jj,jk,jpnh4) ) 222 237 zbactno3 = trb(ji,jj,jk,jpno3) / ( concbno3 + trb(ji,jj,jk,jpno3) ) * (1. - zbactnh4) … … 226 241 zlim3 = biron(ji,jj,jk) / ( concbfe + biron(ji,jj,jk) ) 227 242 zlim4 = trb(ji,jj,jk,jpdoc) / ( xkdoc + trb(ji,jj,jk,jpdoc) ) 243 ! Xlimbac is used for DOC solubilization whereas xlimbacl 244 ! is used for all the other bacterial-dependent terms 245 ! ------------------------------------------------------- 228 246 xlimbacl(ji,jj,jk) = MIN( zlim1, zlim2, zlim3 ) 229 247 xlimbac (ji,jj,jk) = xlimbacl(ji,jj,jk) * zlim4 230 ! 231 ! Michaelis-Menten Limitation term for nutrients Small flagellates 232 ! ----------------------------------------------- 248 249 ! Michaelis-Menten Limitation term by nutrients: Nanophyto 250 ! -------------------------------------------------------- 251 ! 252 ! Limitation of N based nutrients uptake (NO3 and NH4) 233 253 zfalim = (1.-fanano) / fanano 234 254 xnanonh4(ji,jj,jk) = (1. - fanano) * trb(ji,jj,jk,jpnh4) / ( zfalim * zconc0nnh4 + trb(ji,jj,jk,jpnh4) ) … … 236 256 & * (1. - xnanonh4(ji,jj,jk)) 237 257 ! 258 ! Limitation of P based nutrients (PO4 and DOP) 238 259 zfalim = (1.-fananop) / fananop 239 260 xnanopo4(ji,jj,jk) = (1. - fananop) * trb(ji,jj,jk,jppo4) / ( trb(ji,jj,jk,jppo4) + zfalim * zconc0npo4 ) … … 242 263 xnanodop(ji,jj,jk) = 0. 243 264 ! 265 ! Limitation of Fe uptake 244 266 zfalim = (1.-fananof) / fananof 245 267 xnanofer(ji,jj,jk) = (1. - fananof) * biron(ji,jj,jk) / ( biron(ji,jj,jk) + zfalim * zconcnfe ) 246 268 ! 269 ! The minimum iron quota depends on the size of PSU, respiration 270 ! and the reduction of nitrate following the parameterization 271 ! proposed by Flynn and Hipkin (1999) 247 272 zratiof = trb(ji,jj,jk,jpnfe) * z1_trnphy 248 273 zqfemn = xcoef1 * znanochl + xcoef2 + xcoef3 * xnanono3(ji,jj,jk) … … 257 282 & / (xqnnmax(ji,jj,jk) - xqnnmin(ji,jj,jk) ) ) * xqnnmax(ji,jj,jk) & 258 283 & / (zration + rtrn) 259 ! 260 ! 284 ! The value of the optimal quota in the formulation below 285 ! has been found by solving a non linear equation 261 286 zlim1f = max(0., ( 1.086 - xqnnmin(ji,jj,jk) ) & 262 287 & / (xqnnmax(ji,jj,jk) - xqnnmin(ji,jj,jk) ) ) * xqnnmax(ji,jj,jk) 263 288 zlim3 = MAX( 0.,( zratiof - zqfemn ) / qfnopt ) 289 ! computation of the various limitation terms of nanophyto 290 ! growth and PP 264 291 xlimnfe (ji,jj,jk) = MIN( 1., zlim3 ) 265 292 xlimphy (ji,jj,jk) = MIN( 1., zlim1, zlim3 ) 266 293 xlimphys(ji,jj,jk) = MIN( 1., zlim1/( zlim1f + rtrn ), zlim3 ) 267 294 xlimnpn (ji,jj,jk) = MIN( 1., zlim1) 268 ! 269 ! Michaelis-Menten Limitation term for nutrients picophytoplankton 270 ! ---------------------------------------------------------------- 295 296 ! Michaelis-Menten Limitation term by nutrients: Picophyto 297 ! -------------------------------------------------------- 298 ! 299 ! Limitation of N based nutrients uptake (NO3 and NH4) 271 300 zfalim = (1.-fapico) / fapico 272 301 xpiconh4(ji,jj,jk) = (1. - fapico) * trb(ji,jj,jk,jpnh4) / ( zfalim * zconc0pnh4 + trb(ji,jj,jk,jpnh4) ) … … 274 303 & * (1. - xpiconh4(ji,jj,jk)) 275 304 ! 305 ! Limitation of P based nutrients uptake (PO4 and DOP) 276 306 zfalim = (1.-fapicop) / fapicop 277 307 xpicopo4(ji,jj,jk) = (1. - fapicop) * trb(ji,jj,jk,jppo4) / ( trb(ji,jj,jk,jppo4) + zfalim * zconc0ppo4 ) … … 283 313 xpicofer(ji,jj,jk) = (1. - fapicof) * biron(ji,jj,jk) / ( biron(ji,jj,jk) + zfalim * zconcpfe ) 284 314 ! 315 ! The minimum iron quota depends on the size of PSU, respiration 316 ! and the reduction of nitrate following the parameterization 317 ! proposed by Flynn and Hipkin (1999) 285 318 zratiof = trb(ji,jj,jk,jppfe) * z1_trnpic 286 319 zqfemp = xcoef1 * zpicochl + xcoef2 + xcoef3 * xpicono3(ji,jj,jk) … … 295 328 & / (xqnpmax(ji,jj,jk) - xqnpmin(ji,jj,jk) ) ) * xqnpmax(ji,jj,jk) & 296 329 & / (zration + rtrn) 297 ! 298 ! 330 ! The value of the optimal quota in the formulation below 331 ! has been found by solving a non linear equation 299 332 zlim1f = max(0., (1.367 - xqnpmin(ji,jj,jk) ) & 300 333 & / (xqnpmax(ji,jj,jk) - xqnpmin(ji,jj,jk) ) ) * xqnpmax(ji,jj,jk) 301 334 zlim3 = MAX( 0.,( zratiof - zqfemp ) / qfpopt ) 335 336 ! computation of the various limitation terms of picophyto 337 ! growth and PP 302 338 xlimpfe (ji,jj,jk) = MIN( 1., zlim3 ) 303 339 xlimpic (ji,jj,jk) = MIN( 1., zlim1, zlim3 ) 304 340 xlimnpp (ji,jj,jk) = MIN( 1., zlim1 ) 305 341 xlimpics(ji,jj,jk) = MIN( 1., zlim1/( zlim1f + rtrn ), zlim3 ) 306 ! 307 ! Michaelis-Menten Limitation term for nutrients Diatoms 308 ! ------------------------------------------------------ 342 343 ! Michaelis-Menten Limitation term by nutrients : Diatoms 344 ! ------------------------------------------------------- 345 ! 346 ! Limitation of N based nutrients uptake (NO3 and NH4) 309 347 zfalim = (1.-fadiat) / fadiat 310 348 xdiatnh4(ji,jj,jk) = (1. - fadiat) * trb(ji,jj,jk,jpnh4) / ( zfalim * zconc1dnh4 + trb(ji,jj,jk,jpnh4) ) … … 312 350 & * (1. - xdiatnh4(ji,jj,jk)) 313 351 ! 352 ! Limitation of P based nutrients uptake (PO4 and DOP) 314 353 zfalim = (1.-fadiatp) / fadiatp 315 354 xdiatpo4(ji,jj,jk) = (1. - fadiatp) * trb(ji,jj,jk,jppo4) / ( trb(ji,jj,jk,jppo4) + zfalim * zconc0dpo4 ) … … 318 357 xdiatdop(ji,jj,jk) = 0. 319 358 ! 359 ! Limitation of Fe uptake 320 360 zfalim = (1.-fadiatf) / fadiatf 321 361 xdiatfer(ji,jj,jk) = (1. - fadiatf) * biron(ji,jj,jk) / ( biron(ji,jj,jk) + zfalim * zconcdfe ) 322 362 ! 363 ! The minimum iron quota depends on the size of PSU, respiration 364 ! and the reduction of nitrate following the parameterization 365 ! proposed by Flynn and Hipkin (1999) 323 366 zratiof = trb(ji,jj,jk,jpdfe) * z1_trndia 324 367 zqfemd = xcoef1 * zdiatchl + xcoef2 + xcoef3 * xdiatno3(ji,jj,jk) … … 333 376 & / (xqndmax(ji,jj,jk) - xqndmin(ji,jj,jk) ) ) & 334 377 & * xqndmax(ji,jj,jk) / (zration + rtrn) 335 ! 336 ! 378 ! The value of the optimal quota in the formulation below 379 ! has been found by solving a non linear equation 337 380 zlim1f = max(0., (1.077 - xqndmin(ji,jj,jk) ) & 338 381 & / (xqndmax(ji,jj,jk) - xqndmin(ji,jj,jk) ) ) & … … 340 383 zlim3 = trb(ji,jj,jk,jpsil) / ( trb(ji,jj,jk,jpsil) + xksi(ji,jj) ) 341 384 zlim4 = MAX( 0., ( zratiof - zqfemd ) / qfdopt ) 385 ! computation of the various limitation terms of diatoms 386 ! growth and PP 342 387 xlimdfe(ji,jj,jk) = MIN( 1., zlim4 ) 343 388 xlimdia(ji,jj,jk) = MIN( 1., zlim1, zlim3, zlim4 ) … … 357 402 DO jj = 1, jpj 358 403 DO ji = 1, jpi 359 ! Size estimation of nanophytoplankton 360 ! ------------------------------------ 404 ! Size estimation of nanophytoplankton based on total biomass 405 ! Assumes that larger biomass implies addition of larger cells 406 ! ------------------------------------------------------------ 361 407 zcoef = trb(ji,jj,jk,jpphy) - MIN(xsizephy, trb(ji,jj,jk,jpphy) ) 362 408 sizena(ji,jj,jk) = 1. + ( xsizern -1.0 ) * zcoef / ( xsizephy + zcoef ) … … 373 419 374 420 375 ! Size estimation of picophytoplankton 376 ! ------------------------------------ 421 ! Size estimation of picophytoplankton based on total biomass 422 ! Assumes that larger biomass implies addition of larger cells 423 ! ------------------------------------------------------------ 377 424 zcoef = trb(ji,jj,jk,jppic) - MIN(xsizepic, trb(ji,jj,jk,jppic) ) 378 425 sizepa(ji,jj,jk) = 1. + ( xsizerp -1.0 ) * zcoef / ( xsizepic + zcoef ) … … 389 436 xqppmax(ji,jj,jk) = MIN( qppmax, xqppmax(ji,jj,jk) ) 390 437 391 ! Size estimation of diatoms 392 ! -------------------------- 438 ! Size estimation of diatoms based on total biomass 439 ! Assumes that larger biomass implies addition of larger cells 440 ! ------------------------------------------------------------ 393 441 zcoef = trb(ji,jj,jk,jpdia) - MIN(xsizedia, trb(ji,jj,jk,jpdia) ) 394 442 sized(ji,jj,jk) = 1. + ( xsizerd - 1.0 ) * zcoef / ( xsizedia + zcoef ) … … 412 460 413 461 ! Compute the fraction of nanophytoplankton that is made of calcifiers 462 ! This is a purely adhoc formulation described in Aumont et al. (2015) 463 ! This fraction depends on nutrient limitation, light, temperature 414 464 ! -------------------------------------------------------------------- 415 465 DO jk = 1, jpkm1 … … 441 491 & / ( oxymin + trb(ji,jj,jk,jpoxy) ) ) 442 492 nitrfac(ji,jj,jk) = MIN( 1., nitrfac(ji,jj,jk) ) 493 ! 494 ! redox factor computed from NO3 levels 495 nitrfac2(ji,jj,jk) = MAX( 0.e0, ( 1.E-6 - trb(ji,jj,jk,jpno3) ) & 496 & / ( 1.E-6 + trb(ji,jj,jk,jpno3) ) ) 497 nitrfac2(ji,jj,jk) = MIN( 1., nitrfac2(ji,jj,jk) ) 443 498 END DO 444 499 END DO
Note: See TracChangeset
for help on using the changeset viewer.