- Timestamp:
- 2016-11-04T17:04:48+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p5zprod.F90
r7162 r7195 41 41 REAL(wp), PUBLIC :: chlcmin !: 42 42 REAL(wp), PUBLIC :: grosip !: 43 REAL(wp), PUBLIC :: xlimmxln !:44 REAL(wp), PUBLIC :: xlimmxlp !:45 REAL(wp), PUBLIC :: xlimmxld !:46 43 47 44 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: prmaxn !: optimal production = f(temperature) … … 149 146 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 150 147 zval = MAX( 1., zstrn(ji,jj) ) 151 zmxl_fac(ji,jj,jk) = zval 148 IF( gdepw_n(ji,jj,jk+1) <= hmld(ji,jj) ) THEN 149 zval = zval * MIN(1., heup_01(ji,jj) / ( hmld(ji,jj) + rtrn )) 150 ENDIF 152 151 zmxl_chl(ji,jj,jk) = zval / 24. 153 IF( gdepw_n(ji,jj,jk+1) <= hmld(ji,jj) ) THEN 154 zval = MIN(1., heup_01(ji,jj) / ( hmld(ji,jj) + rtrn )) 155 zmxl_fac(ji,jj,jk) = zmxl_fac(ji,jj,jk) * zval 156 zmxl_chl(ji,jj,jk) = zmxl_chl(ji,jj,jk) * zval 157 ENDIF 158 zmxl_fac(ji,jj,jk) = ( 1. - exp( -0.2 * zmxl_fac(ji,jj,jk) ) ) 159 zmxl_chl(ji,jj,jk) = zmxl_chl(ji,jj,jk) 152 zmxl_fac(ji,jj,jk) = 1.5 * zval / ( 12. + zval ) 160 153 ENDIF 161 154 END DO … … 171 164 zdaylen(:,:) = MAX(1., zstrn(:,:)) / 24. 172 165 WHERE( zstrn(:,:) < 1.e0 ) zstrn(:,:) = 24. 173 zstrn(:,:) = 24. / zstrn(:,:)174 166 175 167 DO jk = 1, jpkm1 … … 188 180 & /( trb(ji,jj,jk,jpdia) * 12. + rtrn) 189 181 ! 190 zpislopen = zpislopeadn(ji,jj,jk) / ( prmaxn(ji,jj,jk) * rday * xlimphy(ji,jj,jk) + rtrn )191 zpislopep = zpislopeadp(ji,jj,jk) / ( prmaxp(ji,jj,jk) * rday * xlimpic(ji,jj,jk) + rtrn )192 zpisloped = zpislopeadd(ji,jj,jk) / ( prmaxd(ji,jj,jk) * rday * xlimdia(ji,jj,jk) + rtrn )182 zpislopen = zpislopeadn(ji,jj,jk) / ( zprbio(ji,jj,jk) * rday * xlimphy(ji,jj,jk) + rtrn ) 183 zpislopep = zpislopeadp(ji,jj,jk) / ( zprpic(ji,jj,jk) * rday * xlimpic(ji,jj,jk) + rtrn ) 184 zpisloped = zpislopeadd(ji,jj,jk) / ( zprdia(ji,jj,jk) * rday * xlimdia(ji,jj,jk) + rtrn ) 193 185 194 186 ! Computation of production function for Carbon … … 264 256 zmax = MAX(0., MIN(1., (1. - zrat)/ (1.05 - zrat) * 1.05)) 265 257 zpronmax = zprnutmax * zmax * MAX(0., MIN(1., ( zratiop - xqpnmin(ji,jj,jk) ) & 266 & / ( xqpnmax(ji,jj,jk) - xqpnmin(ji,jj,jk) ), xlimnfe(ji,jj,jk) ) )258 & / ( xqpnmax(ji,jj,jk) - xqpnmin(ji,jj,jk) + rtrn ), xlimnfe(ji,jj,jk) ) ) 267 259 zpronewn(ji,jj,jk) = zpronmax * zdaylen(ji,jj) * xnanono3(ji,jj,jk) 268 260 zproregn(ji,jj,jk) = zpronmax * xnanonh4(ji,jj,jk) … … 301 293 zmax = MAX(0., MIN(1., (1. - zrat)/ (1.05 - zrat) * 1.05)) 302 294 zpronmax = zprnutmax * zmax * MAX(0., MIN(1., ( zratiop - xqppmin(ji,jj,jk) ) & 303 & / ( xqppmax(ji,jj,jk) - xqppmin(ji,jj,jk) ), xlimpfe(ji,jj,jk) ) )295 & / ( xqppmax(ji,jj,jk) - xqppmin(ji,jj,jk) + rtrn ), xlimpfe(ji,jj,jk) ) ) 304 296 zpronewp(ji,jj,jk) = zpronmax * zdaylen(ji,jj) * xpicono3(ji,jj,jk) 305 297 zproregp(ji,jj,jk) = zpronmax * xpiconh4(ji,jj,jk) … … 340 332 zmax = MAX(0., MIN(1., (1. - zrat)/ (1.05 - zrat) * 1.05)) 341 333 zpronmax = zprnutmax * zmax * MAX(0., MIN(1., ( zratiop - xqpdmin(ji,jj,jk) ) & 342 & / ( xqpdmax(ji,jj,jk) - xqpdmin(ji,jj,jk) ), xlimdfe(ji,jj,jk) ) )334 & / ( xqpdmax(ji,jj,jk) - xqpdmin(ji,jj,jk) + rtrn ), xlimdfe(ji,jj,jk) ) ) 343 335 zpronewd(ji,jj,jk) = zpronmax * zdaylen(ji,jj) * xdiatno3(ji,jj,jk) 344 336 zproregd(ji,jj,jk) = zpronmax * xdiatnh4(ji,jj,jk) … … 597 589 ! 598 590 NAMELIST/namp5zprod/ pislopen, pislopep, pisloped, excretn, excretp, excretd, & 599 & thetannm, thetanpm, thetandm, chlcmin, grosip, bresp, xadap, & 600 & xlimmxln, xlimmxlp, xlimmxld 591 & thetannm, thetanpm, thetandm, chlcmin, grosip, bresp, xadap 601 592 602 593 INTEGER :: ios ! Local integer output status for namelist read … … 629 620 WRITE(numout,*) ' Minimum Chl/N in picophytoplankton thetanpm =', thetanpm 630 621 WRITE(numout,*) ' Minimum Chl/N in diatoms thetandm =', thetandm 631 WRITE(numout,*) ' Critical time scale for mixing (nano) xlimmxln =', xlimmxln632 WRITE(numout,*) ' Critical time scale for mixing (pico) xlimmxlp =', xlimmxlp633 WRITE(numout,*) ' Critical time scale for mixing (diatoms) xlimmxld =', xlimmxld634 622 ENDIF 635 623 !
Note: See TracChangeset
for help on using the changeset viewer.