Changeset 8423


Ignore:
Timestamp:
2017-08-08T16:14:00+02:00 (3 years ago)
Author:
jpalmier
Message:

JPALM — 08-08-2017 — add conservation test - correct MEDUSA jn loop

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  
    3232      !!---------------------------------------------------------------------- 
    3333      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 
    3535      USE in_out_manager,    ONLY: lwp, numout 
    3636# if defined key_iomput 
     
    6161      INTEGER :: ji, jj 
    6262      INTEGER :: jn 
     63 
     64      REAL(wp) :: fq0,fq1,fq2,fq3 
     65 
    6366      !!---------------------------------------------------------------------- 
    6467      !! Process benthic in/out fluxes 
     
    235238         ENDIF 
    236239      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  
    238324      IF( ln_diatrc ) THEN 
    239325         !!----------------------------------------------------------------- 
  • branches/NERC/dev_r5518_GO6_split_trcbiomedusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_update.F90

    r8419 r8423  
    7373                                   jpalk, jpchd, jpchn, jpdet, jpdic,        & 
    7474                                   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 
    7680      USE par_oce,           ONLY: jpi, jpim1, jpj, jpjm1 
    7781      USE par_trc,           ONLY: jptra 
     
    130134               !!---------------------------------------------------------- 
    131135               !! 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) *      & 
    133137                                             zphn(ji,jj) ) -                 & 
    134138                                           fgmipn(ji,jj) - fgmepn(ji,jj) -   & 
    135139                                           fdpn(ji,jj) - fdpn2(ji,jj) ) *    & 
    136140                                          (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) *      & 
    138142                                             zphd(ji,jj) ) -                 & 
    139143                                           fgmepd(ji,jj) - fdpd(ji,jj) -     & 
     
    150154               !!---------------------------------------------------------- 
    151155               !! 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)) -      & 
    153157                                          fgmipn(ji,jj) - fgmepn(ji,jj) -    & 
    154158                                          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)) -      & 
    156160                                          fgmepd(ji,jj) - fdpd(ji,jj) -      & 
    157161                                          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)) -     & 
    159163                                          fgmepds(ji,jj) - fdpds(ji,jj) -    & 
    160164                                          fsdiss(ji,jj) - fdpds2(ji,jj) ) 
     
    169173               !!---------------------------------------------------------- 
    170174               !! 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) -   & 
    172176                                         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) -     & 
    174178                                         fdzme2(ji,jj)) 
    175179            ENDIF 
     
    183187               !!---------------------------------------------------------- 
    184188               !! detritus 
    185                btra(ji,jj,jpdet) = b0 *                                      & 
     189               btra(ji,jj,jpdet_lc) = b0 *                                      & 
    186190                                          ! mort. losses  
    187191                                   (fdpn(ji,jj) + ((1.0 - xfdfrac1) *        & 
     
    236240               endif 
    237241               !! 
    238                btra(ji,jj,jpdin) = b0 * ( fn_prod + fn_cons ) 
     242               btra(ji,jj,jpdin_lc) = b0 * ( fn_prod + fn_cons ) 
    239243               !! 
    240244               !! consumption of dissolved nitrogen 
     
    281285               endif 
    282286               !! 
    283                btra(ji,jj,jpsil) = b0 * ( & 
     287               btra(ji,jj,jpsil_lc) = b0 * ( & 
    284288                 fs_prod + fs_cons ) 
    285289               !! consumption of dissolved silicon 
     
    298302               !!---------------------------------------------------------- 
    299303               !! 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)) +       & 
    301305                                          ffetop(ji,jj) + ffebot(ji,jj) -    & 
    302306                                          ffescav(ji,jj) ) 
     
    305309               !!---------------------------------------------------------- 
    306310               !! AXY (26/11/08): implicit detrital carbon change 
    307                btra(ji,jj,jpdtc) = b0 * (                                    & 
     311               btra(ji,jj,jpdtc_lc) = b0 * (                                    & 
    308312                                            ! mort. losses 
    309313                                         (xthetapn * fdpn(ji,jj)) +          & 
     
    381385               endif 
    382386               !! 
    383                btra(ji,jj,jpdic) = b0 * ( fc_prod + fc_cons ) 
     387               btra(ji,jj,jpdic_lc) = b0 * ( fc_prod + fc_cons ) 
    384388               !! consumption of dissolved carbon 
    385389               fcar_cons(ji,jj) = fcar_cons(ji,jj) + ( fse3t(ji,jj,jk) *     & 
     
    418422               endif 
    419423               !! 
    420                btra(ji,jj,jpalk) = b0 * ( fa_prod + fa_cons ) 
     424               btra(ji,jj,jpalk_lc) = b0 * ( fa_prod + fa_cons ) 
    421425            ENDIF 
    422426         ENDDO 
     
    538542               !! deficient O2; production fluxes only 
    539543               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) 
    541545                  foxy_prod(ji,jj) = foxy_prod(ji,jj) + ( fse3t(ji,jj,jk) *  & 
    542546                                                          fo2_prod(ji,jj) ) 
     
    545549               else 
    546550                  !! 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) +               & 
    548552                                             fo2_cons(ji,jj) ) 
    549553                  foxy_prod(ji,jj) = foxy_prod(ji,jj) +                      & 
     
    564568                  !! 
    565569                  !! CO2 flux 
    566                   btra(ji,jj,jpdic) = btra(ji,jj,jpdic) + (b0 *              & 
     570                  btra(ji,jj,jpdic_lc) = btra(ji,jj,jpdic_lc) + (b0 *              & 
    567571                                                           f_co2flux(ji,jj)) 
    568572                  !! 
    569573                  !! 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 *              & 
    571575                                                           f_o2flux(ji,jj)) 
    572576               endif 
     
    586590               if (idf.eq.1.AND.idfval.eq.1) then 
    587591                  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) 
    610614#  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) 
    619623#  endif 
    620624               endif 
     
    633637               !! === nitrogen === 
    634638               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) ) 
    638642               !! === silicon === 
    639643               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) ) 
    641645               !! === iron === 
    642646               fflx_fe(ji,jj) = fflx_fe(ji,jj) + fse3t(ji,jj,jk) *           & 
    643647                                ( (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) ) 
    647651# if defined key_roam 
    648652               !! === carbon === 
    649653               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) ) 
    655659               !! === alkalinity === 
    656660               fflx_a(ji,jj)  = fflx_a(ji,jj) + fse3t(ji,jj,jk) *            & 
    657                                 btra(ji,jj,jpalk) 
     661                                btra(ji,jj,jpalk_lc) 
    658662               !! === oxygen === 
    659663               fflx_o2(ji,jj) = fflx_o2(ji,jj) + fse3t(ji,jj,jk) *           & 
    660                                 btra(ji,jj,jpoxy) 
     664                                btra(ji,jj,jpoxy_lc) 
    661665# endif 
    662666            ENDIF 
     
    694698               if (ibio_switch.eq.1) then 
    695699                  tra(ji,jj,jk,jpchn) = tra(ji,jj,jk,jpchn) +                & 
    696                                         (btra(ji,jj,jpchn) / 86400.) 
     700                                        (btra(ji,jj,jpchn_lc) / 86400.) 
    697701                  tra(ji,jj,jk,jpchd) = tra(ji,jj,jk,jpchd) +                & 
    698                                         (btra(ji,jj,jpchd) / 86400.) 
     702                                        (btra(ji,jj,jpchd_lc) / 86400.) 
    699703                  tra(ji,jj,jk,jpphn) = tra(ji,jj,jk,jpphn) +                & 
    700                                         (btra(ji,jj,jpphn) / 86400.) 
     704                                        (btra(ji,jj,jpphn_lc) / 86400.) 
    701705                  tra(ji,jj,jk,jpphd) = tra(ji,jj,jk,jpphd) +                & 
    702                                         (btra(ji,jj,jpphd) / 86400.) 
     706                                        (btra(ji,jj,jpphd_lc) / 86400.) 
    703707                  tra(ji,jj,jk,jppds) = tra(ji,jj,jk,jppds) +                & 
    704                                         (btra(ji,jj,jppds) / 86400.) 
     708                                        (btra(ji,jj,jppds_lc) / 86400.) 
    705709                  tra(ji,jj,jk,jpzmi) = tra(ji,jj,jk,jpzmi) +                & 
    706                                         (btra(ji,jj,jpzmi) / 86400.) 
     710                                        (btra(ji,jj,jpzmi_lc) / 86400.) 
    707711                  tra(ji,jj,jk,jpzme) = tra(ji,jj,jk,jpzme) +                & 
    708                                         (btra(ji,jj,jpzme) / 86400.) 
     712                                        (btra(ji,jj,jpzme_lc) / 86400.) 
    709713                  tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) +                & 
    710                                         (btra(ji,jj,jpdet) / 86400.) 
     714                                        (btra(ji,jj,jpdet_lc) / 86400.) 
    711715                  tra(ji,jj,jk,jpdin) = tra(ji,jj,jk,jpdin) +                & 
    712                                         (btra(ji,jj,jpdin) / 86400.) 
     716                                        (btra(ji,jj,jpdin_lc) / 86400.) 
    713717                  tra(ji,jj,jk,jpsil) = tra(ji,jj,jk,jpsil) +                & 
    714                                         (btra(ji,jj,jpsil) / 86400.) 
     718                                        (btra(ji,jj,jpsil_lc) / 86400.) 
    715719                  tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) +                & 
    716                                         (btra(ji,jj,jpfer) / 86400.) 
     720                                        (btra(ji,jj,jpfer_lc) / 86400.) 
    717721# if defined key_roam 
    718722                  tra(ji,jj,jk,jpdtc) = tra(ji,jj,jk,jpdtc) +                & 
    719                                         (btra(ji,jj,jpdtc) / 86400.) 
     723                                        (btra(ji,jj,jpdtc_lc) / 86400.) 
    720724                  tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) +                & 
    721                                         (btra(ji,jj,jpdic) / 86400.) 
     725                                        (btra(ji,jj,jpdic_lc) / 86400.) 
    722726                  tra(ji,jj,jk,jpalk) = tra(ji,jj,jk,jpalk) +                & 
    723                                         (btra(ji,jj,jpalk) / 86400.) 
     727                                        (btra(ji,jj,jpalk_lc) / 86400.) 
    724728                  tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) +                & 
    725                                         (btra(ji,jj,jpoxy) / 86400.) 
     729                                        (btra(ji,jj,jpoxy_lc) / 86400.) 
    726730# endif 
    727731               endif 
     
    737741               IF( med_diag%FBDDTALK%dgsave )  THEN 
    738742                  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)) 
    740744               ENDIF 
    741745               IF( med_diag%FBDDTDIC%dgsave )  THEN 
    742746                  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)) 
    744748               ENDIF 
    745749               IF( med_diag%FBDDTDIFE%dgsave ) THEN 
    746750                  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)) 
    748752               ENDIF 
    749753               IF( med_diag%FBDDTDIN%dgsave )  THEN 
    750754                  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)) 
    752756               ENDIF 
    753757               IF( med_diag%FBDDTDISI%dgsave ) THEN 
    754758                  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)) 
    756760               ENDIF 
    757761          !! 
    758762               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) 
    760764               ENDIF 
    761765               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) 
    763767               ENDIF 
    764768               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) 
    766770               ENDIF 
    767771               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) 
    769773               ENDIF 
    770774               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) 
    772776               ENDIF 
    773777            ENDIF 
     
    790794            if (tmask(ji,jj,jk) == 1) then 
    791795               !! 
    792                DO jn = 1,jptra 
     796               DO jn = 1,jp_medusa 
    793797                  fq0 = btra(ji,jj,jn) 
    794798                  !! AXY (30/01/14): "isnan" problem on HECTOR 
     
    801805                  endif 
    802806               ENDDO 
    803                DO jn = 1,jptra 
     807               DO jn = jp_msa0,jp_msa1 
    804808                  fq0 = tra(ji,jj,jk,jn) 
    805809                  !! AXY (30/01/14): "isnan" problem on HECTOR 
     
    818822# endif 
    819823 
    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 
    862824 
    863825   END SUBROUTINE bio_medusa_update 
Note: See TracChangeset for help on using the changeset viewer.