Changeset 13233 for NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zprod.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/p4zprod.F90
r13200 r13233 26 26 PUBLIC p4z_prod_alloc ! called in trcini_pisces.F90 27 27 28 REAL(wp), PUBLIC :: pislopen !: 29 REAL(wp), PUBLIC :: pisloped !: 30 REAL(wp), PUBLIC :: xadap !: 31 REAL(wp), PUBLIC :: excretn !: 32 REAL(wp), PUBLIC :: excretd !: 33 REAL(wp), PUBLIC :: bresp !: 34 REAL(wp), PUBLIC :: chlcnm !: 35 REAL(wp), PUBLIC :: chlcdm !: 36 REAL(wp), PUBLIC :: chlcmin !: 37 REAL(wp), PUBLIC :: fecnm !: 38 REAL(wp), PUBLIC :: fecdm !: 39 REAL(wp), PUBLIC :: grosip !: 28 REAL(wp), PUBLIC :: pislopen !: P-I slope of nanophytoplankton 29 REAL(wp), PUBLIC :: pisloped !: P-I slope of diatoms 30 REAL(wp), PUBLIC :: xadap !: Adaptation factor to low light 31 REAL(wp), PUBLIC :: excretn !: Excretion ratio of nanophyto 32 REAL(wp), PUBLIC :: excretd !: Excretion ratio of diatoms 33 REAL(wp), PUBLIC :: bresp !: Basal respiration rate 34 REAL(wp), PUBLIC :: chlcnm !: Maximum Chl/C ratio of nano 35 REAL(wp), PUBLIC :: chlcdm !: Maximum Chl/C ratio of diatoms 36 REAL(wp), PUBLIC :: chlcmin !: Minimum Chl/C ratio of phytoplankton 37 REAL(wp), PUBLIC :: fecnm !: Maximum Fe/C ratio of nano 38 REAL(wp), PUBLIC :: fecdm !: Maximum Fe/C ratio of diatoms 39 REAL(wp), PUBLIC :: grosip !: Mean Si/C ratio of diatoms 40 40 41 41 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: quotan !: proxy of N quota in Nanophyto … … 61 61 !! Computes also the uptake of Iron and Si as well 62 62 !! as the chlorophyll content of the cells 63 !! PISCES relies on a mixed Monod-Quota formalism 63 64 !!--------------------------------------------------------------------- 64 65 INTEGER, INTENT(in) :: kt, knt ! … … 94 95 zmxl_fac(:,:,:) = 0._wp ; zmxl_chl(:,:,:) = 0._wp 95 96 96 ! Computation of the maximimum production 97 ! Computation of the maximimum production. Based on a Q10 description 98 ! of the thermal dependency 97 99 ! Parameters are taken from Bissinger et al. (2008) 98 100 zprmaxn(:,:,:) = 0.8_wp * r1_rday * tgfunc(:,:,:) … … 100 102 101 103 ! compute the day length depending on latitude and the day 104 ! Astronomical parameterization taken from HAMOCC3 102 105 zrum = REAL( nday_year - 80, wp ) / REAL( nyear_len(1), wp ) 103 106 zcodel = ASIN( SIN( zrum * rpi * 2._wp ) * SIN( rad * 23.5_wp ) ) … … 115 118 ! Impact of the day duration and light intermittency on phytoplankton growth 116 119 ! Intermittency is supposed to have a similar effect on production as 117 ! day length. The correcting factor is zmxl_fac. zmxl_chl is the fractional 118 ! day length and is used to compute the mean PAR during daytime. 119 ! Formulation for the impact of day length on PP is from Thompson (1999) 120 ! day length (Shatwell et al., 2012). The correcting factor is zmxl_fac. 121 ! zmxl_chl is the fractional day length and is used to compute the mean 122 ! PAR during daytime. The effect of mixing is computed using the 123 ! absolute light level definition of the euphotic zone 120 124 ! ------------------------------------------------------------------------- 121 125 DO jk = 1, jpkm1 … … 137 141 zprdia(:,:,:) = zprmaxd(:,:,:) * zmxl_fac(:,:,:) 138 142 139 WHERE( zstrn(:,:) < 1.e0 ) zstrn(:,:) = 24.140 141 143 ! Computation of the P-I slope for nanos and diatoms 142 144 ! The formulation proposed by Geider et al. (1997) has been modified … … 155 157 ! The initial slope of the PI curve can be increased for nano 156 158 ! to account for photadaptation, for instance in the DCM 159 ! This parameterization is adhoc and should be either 160 ! improved or removed in future versions of the model 161 162 ! Nanophytoplankton 157 163 zpislopeadn(ji,jj,jk) = pislopen * ( 1.+ zadap * EXP( -0.25 * enano(ji,jj,jk) ) ) & 158 164 & * trb(ji,jj,jk,jpnch) /( trb(ji,jj,jk,jpphy) * 12. + rtrn) 159 ! 165 166 ! Diatoms 160 167 zpislopeadd(ji,jj,jk) = (pislopen * zconctemp2 + pisloped * zconctemp) / ( trb(ji,jj,jk,jpdia) + rtrn ) & 161 168 & * trb(ji,jj,jk,jpdch) /( trb(ji,jj,jk,jpdia) * 12. + rtrn) … … 170 177 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 171 178 ! Computation of production function for Carbon 172 ! --------------------------------------------- 179 ! Actual light levels are used here 180 ! ---------------------------------------------- 173 181 zpislopen = zpislopeadn(ji,jj,jk) / ( ( r1_rday + bresp * r1_rday ) & 174 182 & * zmxl_fac(ji,jj,jk) * rday + rtrn) … … 177 185 zprbio(ji,jj,jk) = zprbio(ji,jj,jk) * ( 1.- EXP( -zpislopen * enano(ji,jj,jk) ) ) 178 186 zprdia(ji,jj,jk) = zprdia(ji,jj,jk) * ( 1.- EXP( -zpisloped * ediat(ji,jj,jk) ) ) 187 179 188 ! Computation of production function for Chlorophyll 180 !-------------------------------------------------- 189 ! Mean light level in the mixed layer (when appropriate) 190 ! is used here (acclimation is in general slower than 191 ! the characteristic time scales of vertical mixing) 192 ! ------------------------------------------------------ 181 193 zpislopen = zpislopeadn(ji,jj,jk) / ( zprmaxn(ji,jj,jk) * zmxl_chl(ji,jj,jk) * rday + rtrn ) 182 194 zpisloped = zpislopeadd(ji,jj,jk) / ( zprmaxd(ji,jj,jk) * zmxl_chl(ji,jj,jk) * rday + rtrn ) … … 188 200 END DO 189 201 190 ! Computation of a proxy of the N/C ratio191 ! Steady state is assumed192 ! --------------------------------------- 202 ! Computation of a proxy of the N/C quota from nutrient limitation 203 ! and light limitation. Steady state is assumed to allow the computation 204 ! ---------------------------------------------------------------------- 193 205 DO jk = 1, jpkm1 194 206 DO jj = 1, jpj … … 210 222 211 223 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 224 212 225 ! Si/C of diatoms 213 226 ! ------------------------ … … 215 228 ! Si/C is arbitrariliy increased for very high Si concentrations 216 229 ! to mimic the very high ratios observed in the Southern Ocean (zsilfac2) 230 ! A parameterization derived from Flynn (2003) is used for the control 231 ! when Si is not limiting which is similar to the parameterisation 232 ! proposed by Gurney and Davidson (1999). 217 233 ! ----------------------------------------------------------------------- 218 234 zlim = trb(ji,jj,jk,jpsil) / ( trb(ji,jj,jk,jpsil) + xksi1 ) … … 271 287 sizena(ji,jj,jk) = min(xsizern, max( sizena(ji,jj,jk), zsizetmp ) ) 272 288 273 ! Iron uptake rates of nanophytoplankton. Upregulation274 ! is parameterized at low iron concentrations. Typical275 ! formulation used in quota formulations. Uptake is downregulated276 ! when the quota is close to the maximum quota289 ! Iron uptake rates of nanophytoplankton. Upregulation is 290 ! not parameterized at low iron concentrations as observations 291 ! do not suggest it for accimated cells. Uptake is 292 ! downregulated when the quota is close to the maximum quota 277 293 zratio = 1.0 - MIN(1.0,trb(ji,jj,jk,jpnfe) / ( trb(ji,jj,jk,jpphy) * fecnm + rtrn ) ) 278 294 zmax = MAX( 0., MIN( 1.0, zratio**2/ (0.05**2+zratio**2) ) ) … … 281 297 & + xnanonh4(ji,jj,jk) ) * (1. - xnanofer(ji,jj,jk) ) ) & 282 298 & * xnanofer(ji,jj,jk) * zmax * trb(ji,jj,jk,jpphy) * rfact2 283 ! 299 ! production terms of diatoms (C) 284 300 zprorcad(ji,jj,jk) = zprdia(ji,jj,jk) * xlimdia(ji,jj,jk) * trb(ji,jj,jk,jpdia) * rfact2 285 301 … … 297 313 sizeda(ji,jj,jk) = min(xsizerd, max( sizeda(ji,jj,jk), zsizetmp ) ) 298 314 299 ! Iron uptake rates of nanophytoplankton. Upregulation300 ! is parameterized at low iron concentrations. Typical301 ! formulation used in quota formulations. Uptake is downregulated302 ! when the quota is close to the maximum quota315 ! Iron uptake rates of diatoms. Upregulation is 316 ! not parameterized at low iron concentrations as observations 317 ! do not suggest it for accimated cells. Uptake is 318 ! downregulated when the quota is close to the maximum quota 303 319 zratio = 1.0 - MIN(1.0, trb(ji,jj,jk,jpdfe) / ( trb(ji,jj,jk,jpdia) * fecdm + rtrn ) ) 304 320 zmax = MAX( 0., MIN( 1.0, zratio**2/ (0.05**2+zratio**2) ) ) … … 323 339 zprod = rday * zprorcan(ji,jj,jk) * zprchln(ji,jj,jk) * xlimphy(ji,jj,jk) 324 340 zprochln = chlcmin * 12. * zprorcan (ji,jj,jk) 341 325 342 ! The maximum reachable Chl quota is modulated by temperature 326 343 ! following Geider (1987) … … 328 345 zprochln = zprochln + (chlcnm_n-chlcmin) * 12. * zprod / & 329 346 & ( zpislopeadn(ji,jj,jk) * znanotot +rtrn) 330 ! production terms of diatoms ( chlorophyll ) 347 348 ! production terms of diatoms ( chlorophyll ) 331 349 zdiattot = ediatm(ji,jj,jk) / ( zmxl_chl(ji,jj,jk) + rtrn ) 332 350 zprod = rday * zprorcad(ji,jj,jk) * zprchld(ji,jj,jk) * xlimdia(ji,jj,jk) 333 351 zprochld = chlcmin * 12. * zprorcad(ji,jj,jk) 352 334 353 ! The maximum reachable Chl quota is modulated by temperature 335 354 ! following Geider (1987) … … 337 356 zprochld = zprochld + (chlcdm_n-chlcmin) * 12. * zprod / & 338 357 & ( zpislopeadd(ji,jj,jk) * zdiattot +rtrn ) 339 ! Update the arrays TRA which contain the Chla sources and sinks 358 359 ! Update the arrays TRA which contain the Chla sources and sinks 340 360 tra(ji,jj,jk,jpnch) = tra(ji,jj,jk,jpnch) + zprochln * texcretn 341 361 tra(ji,jj,jk,jpdch) = tra(ji,jj,jk,jpdch) + zprochld * texcretd … … 377 397 END DO 378 398 END DO 379 ! 399 380 400 ! Production and uptake of ligands by phytoplankton. This part is activated 381 401 ! when ln_ligand is set to .true. in the namelist. Ligand uptake is small … … 403 423 404 424 425 ! Output of the diagnostics 405 426 ! Total primary production per year 406 427 IF( iom_use( "tintpp" ) .OR. ( ln_check_mass .AND. kt == nitend .AND. knt == nrdttrc ) ) & … … 423 444 CALL iom_put( "PPNEWN" , zw3d ) 424 445 ! 425 zw3d(:,:,:) = zpronewd(:,:,:) * zfact * tmask(:,:,:) ! new primary production by diatom es446 zw3d(:,:,:) = zpronewd(:,:,:) * zfact * tmask(:,:,:) ! new primary production by diatoms 426 447 CALL iom_put( "PPNEWD" , zw3d ) 427 448 ENDIF … … 434 455 CALL iom_put( "PFeN" , zw3d ) 435 456 ! 436 zw3d(:,:,:) = zprofed(:,:,:) * zfact * tmask(:,:,:) ! biogenic iron production by diatom es457 zw3d(:,:,:) = zprofed(:,:,:) * zfact * tmask(:,:,:) ! biogenic iron production by diatoms 437 458 CALL iom_put( "PFeD" , zw3d ) 438 459 ENDIF … … 546 567 INTEGER :: ios ! Local integer 547 568 ! 569 ! Namelist block 548 570 NAMELIST/namp4zprod/ pislopen, pisloped, xadap, bresp, excretn, excretd, & 549 571 & chlcnm, chlcdm, chlcmin, fecnm, fecdm, grosip
Note: See TracChangeset
for help on using the changeset viewer.