Changeset 12537 for NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zprod.F90
- 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/p4zprod.F90
r12496 r12537 2 2 !!====================================================================== 3 3 !! *** MODULE p4zprod *** 4 !! TOP : Growth Rate of the two phytoplankton s groups4 !! TOP : Growth Rate of the two phytoplankton groups of PISCES 5 5 !!====================================================================== 6 6 !! History : 1.0 ! 2004 (O. Aumont) Original code … … 24 24 PUBLIC p4z_prod ! called in p4zbio.F90 25 25 PUBLIC p4z_prod_init ! called in trcsms_pisces.F90 26 PUBLIC p4z_prod_alloc 26 PUBLIC p4z_prod_alloc ! called in trcini_pisces.F90 27 27 28 28 REAL(wp), PUBLIC :: pislopen !: … … 40 40 41 41 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: quotan !: proxy of N quota in Nanophyto 42 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: quotad !: proxy of N quota in diatom ee42 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: quotad !: proxy of N quota in diatoms 43 43 44 44 REAL(wp) :: r1_rday ! 1 / rday … … 57 57 !! *** ROUTINE p4z_prod *** 58 58 !! 59 !! ** Purpose : Compute thephytoplankton production depending on60 !! light, temperature and nutrient availability61 !! 62 !! ** Method : - ???59 !! ** Purpose : Computes phytoplankton production depending on 60 !! light, temperature and nutrient availability 61 !! Computes also the uptake of Iron and Si as well 62 !! as the chlorophyll content of the cells 63 63 !!--------------------------------------------------------------------- 64 64 INTEGER, INTENT(in) :: kt, knt ! … … 95 95 zmxl_fac(:,:,:) = 0._wp ; zmxl_chl(:,:,:) = 0._wp 96 96 97 ! Computation of the optimal production 97 ! Computation of the maximimum production 98 ! Parameters are taken from Bissinger et al. (2008) 98 99 zprmaxn(:,:,:) = 0.8_wp * r1_rday * tgfunc(:,:,:) 99 100 zprmaxd(:,:,:) = zprmaxn(:,:,:) … … 114 115 115 116 ! Impact of the day duration and light intermittency on phytoplankton growth 117 ! Intermittency is supposed to have a similar effect on production as 118 ! day length. The correcting factor is zmxl_fac. zmxl_chl is the fractional 119 ! day length and is used to compute the mean PAR during daytime. 120 ! Formulation for the impact of day length on PP is from Thompson (1999) 121 ! ------------------------------------------------------------------------- 116 122 DO jk = 1, jpkm1 117 123 DO jj = 1 ,jpj … … 132 138 zprdia(:,:,:) = zprmaxd(:,:,:) * zmxl_fac(:,:,:) 133 139 134 ! Maximum light intensity135 140 WHERE( zstrn(:,:) < 1.e0 ) zstrn(:,:) = 24. 136 141 137 142 ! Computation of the P-I slope for nanos and diatoms 143 ! The formulation proposed by Geider et al. (1997) has been modified 144 ! to exclude the effect of nutrient limitation and temperature in the PI 145 ! curve following Vichi et al. (2007) 146 ! ----------------------------------------------------------------------- 138 147 DO jk = 1, jpkm1 139 148 DO jj = 1, jpj … … 145 154 zconctemp2 = trb(ji,jj,jk,jpdia) - zconctemp 146 155 ! 156 ! The initial slope of the PI curve can be increased for nano 157 ! to account for photadaptation, for instance in the DCM 147 158 zpislopeadn(ji,jj,jk) = pislopen * ( 1.+ zadap * EXP( -0.25 * enano(ji,jj,jk) ) ) & 148 159 & * trb(ji,jj,jk,jpnch) /( trb(ji,jj,jk,jpphy) * 12. + rtrn) … … 179 190 180 191 ! Computation of a proxy of the N/C ratio 192 ! Steady state is assumed 181 193 ! --------------------------------------- 182 194 DO jk = 1, jpkm1 … … 199 211 200 212 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 201 ! Si/C of diatoms 202 ! ------------------------ 203 ! Si/C increases with iron stress and silicate availability 204 ! Si/C is arbitrariliy increased for very high Si concentrations 205 ! to mimic the very high ratios observed in the Southern Ocean (silpot2) 213 ! Si/C of diatoms 214 ! ------------------------ 215 ! Si/C increases with iron stress and silicate availability (zsilfac) 216 ! Si/C is arbitrariliy increased for very high Si concentrations 217 ! to mimic the very high ratios observed in the Southern Ocean (zsilfac2) 218 ! ----------------------------------------------------------------------- 206 219 zlim = trb(ji,jj,jk,jpsil) / ( trb(ji,jj,jk,jpsil) + xksi1 ) 207 220 zsilim = MIN( zprdia(ji,jj,jk) / ( zprmaxd(ji,jj,jk) + rtrn ), xlimsi(ji,jj,jk) ) … … 219 232 END DO 220 233 221 ! Mixed-layer effect on production222 ! Sea-ice effect on production223 234 ! Sea-ice effect on production 235 ! No production is assumed below sea ice 236 ! -------------------------------------- 224 237 DO jk = 1, jpkm1 225 238 DO jj = 1, jpj … … 231 244 END DO 232 245 233 ! Computation of the various production terms 246 ! Computation of the various production and nutrient uptake terms 247 ! --------------------------------------------------------------- 234 248 DO jk = 1, jpkm1 235 249 DO jj = 1, jpj 236 250 DO ji = 1, jpi 237 251 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 238 ! production term s fornanophyto. (C)252 ! production term of nanophyto. (C) 239 253 zprorcan(ji,jj,jk) = zprbio(ji,jj,jk) * xlimphy(ji,jj,jk) * trb(ji,jj,jk,jpphy) * rfact2 254 255 ! New production (uptake of NO3) 240 256 zpronewn(ji,jj,jk) = zprorcan(ji,jj,jk)* xnanono3(ji,jj,jk) / ( xnanono3(ji,jj,jk) + xnanonh4(ji,jj,jk) + rtrn ) 241 257 ! 242 258 zratio = trb(ji,jj,jk,jpnfe) / ( trb(ji,jj,jk,jpphy) * fecnm + rtrn ) 259 260 ! Iron uptake rates of nanophytoplankton. Upregulation 261 ! is parameterized at low iron concentrations. Typical 262 ! formulation used in quota formulations. Uptake is downregulated 263 ! when the quota is close to the maximum quota 243 264 zmax = MAX( 0., ( 1. - zratio ) / ABS( 1.05 - zratio ) ) 244 265 zprofen(ji,jj,jk) = fecnm * zprmaxn(ji,jj,jk) * ( 1.0 - fr_i(ji,jj) ) & … … 246 267 & * biron(ji,jj,jk) / ( biron(ji,jj,jk) + concnfe(ji,jj,jk) ) & 247 268 & * zmax * trb(ji,jj,jk,jpphy) * rfact2 248 ! production terms fordiatoms (C)269 ! production terms of diatoms (C) 249 270 zprorcad(ji,jj,jk) = zprdia(ji,jj,jk) * xlimdia(ji,jj,jk) * trb(ji,jj,jk,jpdia) * rfact2 271 272 ! New production (uptake of NO3) 250 273 zpronewd(ji,jj,jk) = zprorcad(ji,jj,jk) * xdiatno3(ji,jj,jk) / ( xdiatno3(ji,jj,jk) + xdiatnh4(ji,jj,jk) + rtrn ) 251 ! 274 275 ! Iron uptake rates of nanophytoplankton. Upregulation 276 ! is parameterized at low iron concentrations. Typical 277 ! formulation used in quota formulations. Uptake is downregulated 278 ! when the quota is close to the maximum quota 252 279 zratio = trb(ji,jj,jk,jpdfe) / ( trb(ji,jj,jk,jpdia) * fecdm + rtrn ) 253 280 zmax = MAX( 0., ( 1. - zratio ) / ABS( 1.05 - zratio ) ) … … 262 289 263 290 ! Computation of the chlorophyll production terms 291 ! The parameterization is taken from Geider et al. (1997) 292 ! ------------------------------------------------------- 264 293 DO jk = 1, jpkm1 265 294 DO jj = 1, jpj 266 295 DO ji = 1, jpi 267 296 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 268 ! production term sfor nanophyto. ( chlorophyll )297 ! production term for nanophyto. ( chlorophyll ) 269 298 znanotot = enanom(ji,jj,jk) / ( zmxl_chl(ji,jj,jk) + rtrn ) 270 299 zprod = rday * zprorcan(ji,jj,jk) * zprchln(ji,jj,jk) * xlimphy(ji,jj,jk) 271 300 zprochln = chlcmin * 12. * zprorcan (ji,jj,jk) 301 ! The maximum reachable Chl quota is modulated by temperature 302 ! following Geider (1987) 272 303 chlcnm_n = MIN ( chlcnm, ( chlcnm / (1. - 1.14 / 43.4 *tsn(ji,jj,jk,jp_tem))) * (1. - 1.14 / 43.4 * 20.)) 273 304 zprochln = zprochln + (chlcnm_n-chlcmin) * 12. * zprod / & 274 305 & ( zpislopeadn(ji,jj,jk) * znanotot +rtrn) 275 ! production terms fordiatoms ( chlorophyll )306 ! production terms of diatoms ( chlorophyll ) 276 307 zdiattot = ediatm(ji,jj,jk) / ( zmxl_chl(ji,jj,jk) + rtrn ) 277 308 zprod = rday * zprorcad(ji,jj,jk) * zprchld(ji,jj,jk) * xlimdia(ji,jj,jk) 278 309 zprochld = chlcmin * 12. * zprorcad(ji,jj,jk) 310 ! The maximum reachable Chl quota is modulated by temperature 311 ! following Geider (1987) 279 312 chlcdm_n = MIN ( chlcdm, ( chlcdm / (1. - 1.14 / 43.4 * tsn(ji,jj,jk,jp_tem))) * (1. - 1.14 / 43.4 * 20.)) 280 313 zprochld = zprochld + (chlcdm_n-chlcmin) * 12. * zprod / & … … 319 352 END DO 320 353 ! 354 ! Production and uptake of ligands by phytoplankton. This part is activated 355 ! when ln_ligand is set to .true. in the namelist. Ligand uptake is small 356 ! and based on the FeL model by Morel et al. (2008) and on the study of 357 ! Shaked and Lis (2012) 358 ! ------------------------------------------------------------------------- 321 359 IF( ln_ligand ) THEN 322 360 zpligprod1(:,:,:) = 0._wp ; zpligprod2(:,:,:) = 0._wp … … 328 366 zfeup = texcretn * zprofen(ji,jj,jk) + texcretd * zprofed(ji,jj,jk) 329 367 tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) + zdocprod * ldocp & 330 & - zfeup * plig(ji,jj,jk) / ( rtrn + plig(ji,jj,jk) + 2.E3 * (1.0 - plig(ji,jj,jk) ) ) 368 & - zfeup * plig(ji,jj,jk) / ( rtrn + plig(ji,jj,jk) + 2.E3 * (1.0 - plig(ji,jj,jk) ) ) * lthet 331 369 zpligprod1(ji,jj,jk) = zdocprod * ldocp 332 zpligprod2(ji,jj,jk) = zfeup * plig(ji,jj,jk) * lthet 370 zpligprod2(ji,jj,jk) = zfeup * plig(ji,jj,jk) / ( rtrn + plig(ji,jj,jk) & 371 & + 2.E3 * (1.0 - plig(ji,jj,jk) ) ) * lthet 333 372 ENDIF 334 373 END DO … … 373 412 ENDIF 374 413 IF( iom_use( "LPRODP" ) ) THEN 375 zw3d(:,:,:) = zpligprod1(:,:,:) * 1e9 * zfact * tmask(:,:,:) 414 zw3d(:,:,:) = zpligprod1(:,:,:) * 1e9 * zfact * tmask(:,:,:) ! Ligand production by phytoplankton 376 415 CALL iom_put( "LPRODP" , zw3d ) 377 416 ENDIF 378 417 IF( iom_use( "LDETP" ) ) THEN 379 zw3d(:,:,:) = zpligprod2(:,:,:) * 1e9 * zfact * tmask(:,:,:) 418 zw3d(:,:,:) = zpligprod2(:,:,:) * 1e9 * zfact * tmask(:,:,:) ! Uptake of ligands by phytoplankton 380 419 CALL iom_put( "LDETP" , zw3d ) 381 420 ENDIF … … 392 431 ENDIF 393 432 IF( iom_use( "LNlight" ) .OR. iom_use( "LDlight" ) ) THEN 394 zw3d(:,:,:) = zprbio (:,:,:) / (zprmaxn(:,:,:) + rtrn) * tmask(:,:,:) ! light limitation term 433 zw3d(:,:,:) = zprbio (:,:,:) / (zprmaxn(:,:,:) + rtrn) * tmask(:,:,:) ! light limitation term of nanophytoplankton 395 434 CALL iom_put( "LNlight" , zw3d ) 396 435 ! 397 zw3d(:,:,:) = zprdia (:,:,:) / (zprmaxd(:,:,:) + rtrn) * tmask(:,:,:) ! light limitation term 436 zw3d(:,:,:) = zprdia (:,:,:) / (zprmaxd(:,:,:) + rtrn) * tmask(:,:,:) ! light limitation term of diatoms 398 437 CALL iom_put( "LDlight" , zw3d ) 399 438 ENDIF … … 474 513 !! ** Purpose : Initialization of phytoplankton production parameters 475 514 !! 476 !! ** Method : Read the namp isprod namelist and check the parameters515 !! ** Method : Read the namp4zprod namelist and check the parameters 477 516 !! called at the first timestep (nittrc000) 478 517 !! 479 !! ** input : Namelist namp isprod518 !! ** input : Namelist namp4zprod 480 519 !!---------------------------------------------------------------------- 481 520 INTEGER :: ios ! Local integer … … 491 530 ENDIF 492 531 ! 493 REWIND( numnatp_ref ) ! Namelist namp isprod in reference namelist : Pisces phytoplankton production532 REWIND( numnatp_ref ) ! Namelist namp4zprod in reference namelist : Pisces phytoplankton production 494 533 READ ( numnatp_ref, namp4zprod, IOSTAT = ios, ERR = 901) 495 534 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namp4zprod in reference namelist' ) 496 REWIND( numnatp_cfg ) ! Namelist namp isprod in configuration namelist : Pisces phytoplankton production535 REWIND( numnatp_cfg ) ! Namelist namp4zprod in configuration namelist : Pisces phytoplankton production 497 536 READ ( numnatp_cfg, namp4zprod, IOSTAT = ios, ERR = 902 ) 498 537 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namp4zprod in configuration namelist' )
Note: See TracChangeset
for help on using the changeset viewer.