Changeset 8423 for branches/NERC
- Timestamp:
- 2017-08-08T16:14:00+02:00 (7 years ago)
- Location:
- branches/NERC/dev_r5518_GO6_split_trcbiomedusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/NERC/dev_r5518_GO6_split_trcbiomedusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_fin.F90
r8419 r8423 32 32 !!---------------------------------------------------------------------- 33 33 USE bio_medusa_mod 34 USE dom_oce, ONLY: atfp, atfp1, neuler, rdt 34 USE dom_oce, ONLY: atfp, atfp1, neuler, rdt, e3t_n, tmask 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,fq3 65 63 66 !!---------------------------------------------------------------------- 64 67 !! Process benthic in/out fluxes … … 235 238 ENDIF 236 239 endif 237 240 241 # if defined key_debug_medusa 242 !! AXY (12/07/17) 243 !!----------------------------------------------------------------- 244 !! Check conservation of MEDUSA's sinks-minus-sources using fflx_X 245 !! diagnostics (i.e. biogeochemical processes only) 246 !! - fflx_X diagnostics *should* include all transfers between 247 !! modelled components 248 !! - they should also include gains / losses due to air-sea 249 !! fluxes of C and O2, aeolian and seafloor inputs of Fe, and 250 !! inputs from seafloor "benthic buckets" (N, Si, Fe, C and 251 !! alkalinity) 252 !! - however, they do not include the transfer of material to 253 !! "benthic buckets" by sedimenting slow- and fast-sinking 254 !! detritus since these are separate 2D reservoirs 255 !! - consequently, for a given water column, the integrated 256 !! fluxes should sum to the "loss" of material to the "benthic 257 !! buckets" 258 !! - if they do not, this suggests that MEDUSA contains errors 259 !! in its accounting (e.g. processes omitted from calculated 260 !! fluxes) 261 !! - here, the local integrated fluxes and benthic inputs (plus 262 !! air-sea fluxes in the case of C) are reported together with 263 !! the resulting error 264 !! - only N, Si, C and alkalinity inventories considered; Fe and 265 !! O2 overlooked because of wholesale loss (and addition, in 266 !! the case of O2) of these tracers within the water column 267 !!----------------------------------------------------------------- 268 !! 269 !! nitrogen 270 DO jj = 2,jpjm1 271 DO ji = 2,jpim1 272 if (tmask(ji,jj,1) == 1) then 273 fq0 = fflx_n(ji,jj) 274 fq1 = f_sbenin_n(ji,jj) + f_fbenin_n(ji,jj) 275 fq2 = fq0 + fq1 276 IF (lwp) write (numout,'(a,2i3,a,3f15.10)') & 277 'AXY N cons: (i,j)=',ji,jj,', (flx,ben,err)=', & 278 fq0,fq1,fq2 279 ENDIF 280 ENDDO 281 ENDDO 282 !! silicon 283 DO jj = 2,jpjm1 284 DO ji = 2,jpim1 285 if (tmask(ji,jj,1) == 1) then 286 fq0 = fflx_si(ji,jj) 287 fq1 = f_fbenin_si(ji,jj) 288 fq2 = fq0 + fq1 289 IF (lwp) write (numout,'(a,2i3,a,3f15.10)') & 290 'AXY Si cons: (i,j)=',ji,jj,', (flx,ben,err)=', & 291 fq0,fq1,fq2 292 ENDIF 293 ENDDO 294 ENDDO 295 !! carbon 296 DO jj = 2,jpjm1 297 DO ji = 2,jpim1 298 if (tmask(ji,jj,1) == 1) then 299 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 + fq1 303 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,fq3 306 ENDIF 307 ENDDO 308 ENDDO 309 !! alkalinity 310 DO jj = 2,jpjm1 311 DO ji = 2,jpim1 312 if (tmask(ji,jj,1) == 1) then 313 fq0 = fflx_a(ji,jj) 314 fq1 = 2.0 * f_fbenin_ca(ji,jj) 315 fq2 = fq0 + fq1 316 IF (lwp) write (numout,'(a,2i3,a,3f15.10)') & 317 'AXY alk cons: (i,j)=',ji,jj,', (flx,ben,err)=', & 318 fq0,fq1,fq2 319 ENDIF 320 ENDDO 321 ENDDO 322 # endif 323 238 324 IF( ln_diatrc ) THEN 239 325 !!----------------------------------------------------------------- -
branches/NERC/dev_r5518_GO6_split_trcbiomedusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_update.F90
r8419 r8423 73 73 jpalk, jpchd, jpchn, jpdet, jpdic, & 74 74 jpdin, jpdtc, jpfer, jpoxy, jppds, & 75 jpphd, jpphn, jpsil, jpzme, jpzmi 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 76 80 USE par_oce, ONLY: jpi, jpim1, jpj, jpjm1 77 81 USE par_trc, ONLY: jptra … … 130 134 !!---------------------------------------------------------- 131 135 !! chlorophyll 132 btra(ji,jj,jpchn ) = b0 * ( ( (frn(ji,jj) * fprn(ji,jj) * &136 btra(ji,jj,jpchn_lc) = b0 * ( ( (frn(ji,jj) * fprn(ji,jj) * & 133 137 zphn(ji,jj) ) - & 134 138 fgmipn(ji,jj) - fgmepn(ji,jj) - & 135 139 fdpn(ji,jj) - fdpn2(ji,jj) ) * & 136 140 (fthetan(ji,jj) / xxi) ) 137 btra(ji,jj,jpchd ) = b0 * ( ( (frd(ji,jj) * fprd(ji,jj) * &141 btra(ji,jj,jpchd_lc) = b0 * ( ( (frd(ji,jj) * fprd(ji,jj) * & 138 142 zphd(ji,jj) ) - & 139 143 fgmepd(ji,jj) - fdpd(ji,jj) - & … … 150 154 !!---------------------------------------------------------- 151 155 !! phytoplankton 152 btra(ji,jj,jpphn ) = b0 * ( (fprn(ji,jj) * zphn(ji,jj)) - &156 btra(ji,jj,jpphn_lc) = b0 * ( (fprn(ji,jj) * zphn(ji,jj)) - & 153 157 fgmipn(ji,jj) - fgmepn(ji,jj) - & 154 158 fdpn(ji,jj) - fdpn2(ji,jj) ) 155 btra(ji,jj,jpphd ) = b0 * ( (fprd(ji,jj) * zphd(ji,jj)) - &159 btra(ji,jj,jpphd_lc) = b0 * ( (fprd(ji,jj) * zphd(ji,jj)) - & 156 160 fgmepd(ji,jj) - fdpd(ji,jj) - & 157 161 fdpd2(ji,jj) ) 158 btra(ji,jj,jppds ) = b0 * ( (fprds(ji,jj) * zpds(ji,jj)) - &162 btra(ji,jj,jppds_lc) = b0 * ( (fprds(ji,jj) * zpds(ji,jj)) - & 159 163 fgmepds(ji,jj) - fdpds(ji,jj) - & 160 164 fsdiss(ji,jj) - fdpds2(ji,jj) ) … … 169 173 !!---------------------------------------------------------- 170 174 !! zooplankton 171 btra(ji,jj,jpzmi ) = b0 * (fmigrow(ji,jj) - fgmezmi(ji,jj) - &175 btra(ji,jj,jpzmi_lc) = b0 * (fmigrow(ji,jj) - fgmezmi(ji,jj) - & 172 176 fdzmi(ji,jj) - fdzmi2(ji,jj)) 173 btra(ji,jj,jpzme ) = b0 * (fmegrow(ji,jj) - fdzme(ji,jj) - &177 btra(ji,jj,jpzme_lc) = b0 * (fmegrow(ji,jj) - fdzme(ji,jj) - & 174 178 fdzme2(ji,jj)) 175 179 ENDIF … … 183 187 !!---------------------------------------------------------- 184 188 !! detritus 185 btra(ji,jj,jpdet ) = b0 * &189 btra(ji,jj,jpdet_lc) = b0 * & 186 190 ! mort. losses 187 191 (fdpn(ji,jj) + ((1.0 - xfdfrac1) * & … … 236 240 endif 237 241 !! 238 btra(ji,jj,jpdin ) = b0 * ( fn_prod + fn_cons )242 btra(ji,jj,jpdin_lc) = b0 * ( fn_prod + fn_cons ) 239 243 !! 240 244 !! consumption of dissolved nitrogen … … 281 285 endif 282 286 !! 283 btra(ji,jj,jpsil ) = b0 * ( &287 btra(ji,jj,jpsil_lc) = b0 * ( & 284 288 fs_prod + fs_cons ) 285 289 !! consumption of dissolved silicon … … 298 302 !!---------------------------------------------------------- 299 303 !! dissolved "iron" nutrient 300 btra(ji,jj,jpfer ) = b0 * ( (xrfn * btra(ji,jj,jpdin)) + &304 btra(ji,jj,jpfer_lc) = b0 * ( (xrfn * btra(ji,jj,jpdin_lc)) + & 301 305 ffetop(ji,jj) + ffebot(ji,jj) - & 302 306 ffescav(ji,jj) ) … … 305 309 !!---------------------------------------------------------- 306 310 !! AXY (26/11/08): implicit detrital carbon change 307 btra(ji,jj,jpdtc ) = b0 * ( &311 btra(ji,jj,jpdtc_lc) = b0 * ( & 308 312 ! mort. losses 309 313 (xthetapn * fdpn(ji,jj)) + & … … 381 385 endif 382 386 !! 383 btra(ji,jj,jpdic ) = b0 * ( fc_prod + fc_cons )387 btra(ji,jj,jpdic_lc) = b0 * ( fc_prod + fc_cons ) 384 388 !! consumption of dissolved carbon 385 389 fcar_cons(ji,jj) = fcar_cons(ji,jj) + ( fse3t(ji,jj,jk) * & … … 418 422 endif 419 423 !! 420 btra(ji,jj,jpalk ) = b0 * ( fa_prod + fa_cons )424 btra(ji,jj,jpalk_lc) = b0 * ( fa_prod + fa_cons ) 421 425 ENDIF 422 426 ENDDO … … 538 542 !! deficient O2; production fluxes only 539 543 if (zoxy(ji,jj).lt.xo2min) then 540 btra(ji,jj,jpoxy ) = b0 * fo2_prod(ji,jj)544 btra(ji,jj,jpoxy_lc) = b0 * fo2_prod(ji,jj) 541 545 foxy_prod(ji,jj) = foxy_prod(ji,jj) + ( fse3t(ji,jj,jk) * & 542 546 fo2_prod(ji,jj) ) … … 545 549 else 546 550 !! sufficient O2; production + consumption fluxes 547 btra(ji,jj,jpoxy ) = b0 * ( fo2_prod(ji,jj) + &551 btra(ji,jj,jpoxy_lc) = b0 * ( fo2_prod(ji,jj) + & 548 552 fo2_cons(ji,jj) ) 549 553 foxy_prod(ji,jj) = foxy_prod(ji,jj) + & … … 564 568 !! 565 569 !! CO2 flux 566 btra(ji,jj,jpdic ) = btra(ji,jj,jpdic) + (b0 * &570 btra(ji,jj,jpdic_lc) = btra(ji,jj,jpdic_lc) + (b0 * & 567 571 f_co2flux(ji,jj)) 568 572 !! 569 573 !! O2 flux (mol/m3/s -> mmol/m3/d) 570 btra(ji,jj,jpoxy ) = btra(ji,jj,jpoxy) + (b0 * &574 btra(ji,jj,jpoxy_lc) = btra(ji,jj,jpoxy_lc) + (b0 * & 571 575 f_o2flux(ji,jj)) 572 576 endif … … 586 590 if (idf.eq.1.AND.idfval.eq.1) then 587 591 IF (lwp) write (numout,*) '------------------------------' 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 )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) 610 614 # if defined key_roam 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 )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) 619 623 # endif 620 624 endif … … 633 637 !! === nitrogen === 634 638 fflx_n(ji,jj) = fflx_n(ji,jj) + fse3t(ji,jj,jk) * & 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) )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) ) 638 642 !! === silicon === 639 643 fflx_si(ji,jj) = fflx_si(ji,jj) + fse3t(ji,jj,jk) * & 640 ( btra(ji,jj,jppds ) + btra(ji,jj,jpsil) )644 ( btra(ji,jj,jppds_lc) + btra(ji,jj,jpsil_lc) ) 641 645 !! === iron === 642 646 fflx_fe(ji,jj) = fflx_fe(ji,jj) + fse3t(ji,jj,jk) * & 643 647 ( (xrfn * & 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) )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) ) 647 651 # if defined key_roam 648 652 !! === carbon === 649 653 fflx_c(ji,jj) = fflx_c(ji,jj) + fse3t(ji,jj,jk) * & 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) )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) ) 655 659 !! === alkalinity === 656 660 fflx_a(ji,jj) = fflx_a(ji,jj) + fse3t(ji,jj,jk) * & 657 btra(ji,jj,jpalk )661 btra(ji,jj,jpalk_lc) 658 662 !! === oxygen === 659 663 fflx_o2(ji,jj) = fflx_o2(ji,jj) + fse3t(ji,jj,jk) * & 660 btra(ji,jj,jpoxy )664 btra(ji,jj,jpoxy_lc) 661 665 # endif 662 666 ENDIF … … 694 698 if (ibio_switch.eq.1) then 695 699 tra(ji,jj,jk,jpchn) = tra(ji,jj,jk,jpchn) + & 696 (btra(ji,jj,jpchn ) / 86400.)700 (btra(ji,jj,jpchn_lc) / 86400.) 697 701 tra(ji,jj,jk,jpchd) = tra(ji,jj,jk,jpchd) + & 698 (btra(ji,jj,jpchd ) / 86400.)702 (btra(ji,jj,jpchd_lc) / 86400.) 699 703 tra(ji,jj,jk,jpphn) = tra(ji,jj,jk,jpphn) + & 700 (btra(ji,jj,jpphn ) / 86400.)704 (btra(ji,jj,jpphn_lc) / 86400.) 701 705 tra(ji,jj,jk,jpphd) = tra(ji,jj,jk,jpphd) + & 702 (btra(ji,jj,jpphd ) / 86400.)706 (btra(ji,jj,jpphd_lc) / 86400.) 703 707 tra(ji,jj,jk,jppds) = tra(ji,jj,jk,jppds) + & 704 (btra(ji,jj,jppds ) / 86400.)708 (btra(ji,jj,jppds_lc) / 86400.) 705 709 tra(ji,jj,jk,jpzmi) = tra(ji,jj,jk,jpzmi) + & 706 (btra(ji,jj,jpzmi ) / 86400.)710 (btra(ji,jj,jpzmi_lc) / 86400.) 707 711 tra(ji,jj,jk,jpzme) = tra(ji,jj,jk,jpzme) + & 708 (btra(ji,jj,jpzme ) / 86400.)712 (btra(ji,jj,jpzme_lc) / 86400.) 709 713 tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) + & 710 (btra(ji,jj,jpdet ) / 86400.)714 (btra(ji,jj,jpdet_lc) / 86400.) 711 715 tra(ji,jj,jk,jpdin) = tra(ji,jj,jk,jpdin) + & 712 (btra(ji,jj,jpdin ) / 86400.)716 (btra(ji,jj,jpdin_lc) / 86400.) 713 717 tra(ji,jj,jk,jpsil) = tra(ji,jj,jk,jpsil) + & 714 (btra(ji,jj,jpsil ) / 86400.)718 (btra(ji,jj,jpsil_lc) / 86400.) 715 719 tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + & 716 (btra(ji,jj,jpfer ) / 86400.)720 (btra(ji,jj,jpfer_lc) / 86400.) 717 721 # if defined key_roam 718 722 tra(ji,jj,jk,jpdtc) = tra(ji,jj,jk,jpdtc) + & 719 (btra(ji,jj,jpdtc ) / 86400.)723 (btra(ji,jj,jpdtc_lc) / 86400.) 720 724 tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + & 721 (btra(ji,jj,jpdic ) / 86400.)725 (btra(ji,jj,jpdic_lc) / 86400.) 722 726 tra(ji,jj,jk,jpalk) = tra(ji,jj,jk,jpalk) + & 723 (btra(ji,jj,jpalk ) / 86400.)727 (btra(ji,jj,jpalk_lc) / 86400.) 724 728 tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) + & 725 (btra(ji,jj,jpoxy ) / 86400.)729 (btra(ji,jj,jpoxy_lc) / 86400.) 726 730 # endif 727 731 endif … … 737 741 IF( med_diag%FBDDTALK%dgsave ) THEN 738 742 fbddtalk(ji,jj) = fbddtalk(ji,jj) + & 739 (btra(ji,jj,jpalk ) * fse3t(ji,jj,jk))743 (btra(ji,jj,jpalk_lc) * fse3t(ji,jj,jk)) 740 744 ENDIF 741 745 IF( med_diag%FBDDTDIC%dgsave ) THEN 742 746 fbddtdic(ji,jj) = fbddtdic(ji,jj) + & 743 (btra(ji,jj,jpdic ) * fse3t(ji,jj,jk))747 (btra(ji,jj,jpdic_lc) * fse3t(ji,jj,jk)) 744 748 ENDIF 745 749 IF( med_diag%FBDDTDIFE%dgsave ) THEN 746 750 fbddtdife(ji,jj) = fbddtdife(ji,jj) + & 747 (btra(ji,jj,jpfer ) * fse3t(ji,jj,jk))751 (btra(ji,jj,jpfer_lc) * fse3t(ji,jj,jk)) 748 752 ENDIF 749 753 IF( med_diag%FBDDTDIN%dgsave ) THEN 750 754 fbddtdin(ji,jj) = fbddtdin(ji,jj) + & 751 (btra(ji,jj,jpdin ) * fse3t(ji,jj,jk))755 (btra(ji,jj,jpdin_lc) * fse3t(ji,jj,jk)) 752 756 ENDIF 753 757 IF( med_diag%FBDDTDISI%dgsave ) THEN 754 758 fbddtdisi(ji,jj) = fbddtdisi(ji,jj) + & 755 (btra(ji,jj,jpsil ) * fse3t(ji,jj,jk))759 (btra(ji,jj,jpsil_lc) * fse3t(ji,jj,jk)) 756 760 ENDIF 757 761 !! 758 762 IF( med_diag%BDDTALK3%dgsave ) THEN 759 bddtalk3(ji,jj,jk) = btra(ji,jj,jpalk )763 bddtalk3(ji,jj,jk) = btra(ji,jj,jpalk_lc) 760 764 ENDIF 761 765 IF( med_diag%BDDTDIC3%dgsave ) THEN 762 bddtdic3(ji,jj,jk) = btra(ji,jj,jpdic )766 bddtdic3(ji,jj,jk) = btra(ji,jj,jpdic_lc) 763 767 ENDIF 764 768 IF( med_diag%BDDTDIFE3%dgsave ) THEN 765 bddtdife3(ji,jj,jk) = btra(ji,jj,jpfer )769 bddtdife3(ji,jj,jk) = btra(ji,jj,jpfer_lc) 766 770 ENDIF 767 771 IF( med_diag%BDDTDIN3%dgsave ) THEN 768 bddtdin3(ji,jj,jk) = btra(ji,jj,jpdin )772 bddtdin3(ji,jj,jk) = btra(ji,jj,jpdin_lc) 769 773 ENDIF 770 774 IF( med_diag%BDDTDISI3%dgsave ) THEN 771 bddtdisi3(ji,jj,jk) = btra(ji,jj,jpsil )775 bddtdisi3(ji,jj,jk) = btra(ji,jj,jpsil_lc) 772 776 ENDIF 773 777 ENDIF … … 790 794 if (tmask(ji,jj,jk) == 1) then 791 795 !! 792 DO jn = 1,jp tra796 DO jn = 1,jp_medusa 793 797 fq0 = btra(ji,jj,jn) 794 798 !! AXY (30/01/14): "isnan" problem on HECTOR … … 801 805 endif 802 806 ENDDO 803 DO jn = 1,jptra807 DO jn = jp_msa0,jp_msa1 804 808 fq0 = tra(ji,jj,jk,jn) 805 809 !! AXY (30/01/14): "isnan" problem on HECTOR … … 818 822 # endif 819 823 820 !!----------------------------------------------------------821 !! Check model conservation822 !! these terms merely sum up the tendency terms of the relevant823 !! state variables, which should sum to zero; the iron cycle is824 !! complicated by fluxes that add (aeolian deposition and825 !! seafloor remineralisation) and remove (scavenging) dissolved826 !! iron from the model (i.e. the sum of iron fluxes is unlikely827 !! to be zero)828 !!----------------------------------------------------------829 !! DO jj = 2,jpjm1830 !! DO ji = 2,jpim1831 !! if (tmask(ji,jj,jk) == 1) then832 !!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_roam841 !! fcar0 = 0.842 !! falk0 = 0.843 !! foxy0 = 0.844 # endif845 !!846 !! if (kt/240*240.eq.kt) then847 !! if (ji.eq.2.and.jj.eq.2.and.jk.eq.1) then848 !! IF (lwp) write (*,*) &849 !! '*******!MEDUSA Conservation!*******',kt850 # if defined key_roam851 !! IF (lwp) write (*,*) fnit0,fsil0,ffer0,fcar0,falk0, &852 !! foxy0853 # else854 !! IF (lwp) write (*,*) fnit0,fsil0,ffer0855 # endif856 !! endif857 !! endif858 859 !! ENDIF860 !! ENDDO861 !! ENDDO862 824 863 825 END SUBROUTINE bio_medusa_update
Note: See TracChangeset
for help on using the changeset viewer.