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 8062 – NEMO

Changeset 8062


Ignore:
Timestamp:
2017-05-24T10:03:18+02:00 (7 years ago)
Author:
marc
Message:

Fixes to do with tmask(ji,jj,1) and mbathy(ji,jj) outside DO loop

Location:
branches/UKMO/dev_r5518_medusa_chg_trc_bio_medusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_medusa_chg_trc_bio_medusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_med_diag_iomput.F90

    r8025 r8062  
    367367            ENDDO 
    368368         ENDDO 
    369       ELSE IF (jk.eq.mbathy(ji,jj)) THEN 
     369      ELSE 
    370370         DO jj = 2,jpjm1 
    371371            DO ji = 2,jpim1 
    372                IF (tmask(ji,jj,jk) == 1) THEN 
    373                   IF( med_diag%IBEN_N%dgsave ) THEN 
    374                      iben_n2d(ji,jj) = f_sbenin_n(ji,jj) +                   & 
    375                                        f_fbenin_n(ji,jj) 
    376                   ENDIF 
    377                   IF( med_diag%IBEN_FE%dgsave ) THEN 
    378                      iben_fe2d(ji,jj) = f_sbenin_fe(ji,jj) +                 & 
    379                                         f_fbenin_fe(ji,jj) 
    380                   ENDIF 
    381                   IF( med_diag%IBEN_C%dgsave ) THEN 
    382                      iben_c2d(ji,jj) = f_sbenin_c(ji,jj) +                   & 
    383                                        f_fbenin_c(ji,jj) 
    384                   ENDIF 
    385                   IF( med_diag%IBEN_SI%dgsave ) THEN 
    386                      iben_si2d(ji,jj) = f_fbenin_si(ji,jj) 
    387                   ENDIF 
    388                   IF( med_diag%IBEN_CA%dgsave ) THEN 
    389                      iben_ca2d(ji,jj) = f_fbenin_ca(ji,jj) 
    390                   ENDIF 
    391                   IF( med_diag%OBEN_N%dgsave ) THEN 
    392                      oben_n2d(ji,jj) = f_benout_n(ji,jj) 
    393                   ENDIF 
    394                   IF( med_diag%OBEN_FE%dgsave ) THEN 
    395                      oben_fe2d(ji,jj) = f_benout_fe(ji,jj) 
    396                   ENDIF 
    397                   IF( med_diag%OBEN_C%dgsave ) THEN 
    398                      oben_c2d(ji,jj) = f_benout_c(ji,jj) 
    399                   ENDIF 
    400                   IF( med_diag%OBEN_SI%dgsave ) THEN 
    401                      oben_si2d(ji,jj) = f_benout_si(ji,jj) 
    402                   ENDIF 
    403                   IF( med_diag%OBEN_CA%dgsave ) THEN 
    404                      oben_ca2d(ji,jj) = f_benout_ca(ji,jj) 
    405                   ENDIF 
    406                   IF( med_diag%SFR_OCAL%dgsave ) THEN 
    407                      sfr_ocal2d(ji,jj) = f3_omcal(ji,jj,jk) 
    408                   ENDIF 
    409                   IF( med_diag%SFR_OARG%dgsave ) THEN 
    410                      sfr_oarg2d(ji,jj) =  f3_omarg(ji,jj,jk) 
    411                   ENDIF 
    412                   IF( med_diag%LYSO_CA%dgsave ) THEN 
    413                      lyso_ca2d(ji,jj) = f_benout_lyso_ca(ji,jj) 
     372               IF (jk.eq.mbathy(ji,jj)) THEN 
     373                  IF (tmask(ji,jj,jk) == 1) THEN 
     374                     IF( med_diag%IBEN_N%dgsave ) THEN 
     375                        iben_n2d(ji,jj) = f_sbenin_n(ji,jj) +                & 
     376                                          f_fbenin_n(ji,jj) 
     377                     ENDIF 
     378                     IF( med_diag%IBEN_FE%dgsave ) THEN 
     379                        iben_fe2d(ji,jj) = f_sbenin_fe(ji,jj) +              & 
     380                                           f_fbenin_fe(ji,jj) 
     381                     ENDIF 
     382                     IF( med_diag%IBEN_C%dgsave ) THEN 
     383                        iben_c2d(ji,jj) = f_sbenin_c(ji,jj) +                & 
     384                                          f_fbenin_c(ji,jj) 
     385                     ENDIF 
     386                     IF( med_diag%IBEN_SI%dgsave ) THEN 
     387                        iben_si2d(ji,jj) = f_fbenin_si(ji,jj) 
     388                     ENDIF 
     389                     IF( med_diag%IBEN_CA%dgsave ) THEN 
     390                        iben_ca2d(ji,jj) = f_fbenin_ca(ji,jj) 
     391                     ENDIF 
     392                     IF( med_diag%OBEN_N%dgsave ) THEN 
     393                        oben_n2d(ji,jj) = f_benout_n(ji,jj) 
     394                     ENDIF 
     395                     IF( med_diag%OBEN_FE%dgsave ) THEN 
     396                        oben_fe2d(ji,jj) = f_benout_fe(ji,jj) 
     397                     ENDIF 
     398                     IF( med_diag%OBEN_C%dgsave ) THEN 
     399                        oben_c2d(ji,jj) = f_benout_c(ji,jj) 
     400                     ENDIF 
     401                     IF( med_diag%OBEN_SI%dgsave ) THEN 
     402                        oben_si2d(ji,jj) = f_benout_si(ji,jj) 
     403                     ENDIF 
     404                     IF( med_diag%OBEN_CA%dgsave ) THEN 
     405                        oben_ca2d(ji,jj) = f_benout_ca(ji,jj) 
     406                     ENDIF 
     407                     IF( med_diag%SFR_OCAL%dgsave ) THEN 
     408                        sfr_ocal2d(ji,jj) = f3_omcal(ji,jj,jk) 
     409                     ENDIF 
     410                     IF( med_diag%SFR_OARG%dgsave ) THEN 
     411                        sfr_oarg2d(ji,jj) =  f3_omarg(ji,jj,jk) 
     412                     ENDIF 
     413                     IF( med_diag%LYSO_CA%dgsave ) THEN 
     414                        lyso_ca2d(ji,jj) = f_benout_lyso_ca(ji,jj) 
     415                     ENDIF 
    414416                  ENDIF 
    415417               ENDIF 
  • branches/UKMO/dev_r5518_medusa_chg_trc_bio_medusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_med_diag_trc.F90

    r8051 r8062  
    529529 
    530530 
    531       if (jk.eq.mbathy(ji,jj)) then 
    532          DO jj = 2,jpjm1 
    533             DO ji = 2,jpim1 
    534                IF (tmask(ji,jj,jk) == 1) THEN 
     531      DO jj = 2,jpjm1 
     532         DO ji = 2,jpim1 
     533            IF (tmask(ji,jj,jk) == 1) THEN 
     534               if (jk.eq.mbathy(ji,jj)) then 
    535535                  !! N  sedimentation flux 
    536536                  trc2d(ji,jj,69) = fsedn(ji,jj) 
     
    543543                  !! Ca sedimentation flux 
    544544                  trc2d(ji,jj,73) = fsedca(ji,jj) 
    545                ENDIF 
    546             ENDDO 
    547          ENDDO 
    548       endif 
     545               endif 
     546            ENDIF 
     547         ENDDO 
     548      ENDDO 
    549549 
    550550      if (jk.eq.1) then 
     
    729729      endif 
    730730 
    731       if (jk .eq. mbathy(ji,jj)) then 
    732          DO jj = 2,jpjm1 
    733             DO ji = 2,jpim1 
    734                IF (tmask(ji,jj,jk) == 1) THEN 
     731      DO jj = 2,jpjm1 
     732         DO ji = 2,jpim1 
     733            IF (tmask(ji,jj,jk) == 1) THEN 
     734               if (jk .eq. mbathy(ji,jj)) then 
    735735                  !! seafloor omega calcite 
    736736                  trc2d(ji,jj,109) = f3_omcal(ji,jj,jk) 
    737737                  !! seafloor omega aragonite 
    738738                  trc2d(ji,jj,110) = f3_omarg(ji,jj,jk) 
    739                ENDIF 
    740             ENDDO 
    741          ENDDO 
    742       endif 
     739               endif 
     740            ENDIF 
     741         ENDDO 
     742      ENDDO 
    743743 
    744744      if (jk.eq.i0100) then 
     
    779779      endif 
    780780 
    781       if (jk.eq.mbathy(ji,jj)) then 
    782          DO jj = 2,jpjm1 
    783             DO ji = 2,jpim1 
    784                IF (tmask(ji,jj,jk) == 1) THEN 
     781      DO jj = 2,jpjm1 
     782         DO ji = 2,jpim1 
     783            IF (tmask(ji,jj,jk) == 1) THEN 
     784               if (jk.eq.mbathy(ji,jj)) then 
    785785                  !! AXY (18/01/12): benthic flux diagnostics 
    786786                  trc2d(ji,jj,121) = f_sbenin_n(ji,jj)  + f_fbenin_n(ji,jj) 
     
    794794                  trc2d(ji,jj,129) = f_benout_si(ji,jj) 
    795795                  trc2d(ji,jj,130) = f_benout_ca(ji,jj) 
    796                ENDIF 
    797             ENDDO 
    798          ENDDO 
    799       endif 
     796               endif 
     797            ENDIF 
     798         ENDDO 
     799      ENDDO 
    800800 
    801801      DO jj = 2,jpjm1 
     
    876876               !! oxygen     inventory 
    877877               trc2d(ji,jj,148)  = trc2d(ji,jj,148)  + ftot_o2(ji,jj) 
    878             ENDIF 
    879          ENDDO 
    880       ENDDO 
    881  
    882       if (jk.eq.mbathy(ji,jj)) then 
    883          DO jj = 2,jpjm1 
    884             DO ji = 2,jpim1 
    885                IF (tmask(ji,jj,jk) == 1) THEN 
     878 
     879               if (jk.eq.mbathy(ji,jj)) then 
    886880                  trc2d(ji,jj,149) = f_benout_lyso_ca(ji,jj) 
    887                ENDIF 
    888             ENDDO 
    889          ENDDO 
    890       endif 
    891  
    892       DO jj = 2,jpjm1 
    893          DO ji = 2,jpim1 
    894             IF (tmask(ji,jj,jk) == 1) THEN 
     881               endif 
     882 
    895883               !! community respiration 
    896884               trc2d(ji,jj,150) = fcomm_resp(ji,jj) * fse3t(ji,jj,jk) 
  • branches/UKMO/dev_r5518_medusa_chg_trc_bio_medusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_diag.F90

    r8025 r8062  
    7878         DO jj = 2,jpjm1 
    7979            DO ji = 2,jpim1 
    80                if (tmask(ji,jj,1) == 1) then 
     80               if (tmask(ji,jj,jk) == 1) then 
    8181                  !! sum tracers for inventory checks 
    8282                  IF ( med_diag%INVTN%dgsave )   THEN 
     
    105105         DO jj = 2,jpjm1 
    106106            DO ji = 2,jpim1 
    107                if (tmask(ji,jj,1) == 1) then 
     107               if (tmask(ji,jj,jk) == 1) then 
    108108                  IF ( med_diag%INVTC%dgsave )  THEN 
    109109                     ftot_c(ji,jj)  = ftot_c(ji,jj) +                        &  
     
    128128         DO jj = 2,jpjm1 
    129129            DO ji = 2,jpim1 
    130                if (tmask(ji,jj,1) == 1) then 
     130               if (tmask(ji,jj,jk) == 1) then 
    131131                  IF ( med_diag%INVTC%dgsave )  THEN 
    132132                     !! 
     
    155155         DO jj = 2,jpjm1 
    156156            DO ji = 2,jpim1 
    157                if (tmask(ji,jj,1) == 1) then 
     157               if (tmask(ji,jj,jk) == 1) then 
    158158                  IF ( med_diag%O2min%dgsave ) THEN 
    159159                     if ( zoxy(ji,jj) < o2min(ji,jj) ) then 
  • branches/UKMO/dev_r5518_medusa_chg_trc_bio_medusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA/detritus_fast_sink.F90

    r8039 r8062  
    116116      DO jj = 2,jpjm1 
    117117         DO ji = 2,jpim1 
    118             IF (tmask(ji,jj,1) == 1) THEN 
     118            IF (tmask(ji,jj,jk) == 1) THEN 
    119119               !! 
    120120               !! this variable integrates the creation of slow sinking  
     
    167167      DO jj = 2,jpjm1 
    168168         DO ji = 2,jpim1 
    169             IF (tmask(ji,jj,1) == 1) THEN 
     169            IF (tmask(ji,jj,jk) == 1) THEN 
    170170               !! 
    171171               !! nitrogen 
  • branches/UKMO/dev_r5518_medusa_chg_trc_bio_medusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA/iron_chem_scav.F90

    r8045 r8062  
    8787         DO ji = 2,jpim1 
    8888            !! OPEN wet point IF..THEN loop 
    89             if (tmask(ji,jj,1) == 1) then 
     89            if (tmask(ji,jj,jk) == 1) then 
    9090               !! 
    9191               !! total iron concentration (mmol Fe / m3 -> umol Fe / m3) 
  • branches/UKMO/dev_r5518_medusa_chg_trc_bio_medusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA/phytoplankton.F90

    r8039 r8062  
    121121      DO jj = 2,jpjm1 
    122122         DO ji = 2,jpim1 
    123             if (tmask(ji,jj,1) == 1) then 
     123            if (tmask(ji,jj,jk) == 1) then 
    124124               !!---------------------------------------------------------- 
    125125               !! Phytoplankton light limitation 
     
    197197      DO jj = 2,jpjm1 
    198198         DO ji = 2,jpim1 
    199             if (tmask(ji,jj,1) == 1) then 
     199            if (tmask(ji,jj,jk) == 1) then 
    200200               !!---------------------------------------------------------- 
    201201               !! Phytoplankton nutrient limitation 
     
    233233      DO jj = 2,jpjm1 
    234234         DO ji = 2,jpim1 
    235             if (tmask(ji,jj,1) == 1) then 
     235            if (tmask(ji,jj,jk) == 1) then 
    236236               !!---------------------------------------------------------- 
    237237               !! Primary production (non-diatoms) 
     
    254254      DO jj = 2,jpjm1 
    255255         DO ji = 2,jpim1 
    256             if (tmask(ji,jj,1) == 1) then 
     256            if (tmask(ji,jj,jk) == 1) then 
    257257               !!---------------------------------------------------------- 
    258258               !! Primary production (diatoms) 
     
    348348      DO jj = 2,jpjm1 
    349349         DO ji = 2,jpim1 
    350             if (tmask(ji,jj,1) == 1) then 
     350            if (tmask(ji,jj,jk) == 1) then 
    351351               !!---------------------------------------------------------- 
    352352               !! Mixed layer primary production 
     
    379379      DO jj = 2,jpjm1 
    380380         DO ji = 2,jpim1 
    381             if (tmask(ji,jj,1) == 1) then 
     381            if (tmask(ji,jj,jk) == 1) then 
    382382               !!---------------------------------------------------------- 
    383383               !! Vertical Integral -- 
     
    407407      DO jj = 2,jpjm1 
    408408         DO ji = 2,jpim1 
    409             if (tmask(ji,jj,1) == 1) then 
     409            if (tmask(ji,jj,jk) == 1) then 
    410410               !!---------------------------------------------------------- 
    411411               !! More chlorophyll calculations 
  • branches/UKMO/dev_r5518_medusa_chg_trc_bio_medusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA/plankton.F90

    r8012 r8062  
    8484      DO jj = 2,jpjm1 
    8585         DO ji = 2,jpim1 
    86             if (tmask(ji,jj,1) == 1) then 
     86            if (tmask(ji,jj,jk) == 1) then 
    8787               !!---------------------------------------------------------- 
    8888               !! Plankton mortality losses 
     
    112112      DO jj = 2,jpjm1 
    113113         DO ji = 2,jpim1 
    114             if (tmask(ji,jj,1) == 1) then 
     114            if (tmask(ji,jj,jk) == 1) then 
    115115               !! 
    116116               !! diatom phytoplankton 
     
    135135      DO jj = 2,jpjm1 
    136136         DO ji = 2,jpim1 
    137             if (tmask(ji,jj,1) == 1) then 
     137            if (tmask(ji,jj,jk) == 1) then 
    138138               !! 
    139139               !! microzooplankton 
     
    157157      DO jj = 2,jpjm1 
    158158         DO ji = 2,jpim1 
    159             if (tmask(ji,jj,1) == 1) then 
     159            if (tmask(ji,jj,jk) == 1) then 
    160160               !! 
    161161               !! mesozooplankton 
  • branches/UKMO/dev_r5518_medusa_chg_trc_bio_medusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90

    r8051 r8062  
    432432         DO jj = 2,jpjm1 
    433433            DO ji = 2,jpim1 
    434                if (tmask(ji,jj,1) == 1) then 
     434               if (tmask(ji,jj,jk) == 1) then 
    435435                  !! microzooplankton 
    436436                  zzmi(ji,jj) = max(0.,trn(ji,jj,jk,jpzmi)) 
     
    452452         DO jj = 2,jpjm1 
    453453            DO ji = 2,jpim1 
    454                if (tmask(ji,jj,1) == 1) then 
     454               if (tmask(ji,jj,jk) == 1) then 
    455455                  !! detrital carbon 
    456456                  zdtc(ji,jj) = max(0.,trn(ji,jj,jk,jpdtc)) 
     
    495495         DO jj = 2,jpjm1 
    496496            DO ji = 2,jpim1 
    497                if (tmask(ji,jj,1) == 1) then 
     497               if (tmask(ji,jj,jk) == 1) then 
    498498                  !! implicit detrital carbon 
    499499                  zdtc(ji,jj) = zdet(ji,jj) * xthetad 
     
    505505         DO jj = 2,jpjm1 
    506506            DO ji = 2,jpim1 
    507                if (tmask(ji,jj,1) == 1) then 
     507               if (tmask(ji,jj,jk) == 1) then 
    508508                  if (idf.eq.1) then 
    509509                     !! AXY (15/01/10) 
     
    560560!            DO jj = 2,jpjm1 
    561561!               DO ji = 2,jpim1 
    562 !                  if (tmask(ji,jj,1) == 1) then 
     562!                  if (tmask(ji,jj,jk) == 1) then 
    563563!                     !! report state variable values 
    564564!                     IF (lwp) write (numout,*)                               & 
     
    592592!            DO jj = 2,jpjm1 
    593593!               DO ji = 2,jpim1 
    594 !                  if (tmask(ji,jj,1) == 1) then 
     594!                  if (tmask(ji,jj,jk) == 1) then 
    595595!                     IF (lwp) write (numout,*)                               & 
    596596!                       '------------------------------' 
  • branches/UKMO/dev_r5518_medusa_chg_trc_bio_medusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA/zooplankton.F90

    r8039 r8062  
    122122      DO jj = 2,jpjm1 
    123123         DO ji = 2,jpim1 
    124             if (tmask(ji,jj,1) == 1) then 
     124            if (tmask(ji,jj,jk) == 1) then 
    125125               !! 
    126126               !! which translates to these incoming N and C fluxes 
     
    175175      DO jj = 2,jpjm1 
    176176         DO ji = 2,jpim1 
    177             if (tmask(ji,jj,1) == 1) then 
     177            if (tmask(ji,jj,jk) == 1) then 
    178178               !!---------------------------------------------------------- 
    179179               !! Mesozooplankton second 
     
    230230      DO jj = 2,jpjm1 
    231231         DO ji = 2,jpim1 
    232             if (tmask(ji,jj,1) == 1) then 
     232            if (tmask(ji,jj,jk) == 1) then 
    233233               !! 
    234234               !! the ideal food C:N ratio for mesozooplankton 
     
    281281      DO jj = 2,jpjm1 
    282282         DO ji = 2,jpim1 
    283             if (tmask(ji,jj,1) == 1) then 
     283            if (tmask(ji,jj,jk) == 1) then 
    284284               fzmi_i(ji,jj)  = fzmi_i(ji,jj)  + fse3t(ji,jj,jk) *          & 
    285285                                ( fgmipn(ji,jj) + fgmid(ji,jj) ) 
Note: See TracChangeset for help on using the changeset viewer.