New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 8419 for branches/NERC/dev_r5518_GO6_split_trcbiomedusa – NEMO

Ignore:
Timestamp:
2017-08-08T14:11:22+02:00 (7 years ago)
Author:
jpalmier
Message:

JPALM -- 08-08-2017 -- clean trcbio_medusa split only - running this time

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  
    3232      !!---------------------------------------------------------------------- 
    3333      USE bio_medusa_mod 
    34       USE dom_oce,           ONLY: atfp, atfp1, neuler, rdt, e3t_n, tmask 
     34      USE dom_oce,           ONLY: atfp, atfp1, neuler, rdt 
    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  
    6663      !!---------------------------------------------------------------------- 
    6764      !! Process benthic in/out fluxes 
     
    238235         ENDIF 
    239236      endif 
    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 
    323237       
    324238      IF( ln_diatrc ) THEN 
  • branches/NERC/dev_r5518_GO6_split_trcbiomedusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_update.F90

    r8395 r8419  
    7373                                   jpalk, jpchd, jpchn, jpdet, jpdic,        & 
    7474                                   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 
    8076      USE par_oce,           ONLY: jpi, jpim1, jpj, jpjm1 
    8177      USE par_trc,           ONLY: jptra 
     
    134130               !!---------------------------------------------------------- 
    135131               !! 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) *      & 
    137133                                             zphn(ji,jj) ) -                 & 
    138134                                           fgmipn(ji,jj) - fgmepn(ji,jj) -   & 
    139135                                           fdpn(ji,jj) - fdpn2(ji,jj) ) *    & 
    140136                                          (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) *      & 
    142138                                             zphd(ji,jj) ) -                 & 
    143139                                           fgmepd(ji,jj) - fdpd(ji,jj) -     & 
     
    154150               !!---------------------------------------------------------- 
    155151               !! 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)) -      & 
    157153                                          fgmipn(ji,jj) - fgmepn(ji,jj) -    & 
    158154                                          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)) -      & 
    160156                                          fgmepd(ji,jj) - fdpd(ji,jj) -      & 
    161157                                          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)) -     & 
    163159                                          fgmepds(ji,jj) - fdpds(ji,jj) -    & 
    164160                                          fsdiss(ji,jj) - fdpds2(ji,jj) ) 
     
    173169               !!---------------------------------------------------------- 
    174170               !! 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) -   & 
    176172                                         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) -     & 
    178174                                         fdzme2(ji,jj)) 
    179175            ENDIF 
     
    187183               !!---------------------------------------------------------- 
    188184               !! detritus 
    189                btra(ji,jj,jpdet_lc) = b0 *                                      & 
     185               btra(ji,jj,jpdet) = b0 *                                      & 
    190186                                          ! mort. losses  
    191187                                   (fdpn(ji,jj) + ((1.0 - xfdfrac1) *        & 
     
    240236               endif 
    241237               !! 
    242                btra(ji,jj,jpdin_lc) = b0 * ( fn_prod + fn_cons ) 
     238               btra(ji,jj,jpdin) = b0 * ( fn_prod + fn_cons ) 
    243239               !! 
    244240               !! consumption of dissolved nitrogen 
     
    285281               endif 
    286282               !! 
    287                btra(ji,jj,jpsil_lc) = b0 * ( & 
     283               btra(ji,jj,jpsil) = b0 * ( & 
    288284                 fs_prod + fs_cons ) 
    289285               !! consumption of dissolved silicon 
     
    302298               !!---------------------------------------------------------- 
    303299               !! 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)) +       & 
    305301                                          ffetop(ji,jj) + ffebot(ji,jj) -    & 
    306302                                          ffescav(ji,jj) ) 
     
    309305               !!---------------------------------------------------------- 
    310306               !! AXY (26/11/08): implicit detrital carbon change 
    311                btra(ji,jj,jpdtc_lc) = b0 * (                                    & 
     307               btra(ji,jj,jpdtc) = b0 * (                                    & 
    312308                                            ! mort. losses 
    313309                                         (xthetapn * fdpn(ji,jj)) +          & 
     
    385381               endif 
    386382               !! 
    387                btra(ji,jj,jpdic_lc) = b0 * ( fc_prod + fc_cons ) 
     383               btra(ji,jj,jpdic) = b0 * ( fc_prod + fc_cons ) 
    388384               !! consumption of dissolved carbon 
    389385               fcar_cons(ji,jj) = fcar_cons(ji,jj) + ( fse3t(ji,jj,jk) *     & 
     
    422418               endif 
    423419               !! 
    424                btra(ji,jj,jpalk_lc) = b0 * ( fa_prod + fa_cons ) 
     420               btra(ji,jj,jpalk) = b0 * ( fa_prod + fa_cons ) 
    425421            ENDIF 
    426422         ENDDO 
     
    542538               !! deficient O2; production fluxes only 
    543539               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) 
    545541                  foxy_prod(ji,jj) = foxy_prod(ji,jj) + ( fse3t(ji,jj,jk) *  & 
    546542                                                          fo2_prod(ji,jj) ) 
     
    549545               else 
    550546                  !! 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) +               & 
    552548                                             fo2_cons(ji,jj) ) 
    553549                  foxy_prod(ji,jj) = foxy_prod(ji,jj) +                      & 
     
    568564                  !! 
    569565                  !! CO2 flux 
    570                   btra(ji,jj,jpdic_lc) = btra(ji,jj,jpdic_lc) + (b0 *              & 
     566                  btra(ji,jj,jpdic) = btra(ji,jj,jpdic) + (b0 *              & 
    571567                                                           f_co2flux(ji,jj)) 
    572568                  !! 
    573569                  !! 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 *              & 
    575571                                                           f_o2flux(ji,jj)) 
    576572               endif 
     
    590586               if (idf.eq.1.AND.idfval.eq.1) then 
    591587                  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) 
    614610#  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) 
    623619#  endif 
    624620               endif 
     
    637633               !! === nitrogen === 
    638634               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) ) 
    642638               !! === silicon === 
    643639               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) ) 
    645641               !! === iron === 
    646642               fflx_fe(ji,jj) = fflx_fe(ji,jj) + fse3t(ji,jj,jk) *           & 
    647643                                ( (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) ) 
    651647# if defined key_roam 
    652648               !! === carbon === 
    653649               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) ) 
    659655               !! === alkalinity === 
    660656               fflx_a(ji,jj)  = fflx_a(ji,jj) + fse3t(ji,jj,jk) *            & 
    661                                 btra(ji,jj,jpalk_lc) 
     657                                btra(ji,jj,jpalk) 
    662658               !! === oxygen === 
    663659               fflx_o2(ji,jj) = fflx_o2(ji,jj) + fse3t(ji,jj,jk) *           & 
    664                                 btra(ji,jj,jpoxy_lc) 
     660                                btra(ji,jj,jpoxy) 
    665661# endif 
    666662            ENDIF 
     
    698694               if (ibio_switch.eq.1) then 
    699695                  tra(ji,jj,jk,jpchn) = tra(ji,jj,jk,jpchn) +                & 
    700                                         (btra(ji,jj,jpchn_lc) / 86400.) 
     696                                        (btra(ji,jj,jpchn) / 86400.) 
    701697                  tra(ji,jj,jk,jpchd) = tra(ji,jj,jk,jpchd) +                & 
    702                                         (btra(ji,jj,jpchd_lc) / 86400.) 
     698                                        (btra(ji,jj,jpchd) / 86400.) 
    703699                  tra(ji,jj,jk,jpphn) = tra(ji,jj,jk,jpphn) +                & 
    704                                         (btra(ji,jj,jpphn_lc) / 86400.) 
     700                                        (btra(ji,jj,jpphn) / 86400.) 
    705701                  tra(ji,jj,jk,jpphd) = tra(ji,jj,jk,jpphd) +                & 
    706                                         (btra(ji,jj,jpphd_lc) / 86400.) 
     702                                        (btra(ji,jj,jpphd) / 86400.) 
    707703                  tra(ji,jj,jk,jppds) = tra(ji,jj,jk,jppds) +                & 
    708                                         (btra(ji,jj,jppds_lc) / 86400.) 
     704                                        (btra(ji,jj,jppds) / 86400.) 
    709705                  tra(ji,jj,jk,jpzmi) = tra(ji,jj,jk,jpzmi) +                & 
    710                                         (btra(ji,jj,jpzmi_lc) / 86400.) 
     706                                        (btra(ji,jj,jpzmi) / 86400.) 
    711707                  tra(ji,jj,jk,jpzme) = tra(ji,jj,jk,jpzme) +                & 
    712                                         (btra(ji,jj,jpzme_lc) / 86400.) 
     708                                        (btra(ji,jj,jpzme) / 86400.) 
    713709                  tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) +                & 
    714                                         (btra(ji,jj,jpdet_lc) / 86400.) 
     710                                        (btra(ji,jj,jpdet) / 86400.) 
    715711                  tra(ji,jj,jk,jpdin) = tra(ji,jj,jk,jpdin) +                & 
    716                                         (btra(ji,jj,jpdin_lc) / 86400.) 
     712                                        (btra(ji,jj,jpdin) / 86400.) 
    717713                  tra(ji,jj,jk,jpsil) = tra(ji,jj,jk,jpsil) +                & 
    718                                         (btra(ji,jj,jpsil_lc) / 86400.) 
     714                                        (btra(ji,jj,jpsil) / 86400.) 
    719715                  tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) +                & 
    720                                         (btra(ji,jj,jpfer_lc) / 86400.) 
     716                                        (btra(ji,jj,jpfer) / 86400.) 
    721717# if defined key_roam 
    722718                  tra(ji,jj,jk,jpdtc) = tra(ji,jj,jk,jpdtc) +                & 
    723                                         (btra(ji,jj,jpdtc_lc) / 86400.) 
     719                                        (btra(ji,jj,jpdtc) / 86400.) 
    724720                  tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) +                & 
    725                                         (btra(ji,jj,jpdic_lc) / 86400.) 
     721                                        (btra(ji,jj,jpdic) / 86400.) 
    726722                  tra(ji,jj,jk,jpalk) = tra(ji,jj,jk,jpalk) +                & 
    727                                         (btra(ji,jj,jpalk_lc) / 86400.) 
     723                                        (btra(ji,jj,jpalk) / 86400.) 
    728724                  tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) +                & 
    729                                         (btra(ji,jj,jpoxy_lc) / 86400.) 
     725                                        (btra(ji,jj,jpoxy) / 86400.) 
    730726# endif 
    731727               endif 
     
    741737               IF( med_diag%FBDDTALK%dgsave )  THEN 
    742738                  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)) 
    744740               ENDIF 
    745741               IF( med_diag%FBDDTDIC%dgsave )  THEN 
    746742                  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)) 
    748744               ENDIF 
    749745               IF( med_diag%FBDDTDIFE%dgsave ) THEN 
    750746                  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)) 
    752748               ENDIF 
    753749               IF( med_diag%FBDDTDIN%dgsave )  THEN 
    754750                  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)) 
    756752               ENDIF 
    757753               IF( med_diag%FBDDTDISI%dgsave ) THEN 
    758754                  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)) 
    760756               ENDIF 
    761757          !! 
    762758               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) 
    764760               ENDIF 
    765761               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) 
    767763               ENDIF 
    768764               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) 
    770766               ENDIF 
    771767               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) 
    773769               ENDIF 
    774770               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) 
    776772               ENDIF 
    777773            ENDIF 
     
    794790            if (tmask(ji,jj,jk) == 1) then 
    795791               !! 
    796                DO jn = 1,jp_medusa 
     792               DO jn = 1,jptra 
    797793                  fq0 = btra(ji,jj,jn) 
    798794                  !! AXY (30/01/14): "isnan" problem on HECTOR 
     
    805801                  endif 
    806802               ENDDO 
    807                DO jn = jp_msa0,jp_msa1 
     803               DO jn = 1,jptra 
    808804                  fq0 = tra(ji,jj,jk,jn) 
    809805                  !! AXY (30/01/14): "isnan" problem on HECTOR 
     
    822818# endif 
    823819 
     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 
    824862 
    825863   END SUBROUTINE bio_medusa_update 
  • branches/NERC/dev_r5518_GO6_split_trcbiomedusa/NEMOGCM/NEMO/TOP_SRC/trcini.F90

    r8356 r8419  
    295295      USE trdmxl_trc    , ONLY:   trd_mxl_trc_alloc 
    296296#endif 
     297# if defined key_medusa 
     298      USE bio_medusa_mod, ONLY:   bio_medusa_alloc 
     299# endif 
     300 
    297301      ! 
    298302      INTEGER :: ierr 
     
    307311      ierr = ierr + trd_mxl_trc_alloc() 
    308312#endif 
     313#if defined key_medusa 
     314      ierr = ierr + bio_medusa_alloc() 
     315#endif 
    309316      ! 
    310317      IF( lk_mpp    )   CALL mpp_sum( ierr ) 
Note: See TracChangeset for help on using the changeset viewer.