- Timestamp:
- 2015-05-22T18:22:18+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/CNRS/dev_r4826_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p5zprod.F90
r5266 r5288 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 8 !! 3.4 ! 2011-05 (O. Aumont, C. Ethe) New parameterization of light limitation 9 !! 3.6 ! 2015-05 (O. Aumont) PISCES quota 9 10 !!---------------------------------------------------------------------- 10 11 #if defined key_pisces_quota … … 40 41 REAL(wp), PUBLIC :: excret2 !: 41 42 REAL(wp), PUBLIC :: bresp !: 42 REAL(wp), PUBLIC :: chlcpm!:43 REAL(wp), PUBLIC :: chlcnm!:44 REAL(wp), PUBLIC :: chlcdm!:43 REAL(wp), PUBLIC :: thetanpm !: 44 REAL(wp), PUBLIC :: thetannm !: 45 REAL(wp), PUBLIC :: thetandm !: 45 46 REAL(wp), PUBLIC :: chlcmin !: 46 47 REAL(wp), PUBLIC :: grosip !: 48 REAL(wp), PUBLIC :: zlimmxln !: 49 REAL(wp), PUBLIC :: zlimmxlp !: 50 REAL(wp), PUBLIC :: zlimmxld !: 47 51 48 52 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: prmaxn !: optimal production = f(temperature) … … 84 88 REAL(wp) :: zlim, zsilfac2, zsiborn, zprod, zprontot, zproptot, zprodtot 85 89 REAL(wp) :: zmxltst, zmxlday, zprnutmax 86 REAL(wp) :: zpislopen, zpislopep, zpislope2n , zpsichl87 REAL(wp) :: zrum, zcodel, zargu, zval , thetannm, thetanpm, thetandm90 REAL(wp) :: zpislopen, zpislopep, zpislope2n 91 REAL(wp) :: zrum, zcodel, zargu, zval 88 92 REAL(wp) :: zrfact2 89 93 CHARACTER (len=25) :: charout … … 142 146 143 147 ! Computation of the optimal production 144 zpsichl = 0. 145 thetannm = 0.25 146 thetanpm = 0.25 147 thetandm = 0.35 148 149 prmaxn(:,:,:) = ( 0.8_wp * (1. + zpsino3 * qnpmax + zpsichl ) ) * r1_rday * tgfunc(:,:,:) 148 prmaxn(:,:,:) = ( 0.8_wp * (1. + zpsino3 * qnpmax ) ) * r1_rday * tgfunc(:,:,:) 150 149 prmaxp(:,:,:) = 0.6 / 0.8 * prmaxn(:,:,:) 151 prmaxd(:,:,:) = 0.8 / 0.8 *prmaxn(:,:,:)150 prmaxd(:,:,:) = prmaxn(:,:,:) 152 151 zprnut(:,:,:) = 0.8_wp * r1_rday * tgfunc(:,:,:) 153 152 … … 258 257 DO jj = 1, jpj 259 258 DO ji = 1, jpi 260 zmxltst = MAX( 0.e0, hmld(ji,jj) - heup (ji,jj) )259 zmxltst = MAX( 0.e0, hmld(ji,jj) - heup_01(ji,jj) ) 261 260 zmxlday = zmxltst * zmxltst * r1_rday 262 zmixnano(ji,jj) = 1. - zmxlday / ( 2.+ zmxlday )263 zmixpico(ji,jj) = 1. - zmxlday / ( 2.+ zmxlday )264 zmixdiat(ji,jj) = 1. - zmxlday / ( 4.+ zmxlday )261 zmixnano(ji,jj) = 1. - zmxlday / ( zlimmxln + zmxlday ) 262 zmixpico(ji,jj) = 1. - zmxlday / ( zlimmxlp + zmxlday ) 263 zmixdiat(ji,jj) = 1. - zmxlday / ( zlimmxld + zmxlday ) 265 264 END DO 266 265 END DO … … 290 289 zprorcan(ji,jj,jk) = zprbio(ji,jj,jk) * xlimphy(ji,jj,jk) * trn(ji,jj,jk,jpphy) * rfact2 291 290 ! 292 zrespn(ji,jj,jk) = zprorcan(ji,jj,jk) * zpsichl293 291 zration = trn(ji,jj,jk,jpnph) / ( trn(ji,jj,jk,jpphy) + rtrn ) 294 292 zratiop = trn(ji,jj,jk,jppph) / ( trn(ji,jj,jk,jpphy) + rtrn ) … … 312 310 zmax = MAX(0., MIN(1., (1. - zrat)/ (1.05 - zrat) * 1.05)) 313 311 zprofmax = zprnutmax * qfnmax * zmax 314 zprofen(ji,jj,jk) = zprofmax * xnanofer(ji,jj,jk) * ( 4. - 4.5* xlimnfe(ji,jj,jk) &312 zprofen(ji,jj,jk) = zprofmax * xnanofer(ji,jj,jk) * ( 4. - 3.6 * xlimnfe(ji,jj,jk) & 315 313 & / ( xlimnfe(ji,jj,jk) + 0.2 ) ) * (1. + 0.8 * xnanono3(ji,jj,jk) / ( rtrn & 316 314 & + xnanono3(ji,jj,jk) + xnanonh4(ji,jj,jk) ) * (1. - xnanofer(ji,jj,jk) ) ) … … 328 326 zprorcap(ji,jj,jk) = zprpic(ji,jj,jk) * xlimpic(ji,jj,jk) * trn(ji,jj,jk,jppic) * rfact2 329 327 ! 330 zrespp(ji,jj,jk) = zprorcap(ji,jj,jk) * zpsichl331 328 zration = trn(ji,jj,jk,jpnpi) / ( trn(ji,jj,jk,jppic) + rtrn ) 332 329 zratiop = trn(ji,jj,jk,jpppi) / ( trn(ji,jj,jk,jppic) + rtrn ) … … 350 347 zmax = MAX(0., MIN(1., (1. - zrat)/ (1.05 - zrat) * 1.05)) 351 348 zprofmax = zprnutmax * qfpmax * zmax 352 zprofep(ji,jj,jk) = zprofmax * xpicofer(ji,jj,jk) * ( 4. - 4.5* xlimpfe(ji,jj,jk) &349 zprofep(ji,jj,jk) = zprofmax * xpicofer(ji,jj,jk) * ( 4. - 3.6 * xlimpfe(ji,jj,jk) & 353 350 & / ( xlimpfe(ji,jj,jk) + 0.2 ) ) * (1. + 0.8 * xpicono3(ji,jj,jk) / ( rtrn & 354 351 & + xpicono3(ji,jj,jk) + xpiconh4(ji,jj,jk) ) * (1. - xpicofer(ji,jj,jk) ) ) … … 367 364 ! Computation of the respiration term according to pahlow 368 365 ! & oschlies (2013) 369 zrespd(ji,jj,jk) = zprorcad(ji,jj,jk) * zpsichl370 366 ! 371 367 zration = trn(ji,jj,jk,jpndi) / ( trn(ji,jj,jk,jpdia) + rtrn ) … … 390 386 zmax = MAX(0., MIN(1., (1. - zrat)/ (1.05 - zrat) * 1.05)) 391 387 zprofmax = zprnutmax * qfdmax * zmax 392 zprofed(ji,jj,jk) = zprofmax * xdiatfer(ji,jj,jk) * ( 4. - 4.5* xlimdfe(ji,jj,jk) &388 zprofed(ji,jj,jk) = zprofmax * xdiatfer(ji,jj,jk) * ( 4. - 3.6 * xlimdfe(ji,jj,jk) & 393 389 & / ( xlimdfe(ji,jj,jk) + 0.2 ) ) * (1. + 0.8 * xdiatno3(ji,jj,jk) / ( rtrn & 394 390 & + xdiatno3(ji,jj,jk) + xdiatnh4(ji,jj,jk) ) * (1. - xdiatfer(ji,jj,jk) ) ) … … 562 558 ! 563 559 NAMELIST/nampisprod/ pislope, pislopep, pislope2, xadap, bresp, excret, excretp, excret2, & 564 & chlcnm, chlcpm, chlcdm, chlcmin, grosip 560 & thetannm, thetanpm, thetandm, chlcmin, grosip, zlimmxln, & 561 & zlimmxlp, zlimmxld 565 562 566 563 INTEGER :: ios ! Local integer output status for namelist read … … 590 587 WRITE(numout,*) ' P-I slope for diatoms pislope2 =', pislope2 591 588 WRITE(numout,*) ' P-I slope for picophytoplankton pislopep =', pislopep 592 WRITE(numout,*) ' Minimum Chl/C in nanophytoplankton chlcnm =', chlcnm 593 WRITE(numout,*) ' Minimum Chl/C in picophytoplankton chlcpm =', chlcpm 594 WRITE(numout,*) ' Minimum Chl/C in diatoms chlcdm =', chlcdm 589 WRITE(numout,*) ' Minimum Chl/N in nanophytoplankton thetannm =', thetannm 590 WRITE(numout,*) ' Minimum Chl/N in picophytoplankton thetanpm =', thetanpm 591 WRITE(numout,*) ' Minimum Chl/N in diatoms thetandm =', thetandm 592 WRITE(numout,*) ' Critical time scale for mixing (nano) zlimmxln =', zlimmxln 593 WRITE(numout,*) ' Critical time scale for mixing (pico) zlimmxlp =', zlimmxlp 594 WRITE(numout,*) ' Critical time scale for mixing (diatoms) zlimmxld =', zlimmxld 595 595 ENDIF 596 596 !
Note: See TracChangeset
for help on using the changeset viewer.