- Timestamp:
- 2016-09-30T16:56:23+02:00 (8 years ago)
- Location:
- branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P5Z
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P5Z/p5zbio.F90
r6453 r6966 28 28 USE p5zpoc ! Remineralisation of organic particles 29 29 USE p5zagg ! Aggregation of particles 30 USE p4zlys ! Dissolution of calcite31 USE p4zfechem ! Iron chemistry32 30 USE p4zligand ! Remineralization of ligands 33 31 USE prtctl_trc ! print control for debugging … … 82 80 CALL p4z_opt ( kt, knt ) ! Optic: PAR in the water column 83 81 CALL p5z_sink ( kt, knt ) ! vertical flux of particulate organic matter 84 CALL p4z_lys (kt, knt ) ! Dissolution of calcite85 82 CALL p4z_fechem(kt, knt ) ! Iron chemistry/scavenging 86 83 CALL p5z_lim ( kt, knt ) ! co-limitations by the various nutrients -
branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P5Z/p5zpoc.F90
r6841 r6966 67 67 INTEGER :: ji, jj, jk, jn 68 68 REAL(wp) :: zremip, zremig, zdep, zstep 69 REAL(wp) :: zopon, zopop, zopoc 2, zopon2, zopop2, zofer69 REAL(wp) :: zopon, zopop, zopoc, zopoc2, zopon2, zopop2, zofer 70 70 REAL(wp) :: zsizek, zsizek1, alphat, remint 71 71 REAL(wp) :: solgoc, zpoc … … 211 211 zremig = zremigoc(ji,jj,jk) * zstep * tgfunc(ji,jj,jk) 212 212 zopoc2 = zremig * trb(ji,jj,jk,jpgoc) 213 orem(ji,jj,jk) = zopoc2 213 214 zopon2 = xremipn / xremipc * zremig * trb(ji,jj,jk,jpgon) 214 215 zopop2 = xremipp / xremipc * zremig * trb(ji,jj,jk,jpgop) … … 396 397 ! -------------------------------------------------------- 397 398 zremip = zremipoc(ji,jj,jk) * zstep * tgfunc(ji,jj,jk) 398 399 orem(ji,jj,jk) = zremip * trb(ji,jj,jk,jppoc)399 zopoc = zremip * trb(ji,jj,jk,jppoc) 400 orem(ji,jj,jk) = orem(ji,jj,jk) + zopoc 400 401 zopon = xremipn / xremipc * zremip * trb(ji,jj,jk,jppon) 401 402 zopop = xremipp / xremipc * zremip * trb(ji,jj,jk,jppop) … … 407 408 ! Update the appropriate tracers trends 408 409 ! ------------------------------------- 409 tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - orem(ji,jj,jk)410 tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - zopoc 410 411 tra(ji,jj,jk,jppon) = tra(ji,jj,jk,jppon) - zopon 411 412 tra(ji,jj,jk,jppop) = tra(ji,jj,jk,jppop) - zopop 412 413 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) - zofer 413 tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) + orem(ji,jj,jk)414 tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) + zopoc 414 415 tra(ji,jj,jk,jpdon) = tra(ji,jj,jk,jpdon) + zopon 415 416 tra(ji,jj,jk,jpdop) = tra(ji,jj,jk,jpdop) + zopop -
branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P5Z/p5zprod.F90
r6841 r6966 33 33 34 34 !! * Shared module variables 35 REAL(wp), PUBLIC :: pislope 35 REAL(wp), PUBLIC :: pislopen !: 36 36 REAL(wp), PUBLIC :: pislopep !: 37 REAL(wp), PUBLIC :: pislope 2!:37 REAL(wp), PUBLIC :: pisloped !: 38 38 REAL(wp), PUBLIC :: xadap !: 39 REAL(wp), PUBLIC :: excret 39 REAL(wp), PUBLIC :: excretn !: 40 40 REAL(wp), PUBLIC :: excretp !: 41 REAL(wp), PUBLIC :: excret 2!:41 REAL(wp), PUBLIC :: excretd !: 42 42 REAL(wp), PUBLIC :: bresp !: 43 43 REAL(wp), PUBLIC :: thetanpm !: … … 56 56 57 57 REAL(wp) :: r1_rday !: 1 / rday 58 REAL(wp) :: texcret 58 REAL(wp) :: texcretn !: 1 - excret 59 59 REAL(wp) :: texcretp !: 1 - excretp 60 REAL(wp) :: texcret 2!: 1 - excret260 REAL(wp) :: texcretd !: 1 - excret2 61 61 62 62 … … 87 87 REAL(wp) :: zpronmax, zpropmax, zprofmax, zrat 88 88 REAL(wp) :: zlim, zsilfac2, zsiborn, zprod, zprontot, zproptot, zprodtot 89 REAL(wp) :: z mxltst, zmxlday, zprnutmax, zdocprod90 REAL(wp) :: zpislopen, zpislopep, zpislope 2n89 REAL(wp) :: zprnutmax, zdocprod, zprochln, zprochld, zprochlp 90 REAL(wp) :: zpislopen, zpislopep, zpisloped 91 91 REAL(wp) :: zrum, zcodel, zargu, zval, zfeup 92 92 REAL(wp) :: zrfact2 93 93 CHARACTER (len=25) :: charout 94 94 REAL(wp), POINTER, DIMENSION(:,: ) :: zmixnano, zmixpico, zmixdiat, zstrn 95 REAL(wp), POINTER, DIMENSION(:,:,:) :: zpislopead , zpislopeadp, zpislopead295 REAL(wp), POINTER, DIMENSION(:,:,:) :: zpislopeadn, zpislopeadp, zpislopead 96 96 REAL(wp), POINTER, DIMENSION(:,:,:) :: zprbio, zprpic, zprdia, zysopt 97 97 REAL(wp), POINTER, DIMENSION(:,:,:) :: zprchln, zprchlp, zprchld 98 98 REAL(wp), POINTER, DIMENSION(:,:,:) :: zprorcan, zprorcap, zprorcad 99 99 REAL(wp), POINTER, DIMENSION(:,:,:) :: zprofed, zprofep, zprofen 100 REAL(wp), POINTER, DIMENSION(:,:,:) :: zprochln, zprochlp, zprochld101 100 REAL(wp), POINTER, DIMENSION(:,:,:) :: zpronewn, zpronewp, zpronewd 102 101 REAL(wp), POINTER, DIMENSION(:,:,:) :: zproregn, zproregp, zproregd … … 105 104 REAL(wp), POINTER, DIMENSION(:,:,:) :: zrespn, zrespp, zrespd, zprnut 106 105 REAL(wp), POINTER, DIMENSION(:,:,:) :: zcroissn, zcroissp, zcroissd 106 REAL(wp), POINTER, DIMENSION(:,:,:) :: zmxl_fac, zmxl_chl 107 107 !!--------------------------------------------------------------------- 108 108 ! … … 111 111 ! Allocate temporary workspace 112 112 CALL wrk_alloc( jpi, jpj, zmixnano, zmixpico, zmixdiat, zstrn ) 113 CALL wrk_alloc( jpi, jpj, jpk, zpislopead, zpislopeadp, zpislopead2, zysopt ) 113 CALL wrk_alloc( jpi, jpj, jpk, zmxl_fac, zmxl_chl ) 114 CALL wrk_alloc( jpi, jpj, jpk, zpislopeadn, zpislopeadp, zpislopead, zysopt ) 114 115 CALL wrk_alloc( jpi, jpj, jpk, zprdia, zprpic, zprbio, zprorcan, zprorcap, zprorcad ) 115 CALL wrk_alloc( jpi, jpj, jpk, zprofed, zprofep, zprofen , zprochln, zprochlp, zprochld)116 CALL wrk_alloc( jpi, jpj, jpk, zprofed, zprofep, zprofen ) 116 117 CALL wrk_alloc( jpi, jpj, jpk, zpronewn, zpronewp, zpronewd, zproregn, zproregp, zproregd ) 117 118 CALL wrk_alloc( jpi, jpj, jpk, zpropo4n, zpropo4p, zpropo4d, zrespn, zrespp, zrespd, zprnut ) … … 121 122 zprorcan(:,:,:) = 0._wp ; zprorcap(:,:,:) = 0._wp ; zprorcad(:,:,:) = 0._wp 122 123 zprofed (:,:,:) = 0._wp ; zprofep (:,:,:) = 0._wp ; zprofen (:,:,:) = 0._wp 123 zprochln(:,:,:) = 0._wp ; zprochlp(:,:,:) = 0._wp ; zprochld(:,:,:) = 0._wp124 124 zpronewn(:,:,:) = 0._wp ; zpronewp(:,:,:) = 0._wp ; zpronewd(:,:,:) = 0._wp 125 125 zproregn(:,:,:) = 0._wp ; zproregp(:,:,:) = 0._wp ; zproregd(:,:,:) = 0._wp … … 159 159 DO jj = 1 ,jpj 160 160 DO ji = 1, jpi 161 IF( etot (ji,jj,jk) > 1.E-3 ) THEN161 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 162 162 zval = MAX( 1., zstrn(ji,jj) ) 163 zval = 1.5 * zval / (12. + zval) * (1. - fr_i(ji,jj)) 164 zprbio(ji,jj,jk) = prmaxn(ji,jj,jk) * zval 165 zprpic(ji,jj,jk) = prmaxp(ji,jj,jk) * zval 166 zprdia(ji,jj,jk) = prmaxd(ji,jj,jk) * zval 163 zmxl_fac(ji,jj,jk) = zval 164 zmxl_chl(ji,jj,jk) = zval / 24. 165 IF( fsdepw(ji,jj,jk+1) <= hmld(ji,jj) ) THEN 166 zval = MIN(1., heup_01(ji,jj) / ( hmld(ji,jj) + rtrn )) 167 zmxl_fac(ji,jj,jk) = zmxl_fac(ji,jj,jk) * zval 168 zmxl_chl(ji,jj,jk) = zmxl_chl(ji,jj,jk) * zval 169 ENDIF 170 zmxl_fac(ji,jj,jk) = ( 1. - exp( -0.2 * zmxl_fac(ji,jj,jk) ) ) 171 zmxl_chl(ji,jj,jk) = zmxl_chl(ji,jj,jk) 167 172 ENDIF 168 173 END DO 169 174 END DO 170 175 END DO 176 177 zprbio(:,:,:) = prmaxn(:,:,:) * zmxl_fac(:,:,:) 178 zprdia(:,:,:) = prmaxd(:,:,:) * zmxl_fac(:,:,:) 179 zprpic(:,:,:) = prmaxp(:,:,:) * zmxl_fac(:,:,:) 180 171 181 172 182 ! Maximum light intensity … … 180 190 !CDIR NOVERRCHK 181 191 DO ji = 1, jpi 192 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 182 193 ! Computation of the P-I slope for nanos and diatoms 183 IF( etot(ji,jj,jk) > 1.E-3 ) THEN184 194 ztn = MAX( 0., tsn(ji,jj,jk,jp_tem) - 15. ) 185 195 zadap = xadap * ztn / ( 2.+ ztn ) 186 znanotot = enano(ji,jj,jk) * zstrn(ji,jj)187 zpicotot = epico(ji,jj,jk) * zstrn(ji,jj)188 zdiattot = ediat(ji,jj,jk) * zstrn(ji,jj)189 196 ! 190 zpislopead (ji,jj,jk) = pislope* trb(ji,jj,jk,jpnch) &197 zpislopeadn(ji,jj,jk) = pislopen * trb(ji,jj,jk,jpnch) & 191 198 & /( trb(ji,jj,jk,jpphy) * 12. + rtrn) 192 zpislopeadp(ji,jj,jk) = pislopep * ( 1. + zadap * EXP( -0. 5 * zpicotot) ) &199 zpislopeadp(ji,jj,jk) = pislopep * ( 1. + zadap * EXP( -0.25 * epico(ji,jj,jk) ) ) & 193 200 & * trb(ji,jj,jk,jppch) /( trb(ji,jj,jk,jppic) * 12. + rtrn) 194 zpislopead 2(ji,jj,jk) = pislope2* trb(ji,jj,jk,jpdch) &201 zpislopeadd(ji,jj,jk) = pisloped * trb(ji,jj,jk,jpdch) & 195 202 & /( trb(ji,jj,jk,jpdia) * 12. + rtrn) 196 zpislopen = zpislopead (ji,jj,jk) / ( prmaxn(ji,jj,jk) * rday * xlimphy(ji,jj,jk) + rtrn ) 197 zpislopep = zpislopeadp(ji,jj,jk) / ( prmaxp(ji,jj,jk) * rday * xlimpic(ji,jj,jk) + rtrn ) 198 zpislope2n = zpislopead2(ji,jj,jk) / ( prmaxd(ji,jj,jk) * rday * xlimdia(ji,jj,jk) + rtrn ) 203 ! 204 zpislopen = zpislopeadn(ji,jj,jk) / ( prmaxn(ji,jj,jk) * rday * xlimphy(ji,jj,jk) + rtrn ) 205 zpislopep = zpislopeadp(ji,jj,jk) / ( prmaxp(ji,jj,jk) * rday * xlimpic(ji,jj,jk) + rtrn ) 206 zpisloped = zpislopeadd(ji,jj,jk) / ( prmaxd(ji,jj,jk) * rday * xlimdia(ji,jj,jk) + rtrn ) 199 207 200 208 ! Computation of production function for Carbon 201 209 ! --------------------------------------------- 202 zprbio(ji,jj,jk) = zprbio(ji,jj,jk) * ( 1.- EXP( -zpislopen * znanotot) )203 zprpic(ji,jj,jk) = zprpic(ji,jj,jk) * ( 1.- EXP( -zpislopep * zpicotot) )204 zprdia(ji,jj,jk) = zprdia(ji,jj,jk) * ( 1.- EXP( -zpislope 2n * zdiattot) )210 zprbio(ji,jj,jk) = zprbio(ji,jj,jk) * ( 1.- EXP( -zpislopen * enano(ji,jj,jk) ) ) 211 zprpic(ji,jj,jk) = zprpic(ji,jj,jk) * ( 1.- EXP( -zpislopep * epico(ji,jj,jk) ) ) 212 zprdia(ji,jj,jk) = zprdia(ji,jj,jk) * ( 1.- EXP( -zpisloped * ediat(ji,jj,jk) ) ) 205 213 206 214 ! Computation of production function for Chlorophyll 207 215 ! ------------------------------------------------- 208 zprchln(ji,jj,jk) = prmaxn(ji,jj,jk) * ( 1.- EXP( -zpislopen * enano(ji,jj,jk) ) ) 209 zprchlp(ji,jj,jk) = prmaxp(ji,jj,jk) * ( 1.- EXP( -zpislopep * epico(ji,jj,jk) ) ) 210 zprchld(ji,jj,jk) = prmaxd(ji,jj,jk) * ( 1.- EXP( -zpislope2n * ediat(ji,jj,jk) ) ) 216 zpislopen = zpislopen * zmxl_fac(ji,jj,jk) / ( zmxl_chl(ji,jj,jk) + rtrn ) 217 zpisloped = zpisloped * zmxl_fac(ji,jj,jk) / ( zmxl_chl(ji,jj,jk) + rtrn ) 218 zpislopep = zpislopep * zmxl_fac(ji,jj,jk) / ( zmxl_chl(ji,jj,jk) + rtrn ) 219 zprchln(ji,jj,jk) = prmaxn(ji,jj,jk) * ( 1.- EXP( -zpislopen * enano(ji,jj,jk) ) ) 220 zprchlp(ji,jj,jk) = prmaxp(ji,jj,jk) * ( 1.- EXP( -zpislopep * epico(ji,jj,jk) ) ) 221 zprchld(ji,jj,jk) = prmaxd(ji,jj,jk) * ( 1.- EXP( -zpisloped * ediat(ji,jj,jk) ) ) 211 222 ENDIF 212 223 END DO … … 217 228 DO jj = 1, jpj 218 229 DO ji = 1, jpi 219 IF( etot(ji,jj,jk) > 1.E-3 ) THEN 230 231 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 220 232 ! Si/C of diatoms 221 233 ! ------------------------ … … 238 250 END DO 239 251 240 ! Computation of the limitation term due to a mixed layer deeper than the euphotic depth 241 DO jj = 1, jpj 242 DO ji = 1, jpi 243 zmxltst = MAX( 0.e0, hmld(ji,jj) - heup_01(ji,jj) ) 244 zmxlday = zmxltst * zmxltst * r1_rday 245 zmixnano(ji,jj) = 1. - zmxlday / ( zlimmxln + zmxlday ) 246 zmixpico(ji,jj) = 1. - zmxlday / ( zlimmxlp + zmxlday ) 247 zmixdiat(ji,jj) = 1. - zmxlday / ( zlimmxld + zmxlday ) 248 END DO 249 END DO 250 251 ! Mixed-layer effect on production 252 DO jk = 1, jpkm1 253 DO jj = 1, jpj 254 DO ji = 1, jpi 255 IF( fsdepw(ji,jj,jk+1) <= hmld(ji,jj) ) THEN 256 zprbio(ji,jj,jk) = zprbio(ji,jj,jk) * zmixnano(ji,jj) 257 zprpic(ji,jj,jk) = zprpic(ji,jj,jk) * zmixpico(ji,jj) 258 zprdia(ji,jj,jk) = zprdia(ji,jj,jk) * zmixdiat(ji,jj) 259 zprchln(ji,jj,jk) = zprchln(ji,jj,jk) * zmixnano(ji,jj) 260 zprchlp(ji,jj,jk) = zprchlp(ji,jj,jk) * zmixpico(ji,jj) 261 zprchld(ji,jj,jk) = zprchld(ji,jj,jk) * zmixdiat(ji,jj) 262 ENDIF 252 ! Sea-ice effect on production 253 DO jk = 1, jpkm1 254 DO jj = 1, jpj 255 DO ji = 1, jpi 256 zprbio(ji,jj,jk) = zprbio(ji,jj,jk) * ( 1. - fr_i(ji,jj) ) 257 zprpic(ji,jj,jk) = zprpic(ji,jj,jk) * ( 1. - fr_i(ji,jj) ) 258 zprdia(ji,jj,jk) = zprdia(ji,jj,jk) * ( 1. - fr_i(ji,jj) ) 259 zprnut(ji,jj,jk) = zprnut(ji,jj,jk) * ( 1. - fr_i(ji,jj) ) 263 260 END DO 264 261 END DO … … 269 266 DO jj = 1, jpj 270 267 DO ji = 1, jpi 271 IF( etot (ji,jj,jk) > 1.E-3 ) THEN268 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 272 269 ! production terms for nanophyto. 273 270 zprorcan(ji,jj,jk) = zprbio(ji,jj,jk) * xlimphy(ji,jj,jk) * trb(ji,jj,jk,jpphy) * rfact2 … … 306 303 DO jj = 1, jpj 307 304 DO ji = 1, jpi 308 IF( etot (ji,jj,jk) > 1.E-3 ) THEN305 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 309 306 ! production terms for picophyto. 310 307 zprorcap(ji,jj,jk) = zprpic(ji,jj,jk) * xlimpic(ji,jj,jk) * trb(ji,jj,jk,jppic) * rfact2 … … 343 340 DO jj = 1, jpj 344 341 DO ji = 1, jpi 345 IF( etot (ji,jj,jk) > 1.E-3 ) THEN342 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 346 343 ! production terms for diatomees 347 344 zprorcad(ji,jj,jk) = zprdia(ji,jj,jk) * xlimdia(ji,jj,jk) * trb(ji,jj,jk,jpdia) * rfact2 … … 381 378 DO jj = 1, jpj 382 379 DO ji = 1, jpi 383 IF( etot (ji,jj,jk) > 1.E-3 ) THEN380 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 384 381 ! production terms for nanophyto. ( chlorophyll ) 382 znanotot = enano(ji,jj,jk) / ( zmxl_chl(ji,jj,jk) + rtrn ) 385 383 zprod = rday * (zpronewn(ji,jj,jk) + zproregn(ji,jj,jk)) * zprchln(ji,jj,jk) * xlimphy(ji,jj,jk) 386 zprochln (ji,jj,jk) = thetannm * zprod / ( zpislopead(ji,jj,jk) * enano(ji,jj,jk) +rtrn )387 zprochln (ji,jj,jk) = MAX(zprochln(ji,jj,jk), chlcmin * 12. * zprorcan (ji,jj,jk) )384 zprochln = thetannm * zprod / ( zpislopeadn(ji,jj,jk) * znanotot + rtrn ) 385 zprochln = MAX(zprochln, chlcmin * 12. * zprorcan (ji,jj,jk) ) 388 386 ! production terms for picophyto. ( chlorophyll ) 387 zpicotot = epico(ji,jj,jk) / ( zmxl_chl(ji,jj,jk) + rtrn ) 389 388 zprod = rday * (zpronewp(ji,jj,jk) + zproregp(ji,jj,jk)) * zprchlp(ji,jj,jk) * xlimpic(ji,jj,jk) 390 zprochlp (ji,jj,jk) = thetanpm * zprod / ( zpislopeadp(ji,jj,jk) * epico(ji,jj,jk) +rtrn )391 zprochlp (ji,jj,jk) = MAX(zprochlp(ji,jj,jk), chlcmin * 12. * zprorcap(ji,jj,jk) )389 zprochlp = thetanpm * zprod / ( zpislopeadp(ji,jj,jk) * zpicotot + rtrn ) 390 zprochlp = MAX(zprochlp, chlcmin * 12. * zprorcap(ji,jj,jk) ) 392 391 ! production terms for diatomees ( chlorophyll ) 392 zdiattot = ediat(ji,jj,jk) / ( zmxl_chl(ji,jj,jk) + rtrn ) 393 393 zprod = rday * (zpronewd(ji,jj,jk) + zproregd(ji,jj,jk)) * zprchld(ji,jj,jk) * xlimdia(ji,jj,jk) 394 zprochld(ji,jj,jk) = thetandm * zprod / ( zpislopead2(ji,jj,jk) * ediat(ji,jj,jk) +rtrn ) 395 zprochld(ji,jj,jk) = MAX(zprochld(ji,jj,jk), chlcmin * 12. * zprorcad(ji,jj,jk) ) 394 zprochld = thetandm * zprod / ( zpislopeadd(ji,jj,jk) * zdiattot + rtrn ) 395 zprochld = MAX(zprochld, chlcmin * 12. * zprorcad(ji,jj,jk) ) 396 ! Update the arrays TRA which contain the Chla sources and sinks 397 tra(ji,jj,jk,jpnch) = tra(ji,jj,jk,jpnch) + zprochln * texcretn 398 tra(ji,jj,jk,jpdch) = tra(ji,jj,jk,jpdch) + zprochld * texcretd 399 tra(ji,jj,jk,jppch) = tra(ji,jj,jk,jppch) + zprochlp * texcretp 396 400 ENDIF 397 401 END DO … … 406 410 zproptot = zpronewp(ji,jj,jk) + zproregp(ji,jj,jk) 407 411 zprodtot = zpronewd(ji,jj,jk) + zproregd(ji,jj,jk) 408 zdocprod = excret 2 * zprorcad(ji,jj,jk) + excret* zprorcan(ji,jj,jk) &412 zdocprod = excretd * zprorcad(ji,jj,jk) + excretn * zprorcan(ji,jj,jk) & 409 413 & + excretp * zprorcap(ji,jj,jk) 410 414 tra(ji,jj,jk,jppo4) = tra(ji,jj,jk,jppo4) - zpropo4n(ji,jj,jk) - zpropo4d(ji,jj,jk) & … … 414 418 tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) - zproregn(ji,jj,jk) - zproregd(ji,jj,jk) & 415 419 & - zproregp(ji,jj,jk) 416 tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) + zprorcan(ji,jj,jk) * texcret 420 tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) + zprorcan(ji,jj,jk) * texcretn & 417 421 & - zpsino3 * zpronewn(ji,jj,jk) - zpsinh4 * zproregn(ji,jj,jk) & 418 422 & - zrespn(ji,jj,jk) 419 423 zcroissn(ji,jj,jk) = tra(ji,jj,jk,jpphy) / rfact2/ (trb(ji,jj,jk,jpphy) + rtrn) 420 tra(ji,jj,jk,jpnph) = tra(ji,jj,jk,jpnph) + zprontot * texcret 421 tra(ji,jj,jk,jppph) = tra(ji,jj,jk,jppph) + zpropo4n(ji,jj,jk) * texcret & 422 & + zprodopn(ji,jj,jk) * texcret 423 tra(ji,jj,jk,jpnch) = tra(ji,jj,jk,jpnch) + zprochln(ji,jj,jk) * texcret 424 tra(ji,jj,jk,jpnfe) = tra(ji,jj,jk,jpnfe) + zprofen(ji,jj,jk) * texcret 424 tra(ji,jj,jk,jpnph) = tra(ji,jj,jk,jpnph) + zprontot * texcretn 425 tra(ji,jj,jk,jppph) = tra(ji,jj,jk,jppph) + zpropo4n(ji,jj,jk) * texcretn & 426 & + zprodopn(ji,jj,jk) * texcretn 427 tra(ji,jj,jk,jpnfe) = tra(ji,jj,jk,jpnfe) + zprofen(ji,jj,jk) * texcretn 425 428 tra(ji,jj,jk,jppic) = tra(ji,jj,jk,jppic) + zprorcap(ji,jj,jk) * texcretp & 426 429 & - zpsino3 * zpronewp(ji,jj,jk) - zpsinh4 * zproregp(ji,jj,jk) & … … 430 433 tra(ji,jj,jk,jpppi) = tra(ji,jj,jk,jpppi) + zpropo4p(ji,jj,jk) * texcretp & 431 434 & + zprodopp(ji,jj,jk) * texcretp 432 tra(ji,jj,jk,jppch) = tra(ji,jj,jk,jppch) + zprochlp(ji,jj,jk) * texcretp433 435 tra(ji,jj,jk,jppfe) = tra(ji,jj,jk,jppfe) + zprofep(ji,jj,jk) * texcretp 434 tra(ji,jj,jk,jpdia) = tra(ji,jj,jk,jpdia) + zprorcad(ji,jj,jk) * texcret 2&436 tra(ji,jj,jk,jpdia) = tra(ji,jj,jk,jpdia) + zprorcad(ji,jj,jk) * texcretd & 435 437 & - zpsino3 * zpronewd(ji,jj,jk) - zpsinh4 * zproregd(ji,jj,jk) & 436 438 & - zrespd(ji,jj,jk) 437 439 zcroissd(ji,jj,jk) = tra(ji,jj,jk,jpdia) / rfact2 / (trb(ji,jj,jk,jpdia) + rtrn) 438 tra(ji,jj,jk,jpndi) = tra(ji,jj,jk,jpndi) + zprodtot * texcret2 439 tra(ji,jj,jk,jppdi) = tra(ji,jj,jk,jppdi) + zpropo4d(ji,jj,jk) * texcret2 & 440 & + zprodopd(ji,jj,jk) * texcret2 441 tra(ji,jj,jk,jpdch) = tra(ji,jj,jk,jpdch) + zprochld(ji,jj,jk) * texcret2 442 tra(ji,jj,jk,jpdfe) = tra(ji,jj,jk,jpdfe) + zprofed(ji,jj,jk) * texcret2 443 tra(ji,jj,jk,jpdsi) = tra(ji,jj,jk,jpdsi) + zprorcad(ji,jj,jk) * zysopt(ji,jj,jk) * texcret2 444 tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) + excret2 * zprorcad(ji,jj,jk) + excret * zprorcan(ji,jj,jk) & 440 tra(ji,jj,jk,jpndi) = tra(ji,jj,jk,jpndi) + zprodtot * texcretd 441 tra(ji,jj,jk,jppdi) = tra(ji,jj,jk,jppdi) + zpropo4d(ji,jj,jk) * texcretd & 442 & + zprodopd(ji,jj,jk) * texcretd 443 tra(ji,jj,jk,jpdfe) = tra(ji,jj,jk,jpdfe) + zprofed(ji,jj,jk) * texcretd 444 tra(ji,jj,jk,jpdsi) = tra(ji,jj,jk,jpdsi) + zprorcad(ji,jj,jk) * zysopt(ji,jj,jk) * texcretd 445 tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) + excretd * zprorcad(ji,jj,jk) + excretn * zprorcan(ji,jj,jk) & 445 446 & + excretp * zprorcap(ji,jj,jk) 446 tra(ji,jj,jk,jpdon) = tra(ji,jj,jk,jpdon) + excret 2 * zprodtot + excret* zprontot &447 tra(ji,jj,jk,jpdon) = tra(ji,jj,jk,jpdon) + excretd * zprodtot + excretn * zprontot & 447 448 & + excretp * zproptot 448 tra(ji,jj,jk,jpdop) = tra(ji,jj,jk,jpdop) + excret 2 * zpropo4d(ji,jj,jk) + excret* zpropo4n(ji,jj,jk) &449 & - texcret * zprodopn(ji,jj,jk) - texcret2* zprodopd(ji,jj,jk) + excretp * zpropo4p(ji,jj,jk) &449 tra(ji,jj,jk,jpdop) = tra(ji,jj,jk,jpdop) + excretd * zpropo4d(ji,jj,jk) + excretn * zpropo4n(ji,jj,jk) & 450 & - texcretn * zprodopn(ji,jj,jk) - texcretd * zprodopd(ji,jj,jk) + excretp * zpropo4p(ji,jj,jk) & 450 451 & - texcretp * zprodopp(ji,jj,jk) 451 452 tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) + o2ut * ( zproregn(ji,jj,jk) + zproregd(ji,jj,jk) & … … 453 454 & + zpronewd(ji,jj,jk) + zpronewp(ji,jj,jk) ) & 454 455 & - o2ut * ( zrespn(ji,jj,jk) + zrespp(ji,jj,jk) + zrespd(ji,jj,jk) ) 455 zfeup = texcret * zprofen(ji,jj,jk) + texcret2* zprofed(ji,jj,jk) &456 zfeup = texcretn * zprofen(ji,jj,jk) + texcretd * zprofed(ji,jj,jk) & 456 457 & + texcretp * zprofep(ji,jj,jk) 457 458 tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zfeup 458 tra(ji,jj,jk,jpsil) = tra(ji,jj,jk,jpsil) - texcret 2* zprorcad(ji,jj,jk) * zysopt(ji,jj,jk)459 tra(ji,jj,jk,jpsil) = tra(ji,jj,jk,jpsil) - texcretd * zprorcad(ji,jj,jk) * zysopt(ji,jj,jk) 459 460 tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) - zprorcan(ji,jj,jk) - zprorcad(ji,jj,jk) - zprorcap(ji,jj,jk) & 460 461 & + zpsino3 * zpronewn(ji,jj,jk) + zpsinh4 * zproregn(ji,jj,jk) & … … 522 523 ! 523 524 CALL wrk_dealloc( jpi, jpj, zmixnano, zmixpico, zmixdiat, zstrn ) 524 CALL wrk_dealloc( jpi, jpj, jpk, zpislopead, zpislopeadp, zpislopead2, zysopt ) 525 CALL wrk_dealloc( jpi, jpj, jpk, zmxl_fac, zmxl_chl ) 526 CALL wrk_dealloc( jpi, jpj, jpk, zpislopeadn, zpislopeadp, zpislopeadd, zysopt ) 525 527 CALL wrk_dealloc( jpi, jpj, jpk, zprdia, zprpic, zprbio, zprorcan, zprorcap, zprorcad ) 526 CALL wrk_dealloc( jpi, jpj, jpk, zprofed, zprofep, zprofen , zprochln, zprochlp, zprochld)528 CALL wrk_dealloc( jpi, jpj, jpk, zprofed, zprofep, zprofen ) 527 529 CALL wrk_dealloc( jpi, jpj, jpk, zpronewn, zpronewp, zpronewd, zproregn, zproregp, zproregd ) 528 530 CALL wrk_dealloc( jpi, jpj, jpk, zpropo4n, zpropo4p, zpropo4d, zrespn, zrespp, zrespd, zprnut ) … … 547 549 !!---------------------------------------------------------------------- 548 550 ! 549 NAMELIST/nampisprod/ pislope , pislopep, pislope2, xadap, bresp, excret, excretp, excret2, &551 NAMELIST/nampisprod/ pislopen, pislopep, pisloped, xadap, bresp, excretn, excretp, excretd, & 550 552 & thetannm, thetanpm, thetandm, chlcmin, grosip, zlimmxln, & 551 553 & zlimmxlp, zlimmxld … … 568 570 WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' 569 571 WRITE(numout,*) ' mean Si/C ratio grosip =', grosip 570 WRITE(numout,*) ' P-I slope pislope =', pislope571 WRITE(numout,*) ' Acclimation factor to low light xadap =', xadap572 WRITE(numout,*) ' excretion ratio of nanophytoplankton excret =', excret572 WRITE(numout,*) ' P-I slope pislopen =', pislopen 573 WRITE(numout,*) ' Acclimation factor to low light xadap =', xadap 574 WRITE(numout,*) ' excretion ratio of nanophytoplankton excretn =', excretn 573 575 WRITE(numout,*) ' excretion ratio of picophytoplankton excretp =', excretp 574 WRITE(numout,*) ' excretion ratio of diatoms excret 2 =', excret2576 WRITE(numout,*) ' excretion ratio of diatoms excretd =', excretd 575 577 WRITE(numout,*) ' basal respiration in phytoplankton bresp =', bresp 576 578 WRITE(numout,*) ' Maximum Chl/C in phytoplankton chlcmin =', chlcmin 577 WRITE(numout,*) ' P-I slope for diatoms pislope 2 =', pislope2579 WRITE(numout,*) ' P-I slope for diatoms pisloped =', pisloped 578 580 WRITE(numout,*) ' P-I slope for picophytoplankton pislopep =', pislopep 579 581 WRITE(numout,*) ' Minimum Chl/N in nanophytoplankton thetannm =', thetannm … … 586 588 ! 587 589 r1_rday = 1._wp / rday 588 texcret = 1._wp - excret590 texcretn = 1._wp - excretn 589 591 texcretp = 1._wp - excretp 590 texcret 2 = 1._wp - excret2592 texcretd = 1._wp - excretd 591 593 tpp = 0._wp 592 594 ! -
branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P5Z/p5zsms.F90
r6841 r6966 20 20 USE p5zbio ! Biological model 21 21 USE p4zche ! Chemical model 22 USE p4zlys ! Calcite saturation 22 23 USE p4zflx ! Gas exchange 23 24 USE p4zsbc ! External source of nutrients … … 132 133 ! 133 134 CALL p5z_bio (kt, knt) ! Biology 135 CALL p4z_lys( kt, jnt ) ! Compute CaCO3 saturation 134 136 CALL p4z_flx( kt, knt ) ! Compute surface fluxes 135 137 CALL p5z_sed (kt, knt) ! Sedimentation
Note: See TracChangeset
for help on using the changeset viewer.