- Timestamp:
- 2021-01-07T23:09:56+01:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p5zlim.F90
r13233 r14276 88 88 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: fvpuptk !: Maximum potential uptake rate of picophyto 89 89 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: fvduptk !: Maximum potential uptake rate of diatoms 90 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xqfuncfecp !: 91 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xlimnpn, xlimnpp, xlimnpd 90 92 91 93 ! Coefficient for iron limitation following Flynn and Hipkin (1999) … … 127 129 REAL(wp) :: zconc0p, zconc0pnh4, zconc0ppo4, zconcpfe, zconcnfe, zconcdfe 128 130 REAL(wp) :: fanano, fananop, fananof, fadiat, fadiatp, fadiatf 129 REAL(wp) :: fapico, fapicop, fapicof 131 REAL(wp) :: fapico, fapicop, fapicof, zlimpo4, zlimdop 130 132 REAL(wp) :: zrpho, zrass, zcoef, zfuptk, zratchl 131 133 REAL(wp) :: zfvn, zfvp, zfvf, zsizen, zsizep, zsized, znanochl, zpicochl, zdiatchl 132 REAL(wp) :: zqfemn, zqfemp, zqfemd, zbactno3, zbactnh4 133 REAL(wp) :: z lim1f, zsizetmp134 REAL(wp), DIMENSION(jpi,jpj,jpk) :: xlimnpn, xlimnpp, xlimnpd134 REAL(wp) :: zqfemn, zqfemp, zqfemd, zbactno3, zbactnh4, zbiron 135 REAL(wp) :: znutlimtot, zlimno3, zlimnh4, zlim1f, zsizetmp 136 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zrassn, zrassp, zrassd 135 137 !!--------------------------------------------------------------------- 136 138 ! … … 143 145 DO jj = 1, jpj 144 146 DO ji = 1, jpi 145 !146 ! Tuning of the iron concentration to a minimum level that147 ! is set to the detection limit148 ! --------------------------------------------------------149 zno3 = trb(ji,jj,jk,jpno3) / 40.e-6150 zferlim = MAX( 3e-11 * zno3 * zno3, 5e-12 )151 zferlim = MIN( zferlim, 7e-11 )152 trb(ji,jj,jk,jpfer) = MAX( trb(ji,jj,jk,jpfer), zferlim )153 154 147 ! Computation of the Chl/C ratio of each phytoplankton group 155 148 ! ---------------------------------------------------------- … … 190 183 ! From Talmy et al. (2014) and Maranon et al. (2013) 191 184 ! ------------------------------------------------------- 192 xqnnmin(ji,jj,jk) = qnnmin * sizen(ji,jj,jk)**(-0.3 )185 xqnnmin(ji,jj,jk) = qnnmin * sizen(ji,jj,jk)**(-0.36) 193 186 xqnnmax(ji,jj,jk) = qnnmax 194 xqndmin(ji,jj,jk) = qndmin * sized(ji,jj,jk)**(-0.3 )187 xqndmin(ji,jj,jk) = qndmin * sized(ji,jj,jk)**(-0.36) 195 188 xqndmax(ji,jj,jk) = qndmax 196 xqnpmin(ji,jj,jk) = qnpmin * sizep(ji,jj,jk)**(-0. 48)197 xqnpmax(ji,jj,jk) = qnpmax * sizep(ji,jj,jk)**(-0.21)189 xqnpmin(ji,jj,jk) = qnpmin * sizep(ji,jj,jk)**(-0.36) 190 xqnpmax(ji,jj,jk) = qnpmax 198 191 199 192 ! Computation of the optimal allocation parameters … … 201 194 ! Smith et al. 202 195 ! --------------------------------------------------- 203 196 zbiron = ( 75.0 * ( 1.0 - plig(ji,jj,jk) ) + plig(ji,jj,jk) ) * biron(ji,jj,jk) 204 197 ! Nanophytoplankton 205 198 znutlim = MAX( trb(ji,jj,jk,jpnh4) / zconc0nnh4, & … … 208 201 znutlim = trb(ji,jj,jk,jppo4) / zconc0npo4 209 202 fananop = MAX(0.01, MIN(0.99, 1. / ( SQRT(znutlim) + 1.) ) ) 210 znutlim = biron(ji,jj,jk)/ zconcnfe203 znutlim = zbiron / zconcnfe 211 204 fananof = MAX(0.01, MIN(0.99, 1. / ( SQRT(znutlim) + 1.) ) ) 212 205 … … 217 210 znutlim = trb(ji,jj,jk,jppo4) / zconc0ppo4 218 211 fapicop = MAX(0.01, MIN(0.99, 1. / ( SQRT(znutlim) + 1.) ) ) 219 znutlim = biron(ji,jj,jk)/ zconcpfe212 znutlim = zbiron / zconcpfe 220 213 fapicof = MAX(0.01, MIN(0.99, 1. / ( SQRT(znutlim) + 1.) ) ) 221 214 … … 226 219 znutlim = trb(ji,jj,jk,jppo4) / zconc0dpo4 227 220 fadiatp = MAX(0.01, MIN(0.99, 1. / ( SQRT(znutlim) + 1.) ) ) 228 znutlim = biron(ji,jj,jk)/ zconcdfe221 znutlim = zbiron / zconcdfe 229 222 fadiatf = MAX(0.01, MIN(0.99, 1. / ( SQRT(znutlim) + 1.) ) ) 230 223 … … 232 225 ! heterotrophic bacteria 233 226 ! ------------------------------------------------- 234 zbactnh4 = trb(ji,jj,jk,jpnh4) / ( concbnh4 + trb(ji,jj,jk,jpnh4) ) 235 zbactno3 = trb(ji,jj,jk,jpno3) / ( concbno3 + trb(ji,jj,jk,jpno3) ) * (1. - zbactnh4) 227 zlimnh4 = trb(ji,jj,jk,jpnh4) / ( concbno3 + trb(ji,jj,jk,jpnh4) ) 228 zlimno3 = trb(ji,jj,jk,jpno3) / ( concbno3 + trb(ji,jj,jk,jpno3) ) 229 znutlimtot = ( trb(ji,jj,jk,jpnh4) + trb(ji,jj,jk,jpno3) ) / ( concbno3 + trb(ji,jj,jk,jpnh4) + trb(ji,jj,jk,jpno3) ) 230 zbactnh4 = znutlimtot * 5.0 * zlimnh4 / ( zlimno3 + 5.0 * zlimnh4 + rtrn ) 231 zbactno3 = znutlimtot * zlimno3 / ( zlimno3 + 5.0 * zlimnh4 + rtrn ) 236 232 ! 237 233 zlim1 = zbactno3 + zbactnh4 … … 250 246 ! Limitation of N based nutrients uptake (NO3 and NH4) 251 247 zfalim = (1.-fanano) / fanano 252 xnanonh4(ji,jj,jk) = (1. - fanano) * trb(ji,jj,jk,jpnh4) / ( zfalim * zconc0nnh4 + trb(ji,jj,jk,jpnh4) ) 253 xnanono3(ji,jj,jk) = (1. - fanano) * trb(ji,jj,jk,jpno3) / ( zfalim * zconc0n + trb(ji,jj,jk,jpno3) ) & 254 & * (1. - xnanonh4(ji,jj,jk)) 248 zlimnh4 = trb(ji,jj,jk,jpnh4) / ( zconc0n + trb(ji,jj,jk,jpnh4) ) 249 zlimno3 = trb(ji,jj,jk,jpno3) / ( zconc0n + trb(ji,jj,jk,jpno3) ) 250 znutlimtot = (1. - fanano) * ( trb(ji,jj,jk,jpnh4) + trb(ji,jj,jk,jpno3) ) / ( zfalim * zconc0n + trb(ji,jj,jk,jpnh4) + trb(ji,jj,jk,jpno3) ) 251 xnanonh4(ji,jj,jk) = znutlimtot * 5.0 * zlimnh4 / ( zlimno3 + 5.0 * zlimnh4 + rtrn ) 252 xnanono3(ji,jj,jk) = znutlimtot * zlimno3 / ( zlimno3 + 5.0 * zlimnh4 + rtrn ) 255 253 ! 256 254 ! Limitation of P based nutrients (PO4 and DOP) 257 255 zfalim = (1.-fananop) / fananop 258 xnanopo4(ji,jj,jk) = (1. - fananop) * trb(ji,jj,jk,jppo4) / ( trb(ji,jj,jk,jppo4) + zfalim * zconc0npo4 ) 259 xnanodop(ji,jj,jk) = trb(ji,jj,jk,jpdop) / ( trb(ji,jj,jk,jpdop) + xkdoc ) & 260 & * ( 1.0 - xnanopo4(ji,jj,jk) ) 261 xnanodop(ji,jj,jk) = 0. 256 zlimpo4 = trb(ji,jj,jk,jppo4) / ( trb(ji,jj,jk,jppo4) + zconc0npo4 ) 257 zlimdop = trb(ji,jj,jk,jpdop) / ( trb(ji,jj,jk,jpdop) + zconc0npo4 ) 258 znutlimtot = (1. - fananop) * ( trb(ji,jj,jk,jppo4) + trb(ji,jj,jk,jpdop) ) / ( zfalim * zconc0npo4 + trb(ji,jj,jk,jppo4) + trb(ji,jj,jk,jpdop) ) 259 xnanopo4(ji,jj,jk) = znutlimtot * 100.0 * zlimpo4 / ( zlimdop + 100.0 * zlimpo4 + rtrn ) 260 xnanodop(ji,jj,jk) = znutlimtot * zlimdop / ( zlimdop + 100.0 * zlimpo4 + rtrn ) 262 261 ! 263 262 ! Limitation of Fe uptake 264 263 zfalim = (1.-fananof) / fananof 265 xnanofer(ji,jj,jk) = (1. - fananof) * biron(ji,jj,jk) / ( biron(ji,jj,jk)+ zfalim * zconcnfe )264 xnanofer(ji,jj,jk) = (1. - fananof) * zbiron / ( zbiron + zfalim * zconcnfe ) 266 265 ! 267 266 ! The minimum iron quota depends on the size of PSU, respiration … … 270 269 zratiof = trb(ji,jj,jk,jpnfe) * z1_trnphy 271 270 zqfemn = xcoef1 * znanochl + xcoef2 + xcoef3 * xnanono3(ji,jj,jk) 271 xqfuncfecn(ji,jj,jk) = zqfemn + qfnopt 272 272 ! 273 273 zration = trb(ji,jj,jk,jpnph) * z1_trnphy 274 274 zration = MIN(xqnnmax(ji,jj,jk), MAX( xqnnmin(ji,jj,jk), zration )) 275 zzpsiuptk = xqnnmin(ji,jj,jk) * rno3 / zpsiuptk**2 276 fvnuptk(ji,jj,jk) = 1. / zzpsiuptk * xqnnmin(ji,jj,jk) / (zration + rtrn) & 275 fvnuptk(ji,jj,jk) = 2.5 * zpsiuptk * xqnnmin(ji,jj,jk) / (zration + rtrn) & 277 276 & * MAX(0., (1. - zratchl * znanochl / 12. ) ) 278 277 ! … … 282 281 ! The value of the optimal quota in the formulation below 283 282 ! has been found by solving a non linear equation 284 zlim1f = max(0., ( 1. 086- xqnnmin(ji,jj,jk) ) &283 zlim1f = max(0., ( 1.13 - xqnnmin(ji,jj,jk) ) & 285 284 & / (xqnnmax(ji,jj,jk) - xqnnmin(ji,jj,jk) ) ) * xqnnmax(ji,jj,jk) 286 285 zlim3 = MAX( 0.,( zratiof - zqfemn ) / qfnopt ) … … 297 296 ! Limitation of N based nutrients uptake (NO3 and NH4) 298 297 zfalim = (1.-fapico) / fapico 299 xpiconh4(ji,jj,jk) = (1. - fapico) * trb(ji,jj,jk,jpnh4) / ( zfalim * zconc0pnh4 + trb(ji,jj,jk,jpnh4) ) 300 xpicono3(ji,jj,jk) = (1. - fapico) * trb(ji,jj,jk,jpno3) / ( zfalim * zconc0p + trb(ji,jj,jk,jpno3) ) & 301 & * (1. - xpiconh4(ji,jj,jk)) 298 zlimnh4 = trb(ji,jj,jk,jpnh4) / ( zconc0p + trb(ji,jj,jk,jpnh4) ) 299 zlimno3 = trb(ji,jj,jk,jpno3) / ( zconc0p + trb(ji,jj,jk,jpno3) ) 300 znutlimtot = (1. - fapico) * ( trb(ji,jj,jk,jpnh4) + trb(ji,jj,jk,jpno3) ) & 301 & / ( zfalim * zconc0p + trb(ji,jj,jk,jpnh4) + trb(ji,jj,jk,jpno3) ) 302 xpiconh4(ji,jj,jk) = znutlimtot * 5.0 * zlimnh4 / ( zlimno3 + 5.0 * zlimnh4 + rtrn ) 303 xpicono3(ji,jj,jk) = znutlimtot * zlimno3 / ( zlimno3 + 5.0 * zlimnh4 + rtrn ) 302 304 ! 303 305 ! Limitation of P based nutrients uptake (PO4 and DOP) 304 306 zfalim = (1.-fapicop) / fapicop 305 xpicopo4(ji,jj,jk) = (1. - fapicop) * trb(ji,jj,jk,jppo4) / ( trb(ji,jj,jk,jppo4) + zfalim * zconc0ppo4 ) 306 xpicodop(ji,jj,jk) = trb(ji,jj,jk,jpdop) / ( trb(ji,jj,jk,jpdop) + xkdoc ) & 307 & * ( 1.0 - xpicopo4(ji,jj,jk) ) 308 xpicodop(ji,jj,jk) = 0. 307 zlimpo4 = trb(ji,jj,jk,jppo4) / ( trb(ji,jj,jk,jppo4) + zconc0ppo4 ) 308 zlimdop = trb(ji,jj,jk,jpdop) / ( trb(ji,jj,jk,jpdop) + zconc0ppo4 ) 309 znutlimtot = (1. - fapicop) * ( trb(ji,jj,jk,jppo4) + trb(ji,jj,jk,jpdop) ) / ( zfalim * zconc0ppo4 + trb(ji,jj,jk,jppo4) + trb(ji,jj,jk,jpdop) ) 310 xpicopo4(ji,jj,jk) = znutlimtot * 100.0 * zlimpo4 / ( zlimdop + 100.0 * zlimpo4 + rtrn ) 311 xpicodop(ji,jj,jk) = znutlimtot * zlimdop / ( zlimdop + 100.0 * zlimpo4 + rtrn ) 309 312 ! 310 313 zfalim = (1.-fapicof) / fapicof 311 xpicofer(ji,jj,jk) = (1. - fapicof) * biron(ji,jj,jk) / ( biron(ji,jj,jk)+ zfalim * zconcpfe )314 xpicofer(ji,jj,jk) = (1. - fapicof) * zbiron / ( zbiron + zfalim * zconcpfe ) 312 315 ! 313 316 ! The minimum iron quota depends on the size of PSU, respiration 314 317 ! and the reduction of nitrate following the parameterization 315 318 ! proposed by Flynn and Hipkin (1999) 316 zratiof 319 zratiof = trb(ji,jj,jk,jppfe) * z1_trnpic 317 320 zqfemp = xcoef1 * zpicochl + xcoef2 + xcoef3 * xpicono3(ji,jj,jk) 321 xqfuncfecp(ji,jj,jk) = zqfemp + qfpopt 318 322 ! 319 323 zration = trb(ji,jj,jk,jpnpi) * z1_trnpic 320 324 zration = MIN(xqnpmax(ji,jj,jk), MAX( xqnpmin(ji,jj,jk), zration )) 321 zzpsiuptk = xqnpmin(ji,jj,jk) * rno3 / zpsiuptk**2 322 fvpuptk(ji,jj,jk) = 1. / zzpsiuptk * xqnpmin(ji,jj,jk) / (zration + rtrn) & 325 fvpuptk(ji,jj,jk) = 2.5 * zpsiuptk * xqnpmin(ji,jj,jk) / (zration + rtrn) & 323 326 & * MAX(0., (1. - zratchl * zpicochl / 12. ) ) 324 327 ! … … 328 331 ! The value of the optimal quota in the formulation below 329 332 ! has been found by solving a non linear equation 330 zlim1f = max(0., (1. 367- xqnpmin(ji,jj,jk) ) &333 zlim1f = max(0., (1.29 - xqnpmin(ji,jj,jk) ) & 331 334 & / (xqnpmax(ji,jj,jk) - xqnpmin(ji,jj,jk) ) ) * xqnpmax(ji,jj,jk) 332 335 zlim3 = MAX( 0.,( zratiof - zqfemp ) / qfpopt ) … … 344 347 ! Limitation of N based nutrients uptake (NO3 and NH4) 345 348 zfalim = (1.-fadiat) / fadiat 346 xdiatnh4(ji,jj,jk) = (1. - fadiat) * trb(ji,jj,jk,jpnh4) / ( zfalim * zconc1dnh4 + trb(ji,jj,jk,jpnh4) ) 347 xdiatno3(ji,jj,jk) = (1. - fadiat) * trb(ji,jj,jk,jpno3) / ( zfalim * zconc1d + trb(ji,jj,jk,jpno3) ) & 348 & * (1. - xdiatnh4(ji,jj,jk)) 349 zlimnh4 = trb(ji,jj,jk,jpnh4) / ( zconc1d + trb(ji,jj,jk,jpnh4) ) 350 zlimno3 = trb(ji,jj,jk,jpno3) / ( zconc1d + trb(ji,jj,jk,jpno3) ) 351 znutlimtot = (1.0 - fadiat) * ( trb(ji,jj,jk,jpnh4) + trb(ji,jj,jk,jpno3) ) & 352 & / ( zfalim * zconc1d + trb(ji,jj,jk,jpnh4) + trb(ji,jj,jk,jpno3) ) 353 xdiatnh4(ji,jj,jk) = znutlimtot * 5.0 * zlimnh4 / ( zlimno3 + 5.0 * zlimnh4 + rtrn ) 354 xdiatno3(ji,jj,jk) = znutlimtot * zlimno3 / ( zlimno3 + 5.0 * zlimnh4 + rtrn ) 349 355 ! 350 356 ! Limitation of P based nutrients uptake (PO4 and DOP) 351 357 zfalim = (1.-fadiatp) / fadiatp 352 xdiatpo4(ji,jj,jk) = (1. - fadiatp) * trb(ji,jj,jk,jppo4) / ( trb(ji,jj,jk,jppo4) + zfalim * zconc0dpo4 ) 353 xdiatdop(ji,jj,jk) = trb(ji,jj,jk,jpdop) / ( trb(ji,jj,jk,jpdop) + xkdoc ) & 354 & * ( 1.0 - xdiatpo4(ji,jj,jk) ) 355 xdiatdop(ji,jj,jk) = 0. 358 zlimpo4 = trb(ji,jj,jk,jppo4) / ( trb(ji,jj,jk,jppo4) + zconc0dpo4 ) 359 zlimdop = trb(ji,jj,jk,jpdop) / ( trb(ji,jj,jk,jpdop) + zconc0dpo4 ) 360 znutlimtot = (1. - fadiatp) * ( trb(ji,jj,jk,jppo4) + trb(ji,jj,jk,jpdop) ) / ( zfalim * zconc0dpo4 + trb(ji,jj,jk,jppo4) + trb(ji,jj,jk,jpdop) ) 361 xdiatpo4(ji,jj,jk) = znutlimtot * 100.0 * zlimpo4 / ( zlimdop + 100.0 * zlimpo4 + rtrn ) 362 xdiatdop(ji,jj,jk) = znutlimtot * zlimdop / ( zlimdop + 100.0 * zlimpo4 + rtrn ) 356 363 ! 357 364 ! Limitation of Fe uptake 358 365 zfalim = (1.-fadiatf) / fadiatf 359 xdiatfer(ji,jj,jk) = (1. - fadiatf) * biron(ji,jj,jk) / ( biron(ji,jj,jk)+ zfalim * zconcdfe )366 xdiatfer(ji,jj,jk) = (1. - fadiatf) * zbiron / ( zbiron + zfalim * zconcdfe ) 360 367 ! 361 368 ! The minimum iron quota depends on the size of PSU, respiration … … 364 371 zratiof = trb(ji,jj,jk,jpdfe) * z1_trndia 365 372 zqfemd = xcoef1 * zdiatchl + xcoef2 + xcoef3 * xdiatno3(ji,jj,jk) 373 xqfuncfecd(ji,jj,jk) = zqfemd + qfdopt 366 374 ! 367 375 zration = trb(ji,jj,jk,jpndi) * z1_trndia 368 376 zration = MIN(xqndmax(ji,jj,jk), MAX( xqndmin(ji,jj,jk), zration )) 369 zzpsiuptk = xqndmin(ji,jj,jk) * rno3 / zpsiuptk**2 370 fvduptk(ji,jj,jk) = 1. / zzpsiuptk * xqndmin(ji,jj,jk) / (zration + rtrn) & 377 fvduptk(ji,jj,jk) = 2.5 * zpsiuptk * xqndmin(ji,jj,jk) / (zration + rtrn) & 371 378 & * MAX(0., (1. - zratchl * zdiatchl / 12. ) ) 372 379 ! … … 376 383 ! The value of the optimal quota in the formulation below 377 384 ! has been found by solving a non linear equation 378 zlim1f = max(0., (1.077- xqndmin(ji,jj,jk) ) &385 65 zlim1f = max(0., (1.13 - xqndmin(ji,jj,jk) ) & 379 386 & / (xqndmax(ji,jj,jk) - xqndmin(ji,jj,jk) ) ) & 380 387 & * xqndmax(ji,jj,jk) … … 408 415 ! ------------------------------ 409 416 zfuptk = 0.2 + 0.12 / ( 3.0 * sizen(ji,jj,jk) + rtrn ) 410 zrpho = 1.54 * trb(ji,jj,jk,jpnch) / ( trb(ji,jj,jk,jpnph) * rno3 * 14. + rtrn ) 417 ! Computed from Inomura et al. (2020) using Pavlova Lutheri 418 zrpho = 11.55 * trb(ji,jj,jk,jpnch) / ( trb(ji,jj,jk,jpphy) * 12. + rtrn ) 411 419 zrass = MAX(0.62/4., ( 1. - zrpho - zfuptk ) * xlimnpn(ji,jj,jk) ) 412 xqpnmin(ji,jj,jk) = ( 0.0 + 0.0078 + 0.62/4. * 0.0783 * xqnnmin(ji,jj,jk) ) * 16.413 xqpnm ax(ji,jj,jk) = ( zrpho * 0.0128 + zrass* 0.0783 ) * 16.414 xqpnmax(ji,jj,jk) = xqpnmax(ji,jj,jk) * trb(ji,jj,jk,jpnph) / ( trb(ji,jj,jk,jpphy) + rtrn ) &415 &+ (0.033 + 0.0078 ) * 16.420 zrassn(ji,jj,jk) = zrass 421 xqpnmin(ji,jj,jk) = ( 0.0 + 0.0078 + 0.62/4. * 0.0783 ) * 16. 422 xqpnmax(ji,jj,jk) = ( zrpho * 0.0089 + zrass * 0.0783 ) * 16. 423 xqpnmax(ji,jj,jk) = xqpnmax(ji,jj,jk) + (0.033 + 0.0078 ) * 16. 416 424 xqpnmax(ji,jj,jk) = MIN( qpnmax, xqpnmax(ji,jj,jk) ) 417 418 425 419 426 ! Size estimation of picophytoplankton based on total biomass … … 425 432 ! N/P ratio of picophytoplankton 426 433 ! ------------------------------ 427 zfuptk = 0.2 + 0.12 / ( 0.5 * sizep(ji,jj,jk) + rtrn ) 428 zrpho = 1.54 * trb(ji,jj,jk,jppch) / ( trb(ji,jj,jk,jpnpi) * rno3 * 14. + rtrn ) 434 zfuptk = 0.2 + 0.12 / ( 0.8 * sizep(ji,jj,jk) + rtrn ) 435 ! Computed from Inomura et al. (2020) using a synechococcus 436 zrpho = 13.4 * trb(ji,jj,jk,jppch) / ( trb(ji,jj,jk,jppic) * 12. + rtrn ) 429 437 zrass = MAX(0.4/4., ( 1. - zrpho - zfuptk ) * xlimnpp(ji,jj,jk) ) 430 xqppmin(ji,jj,jk) = ( (0.0 + 0.0078 ) + 0.4/4. * 0.0517 * xqnpmin(ji,jj,jk) ) * 16.431 xqppm ax(ji,jj,jk) = ( zrpho * 0.0128 + zrass* 0.0517 ) * 16.432 xqppmax(ji,jj,jk) = xqppmax(ji,jj,jk) * trb(ji,jj,jk,jpnpi) / ( trb(ji,jj,jk,jppic) + rtrn ) &433 &+ (0.033 + 0.0078 ) * 16438 zrassp(ji,jj,jk) = zrass 439 xqppmin(ji,jj,jk) = ( (0.0 + 0.0078 ) + 0.4/4. * 0.0517 ) * 16. 440 xqppmax(ji,jj,jk) = ( zrpho * 0.0076 + zrass * 0.0517 ) * 16. 441 xqppmax(ji,jj,jk) = xqppmax(ji,jj,jk) + (0.033 + 0.0078 ) * 16 434 442 xqppmax(ji,jj,jk) = MIN( qppmax, xqppmax(ji,jj,jk) ) 435 443 … … 443 451 ! -------------------- 444 452 zfuptk = 0.2 + 0.12 / ( 5.0 * sized(ji,jj,jk) + rtrn ) 445 zrpho = 1.54 * trb(ji,jj,jk,jpdch) / ( trb(ji,jj,jk,jpndi) * rno3 * 14. + rtrn ) 453 ! Computed from Inomura et al. (2020) using a synechococcus 454 zrpho = 8.08 * trb(ji,jj,jk,jpdch) / ( trb(ji,jj,jk,jpndi) * 12. + rtrn ) 446 455 zrass = MAX(0.66/4., ( 1. - zrpho - zfuptk ) * xlimnpd(ji,jj,jk) ) 447 448 xqpdmin(ji,jj,jk) = ( ( 0.0 + 0.0078 ) + 0.66/4. * 0.0783 * xqndmin(ji,jj,jk) ) * 16. 449 xqpdmax(ji,jj,jk) = ( zrpho * 0.0128 + zrass * 0.0783 ) * 16. 450 xqpdmax(ji,jj,jk) = xqpdmax(ji,jj,jk) * trb(ji,jj,jk,jpndi) / ( trb(ji,jj,jk,jpdia) + rtrn ) & 451 & + ( 0.0078 + 0.033 ) * 16. 456 zrassd(ji,jj,jk)=zrass 457 xqpdmin(ji,jj,jk) = ( ( 0.0 + 0.0078 ) + 0.66/4. * 0.0783 ) * 16. 458 xqpdmax(ji,jj,jk) = ( zrpho * 0.0135 + zrass * 0.0783 ) * 16. 459 xqpdmax(ji,jj,jk) = xqpdmax(ji,jj,jk) + ( 0.0078 + 0.033 ) * 16. 452 460 xqpdmax(ji,jj,jk) = MIN(qpdmax, xqpdmax(ji,jj,jk) ) 453 461 … … 467 475 & / ( trb(ji,jj,jk,jpnh4) + concnnh4 ) ) 468 476 zlim2 = trb(ji,jj,jk,jppo4) / ( trb(ji,jj,jk,jppo4) + concnpo4 ) 469 zlim3 = trb(ji,jj,jk,jpfer) / ( trb(ji,jj,jk,jpfer) + 5.E-11 )470 ztem1 = MAX( 0., tsn(ji,jj,jk,jp_tem) )477 zlim3 = trb(ji,jj,jk,jpfer) / ( trb(ji,jj,jk,jpfer) + 6.E-11 ) 478 ztem1 = MAX( 0., tsn(ji,jj,jk,jp_tem) + 1.8 ) 471 479 ztem2 = tsn(ji,jj,jk,jp_tem) - 10. 472 zetot1 = MAX( 0., etot (ji,jj,jk) - 1.) / ( 4. + etot(ji,jj,jk) ) * 20. / ( 20. + etot(ji,jj,jk) )473 474 xfracal(ji,jj,jk) = caco3r * MIN( zlim1, zlim2, zlim3 )&475 & * ztem1 / ( 1.+ ztem1 ) * MAX( 1., trb(ji,jj,jk,jpphy)*1E6 ) &480 zetot1 = MAX( 0., etot_ndcy(ji,jj,jk) - 1.) / ( 4. + etot_ndcy(ji,jj,jk) ) * 30. / ( 30. + etot_ndcy(ji,jj,jk) ) 481 482 xfracal(ji,jj,jk) = caco3r * xlimphy(ji,jj,jk) & 483 & * ztem1 / ( 0.1 + ztem1 ) * MAX( 1., trb(ji,jj,jk,jpphy)*1E6 ) & 476 484 & * ( 1. + EXP(-ztem2 * ztem2 / 25. ) ) & 477 485 & * zetot1 * MIN( 1., 50. / ( hmld(ji,jj) + rtrn ) ) … … 508 516 IF( iom_use( "SIZEP" ) ) CALL iom_put( "SIZEP" , sizep(:,:,:) * tmask(:,:,:) ) ! Iron limitation term 509 517 IF( iom_use( "SIZED" ) ) CALL iom_put( "SIZED" , sized(:,:,:) * tmask(:,:,:) ) ! Iron limitation term 518 IF( iom_use( "RASSN" ) ) CALL iom_put( "RASSN" , zrassn(:,:,:) * tmask(:,:,:) ) ! Iron limitation term 519 IF( iom_use( "RASSP" ) ) CALL iom_put( "RASSP" , zrassp(:,:,:) * tmask(:,:,:) ) ! Iron limitation term 520 IF( iom_use( "RASSD" ) ) CALL iom_put( "RASSD" , zrassd(:,:,:) * tmask(:,:,:) ) ! Iron limitation term 510 521 ENDIF 511 522 ! … … 640 651 & fvnuptk (jpi,jpj,jpk), fvduptk (jpi,jpj,jpk), & 641 652 & xlimphys(jpi,jpj,jpk), xlimdias(jpi,jpj,jpk), & 642 & xlimpics(jpi,jpj,jpk), & 653 & xlimnpp (jpi,jpj,jpk), xlimnpn (jpi,jpj,jpk), & 654 & xlimnpd (jpi,jpj,jpk), & 655 & xlimpics(jpi,jpj,jpk), xqfuncfecp(jpi,jpj,jpk), & 643 656 & fvpuptk (jpi,jpj,jpk), xlimpic (jpi,jpj,jpk), STAT=ierr(1) ) 644 657 !
Note: See TracChangeset
for help on using the changeset viewer.