- Timestamp:
- 2016-10-21T17:38:13+02:00 (8 years ago)
- Location:
- branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES
- Files:
-
- 30 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zbio.F90
r7041 r7068 8 8 !! - ! 2001-03 (M. Levy) LNO3 + dia2d 9 9 !! 2.0 ! 2007-12 (C. Deltel, G. Madec) F90 10 !!----------------------------------------------------------------------11 #if defined key_pisces12 !!----------------------------------------------------------------------13 !! 'key_pisces' LOBSTER bio-model14 10 !!---------------------------------------------------------------------- 15 11 !! p2z_bio : … … 506 502 END SUBROUTINE p2z_bio_init 507 503 508 #else509 !!======================================================================510 !! Dummy module : No PISCES bio-model511 !!======================================================================512 CONTAINS513 SUBROUTINE p2z_bio( kt ) ! Empty routine514 INTEGER, INTENT( in ) :: kt515 WRITE(*,*) 'p2z_bio: You should not have seen this print! error?', kt516 END SUBROUTINE p2z_bio517 #endif518 519 504 !!====================================================================== 520 505 END MODULE p2zbio -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zexp.F90
r7041 r7068 9 9 !! 2.0 ! 2007-12 (C. Deltel, G. Madec) F90 10 10 !! 3.5 ! 2012-03 (C. Ethe) Merge PISCES-LOBSTER 11 !!----------------------------------------------------------------------12 #if defined key_pisces13 !!----------------------------------------------------------------------14 !! 'key_pisces' LOBSTER bio-model15 11 !!---------------------------------------------------------------------- 16 12 !! p2z_exp : Compute loss of organic matter in the sediments … … 265 261 END FUNCTION p2z_exp_alloc 266 262 267 #else268 !!======================================================================269 !! Dummy module : No PISCES bio-model270 !!======================================================================271 CONTAINS272 SUBROUTINE p2z_exp( kt ) ! Empty routine273 INTEGER, INTENT( in ) :: kt274 WRITE(*,*) 'p2z_exp: You should not have seen this print! error?', kt275 END SUBROUTINE p2z_exp276 #endif277 278 263 !!====================================================================== 279 264 END MODULE p2zexp -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zopt.F90
r7041 r7068 10 10 !! NEMO 2.0 ! 2007-12 (C. Deltel, G. Madec) F90 11 11 !! 3.2 ! 2009-04 (C. Ethe, G. Madec) minor optimisation + style 12 !!----------------------------------------------------------------------13 #if defined key_pisces14 !!----------------------------------------------------------------------15 !! 'key_pisces' LOBSTER bio-model16 12 !!---------------------------------------------------------------------- 17 13 !! p2z_opt : Compute the light availability in the water column … … 208 204 END SUBROUTINE p2z_opt_init 209 205 210 #else211 !!======================================================================212 !! Dummy module : No PISCES bio-model213 !!======================================================================214 CONTAINS215 SUBROUTINE p2z_opt( kt ) ! Empty routine216 INTEGER, INTENT( in ) :: kt217 WRITE(*,*) 'p2z_opt: You should not have seen this print! error?', kt218 END SUBROUTINE p2z_opt219 #endif220 221 206 !!====================================================================== 222 207 END MODULE p2zopt -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsed.F90
r7041 r7068 7 7 !! - ! 2000-12 (E. Kestenare) clean up 8 8 !! 2.0 ! 2007-12 (C. Deltel, G. Madec) F90 + simplifications 9 !!----------------------------------------------------------------------10 #if defined key_pisces11 !!----------------------------------------------------------------------12 !! 'key_pisces' LOBSTER bio-model13 9 !!---------------------------------------------------------------------- 14 10 !! p2z_sed : Compute loss of organic matter in the sediments … … 159 155 END SUBROUTINE p2z_sed_init 160 156 161 #else162 !!======================================================================163 !! Dummy module : No PISCES bio-model164 !!======================================================================165 CONTAINS166 SUBROUTINE p2z_sed( kt ) ! Empty routine167 INTEGER, INTENT( in ) :: kt168 WRITE(*,*) 'p2z_sed: You should not have seen this print! error?', kt169 END SUBROUTINE p2z_sed170 #endif171 172 157 !!====================================================================== 173 158 END MODULE p2zsed -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsms.F90
r7041 r7068 6 6 !! History : 1.0 ! M. Levy 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) revised architecture 8 !!----------------------------------------------------------------------9 #if defined key_pisces10 !!----------------------------------------------------------------------11 !! 'key_pisces' LOBSTER bio-model12 8 !!---------------------------------------------------------------------- 13 9 !! p2zsms : Time loop of passive tracers sms … … 72 68 END SUBROUTINE p2z_sms 73 69 74 #else75 !!======================================================================76 !! Dummy module : No passive tracer77 !!======================================================================78 CONTAINS79 SUBROUTINE p2z_sms( kt ) ! Empty routine80 INTEGER, INTENT( in ) :: kt81 WRITE(*,*) 'p2z_sms: You should not have seen this print! error?', kt82 END SUBROUTINE p2z_sms83 #endif84 85 70 !!====================================================================== 86 71 END MODULE p2zsms -
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 -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/SED/sedmodel.F90
r5215 r7068 15 15 PUBLIC sed_model ! called by step.F90 16 16 17 LOGICAL, PUBLIC, PARAMETER :: lk_sed = .TRUE. !: sediment flag18 19 !! $Id$20 17 CONTAINS 21 18 … … 47 44 !! MODULE sedmodel : Dummy module 48 45 !!====================================================================== 49 LOGICAL, PUBLIC, PARAMETER :: lk_sed = .FALSE. !: sediment flag50 !! $Id$51 46 CONTAINS 52 47 SUBROUTINE sed_model( kt ) ! Empty routine -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/par_pisces.F90
r7041 r7068 13 13 IMPLICIT NONE 14 14 15 INTEGER, PUBLIC :: jp_pisces !: number of passive tracers in PISCES16 17 #if defined key_pisces18 !!---------------------------------------------------------------------19 !! 'key_pisces : PISCES bio-model20 !!---------------------------------------------------------------------21 LOGICAL, PUBLIC, PARAMETER :: lk_pisces = .TRUE. !: PISCES flag22 15 ! productive layer depth 23 INTEGER, PUBLIC :: jpkb !: first vertical layers where biology is active 24 INTEGER, PUBLIC :: jpkbm1 !: first vertical layers where biology is active 25 26 #else 27 !!--------------------------------------------------------------------- 28 LOGICAL, PUBLIC, PARAMETER :: lk_pisces = .FALSE. !: PISCES flag 29 #endif 16 INTEGER, PUBLIC :: jpkb !: first vertical layers where biology is active 17 INTEGER, PUBLIC :: jpkbm1 !: first vertical layers where biology is active 30 18 31 19 ! assign an index in trc arrays for each LOBSTER prognostic variables -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/sms_pisces.F90
r7041 r7068 6 6 !! History : 1.0 ! 2000-02 (O. Aumont) original code 7 7 !! 3.2 ! 2009-04 (C. Ethe & NEMO team) style 8 !!----------------------------------------------------------------------9 #if defined key_pisces10 !!----------------------------------------------------------------------11 !! 'key_pisces' PISCES model12 8 !!---------------------------------------------------------------------- 13 9 USE par_oce … … 112 108 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tgfunc2 !: Temp. dependancy of mesozooplankton rates 113 109 110 #if defined key_sed 111 LOGICAL, PUBLIC, PARAMETER :: lk_sed = .TRUE. !: sediment flag 112 #else 113 LOGICAL, PUBLIC, PARAMETER :: lk_sed = .FALSE. !: sediment flag 114 #endif 114 115 115 116 !!---------------------------------------------------------------------- … … 165 166 END FUNCTION sms_pisces_alloc 166 167 167 #else168 !!----------------------------------------------------------------------169 !! Empty module : NO PISCES model170 !!----------------------------------------------------------------------171 #endif172 173 168 !!====================================================================== 174 169 END MODULE sms_pisces -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcice_pisces.F90
r7041 r7068 5 5 !!====================================================================== 6 6 !! History : 3.5 ! 2013 (M. Vancoppenolle, O. Aumont, G. Madec), original code 7 !!----------------------------------------------------------------------8 #if defined key_pisces9 !!----------------------------------------------------------------------10 !! 'key_pisces' PISCES bio-model11 7 !!---------------------------------------------------------------------- 12 8 !! trc_ice_pisces : PISCES fake sea ice model setting … … 276 272 277 273 278 #else279 !!----------------------------------------------------------------------280 !! Dummy module No PISCES biochemical model281 !!----------------------------------------------------------------------282 CONTAINS283 SUBROUTINE trc_ice_ini_pisces ! Empty routine284 END SUBROUTINE trc_ice_ini_pisces285 #endif286 287 274 !!====================================================================== 288 275 END MODULE trcice_pisces -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcini_pisces.F90
r7041 r7068 10 10 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) from trcini.pisces.h90 11 11 !! 3.5 ! 2012-05 (C. Ethe) Merge PISCES-LOBSTER 12 !!----------------------------------------------------------------------13 #if defined key_pisces14 !!----------------------------------------------------------------------15 !! 'key_pisces' PISCES bio-model16 12 !!---------------------------------------------------------------------- 17 13 !! trc_ini_pisces : PISCES biochemical model initialisation … … 135 131 ENDDO 136 132 137 jp_pisces = 24138 jp_pcs0 = MIN( jpdic, jptal, jpoxy, jpcal, jppo4, jppoc, jpsil, &139 & jpphy, jpzoo, jpdoc, jpdia, jpmes, jpdsi, jpfer, &140 & jpbfe, jpgoc, jpsfe, jpdfe, jpgsi, jpnfe, jpnch, &141 & jpdch, jpno3, jpnh4 )142 143 jp_pcs1 = jp_pcs0 + jp_pisces - 1144 145 146 IF( lwp ) THEN147 WRITE(numout,*) ''148 WRITE(numout,*) ' First index of PISCES model in the passive tracer array jp_pcs0 = ', jp_pcs0149 WRITE(numout,*) ' Last index of PISCES model in the passive tracer array jp_pcs1 = ', jp_pcs1150 WRITE(numout,*)151 ENDIF152 153 154 133 CALL p4z_sms_init ! Maint routine 155 134 ! ! Time-step … … 257 236 ENDDO 258 237 259 260 jp_pcs0 = MIN( jpdet, jpzoo, jpphy, jpno3, jpnh4, jpdom )261 jp_pcs1 = jp_pcs0 + jp_pisces - 1262 263 264 IF( lwp ) THEN265 WRITE(numout,*) ''266 WRITE(numout,*) ' First index of LOBSTER model in the passive tracer array jp_pcs0 = ', jp_pcs0267 WRITE(numout,*) ' Last index of LOBSTER model in the passive tracer array jp_pcs1 = ', jp_pcs1268 WRITE(numout,*)269 ENDIF270 271 272 238 jpkb = 10 ! last level where depth less than 200 m 273 239 DO jk = jpkm1, 1, -1 … … 304 270 ! 305 271 END SUBROUTINE p2z_ini 306 #else307 !!----------------------------------------------------------------------308 !! Dummy module No PISCES biochemical model309 !!----------------------------------------------------------------------310 CONTAINS311 SUBROUTINE trc_ini_pisces ! Empty routine312 END SUBROUTINE trc_ini_pisces313 #endif314 272 315 273 !!====================================================================== -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcnam_pisces.F90
r7041 r7068 8 8 !! 1.0 ! 2003-08 (C. Ethe) module F90 9 9 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) from trcnam.pisces.h90 10 !!----------------------------------------------------------------------11 #if defined key_pisces12 !!----------------------------------------------------------------------13 !! 'key_pisces' : PISCES bio-model14 10 !!---------------------------------------------------------------------- 15 11 !! trc_nam_pisces : PISCES model namelist read … … 74 70 75 71 IF(lwp) THEN ! control print 76 WRITE(numout,*) ' Namelist : nampismod' 77 WRITE(numout,*) ' PISCES model ln_p4z =', ln_p4z 78 WRITE(numout,*) ' LOBSTER model ln_p2z =', ln_p2z 72 WRITE(numout,*) ' ' 73 IF( ln_p4z ) WRITE(numout,*) ' PISCES model is used' 74 IF( ln_p2z ) WRITE(numout,*) ' LOBSTER model is used' 75 WRITE(numout,*) ' ' 79 76 ENDIF 80 77 … … 87 84 END SUBROUTINE trc_nam_pisces 88 85 89 #else90 !!----------------------------------------------------------------------91 !! Dummy module : No PISCES bio-model92 !!----------------------------------------------------------------------93 CONTAINS94 SUBROUTINE trc_nam_pisces ! Empty routine95 END SUBROUTINE trc_nam_pisces96 #endif97 98 86 !!====================================================================== 99 87 END MODULE trcnam_pisces -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcsms_pisces.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 !! trcsms_pisces : Time loop of passive tracers sms … … 56 52 END SUBROUTINE trc_sms_pisces 57 53 58 #else59 !!======================================================================60 !! Dummy module : No PISCES bio-model61 !!======================================================================62 CONTAINS63 SUBROUTINE trc_sms_pisces( kt ) ! Empty routine64 INTEGER, INTENT( in ) :: kt65 WRITE(*,*) 'trc_sms_pisces: You should not have seen this print! error?', kt66 END SUBROUTINE trc_sms_pisces67 #endif68 69 54 !!====================================================================== 70 55 END MODULE trcsms_pisces -
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcwri_pisces.F90
r7041 r7068 6 6 !! History : 1.0 ! 2009-05 (C. Ethe) Original code 7 7 !!---------------------------------------------------------------------- 8 #if defined key_top && defined key_pisces && defined key_iomput 9 !!---------------------------------------------------------------------- 10 !! 'key_pisces PISCES model 8 #if defined key_top && defined key_iomput 11 9 !!---------------------------------------------------------------------- 12 10 !! trc_wri_pisces : outputs of concentration fields
Note: See TracChangeset
for help on using the changeset viewer.