Changeset 7646 for trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z
- Timestamp:
- 2017-02-06T10:25:03+01:00 (7 years ago)
- Location:
- trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zbio.F90
r6140 r7646 8 8 !! - ! 2001-03 (M. Levy) LNO3 + dia2d 9 9 !! 2.0 ! 2007-12 (C. Deltel, G. Madec) F90 10 !!----------------------------------------------------------------------11 #if defined key_pisces_reduced12 !!----------------------------------------------------------------------13 !! 'key_pisces_reduced' LOBSTER bio-model14 10 !!---------------------------------------------------------------------- 15 11 !! p2z_bio : … … 86 82 !! source sink 87 83 !! 88 !! IF 'key_diabio' defined , the biogeochemical trends89 !! for passive tracers are saved for futher diagnostics.90 84 !!--------------------------------------------------------------------- 91 85 !! … … 109 103 IF( nn_timing == 1 ) CALL timing_start('p2z_bio') 110 104 ! 111 IF( l n_diatrc .OR. lk_iomput ) THEN105 IF( lk_iomput ) THEN 112 106 CALL wrk_alloc( jpi, jpj, 17, zw2d ) 113 107 CALL wrk_alloc( jpi, jpj, jpk, 3, zw3d ) … … 121 115 122 116 xksi(:,:) = 0.e0 ! zooplakton closure ( fbod) 123 IF( l n_diatrc .OR. lk_iomput ) THEN117 IF( lk_iomput ) THEN 124 118 zw2d (:,:,:) = 0.e0 125 119 zw3d(:,:,:,:) = 0.e0 … … 218 212 tra(ji,jj,jk,jpdom) = tra(ji,jj,jk,jpdom) + zdoma 219 213 220 221 IF( ( ln_diabio .AND. .NOT. lk_iomput ) .OR. l_trdtrc ) THEN 222 trbio(ji,jj,jk,jp_pcs0_trd ) = zno3phy 223 trbio(ji,jj,jk,jp_pcs0_trd + 1) = znh4phy 224 trbio(ji,jj,jk,jp_pcs0_trd + 2) = zphynh4 225 trbio(ji,jj,jk,jp_pcs0_trd + 3) = zphydom 226 trbio(ji,jj,jk,jp_pcs0_trd + 4) = zphyzoo 227 trbio(ji,jj,jk,jp_pcs0_trd + 5) = zphydet 228 trbio(ji,jj,jk,jp_pcs0_trd + 6) = zdetzoo 229 ! trend number 8 in p2zsed 230 trbio(ji,jj,jk,jp_pcs0_trd + 8) = zzoodet 231 trbio(ji,jj,jk,jp_pcs0_trd + 9) = zzoobod 232 trbio(ji,jj,jk,jp_pcs0_trd + 10) = zzoonh4 233 trbio(ji,jj,jk,jp_pcs0_trd + 11) = zzoodom 234 trbio(ji,jj,jk,jp_pcs0_trd + 12) = znh4no3 235 trbio(ji,jj,jk,jp_pcs0_trd + 13) = zdomnh4 236 trbio(ji,jj,jk,jp_pcs0_trd + 14) = zdetnh4 237 trbio(ji,jj,jk,jp_pcs0_trd + 15) = zdetdom 238 ! trend number 17 in p2zexp 239 ENDIF 240 IF( ln_diatrc .OR. lk_iomput ) THEN 214 IF( lk_iomput ) THEN 241 215 ! convert fluxes in per day 242 216 ze3t = e3t_n(ji,jj,jk) * 86400._wp … … 340 314 tra(ji,jj,jk,jpdom) = tra(ji,jj,jk,jpdom) + zdoma 341 315 ! 342 IF( ( ln_diabio .AND. .NOT. lk_iomput ) .OR. l_trdtrc ) THEN 343 trbio(ji,jj,jk,jp_pcs0_trd ) = zno3phy 344 trbio(ji,jj,jk,jp_pcs0_trd + 1) = znh4phy 345 trbio(ji,jj,jk,jp_pcs0_trd + 2) = zphynh4 346 trbio(ji,jj,jk,jp_pcs0_trd + 3) = zphydom 347 trbio(ji,jj,jk,jp_pcs0_trd + 4) = zphyzoo 348 trbio(ji,jj,jk,jp_pcs0_trd + 5) = zphydet 349 trbio(ji,jj,jk,jp_pcs0_trd + 6) = zdetzoo 350 ! trend number 8 in p2zsed 351 trbio(ji,jj,jk,jp_pcs0_trd + 8) = zzoodet 352 trbio(ji,jj,jk,jp_pcs0_trd + 9) = zzoobod 353 trbio(ji,jj,jk,jp_pcs0_trd + 10) = zzoonh4 354 trbio(ji,jj,jk,jp_pcs0_trd + 11) = zzoodom 355 trbio(ji,jj,jk,jp_pcs0_trd + 12) = znh4no3 356 trbio(ji,jj,jk,jp_pcs0_trd + 13) = zdomnh4 357 trbio(ji,jj,jk,jp_pcs0_trd + 14) = zdetnh4 358 trbio(ji,jj,jk,jp_pcs0_trd + 15) = zdetdom 359 ! trend number 17 in p2zexp 360 ENDIF 361 IF( ln_diatrc .OR. lk_iomput ) THEN 316 IF( lk_iomput ) THEN 362 317 ! convert fluxes in per day 363 318 ze3t = e3t_n(ji,jj,jk) * 86400._wp … … 389 344 END DO 390 345 391 IF( l n_diatrc .OR. lk_iomput ) THEN346 IF( lk_iomput ) THEN 392 347 DO jl = 1, 17 393 348 CALL lbc_lnk( zw2d(:,:,jl),'T', 1. ) … … 420 375 CALL iom_put( "FNH4NO3", zw3d(:,:,:,3) ) 421 376 ! 422 ELSE423 IF( ln_diatrc ) THEN424 !425 trc2d(:,:,jp_pcs0_2d ) = zw2d(:,:,1)426 trc2d(:,:,jp_pcs0_2d + 1) = zw2d(:,:,2)427 trc2d(:,:,jp_pcs0_2d + 2) = zw2d(:,:,3)428 trc2d(:,:,jp_pcs0_2d + 3) = zw2d(:,:,4)429 trc2d(:,:,jp_pcs0_2d + 4) = zw2d(:,:,5)430 trc2d(:,:,jp_pcs0_2d + 5) = zw2d(:,:,6)431 trc2d(:,:,jp_pcs0_2d + 6) = zw2d(:,:,7)432 ! trend number 8 is in p2zsed.F433 trc2d(:,:,jp_pcs0_2d + 8) = zw2d(:,:,8)434 trc2d(:,:,jp_pcs0_2d + 9) = zw2d(:,:,9)435 trc2d(:,:,jp_pcs0_2d + 10) = zw2d(:,:,10)436 trc2d(:,:,jp_pcs0_2d + 11) = zw2d(:,:,11)437 trc2d(:,:,jp_pcs0_2d + 12) = zw2d(:,:,12)438 trc2d(:,:,jp_pcs0_2d + 13) = zw2d(:,:,13)439 trc2d(:,:,jp_pcs0_2d + 14) = zw2d(:,:,14)440 trc2d(:,:,jp_pcs0_2d + 15) = zw2d(:,:,15)441 trc2d(:,:,jp_pcs0_2d + 16) = zw2d(:,:,16)442 trc2d(:,:,jp_pcs0_2d + 17) = zw2d(:,:,17)443 ! trend number 19 is in p2zexp.F444 trc3d(:,:,:,jp_pcs0_3d ) = zw3d(:,:,:,1)445 trc3d(:,:,:,jp_pcs0_3d + 1) = zw3d(:,:,:,2)446 trc3d(:,:,:,jp_pcs0_3d + 2) = zw3d(:,:,:,3)447 ENDIF448 !449 ENDIF450 451 IF( ln_diabio .AND. .NOT. lk_iomput ) THEN452 DO jl = jp_pcs0_trd, jp_pcs1_trd453 CALL lbc_lnk( trbio(:,:,1,jl),'T', 1. )454 END DO455 ENDIF456 !457 IF( l_trdtrc ) THEN458 DO jl = jp_pcs0_trd, jp_pcs1_trd459 CALL trd_trc( trbio(:,:,:,jl), jl, kt ) ! handle the trend460 END DO461 377 ENDIF 462 378 … … 467 383 ENDIF 468 384 ! 469 IF( l n_diatrc .OR. lk_iomput ) THEN385 IF( lk_iomput ) THEN 470 386 CALL wrk_dealloc( jpi, jpj, 17, zw2d ) 471 387 CALL wrk_dealloc( jpi, jpj, jpk, 3, zw3d ) … … 586 502 END SUBROUTINE p2z_bio_init 587 503 588 #else589 !!======================================================================590 !! Dummy module : No PISCES bio-model591 !!======================================================================592 CONTAINS593 SUBROUTINE p2z_bio( kt ) ! Empty routine594 INTEGER, INTENT( in ) :: kt595 WRITE(*,*) 'p2z_bio: You should not have seen this print! error?', kt596 END SUBROUTINE p2z_bio597 #endif598 599 504 !!====================================================================== 600 505 END MODULE p2zbio -
trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zexp.F90
r6140 r7646 10 10 !! 3.5 ! 2012-03 (C. Ethe) Merge PISCES-LOBSTER 11 11 !!---------------------------------------------------------------------- 12 #if defined key_pisces_reduced13 !!----------------------------------------------------------------------14 !! 'key_pisces_reduced' LOBSTER bio-model15 !!----------------------------------------------------------------------16 12 !! p2z_exp : Compute loss of organic matter in the sediments 17 13 !!---------------------------------------------------------------------- … … 68 64 INTEGER :: ji, jj, jk, jl, ikt 69 65 REAL(wp) :: zgeolpoc, zfact, zwork, ze3t, zsedpocd, zmaskt 70 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrbio71 66 REAL(wp), POINTER, DIMENSION(:,:) :: zsedpoca 72 67 CHARACTER (len=25) :: charout … … 80 75 zsedpoca(:,:) = 0. 81 76 82 IF( l_trdtrc ) THEN83 CALL wrk_alloc( jpi, jpj, jpk, ztrbio ) ! temporary save of trends84 ztrbio(:,:,:) = tra(:,:,:,jpno3)85 ENDIF86 77 87 78 ! VERTICAL DISTRIBUTION OF NEWLY PRODUCED BIOGENIC … … 126 117 127 118 ! Oa & Ek: diagnostics depending on jpdia2d ! left as example 128 IF( lk_iomput ) THEN 129 CALL iom_put( "SEDPOC" , sedpocn ) 130 ELSE 131 IF( ln_diatrc ) trc2d(:,:,jp_pcs0_2d + 18) = sedpocn(:,:) 132 ENDIF 119 IF( lk_iomput ) CALL iom_put( "SEDPOC" , sedpocn ) 133 120 134 121 … … 160 147 ENDIF 161 148 ! 162 IF( l_trdtrc ) THEN163 ztrbio(:,:,:) = tra(:,:,:,jpno3) - ztrbio(:,:,:)164 jl = jp_pcs0_trd + 16165 CALL trd_trc( ztrbio, jl, kt ) ! handle the trend166 CALL wrk_dealloc( jpi, jpj, jpk, ztrbio ) ! temporary save of trends167 ENDIF168 !169 149 CALL wrk_dealloc( jpi, jpj, zsedpoca) ! temporary save of trends 170 150 … … 281 261 END FUNCTION p2z_exp_alloc 282 262 283 #else284 !!======================================================================285 !! Dummy module : No PISCES bio-model286 !!======================================================================287 CONTAINS288 SUBROUTINE p2z_exp( kt ) ! Empty routine289 INTEGER, INTENT( in ) :: kt290 WRITE(*,*) 'p2z_exp: You should not have seen this print! error?', kt291 END SUBROUTINE p2z_exp292 #endif293 294 263 !!====================================================================== 295 264 END MODULE p2zexp -
trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zopt.F90
r6140 r7646 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_pisces_reduced14 !!----------------------------------------------------------------------15 !! 'key_pisces_reduced' 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 -
trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsed.F90
r6140 r7646 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_pisces_reduced11 !!----------------------------------------------------------------------12 !! 'key_pisces_reduced' LOBSTER bio-model13 9 !!---------------------------------------------------------------------- 14 10 !! p2z_sed : Compute loss of organic matter in the sediments … … 66 62 CHARACTER (len=25) :: charout 67 63 REAL(wp), POINTER, DIMENSION(:,: ) :: zw2d 68 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwork, ztra , ztrbio64 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwork, ztra 69 65 !!--------------------------------------------------------------------- 70 66 ! … … 79 75 ! Allocate temporary workspace 80 76 CALL wrk_alloc( jpi, jpj, jpk, zwork, ztra ) 81 IF( l_trdtrc ) THEN82 CALL wrk_alloc( jpi, jpj, jpk, ztrbio )83 ztrbio(:,:,:) = tra(:,:,:,jpdet)84 ENDIF85 77 86 78 ! sedimentation of detritus : upstream scheme … … 116 108 CALL wrk_dealloc( jpi, jpj, zw2d ) 117 109 ENDIF 118 ELSE119 IF( ln_diatrc ) THEN120 CALL wrk_alloc( jpi, jpj, zw2d )121 zw2d(:,:) = ztra(:,:,1) * e3t_n(:,:,1) * 86400._wp122 DO jk = 2, jpkm1123 zw2d(:,:) = zw2d(:,:) + ztra(:,:,jk) * e3t_n(:,:,jk) * 86400._wp124 END DO125 trc2d(:,:,jp_pcs0_2d + 7) = zw2d(:,:)126 CALL wrk_dealloc( jpi, jpj, zw2d )127 ENDIF128 110 ENDIF 129 111 ! 130 IF( ln_diabio .AND. .NOT. lk_iomput ) trbio(:,:,:,jp_pcs0_trd + 7) = ztra(:,:,:)131 112 CALL wrk_dealloc( jpi, jpj, jpk, zwork, ztra ) 132 113 ! 133 IF( l_trdtrc ) THEN134 ztrbio(:,:,:) = tra(:,:,:,jpdet) - ztrbio(:,:,:)135 jl = jp_pcs0_trd + 7136 CALL trd_trc( ztrbio, jl, kt ) ! handle the trend137 CALL wrk_dealloc( jpi, jpj, jpk, ztrbio )138 ENDIF139 114 140 115 IF(ln_ctl) THEN ! print mean trends (used for debugging) … … 180 155 END SUBROUTINE p2z_sed_init 181 156 182 #else183 !!======================================================================184 !! Dummy module : No PISCES bio-model185 !!======================================================================186 CONTAINS187 SUBROUTINE p2z_sed( kt ) ! Empty routine188 INTEGER, INTENT( in ) :: kt189 WRITE(*,*) 'p2z_sed: You should not have seen this print! error?', kt190 END SUBROUTINE p2z_sed191 #endif192 193 157 !!====================================================================== 194 158 END MODULE p2zsed -
trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsms.F90
r5656 r7646 6 6 !! History : 1.0 ! M. Levy 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) revised architecture 8 !!----------------------------------------------------------------------9 #if defined key_pisces_reduced10 !!----------------------------------------------------------------------11 !! 'key_pisces_reduced' 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
Note: See TracChangeset
for help on using the changeset viewer.