Changeset 8419 for branches/NERC
- Timestamp:
- 2017-08-08T14:11:22+02:00 (7 years ago)
- Location:
- branches/NERC/dev_r5518_GO6_split_trcbiomedusa/NEMOGCM/NEMO/TOP_SRC
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/NERC/dev_r5518_GO6_split_trcbiomedusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_fin.F90
r8395 r8419 32 32 !!---------------------------------------------------------------------- 33 33 USE bio_medusa_mod 34 USE dom_oce, ONLY: atfp, atfp1, neuler, rdt , e3t_n, tmask34 USE dom_oce, ONLY: atfp, atfp1, neuler, rdt 35 35 USE in_out_manager, ONLY: lwp, numout 36 36 # if defined key_iomput … … 61 61 INTEGER :: ji, jj 62 62 INTEGER :: jn 63 64 REAL(wp) :: fq0,fq1,fq2,fq365 66 63 !!---------------------------------------------------------------------- 67 64 !! Process benthic in/out fluxes … … 238 235 ENDIF 239 236 endif 240 241 # if defined key_debug_medusa242 !! AXY (12/07/17)243 !!-----------------------------------------------------------------244 !! Check conservation of MEDUSA's sinks-minus-sources using fflx_X245 !! diagnostics (i.e. biogeochemical processes only)246 !! - fflx_X diagnostics *should* include all transfers between247 !! modelled components248 !! - they should also include gains / losses due to air-sea249 !! fluxes of C and O2, aeolian and seafloor inputs of Fe, and250 !! inputs from seafloor "benthic buckets" (N, Si, Fe, C and251 !! alkalinity)252 !! - however, they do not include the transfer of material to253 !! "benthic buckets" by sedimenting slow- and fast-sinking254 !! detritus since these are separate 2D reservoirs255 !! - consequently, for a given water column, the integrated256 !! fluxes should sum to the "loss" of material to the "benthic257 !! buckets"258 !! - if they do not, this suggests that MEDUSA contains errors259 !! in its accounting (e.g. processes omitted from calculated260 !! fluxes)261 !! - here, the local integrated fluxes and benthic inputs (plus262 !! air-sea fluxes in the case of C) are reported together with263 !! the resulting error264 !! - only N, Si, C and alkalinity inventories considered; Fe and265 !! O2 overlooked because of wholesale loss (and addition, in266 !! the case of O2) of these tracers within the water column267 !!-----------------------------------------------------------------268 !!269 !! nitrogen270 DO jj = 2,jpjm1271 DO ji = 2,jpim1272 if (tmask(ji,jj,1) == 1) then273 fq0 = fflx_n(ji,jj)274 fq1 = f_sbenin_n(ji,jj) + f_fbenin_n(ji,jj)275 fq2 = fq0 + fq1276 IF (lwp) write (numout,'(a,2i3,a,3f15.10)') &277 'AXY N cons: (i,j)=',ji,jj,', (flx,ben,err)=', &278 fq0,fq1,fq2279 ENDIF280 ENDDO281 ENDDO282 !! silicon283 DO jj = 2,jpjm1284 DO ji = 2,jpim1285 if (tmask(ji,jj,1) == 1) then286 fq0 = fflx_si(ji,jj)287 fq1 = f_fbenin_si(ji,jj)288 fq2 = fq0 + fq1289 IF (lwp) write (numout,'(a,2i3,a,3f15.10)') &290 'AXY Si cons: (i,j)=',ji,jj,', (flx,ben,err)=', &291 fq0,fq1,fq2292 ENDIF293 ENDDO294 ENDDO295 !! carbon296 DO jj = 2,jpjm1297 DO ji = 2,jpim1298 if (tmask(ji,jj,1) == 1) then299 fq0 = fflx_c(ji,jj)300 fq1 = f_sbenin_c(ji,jj) + f_fbenin_c(ji,jj) + f_fbenin_ca(ji,jj)301 fq2 = f_co2flux(ji,jj) * e3t_n(ji,jj,1)302 fq3 = fq0 + fq1303 IF (lwp) write (numout,'(a,2i3,a,4f15.10)') &304 'AXY C cons: (i,j)=',ji,jj,', (flx,ben,asf,err)=', &305 fq0,fq1,fq2,fq3306 ENDIF307 ENDDO308 ENDDO309 !! alkalinity310 DO jj = 2,jpjm1311 DO ji = 2,jpim1312 if (tmask(ji,jj,1) == 1) then313 fq0 = fflx_a(ji,jj)314 fq1 = 2.0 * f_fbenin_ca(ji,jj)315 fq2 = fq0 + fq1316 IF (lwp) write (numout,'(a,2i3,a,3f15.10)') &317 'AXY alk cons: (i,j)=',ji,jj,', (flx,ben,err)=', &318 fq0,fq1,fq2319 ENDIF320 ENDDO321 ENDDO322 # endif323 237 324 238 IF( ln_diatrc ) THEN -
branches/NERC/dev_r5518_GO6_split_trcbiomedusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_update.F90
r8395 r8419 73 73 jpalk, jpchd, jpchn, jpdet, jpdic, & 74 74 jpdin, jpdtc, jpfer, jpoxy, jppds, & 75 jpphd, jpphn, jpsil, jpzme, jpzmi, & 76 jpalk_lc, jpchd_lc, jpchn_lc, jpdet_lc, & 77 jpdic_lc, jpdin_lc, jpdtc_lc, jpfer_lc, & 78 jpoxy_lc, jppds_lc, jpphd_lc, jpphn_lc, & 79 jpsil_lc, jpzme_lc, jpzmi_lc 75 jpphd, jpphn, jpsil, jpzme, jpzmi 80 76 USE par_oce, ONLY: jpi, jpim1, jpj, jpjm1 81 77 USE par_trc, ONLY: jptra … … 134 130 !!---------------------------------------------------------- 135 131 !! chlorophyll 136 btra(ji,jj,jpchn _lc) = b0 * ( ( (frn(ji,jj) * fprn(ji,jj) * &132 btra(ji,jj,jpchn) = b0 * ( ( (frn(ji,jj) * fprn(ji,jj) * & 137 133 zphn(ji,jj) ) - & 138 134 fgmipn(ji,jj) - fgmepn(ji,jj) - & 139 135 fdpn(ji,jj) - fdpn2(ji,jj) ) * & 140 136 (fthetan(ji,jj) / xxi) ) 141 btra(ji,jj,jpchd _lc) = b0 * ( ( (frd(ji,jj) * fprd(ji,jj) * &137 btra(ji,jj,jpchd) = b0 * ( ( (frd(ji,jj) * fprd(ji,jj) * & 142 138 zphd(ji,jj) ) - & 143 139 fgmepd(ji,jj) - fdpd(ji,jj) - & … … 154 150 !!---------------------------------------------------------- 155 151 !! phytoplankton 156 btra(ji,jj,jpphn _lc) = b0 * ( (fprn(ji,jj) * zphn(ji,jj)) - &152 btra(ji,jj,jpphn) = b0 * ( (fprn(ji,jj) * zphn(ji,jj)) - & 157 153 fgmipn(ji,jj) - fgmepn(ji,jj) - & 158 154 fdpn(ji,jj) - fdpn2(ji,jj) ) 159 btra(ji,jj,jpphd _lc) = b0 * ( (fprd(ji,jj) * zphd(ji,jj)) - &155 btra(ji,jj,jpphd) = b0 * ( (fprd(ji,jj) * zphd(ji,jj)) - & 160 156 fgmepd(ji,jj) - fdpd(ji,jj) - & 161 157 fdpd2(ji,jj) ) 162 btra(ji,jj,jppds _lc) = b0 * ( (fprds(ji,jj) * zpds(ji,jj)) - &158 btra(ji,jj,jppds) = b0 * ( (fprds(ji,jj) * zpds(ji,jj)) - & 163 159 fgmepds(ji,jj) - fdpds(ji,jj) - & 164 160 fsdiss(ji,jj) - fdpds2(ji,jj) ) … … 173 169 !!---------------------------------------------------------- 174 170 !! zooplankton 175 btra(ji,jj,jpzmi _lc) = b0 * (fmigrow(ji,jj) - fgmezmi(ji,jj) - &171 btra(ji,jj,jpzmi) = b0 * (fmigrow(ji,jj) - fgmezmi(ji,jj) - & 176 172 fdzmi(ji,jj) - fdzmi2(ji,jj)) 177 btra(ji,jj,jpzme _lc) = b0 * (fmegrow(ji,jj) - fdzme(ji,jj) - &173 btra(ji,jj,jpzme) = b0 * (fmegrow(ji,jj) - fdzme(ji,jj) - & 178 174 fdzme2(ji,jj)) 179 175 ENDIF … … 187 183 !!---------------------------------------------------------- 188 184 !! detritus 189 btra(ji,jj,jpdet _lc) = b0 * &185 btra(ji,jj,jpdet) = b0 * & 190 186 ! mort. losses 191 187 (fdpn(ji,jj) + ((1.0 - xfdfrac1) * & … … 240 236 endif 241 237 !! 242 btra(ji,jj,jpdin _lc) = b0 * ( fn_prod + fn_cons )238 btra(ji,jj,jpdin) = b0 * ( fn_prod + fn_cons ) 243 239 !! 244 240 !! consumption of dissolved nitrogen … … 285 281 endif 286 282 !! 287 btra(ji,jj,jpsil _lc) = b0 * ( &283 btra(ji,jj,jpsil) = b0 * ( & 288 284 fs_prod + fs_cons ) 289 285 !! consumption of dissolved silicon … … 302 298 !!---------------------------------------------------------- 303 299 !! dissolved "iron" nutrient 304 btra(ji,jj,jpfer _lc) = b0 * ( (xrfn * btra(ji,jj,jpdin_lc)) + &300 btra(ji,jj,jpfer) = b0 * ( (xrfn * btra(ji,jj,jpdin)) + & 305 301 ffetop(ji,jj) + ffebot(ji,jj) - & 306 302 ffescav(ji,jj) ) … … 309 305 !!---------------------------------------------------------- 310 306 !! AXY (26/11/08): implicit detrital carbon change 311 btra(ji,jj,jpdtc _lc) = b0 * ( &307 btra(ji,jj,jpdtc) = b0 * ( & 312 308 ! mort. losses 313 309 (xthetapn * fdpn(ji,jj)) + & … … 385 381 endif 386 382 !! 387 btra(ji,jj,jpdic _lc) = b0 * ( fc_prod + fc_cons )383 btra(ji,jj,jpdic) = b0 * ( fc_prod + fc_cons ) 388 384 !! consumption of dissolved carbon 389 385 fcar_cons(ji,jj) = fcar_cons(ji,jj) + ( fse3t(ji,jj,jk) * & … … 422 418 endif 423 419 !! 424 btra(ji,jj,jpalk _lc) = b0 * ( fa_prod + fa_cons )420 btra(ji,jj,jpalk) = b0 * ( fa_prod + fa_cons ) 425 421 ENDIF 426 422 ENDDO … … 542 538 !! deficient O2; production fluxes only 543 539 if (zoxy(ji,jj).lt.xo2min) then 544 btra(ji,jj,jpoxy _lc) = b0 * fo2_prod(ji,jj)540 btra(ji,jj,jpoxy) = b0 * fo2_prod(ji,jj) 545 541 foxy_prod(ji,jj) = foxy_prod(ji,jj) + ( fse3t(ji,jj,jk) * & 546 542 fo2_prod(ji,jj) ) … … 549 545 else 550 546 !! sufficient O2; production + consumption fluxes 551 btra(ji,jj,jpoxy _lc) = b0 * ( fo2_prod(ji,jj) + &547 btra(ji,jj,jpoxy) = b0 * ( fo2_prod(ji,jj) + & 552 548 fo2_cons(ji,jj) ) 553 549 foxy_prod(ji,jj) = foxy_prod(ji,jj) + & … … 568 564 !! 569 565 !! CO2 flux 570 btra(ji,jj,jpdic _lc) = btra(ji,jj,jpdic_lc) + (b0 * &566 btra(ji,jj,jpdic) = btra(ji,jj,jpdic) + (b0 * & 571 567 f_co2flux(ji,jj)) 572 568 !! 573 569 !! O2 flux (mol/m3/s -> mmol/m3/d) 574 btra(ji,jj,jpoxy _lc) = btra(ji,jj,jpoxy_lc) + (b0 * &570 btra(ji,jj,jpoxy) = btra(ji,jj,jpoxy) + (b0 * & 575 571 f_o2flux(ji,jj)) 576 572 endif … … 590 586 if (idf.eq.1.AND.idfval.eq.1) then 591 587 IF (lwp) write (numout,*) '------------------------------' 592 IF (lwp) write (numout,*) 'btra(ji,jj,jpchn _lc)(',jk,') = ', &593 btra(ji,jj,jpchn _lc)594 IF (lwp) write (numout,*) 'btra(ji,jj,jpchd _lc)(',jk,') = ', &595 btra(ji,jj,jpchd _lc)596 IF (lwp) write (numout,*) 'btra(ji,jj,jpphn _lc)(',jk,') = ', &597 btra(ji,jj,jpphn _lc)598 IF (lwp) write (numout,*) 'btra(ji,jj,jpphd _lc)(',jk,') = ', &599 btra(ji,jj,jpphd _lc)600 IF (lwp) write (numout,*) 'btra(ji,jj,jppds _lc)(',jk,') = ', &601 btra(ji,jj,jppds _lc)602 IF (lwp) write (numout,*) 'btra(ji,jj,jpzmi _lc)(',jk,') = ', &603 btra(ji,jj,jpzmi _lc)604 IF (lwp) write (numout,*) 'btra(ji,jj,jpzme _lc)(',jk,') = ', &605 btra(ji,jj,jpzme _lc)606 IF (lwp) write (numout,*) 'btra(ji,jj,jpdet _lc)(',jk,') = ', &607 btra(ji,jj,jpdet _lc)608 IF (lwp) write (numout,*) 'btra(ji,jj,jpdin _lc)(',jk,') = ', &609 btra(ji,jj,jpdin _lc)610 IF (lwp) write (numout,*) 'btra(ji,jj,jpsil _lc)(',jk,') = ', &611 btra(ji,jj,jpsil _lc)612 IF (lwp) write (numout,*) 'btra(ji,jj,jpfer _lc)(',jk,') = ', &613 btra(ji,jj,jpfer _lc)588 IF (lwp) write (numout,*) 'btra(ji,jj,jpchn)(',jk,') = ', & 589 btra(ji,jj,jpchn) 590 IF (lwp) write (numout,*) 'btra(ji,jj,jpchd)(',jk,') = ', & 591 btra(ji,jj,jpchd) 592 IF (lwp) write (numout,*) 'btra(ji,jj,jpphn)(',jk,') = ', & 593 btra(ji,jj,jpphn) 594 IF (lwp) write (numout,*) 'btra(ji,jj,jpphd)(',jk,') = ', & 595 btra(ji,jj,jpphd) 596 IF (lwp) write (numout,*) 'btra(ji,jj,jppds)(',jk,') = ', & 597 btra(ji,jj,jppds) 598 IF (lwp) write (numout,*) 'btra(ji,jj,jpzmi)(',jk,') = ', & 599 btra(ji,jj,jpzmi) 600 IF (lwp) write (numout,*) 'btra(ji,jj,jpzme)(',jk,') = ', & 601 btra(ji,jj,jpzme) 602 IF (lwp) write (numout,*) 'btra(ji,jj,jpdet)(',jk,') = ', & 603 btra(ji,jj,jpdet) 604 IF (lwp) write (numout,*) 'btra(ji,jj,jpdin)(',jk,') = ', & 605 btra(ji,jj,jpdin) 606 IF (lwp) write (numout,*) 'btra(ji,jj,jpsil)(',jk,') = ', & 607 btra(ji,jj,jpsil) 608 IF (lwp) write (numout,*) 'btra(ji,jj,jpfer)(',jk,') = ', & 609 btra(ji,jj,jpfer) 614 610 # if defined key_roam 615 IF (lwp) write (numout,*) 'btra(ji,jj,jpdtc _lc)(',jk,') = ', &616 btra(ji,jj,jpdtc _lc)617 IF (lwp) write (numout,*) 'btra(ji,jj,jpdic _lc)(',jk,') = ', &618 btra(ji,jj,jpdic _lc)619 IF (lwp) write (numout,*) 'btra(ji,jj,jpalk _lc)(',jk,') = ', &620 btra(ji,jj,jpalk _lc)621 IF (lwp) write (numout,*) 'btra(ji,jj,jpoxy _lc)(',jk,') = ', &622 btra(ji,jj,jpoxy _lc)611 IF (lwp) write (numout,*) 'btra(ji,jj,jpdtc)(',jk,') = ', & 612 btra(ji,jj,jpdtc) 613 IF (lwp) write (numout,*) 'btra(ji,jj,jpdic)(',jk,') = ', & 614 btra(ji,jj,jpdic) 615 IF (lwp) write (numout,*) 'btra(ji,jj,jpalk)(',jk,') = ', & 616 btra(ji,jj,jpalk) 617 IF (lwp) write (numout,*) 'btra(ji,jj,jpoxy)(',jk,') = ', & 618 btra(ji,jj,jpoxy) 623 619 # endif 624 620 endif … … 637 633 !! === nitrogen === 638 634 fflx_n(ji,jj) = fflx_n(ji,jj) + fse3t(ji,jj,jk) * & 639 ( btra(ji,jj,jpphn _lc) + btra(ji,jj,jpphd_lc) + &640 btra(ji,jj,jpzmi _lc) + btra(ji,jj,jpzme_lc) + &641 btra(ji,jj,jpdet _lc) + btra(ji,jj,jpdin_lc) )635 ( btra(ji,jj,jpphn) + btra(ji,jj,jpphd) + & 636 btra(ji,jj,jpzmi) + btra(ji,jj,jpzme) + & 637 btra(ji,jj,jpdet) + btra(ji,jj,jpdin) ) 642 638 !! === silicon === 643 639 fflx_si(ji,jj) = fflx_si(ji,jj) + fse3t(ji,jj,jk) * & 644 ( btra(ji,jj,jppds _lc) + btra(ji,jj,jpsil_lc) )640 ( btra(ji,jj,jppds) + btra(ji,jj,jpsil) ) 645 641 !! === iron === 646 642 fflx_fe(ji,jj) = fflx_fe(ji,jj) + fse3t(ji,jj,jk) * & 647 643 ( (xrfn * & 648 (btra(ji,jj,jpphn _lc) + btra(ji,jj,jpphd_lc) + &649 btra(ji,jj,jpzmi _lc) + btra(ji,jj,jpzme_lc) + &650 btra(ji,jj,jpdet _lc))) + btra(ji,jj,jpfer_lc) )644 (btra(ji,jj,jpphn) + btra(ji,jj,jpphd) + & 645 btra(ji,jj,jpzmi) + btra(ji,jj,jpzme) + & 646 btra(ji,jj,jpdet))) + btra(ji,jj,jpfer) ) 651 647 # if defined key_roam 652 648 !! === carbon === 653 649 fflx_c(ji,jj) = fflx_c(ji,jj) + fse3t(ji,jj,jk) * & 654 ( (xthetapn * btra(ji,jj,jpphn _lc)) + &655 (xthetapd * btra(ji,jj,jpphd _lc)) + &656 (xthetazmi * btra(ji,jj,jpzmi _lc)) + &657 (xthetazme * btra(ji,jj,jpzme _lc)) + &658 btra(ji,jj,jpdtc _lc) + btra(ji,jj,jpdic_lc) )650 ( (xthetapn * btra(ji,jj,jpphn)) + & 651 (xthetapd * btra(ji,jj,jpphd)) + & 652 (xthetazmi * btra(ji,jj,jpzmi)) + & 653 (xthetazme * btra(ji,jj,jpzme)) + & 654 btra(ji,jj,jpdtc) + btra(ji,jj,jpdic) ) 659 655 !! === alkalinity === 660 656 fflx_a(ji,jj) = fflx_a(ji,jj) + fse3t(ji,jj,jk) * & 661 btra(ji,jj,jpalk _lc)657 btra(ji,jj,jpalk) 662 658 !! === oxygen === 663 659 fflx_o2(ji,jj) = fflx_o2(ji,jj) + fse3t(ji,jj,jk) * & 664 btra(ji,jj,jpoxy _lc)660 btra(ji,jj,jpoxy) 665 661 # endif 666 662 ENDIF … … 698 694 if (ibio_switch.eq.1) then 699 695 tra(ji,jj,jk,jpchn) = tra(ji,jj,jk,jpchn) + & 700 (btra(ji,jj,jpchn _lc) / 86400.)696 (btra(ji,jj,jpchn) / 86400.) 701 697 tra(ji,jj,jk,jpchd) = tra(ji,jj,jk,jpchd) + & 702 (btra(ji,jj,jpchd _lc) / 86400.)698 (btra(ji,jj,jpchd) / 86400.) 703 699 tra(ji,jj,jk,jpphn) = tra(ji,jj,jk,jpphn) + & 704 (btra(ji,jj,jpphn _lc) / 86400.)700 (btra(ji,jj,jpphn) / 86400.) 705 701 tra(ji,jj,jk,jpphd) = tra(ji,jj,jk,jpphd) + & 706 (btra(ji,jj,jpphd _lc) / 86400.)702 (btra(ji,jj,jpphd) / 86400.) 707 703 tra(ji,jj,jk,jppds) = tra(ji,jj,jk,jppds) + & 708 (btra(ji,jj,jppds _lc) / 86400.)704 (btra(ji,jj,jppds) / 86400.) 709 705 tra(ji,jj,jk,jpzmi) = tra(ji,jj,jk,jpzmi) + & 710 (btra(ji,jj,jpzmi _lc) / 86400.)706 (btra(ji,jj,jpzmi) / 86400.) 711 707 tra(ji,jj,jk,jpzme) = tra(ji,jj,jk,jpzme) + & 712 (btra(ji,jj,jpzme _lc) / 86400.)708 (btra(ji,jj,jpzme) / 86400.) 713 709 tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) + & 714 (btra(ji,jj,jpdet _lc) / 86400.)710 (btra(ji,jj,jpdet) / 86400.) 715 711 tra(ji,jj,jk,jpdin) = tra(ji,jj,jk,jpdin) + & 716 (btra(ji,jj,jpdin _lc) / 86400.)712 (btra(ji,jj,jpdin) / 86400.) 717 713 tra(ji,jj,jk,jpsil) = tra(ji,jj,jk,jpsil) + & 718 (btra(ji,jj,jpsil _lc) / 86400.)714 (btra(ji,jj,jpsil) / 86400.) 719 715 tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + & 720 (btra(ji,jj,jpfer _lc) / 86400.)716 (btra(ji,jj,jpfer) / 86400.) 721 717 # if defined key_roam 722 718 tra(ji,jj,jk,jpdtc) = tra(ji,jj,jk,jpdtc) + & 723 (btra(ji,jj,jpdtc _lc) / 86400.)719 (btra(ji,jj,jpdtc) / 86400.) 724 720 tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + & 725 (btra(ji,jj,jpdic _lc) / 86400.)721 (btra(ji,jj,jpdic) / 86400.) 726 722 tra(ji,jj,jk,jpalk) = tra(ji,jj,jk,jpalk) + & 727 (btra(ji,jj,jpalk _lc) / 86400.)723 (btra(ji,jj,jpalk) / 86400.) 728 724 tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) + & 729 (btra(ji,jj,jpoxy _lc) / 86400.)725 (btra(ji,jj,jpoxy) / 86400.) 730 726 # endif 731 727 endif … … 741 737 IF( med_diag%FBDDTALK%dgsave ) THEN 742 738 fbddtalk(ji,jj) = fbddtalk(ji,jj) + & 743 (btra(ji,jj,jpalk _lc) * fse3t(ji,jj,jk))739 (btra(ji,jj,jpalk) * fse3t(ji,jj,jk)) 744 740 ENDIF 745 741 IF( med_diag%FBDDTDIC%dgsave ) THEN 746 742 fbddtdic(ji,jj) = fbddtdic(ji,jj) + & 747 (btra(ji,jj,jpdic _lc) * fse3t(ji,jj,jk))743 (btra(ji,jj,jpdic) * fse3t(ji,jj,jk)) 748 744 ENDIF 749 745 IF( med_diag%FBDDTDIFE%dgsave ) THEN 750 746 fbddtdife(ji,jj) = fbddtdife(ji,jj) + & 751 (btra(ji,jj,jpfer _lc) * fse3t(ji,jj,jk))747 (btra(ji,jj,jpfer) * fse3t(ji,jj,jk)) 752 748 ENDIF 753 749 IF( med_diag%FBDDTDIN%dgsave ) THEN 754 750 fbddtdin(ji,jj) = fbddtdin(ji,jj) + & 755 (btra(ji,jj,jpdin _lc) * fse3t(ji,jj,jk))751 (btra(ji,jj,jpdin) * fse3t(ji,jj,jk)) 756 752 ENDIF 757 753 IF( med_diag%FBDDTDISI%dgsave ) THEN 758 754 fbddtdisi(ji,jj) = fbddtdisi(ji,jj) + & 759 (btra(ji,jj,jpsil _lc) * fse3t(ji,jj,jk))755 (btra(ji,jj,jpsil) * fse3t(ji,jj,jk)) 760 756 ENDIF 761 757 !! 762 758 IF( med_diag%BDDTALK3%dgsave ) THEN 763 bddtalk3(ji,jj,jk) = btra(ji,jj,jpalk _lc)759 bddtalk3(ji,jj,jk) = btra(ji,jj,jpalk) 764 760 ENDIF 765 761 IF( med_diag%BDDTDIC3%dgsave ) THEN 766 bddtdic3(ji,jj,jk) = btra(ji,jj,jpdic _lc)762 bddtdic3(ji,jj,jk) = btra(ji,jj,jpdic) 767 763 ENDIF 768 764 IF( med_diag%BDDTDIFE3%dgsave ) THEN 769 bddtdife3(ji,jj,jk) = btra(ji,jj,jpfer _lc)765 bddtdife3(ji,jj,jk) = btra(ji,jj,jpfer) 770 766 ENDIF 771 767 IF( med_diag%BDDTDIN3%dgsave ) THEN 772 bddtdin3(ji,jj,jk) = btra(ji,jj,jpdin _lc)768 bddtdin3(ji,jj,jk) = btra(ji,jj,jpdin) 773 769 ENDIF 774 770 IF( med_diag%BDDTDISI3%dgsave ) THEN 775 bddtdisi3(ji,jj,jk) = btra(ji,jj,jpsil _lc)771 bddtdisi3(ji,jj,jk) = btra(ji,jj,jpsil) 776 772 ENDIF 777 773 ENDIF … … 794 790 if (tmask(ji,jj,jk) == 1) then 795 791 !! 796 DO jn = 1,jp _medusa792 DO jn = 1,jptra 797 793 fq0 = btra(ji,jj,jn) 798 794 !! AXY (30/01/14): "isnan" problem on HECTOR … … 805 801 endif 806 802 ENDDO 807 DO jn = jp_msa0,jp_msa1803 DO jn = 1,jptra 808 804 fq0 = tra(ji,jj,jk,jn) 809 805 !! AXY (30/01/14): "isnan" problem on HECTOR … … 822 818 # endif 823 819 820 !!---------------------------------------------------------- 821 !! Check model conservation 822 !! these terms merely sum up the tendency terms of the relevant 823 !! state variables, which should sum to zero; the iron cycle is 824 !! complicated by fluxes that add (aeolian deposition and 825 !! seafloor remineralisation) and remove (scavenging) dissolved 826 !! iron from the model (i.e. the sum of iron fluxes is unlikely 827 !! to be zero) 828 !!---------------------------------------------------------- 829 !! DO jj = 2,jpjm1 830 !! DO ji = 2,jpim1 831 !! if (tmask(ji,jj,jk) == 1) then 832 !! 833 !! fnit0 = btra(ji,jj,jpphn) + btra(ji,jj,jpphd) + & 834 !! btra(ji,jj,jpzmi) + btra(ji,jj,jpzme) + & 835 !! btra(ji,jj,jpdet) + btra(ji,jj,jpdin) ! + & 836 !! ftempn(ji,jj) 837 !! fsil0 = btra(ji,jj,jppds) + btra(ji,jj,jpsil) ! + & 838 !! ftempsi(ji,jj) 839 !! ffer0 = (xrfn * fnit0) + btra(ji,jj,jpfer) 840 # if defined key_roam 841 !! fcar0 = 0. 842 !! falk0 = 0. 843 !! foxy0 = 0. 844 # endif 845 !! 846 !! if (kt/240*240.eq.kt) then 847 !! if (ji.eq.2.and.jj.eq.2.and.jk.eq.1) then 848 !! IF (lwp) write (*,*) & 849 !! '*******!MEDUSA Conservation!*******',kt 850 # if defined key_roam 851 !! IF (lwp) write (*,*) fnit0,fsil0,ffer0,fcar0,falk0, & 852 !! foxy0 853 # else 854 !! IF (lwp) write (*,*) fnit0,fsil0,ffer0 855 # endif 856 !! endif 857 !! endif 858 859 !! ENDIF 860 !! ENDDO 861 !! ENDDO 824 862 825 863 END SUBROUTINE bio_medusa_update -
branches/NERC/dev_r5518_GO6_split_trcbiomedusa/NEMOGCM/NEMO/TOP_SRC/trcini.F90
r8356 r8419 295 295 USE trdmxl_trc , ONLY: trd_mxl_trc_alloc 296 296 #endif 297 # if defined key_medusa 298 USE bio_medusa_mod, ONLY: bio_medusa_alloc 299 # endif 300 297 301 ! 298 302 INTEGER :: ierr … … 307 311 ierr = ierr + trd_mxl_trc_alloc() 308 312 #endif 313 #if defined key_medusa 314 ierr = ierr + bio_medusa_alloc() 315 #endif 309 316 ! 310 317 IF( lk_mpp ) CALL mpp_sum( ierr )
Note: See TracChangeset
for help on using the changeset viewer.