- Timestamp:
- 2016-10-21T17:38:13+02:00 (8 years ago)
- Location:
- branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zbio.F90
r6140 r7068 6 6 !! History : 1.0 ! 2004 (O. Aumont) Original code 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 !!----------------------------------------------------------------------9 #if defined key_pisces10 !!----------------------------------------------------------------------11 !! 'key_pisces' PISCES bio-model12 8 !!---------------------------------------------------------------------- 13 9 !! p4z_bio : computes the interactions between the different … … 96 92 END SUBROUTINE p4z_bio 97 93 98 #else99 !!======================================================================100 !! Dummy module : No PISCES bio-model101 !!======================================================================102 CONTAINS103 SUBROUTINE p4z_bio ! Empty routine104 END SUBROUTINE p4z_bio105 #endif106 107 94 !!====================================================================== 108 95 END MODULE p4zbio -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zche.F90
r6945 r7068 11 11 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 12 12 !! ! 2011-02 (J. Simeon, J.Orr ) update O2 solubility constants 13 !!----------------------------------------------------------------------14 #if defined key_pisces15 !!----------------------------------------------------------------------16 !! 'key_pisces' PISCES bio-model17 13 !!---------------------------------------------------------------------- 18 14 !! p4z_che : Sea water chemistry computed following OCMIP protocol … … 333 329 END FUNCTION p4z_che_alloc 334 330 335 #else336 !!======================================================================337 !! Dummy module : No PISCES bio-model338 !!======================================================================339 CONTAINS340 SUBROUTINE p4z_che( kt ) ! Empty routine341 INTEGER, INTENT(in) :: kt342 WRITE(*,*) 'p4z_che: You should not have seen this print! error?', kt343 END SUBROUTINE p4z_che344 #endif345 346 331 !!====================================================================== 347 332 END MODULE p4zche -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90
r7041 r7068 5 5 !!====================================================================== 6 6 !! History : 3.5 ! 2012-07 (O. Aumont, A. Tagliabue, C. Ethe) Original code 7 !!----------------------------------------------------------------------8 #if defined key_pisces9 !!----------------------------------------------------------------------10 !! 'key_top' and TOP models11 !! 'key_pisces' PISCES bio-model12 7 !!---------------------------------------------------------------------- 13 8 !! p4z_fechem : Compute remineralization/scavenging of iron … … 359 354 END SUBROUTINE p4z_fechem_init 360 355 361 #else362 !!======================================================================363 !! Dummy module : No PISCES bio-model364 !!======================================================================365 CONTAINS366 SUBROUTINE p4z_fechem ! Empty routine367 END SUBROUTINE p4z_fechem368 #endif369 370 356 !!====================================================================== 371 357 END MODULE p4zfechem -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zflx.F90
r7041 r7068 11 11 !! ! 2011-02 (J. Simeon, J. Orr) Include total atm P correction 12 12 !!---------------------------------------------------------------------- 13 #if defined key_pisces14 !!----------------------------------------------------------------------15 !! 'key_pisces' PISCES bio-model16 !!----------------------------------------------------------------------17 13 !! p4z_flx : CALCULATES GAS EXCHANGE AND CHEMISTRY AT SEA SURFACE 18 14 !! p4z_flx_init : Read the namelist … … 26 22 USE iom ! I/O manager 27 23 USE fldread ! read input fields 28 #if defined key_cpl_carbon_cycle29 24 USE sbc_oce, ONLY : atm_co2 ! atmospheric pCO2 30 #endif31 25 32 26 IMPLICIT NONE … … 116 110 ENDIF 117 111 118 #if defined key_cpl_carbon_cycle 119 satmco2(:,:) = atm_co2(:,:) 120 #endif 112 ! IF( ln_cpl_carbon_cycle ) satmco2(:,:) = atm_co2(:,:) 121 113 122 114 DO jm = 1, 10 … … 384 376 END FUNCTION p4z_flx_alloc 385 377 386 #else387 !!======================================================================388 !! Dummy module : No PISCES bio-model389 !!======================================================================390 CONTAINS391 SUBROUTINE p4z_flx( kt ) ! Empty routine392 INTEGER, INTENT( in ) :: kt393 WRITE(*,*) 'p4z_flx: You should not have seen this print! error?', kt394 END SUBROUTINE p4z_flx395 #endif396 397 378 !!====================================================================== 398 379 END MODULE p4zflx -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zint.F90
r5656 r7068 6 6 !! History : 1.0 ! 2004-03 (O. Aumont) Original code 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 !!----------------------------------------------------------------------9 #if defined key_pisces10 !!----------------------------------------------------------------------11 !! 'key_pisces' PISCES bio-model12 8 !!---------------------------------------------------------------------- 13 9 !! p4z_int : interpolation and computation of various accessory fields … … 70 66 END SUBROUTINE p4z_int 71 67 72 #else73 !!======================================================================74 !! Dummy module : No PISCES bio-model75 !!======================================================================76 CONTAINS77 SUBROUTINE p4z_int ! Empty routine78 WRITE(*,*) 'p4z_int: You should not have seen this print! error?'79 END SUBROUTINE p4z_int80 #endif81 82 68 !!====================================================================== 83 69 END MODULE p4zint -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlim.F90
r6945 r7068 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 8 !! 3.4 ! 2011-04 (O. Aumont, C. Ethe) Limitation for iron modelled in quota 9 !!----------------------------------------------------------------------10 #if defined key_pisces11 !!----------------------------------------------------------------------12 !! 'key_pisces' PISCES bio-model13 9 !!---------------------------------------------------------------------- 14 10 !! p4z_lim : Compute the nutrients limitation terms … … 268 264 END SUBROUTINE p4z_lim_init 269 265 270 #else271 !!======================================================================272 !! Dummy module : No PISCES bio-model273 !!======================================================================274 CONTAINS275 SUBROUTINE p4z_lim ! Empty routine276 END SUBROUTINE p4z_lim277 #endif278 279 266 !!====================================================================== 280 267 END MODULE p4zlim -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlys.F90
r7041 r7068 11 11 !! ! 2011-02 (J. Simeon, J. Orr) Calcon salinity dependence 12 12 !! 3.4 ! 2011-06 (O. Aumont, C. Ethe) Improvment of calcite dissolution 13 !!----------------------------------------------------------------------14 #if defined key_pisces15 !!----------------------------------------------------------------------16 !! 'key_pisces' PISCES bio-model17 13 !!---------------------------------------------------------------------- 18 14 !! p4z_lys : Compute the CaCO3 dissolution … … 204 200 END SUBROUTINE p4z_lys_init 205 201 206 #else207 !!======================================================================208 !! Dummy module : No PISCES bio-model209 !!======================================================================210 CONTAINS211 SUBROUTINE p4z_lys( kt ) ! Empty routine212 INTEGER, INTENT( in ) :: kt213 WRITE(*,*) 'p4z_lys: You should not have seen this print! error?', kt214 END SUBROUTINE p4z_lys215 #endif216 202 !!====================================================================== 217 203 END MODULE p4zlys -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90
r7041 r7068 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 8 !! 3.4 ! 2011-06 (O. Aumont, C. Ethe) Quota model for iron 9 !!----------------------------------------------------------------------10 #if defined key_pisces11 !!----------------------------------------------------------------------12 !! 'key_pisces' PISCES bio-model13 9 !!---------------------------------------------------------------------- 14 10 !! p4z_meso : Compute the sources/sinks for mesozooplankton … … 297 293 END SUBROUTINE p4z_meso_init 298 294 299 300 #else301 !!======================================================================302 !! Dummy module : No PISCES bio-model303 !!======================================================================304 CONTAINS305 SUBROUTINE p4z_meso ! Empty routine306 END SUBROUTINE p4z_meso307 #endif308 309 295 !!====================================================================== 310 296 END MODULE p4zmeso -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmicro.F90
r7041 r7068 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 8 !! 3.4 ! 2011-06 (O. Aumont, C. Ethe) Quota model for iron 9 !!----------------------------------------------------------------------10 #if defined key_pisces11 !!----------------------------------------------------------------------12 !! 'key_pisces' PISCES bio-model13 9 !!---------------------------------------------------------------------- 14 10 !! p4z_micro : Compute the sources/sinks for microzooplankton … … 250 246 END SUBROUTINE p4z_micro_init 251 247 252 #else253 !!======================================================================254 !! Dummy module : No PISCES bio-model255 !!======================================================================256 CONTAINS257 SUBROUTINE p4z_micro ! Empty routine258 END SUBROUTINE p4z_micro259 #endif260 261 248 !!====================================================================== 262 249 END MODULE p4zmicro -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmort.F90
r7041 r7068 6 6 !! History : 1.0 ! 2002 (O. Aumont) Original code 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 !!----------------------------------------------------------------------9 #if defined key_pisces10 !!----------------------------------------------------------------------11 !! 'key_pisces' PISCES bio-model12 8 !!---------------------------------------------------------------------- 13 9 !! p4z_mort : Compute the mortality terms for phytoplankton … … 245 241 END SUBROUTINE p4z_mort_init 246 242 247 #else248 !!======================================================================249 !! Dummy module : No PISCES bio-model250 !!======================================================================251 CONTAINS252 SUBROUTINE p4z_mort ! Empty routine253 END SUBROUTINE p4z_mort254 #endif255 256 243 !!====================================================================== 257 244 END MODULE p4zmort -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90
r7041 r7068 8 8 !! 3.2 ! 2009-04 (C. Ethe, G. Madec) optimisation 9 9 !! 3.4 ! 2011-06 (O. Aumont, C. Ethe) Improve light availability of nano & diat 10 !!----------------------------------------------------------------------11 #if defined key_pisces12 !!----------------------------------------------------------------------13 !! 'key_pisces' PISCES bio-model14 10 !!---------------------------------------------------------------------- 15 11 !! p4z_opt : light availability in the water column … … 421 417 END FUNCTION p4z_opt_alloc 422 418 423 #else424 !!----------------------------------------------------------------------425 !! Dummy module : No PISCES bio-model426 !!----------------------------------------------------------------------427 CONTAINS428 SUBROUTINE p4z_opt ! Empty routine429 END SUBROUTINE p4z_opt430 #endif431 432 419 !!====================================================================== 433 420 END MODULE p4zopt -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90
r7041 r7068 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 !!----------------------------------------------------------------------10 #if defined key_pisces11 !!----------------------------------------------------------------------12 !! 'key_pisces' PISCES bio-model13 9 !!---------------------------------------------------------------------- 14 10 !! p4z_prod : Compute the growth Rate of the two phytoplanktons groups … … 563 559 END FUNCTION p4z_prod_alloc 564 560 565 #else566 !!======================================================================567 !! Dummy module : No PISCES bio-model568 !!======================================================================569 CONTAINS570 SUBROUTINE p4z_prod ! Empty routine571 END SUBROUTINE p4z_prod572 #endif573 574 561 !!====================================================================== 575 562 END MODULE p4zprod -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90
r7041 r7068 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 8 !! 3.4 ! 2011-06 (O. Aumont, C. Ethe) Quota model for iron 9 !!----------------------------------------------------------------------10 #if defined key_pisces11 !!----------------------------------------------------------------------12 !! 'key_top' and TOP models13 !! 'key_pisces' PISCES bio-model14 9 !!---------------------------------------------------------------------- 15 10 !! p4z_rem : Compute remineralization/dissolution of organic compounds … … 350 345 END FUNCTION p4z_rem_alloc 351 346 352 #else353 !!======================================================================354 !! Dummy module : No PISCES bio-model355 !!======================================================================356 CONTAINS357 SUBROUTINE p4z_rem ! Empty routine358 END SUBROUTINE p4z_rem359 #endif360 361 347 !!====================================================================== 362 348 END MODULE p4zrem -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90
r6962 r7068 5 5 !!====================================================================== 6 6 !! History : 3.5 ! 2012-07 (O. Aumont, C. Ethe) Original code 7 !!----------------------------------------------------------------------8 #if defined key_pisces9 !!----------------------------------------------------------------------10 !! 'key_pisces' PISCES bio-model11 7 !!---------------------------------------------------------------------- 12 8 !! p4z_sbc : Read and interpolate time-varying nutrients fluxes … … 508 504 END SUBROUTINE p4z_sbc_init 509 505 510 #else511 !!======================================================================512 !! Dummy module : No PISCES bio-model513 !!======================================================================514 CONTAINS515 SUBROUTINE p4z_sbc ! Empty routine516 END SUBROUTINE p4z_sbc517 #endif518 519 506 !!====================================================================== 520 507 END MODULE p4zsbc -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90
r7041 r7068 8 8 !! 3.4 ! 2011-06 (C. Ethe) USE of fldread 9 9 !! 3.5 ! 2012-07 (O. Aumont) improvment of river input of nutrients 10 !!----------------------------------------------------------------------11 #if defined key_pisces12 !!----------------------------------------------------------------------13 !! 'key_pisces' PISCES bio-model14 10 !!---------------------------------------------------------------------- 15 11 !! p4z_sed : Compute loss of organic matter in the sediments … … 56 52 INTEGER, INTENT(in) :: kt, knt ! ocean time step 57 53 INTEGER :: ji, jj, jk, ikt 58 #if ! defined key_sed59 54 REAL(wp) :: zsumsedsi, zsumsedpo4, zsumsedcal 60 55 REAL(wp) :: zrivalk, zrivsil, zrivno3 61 #endif62 56 REAL(wp) :: zwflux, zfminus, zfplus 63 57 REAL(wp) :: zlim, zfact, zfactcal … … 205 199 END DO 206 200 207 #if ! defined key_sed 208 ! Computation of the sediment denitrification proportion: The metamodel from midlleburg (2006) is being used 209 ! Computation of the fraction of organic matter that is permanently buried from Dunne's model 210 ! ------------------------------------------------------- 211 DO jj = 1, jpj 212 DO ji = 1, jpi 213 IF( tmask(ji,jj,1) == 1 ) THEN 214 ikt = mbkt(ji,jj) 215 zflx = ( trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) & 216 & + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) ) * 1E3 * 1E6 / 1E4 217 zflx = LOG10( MAX( 1E-3, zflx ) ) 218 zo2 = LOG10( MAX( 10. , trb(ji,jj,ikt,jpoxy) * 1E6 ) ) 219 zno3 = LOG10( MAX( 1. , trb(ji,jj,ikt,jpno3) * 1E6 * rno3 ) ) 220 zdep = LOG10( gdepw_n(ji,jj,ikt+1) ) 221 zdenit2d(ji,jj) = -2.2567 - 1.185 * zflx - 0.221 * zflx**2 - 0.3995 * zno3 * zo2 + 1.25 * zno3 & 222 & + 0.4721 * zo2 - 0.0996 * zdep + 0.4256 * zflx * zo2 223 zdenit2d(ji,jj) = 10.0**( zdenit2d(ji,jj) ) 224 ! 225 zflx = ( trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) & 226 & + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) ) * 1E6 227 zbureff(ji,jj) = 0.013 + 0.53 * zflx**2 / ( 7.0 + zflx )**2 228 ENDIF 229 END DO 230 END DO 231 232 ! Loss of biogenic silicon, Caco3 organic carbon in the sediments. 233 ! First, the total loss is computed. 234 ! The factor for calcite comes from the alkalinity effect 235 ! ------------------------------------------------------------- 236 DO jj = 1, jpj 237 DO ji = 1, jpi 238 IF( tmask(ji,jj,1) == 1 ) THEN 239 ikt = mbkt(ji,jj) 240 zwork1(ji,jj) = trb(ji,jj,ikt,jpgsi) * zwsbio4(ji,jj) 241 zwork2(ji,jj) = trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) 242 ! For calcite, burial efficiency is made a function of saturation 243 zfactcal = MIN( excess(ji,jj,ikt), 0.2 ) 244 zfactcal = MIN( 1., 1.3 * ( 0.2 - zfactcal ) / ( 0.4 - zfactcal ) ) 245 zwork3(ji,jj) = trb(ji,jj,ikt,jpcal) * zwscal(ji,jj) * 2.e0 * zfactcal 246 ENDIF 247 END DO 248 END DO 249 zsumsedsi = glob_sum( zwork1(:,:) * e1e2t(:,:) ) * r1_rday 250 zsumsedpo4 = glob_sum( zwork2(:,:) * e1e2t(:,:) ) * r1_rday 251 zsumsedcal = glob_sum( zwork3(:,:) * e1e2t(:,:) ) * r1_rday 252 #endif 201 IF( .NOT.lk_sed ) THEN 202 ! Computation of the sediment denitrification proportion: The metamodel from midlleburg (2006) is being used 203 ! Computation of the fraction of organic matter that is permanently buried from Dunne's model 204 ! ------------------------------------------------------- 205 DO jj = 1, jpj 206 DO ji = 1, jpi 207 IF( tmask(ji,jj,1) == 1 ) THEN 208 ikt = mbkt(ji,jj) 209 zflx = ( trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) & 210 & + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) ) * 1E3 * 1E6 / 1E4 211 zflx = LOG10( MAX( 1E-3, zflx ) ) 212 zo2 = LOG10( MAX( 10. , trb(ji,jj,ikt,jpoxy) * 1E6 ) ) 213 zno3 = LOG10( MAX( 1. , trb(ji,jj,ikt,jpno3) * 1E6 * rno3 ) ) 214 zdep = LOG10( gdepw_n(ji,jj,ikt+1) ) 215 zdenit2d(ji,jj) = -2.2567 - 1.185 * zflx - 0.221 * zflx**2 - 0.3995 * zno3 * zo2 + 1.25 * zno3 & 216 & + 0.4721 * zo2 - 0.0996 * zdep + 0.4256 * zflx * zo2 217 zdenit2d(ji,jj) = 10.0**( zdenit2d(ji,jj) ) 218 ! 219 zflx = ( trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) & 220 & + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) ) * 1E6 221 zbureff(ji,jj) = 0.013 + 0.53 * zflx**2 / ( 7.0 + zflx )**2 222 ENDIF 223 END DO 224 END DO 225 226 ! Loss of biogenic silicon, Caco3 organic carbon in the sediments. 227 ! First, the total loss is computed. 228 ! The factor for calcite comes from the alkalinity effect 229 ! ------------------------------------------------------------- 230 DO jj = 1, jpj 231 DO ji = 1, jpi 232 IF( tmask(ji,jj,1) == 1 ) THEN 233 ikt = mbkt(ji,jj) 234 zwork1(ji,jj) = trb(ji,jj,ikt,jpgsi) * zwsbio4(ji,jj) 235 zwork2(ji,jj) = trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) 236 ! For calcite, burial efficiency is made a function of saturation 237 zfactcal = MIN( excess(ji,jj,ikt), 0.2 ) 238 zfactcal = MIN( 1., 1.3 * ( 0.2 - zfactcal ) / ( 0.4 - zfactcal ) ) 239 zwork3(ji,jj) = trb(ji,jj,ikt,jpcal) * zwscal(ji,jj) * 2.e0 * zfactcal 240 ENDIF 241 END DO 242 END DO 243 zsumsedsi = glob_sum( zwork1(:,:) * e1e2t(:,:) ) * r1_rday 244 zsumsedpo4 = glob_sum( zwork2(:,:) * e1e2t(:,:) ) * r1_rday 245 zsumsedcal = glob_sum( zwork3(:,:) * e1e2t(:,:) ) * r1_rday 246 ! 247 ENDIF 253 248 254 249 ! This loss is scaled at each bottom grid cell for equilibrating the total budget of silica in the ocean. 255 250 ! Thus, the amount of silica lost in the sediments equal the supply at the surface (dust+rivers) 256 251 ! ------------------------------------------------------ 257 #if ! defined key_sed 258 zrivsil = 1._wp - ( sumdepsi + rivdsiinput * r1_ryyss ) / ( zsumsedsi + rtrn ) 259 #endif 252 IF( .NOT.lk_sed ) zrivsil = 1._wp - ( sumdepsi + rivdsiinput * r1_ryyss ) / ( zsumsedsi + rtrn ) 260 253 261 254 DO jj = 1, jpj … … 270 263 tra(ji,jj,ikt,jpgsi) = tra(ji,jj,ikt,jpgsi) - zsiloss 271 264 tra(ji,jj,ikt,jpcal) = tra(ji,jj,ikt,jpcal) - zcaloss 272 #if ! defined key_sed 273 tra(ji,jj,ikt,jpsil) = tra(ji,jj,ikt,jpsil) + zsiloss * zrivsil274 zfactcal = MIN( excess(ji,jj,ikt), 0.2 )275 zfactcal = MIN( 1., 1.3 * ( 0.2 - zfactcal ) / ( 0.4 - zfactcal ) )276 zrivalk = 1._wp - ( rivalkinput * r1_ryyss ) * zfactcal / ( zsumsedcal + rtrn )277 tra(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + zcaloss * zrivalk * 2.0278 tra(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zcaloss * zrivalk279 #endif 265 IF( .NOT.lk_sed ) THEN 266 tra(ji,jj,ikt,jpsil) = tra(ji,jj,ikt,jpsil) + zsiloss * zrivsil 267 zfactcal = MIN( excess(ji,jj,ikt), 0.2 ) 268 zfactcal = MIN( 1., 1.3 * ( 0.2 - zfactcal ) / ( 0.4 - zfactcal ) ) 269 zrivalk = 1._wp - ( rivalkinput * r1_ryyss ) * zfactcal / ( zsumsedcal + rtrn ) 270 tra(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + zcaloss * zrivalk * 2.0 271 tra(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zcaloss * zrivalk 272 ENDIF 280 273 END DO 281 274 END DO … … 294 287 zwstpoc = trb(ji,jj,ikt,jpgoc) * zws4 + trb(ji,jj,ikt,jppoc) * zws3 295 288 296 #if ! defined key_sed 297 ! The 0.5 factor in zpdenit and zdenitt is to avoid negative NO3 concentration after both denitrification298 ! in the sediments and just above the sediments. Not very clever, but simpliest option.299 zpdenit = MIN( 0.5 * ( trb(ji,jj,ikt,jpno3) - rtrn ) / rdenit, zdenit2d(ji,jj) * zwstpoc * zrivno3 )300 z1pdenit = zwstpoc * zrivno3 - zpdenit301 zolimit = MIN( ( trb(ji,jj,ikt,jpoxy) - rtrn ) / o2ut, z1pdenit * ( 1.- nitrfac(ji,jj,ikt) ) )302 zdenitt = MIN( 0.5 * ( trb(ji,jj,ikt,jpno3) - rtrn ) / rdenit, z1pdenit * nitrfac(ji,jj,ikt) )303 tra(ji,jj,ikt,jpdoc) = tra(ji,jj,ikt,jpdoc) + z1pdenit - zolimit - zdenitt304 tra(ji,jj,ikt,jppo4) = tra(ji,jj,ikt,jppo4) + zpdenit + zolimit + zdenitt305 tra(ji,jj,ikt,jpnh4) = tra(ji,jj,ikt,jpnh4) + zpdenit + zolimit + zdenitt306 tra(ji,jj,ikt,jpno3) = tra(ji,jj,ikt,jpno3) - rdenit * (zpdenit + zdenitt)307 tra(ji,jj,ikt,jpoxy) = tra(ji,jj,ikt,jpoxy) - zolimit * o2ut308 tra(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + rno3 * (zolimit + (1.+rdenit) * (zpdenit + zdenitt) )309 tra(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zpdenit + zolimit + zdenitt310 sdenit(ji,jj) = rdenit * zpdenit * e3t_n(ji,jj,ikt)311 #endif 289 IF( .NOT.lk_sed ) THEN 290 ! The 0.5 factor in zpdenit and zdenitt is to avoid negative NO3 concentration after both denitrification 291 ! in the sediments and just above the sediments. Not very clever, but simpliest option. 292 zpdenit = MIN( 0.5 * ( trb(ji,jj,ikt,jpno3) - rtrn ) / rdenit, zdenit2d(ji,jj) * zwstpoc * zrivno3 ) 293 z1pdenit = zwstpoc * zrivno3 - zpdenit 294 zolimit = MIN( ( trb(ji,jj,ikt,jpoxy) - rtrn ) / o2ut, z1pdenit * ( 1.- nitrfac(ji,jj,ikt) ) ) 295 zdenitt = MIN( 0.5 * ( trb(ji,jj,ikt,jpno3) - rtrn ) / rdenit, z1pdenit * nitrfac(ji,jj,ikt) ) 296 tra(ji,jj,ikt,jpdoc) = tra(ji,jj,ikt,jpdoc) + z1pdenit - zolimit - zdenitt 297 tra(ji,jj,ikt,jppo4) = tra(ji,jj,ikt,jppo4) + zpdenit + zolimit + zdenitt 298 tra(ji,jj,ikt,jpnh4) = tra(ji,jj,ikt,jpnh4) + zpdenit + zolimit + zdenitt 299 tra(ji,jj,ikt,jpno3) = tra(ji,jj,ikt,jpno3) - rdenit * (zpdenit + zdenitt) 300 tra(ji,jj,ikt,jpoxy) = tra(ji,jj,ikt,jpoxy) - zolimit * o2ut 301 tra(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + rno3 * (zolimit + (1.+rdenit) * (zpdenit + zdenitt) ) 302 tra(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zpdenit + zolimit + zdenitt 303 sdenit(ji,jj) = rdenit * zpdenit * e3t_n(ji,jj,ikt) 304 ENDIF 312 305 END DO 313 306 END DO … … 392 385 393 386 394 #else395 !!======================================================================396 !! Dummy module : No PISCES bio-model397 !!======================================================================398 CONTAINS399 SUBROUTINE p4z_sed ! Empty routine400 END SUBROUTINE p4z_sed401 #endif402 403 387 !!====================================================================== 404 388 END MODULE p4zsed -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90
r7041 r7068 8 8 !! 3.4 ! 2011-06 (O. Aumont, C. Ethe) Change aggregation formula 9 9 !! 3.5 ! 2012-07 (O. Aumont) Introduce potential time-splitting 10 !!----------------------------------------------------------------------11 #if defined key_pisces12 10 !!---------------------------------------------------------------------- 13 11 !! p4z_sink : Compute vertical flux of particulate matter due to gravitational sinking … … 409 407 END FUNCTION p4z_sink_alloc 410 408 411 #else412 !!======================================================================413 !! Dummy module : No PISCES bio-model414 !!======================================================================415 CONTAINS416 SUBROUTINE p4z_sink ! Empty routine417 END SUBROUTINE p4z_sink418 #endif419 420 409 !!====================================================================== 421 410 END MODULE p4zsink -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsms.F90
r7041 r7068 6 6 !! History : 1.0 ! 2004-03 (O. Aumont) Original code 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 !!----------------------------------------------------------------------9 #if defined key_pisces10 !!----------------------------------------------------------------------11 !! 'key_pisces' PISCES bio-model12 8 !!---------------------------------------------------------------------- 13 9 !! p4zsms : Time loop of passive tracers sms … … 546 542 END SUBROUTINE p4z_chk_mass 547 543 548 #else549 !!======================================================================550 !! Dummy module : No PISCES bio-model551 !!======================================================================552 CONTAINS553 SUBROUTINE p4z_sms( kt ) ! Empty routine554 INTEGER, INTENT( in ) :: kt555 WRITE(*,*) 'p4z_sms: You should not have seen this print! error?', kt556 END SUBROUTINE p4z_sms557 #endif558 559 544 !!====================================================================== 560 545 END MODULE p4zsms
Note: See TracChangeset
for help on using the changeset viewer.