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

Changeset 14215


Ignore:
Timestamp:
2020-12-18T14:49:22+01:00 (3 years ago)
Author:
acc
Message:

trunk changes to swap the order of arguments to the DO LOOP macros. These changes result in a more natural i-j-k ordering as explained in #2595. SETTE is passed before and after these changes and results are unchanged. This fixes #2595

Location:
NEMO/trunk/src
Files:
21 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/ABL/ablmod.F90

    r14072 r14215  
    12631263      smth_b = 1._wp / 4._wp 
    12641264      ! 
    1265       DO_2D( 1, 1, 1, 0 ) 
     1265      DO_2D( 1, 0, 1, 1 ) 
    12661266         zumsk = msk(ji,jj) * msk(ji+1,jj) 
    12671267         zdX ( ji, jj ) = ( pvar2d( ji+1,jj ) - pvar2d( ji  ,jj ) ) * zumsk 
    12681268      END_2D 
    12691269 
    1270       DO_2D( 1, 0, 1, 1 ) 
     1270      DO_2D( 1, 1, 1, 0 ) 
    12711271         zvmsk = msk(ji,jj) * msk(ji,jj+1) 
    12721272         zdY ( ji, jj ) = ( pvar2d( ji, jj+1 ) - pvar2d( ji  ,jj ) ) * zvmsk 
    12731273      END_2D 
    12741274 
    1275       DO_2D( 1, 0, 0, 0 ) 
     1275      DO_2D( 0, 0, 1, 0 ) 
    12761276         zFY ( ji, jj  ) =   zdY ( ji, jj   )                        & 
    12771277            & +  smth_a*  ( (zdX ( ji, jj+1 ) - zdX( ji-1, jj+1 ))   & 
     
    12791279      END_2D 
    12801280 
    1281       DO_2D( 0, 0, 1, 0 ) 
     1281      DO_2D( 1, 0, 0, 0 ) 
    12821282         zFX( ji, jj  ) =    zdX( ji, jj   )                         & 
    12831283           &    + smth_a*(  (zdY( ji+1, jj ) - zdY( ji+1, jj-1))     & 
  • NEMO/trunk/src/ICE/icedyn_adv_pra.F90

    r14103 r14215  
    582582         ! 
    583583         ! Limitation of moments. 
    584          DO_2D( 1, 1, ji0, ji0 ) 
     584         DO_2D( ji0, ji0, 1, 1 ) 
    585585            ! 
    586586            zpsm  = psm (ji,jj,jl) ! optimization 
     
    642642         END_2D 
    643643         ! 
    644          DO_2D( 1, 0, ji0, ji0 ) 
     644         DO_2D( ji0, ji0, 1, 0 ) 
    645645            !                                !  Flux from j+1 to j when v LT 0. 
    646646            zalf          = MAX( 0._wp, -pvt(ji,jj) ) * pdt / psm(ji,jj+1,jl) 
     
    662662         END_2D 
    663663 
    664          DO_2D( 0, 0, ji0, ji0 ) 
     664         DO_2D( ji0, ji0, 0, 0 ) 
    665665            !                                !  Readjust moments remaining in the box. 
    666666            zbt  =         zbet(ji,jj-1) 
  • NEMO/trunk/src/ICE/icedyn_adv_umx.F90

    r14072 r14215  
    491491      IF( pamsk == 0._wp ) THEN 
    492492         DO jl = 1, jpl 
    493             DO_2D( 0, 0, 1, 0 ) 
     493            DO_2D( 1, 0, 0, 0 ) 
    494494               IF( ABS( pu(ji,jj) ) > epsi10 ) THEN 
    495495                  zfu_ho (ji,jj,jl) = zfu_ho (ji,jj,jl) * puc    (ji,jj,jl) / pu(ji,jj) 
     
    501501               ! 
    502502            END_2D 
    503             DO_2D( 1, 0, 0, 0 ) 
     503            DO_2D( 0, 0, 1, 0 ) 
    504504               IF( ABS( pv(ji,jj) ) > epsi10 ) THEN 
    505505                  zfv_ho (ji,jj,jl) = zfv_ho (ji,jj,jl) * pvc    (ji,jj,jl) / pv(ji,jj) 
     
    536536      IF( PRESENT( pua_ho ) ) THEN 
    537537         DO jl = 1, jpl 
    538             DO_2D( 0, 0, 1, 0 ) 
     538            DO_2D( 1, 0, 0, 0 ) 
    539539               pua_ho (ji,jj,jl) = zfu_ho (ji,jj,jl) 
    540540               pua_ups(ji,jj,jl) = zfu_ups(ji,jj,jl) 
    541541            END_2D 
    542             DO_2D( 1, 0, 0, 0 ) 
     542            DO_2D( 0, 0, 1, 0 ) 
    543543               pva_ho (ji,jj,jl) = zfv_ho (ji,jj,jl) 
    544544               pva_ups(ji,jj,jl) = zfv_ups(ji,jj,jl) 
     
    594594            ! 
    595595            DO jl = 1, jpl              !-- flux in x-direction 
    596                DO_2D( 1, 1, 1, 0 ) 
     596               DO_2D( 1, 0, 1, 1 ) 
    597597                  pfu_ups(ji,jj,jl) = MAX( pu(ji,jj), 0._wp ) * pt(ji,jj,jl) + MIN( pu(ji,jj), 0._wp ) * pt(ji+1,jj,jl) 
    598598               END_2D 
     
    600600            ! 
    601601            DO jl = 1, jpl              !-- first guess of tracer from u-flux 
    602                DO_2D( 1, 1, 0, 0 ) 
     602               DO_2D( 0, 0, 1, 1 ) 
    603603                  ztra = - ( pfu_ups(ji,jj,jl) - pfu_ups(ji-1,jj,jl) )              & 
    604604                     &   + ( pu     (ji,jj   ) - pu     (ji-1,jj   ) ) * pt(ji,jj,jl) * (1.-pamsk) 
     
    609609            ! 
    610610            DO jl = 1, jpl              !-- flux in y-direction 
    611                DO_2D( 1, 0, 0, 0 ) 
     611               DO_2D( 0, 0, 1, 0 ) 
    612612                  pfv_ups(ji,jj,jl) = MAX( pv(ji,jj), 0._wp ) * zpt(ji,jj,jl) + MIN( pv(ji,jj), 0._wp ) * zpt(ji,jj+1,jl) 
    613613               END_2D 
     
    617617            ! 
    618618            DO jl = 1, jpl              !-- flux in y-direction 
    619                DO_2D( 1, 0, 1, 1 ) 
     619               DO_2D( 1, 1, 1, 0 ) 
    620620                  pfv_ups(ji,jj,jl) = MAX( pv(ji,jj), 0._wp ) * pt(ji,jj,jl) + MIN( pv(ji,jj), 0._wp ) * pt(ji,jj+1,jl) 
    621621               END_2D 
     
    623623            ! 
    624624            DO jl = 1, jpl              !-- first guess of tracer from v-flux 
    625                DO_2D( 0, 0, 1, 1 ) 
     625               DO_2D( 1, 1, 0, 0 ) 
    626626                  ztra = - ( pfv_ups(ji,jj,jl) - pfv_ups(ji,jj-1,jl) )  & 
    627627                     &   + ( pv     (ji,jj   ) - pv     (ji,jj-1   ) ) * pt(ji,jj,jl) * (1.-pamsk) 
     
    632632            ! 
    633633            DO jl = 1, jpl              !-- flux in x-direction 
    634                DO_2D( 0, 0, 1, 0 ) 
     634               DO_2D( 1, 0, 0, 0 ) 
    635635                  pfu_ups(ji,jj,jl) = MAX( pu(ji,jj), 0._wp ) * zpt(ji,jj,jl) + MIN( pu(ji,jj), 0._wp ) * zpt(ji+1,jj,jl) 
    636636               END_2D 
     
    681681         ! 
    682682         DO jl = 1, jpl 
     683            DO_2D( 1, 0, 1, 1 ) 
     684               pfu_ho(ji,jj,jl) = 0.5_wp * pu(ji,jj) * ( pt(ji,jj,jl) + pt(ji+1,jj  ,jl) ) 
     685            END_2D 
    683686            DO_2D( 1, 1, 1, 0 ) 
    684                pfu_ho(ji,jj,jl) = 0.5_wp * pu(ji,jj) * ( pt(ji,jj,jl) + pt(ji+1,jj  ,jl) ) 
    685             END_2D 
    686             DO_2D( 1, 0, 1, 1 ) 
    687687               pfv_ho(ji,jj,jl) = 0.5_wp * pv(ji,jj) * ( pt(ji,jj,jl) + pt(ji  ,jj+1,jl) ) 
    688688            END_2D 
     
    701701            ! 
    702702            DO jl = 1, jpl              !-- flux in x-direction 
    703                DO_2D( 1, 1, 1, 0 ) 
     703               DO_2D( 1, 0, 1, 1 ) 
    704704                  pfu_ho(ji,jj,jl) = 0.5_wp * pu(ji,jj) * ( pt(ji,jj,jl) + pt(ji+1,jj,jl) ) 
    705705               END_2D 
     
    708708 
    709709            DO jl = 1, jpl              !-- first guess of tracer from u-flux 
    710                DO_2D( 1, 1, 0, 0 ) 
     710               DO_2D( 0, 0, 1, 1 ) 
    711711                  ztra = - ( pfu_ho(ji,jj,jl) - pfu_ho(ji-1,jj,jl) )              & 
    712712                     &   + ( pu    (ji,jj   ) - pu    (ji-1,jj   ) ) * pt(ji,jj,jl) * (1.-pamsk) 
     
    717717 
    718718            DO jl = 1, jpl              !-- flux in y-direction 
    719                DO_2D( 1, 0, 0, 0 ) 
     719               DO_2D( 0, 0, 1, 0 ) 
    720720                  pfv_ho(ji,jj,jl) = 0.5_wp * pv(ji,jj) * ( zpt(ji,jj,jl) + zpt(ji,jj+1,jl) ) 
    721721               END_2D 
     
    726726            ! 
    727727            DO jl = 1, jpl              !-- flux in y-direction 
    728                DO_2D( 1, 0, 1, 1 ) 
     728               DO_2D( 1, 1, 1, 0 ) 
    729729                  pfv_ho(ji,jj,jl) = 0.5_wp * pv(ji,jj) * ( pt(ji,jj,jl) + pt(ji,jj+1,jl) ) 
    730730               END_2D 
     
    733733            ! 
    734734            DO jl = 1, jpl              !-- first guess of tracer from v-flux 
    735                DO_2D( 0, 0, 1, 1 ) 
     735               DO_2D( 1, 1, 0, 0 ) 
    736736                  ztra = - ( pfv_ho(ji,jj,jl) - pfv_ho(ji,jj-1,jl) )  & 
    737737                     &   + ( pv    (ji,jj   ) - pv    (ji,jj-1   ) ) * pt(ji,jj,jl) * (1.-pamsk) 
     
    742742            ! 
    743743            DO jl = 1, jpl              !-- flux in x-direction 
    744                DO_2D( 0, 0, 1, 0 ) 
     744               DO_2D( 1, 0, 0, 0 ) 
    745745                  pfu_ho(ji,jj,jl) = 0.5_wp * pu(ji,jj) * ( zpt(ji,jj,jl) + zpt(ji+1,jj,jl) ) 
    746746               END_2D 
     
    899899         ! 
    900900         DO jl = 1, jpl 
    901             DO_2D( 0, 0, 1, 0 ) 
     901            DO_2D( 1, 0, 0, 0 ) 
    902902               pt_u(ji,jj,jl) = 0.5_wp * umask(ji,jj,1) * (                                pt(ji+1,jj,jl) + pt(ji,jj,jl)   & 
    903903                  &                                         - SIGN( 1._wp, pu(ji,jj) ) * ( pt(ji+1,jj,jl) - pt(ji,jj,jl) ) ) 
     
    908908         ! 
    909909         DO jl = 1, jpl 
    910             DO_2D( 0, 0, 1, 0 ) 
     910            DO_2D( 1, 0, 0, 0 ) 
    911911               zcu  = pu(ji,jj) * r1_e2u(ji,jj) * pdt * r1_e1u(ji,jj) 
    912912               pt_u(ji,jj,jl) = 0.5_wp * umask(ji,jj,1) * (                                pt(ji+1,jj,jl) + pt(ji,jj,jl)   & 
     
    918918         ! 
    919919         DO jl = 1, jpl 
    920             DO_2D( 0, 0, 1, 0 ) 
     920            DO_2D( 1, 0, 0, 0 ) 
    921921               zcu  = pu(ji,jj) * r1_e2u(ji,jj) * pdt * r1_e1u(ji,jj) 
    922922               zdx2 = e1u(ji,jj) * e1u(ji,jj) 
     
    932932         ! 
    933933         DO jl = 1, jpl 
    934             DO_2D( 0, 0, 1, 0 ) 
     934            DO_2D( 1, 0, 0, 0 ) 
    935935               zcu  = pu(ji,jj) * r1_e2u(ji,jj) * pdt * r1_e1u(ji,jj) 
    936936               zdx2 = e1u(ji,jj) * e1u(ji,jj) 
     
    946946         ! 
    947947         DO jl = 1, jpl 
    948             DO_2D( 0, 0, 1, 0 ) 
     948            DO_2D( 1, 0, 0, 0 ) 
    949949               zcu  = pu(ji,jj) * r1_e2u(ji,jj) * pdt * r1_e1u(ji,jj) 
    950950               zdx2 = e1u(ji,jj) * e1u(ji,jj) 
     
    967967      IF( ll_neg ) THEN 
    968968         DO jl = 1, jpl 
    969             DO_2D( 0, 0, 1, 0 ) 
     969            DO_2D( 1, 0, 0, 0 ) 
    970970               IF( pt_u(ji,jj,jl) < 0._wp .OR. ( imsk_small(ji,jj,jl) == 0 .AND. pamsk == 0. ) ) THEN 
    971971                  pt_u(ji,jj,jl) = 0.5_wp * umask(ji,jj,1) * (                                pt(ji+1,jj,jl) + pt(ji,jj,jl)   & 
     
    977977      !                                                     !-- High order flux in i-direction  --! 
    978978      DO jl = 1, jpl 
    979          DO_2D( 0, 0, 1, 0 ) 
     979         DO_2D( 1, 0, 0, 0 ) 
    980980            pfu_ho(ji,jj,jl) = pu(ji,jj) * pt_u(ji,jj,jl) 
    981981         END_2D 
     
    10101010      !                                                     !--  Laplacian in j-direction  --! 
    10111011      DO jl = 1, jpl 
    1012          DO_2D( 1, 0, 0, 0 )         ! First derivative (gradient) 
     1012         DO_2D( 0, 0, 1, 0 )         ! First derivative (gradient) 
    10131013            ztv1(ji,jj,jl) = ( pt(ji,jj+1,jl) - pt(ji,jj,jl) ) * r1_e2v(ji,jj) * vmask(ji,jj,1) 
    10141014         END_2D 
     
    10211021      !                                                     !--  BiLaplacian in j-direction  --! 
    10221022      DO jl = 1, jpl 
    1023          DO_2D( 1, 0, 0, 0 )         ! First derivative 
     1023         DO_2D( 0, 0, 1, 0 )         ! First derivative 
    10241024            ztv3(ji,jj,jl) = ( ztv2(ji,jj+1,jl) - ztv2(ji,jj,jl) ) * r1_e2v(ji,jj) * vmask(ji,jj,1) 
    10251025         END_2D 
     
    10351035      CASE( 1 )                                                !==  1st order central TIM  ==! (Eq. 21) 
    10361036         DO jl = 1, jpl 
    1037             DO_2D( 1, 0, 0, 0 ) 
     1037            DO_2D( 0, 0, 1, 0 ) 
    10381038               pt_v(ji,jj,jl) = 0.5_wp * vmask(ji,jj,1) * (                                pt(ji,jj+1,jl) + pt(ji,jj,jl)   & 
    10391039                  &                                         - SIGN( 1._wp, pv(ji,jj) ) * ( pt(ji,jj+1,jl) - pt(ji,jj,jl) ) ) 
     
    10431043      CASE( 2 )                                                !==  2nd order central TIM  ==! (Eq. 23) 
    10441044         DO jl = 1, jpl 
    1045             DO_2D( 1, 0, 0, 0 ) 
     1045            DO_2D( 0, 0, 1, 0 ) 
    10461046               zcv  = pv(ji,jj) * r1_e1v(ji,jj) * pdt * r1_e2v(ji,jj) 
    10471047               pt_v(ji,jj,jl) = 0.5_wp * vmask(ji,jj,1) * (                                pt(ji,jj+1,jl) + pt(ji,jj,jl)   & 
     
    10521052      CASE( 3 )                                                !==  3rd order central TIM  ==! (Eq. 24) 
    10531053         DO jl = 1, jpl 
    1054             DO_2D( 1, 0, 0, 0 ) 
     1054            DO_2D( 0, 0, 1, 0 ) 
    10551055               zcv  = pv(ji,jj) * r1_e1v(ji,jj) * pdt * r1_e2v(ji,jj) 
    10561056               zdy2 = e2v(ji,jj) * e2v(ji,jj) 
     
    10651065      CASE( 4 )                                                !==  4th order central TIM  ==! (Eq. 27) 
    10661066         DO jl = 1, jpl 
    1067             DO_2D( 1, 0, 0, 0 ) 
     1067            DO_2D( 0, 0, 1, 0 ) 
    10681068               zcv  = pv(ji,jj) * r1_e1v(ji,jj) * pdt * r1_e2v(ji,jj) 
    10691069               zdy2 = e2v(ji,jj) * e2v(ji,jj) 
     
    10781078      CASE( 5 )                                                !==  5th order central TIM  ==! (Eq. 29) 
    10791079         DO jl = 1, jpl 
    1080             DO_2D( 1, 0, 0, 0 ) 
     1080            DO_2D( 0, 0, 1, 0 ) 
    10811081               zcv  = pv(ji,jj) * r1_e1v(ji,jj) * pdt * r1_e2v(ji,jj) 
    10821082               zdy2 = e2v(ji,jj) * e2v(ji,jj) 
     
    10991099      IF( ll_neg ) THEN 
    11001100         DO jl = 1, jpl 
    1101             DO_2D( 1, 0, 0, 0 ) 
     1101            DO_2D( 0, 0, 1, 0 ) 
    11021102               IF( pt_v(ji,jj,jl) < 0._wp .OR. ( jmsk_small(ji,jj,jl) == 0 .AND. pamsk == 0. ) ) THEN 
    11031103                  pt_v(ji,jj,jl) = 0.5_wp * vmask(ji,jj,1) * (                              ( pt(ji,jj+1,jl) + pt(ji,jj,jl) )  & 
     
    11091109      !                                                     !-- High order flux in j-direction  --! 
    11101110      DO jl = 1, jpl 
    1111          DO_2D( 1, 0, 0, 0 ) 
     1111         DO_2D( 0, 0, 1, 0 ) 
    11121112            pfv_ho(ji,jj,jl) = pv(ji,jj) * pt_v(ji,jj,jl) 
    11131113         END_2D 
     
    11451145      ! -------------------------------------------------- 
    11461146      DO jl = 1, jpl 
     1147         DO_2D( 1, 0, 0, 0 ) 
     1148            pfu_ho(ji,jj,jl) = pfu_ho(ji,jj,jl) - pfu_ups(ji,jj,jl) 
     1149         END_2D 
    11471150         DO_2D( 0, 0, 1, 0 ) 
    1148             pfu_ho(ji,jj,jl) = pfu_ho(ji,jj,jl) - pfu_ups(ji,jj,jl) 
    1149          END_2D 
    1150          DO_2D( 1, 0, 0, 0 ) 
    11511151            pfv_ho(ji,jj,jl) = pfv_ho(ji,jj,jl) - pfv_ups(ji,jj,jl) 
    11521152         END_2D 
     
    12541254      ! --------------------------------- 
    12551255      DO jl = 1, jpl 
    1256          DO_2D( 0, 0, 1, 0 ) 
     1256         DO_2D( 1, 0, 0, 0 ) 
    12571257            zau = MIN( 1._wp , zbetdo(ji,jj,jl) , zbetup(ji+1,jj,jl) ) 
    12581258            zbu = MIN( 1._wp , zbetup(ji,jj,jl) , zbetdo(ji+1,jj,jl) ) 
     
    12651265         END_2D 
    12661266 
    1267          DO_2D( 1, 0, 0, 0 ) 
     1267         DO_2D( 0, 0, 1, 0 ) 
    12681268            zav = MIN( 1._wp , zbetdo(ji,jj,jl) , zbetup(ji,jj+1,jl) ) 
    12691269            zbv = MIN( 1._wp , zbetup(ji,jj,jl) , zbetdo(ji,jj+1,jl) ) 
  • NEMO/trunk/src/OCE/DIA/diaptr.F90

    r14090 r14215  
    382382            zts(:,:,:,:) = 0._wp 
    383383 
    384             DO_3D( 1, 0, 1, 1, 1, jpkm1 ) 
     384            DO_3D( 1, 1, 1, 0, 1, jpkm1 ) 
    385385               zvfc = e1v(ji,jj) * e3v(ji,jj,jk,Kmm) 
    386386               zmask(ji,jj,jk)      = vmask(ji,jj,jk)      * zvfc 
     
    437437            zts(:,:,:,:) = 0._wp 
    438438 
    439             DO_3D( 1, 0, 1, 1, 1, jpkm1 ) 
     439            DO_3D( 1, 1, 1, 0, 1, jpkm1 ) 
    440440               zvfc = e1v(ji,jj) * e3v(ji,jj,jk,Kmm) 
    441441               zts(ji,jj,jk,jp_tem) = (ts(ji,jj,jk,jp_tem,Kmm)+ts(ji,jj+1,jk,jp_tem,Kmm)) * 0.5 * zvfc  !Tracers averaged onto V grid 
  • NEMO/trunk/src/OCE/DOM/dommsk.F90

    r14053 r14215  
    182182      ssfmask(:,:) = MAXVAL( fmask(:,:,:), DIM=3 ) 
    183183      IF( lk_SWE ) THEN      ! Shallow Water Eq. case : redefine ssfmask 
    184          DO_2D( 0,0 , 0,0 ) 
     184         DO_2D( 0,0, 0,0 ) 
    185185            ssfmask(ji,jj) = MAX(  ssmask(ji,jj+1), ssmask(ji+1,jj+1),  &  
    186186               &                   ssmask(ji,jj  ), ssmask(ji+1,jj  )   ) 
  • NEMO/trunk/src/OCE/DYN/dynldf_iso.F90

    r13497 r14215  
    168168 
    169169         IF( ln_zps ) THEN      ! z-coordinate - partial steps : min(e3u) 
    170             DO_2D( 0, 0, 0, 1 ) 
     170            DO_2D( 0, 1, 0, 0 ) 
    171171               zabe1 = ( ahmt(ji,jj,jk)+rn_ahm_b ) * e2t(ji,jj)   & 
    172172                  &    * MIN( e3u(ji  ,jj,jk,Kmm),                & 
     
    183183            END_2D 
    184184         ELSE                   ! other coordinate system (zco or sco) : e3t 
    185             DO_2D( 0, 0, 0, 1 ) 
     185            DO_2D( 0, 1, 0, 0 ) 
    186186               zabe1 = ( ahmt(ji,jj,jk)+rn_ahm_b )   & 
    187187                  &     * e2t(ji,jj) * e3t(ji,jj,jk,Kmm) * r1_e1t(ji,jj) 
     
    219219         ! i-flux at f-point              |   t   | 
    220220 
    221          DO_2D( 0, 0, 1, 0 ) 
     221         DO_2D( 1, 0, 0, 0 ) 
    222222            zabe1 = ( ahmf(ji,jj,jk) + rn_ahm_b )   & 
    223223               &     * e2f(ji,jj) * e3f(ji,jj,jk) * r1_e1f(ji,jj) 
     
    235235         ! j-flux at t-point 
    236236         IF( ln_zps ) THEN      ! z-coordinate - partial steps : min(e3u) 
    237             DO_2D( 0, 1, 1, 0 ) 
     237            DO_2D( 1, 0, 0, 1 ) 
    238238               zabe2 = ( ahmt(ji,jj,jk)+rn_ahm_b ) * e1t(ji,jj)   & 
    239239                  &     * MIN( e3v(ji,jj  ,jk,Kmm),                 & 
     
    250250            END_2D 
    251251         ELSE                   ! other coordinate system (zco or sco) : e3t 
    252             DO_2D( 0, 1, 1, 0 ) 
     252            DO_2D( 1, 0, 0, 1 ) 
    253253               zabe2 = ( ahmt(ji,jj,jk)+rn_ahm_b )   & 
    254254                  &     * e1t(ji,jj) * e3t(ji,jj,jk,Kmm) * r1_e2t(ji,jj) 
  • NEMO/trunk/src/OCE/DYN/dynspg_ts.F90

    r14207 r14215  
    461461#if defined key_qcoTest_FluxForm 
    462462            !                                ! 'key_qcoTest_FluxForm' : simple ssh average 
    463             DO_2D( 1, 1, 1, 0 )   ! not jpi-column 
     463            DO_2D( 1, 0, 1, 1 )   ! not jpi-column 
    464464               zhup2_e(ji,jj) = hu_0(ji,jj) + r1_2 * (  zsshp2_e(ji,jj) + zsshp2_e(ji+1,jj  )  ) * ssumask(ji,jj) 
    465465            END_2D 
    466             DO_2D( 1, 0, 1, 1 ) 
     466            DO_2D( 1, 1, 1, 0 ) 
    467467               zhvp2_e(ji,jj) = hv_0(ji,jj) + r1_2 * (  zsshp2_e(ji,jj) + zsshp2_e(ji  ,jj+1)  ) * ssvmask(ji,jj) 
    468468            END_2D 
    469469#else 
    470470            !                                ! no 'key_qcoTest_FluxForm' : surface weighted ssh average 
    471             DO_2D( 1, 1, 1, 0 )   ! not jpi-column 
     471            DO_2D( 1, 0, 1, 1 )   ! not jpi-column 
    472472               zhup2_e(ji,jj) = hu_0(ji,jj) + r1_2 * r1_e1e2u(ji,jj)                        & 
    473473                    &                              * (  e1e2t(ji  ,jj) * zsshp2_e(ji  ,jj)  & 
    474474                    &                                 + e1e2t(ji+1,jj) * zsshp2_e(ji+1,jj)  ) * ssumask(ji,jj) 
    475475            END_2D 
    476             DO_2D( 1, 0, 1, 1 )   ! not jpj-row 
     476            DO_2D( 1, 1, 1, 0 )   ! not jpj-row 
    477477               zhvp2_e(ji,jj) = hv_0(ji,jj) + r1_2 * r1_e1e2v(ji,jj)                        & 
    478478                    &                              * (  e1e2t(ji,jj  ) * zsshp2_e(ji,jj  )  & 
     
    538538#if defined key_qcoTest_FluxForm 
    539539            !                                ! 'key_qcoTest_FluxForm' : simple ssh average 
     540            DO_2D( 1, 0, 1, 1 ) 
     541               zsshu_a(ji,jj) = r1_2 * (  ssha_e(ji,jj) + ssha_e(ji+1,jj  )  ) * ssumask(ji,jj) 
     542            END_2D 
    540543            DO_2D( 1, 1, 1, 0 ) 
    541                zsshu_a(ji,jj) = r1_2 * (  ssha_e(ji,jj) + ssha_e(ji+1,jj  )  ) * ssumask(ji,jj) 
    542             END_2D 
    543             DO_2D( 1, 0, 1, 1 ) 
    544544               zsshv_a(ji,jj) = r1_2 * (  ssha_e(ji,jj) + ssha_e(ji  ,jj+1)  ) * ssvmask(ji,jj) 
    545545            END_2D 
     
    12531253      !!---------------------------------------------------------------------- 
    12541254      ! 
    1255       DO_2D( 1, 1, 1, 0 )   ! not jpi-column 
     1255      DO_2D( 1, 0, 1, 1 )   ! not jpi-column 
    12561256         IF ( phU(ji,jj) > 0._wp ) THEN   ;   pUmsk(ji,jj) = pTmsk(ji  ,jj)  
    12571257         ELSE                             ;   pUmsk(ji,jj) = pTmsk(ji+1,jj)   
     
    12611261      END_2D 
    12621262      ! 
    1263       DO_2D( 1, 0, 1, 1 )   ! not jpj-row 
     1263      DO_2D( 1, 1, 1, 0 )   ! not jpj-row 
    12641264         IF ( phV(ji,jj) > 0._wp ) THEN   ;   pVmsk(ji,jj) = pTmsk(ji,jj  ) 
    12651265         ELSE                             ;   pVmsk(ji,jj) = pTmsk(ji,jj+1)   
  • NEMO/trunk/src/OCE/ISF/isftbl.F90

    r13295 r14215  
    7878         ! compute tbl property at T point 
    7979         pvarout(1,:) = 0._wp 
    80          DO_2D( 1, 1, 0, 1 ) 
     80         DO_2D( 0, 1, 1, 1 ) 
    8181            pvarout(ji,jj) = 0.5_wp * (zvarout(ji,jj) + zvarout(ji-1,jj)) 
    8282         END_2D 
     
    9999         ! pvarout is an averaging of wet point 
    100100         pvarout(:,1) = 0._wp 
    101          DO_2D( 0, 1, 1, 1 ) 
     101         DO_2D( 1, 1, 0, 1 ) 
    102102            pvarout(ji,jj) = 0.5_wp * (zvarout(ji,jj) + zvarout(ji,jj-1)) 
    103103         END_2D 
  • NEMO/trunk/src/OCE/SBC/geo2ocean.F90

    r13295 r14215  
    160160      ! (computation done on the north stereographic polar plane) 
    161161      ! 
    162       DO_2D( 0, 0, 0, 1 ) 
     162      DO_2D( 0, 1, 0, 0 ) 
    163163         !                   
    164164         zlam = plamt(ji,jj)     ! north pole direction & modulous (at t-point) 
     
    249249      ! =============== ! 
    250250 
    251       DO_2D( 0, 0, 0, 1 ) 
     251      DO_2D( 0, 1, 0, 0 ) 
    252252         IF( MOD( ABS( plamv(ji,jj) - plamv(ji,jj-1) ), 360. ) < 1.e-8 ) THEN 
    253253            gsint(ji,jj) = 0. 
  • NEMO/trunk/src/OCE/SBC/sbcice_cice.F90

    r14053 r14215  
    312312! x comp of wind stress (CI_1) 
    313313! U point to F point 
    314          DO_2D( 1, 0, 1, 1 ) 
     314         DO_2D( 1, 1, 1, 0 ) 
    315315            ztmp(ji,jj) = 0.5 * (  fr_iu(ji,jj) * utau(ji,jj)      & 
    316316                                 + fr_iu(ji,jj+1) * utau(ji,jj+1) ) * fmask(ji,jj,1) 
     
    320320! y comp of wind stress (CI_2) 
    321321! V point to F point 
    322          DO_2D( 1, 1, 1, 0 ) 
     322         DO_2D( 1, 0, 1, 1 ) 
    323323            ztmp(ji,jj) = 0.5 * (  fr_iv(ji,jj) * vtau(ji,jj)      & 
    324324                                 + fr_iv(ji+1,jj) * vtau(ji+1,jj) ) * fmask(ji,jj,1) 
     
    437437! x comp and y comp of surface ocean current 
    438438! U point to F point 
    439       DO_2D( 1, 0, 1, 1 ) 
     439      DO_2D( 1, 1, 1, 0 ) 
    440440         ztmp(ji,jj)=0.5*(ssu_m(ji,jj)+ssu_m(ji,jj+1))*fmask(ji,jj,1) 
    441441      END_2D 
     
    443443 
    444444! V point to F point 
    445       DO_2D( 1, 1, 1, 0 ) 
     445      DO_2D( 1, 0, 1, 1 ) 
    446446         ztmp(ji,jj)=0.5*(ssv_m(ji,jj)+ssv_m(ji+1,jj))*fmask(ji,jj,1) 
    447447      END_2D 
     
    513513! F point to V point 
    514514 
    515       DO_2D( 1, 0, 0, 0 ) 
     515      DO_2D( 0, 0, 1, 0 ) 
    516516         ss_iov(ji,jj) = 0.5 * ( ztmp1(ji-1,jj) + ztmp1(ji,jj) ) * vmask(ji,jj,1) 
    517517      END_2D 
  • NEMO/trunk/src/OCE/TRA/traadv_qck.F90

    r14189 r14215  
    145145         ! 
    146146!!gm why not using a SHIFT instruction... 
    147          DO_3D( 0, 0, nn_hls-1, nn_hls-1, 1, jpkm1 )     !--- Computation of the ustream and downstream value of the tracer and the mask 
     147         DO_3D( nn_hls-1, nn_hls-1, 0, 0, 1, jpkm1 )     !--- Computation of the ustream and downstream value of the tracer and the mask 
    148148            zfc(ji,jj,jk) = pt(ji-1,jj,jk,jn,Kbb)        ! Upstream   in the x-direction for the tracer 
    149149            zfd(ji,jj,jk) = pt(ji+1,jj,jk,jn,Kbb)        ! Downstream in the x-direction for the tracer 
     
    154154         ! Horizontal advective fluxes 
    155155         ! --------------------------- 
    156          DO_3D( 0, 0, nn_hls-1, 0, 1, jpkm1 ) 
     156         DO_3D( nn_hls-1, 0, 0, 0, 1, jpkm1 ) 
    157157            zdir = 0.5 + SIGN( 0.5_wp, pU(ji,jj,jk) )   ! if pU > 0 : zdir = 1 otherwise zdir = 0 
    158158            zfu(ji,jj,jk) = zdir * zfc(ji,jj,jk ) + ( 1. - zdir ) * zfd(ji+1,jj,jk)  ! FU in the x-direction for T 
    159159         END_3D 
    160160         ! 
    161          DO_3D( 0, 0, nn_hls-1, 0, 1, jpkm1 ) 
     161         DO_3D( nn_hls-1, 0, 0, 0, 1, jpkm1 ) 
    162162            zdir = 0.5 + SIGN( 0.5_wp, pU(ji,jj,jk) )   ! if pU > 0 : zdir = 1 otherwise zdir = 0 
    163163            zdx = ( zdir * e1t(ji,jj) + ( 1. - zdir ) * e1t(ji+1,jj) ) * e2u(ji,jj) * e3u(ji,jj,jk,Kmm) 
     
    173173         ! 
    174174         ! Mask at the T-points in the x-direction (mask=0 or mask=1) 
    175          DO_3D( 0, 0, nn_hls-1, nn_hls-1, 1, jpkm1 ) 
     175         DO_3D( nn_hls-1, nn_hls-1, 0, 0, 1, jpkm1 ) 
    176176            zfu(ji,jj,jk) = tmask(ji-1,jj,jk) + tmask(ji,jj,jk) + tmask(ji+1,jj,jk) - 2. 
    177177         END_3D 
     
    180180         ! 
    181181         ! Tracer flux on the x-direction 
    182          DO_3D( 0, 0, 1, 0, 1, jpkm1 ) 
     182         DO_3D( 1, 0, 0, 0, 1, jpkm1 ) 
    183183            zdir = 0.5 + SIGN( 0.5_wp, pU(ji,jj,jk) )   ! if pU > 0 : zdir = 1 otherwise zdir = 0 
    184184            !--- If the second ustream point is a land point 
     
    232232            ! 
    233233            !--- Computation of the ustream and downstream value of the tracer and the mask 
    234             DO_2D( nn_hls-1, nn_hls-1, 0, 0 ) 
     234            DO_2D( 0, 0, nn_hls-1, nn_hls-1 ) 
    235235               ! Upstream in the x-direction for the tracer 
    236236               zfc(ji,jj,jk) = pt(ji,jj-1,jk,jn,Kbb) 
     
    245245         ! --------------------------- 
    246246         ! 
    247          DO_3D( nn_hls-1, 0, 0, 0, 1, jpkm1 ) 
     247         DO_3D( 0, 0, nn_hls-1, 0, 1, jpkm1 ) 
    248248            zdir = 0.5 + SIGN( 0.5_wp, pV(ji,jj,jk) )   ! if pU > 0 : zdir = 1 otherwise zdir = 0 
    249249            zfu(ji,jj,jk) = zdir * zfc(ji,jj,jk ) + ( 1. - zdir ) * zfd(ji,jj+1,jk)  ! FU in the x-direction for T 
    250250         END_3D 
    251251         ! 
    252          DO_3D( nn_hls-1, 0, 0, 0, 1, jpkm1 ) 
     252         DO_3D( 0, 0, nn_hls-1, 0, 1, jpkm1 ) 
    253253            zdir = 0.5 + SIGN( 0.5_wp, pV(ji,jj,jk) )   ! if pU > 0 : zdir = 1 otherwise zdir = 0 
    254254            zdx = ( zdir * e2t(ji,jj) + ( 1. - zdir ) * e2t(ji,jj+1) ) * e1v(ji,jj) * e3v(ji,jj,jk,Kmm) 
     
    265265         ! 
    266266         ! Mask at the T-points in the x-direction (mask=0 or mask=1) 
    267          DO_3D( nn_hls-1, nn_hls-1, 0, 0, 1, jpkm1 ) 
     267         DO_3D( 0, 0, nn_hls-1, nn_hls-1, 1, jpkm1 ) 
    268268            zfu(ji,jj,jk) = tmask(ji,jj-1,jk) + tmask(ji,jj,jk) + tmask(ji,jj+1,jk) - 2. 
    269269         END_3D 
     
    271271         ! 
    272272         ! Tracer flux on the x-direction 
    273          DO_3D( 1, 0, 0, 0, 1, jpkm1 ) 
     273         DO_3D( 0, 0, 1, 0, 1, jpkm1 ) 
    274274            zdir = 0.5 + SIGN( 0.5_wp, pV(ji,jj,jk) )   ! if pU > 0 : zdir = 1 otherwise zdir = 0 
    275275            !--- If the second ustream point is a land point 
  • NEMO/trunk/src/OCE/TRA/trabbl.F90

    r14189 r14215  
    248248      DO jn = 1, kjpt                                            ! tracer loop 
    249249         !                                                       ! =========== 
    250          DO_2D( isj, 0, isi, 0 )            ! CAUTION start from i=1 to update i=2 when cyclic east-west 
     250         DO_2D( isi, 0, isj, 0 )            ! CAUTION start from i=1 to update i=2 when cyclic east-west 
    251251            IF( utr_bbl(ji,jj) /= 0.e0 ) THEN            ! non-zero i-direction bbl advection 
    252252               ! down-slope i/k-indices (deep)      &   up-slope i/k indices (shelf) 
  • NEMO/trunk/src/OCE/TRA/traldf_lap_blp.F90

    r14189 r14215  
    158158         ENDIF 
    159159         ! 
    160          DO_3D( isj, iej, isi, iei, 1, jpkm1 )            !== Second derivative (divergence) added to the general tracer trends  ==! 
     160         DO_3D( isi, iei, isj, iej, 1, jpkm1 )            !== Second derivative (divergence) added to the general tracer trends  ==! 
    161161            pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn) + (  ztu(ji,jj,jk) - ztu(ji-1,jj,jk)     & 
    162162               &                                      +    ztv(ji,jj,jk) - ztv(ji,jj-1,jk) )   & 
  • NEMO/trunk/src/OCE/TRA/traldf_triad.F90

    r14090 r14215  
    387387         !                                !==  add the vertical 33 flux  ==! 
    388388         IF( ln_traldf_lap ) THEN               ! laplacian case: eddy coef = ah_wslp2 - akz 
    389             DO_3D( 1, 0, 0, 0, 2, jpkm1 ) 
     389            DO_3D( 0, 0, 1, 0, 2, jpkm1 ) 
    390390               ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk)   & 
    391391                  &                            * ( ah_wslp2(ji,jj,jk) - akz(ji,jj,jk) )             & 
     
    395395            SELECT CASE( kpass ) 
    396396            CASE(  1  )                            ! 1st pass : eddy coef = ah_wslp2 
    397                DO_3D( 1, 0, 0, 0, 2, jpkm1 ) 
     397               DO_3D( 0, 0, 1, 0, 2, jpkm1 ) 
    398398                  ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk)             & 
    399399                     &                            * ah_wslp2(ji,jj,jk) * ( pt(ji,jj,jk-1,jn) - pt(ji,jj,jk,jn) ) 
    400400               END_3D 
    401401            CASE(  2  )                            ! 2nd pass : eddy flux = ah_wslp2 and akz applied on pt  and pt2 gradients, resp. 
    402                DO_3D( 1, 0, 0, 0, 2, jpkm1 ) 
     402               DO_3D( 0, 0, 1, 0, 2, jpkm1 ) 
    403403                  ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk)                      & 
    404404                     &                            * (  ah_wslp2(ji,jj,jk) * ( pt (ji,jj,jk-1,jn) - pt (ji,jj,jk,jn) )   & 
  • NEMO/trunk/src/OCE/TRA/tranpc.F90

    r14189 r14215  
    112112         IF( ntej == Nje0 ) THEN ; iej = nn_hls ; ELSE ; iej = 0 ; ENDIF 
    113113         ! 
    114          DO_2D( isj, iej, isi, iei )                        ! interior column only 
     114         DO_2D( isi, iei, isj, iej )                        ! interior column only 
    115115            ! 
    116116            IF( tmask(ji,jj,2) == 1 ) THEN      ! At least 2 ocean points 
  • NEMO/trunk/src/OCE/TRA/traqsr.F90

    r14189 r14215  
    151151         ELSE                                           ! No restart or Euler forward at 1st time step 
    152152            z1_2 = 1._wp 
    153             DO_3D( isj, iej, isi, iei, 1, jpk ) 
     153            DO_3D( isi, iei, isj, iej, 1, jpk ) 
    154154               qsr_hc_b(ji,jj,jk) = 0._wp 
    155155            END_3D 
     
    157157      ELSE                             !==  Swap of qsr heat content  ==! 
    158158         z1_2 = 0.5_wp 
    159          DO_3D( isj, iej, isi, iei, 1, jpk ) 
     159         DO_3D( isi, iei, isj, iej, 1, jpk ) 
    160160            qsr_hc_b(ji,jj,jk) = qsr_hc(ji,jj,jk) 
    161161         END_3D 
     
    168168      CASE( np_BIO )                   !==  bio-model fluxes  ==! 
    169169         ! 
    170          DO_3D( isj, iej, isi, iei, 1, nksr ) 
     170         DO_3D( isi, iei, isj, iej, 1, nksr ) 
    171171            qsr_hc(ji,jj,jk) = r1_rho0_rcp * ( etot3(ji,jj,jk) - etot3(ji,jj,jk+1) ) 
    172172         END_3D 
     
    190190            ! most expensive calculations) 
    191191            ! 
    192             DO_2D( isj, iej, isi, iei ) 
     192            DO_2D( isi, iei, isj, iej ) 
    193193                       ! zlogc = log(zchl) 
    194194               zlogc = LOG ( MIN( 10. , MAX( 0.03, sf_chl(1)%fnow(ji,jj,1) ) ) ) 
     
    209209 
    210210! 
    211             DO_3D( isj, iej, isi, iei, 1, nksr + 1 ) 
     211            DO_3D( isi, iei, isj, iej, 1, nksr + 1 ) 
    212212               ! zchl    = ALOG( ze0(ji,jj) ) 
    213213               zlogc = ze0(ji,jj) 
     
    239239         ! 
    240240         zcoef  = ( 1. - rn_abs ) / 3._wp    !* surface equi-partition in R-G-B 
    241          DO_2D( isj, iej, isi, iei ) 
     241         DO_2D( isi, iei, isj, iej ) 
    242242            ze0(ji,jj) = rn_abs * qsr(ji,jj) 
    243243            ze1(ji,jj) = zcoef  * qsr(ji,jj) 
     
    250250         ! 
    251251         !                                    !* interior equi-partition in R-G-B depending on vertical profile of Chl 
    252          DO_3D( isj, iej, isi, iei, 2, nksr + 1 ) 
     252         DO_3D( isi, iei, isj, iej, 2, nksr + 1 ) 
    253253            ze3t = e3t(ji,jj,jk-1,Kmm) 
    254254            irgb = NINT( ztmp3d(ji,jj,jk) ) 
     
    264264         END_3D 
    265265         ! 
    266          DO_3D( isj, iej, isi, iei, 1, nksr )          !* now qsr induced heat content 
     266         DO_3D( isi, iei, isj, iej, 1, nksr )          !* now qsr induced heat content 
    267267            qsr_hc(ji,jj,jk) = r1_rho0_rcp * ( ztmp3d(ji,jj,jk) - ztmp3d(ji,jj,jk+1) ) 
    268268         END_3D 
     
    274274         zz0 =        rn_abs   * r1_rho0_rcp      ! surface equi-partition in 2-bands 
    275275         zz1 = ( 1. - rn_abs ) * r1_rho0_rcp 
    276          DO_3D( isj, iej, isi, iei, 1, nksr )          !* now qsr induced heat content 
     276         DO_3D( isi, iei, isj, iej, 1, nksr )          !* now qsr induced heat content 
    277277            zc0 = zz0 * EXP( -gdepw(ji,jj,jk  ,Kmm)*xsi0r ) + zz1 * EXP( -gdepw(ji,jj,jk  ,Kmm)*xsi1r ) 
    278278            zc1 = zz0 * EXP( -gdepw(ji,jj,jk+1,Kmm)*xsi0r ) + zz1 * EXP( -gdepw(ji,jj,jk+1,Kmm)*xsi1r ) 
     
    292292      ! 
    293293      ! sea-ice: store the 1st ocean level attenuation coefficient 
    294       DO_2D( isj, iej, isi, iei ) 
     294      DO_2D( isi, iei, isj, iej ) 
    295295         IF( qsr(ji,jj) /= 0._wp ) THEN   ;   fraqsr_1lev(ji,jj) = qsr_hc(ji,jj,1) / ( r1_rho0_rcp * qsr(ji,jj) ) 
    296296         ELSE                             ;   fraqsr_1lev(ji,jj) = 1._wp 
  • NEMO/trunk/src/OCE/TRA/trasbc.F90

    r14189 r14215  
    105105!!gm  This should be moved into sbcmod.F90 module ? (especially now that ln_traqsr is read in namsbc namelist) 
    106106      IF( .NOT.ln_traqsr ) THEN     ! no solar radiation penetration 
    107          DO_2D( isj, iej, isi, iei ) 
     107         DO_2D( isi, iei, isj, iej ) 
    108108            qns(ji,jj) = qns(ji,jj) + qsr(ji,jj)      ! total heat flux in qns 
    109109            qsr(ji,jj) = 0._wp                        ! qsr set to zero 
     
    126126         ELSE                                             ! No restart or restart not found: Euler forward time stepping 
    127127            zfact = 1._wp 
    128             DO_2D( isj, iej, isi, iei ) 
     128            DO_2D( isi, iei, isj, iej ) 
    129129               sbc_tsc(ji,jj,:) = 0._wp 
    130130               sbc_tsc_b(ji,jj,:) = 0._wp 
     
    133133      ELSE                                !* other time-steps: swap of forcing fields 
    134134         zfact = 0.5_wp 
    135          DO_2D( isj, iej, isi, iei ) 
     135         DO_2D( isi, iei, isj, iej ) 
    136136            sbc_tsc_b(ji,jj,:) = sbc_tsc(ji,jj,:) 
    137137         END_2D 
    138138      ENDIF 
    139139      !                             !==  Now sbc tracer content fields  ==! 
    140       DO_2D( isj, iej, isi, iei ) 
     140      DO_2D( isi, iei, isj, iej ) 
    141141         sbc_tsc(ji,jj,jp_tem) = r1_rho0_rcp * qns(ji,jj)   ! non solar heat flux 
    142142         sbc_tsc(ji,jj,jp_sal) = r1_rho0     * sfx(ji,jj)   ! salt flux due to freezing/melting 
    143143      END_2D 
    144144      IF( ln_linssh ) THEN                !* linear free surface 
    145          DO_2D( isj, iej, isi, iei )                    !==>> add concentration/dilution effect due to constant volume cell 
     145         DO_2D( isi, iei, isj, iej )                    !==>> add concentration/dilution effect due to constant volume cell 
    146146            sbc_tsc(ji,jj,jp_tem) = sbc_tsc(ji,jj,jp_tem) + r1_rho0 * emp(ji,jj) * pts(ji,jj,1,jp_tem,Kmm) 
    147147            sbc_tsc(ji,jj,jp_sal) = sbc_tsc(ji,jj,jp_sal) + r1_rho0 * emp(ji,jj) * pts(ji,jj,1,jp_sal,Kmm) 
  • NEMO/trunk/src/OCE/ZDF/zdfosm.F90

    r14072 r14215  
    23472347      ! calculate horizontal gradients at u & v points 
    23482348 
    2349       DO_2D( 0, 0, 1, 0 ) 
     2349      DO_2D( 1, 0, 0, 0 ) 
    23502350         zdtdx(ji,jj) = ( ztm(ji+1,jj) - ztm( ji,jj) )  * umask(ji,jj,1) / e1u(ji,jj) 
    23512351         zdsdx(ji,jj) = ( zsm(ji+1,jj) - zsm( ji,jj) )  * umask(ji,jj,1) / e1u(ji,jj) 
     
    23552355      END_2D 
    23562356 
    2357       DO_2D( 1, 0, 0, 0 ) 
     2357      DO_2D( 0, 0, 1, 0 ) 
    23582358         zdtdy(ji,jj) = ( ztm(ji,jj+1) - ztm( ji,jj) ) * vmask(ji,jj,1) / e1v(ji,jj) 
    23592359         zdsdy(ji,jj) = ( zsm(ji,jj+1) - zsm( ji,jj) ) * vmask(ji,jj,1) / e1v(ji,jj) 
     
    23662366      CALL eos_rab(ztsm_midv, zmld_midv, zabv, Kmm) 
    23672367 
    2368       DO_2D( 0, 0, 1, 0 ) 
     2368      DO_2D( 1, 0, 0, 0 ) 
    23692369         dbdx_mle(ji,jj) = grav*(zdtdx(ji,jj)*zabu(ji,jj,jp_tem) - zdsdx(ji,jj)*zabu(ji,jj,jp_sal)) 
    23702370      END_2D 
    2371       DO_2D( 1, 0, 0, 0 ) 
     2371      DO_2D( 0, 0, 1, 0 ) 
    23722372         dbdy_mle(ji,jj) = grav*(zdtdy(ji,jj)*zabv(ji,jj,jp_tem) - zdsdy(ji,jj)*zabv(ji,jj,jp_sal)) 
    23732373      END_2D 
  • NEMO/trunk/src/OCE/do_loop_substitute.h90

    r14072 r14215  
    22! These comments are not intended to be retained during preprocessing; i.e. do not define "show_comments" 
    33!!---------------------------------------------------------------------- 
    4 !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     4!! NEMO/OCE 4.x , NEMO Consortium (2020) 
    55!! Software governed by the CeCILL license (see ./LICENSE) 
    66!!---------------------------------------------------------------------- 
     
    2525! Upper limits of jpi, jpim1 or fs_jpim1 (for ji) or jpj, jpjm1 or fs_jpjm1 (for jj) 
    2626! 
    27 ! The macro naming convention takes the form: DO_2D( B, T, L, R) where: 
     27! The macro naming convention takes the form: DO_2D( L, R, B, T) where: 
     28!   L is the Left   offset from the PE's inner domain; 
     29!   R is the Right  offset from the PE's inner domain 
    2830!   B is the Bottom offset from the PE's inner domain; 
    2931!   T is the Top    offset from the PE's inner domain; 
    30 !   L is the Left   offset from the PE's inner domain; 
    31 !   R is the Right  offset from the PE's inner domain 
    3232! 
    3333! So, given an inner domain of 2,jpim1 and 2,jpjm1, a typical example would replace: 
     
    4242! with: 
    4343! 
    44 !   DO_2D( 0, 1, 1, 0 ) 
     44!   DO_2D( 1, 0, 0, 1 ) 
    4545!      . 
    4646!      . 
     
    5959#endif 
    6060 
    61 #define DO_2D(B, T, L, R) DO jj = ntsj-(B), ntej+(T)   ;   DO ji = ntsi-(L), ntei+(R) 
     61#define DO_2D(L, R, B, T) DO jj = ntsj-(B), ntej+(T)   ;   DO ji = ntsi-(L), ntei+(R) 
    6262#define A1Di(H) ntsi-H:ntei+H 
    6363#define A1Dj(H) ntsj-H:ntej+H 
     
    7070#define KJPT  : 
    7171 
    72 #define DO_3D(B, T, L, R, ks, ke) DO jk = ks, ke   ;   DO_2D(B, T, L, R) 
     72#define DO_3D(L, R, B, T, ks, ke) DO jk = ks, ke   ;   DO_2D(L, R, B, T) 
    7373 
    74 #define DO_3DS(B, T, L, R, ks, ke, ki) DO jk = ks, ke, ki   ;   DO_2D(B, T, L, R) 
     74#define DO_3DS(L, R, B, T, ks, ke, ki) DO jk = ks, ke, ki   ;   DO_2D(L, R, B, T) 
    7575 
    7676#define END_2D   END DO   ;   END DO 
  • NEMO/trunk/src/TOP/TRP/trcsbc.F90

    r14086 r14215  
    122122         ! 
    123123         DO jn = 1, jptra 
    124             DO_2D( 0, 1, 0, 0 ) 
     124            DO_2D( 0, 0, 0, 1 ) 
    125125               sbc_trc(ji,jj,jn) = zsfx(ji,jj) * r1_rho0 * ptr(ji,jj,1,jn,Kmm) 
    126126            END_2D 
     
    130130         ! 
    131131         DO jn = 1, jptra 
    132             DO_2D( 0, 1, 0, 0 ) 
     132            DO_2D( 0, 0, 0, 1 ) 
    133133               sbc_trc(ji,jj,jn) = ( zsfx(ji,jj) + fmmflx(ji,jj) ) * r1_rho0 * ptr(ji,jj,1,jn,Kmm) 
    134134            END_2D 
     
    138138         ! 
    139139         DO jn = 1, jptra 
    140             DO_2D( 0, 1, 0, 0 ) 
     140            DO_2D( 0, 0, 0, 1 ) 
    141141               zse3t = 1. / e3t(ji,jj,1,Kmm) 
    142142               ! tracer flux at the ice/ocean interface (tracer/m2/s) 
     
    162162         IF( l_trdtrc )   ztrtrd(:,:,:) = ptr(:,:,:,jn,Krhs)  ! save trends 
    163163         ! 
    164          DO_2D( 0, 1, 0, 0 ) 
     164         DO_2D( 0, 0, 0, 1 ) 
    165165            zse3t = zfact / e3t(ji,jj,1,Kmm) 
    166166            ptr(ji,jj,1,jn,Krhs) = ptr(ji,jj,1,jn,Krhs) + ( sbc_trc_b(ji,jj,jn) + sbc_trc(ji,jj,jn) ) * zse3t 
  • NEMO/trunk/src/TOP/trcbc.F90

    r13295 r14215  
    415415         ! Remove river dilution for tracers with absent river load 
    416416         IF( ln_rnf_ctl .AND. .NOT.ln_trc_cbc(jn) ) THEN 
    417             DO_2D( 0, 1, 0, 0 ) 
     417            DO_2D( 0, 0, 0, 1 ) 
    418418               DO jk = 1, nk_rnf(ji,jj) 
    419419                  zrnf = (rnf(ji,jj) + rnf_b(ji,jj)) * 0.5_wp * r1_rho0 / h_rnf(ji,jj) 
     
    429429            jl = n_trc_indsbc(jn) 
    430430            sf_trcsbc(jl)%fnow(:,:,1) = MAX( rtrn, sf_trcsbc(jl)%fnow(:,:,1) ) ! avoid nedgative value due to interpolation 
    431             DO_2D( 0, 1, 0, 0 ) 
     431            DO_2D( 0, 0, 0, 1 ) 
    432432               zfact = 1. / ( e3t(ji,jj,1,Kmm) * rn_sbc_time ) 
    433433               ptr(ji,jj,1,jn,Krhs) = ptr(ji,jj,1,jn,Krhs) + rf_trsfac(jl) * sf_trcsbc(jl)%fnow(ji,jj,1) * zfact 
     
    439439            IF( l_offline )   rn_rfact = 1._wp 
    440440            jl = n_trc_indcbc(jn) 
    441             DO_2D( 0, 1, 0, 0 ) 
     441            DO_2D( 0, 0, 0, 1 ) 
    442442               DO jk = 1, nk_rnf(ji,jj) 
    443443                  zfact = rn_rfact / ( e1e2t(ji,jj) * h_rnf(ji,jj) * rn_cbc_time ) * tmask(ji,jj,1) 
Note: See TracChangeset for help on using the changeset viewer.