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 13295 for NEMO/trunk/src/OCE – NEMO

Changeset 13295 for NEMO/trunk/src/OCE


Ignore:
Timestamp:
2020-07-10T20:24:21+02:00 (4 years ago)
Author:
acc
Message:

Replace do-loop macros in the trunk with alternative forms with greater flexibility for extra halo applications. This alters a lot of routines but does not change any behaviour or results. do_loop_substitute.h90 is greatly simplified by this change. SETTE results are identical to those with the previous revision

Location:
NEMO/trunk/src/OCE
Files:
116 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/ASM/asminc.F90

    r13286 r13295  
    414414            DO jk = 1, jpkm1           ! zhdiv = e1e1 * div 
    415415               zhdiv(:,:) = 0._wp 
    416                DO_2D_00_00 
     416               DO_2D( 0, 0, 0, 0 ) 
    417417                  zhdiv(ji,jj) = (  e2u(ji  ,jj) * e3u(ji  ,jj,jk,Kmm) * u_bkginc(ji  ,jj,jk)    & 
    418418                     &            - e2u(ji-1,jj) * e3u(ji-1,jj,jk,Kmm) * u_bkginc(ji-1,jj,jk)    & 
     
    423423               CALL lbc_lnk( 'asminc', zhdiv, 'T', 1.0_wp )   ! lateral boundary cond. (no sign change) 
    424424               ! 
    425                DO_2D_00_00 
     425               DO_2D( 0, 0, 0, 0 ) 
    426426                  u_bkginc(ji,jj,jk) = u_bkginc(ji,jj,jk)                         & 
    427427                     &               + 0.2_wp * ( zhdiv(ji+1,jj) - zhdiv(ji  ,jj) ) * r1_e1u(ji,jj) * umask(ji,jj,jk) 
  • NEMO/trunk/src/OCE/C1D/dtauvd.F90

    r12377 r13295  
    158158         ENDIF 
    159159         ! 
    160          DO_2D_11_11 
     160         DO_2D( 1, 1, 1, 1 ) 
    161161            DO jk = 1, jpk 
    162162               zl = gdept(ji,jj,jk,Kmm) 
     
    193193         ! 
    194194         IF( ln_zps ) THEN                ! zps-coordinate (partial steps) interpolation at the last ocean level 
    195             DO_2D_11_11 
     195            DO_2D( 1, 1, 1, 1 ) 
    196196               ik = mbkt(ji,jj)  
    197197               IF( ik > 1 ) THEN 
  • NEMO/trunk/src/OCE/C1D/dyncor_c1d.F90

    r12377 r13295  
    7777      ! 
    7878      IF( ln_stcor ) THEN 
    79          DO_3D_00_00( 1, jpkm1 ) 
     79         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    8080            puu(ji,jj,jk,Krhs) = puu(ji,jj,jk,Krhs) + ff_t(ji,jj) * (pvv(ji,jj,jk,Kmm) + vsd(ji,jj,jk)) 
    8181            pvv(ji,jj,jk,Krhs) = pvv(ji,jj,jk,Krhs) - ff_t(ji,jj) * (puu(ji,jj,jk,Kmm) + usd(ji,jj,jk)) 
    8282         END_3D 
    8383      ELSE 
    84          DO_3D_00_00( 1, jpkm1 ) 
     84         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    8585            puu(ji,jj,jk,Krhs) = puu(ji,jj,jk,Krhs) + ff_t(ji,jj) * pvv(ji,jj,jk,Kmm) 
    8686            pvv(ji,jj,jk,Krhs) = pvv(ji,jj,jk,Krhs) - ff_t(ji,jj) * puu(ji,jj,jk,Kmm) 
  • NEMO/trunk/src/OCE/C1D/dyndmp.F90

    r13286 r13295  
    165165      ! 
    166166      CASE( 0 )                   ! Newtonian damping throughout the water column 
    167          DO_3D_00_00( 1, jpkm1 ) 
     167         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    168168            zua = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,1) - puu(ji,jj,jk,Kbb) ) 
    169169            zva = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,2) - pvv(ji,jj,jk,Kbb) ) 
     
    175175         ! 
    176176      CASE ( 1 )                  ! no damping above the turbocline (avt > 5 cm2/s) 
    177          DO_3D_00_00( 1, jpkm1 ) 
     177         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    178178            IF( avt(ji,jj,jk) <= avt_c ) THEN 
    179179               zua = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,1) - puu(ji,jj,jk,Kbb) ) 
     
    190190         ! 
    191191      CASE ( 2 )                  ! no damping in the mixed layer 
    192          DO_3D_00_00( 1, jpkm1 ) 
     192         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    193193            IF( gdept(ji,jj,jk,Kmm) >= hmlp (ji,jj) ) THEN 
    194194               zua = resto_uv(ji,jj,jk) * ( zuv_dta(ji,jj,jk,1) - puu(ji,jj,jk,Kbb) ) 
  • NEMO/trunk/src/OCE/CRS/crsfld.F90

    r13237 r13295  
    120120      ! 
    121121      zt(:,:,:) = 0._wp     ;    zs(:,:,:) = 0._wp  ;   zt_crs(:,:,:) = 0._wp   ;    zs_crs(:,:,:) = 0._wp 
    122       DO_3D_00_00( 1, jpkm1 ) 
     122      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    123123         zt(ji,jj,jk)  = uu(ji,jj,jk,Kmm) * 0.5 * ( ts(ji,jj,jk,jp_tem,Kmm) + ts(ji+1,jj,jk,jp_tem,Kmm) )  
    124124         zs(ji,jj,jk)  = uu(ji,jj,jk,Kmm) * 0.5 * ( ts(ji,jj,jk,jp_sal,Kmm) + ts(ji+1,jj,jk,jp_sal,Kmm) )  
     
    135135      !                                                                                  
    136136      zt(:,:,:) = 0._wp     ;    zs(:,:,:) = 0._wp  ;   zt_crs(:,:,:) = 0._wp   ;    zs_crs(:,:,:) = 0._wp 
    137       DO_3D_00_00( 1, jpkm1 ) 
     137      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    138138         zt(ji,jj,jk)  = vv(ji,jj,jk,Kmm) * 0.5 * ( ts(ji,jj,jk,jp_tem,Kmm) + ts(ji,jj+1,jk,jp_tem,Kmm) )  
    139139         zs(ji,jj,jk)  = vv(ji,jj,jk,Kmm) * 0.5 * ( ts(ji,jj,jk,jp_sal,Kmm) + ts(ji,jj+1,jk,jp_sal,Kmm) )  
     
    148148      IF( iom_use( "eken") ) THEN     !      kinetic energy 
    149149         z3d(:,:,jk) = 0._wp  
    150          DO_3D_00_00( 1, jpkm1 ) 
     150         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    151151            zztmp  = r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 
    152152            z3d(ji,jj,jk) = 0.25_wp * zztmp * (                                    & 
  • NEMO/trunk/src/OCE/DIA/diaar5.F90

    r13286 r13295  
    110110      ! 
    111111      IF( iom_use( 'e3tb' ) )  THEN    ! bottom layer thickness 
    112          DO_2D_11_11 
     112         DO_2D( 1, 1, 1, 1 ) 
    113113            ikb = mbkt(ji,jj) 
    114114            z2d(ji,jj) = e3t(ji,jj,ikb,Kmm) 
     
    195195          !                                         ! Mean density anomalie, temperature and salinity 
    196196          ztsn(:,:,:,:) = 0._wp                    ! ztsn(:,:,1,jp_tem/sal) is used here as 2D Workspace for temperature & salinity 
    197           DO_3D_11_11( 1, jpkm1 ) 
     197          DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    198198             zztmp = e1e2t(ji,jj) * e3t(ji,jj,jk,Kmm) 
    199199             ztsn(ji,jj,1,jp_tem) = ztsn(ji,jj,1,jp_tem) + zztmp * ts(ji,jj,jk,jp_tem,Kmm) 
     
    255255             IF( iom_use( 'tosmint_pot') ) THEN 
    256256               z2d(:,:) = 0._wp 
    257                DO_3D_11_11( 1, jpkm1 ) 
     257               DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    258258                  z2d(ji,jj) = z2d(ji,jj) + rho0 * e3t(ji,jj,jk,Kmm) *  ztpot(ji,jj,jk) 
    259259               END_3D 
     
    276276         zpe(:,:) = 0._wp 
    277277         IF( ln_zdfddm ) THEN 
    278             DO_3D_11_11( 2, jpk ) 
     278            DO_3D( 1, 1, 1, 1, 2, jpk ) 
    279279               IF( rn2(ji,jj,jk) > 0._wp ) THEN 
    280280                  zrw = ( gdept(ji,jj,jk,Kmm) - gdepw(ji,jj,jk,Kmm) ) / e3w(ji,jj,jk,Kmm) 
     
    289289            END_3D 
    290290          ELSE 
    291             DO_3D_11_11( 1, jpk ) 
     291            DO_3D( 1, 1, 1, 1, 1, jpk ) 
    292292               zpe(ji,jj) = zpe(ji,jj) + avt(ji,jj,jk) * MIN(0._wp,rn2(ji,jj,jk)) * rho0 * e3w(ji,jj,jk,Kmm) 
    293293            END_3D 
     
    324324     
    325325      z2d(:,:) = puflx(:,:,1)  
    326       DO_3D_00_00( 1, jpkm1 ) 
     326      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    327327         z2d(ji,jj) = z2d(ji,jj) + puflx(ji,jj,jk)  
    328328      END_3D 
     
    338338       ! 
    339339       z2d(:,:) = pvflx(:,:,1)  
    340        DO_3D_00_00( 1, jpkm1 ) 
     340       DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    341341          z2d(ji,jj) = z2d(ji,jj) + pvflx(ji,jj,jk)  
    342342       END_3D 
     
    385385         zvol0 (:,:) = 0._wp 
    386386         thick0(:,:) = 0._wp 
    387          DO_3D_11_11( 1, jpkm1 ) 
     387         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    388388            idep = tmask(ji,jj,jk) * e3t_0(ji,jj,jk) 
    389389            zvol0 (ji,jj) = zvol0 (ji,jj) +  idep * e1e2t(ji,jj) 
     
    403403            sn0(:,:,:) = sn0(:,:,:) * tmask(:,:,:) 
    404404            IF( ln_zps ) THEN               ! z-coord. partial steps 
    405                DO_2D_11_11 
     405               DO_2D( 1, 1, 1, 1 ) 
    406406                  ik = mbkt(ji,jj) 
    407407                  IF( ik > 1 ) THEN 
  • NEMO/trunk/src/OCE/DIA/diacfl.F90

    r13237 r13295  
    6060      IF( ln_timing )   CALL timing_start('dia_cfl') 
    6161      ! 
    62       DO_3D_11_11( 1, jpk ) 
     62      DO_3D( 1, 1, 1, 1, 1, jpk ) 
    6363         zCu_cfl(ji,jj,jk) = ABS( uu(ji,jj,jk,Kmm) ) * rDt / e1u  (ji,jj)      ! for i-direction 
    6464         zCv_cfl(ji,jj,jk) = ABS( vv(ji,jj,jk,Kmm) ) * rDt / e2v  (ji,jj)      ! for j-direction 
  • NEMO/trunk/src/OCE/DIA/diahth.F90

    r13237 r13295  
    130130            zdepinv(:,:) = 0._wp   
    131131            zmaxdzT(:,:) = 0._wp   
    132             DO_2D_11_11 
     132            DO_2D( 1, 1, 1, 1 ) 
    133133               zztmp = gdepw(ji,jj,mbkt(ji,jj)+1,Kmm)  
    134134               hth     (ji,jj) = zztmp 
     
    139139            END_2D 
    140140            IF( nla10 > 1 ) THEN  
    141                DO_2D_11_11 
     141               DO_2D( 1, 1, 1, 1 ) 
    142142                  zztmp = gdepw(ji,jj,mbkt(ji,jj)+1,Kmm)  
    143143                  zrho0_3(ji,jj) = zztmp 
     
    148148            ! Preliminary computation 
    149149            ! computation of zdelr = (dr/dT)(T,S,10m)*(-0.2 degC) 
    150             DO_2D_11_11 
     150            DO_2D( 1, 1, 1, 1 ) 
    151151               IF( tmask(ji,jj,nla10) == 1. ) THEN 
    152152                  zu  =  1779.50 + 11.250 * ts(ji,jj,nla10,jp_tem,Kmm) - 3.80   * ts(ji,jj,nla10,jp_sal,Kmm)  & 
     
    170170            ! MLD: rho = rho(1) + zrho1                                     ! 
    171171            ! ------------------------------------------------------------- ! 
    172             DO_3DS_11_11( jpkm1, 2, -1 ) 
     172            DO_3DS( 1, 1, 1, 1, jpkm1, 2, -1 ) 
    173173               ! 
    174174               zzdep = gdepw(ji,jj,jk,Kmm) 
     
    207207            ! depth of temperature inversion                                ! 
    208208            ! ------------------------------------------------------------- ! 
    209             DO_3DS_11_11( jpkm1, nlb10, -1 ) 
     209            DO_3DS( 1, 1, 1, 1, jpkm1, nlb10, -1 ) 
    210210               ! 
    211211               zzdep = gdepw(ji,jj,jk,Kmm) * tmask(ji,jj,1) 
     
    305305      ! --------------------------------------- ! 
    306306      iktem(:,:) = 1 
    307       DO_3D_11_11( 1, jpkm1 ) 
     307      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    308308         zztmp = ts(ji,jj,jk,jp_tem,Kmm) 
    309309         IF( zztmp >= ptem )   iktem(ji,jj) = jk 
     
    313313      !  Depth of ptem isotherm         ! 
    314314      ! ------------------------------- ! 
    315       DO_2D_11_11 
     315      DO_2D( 1, 1, 1, 1 ) 
    316316         ! 
    317317         zzdep = gdepw(ji,jj,mbkt(ji,jj)+1,Kmm)       ! depth of the ocean bottom 
     
    351351      ! 
    352352      ilevel(:,:) = 1 
    353       DO_3D_11_11( 2, jpkm1 ) 
     353      DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    354354         IF( ( gdept(ji,jj,jk,Kmm) < pdep ) .AND. ( tmask(ji,jj,jk) == 1 ) ) THEN 
    355355             ilevel(ji,jj) = jk 
     
    359359      END_3D 
    360360      ! 
    361       DO_2D_11_11 
     361      DO_2D( 1, 1, 1, 1 ) 
    362362         ik = ilevel(ji,jj) 
    363363         zthick(ji,jj) = pdep - zthick(ji,jj)   !   remaining thickness to reach depht pdep 
  • NEMO/trunk/src/OCE/DIA/diaptr.F90

    r13286 r13295  
    119119            zmask(:,:,:) = 0._wp 
    120120            zts(:,:,:,:) = 0._wp 
    121             DO_3D_10_11( 1, jpkm1 ) 
     121            DO_3D( 1, 0, 1, 1, 1, jpkm1 ) 
    122122               zvfc = e1v(ji,jj) * e3v(ji,jj,jk,Kmm) 
    123123               zmask(ji,jj,jk)      = vmask(ji,jj,jk)      * zvfc 
     
    190190         zts(:,:,:,:) = 0._wp 
    191191         IF( iom_use( 'zotem' ) .OR. iom_use( 'zosal' ) .OR. iom_use( 'zosrf' )  ) THEN    ! i-mean i-k-surface  
    192             DO_3D_11_11( 1, jpkm1 ) 
     192            DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    193193               zsfc = e1t(ji,jj) * e3t(ji,jj,jk,Kmm) 
    194194               zmask(ji,jj,jk)      = tmask(ji,jj,jk)      * zsfc 
     
    280280         IF( iom_use( 'sopstvtr' ) .OR. iom_use( 'sophtvtr' ) ) THEN 
    281281            zts(:,:,:,:) = 0._wp 
    282             DO_3D_10_11( 1, jpkm1 ) 
     282            DO_3D( 1, 0, 1, 1, 1, jpkm1 ) 
    283283               zvfc = e1v(ji,jj) * e3v(ji,jj,jk,Kmm) 
    284284               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 
     
    505505      ijpj = jpj 
    506506      p_fval(:) = 0._wp 
    507       DO_3D_00_00( 1, jpkm1 ) 
     507      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    508508         p_fval(jj) = p_fval(jj) + pvflx(ji,jj,jk) * pmsk(ji,jj) * tmask_i(ji,jj) 
    509509      END_3D 
     
    538538      ijpj = jpj 
    539539      p_fval(:) = 0._wp 
    540       DO_2D_00_00 
     540      DO_2D( 0, 0, 0, 0 ) 
    541541         p_fval(jj) = p_fval(jj) + pvflx(ji,jj) * pmsk(ji,jj) * tmask_i(ji,jj) 
    542542      END_2D 
     
    567567      p_fval(:,:) = 0._wp 
    568568      DO jc = 1, jpnj ! looping over all processors in j axis 
    569          DO_2D_00_00 
     569         DO_2D( 0, 0, 0, 0 ) 
    570570            p_fval(ji,jj) = p_fval(ji,jj-1) + pva(ji,jj) * tmask_i(ji,jj) 
    571571         END_2D 
     
    606606      p_fval(:,:) = 0._wp 
    607607      ! 
    608       DO_3D_00_00( 1, jpkm1 ) 
     608      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    609609         p_fval(jj,jk) = p_fval(jj,jk) + pta(ji,jj,jk) * pmsk(ji,jj) * tmask_i(ji,jj) 
    610610      END_3D 
  • NEMO/trunk/src/OCE/DIA/diawri.F90

    r13286 r13295  
    175175      CALL iom_put(  "sst", ts(:,:,1,jp_tem,Kmm) )    ! surface temperature 
    176176      IF ( iom_use("sbt") ) THEN 
    177          DO_2D_11_11 
     177         DO_2D( 1, 1, 1, 1 ) 
    178178            ikbot = mbkt(ji,jj) 
    179179            z2d(ji,jj) = ts(ji,jj,ikbot,jp_tem,Kmm) 
     
    185185      CALL iom_put(  "sss", ts(:,:,1,jp_sal,Kmm) )    ! surface salinity 
    186186      IF ( iom_use("sbs") ) THEN 
    187          DO_2D_11_11 
     187         DO_2D( 1, 1, 1, 1 ) 
    188188            ikbot = mbkt(ji,jj) 
    189189            z2d(ji,jj) = ts(ji,jj,ikbot,jp_sal,Kmm) 
     
    199199         zztmp = rho0 * 0.25 
    200200         z2d(:,:) = 0._wp 
    201          DO_2D_00_00 
     201         DO_2D( 0, 0, 0, 0 ) 
    202202            zztmp2 = (  ( rCdU_bot(ji+1,jj)+rCdU_bot(ji  ,jj) ) * uu(ji  ,jj,mbku(ji  ,jj),Kmm)  )**2   & 
    203203               &   + (  ( rCdU_bot(ji  ,jj)+rCdU_bot(ji-1,jj) ) * uu(ji-1,jj,mbku(ji-1,jj),Kmm)  )**2   & 
     
    214214      CALL iom_put(  "ssu", uu(:,:,1,Kmm) )            ! surface i-current 
    215215      IF ( iom_use("sbu") ) THEN 
    216          DO_2D_11_11 
     216         DO_2D( 1, 1, 1, 1 ) 
    217217            ikbot = mbku(ji,jj) 
    218218            z2d(ji,jj) = uu(ji,jj,ikbot,Kmm) 
     
    224224      CALL iom_put(  "ssv", vv(:,:,1,Kmm) )            ! surface j-current 
    225225      IF ( iom_use("sbv") ) THEN 
    226          DO_2D_11_11 
     226         DO_2D( 1, 1, 1, 1 ) 
    227227            ikbot = mbkv(ji,jj) 
    228228            z2d(ji,jj) = vv(ji,jj,ikbot,Kmm) 
     
    254254 
    255255      IF ( iom_use("sstgrad") .OR. iom_use("sstgrad2") ) THEN 
    256          DO_2D_00_00 
     256         DO_2D( 0, 0, 0, 0 ) 
    257257            zztmp  = ts(ji,jj,1,jp_tem,Kmm) 
    258258            zztmpx = ( ts(ji+1,jj,1,jp_tem,Kmm) - zztmp ) * r1_e1u(ji,jj) + ( zztmp - ts(ji-1,jj  ,1,jp_tem,Kmm) ) * r1_e1u(ji-1,jj) 
     
    270270      IF( iom_use("heatc") ) THEN 
    271271         z2d(:,:)  = 0._wp  
    272          DO_3D_11_11( 1, jpkm1 ) 
     272         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    273273            z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * ts(ji,jj,jk,jp_tem,Kmm) * tmask(ji,jj,jk) 
    274274         END_3D 
     
    278278      IF( iom_use("saltc") ) THEN 
    279279         z2d(:,:)  = 0._wp  
    280          DO_3D_11_11( 1, jpkm1 ) 
     280         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    281281            z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * ts(ji,jj,jk,jp_sal,Kmm) * tmask(ji,jj,jk) 
    282282         END_3D 
     
    286286      IF ( iom_use("eken") ) THEN 
    287287         z3d(:,:,jpk) = 0._wp  
    288          DO_3D_00_00( 1, jpkm1 ) 
     288         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    289289            zztmp  = 0.25_wp * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 
    290290            z3d(ji,jj,jk) = zztmp * (  uu(ji-1,jj,jk,Kmm)**2 * e2u(ji-1,jj) * e3u(ji-1,jj,jk,Kmm)   & 
     
    312312      IF( iom_use("u_heattr") ) THEN 
    313313         z2d(:,:) = 0._wp  
    314          DO_3D_00_00( 1, jpkm1 ) 
     314         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    315315            z2d(ji,jj) = z2d(ji,jj) + z3d(ji,jj,jk) * ( ts(ji,jj,jk,jp_tem,Kmm) + ts(ji+1,jj,jk,jp_tem,Kmm) ) 
    316316         END_3D 
     
    321321      IF( iom_use("u_salttr") ) THEN 
    322322         z2d(:,:) = 0.e0  
    323          DO_3D_00_00( 1, jpkm1 ) 
     323         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    324324            z2d(ji,jj) = z2d(ji,jj) + z3d(ji,jj,jk) * ( ts(ji,jj,jk,jp_sal,Kmm) + ts(ji+1,jj,jk,jp_sal,Kmm) ) 
    325325         END_3D 
     
    339339      IF( iom_use("v_heattr") ) THEN 
    340340         z2d(:,:) = 0.e0  
    341          DO_3D_00_00( 1, jpkm1 ) 
     341         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    342342            z2d(ji,jj) = z2d(ji,jj) + z3d(ji,jj,jk) * ( ts(ji,jj,jk,jp_tem,Kmm) + ts(ji,jj+1,jk,jp_tem,Kmm) ) 
    343343         END_3D 
     
    348348      IF( iom_use("v_salttr") ) THEN 
    349349         z2d(:,:) = 0._wp  
    350          DO_3D_00_00( 1, jpkm1 ) 
     350         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    351351            z2d(ji,jj) = z2d(ji,jj) + z3d(ji,jj,jk) * ( ts(ji,jj,jk,jp_sal,Kmm) + ts(ji,jj+1,jk,jp_sal,Kmm) ) 
    352352         END_3D 
     
    357357      IF( iom_use("tosmint") ) THEN 
    358358         z2d(:,:) = 0._wp 
    359          DO_3D_00_00( 1, jpkm1 ) 
     359         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    360360            z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) *  ts(ji,jj,jk,jp_tem,Kmm) 
    361361         END_3D 
     
    365365      IF( iom_use("somint") ) THEN 
    366366         z2d(:,:)=0._wp 
    367          DO_3D_00_00( 1, jpkm1 ) 
     367         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    368368            z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * ts(ji,jj,jk,jp_sal,Kmm) 
    369369         END_3D 
  • NEMO/trunk/src/OCE/DIU/diu_bulk.F90

    r12377 r13295  
    130130      ! If not done already, calculate the solar fraction 
    131131      IF ( kt==nit000 ) THEN 
    132          DO_2D_11_11 
     132         DO_2D( 1, 1, 1, 1 ) 
    133133            IF(  ( x_solfrac(ji,jj) == 0._wp ) .AND. ( tmask(ji,jj,1) == 1._wp ) ) & 
    134134               &   x_solfrac(ji,jj) = solfrac( zcoolthick(ji,jj),zthick(ji,jj) ) 
     
    199199      INTEGER :: ji,jj 
    200200                      
    201       DO_2D_11_11 
     201      DO_2D( 1, 1, 1, 1 ) 
    202202          
    203203         ! Only calculate outside tmask 
  • NEMO/trunk/src/OCE/DIU/diu_coolskin.F90

    r12489 r13295  
    9797      IF( .NOT. ln_blk )   CALL ctl_stop("diu_coolskin.f90: diurnal flux processing only implemented for bulk forcing") 
    9898      ! 
    99       DO_2D_11_11 
     99      DO_2D( 1, 1, 1, 1 ) 
    100100         ! 
    101101         ! Calcualte wind speed from wind stress and friction velocity 
  • NEMO/trunk/src/OCE/DOM/dommsk.F90

    r13286 r13295  
    131131      ! 
    132132      tmask(:,:,:) = 0._wp 
    133       DO_2D_11_11 
     133      DO_2D( 1, 1, 1, 1 ) 
    134134         iktop = k_top(ji,jj) 
    135135         ikbot = k_bot(ji,jj) 
     
    149149         CALL iom_get ( inum, jpdom_global, 'bdy_msk', bdytmask(:,:) ) 
    150150         CALL iom_close( inum ) 
    151          DO_3D_11_11( 1, jpkm1 ) 
     151         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    152152            tmask(ji,jj,jk) = tmask(ji,jj,jk) * bdytmask(ji,jj) 
    153153         END_3D 
     
    157157      ! ---------------------------------------- 
    158158      ! NB: at this point, fmask is designed for free slip lateral boundary condition 
    159       DO_3D_00_00( 1, jpk ) 
     159      DO_3D( 0, 0, 0, 0, 1, jpk ) 
    160160         umask(ji,jj,jk) = tmask(ji,jj  ,jk) * tmask(ji+1,jj  ,jk) 
    161161         vmask(ji,jj,jk) = tmask(ji,jj  ,jk) * tmask(ji  ,jj+1,jk) 
     
    199199         DO jk = 1, jpk 
    200200            zwf(:,:) = fmask(:,:,jk)          
    201             DO_2D_00_00 
     201            DO_2D( 0, 0, 0, 0 ) 
    202202               IF( fmask(ji,jj,jk) == 0._wp ) THEN 
    203203                  fmask(ji,jj,jk) = rn_shlat * MIN( 1._wp , MAX( zwf(ji+1,jj), zwf(ji,jj+1),   & 
  • NEMO/trunk/src/OCE/DOM/domqco.F90

    r13286 r13295  
    149149      ! 
    150150      IF( ln_dynadv_vec ) THEN                     !- Vector Form   (thickness weighted averaging) 
    151          DO_2D_00_00 
     151         DO_2D( 0, 0, 0, 0 ) 
    152152            pr3u(ji,jj) = 0.5_wp * (  e1e2t(ji  ,jj) * pssh(ji  ,jj)  & 
    153153               &                    + e1e2t(ji+1,jj) * pssh(ji+1,jj)  ) * r1_hu_0(ji,jj) * r1_e1e2u(ji,jj) 
     
    156156         END_2D 
    157157      ELSE                                         !- Flux Form   (simple averaging) 
    158          DO_2D_00_00 
     158         DO_2D( 0, 0, 0, 0 ) 
    159159            pr3u(ji,jj) = 0.5_wp * (  pssh(ji  ,jj) + pssh(ji+1,jj)  ) * r1_hu_0(ji,jj) 
    160160            pr3v(ji,jj) = 0.5_wp * (  pssh(ji,jj  ) + pssh(ji,jj+1)  ) * r1_hv_0(ji,jj) 
     
    169169         ! 
    170170         IF( ln_dynadv_vec )   THEN                !- Vector Form   (thickness weighted averaging) 
    171             DO_2D_10_10                               ! start from 1 since lbc_lnk('F') doesn't update the 1st row/line 
     171            DO_2D( 1, 0, 1, 0 )                               ! start from 1 since lbc_lnk('F') doesn't update the 1st row/line 
    172172               pr3f(ji,jj) = 0.25_wp * (  e1e2t(ji  ,jj  ) * pssh(ji  ,jj  )  & 
    173173                  &                     + e1e2t(ji+1,jj  ) * pssh(ji+1,jj  )  & 
     
    176176            END_2D 
    177177         ELSE                                      !- Flux Form   (simple averaging) 
    178             DO_2D_10_10                               ! start from 1 since lbc_lnk('F') doesn't update the 1st row/line 
     178            DO_2D( 1, 0, 1, 0 )                               ! start from 1 since lbc_lnk('F') doesn't update the 1st row/line 
    179179               pr3f(ji,jj) = 0.25_wp * (  pssh(ji  ,jj  ) + pssh(ji+1,jj  )  & 
    180180                  &                     + pssh(ji  ,jj+1) + pssh(ji+1,jj+1)  ) * r1_hf_0(ji,jj) 
     
    264264                  ssh(:,:,Kbb) = -ssh_ref 
    265265                  ! 
    266                   DO_2D_11_11 
     266                  DO_2D( 1, 1, 1, 1 ) 
    267267                     IF( ht_0(ji,jj)-ssh_ref <  rn_wdmin1 ) THEN ! if total depth is less than min depth 
    268268                        ssh(ji,jj,Kbb) = rn_wdmin1 - (ht_0(ji,jj) ) 
  • NEMO/trunk/src/OCE/DOM/domvvl.F90

    r13286 r13295  
    202202      gdept(:,:,1,Kbb) = 0.5_wp * e3w(:,:,1,Kbb) 
    203203      gdepw(:,:,1,Kbb) = 0.0_wp 
    204       DO_3D_11_11( 2, jpk ) 
     204      DO_3D( 1, 1, 1, 1, 2, jpk ) 
    205205         !    zcoef = tmask - wmask    ! 0 everywhere tmask = wmask, ie everywhere expect at jk = mikt 
    206206         !                             ! 1 everywhere from mbkt to mikt + 1 or 1 (if no isf) 
     
    250250         ENDIF 
    251251         IF ( ln_vvl_zstar_at_eqtor ) THEN   ! use z-star in vicinity of the Equator 
    252             DO_2D_11_11 
     252            DO_2D( 1, 1, 1, 1 ) 
    253253!!gm  case |gphi| >= 6 degrees is useless   initialized just above by default 
    254254               IF( ABS(gphit(ji,jj)) >= 6.) THEN 
     
    419419         zwu(:,:) = 0._wp 
    420420         zwv(:,:) = 0._wp 
    421          DO_3D_10_10( 1, jpkm1 ) 
     421         DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    422422            un_td(ji,jj,jk) = rn_ahe3 * umask(ji,jj,jk) * e2_e1u(ji,jj)           & 
    423423               &            * ( tilde_e3t_b(ji,jj,jk) - tilde_e3t_b(ji+1,jj  ,jk) ) 
     
    427427            zwv(ji,jj) = zwv(ji,jj) + vn_td(ji,jj,jk) 
    428428         END_3D 
    429          DO_2D_11_11 
     429         DO_2D( 1, 1, 1, 1 ) 
    430430            un_td(ji,jj,mbku(ji,jj)) = un_td(ji,jj,mbku(ji,jj)) - zwu(ji,jj) 
    431431            vn_td(ji,jj,mbkv(ji,jj)) = vn_td(ji,jj,mbkv(ji,jj)) - zwv(ji,jj) 
    432432         END_2D 
    433          DO_3D_00_00( 1, jpkm1 ) 
     433         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    434434            tilde_e3t_a(ji,jj,jk) = tilde_e3t_a(ji,jj,jk) + (   un_td(ji-1,jj  ,jk) - un_td(ji,jj,jk)    & 
    435435               &                                          +     vn_td(ji  ,jj-1,jk) - vn_td(ji,jj,jk)    & 
     
    659659      gdepw(:,:,1,Kmm) = 0.0_wp 
    660660      gde3w(:,:,1) = gdept(:,:,1,Kmm) - ssh(:,:,Kmm) 
    661       DO_3D_11_11( 2, jpk ) 
     661      DO_3D( 1, 1, 1, 1, 2, jpk ) 
    662662        !    zcoef = (tmask(ji,jj,jk) - wmask(ji,jj,jk))   ! 0 everywhere tmask = wmask, ie everywhere expect at jk = mikt 
    663663                                                           ! 1 for jk = mikt 
     
    714714         ! 
    715715      CASE( 'U' )                   !* from T- to U-point : hor. surface weighted mean 
    716          DO_3D_10_10( 1, jpk ) 
     716         DO_3D( 1, 0, 1, 0, 1, jpk ) 
    717717            pe3_out(ji,jj,jk) = 0.5_wp * (  umask(ji,jj,jk) * (1.0_wp - zlnwd) + zlnwd ) * r1_e1e2u(ji,jj)   & 
    718718               &                       * (   e1e2t(ji  ,jj) * ( pe3_in(ji  ,jj,jk) - e3t_0(ji  ,jj,jk) )     & 
     
    723723         ! 
    724724      CASE( 'V' )                   !* from T- to V-point : hor. surface weighted mean 
    725          DO_3D_10_10( 1, jpk ) 
     725         DO_3D( 1, 0, 1, 0, 1, jpk ) 
    726726            pe3_out(ji,jj,jk) = 0.5_wp * ( vmask(ji,jj,jk)  * (1.0_wp - zlnwd) + zlnwd ) * r1_e1e2v(ji,jj)   & 
    727727               &                       * (   e1e2t(ji,jj  ) * ( pe3_in(ji,jj  ,jk) - e3t_0(ji,jj  ,jk) )     & 
     
    732732         ! 
    733733      CASE( 'F' )                   !* from U-point to F-point : hor. surface weighted mean 
    734          DO_3D_10_10( 1, jpk ) 
     734         DO_3D( 1, 0, 1, 0, 1, jpk ) 
    735735            pe3_out(ji,jj,jk) = 0.5_wp * (  umask(ji,jj,jk) * umask(ji,jj+1,jk) * (1.0_wp - zlnwd) + zlnwd ) & 
    736736               &                       *    r1_e1e2f(ji,jj)                                                  & 
     
    899899                  ssh(:,:,Kbb) = -ssh_ref 
    900900 
    901                   DO_2D_11_11 
     901                  DO_2D( 1, 1, 1, 1 ) 
    902902                     IF( ht_0(ji,jj)-ssh_ref <  rn_wdmin1 ) THEN ! if total depth is less than min depth 
    903903                        ssh(ji,jj,Kbb) = rn_wdmin1 - (ht_0(ji,jj) ) 
     
    915915               e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm) 
    916916 
    917                DO_2D_11_11 
     917               DO_2D( 1, 1, 1, 1 ) 
    918918                  IF ( ht_0(ji,jj) .LE. 0.0 .AND. NINT( ssmask(ji,jj) ) .EQ. 1) THEN 
    919919                     CALL ctl_stop( 'dom_vvl_rst: ht_0 must be positive at potentially wet points' ) 
  • NEMO/trunk/src/OCE/DOM/domwri.F90

    r13286 r13295  
    9494       
    9595      CALL dom_uniq( zprw, 'T' ) 
    96       DO_2D_11_11 
     96      DO_2D( 1, 1, 1, 1 ) 
    9797         zprt(ji,jj) = ssmask(ji,jj) * zprw(ji,jj)                        !    ! unique point mask 
    9898      END_2D 
    9999      CALL iom_rstput( 0, 0, inum, 'tmaskutil', zprt, ktype = jp_i1 )   
    100100      CALL dom_uniq( zprw, 'U' ) 
    101       DO_2D_11_11 
     101      DO_2D( 1, 1, 1, 1 ) 
    102102         zprt(ji,jj) = ssumask(ji,jj) * zprw(ji,jj)                        !    ! unique point mask 
    103103      END_2D 
    104104      CALL iom_rstput( 0, 0, inum, 'umaskutil', zprt, ktype = jp_i1 )   
    105105      CALL dom_uniq( zprw, 'V' ) 
    106       DO_2D_11_11 
     106      DO_2D( 1, 1, 1, 1 ) 
    107107         zprt(ji,jj) = ssvmask(ji,jj) * zprw(ji,jj)                        !    ! unique point mask 
    108108      END_2D 
  • NEMO/trunk/src/OCE/DOM/domzgr.F90

    r13286 r13295  
    168168      ! 
    169169      !                                ! ice shelf draft and bathymetry 
    170       DO_2D_11_11 
     170      DO_2D( 1, 1, 1, 1 ) 
    171171         ikt = mikt(ji,jj) 
    172172         ikb = mbkt(ji,jj) 
     
    331331      !                                    ! N.B.  top     k-index of W-level = mikt 
    332332      !                                    !       bottom  k-index of W-level = mbkt+1 
    333       DO_2D_10_10 
     333      DO_2D( 1, 0, 1, 0 ) 
    334334         miku(ji,jj) = MAX(  mikt(ji+1,jj  ) , mikt(ji,jj)  ) 
    335335         mikv(ji,jj) = MAX(  mikt(ji  ,jj+1) , mikt(ji,jj)  ) 
  • NEMO/trunk/src/OCE/DOM/dtatsd.F90

    r13286 r13295  
    186186         ENDIF 
    187187         ! 
    188          DO_2D_11_11 
     188         DO_2D( 1, 1, 1, 1 ) 
    189189            DO jk = 1, jpk                        ! determines the intepolated T-S profiles at each (i,j) points 
    190190               zl = gdept_0(ji,jj,jk) 
     
    219219         ! 
    220220         IF( ln_zps ) THEN                      ! zps-coordinate (partial steps) interpolation at the last ocean level 
    221             DO_2D_11_11 
     221            DO_2D( 1, 1, 1, 1 ) 
    222222               ik = mbkt(ji,jj)  
    223223               IF( ik > 1 ) THEN 
  • NEMO/trunk/src/OCE/DOM/istate.F90

    r13237 r13295  
    126126               ! Apply minimum wetdepth criterion 
    127127               ! 
    128                DO_2D_11_11 
     128               DO_2D( 1, 1, 1, 1 ) 
    129129                  IF( ht_0(ji,jj) + ssh(ji,jj,Kbb)  < rn_wdmin1 ) THEN 
    130130                     ssh(ji,jj,Kbb) = tmask(ji,jj,1)*( rn_wdmin1 - (ht_0(ji,jj)) ) 
     
    181181      ! 
    182182!!gm  the use of umsak & vmask is not necessary below as uu(:,:,:,Kmm), vv(:,:,:,Kmm), uu(:,:,:,Kbb), vv(:,:,:,Kbb) are always masked 
    183       DO_3D_11_11( 1, jpkm1 ) 
     183      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    184184         uu_b(ji,jj,Kmm) = uu_b(ji,jj,Kmm) + e3u(ji,jj,jk,Kmm) * uu(ji,jj,jk,Kmm) * umask(ji,jj,jk) 
    185185         vv_b(ji,jj,Kmm) = vv_b(ji,jj,Kmm) + e3v(ji,jj,jk,Kmm) * vv(ji,jj,jk,Kmm) * vmask(ji,jj,jk) 
  • NEMO/trunk/src/OCE/DYN/divhor.F90

    r13237 r13295  
    7777      ENDIF 
    7878      ! 
    79       DO_3D_00_00( 1, jpkm1 ) 
     79      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    8080         hdiv(ji,jj,jk) = (  e2u(ji  ,jj) * e3u(ji  ,jj,jk,Kmm) * uu(ji  ,jj,jk,Kmm)      & 
    8181            &               - e2u(ji-1,jj) * e3u(ji-1,jj,jk,Kmm) * uu(ji-1,jj,jk,Kmm)      & 
  • NEMO/trunk/src/OCE/DYN/dynadv_cen2.F90

    r13237 r13295  
    7272         zfu(:,:,jk) = 0.25_wp * e2u(:,:) * e3u(:,:,jk,Kmm) * puu(:,:,jk,Kmm) 
    7373         zfv(:,:,jk) = 0.25_wp * e1v(:,:) * e3v(:,:,jk,Kmm) * pvv(:,:,jk,Kmm) 
    74          DO_2D_10_10 
     74         DO_2D( 1, 0, 1, 0 ) 
    7575            zfu_t(ji+1,jj  ,jk) = ( zfu(ji,jj,jk) + zfu(ji+1,jj,jk) ) * ( puu(ji,jj,jk,Kmm) + puu(ji+1,jj  ,jk,Kmm) ) 
    7676            zfv_f(ji  ,jj  ,jk) = ( zfv(ji,jj,jk) + zfv(ji+1,jj,jk) ) * ( puu(ji,jj,jk,Kmm) + puu(ji  ,jj+1,jk,Kmm) ) 
     
    7878            zfv_t(ji  ,jj+1,jk) = ( zfv(ji,jj,jk) + zfv(ji,jj+1,jk) ) * ( pvv(ji,jj,jk,Kmm) + pvv(ji  ,jj+1,jk,Kmm) ) 
    7979         END_2D 
    80          DO_2D_00_00 
     80         DO_2D( 0, 0, 0, 0 ) 
    8181            puu(ji,jj,jk,Krhs) = puu(ji,jj,jk,Krhs) - (  zfu_t(ji+1,jj,jk) - zfu_t(ji,jj  ,jk)    & 
    8282               &                           + zfv_f(ji  ,jj,jk) - zfv_f(ji,jj-1,jk)  ) * r1_e1e2u(ji,jj)   & 
     
    9898      !                             !==  Vertical advection  ==! 
    9999      ! 
    100       DO_2D_00_00 
     100      DO_2D( 0, 0, 0, 0 ) 
    101101         zfu_uw(ji,jj,jpk) = 0._wp   ;   zfv_vw(ji,jj,jpk) = 0._wp 
    102102         zfu_uw(ji,jj, 1 ) = 0._wp   ;   zfv_vw(ji,jj, 1 ) = 0._wp 
    103103      END_2D 
    104104      IF( ln_linssh ) THEN                ! linear free surface: advection through the surface 
    105          DO_2D_00_00 
     105         DO_2D( 0, 0, 0, 0 ) 
    106106            zfu_uw(ji,jj,1) = 0.5_wp * ( e1e2t(ji,jj) * ww(ji,jj,1) + e1e2t(ji+1,jj) * ww(ji+1,jj,1) ) * puu(ji,jj,1,Kmm) 
    107107            zfv_vw(ji,jj,1) = 0.5_wp * ( e1e2t(ji,jj) * ww(ji,jj,1) + e1e2t(ji,jj+1) * ww(ji,jj+1,1) ) * pvv(ji,jj,1,Kmm) 
     
    109109      ENDIF 
    110110      DO jk = 2, jpkm1                    ! interior advective fluxes 
    111          DO_2D_01_01 
     111         DO_2D( 0, 1, 0, 1 ) 
    112112            zfw(ji,jj,jk) = 0.25_wp * e1e2t(ji,jj) * ww(ji,jj,jk) 
    113113         END_2D 
    114          DO_2D_00_00 
     114         DO_2D( 0, 0, 0, 0 ) 
    115115            zfu_uw(ji,jj,jk) = ( zfw(ji,jj,jk) + zfw(ji+1,jj  ,jk) ) * ( puu(ji,jj,jk,Kmm) + puu(ji,jj,jk-1,Kmm) ) 
    116116            zfv_vw(ji,jj,jk) = ( zfw(ji,jj,jk) + zfw(ji  ,jj+1,jk) ) * ( pvv(ji,jj,jk,Kmm) + pvv(ji,jj,jk-1,Kmm) ) 
    117117         END_2D 
    118118      END DO 
    119       DO_3D_00_00( 1, jpkm1 ) 
     119      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    120120         puu(ji,jj,jk,Krhs) = puu(ji,jj,jk,Krhs) - ( zfu_uw(ji,jj,jk) - zfu_uw(ji,jj,jk+1) ) * r1_e1e2u(ji,jj)   & 
    121121            &                                      / e3u(ji,jj,jk,Kmm) 
  • NEMO/trunk/src/OCE/DYN/dynadv_ubs.F90

    r13237 r13295  
    108108         zfv(:,:,jk) = e1v(:,:) * e3v(:,:,jk,Kmm) * pvv(:,:,jk,Kmm) 
    109109         !             
    110          DO_2D_00_00 
     110         DO_2D( 0, 0, 0, 0 ) 
    111111            zlu_uu(ji,jj,jk,1) = ( puu (ji+1,jj  ,jk,Kbb) - 2.*puu (ji,jj,jk,Kbb) + puu (ji-1,jj  ,jk,Kbb) ) * umask(ji,jj,jk) 
    112112            zlv_vv(ji,jj,jk,1) = ( pvv (ji  ,jj+1,jk,Kbb) - 2.*pvv (ji,jj,jk,Kbb) + pvv (ji  ,jj-1,jk,Kbb) ) * vmask(ji,jj,jk) 
     
    136136         zfv(:,:,jk) = 0.25_wp * e1v(:,:) * e3v(:,:,jk,Kmm) * pvv(:,:,jk,Kmm) 
    137137         ! 
    138          DO_2D_10_10 
     138         DO_2D( 1, 0, 1, 0 ) 
    139139            zui = ( puu(ji,jj,jk,Kmm) + puu(ji+1,jj  ,jk,Kmm) ) 
    140140            zvj = ( pvv(ji,jj,jk,Kmm) + pvv(ji  ,jj+1,jk,Kmm) ) 
     
    168168               &                * ( pvv(ji,jj,jk,Kmm) + pvv(ji+1,jj  ,jk,Kmm) - gamma1 * zl_v ) 
    169169         END_2D 
    170          DO_2D_00_00 
     170         DO_2D( 0, 0, 0, 0 ) 
    171171            puu(ji,jj,jk,Krhs) = puu(ji,jj,jk,Krhs) - (  zfu_t(ji+1,jj,jk) - zfu_t(ji,jj  ,jk)    & 
    172172               &                           + zfv_f(ji  ,jj,jk) - zfv_f(ji,jj-1,jk)  ) * r1_e1e2u(ji,jj)   & 
     
    187187      !                                      !  Vertical advection  ! 
    188188      !                                      ! ==================== ! 
    189       DO_2D_00_00 
     189      DO_2D( 0, 0, 0, 0 ) 
    190190         zfu_uw(ji,jj,jpk) = 0._wp 
    191191         zfv_vw(ji,jj,jpk) = 0._wp 
     
    194194      END_2D 
    195195      IF( ln_linssh ) THEN                         ! constant volume : advection through the surface 
    196          DO_2D_00_00 
     196         DO_2D( 0, 0, 0, 0 ) 
    197197            zfu_uw(ji,jj,1) = 0.5_wp * ( e1e2t(ji,jj) * ww(ji,jj,1) + e1e2t(ji+1,jj) * ww(ji+1,jj,1) ) * puu(ji,jj,1,Kmm) 
    198198            zfv_vw(ji,jj,1) = 0.5_wp * ( e1e2t(ji,jj) * ww(ji,jj,1) + e1e2t(ji,jj+1) * ww(ji,jj+1,1) ) * pvv(ji,jj,1,Kmm) 
     
    200200      ENDIF 
    201201      DO jk = 2, jpkm1                          ! interior fluxes 
    202          DO_2D_01_01 
     202         DO_2D( 0, 1, 0, 1 ) 
    203203            zfw(ji,jj,jk) = 0.25_wp * e1e2t(ji,jj) * ww(ji,jj,jk) 
    204204         END_2D 
    205          DO_2D_00_00 
     205         DO_2D( 0, 0, 0, 0 ) 
    206206            zfu_uw(ji,jj,jk) = ( zfw(ji,jj,jk)+ zfw(ji+1,jj,jk) ) * ( puu(ji,jj,jk,Kmm) + puu(ji,jj,jk-1,Kmm) ) 
    207207            zfv_vw(ji,jj,jk) = ( zfw(ji,jj,jk)+ zfw(ji,jj+1,jk) ) * ( pvv(ji,jj,jk,Kmm) + pvv(ji,jj,jk-1,Kmm) ) 
    208208         END_2D 
    209209      END DO 
    210       DO_3D_00_00( 1, jpkm1 ) 
     210      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    211211         puu(ji,jj,jk,Krhs) =  puu(ji,jj,jk,Krhs) - ( zfu_uw(ji,jj,jk) - zfu_uw(ji,jj,jk+1) ) * r1_e1e2u(ji,jj)   & 
    212212            &                                       / e3u(ji,jj,jk,Kmm) 
  • NEMO/trunk/src/OCE/DYN/dynatf.F90

    r13237 r13295  
    197197         IF( ln_linssh ) THEN             ! Fixed volume ! 
    198198            !                             ! =============! 
    199             DO_3D_11_11( 1, jpkm1 ) 
     199            DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    200200               puu(ji,jj,jk,Kmm) = puu(ji,jj,jk,Kmm) + rn_atfp * ( puu(ji,jj,jk,Kbb) - 2._wp * puu(ji,jj,jk,Kmm) + puu(ji,jj,jk,Kaa) ) 
    201201               pvv(ji,jj,jk,Kmm) = pvv(ji,jj,jk,Kmm) + rn_atfp * ( pvv(ji,jj,jk,Kbb) - 2._wp * pvv(ji,jj,jk,Kmm) + pvv(ji,jj,jk,Kaa) ) 
     
    233233               CALL dom_vvl_interpol( pe3t(:,:,:,Kmm), pe3u(:,:,:,Kmm), 'U' ) 
    234234               CALL dom_vvl_interpol( pe3t(:,:,:,Kmm), pe3v(:,:,:,Kmm), 'V' ) 
    235                DO_3D_11_11( 1, jpkm1 ) 
     235               DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    236236                  puu(ji,jj,jk,Kmm) = puu(ji,jj,jk,Kmm) + rn_atfp * ( puu(ji,jj,jk,Kbb) - 2._wp * puu(ji,jj,jk,Kmm) + puu(ji,jj,jk,Kaa) ) 
    237237                  pvv(ji,jj,jk,Kmm) = pvv(ji,jj,jk,Kmm) + rn_atfp * ( pvv(ji,jj,jk,Kbb) - 2._wp * pvv(ji,jj,jk,Kmm) + pvv(ji,jj,jk,Kaa) ) 
     
    244244               CALL dom_vvl_interpol( pe3t(:,:,:,Kmm), ze3u_f, 'U' ) 
    245245               CALL dom_vvl_interpol( pe3t(:,:,:,Kmm), ze3v_f, 'V' ) 
    246                DO_3D_11_11( 1, jpkm1 ) 
     246               DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    247247                  zue3a = pe3u(ji,jj,jk,Kaa) * puu(ji,jj,jk,Kaa) 
    248248                  zve3a = pe3v(ji,jj,jk,Kaa) * pvv(ji,jj,jk,Kaa) 
  • NEMO/trunk/src/OCE/DYN/dynatf_qco.F90

    r13237 r13295  
    140140         IF( ln_linssh ) THEN             ! Fixed volume ! 
    141141            !                             ! =============! 
    142             DO_3D_11_11( 1, jpkm1 ) 
     142            DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    143143               puu(ji,jj,jk,Kmm) = puu(ji,jj,jk,Kmm) + rn_atfp * ( puu(ji,jj,jk,Kbb) - 2._wp * puu(ji,jj,jk,Kmm) + puu(ji,jj,jk,Kaa) ) 
    144144               pvv(ji,jj,jk,Kmm) = pvv(ji,jj,jk,Kmm) + rn_atfp * ( pvv(ji,jj,jk,Kbb) - 2._wp * pvv(ji,jj,jk,Kmm) + pvv(ji,jj,jk,Kaa) ) 
     
    150150            IF( ln_dynadv_vec ) THEN      ! Asselin filter applied on velocity 
    151151               ! Before filtered scale factor at (u/v)-points 
    152                DO_3D_11_11( 1, jpkm1 ) 
     152               DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    153153                  puu(ji,jj,jk,Kmm) = puu(ji,jj,jk,Kmm) + rn_atfp * ( puu(ji,jj,jk,Kbb) - 2._wp * puu(ji,jj,jk,Kmm) + puu(ji,jj,jk,Kaa) ) 
    154154                  pvv(ji,jj,jk,Kmm) = pvv(ji,jj,jk,Kmm) + rn_atfp * ( pvv(ji,jj,jk,Kbb) - 2._wp * pvv(ji,jj,jk,Kmm) + pvv(ji,jj,jk,Kaa) ) 
     
    157157            ELSE                          ! Asselin filter applied on thickness weighted velocity 
    158158               ! 
    159                DO_3D_11_11( 1, jpkm1 ) 
     159               DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    160160                  zue3a = ( 1._wp + r3u(ji,jj,Kaa) * umask(ji,jj,jk) ) * puu(ji,jj,jk,Kaa) 
    161161                  zve3a = ( 1._wp + r3v(ji,jj,Kaa) * vmask(ji,jj,jk) ) * pvv(ji,jj,jk,Kaa) 
  • NEMO/trunk/src/OCE/DYN/dynhpg.F90

    r13288 r13295  
    257257 
    258258      ! Surface value 
    259       DO_2D_00_00 
     259      DO_2D( 0, 0, 0, 0 ) 
    260260         zcoef1 = zcoef0 * e3w(ji,jj,1,Kmm) 
    261261         ! hydrostatic pressure gradient 
     
    269269      ! 
    270270      ! interior value (2=<jk=<jpkm1) 
    271       DO_3D_00_00( 2, jpkm1 ) 
     271      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    272272         zcoef1 = zcoef0 * e3w(ji,jj,jk,Kmm) 
    273273         ! hydrostatic pressure gradient 
     
    319319 
    320320      !  Surface value (also valid in partial step case) 
    321       DO_2D_00_00 
     321      DO_2D( 0, 0, 0, 0 ) 
    322322         zcoef1 = zcoef0 * e3w(ji,jj,1,Kmm) 
    323323         ! hydrostatic pressure gradient 
     
    330330 
    331331      ! interior value (2=<jk=<jpkm1) 
    332       DO_3D_00_00( 2, jpkm1 ) 
     332      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    333333         zcoef1 = zcoef0 * e3w(ji,jj,jk,Kmm) 
    334334         ! hydrostatic pressure gradient 
     
    346346 
    347347      ! partial steps correction at the last level  (use zgru & zgrv computed in zpshde.F90) 
    348       DO_2D_00_00 
     348      DO_2D( 0, 0, 0, 0 ) 
    349349         iku = mbku(ji,jj) 
    350350         ikv = mbkv(ji,jj) 
     
    411411      ! 
    412412      IF( ln_wd_il ) THEN 
    413         DO_2D_00_00 
     413        DO_2D( 0, 0, 0, 0 ) 
    414414          ll_tmp1 = MIN(  ssh(ji,jj,Kmm)               ,  ssh(ji+1,jj,Kmm) ) >                & 
    415415               &    MAX( -ht_0(ji,jj)               , -ht_0(ji+1,jj) ) .AND.            & 
     
    452452 
    453453      ! Surface value 
    454       DO_2D_00_00 
     454      DO_2D( 0, 0, 0, 0 ) 
    455455         ! hydrostatic pressure gradient along s-surfaces 
    456456         zhpi(ji,jj,1) =   & 
     
    481481 
    482482      ! interior value (2=<jk=<jpkm1) 
    483       DO_3D_00_00( 2, jpkm1 ) 
     483      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    484484         ! hydrostatic pressure gradient along s-surfaces 
    485485         zhpi(ji,jj,jk) = zhpi(ji,jj,jk-1) + zcoef0 * r1_e1u(ji,jj)   & 
     
    563563!===== Compute surface value =====================================================  
    564564!================================================================================== 
    565       DO_2D_00_00 
     565      DO_2D( 0, 0, 0, 0 ) 
    566566         ikt    = mikt(ji,jj) 
    567567         iktp1i = mikt(ji+1,jj) 
     
    592592!================================================================================== 
    593593      ! interior value (2=<jk=<jpkm1) 
    594       DO_3D_00_00( 2, jpkm1 ) 
     594      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    595595         ! hydrostatic pressure gradient along s-surfaces 
    596596         zhpi(ji,jj,jk) = zhpi(ji,jj,jk-1) + zcoef0 / e1u(ji,jj)   & 
     
    643643      IF( ln_wd_il ) THEN 
    644644         ALLOCATE( zcpx(jpi,jpj) , zcpy(jpi,jpj) ) 
    645         DO_2D_00_00 
     645        DO_2D( 0, 0, 0, 0 ) 
    646646          ll_tmp1 = MIN(  ssh(ji,jj,Kmm)              ,  ssh(ji+1,jj,Kmm) ) >                & 
    647647               &    MAX( -ht_0(ji,jj)              , -ht_0(ji+1,jj) ) .AND.            & 
     
    699699!!bug gm   Not a true bug, but... dzz=e3w  for dzx, dzy verify what it is really 
    700700 
    701       DO_3D_00_00( 2, jpkm1 ) 
     701      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    702702         drhoz(ji,jj,jk) = rhd    (ji  ,jj  ,jk) - rhd    (ji,jj,jk-1) 
    703703         dzz  (ji,jj,jk) = gde3w(ji  ,jj  ,jk) - gde3w(ji,jj,jk-1) 
     
    716716!!bug  gm  idem for drhox, drhoy et ji=jpi and jj=jpj 
    717717 
    718       DO_3D_00_00( 2, jpkm1 ) 
     718      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    719719         cffw = 2._wp * drhoz(ji  ,jj  ,jk) * drhoz(ji,jj,jk-1) 
    720720 
     
    784784!          true if gde3w(:,:,:) is really defined as the sum of the e3w scale factors as, it seems to me, it should be 
    785785 
    786       DO_2D_00_00 
     786      DO_2D( 0, 0, 0, 0 ) 
    787787         rho_k(ji,jj,1) = -grav * ( e3w(ji,jj,1,Kmm) - gde3w(ji,jj,1) )               & 
    788788            &                   * (  rhd(ji,jj,1)                                     & 
     
    795795!!bug gm    : optimisation: 1/10 and 1/12 the division should be done before the loop 
    796796 
    797       DO_3D_00_00( 2, jpkm1 ) 
     797      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    798798 
    799799         rho_k(ji,jj,jk) = zcoef0 * ( rhd    (ji,jj,jk) + rhd    (ji,jj,jk-1) )                                   & 
     
    830830      !  Surface value 
    831831      ! --------------- 
    832       DO_2D_00_00 
     832      DO_2D( 0, 0, 0, 0 ) 
    833833         zhpi(ji,jj,1) = ( rho_k(ji+1,jj  ,1) - rho_k(ji,jj,1) - rho_i(ji,jj,1) ) * r1_e1u(ji,jj) 
    834834         zhpj(ji,jj,1) = ( rho_k(ji  ,jj+1,1) - rho_k(ji,jj,1) - rho_j(ji,jj,1) ) * r1_e2v(ji,jj) 
     
    845845      !  interior value   (2=<jk=<jpkm1) 
    846846      ! ---------------- 
    847       DO_3D_00_00( 2, jpkm1 ) 
     847      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    848848         ! hydrostatic pressure gradient along s-surfaces 
    849849         zhpi(ji,jj,jk) = zhpi(ji,jj,jk-1)                                & 
     
    911911      IF( ln_wd_il ) THEN 
    912912         ALLOCATE( zcpx(jpi,jpj) , zcpy(jpi,jpj) ) 
    913          DO_2D_00_00 
     913         DO_2D( 0, 0, 0, 0 ) 
    914914          ll_tmp1 = MIN(  ssh(ji,jj,Kmm)              ,  ssh(ji+1,jj,Kmm) ) >                & 
    915915               &    MAX( -ht_0(ji,jj)              , -ht_0(ji+1,jj) ) .AND.            & 
     
    960960 
    961961      ! Preparing vertical density profile "zrhh(:,:,:)" for hybrid-sco coordinate 
    962       DO_2D_11_11 
     962      DO_2D( 1, 1, 1, 1 ) 
    963963       jk = mbkt(ji,jj) 
    964964       IF(     jk <=  1   ) THEN   ;   zrhh(ji,jj,    :   ) = 0._wp 
     
    973973 
    974974      ! Transfer the depth of "T(:,:,:)" to vertical coordinate "zdept(:,:,:)" 
    975       DO_2D_11_11 
     975      DO_2D( 1, 1, 1, 1 ) 
    976976         zdept(ji,jj,1) = 0.5_wp * e3w(ji,jj,1,Kmm) - ssh(ji,jj,Kmm) * znad 
    977977      END_2D 
    978978 
    979       DO_3D_11_11( 2, jpk ) 
     979      DO_3D( 1, 1, 1, 1, 2, jpk ) 
    980980         zdept(ji,jj,jk) = zdept(ji,jj,jk-1) + e3w(ji,jj,jk,Kmm) 
    981981      END_3D 
     
    990990 
    991991      ! Integrate the hydrostatic pressure "zhpi(:,:,:)" at "T(ji,jj,1)" 
    992       DO_2D_01_01 
     992      DO_2D( 0, 1, 0, 1 ) 
    993993       zrhdt1 = zrhh(ji,jj,1) - interp3( zdept(ji,jj,1), asp(ji,jj,1), bsp(ji,jj,1),  & 
    994994          &                                              csp(ji,jj,1), dsp(ji,jj,1) ) * 0.25_wp * e3w(ji,jj,1,Kmm) 
     
    999999 
    10001000      ! Calculate the pressure "zhpi(:,:,:)" at "T(ji,jj,2:jpkm1)" 
    1001       DO_3D_01_01( 2, jpkm1 ) 
     1001      DO_3D( 0, 1, 0, 1, 2, jpkm1 ) 
    10021002      zhpi(ji,jj,jk) = zhpi(ji,jj,jk-1) +                                  & 
    10031003         &             integ_spline( zdept(ji,jj,jk-1), zdept(ji,jj,jk),   & 
     
    10091009 
    10101010      ! Prepare zsshu_n and zsshv_n 
    1011       DO_2D_00_00 
     1011      DO_2D( 0, 0, 0, 0 ) 
    10121012!!gm BUG ?    if it is ssh at u- & v-point then it should be: 
    10131013!          zsshu_n(ji,jj) = (e1e2t(ji,jj) * ssh(ji,jj,Kmm) + e1e2t(ji+1,jj) * ssh(ji+1,jj,Kmm)) * & 
     
    10241024      CALL lbc_lnk_multi ('dynhpg', zsshu_n, 'U', 1.0_wp, zsshv_n, 'V', 1.0_wp ) 
    10251025 
    1026       DO_2D_00_00 
     1026      DO_2D( 0, 0, 0, 0 ) 
    10271027       zu(ji,jj,1) = - ( e3u(ji,jj,1,Kmm) - zsshu_n(ji,jj) * znad)  
    10281028       zv(ji,jj,1) = - ( e3v(ji,jj,1,Kmm) - zsshv_n(ji,jj) * znad) 
    10291029      END_2D 
    10301030 
    1031       DO_3D_00_00( 2, jpkm1 ) 
     1031      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    10321032      zu(ji,jj,jk) = zu(ji,jj,jk-1) - e3u(ji,jj,jk,Kmm) 
    10331033      zv(ji,jj,jk) = zv(ji,jj,jk-1) - e3v(ji,jj,jk,Kmm) 
    10341034      END_3D 
    10351035 
    1036       DO_3D_00_00( 1, jpkm1 ) 
     1036      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    10371037      zu(ji,jj,jk) = zu(ji,jj,jk) + 0.5_wp * e3u(ji,jj,jk,Kmm) 
    10381038      zv(ji,jj,jk) = zv(ji,jj,jk) + 0.5_wp * e3v(ji,jj,jk,Kmm) 
    10391039      END_3D 
    10401040 
    1041       DO_3D_00_00( 1, jpkm1 ) 
     1041      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    10421042      zu(ji,jj,jk) = MIN(  zu(ji,jj,jk) , MAX( -zdept(ji,jj,jk) , -zdept(ji+1,jj,jk) )  ) 
    10431043      zu(ji,jj,jk) = MAX(  zu(ji,jj,jk) , MIN( -zdept(ji,jj,jk) , -zdept(ji+1,jj,jk) )  ) 
     
    10471047 
    10481048 
    1049       DO_3D_00_00( 1, jpkm1 ) 
     1049      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    10501050      zpwes = 0._wp; zpwed = 0._wp 
    10511051      zpnss = 0._wp; zpnsd = 0._wp 
  • NEMO/trunk/src/OCE/DYN/dynkeg.F90

    r13226 r13295  
    101101      ! 
    102102      CASE ( nkeg_C2 )                          !--  Standard scheme  --! 
    103          DO_3D_01_01( 1, jpkm1 ) 
     103         DO_3D( 0, 1, 0, 1, 1, jpkm1 ) 
    104104            zu =    puu(ji-1,jj  ,jk,Kmm) * puu(ji-1,jj  ,jk,Kmm)   & 
    105105               &  + puu(ji  ,jj  ,jk,Kmm) * puu(ji  ,jj  ,jk,Kmm) 
     
    109109         END_3D 
    110110      CASE ( nkeg_HW )                          !--  Hollingsworth scheme  --! 
    111          DO_3D_00_00( 1, jpkm1 ) 
     111         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    112112            zu = 8._wp * ( puu(ji-1,jj  ,jk,Kmm) * puu(ji-1,jj  ,jk,Kmm)    & 
    113113               &         + puu(ji  ,jj  ,jk,Kmm) * puu(ji  ,jj  ,jk,Kmm) )  & 
     
    125125      END SELECT  
    126126      ! 
    127       DO_3D_00_00( 1, jpkm1 ) 
     127      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    128128         puu(ji,jj,jk,Krhs) = puu(ji,jj,jk,Krhs) - ( zhke(ji+1,jj  ,jk) - zhke(ji,jj,jk) ) / e1u(ji,jj) 
    129129         pvv(ji,jj,jk,Krhs) = pvv(ji,jj,jk,Krhs) - ( zhke(ji  ,jj+1,jk) - zhke(ji,jj,jk) ) / e2v(ji,jj) 
  • NEMO/trunk/src/OCE/DYN/dynldf_iso.F90

    r13237 r13295  
    128128      IF( ln_dynldf_hor .AND. ln_traldf_iso ) THEN 
    129129         ! 
    130          DO_3D_00_00( 1, jpk ) 
     130         DO_3D( 0, 0, 0, 0, 1, jpk ) 
    131131            uslp (ji,jj,jk) = - ( gdept(ji+1,jj,jk,Kbb) - gdept(ji ,jj ,jk,Kbb) ) * r1_e1u(ji,jj) * umask(ji,jj,jk) 
    132132            vslp (ji,jj,jk) = - ( gdept(ji,jj+1,jk,Kbb) - gdept(ji ,jj ,jk,Kbb) ) * r1_e2v(ji,jj) * vmask(ji,jj,jk) 
     
    168168 
    169169         IF( ln_zps ) THEN      ! z-coordinate - partial steps : min(e3u) 
    170             DO_2D_00_01 
     170            DO_2D( 0, 0, 0, 1 ) 
    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_00_01 
     185            DO_2D( 0, 0, 0, 1 ) 
    186186               zabe1 = ( ahmt(ji,jj,jk)+rn_ahm_b )   & 
    187187                  &     * e2t(ji,jj) * e3t(ji,jj,jk,Kmm) * r1_e1t(ji,jj) 
     
    199199 
    200200         ! j-flux at f-point 
    201          DO_2D_10_10 
     201         DO_2D( 1, 0, 1, 0 ) 
    202202            zabe2 = ( ahmf(ji,jj,jk) + rn_ahm_b )   & 
    203203               &     * e1f(ji,jj) * e3f(ji,jj,jk) * r1_e2f(ji,jj) 
     
    219219         ! i-flux at f-point              |   t   | 
    220220 
    221          DO_2D_00_10 
     221         DO_2D( 0, 0, 1, 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_01_10 
     237            DO_2D( 0, 1, 1, 0 ) 
    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_01_10 
     252            DO_2D( 0, 1, 1, 0 ) 
    253253               zabe2 = ( ahmt(ji,jj,jk)+rn_ahm_b )   & 
    254254                  &     * e1t(ji,jj) * e3t(ji,jj,jk,Kmm) * r1_e2t(ji,jj) 
     
    268268         ! Second derivative (divergence) and add to the general trend 
    269269         ! ----------------------------------------------------------- 
    270          DO_2D_00_00 
     270         DO_2D( 0, 0, 0, 0 ) 
    271271            puu(ji,jj,jk,Krhs) = puu(ji,jj,jk,Krhs) + (  ziut(ji+1,jj) - ziut(ji,jj  )    & 
    272272               &                           + zjuf(ji  ,jj) - zjuf(ji,jj-1)  ) * r1_e1e2u(ji,jj)   & 
  • NEMO/trunk/src/OCE/DYN/dynldf_lap_blp.F90

    r13237 r13295  
    7373      DO jk = 1, jpkm1                                 ! Horizontal slab 
    7474         !                                             ! =============== 
    75          DO_2D_01_01 
     75         DO_2D( 0, 1, 0, 1 ) 
    7676            !                                      ! ahm * e3 * curl  (computed from 1 to jpim1/jpjm1) 
    7777            zcur(ji-1,jj-1) = ahmf(ji-1,jj-1,jk) * e3f(ji-1,jj-1,jk) * r1_e1e2f(ji-1,jj-1)       &   ! ahmf already * by fmask 
     
    8484         END_2D 
    8585         ! 
    86          DO_2D_00_00 
     86         DO_2D( 0, 0, 0, 0 ) 
    8787            pu_rhs(ji,jj,jk) = pu_rhs(ji,jj,jk) + zsign * umask(ji,jj,jk) * (    &    ! * by umask is mandatory for dyn_ldf_blp use 
    8888               &              - ( zcur(ji  ,jj) - zcur(ji,jj-1) ) * r1_e2u(ji,jj) / e3u(ji,jj,jk,Kmm)   & 
  • NEMO/trunk/src/OCE/DYN/dynspg.F90

    r12489 r13295  
    9595         .OR.  ln_ice_embd ) THEN                                            ! embedded sea-ice 
    9696         ! 
    97          DO_2D_00_00 
     97         DO_2D( 0, 0, 0, 0 ) 
    9898            spgu(ji,jj) = 0._wp 
    9999            spgv(ji,jj) = 0._wp 
     
    102102         IF( ln_apr_dyn .AND. .NOT.ln_dynspg_ts ) THEN   !==  Atmospheric pressure gradient (added later in time-split case) ==! 
    103103            zg_2 = grav * 0.5 
    104             DO_2D_00_00 
     104            DO_2D( 0, 0, 0, 0 ) 
    105105               spgu(ji,jj) = spgu(ji,jj) + zg_2 * (  ssh_ib (ji+1,jj) - ssh_ib (ji,jj)    & 
    106106                  &                                + ssh_ibb(ji+1,jj) - ssh_ibb(ji,jj)  ) * r1_e1u(ji,jj) 
     
    117117            CALL upd_tide(zt0step, Kmm) 
    118118            ! 
    119             DO_2D_00_00 
     119            DO_2D( 0, 0, 0, 0 ) 
    120120               spgu(ji,jj) = spgu(ji,jj) + grav * ( pot_astro(ji+1,jj) - pot_astro(ji,jj) ) * r1_e1u(ji,jj) 
    121121               spgv(ji,jj) = spgv(ji,jj) + grav * ( pot_astro(ji,jj+1) - pot_astro(ji,jj) ) * r1_e2v(ji,jj) 
     
    124124            IF (ln_scal_load) THEN 
    125125               zld = rn_scal_load * grav 
    126                DO_2D_00_00 
     126               DO_2D( 0, 0, 0, 0 ) 
    127127                  spgu(ji,jj) = spgu(ji,jj) + zld * ( pssh(ji+1,jj,Kmm) - pssh(ji,jj,Kmm) ) * r1_e1u(ji,jj) 
    128128                  spgv(ji,jj) = spgv(ji,jj) + zld * ( pssh(ji,jj+1,Kmm) - pssh(ji,jj,Kmm) ) * r1_e2v(ji,jj) 
     
    136136            zgrho0r     = - grav * r1_rho0 
    137137            zpice(:,:) = (  zintp * snwice_mass(:,:) + ( 1.- zintp ) * snwice_mass_b(:,:)  ) * zgrho0r 
    138             DO_2D_00_00 
     138            DO_2D( 0, 0, 0, 0 ) 
    139139               spgu(ji,jj) = spgu(ji,jj) + ( zpice(ji+1,jj) - zpice(ji,jj) ) * r1_e1u(ji,jj) 
    140140               spgv(ji,jj) = spgv(ji,jj) + ( zpice(ji,jj+1) - zpice(ji,jj) ) * r1_e2v(ji,jj) 
     
    143143         ENDIF 
    144144         ! 
    145          DO_3D_00_00( 1, jpkm1 ) 
     145         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    146146            puu(ji,jj,jk,Krhs) = puu(ji,jj,jk,Krhs) + spgu(ji,jj) 
    147147            pvv(ji,jj,jk,Krhs) = pvv(ji,jj,jk,Krhs) + spgv(ji,jj) 
  • NEMO/trunk/src/OCE/DYN/dynspg_exp.F90

    r12489 r13295  
    7474      IF( ln_linssh ) THEN          !* linear free surface : add the surface pressure gradient trend 
    7575         ! 
    76          DO_2D_00_00 
     76         DO_2D( 0, 0, 0, 0 ) 
    7777            spgu(ji,jj) = - grav * ( ssh(ji+1,jj,Kmm) - ssh(ji,jj,Kmm) ) * r1_e1u(ji,jj) 
    7878            spgv(ji,jj) = - grav * ( ssh(ji,jj+1,Kmm) - ssh(ji,jj,Kmm) ) * r1_e2v(ji,jj) 
    7979         END_2D 
    8080         ! 
    81          DO_3D_00_00( 1, jpkm1 ) 
     81         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    8282            puu(ji,jj,jk,Krhs) = puu(ji,jj,jk,Krhs) + spgu(ji,jj) 
    8383            pvv(ji,jj,jk,Krhs) = pvv(ji,jj,jk,Krhs) + spgv(ji,jj) 
  • NEMO/trunk/src/OCE/DYN/dynspg_ts.F90

    r13289 r13295  
    264264         IF( ln_wd_il ) THEN                       ! W/D : limiter applied to spgspg 
    265265            CALL wad_spg( pssh(:,:,Kmm), zcpx, zcpy )          ! Calculating W/D gravity filters, zcpx and zcpy 
    266             DO_2D_00_00 
     266            DO_2D( 0, 0, 0, 0 ) 
    267267               zu_trd(ji,jj) = zu_trd(ji,jj) - grav * ( pssh(ji+1,jj  ,Kmm) - pssh(ji  ,jj ,Kmm) )   & 
    268268                  &                          * r1_e1u(ji,jj) * zcpx(ji,jj)  * wdrampu(ji,jj)  !jth 
     
    271271            END_2D 
    272272         ELSE                                      ! now suface pressure gradient 
    273             DO_2D_00_00 
     273            DO_2D( 0, 0, 0, 0 ) 
    274274               zu_trd(ji,jj) = zu_trd(ji,jj) - grav * (  pssh(ji+1,jj  ,Kmm) - pssh(ji  ,jj  ,Kmm)  ) * r1_e1u(ji,jj) 
    275275               zv_trd(ji,jj) = zv_trd(ji,jj) - grav * (  pssh(ji  ,jj+1,Kmm) - pssh(ji  ,jj  ,Kmm)  ) * r1_e2v(ji,jj)  
     
    279279      ENDIF 
    280280      ! 
    281       DO_2D_00_00 
     281      DO_2D( 0, 0, 0, 0 ) 
    282282          zu_frc(ji,jj) = zu_frc(ji,jj) - zu_trd(ji,jj) * ssumask(ji,jj) 
    283283          zv_frc(ji,jj) = zv_frc(ji,jj) - zv_trd(ji,jj) * ssvmask(ji,jj) 
     
    291291      IF( ln_apr_dyn ) THEN 
    292292         IF( ln_bt_fw ) THEN                          ! FORWARD integration: use kt+1/2 pressure (NOW+1/2) 
    293             DO_2D_00_00 
     293            DO_2D( 0, 0, 0, 0 ) 
    294294               zu_frc(ji,jj) = zu_frc(ji,jj) + grav * (  ssh_ib (ji+1,jj  ) - ssh_ib (ji,jj) ) * r1_e1u(ji,jj) 
    295295               zv_frc(ji,jj) = zv_frc(ji,jj) + grav * (  ssh_ib (ji  ,jj+1) - ssh_ib (ji,jj) ) * r1_e2v(ji,jj) 
     
    297297         ELSE                                         ! CENTRED integration: use kt-1/2 + kt+1/2 pressure (NOW) 
    298298            zztmp = grav * r1_2 
    299             DO_2D_00_00 
     299            DO_2D( 0, 0, 0, 0 ) 
    300300               zu_frc(ji,jj) = zu_frc(ji,jj) + zztmp * (  ssh_ib (ji+1,jj  ) - ssh_ib (ji,jj)  & 
    301301                    &                                   + ssh_ibb(ji+1,jj  ) - ssh_ibb(ji,jj)  ) * r1_e1u(ji,jj) 
     
    309309      !                                   !  ----------------------------------  ! 
    310310      IF( ln_bt_fw ) THEN                        ! Add wind forcing 
    311          DO_2D_00_00 
     311         DO_2D( 0, 0, 0, 0 ) 
    312312            zu_frc(ji,jj) =  zu_frc(ji,jj) + r1_rho0 * utau(ji,jj) * r1_hu(ji,jj,Kmm) 
    313313            zv_frc(ji,jj) =  zv_frc(ji,jj) + r1_rho0 * vtau(ji,jj) * r1_hv(ji,jj,Kmm) 
     
    315315      ELSE 
    316316         zztmp = r1_rho0 * r1_2 
    317          DO_2D_00_00 
     317         DO_2D( 0, 0, 0, 0 ) 
    318318            zu_frc(ji,jj) =  zu_frc(ji,jj) + zztmp * ( utau_b(ji,jj) + utau(ji,jj) ) * r1_hu(ji,jj,Kmm) 
    319319            zv_frc(ji,jj) =  zv_frc(ji,jj) + zztmp * ( vtau_b(ji,jj) + vtau(ji,jj) ) * r1_hv(ji,jj,Kmm) 
     
    475475            ! 
    476476            !                          ! ocean u- and v-depth at mid-step   (separate DO-loops remove the need of a lbc_lnk) 
    477             DO_2D_11_10 
     477            DO_2D( 1, 1, 1, 0 ) 
    478478               zhup2_e(ji,jj) = hu_0(ji,jj) + r1_2 * r1_e1e2u(ji,jj)                        & 
    479479                    &                              * (  e1e2t(ji  ,jj) * zsshp2_e(ji  ,jj)  & 
    480480                    &                                 + e1e2t(ji+1,jj) * zsshp2_e(ji+1,jj)  ) * ssumask(ji,jj) 
    481481            END_2D 
    482             DO_2D_10_11 
     482            DO_2D( 1, 0, 1, 1 ) 
    483483               zhvp2_e(ji,jj) = hv_0(ji,jj) + r1_2 * r1_e1e2v(ji,jj)                        & 
    484484                    &                              * (  e1e2t(ji,jj  ) * zsshp2_e(ji,jj  )  & 
     
    515515         !--        ssh    =  ssh   - delta_t' * [ frc + div( flux      ) ]      --! 
    516516         !-------------------------------------------------------------------------! 
    517          DO_2D_00_00 
     517         DO_2D( 0, 0, 0, 0 ) 
    518518            zhdiv = (   zhU(ji,jj) - zhU(ji-1,jj) + zhV(ji,jj) - zhV(ji,jj-1)   ) * r1_e1e2t(ji,jj) 
    519519            ssha_e(ji,jj) = (  sshn_e(ji,jj) - rDt_e * ( zssh_frc(ji,jj) + zhdiv )  ) * ssmask(ji,jj) 
     
    541541         ! Sea Surface Height at u-,v-points (vvl case only) 
    542542         IF( .NOT.ln_linssh ) THEN                                 
    543             DO_2D_00_00 
     543            DO_2D( 0, 0, 0, 0 ) 
    544544               zsshu_a(ji,jj) = r1_2 * ssumask(ji,jj) * r1_e1e2u(ji,jj)    & 
    545545                  &              * ( e1e2t(ji  ,jj  )  * ssha_e(ji  ,jj  ) & 
     
    561561         !                             ! Surface pressure gradient 
    562562         zldg = ( 1._wp - rn_scal_load ) * grav    ! local factor 
    563          DO_2D_00_00 
     563         DO_2D( 0, 0, 0, 0 ) 
    564564            zu_spg(ji,jj) = - zldg * ( zsshp2_e(ji+1,jj) - zsshp2_e(ji,jj) ) * r1_e1u(ji,jj) 
    565565            zv_spg(ji,jj) = - zldg * ( zsshp2_e(ji,jj+1) - zsshp2_e(ji,jj) ) * r1_e2v(ji,jj) 
     
    579579         ! Add tidal astronomical forcing if defined 
    580580         IF ( ln_tide .AND. ln_tide_pot ) THEN 
    581             DO_2D_00_00 
     581            DO_2D( 0, 0, 0, 0 ) 
    582582               zu_trd(ji,jj) = zu_trd(ji,jj) + grav * ( pot_astro(ji+1,jj) - pot_astro(ji,jj) ) * r1_e1u(ji,jj) 
    583583               zv_trd(ji,jj) = zv_trd(ji,jj) + grav * ( pot_astro(ji,jj+1) - pot_astro(ji,jj) ) * r1_e2v(ji,jj) 
     
    588588!jth do implicitly instead 
    589589         IF ( .NOT. ll_wd ) THEN ! Revert to explicit for bit comparison tests in non wad runs 
    590             DO_2D_00_00 
     590            DO_2D( 0, 0, 0, 0 ) 
    591591               zu_trd(ji,jj) = zu_trd(ji,jj) + zCdU_u(ji,jj) * un_e(ji,jj) * hur_e(ji,jj) 
    592592               zv_trd(ji,jj) = zv_trd(ji,jj) + zCdU_v(ji,jj) * vn_e(ji,jj) * hvr_e(ji,jj) 
     
    606606         !------------------------------------------------------------------------------------------------------------------------! 
    607607         IF( ln_dynadv_vec .OR. ln_linssh ) THEN      !* Vector form 
    608             DO_2D_00_00 
     608            DO_2D( 0, 0, 0, 0 ) 
    609609               ua_e(ji,jj) = (                                 un_e(ji,jj)   &  
    610610                         &     + rDt_e * (                   zu_spg(ji,jj)   & 
     
    621621            ! 
    622622         ELSE                           !* Flux form 
    623             DO_2D_00_00 
     623            DO_2D( 0, 0, 0, 0 ) 
    624624               !                    ! hu_e, hv_e hold depth at jn,  zhup2_e, zhvp2_e hold extrapolated depth at jn+1/2 
    625625               !                    ! backward interpolated depth used in spg terms at jn+1/2 
     
    645645!jth implicit bottom friction: 
    646646         IF ( ll_wd ) THEN ! revert to explicit for bit comparison tests in non wad runs 
    647             DO_2D_00_00 
     647            DO_2D( 0, 0, 0, 0 ) 
    648648                  ua_e(ji,jj) =  ua_e(ji,jj) /(1.0 -   rDt_e * zCdU_u(ji,jj) * hur_e(ji,jj)) 
    649649                  va_e(ji,jj) =  va_e(ji,jj) /(1.0 -   rDt_e * zCdU_v(ji,jj) * hvr_e(ji,jj)) 
     
    712712      IF (ln_bt_fw) THEN 
    713713         IF( .NOT.( kt == nit000 .AND. l_1st_euler ) ) THEN 
    714             DO_2D_11_11 
     714            DO_2D( 1, 1, 1, 1 ) 
    715715               zun_save = un_adv(ji,jj) 
    716716               zvn_save = vn_adv(ji,jj) 
     
    743743      ELSE 
    744744         ! At this stage, pssh(:,:,:,Krhs) has been corrected: compute new depths at velocity points 
    745          DO_2D_10_10 
     745         DO_2D( 1, 0, 1, 0 ) 
    746746            zsshu_a(ji,jj) = r1_2 * ssumask(ji,jj)  * r1_e1e2u(ji,jj) & 
    747747               &              * ( e1e2t(ji  ,jj) * pssh(ji  ,jj,Kaa)      & 
     
    975975      ! Max courant number for ext. grav. waves 
    976976      ! 
    977       DO_2D_00_00 
     977      DO_2D( 0, 0, 0, 0 ) 
    978978         zxr2 = r1_e1t(ji,jj) * r1_e1t(ji,jj) 
    979979         zyr2 = r1_e2t(ji,jj) * r1_e2t(ji,jj) 
     
    11001100         SELECT CASE( nn_een_e3f )              !* ff_f/e3 at F-point 
    11011101         CASE ( 0 )                                   ! original formulation  (masked averaging of e3t divided by 4) 
    1102             DO_2D_10_10 
     1102            DO_2D( 1, 0, 1, 0 ) 
    11031103               zwz(ji,jj) =   ( ht(ji  ,jj+1) + ht(ji+1,jj+1) +                    & 
    11041104                    &           ht(ji  ,jj  ) + ht(ji+1,jj  )   ) * 0.25_wp   
     
    11061106            END_2D 
    11071107         CASE ( 1 )                                   ! new formulation  (masked averaging of e3t divided by the sum of mask) 
    1108             DO_2D_10_10 
     1108            DO_2D( 1, 0, 1, 0 ) 
    11091109               zwz(ji,jj) =             (  ht  (ji  ,jj+1) + ht  (ji+1,jj+1)      & 
    11101110                    &                    + ht  (ji  ,jj  ) + ht  (ji+1,jj  )  )   & 
     
    11171117         ! 
    11181118         ftne(1,:) = 0._wp ; ftnw(1,:) = 0._wp ; ftse(1,:) = 0._wp ; ftsw(1,:) = 0._wp 
    1119          DO_2D_01_01 
     1119         DO_2D( 0, 1, 0, 1 ) 
    11201120            ftne(ji,jj) = zwz(ji-1,jj  ) + zwz(ji  ,jj  ) + zwz(ji  ,jj-1) 
    11211121            ftnw(ji,jj) = zwz(ji-1,jj-1) + zwz(ji-1,jj  ) + zwz(ji  ,jj  ) 
     
    11261126      CASE( np_EET )                  != EEN scheme using e3t energy conserving scheme 
    11271127         ftne(1,:) = 0._wp ; ftnw(1,:) = 0._wp ; ftse(1,:) = 0._wp ; ftsw(1,:) = 0._wp 
    1128          DO_2D_01_01 
     1128         DO_2D( 0, 1, 0, 1 ) 
    11291129            z1_ht = ssmask(ji,jj) / ( ht(ji,jj) + 1._wp - ssmask(ji,jj) ) 
    11301130            ftne(ji,jj) = ( ff_f(ji-1,jj  ) + ff_f(ji  ,jj  ) + ff_f(ji  ,jj-1) ) * z1_ht 
     
    11591159            ! 
    11601160            !zhf(:,:) = hbatf(:,:) 
    1161             DO_2D_10_10 
     1161            DO_2D( 1, 0, 1, 0 ) 
    11621162               zhf(ji,jj) =    (   ht_0  (ji,jj  ) + ht_0  (ji+1,jj  )          & 
    11631163                    &            + ht_0  (ji,jj+1) + ht_0  (ji+1,jj+1)   )      & 
     
    11781178         CALL lbc_lnk( 'dynspg_ts', zhf, 'F', 1._wp ) 
    11791179         ! JC: TBC. hf should be greater than 0  
    1180          DO_2D_11_11 
     1180         DO_2D( 1, 1, 1, 1 ) 
    11811181            IF( zhf(ji,jj) /= 0._wp )   zwz(ji,jj) = 1._wp / zhf(ji,jj) 
    11821182         END_2D 
     
    12011201      SELECT CASE( nvor_scheme ) 
    12021202      CASE( np_ENT )                ! enstrophy conserving scheme (f-point) 
    1203          DO_2D_00_00 
     1203         DO_2D( 0, 0, 0, 0 ) 
    12041204            z1_hu = ssumask(ji,jj) / ( phu(ji,jj) + 1._wp - ssumask(ji,jj) ) 
    12051205            z1_hv = ssvmask(ji,jj) / ( phv(ji,jj) + 1._wp - ssvmask(ji,jj) ) 
     
    12141214         !          
    12151215      CASE( np_ENE , np_MIX )        ! energy conserving scheme (t-point) ENE or MIX 
    1216          DO_2D_00_00 
     1216         DO_2D( 0, 0, 0, 0 ) 
    12171217            zy1 = ( zhV(ji,jj-1) + zhV(ji+1,jj-1) ) * r1_e1u(ji,jj) 
    12181218            zy2 = ( zhV(ji,jj  ) + zhV(ji+1,jj  ) ) * r1_e1u(ji,jj) 
     
    12251225         ! 
    12261226      CASE( np_ENS )                ! enstrophy conserving scheme (f-point) 
    1227          DO_2D_00_00 
     1227         DO_2D( 0, 0, 0, 0 ) 
    12281228            zy1 =   r1_8 * ( zhV(ji  ,jj-1) + zhV(ji+1,jj-1) & 
    12291229              &            + zhV(ji  ,jj  ) + zhV(ji+1,jj  ) ) * r1_e1u(ji,jj) 
     
    12351235         ! 
    12361236      CASE( np_EET , np_EEN )      ! energy & enstrophy scheme (using e3t or e3f)          
    1237          DO_2D_00_00 
     1237         DO_2D( 0, 0, 0, 0 ) 
    12381238            zu_trd(ji,jj) = + r1_12 * r1_e1u(ji,jj) * (  ftne(ji,jj  ) * zhV(ji  ,jj  ) & 
    12391239             &                                         + ftnw(ji+1,jj) * zhV(ji+1,jj  ) & 
     
    12691269      ! 
    12701270      IF( ln_wd_dl_rmp ) THEN      
    1271          DO_2D_11_11 
     1271         DO_2D( 1, 1, 1, 1 ) 
    12721272            IF    ( pssh(ji,jj) + ht_0(ji,jj) >  2._wp * rn_wdmin1 ) THEN  
    12731273               !           IF    ( pssh(ji,jj) + ht_0(ji,jj) >          rn_wdmin2 ) THEN  
     
    12801280         END_2D 
    12811281      ELSE   
    1282          DO_2D_11_11 
     1282         DO_2D( 1, 1, 1, 1 ) 
    12831283            IF ( pssh(ji,jj) + ht_0(ji,jj) >  rn_wdmin1 ) THEN   ;   ptmsk(ji,jj) = 1._wp 
    12841284            ELSE                                                 ;   ptmsk(ji,jj) = 0._wp 
     
    13081308      !!---------------------------------------------------------------------- 
    13091309      ! 
    1310       DO_2D_11_10 
     1310      DO_2D( 1, 1, 1, 0 ) 
    13111311         IF ( phU(ji,jj) > 0._wp ) THEN   ;   pUmsk(ji,jj) = pTmsk(ji  ,jj)  
    13121312         ELSE                             ;   pUmsk(ji,jj) = pTmsk(ji+1,jj)   
     
    13161316      END_2D 
    13171317      ! 
    1318       DO_2D_10_11 
     1318      DO_2D( 1, 0, 1, 1 ) 
    13191319         IF ( phV(ji,jj) > 0._wp ) THEN   ;   pVmsk(ji,jj) = pTmsk(ji,jj  ) 
    13201320         ELSE                             ;   pVmsk(ji,jj) = pTmsk(ji,jj+1)   
     
    13381338      REAL(wp), DIMENSION(jpi,jpj), INTENT(inout) :: zcpx, zcpy 
    13391339      !!---------------------------------------------------------------------- 
    1340       DO_2D_00_00 
     1340      DO_2D( 0, 0, 0, 0 ) 
    13411341         ll_tmp1 = MIN(  pshn(ji,jj)               ,  pshn(ji+1,jj) ) >                & 
    13421342              &      MAX( -ht_0(ji,jj)               , -ht_0(ji+1,jj) ) .AND.            & 
     
    14071407      IF( ln_isfcav ) THEN          ! top+bottom friction (ocean cavities) 
    14081408          
    1409          DO_2D_00_00 
     1409         DO_2D( 0, 0, 0, 0 ) 
    14101410            pCdU_u(ji,jj) = r1_2*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) + rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) 
    14111411            pCdU_v(ji,jj) = r1_2*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) + rCdU_top(ji,jj+1)+rCdU_top(ji,jj) ) 
    14121412         END_2D 
    14131413      ELSE                          ! bottom friction only 
    1414          DO_2D_00_00 
     1414         DO_2D( 0, 0, 0, 0 ) 
    14151415            pCdU_u(ji,jj) = r1_2*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) ) 
    14161416            pCdU_v(ji,jj) = r1_2*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) ) 
     
    14221422      IF( ln_bt_fw ) THEN                 ! FORWARD integration: use NOW bottom baroclinic velocities 
    14231423          
    1424          DO_2D_00_00 
     1424         DO_2D( 0, 0, 0, 0 ) 
    14251425            ikbu = mbku(ji,jj)        
    14261426            ikbv = mbkv(ji,jj)     
     
    14301430      ELSE                                ! CENTRED integration: use BEFORE bottom baroclinic velocities 
    14311431          
    1432          DO_2D_00_00 
     1432         DO_2D( 0, 0, 0, 0 ) 
    14331433            ikbu = mbku(ji,jj)        
    14341434            ikbv = mbkv(ji,jj)     
     
    14401440      IF( ln_wd_il ) THEN      ! W/D : use the "clipped" bottom friction   !!gm   explain WHY, please ! 
    14411441         zztmp = -1._wp / rDt_e 
    1442          DO_2D_00_00 
     1442         DO_2D( 0, 0, 0, 0 ) 
    14431443            pu_RHSi(ji,jj) = pu_RHSi(ji,jj) + zu_i(ji,jj) *  wdrampu(ji,jj) * MAX(                                 &  
    14441444                 &                              r1_hu(ji,jj,Kmm) * r1_2*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) ) , zztmp  ) 
     
    14481448      ELSE                    ! use "unclipped" drag (even if explicit friction is used in 3D calculation) 
    14491449          
    1450          DO_2D_00_00 
     1450         DO_2D( 0, 0, 0, 0 ) 
    14511451            pu_RHSi(ji,jj) = pu_RHSi(ji,jj) + r1_hu(ji,jj,Kmm) * r1_2*( rCdU_bot(ji+1,jj)+rCdU_bot(ji,jj) ) * zu_i(ji,jj) 
    14521452            pv_RHSi(ji,jj) = pv_RHSi(ji,jj) + r1_hv(ji,jj,Kmm) * r1_2*( rCdU_bot(ji,jj+1)+rCdU_bot(ji,jj) ) * zv_i(ji,jj) 
     
    14601460         IF( ln_bt_fw ) THEN                ! FORWARD integration: use NOW top baroclinic velocity 
    14611461             
    1462             DO_2D_00_00 
     1462            DO_2D( 0, 0, 0, 0 ) 
    14631463               iktu = miku(ji,jj) 
    14641464               iktv = mikv(ji,jj) 
     
    14681468         ELSE                                ! CENTRED integration: use BEFORE top baroclinic velocity 
    14691469             
    1470             DO_2D_00_00 
     1470            DO_2D( 0, 0, 0, 0 ) 
    14711471               iktu = miku(ji,jj) 
    14721472               iktv = mikv(ji,jj) 
     
    14781478         !                    ! use "unclipped" top drag (even if explicit friction is used in 3D calculation) 
    14791479          
    1480          DO_2D_00_00 
     1480         DO_2D( 0, 0, 0, 0 ) 
    14811481            pu_RHSi(ji,jj) = pu_RHSi(ji,jj) + r1_hu(ji,jj,Kmm) * r1_2*( rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) * zu_i(ji,jj) 
    14821482            pv_RHSi(ji,jj) = pv_RHSi(ji,jj) + r1_hv(ji,jj,Kmm) * r1_2*( rCdU_top(ji,jj+1)+rCdU_top(ji,jj) ) * zv_i(ji,jj) 
  • NEMO/trunk/src/OCE/DYN/dynvor.F90

    r13286 r13295  
    231231      CASE ( np_RVO )                           !* relative vorticity 
    232232         DO jk = 1, jpkm1                                 ! Horizontal slab 
    233             DO_2D_10_10 
     233            DO_2D( 1, 0, 1, 0 ) 
    234234               zwz(ji,jj,jk) = (  e2v(ji+1,jj) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk)  & 
    235235                  &             - e1u(ji,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
    236236            END_2D 
    237237            IF( ln_dynvor_msk ) THEN                     ! mask/unmask relative vorticity  
    238                DO_2D_10_10 
     238               DO_2D( 1, 0, 1, 0 ) 
    239239                  zwz(ji,jj,jk) = zwz(ji,jj,jk) * fmask(ji,jj,jk) 
    240240               END_2D 
     
    246246      CASE ( np_CRV )                           !* Coriolis + relative vorticity 
    247247         DO jk = 1, jpkm1                                 ! Horizontal slab 
    248             DO_2D_10_10 
     248            DO_2D( 1, 0, 1, 0 ) 
    249249               zwz(ji,jj,jk) = (   e2v(ji+1,jj) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk)   & 
    250250                  &              - e1u(ji,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)   ) * r1_e1e2f(ji,jj) 
    251251            END_2D 
    252252            IF( ln_dynvor_msk ) THEN                     ! mask/unmask relative vorticity  
    253                DO_2D_10_10 
     253               DO_2D( 1, 0, 1, 0 ) 
    254254                  zwz(ji,jj,jk) = zwz(ji,jj,jk) * fmask(ji,jj,jk) 
    255255               END_2D 
     
    269269            zwt(:,:) = ff_t(:,:) * e1e2t(:,:)*e3t(:,:,jk,Kmm) 
    270270         CASE ( np_RVO )                           !* relative vorticity 
    271             DO_2D_01_01 
     271            DO_2D( 0, 1, 0, 1 ) 
    272272               zwt(ji,jj) = r1_4 * (   zwz(ji-1,jj  ,jk) + zwz(ji,jj  ,jk)   & 
    273273                  &                  + zwz(ji-1,jj-1,jk) + zwz(ji,jj-1,jk) ) & 
     
    275275            END_2D 
    276276         CASE ( np_MET )                           !* metric term 
    277             DO_2D_01_01 
     277            DO_2D( 0, 1, 0, 1 ) 
    278278               zwt(ji,jj) = (   ( pv(ji,jj,jk) + pv(ji,jj-1,jk) ) * di_e2u_2(ji,jj)   & 
    279279                  &           - ( pu(ji,jj,jk) + pu(ji-1,jj,jk) ) * dj_e1v_2(ji,jj)   ) & 
     
    281281            END_2D 
    282282         CASE ( np_CRV )                           !* Coriolis + relative vorticity 
    283             DO_2D_01_01 
     283            DO_2D( 0, 1, 0, 1 ) 
    284284               zwt(ji,jj) = (  ff_t(ji,jj) + r1_4 * ( zwz(ji-1,jj  ,jk) + zwz(ji,jj  ,jk)    & 
    285285                  &                                 + zwz(ji-1,jj-1,jk) + zwz(ji,jj-1,jk) )  ) & 
     
    287287            END_2D 
    288288         CASE ( np_CME )                           !* Coriolis + metric 
    289             DO_2D_01_01 
     289            DO_2D( 0, 1, 0, 1 ) 
    290290               zwt(ji,jj) = (  ff_t(ji,jj) * e1e2t(ji,jj)                           & 
    291291                    &        + ( pv(ji,jj,jk) + pv(ji,jj-1,jk) ) * di_e2u_2(ji,jj)  & 
     
    298298         ! 
    299299         !                                   !==  compute and add the vorticity term trend  =! 
    300          DO_2D_00_00 
     300         DO_2D( 0, 0, 0, 0 ) 
    301301            pu_rhs(ji,jj,jk) = pu_rhs(ji,jj,jk) + r1_4 * r1_e1e2u(ji,jj) / e3u(ji,jj,jk,Kmm)                    & 
    302302               &                                * (  zwt(ji+1,jj) * ( pv(ji+1,jj,jk) + pv(ji+1,jj-1,jk) )   & 
     
    358358            zwz(:,:) = ff_f(:,:)  
    359359         CASE ( np_RVO )                           !* relative vorticity 
    360             DO_2D_10_10 
     360            DO_2D( 1, 0, 1, 0 ) 
    361361               zwz(ji,jj) = (  e2v(ji+1,jj  ) * pv(ji+1,jj  ,jk) - e2v(ji,jj) * pv(ji,jj,jk)    & 
    362362                  &          - e1u(ji  ,jj+1) * pu(ji  ,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
    363363            END_2D 
    364364         CASE ( np_MET )                           !* metric term 
    365             DO_2D_10_10 
     365            DO_2D( 1, 0, 1, 0 ) 
    366366               zwz(ji,jj) = ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    367367                  &       - ( pu(ji  ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
    368368            END_2D 
    369369         CASE ( np_CRV )                           !* Coriolis + relative vorticity 
    370             DO_2D_10_10 
     370            DO_2D( 1, 0, 1, 0 ) 
    371371               zwz(ji,jj) = ff_f(ji,jj) + (  e2v(ji+1,jj) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk)      & 
    372372                  &                        - e1u(ji,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
    373373            END_2D 
    374374         CASE ( np_CME )                           !* Coriolis + metric 
    375             DO_2D_10_10 
     375            DO_2D( 1, 0, 1, 0 ) 
    376376               zwz(ji,jj) = ff_f(ji,jj) + ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    377377                  &                     - ( pu(ji  ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
     
    382382         ! 
    383383         IF( ln_dynvor_msk ) THEN          !==  mask/unmask vorticity ==! 
    384             DO_2D_10_10 
     384            DO_2D( 1, 0, 1, 0 ) 
    385385               zwz(ji,jj) = zwz(ji,jj) * fmask(ji,jj,jk) 
    386386            END_2D 
     
    396396         ENDIF 
    397397         !                                   !==  compute and add the vorticity term trend  =! 
    398          DO_2D_00_00 
     398         DO_2D( 0, 0, 0, 0 ) 
    399399            zy1 = zwy(ji,jj-1) + zwy(ji+1,jj-1) 
    400400            zy2 = zwy(ji,jj  ) + zwy(ji+1,jj  ) 
     
    454454            zwz(:,:) = ff_f(:,:)  
    455455         CASE ( np_RVO )                           !* relative vorticity 
    456             DO_2D_10_10 
     456            DO_2D( 1, 0, 1, 0 ) 
    457457               zwz(ji,jj) = (  e2v(ji+1,jj  ) * pv(ji+1,jj  ,jk) - e2v(ji,jj) * pv(ji,jj,jk)    & 
    458458                  &          - e1u(ji  ,jj+1) * pu(ji  ,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
    459459            END_2D 
    460460         CASE ( np_MET )                           !* metric term 
    461             DO_2D_10_10 
     461            DO_2D( 1, 0, 1, 0 ) 
    462462               zwz(ji,jj) = ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    463463                  &       - ( pu(ji  ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
    464464            END_2D 
    465465         CASE ( np_CRV )                           !* Coriolis + relative vorticity 
    466             DO_2D_10_10 
     466            DO_2D( 1, 0, 1, 0 ) 
    467467               zwz(ji,jj) = ff_f(ji,jj) + (  e2v(ji+1,jj  ) * pv(ji+1,jj  ,jk) - e2v(ji,jj) * pv(ji,jj,jk)  & 
    468468                  &                        - e1u(ji  ,jj+1) * pu(ji  ,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
    469469            END_2D 
    470470         CASE ( np_CME )                           !* Coriolis + metric 
    471             DO_2D_10_10 
     471            DO_2D( 1, 0, 1, 0 ) 
    472472               zwz(ji,jj) = ff_f(ji,jj) + ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    473473                  &                     - ( pu(ji  ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
     
    478478         ! 
    479479         IF( ln_dynvor_msk ) THEN           !==  mask/unmask vorticity ==! 
    480             DO_2D_10_10 
     480            DO_2D( 1, 0, 1, 0 ) 
    481481               zwz(ji,jj) = zwz(ji,jj) * fmask(ji,jj,jk) 
    482482            END_2D 
     
    492492         ENDIF 
    493493         !                                   !==  compute and add the vorticity term trend  =! 
    494          DO_2D_00_00 
     494         DO_2D( 0, 0, 0, 0 ) 
    495495            zuav = r1_8 * r1_e1u(ji,jj) * (  zwy(ji  ,jj-1) + zwy(ji+1,jj-1)  & 
    496496               &                           + zwy(ji  ,jj  ) + zwy(ji+1,jj  )  ) 
     
    550550         SELECT CASE( nn_een_e3f )           ! == reciprocal of e3 at F-point 
    551551         CASE ( 0 )                                   ! original formulation  (masked averaging of e3t divided by 4) 
    552             DO_2D_10_10 
     552            DO_2D( 1, 0, 1, 0 ) 
    553553               ze3f = (  e3t(ji  ,jj+1,jk,Kmm)*tmask(ji  ,jj+1,jk)   & 
    554554                  &    + e3t(ji+1,jj+1,jk,Kmm)*tmask(ji+1,jj+1,jk)   & 
     
    560560            END_2D 
    561561         CASE ( 1 )                                   ! new formulation  (masked averaging of e3t divided by the sum of mask) 
    562             DO_2D_10_10 
     562            DO_2D( 1, 0, 1, 0 ) 
    563563               ze3f = (  e3t(ji  ,jj+1,jk,Kmm)*tmask(ji  ,jj+1,jk)   & 
    564564                  &    + e3t(ji+1,jj+1,jk,Kmm)*tmask(ji+1,jj+1,jk)   & 
     
    575575         SELECT CASE( kvor )                 !==  vorticity considered  ==! 
    576576         CASE ( np_COR )                           !* Coriolis (planetary vorticity) 
    577             DO_2D_10_10 
     577            DO_2D( 1, 0, 1, 0 ) 
    578578               zwz(ji,jj,jk) = ff_f(ji,jj) * z1_e3f(ji,jj) 
    579579            END_2D 
    580580         CASE ( np_RVO )                           !* relative vorticity 
    581             DO_2D_10_10 
     581            DO_2D( 1, 0, 1, 0 ) 
    582582               zwz(ji,jj,jk) = ( e2v(ji+1,jj  ) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk)  & 
    583583                  &            - e1u(ji  ,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) * r1_e1e2f(ji,jj)*z1_e3f(ji,jj) 
    584584            END_2D 
    585585         CASE ( np_MET )                           !* metric term 
    586             DO_2D_10_10 
     586            DO_2D( 1, 0, 1, 0 ) 
    587587               zwz(ji,jj,jk) = (   ( pv(ji+1,jj,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    588588                  &              - ( pu(ji,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj)   ) * z1_e3f(ji,jj) 
    589589            END_2D 
    590590         CASE ( np_CRV )                           !* Coriolis + relative vorticity 
    591             DO_2D_10_10 
     591            DO_2D( 1, 0, 1, 0 ) 
    592592               zwz(ji,jj,jk) = (  ff_f(ji,jj) + (  e2v(ji+1,jj  ) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk)      & 
    593593                  &                              - e1u(ji  ,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  )   & 
     
    595595            END_2D 
    596596         CASE ( np_CME )                           !* Coriolis + metric 
    597             DO_2D_10_10 
     597            DO_2D( 1, 0, 1, 0 ) 
    598598               zwz(ji,jj,jk) = (   ff_f(ji,jj) + ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    599599                  &                            - ( pu(ji  ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj)   ) * z1_e3f(ji,jj) 
     
    604604         ! 
    605605         IF( ln_dynvor_msk ) THEN          !==  mask/unmask vorticity ==! 
    606             DO_2D_10_10 
     606            DO_2D( 1, 0, 1, 0 ) 
    607607               zwz(ji,jj,jk) = zwz(ji,jj,jk) * fmask(ji,jj,jk) 
    608608            END_2D 
     
    635635            END DO 
    636636         END DO 
    637          DO_2D_00_00 
     637         DO_2D( 0, 0, 0, 0 ) 
    638638            zua = + r1_12 * r1_e1u(ji,jj) * (  ztne(ji,jj  ) * zwy(ji  ,jj  ) + ztnw(ji+1,jj) * zwy(ji+1,jj  )   & 
    639639               &                             + ztse(ji,jj  ) * zwy(ji  ,jj-1) + ztsw(ji+1,jj) * zwy(ji+1,jj-1) ) 
     
    695695         SELECT CASE( kvor )                 !==  vorticity considered  ==! 
    696696         CASE ( np_COR )                           !* Coriolis (planetary vorticity) 
    697             DO_2D_10_10 
     697            DO_2D( 1, 0, 1, 0 ) 
    698698               zwz(ji,jj,jk) = ff_f(ji,jj) 
    699699            END_2D 
    700700         CASE ( np_RVO )                           !* relative vorticity 
    701             DO_2D_10_10 
     701            DO_2D( 1, 0, 1, 0 ) 
    702702               zwz(ji,jj,jk) = (  e2v(ji+1,jj  ) * pv(ji+1,jj  ,jk) - e2v(ji,jj) * pv(ji,jj,jk)    & 
    703703                  &             - e1u(ji  ,jj+1) * pu(ji  ,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) & 
     
    705705            END_2D 
    706706         CASE ( np_MET )                           !* metric term 
    707             DO_2D_10_10 
     707            DO_2D( 1, 0, 1, 0 ) 
    708708               zwz(ji,jj,jk) = ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    709709                  &          - ( pu(ji  ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
    710710            END_2D 
    711711         CASE ( np_CRV )                           !* Coriolis + relative vorticity 
    712             DO_2D_10_10 
     712            DO_2D( 1, 0, 1, 0 ) 
    713713               zwz(ji,jj,jk) = (  ff_f(ji,jj) + (  e2v(ji+1,jj  ) * pv(ji+1,jj  ,jk) - e2v(ji,jj) * pv(ji,jj,jk)    & 
    714714                  &                              - e1u(ji  ,jj+1) * pu(ji  ,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) & 
     
    716716            END_2D 
    717717         CASE ( np_CME )                           !* Coriolis + metric 
    718             DO_2D_10_10 
     718            DO_2D( 1, 0, 1, 0 ) 
    719719               zwz(ji,jj,jk) = ff_f(ji,jj) + ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    720720                  &                        - ( pu(ji  ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
     
    725725         ! 
    726726         IF( ln_dynvor_msk ) THEN          !==  mask/unmask vorticity ==! 
    727             DO_2D_10_10 
     727            DO_2D( 1, 0, 1, 0 ) 
    728728               zwz(ji,jj,jk) = zwz(ji,jj,jk) * fmask(ji,jj,jk) 
    729729            END_2D 
     
    758758            END DO 
    759759         END DO 
    760          DO_2D_00_00 
     760         DO_2D( 0, 0, 0, 0 ) 
    761761            zua = + r1_12 * r1_e1u(ji,jj) * (  ztne(ji,jj  ) * zwy(ji  ,jj  ) + ztnw(ji+1,jj) * zwy(ji+1,jj  )   & 
    762762               &                             + ztse(ji,jj  ) * zwy(ji  ,jj-1) + ztsw(ji+1,jj) * zwy(ji+1,jj-1) ) 
     
    818818      IF(lwp) WRITE(numout,*) '      change fmask value in the angles (T)           ln_vorlat = ', ln_vorlat 
    819819      IF( ln_vorlat .AND. ( ln_dynvor_ene .OR. ln_dynvor_ens .OR. ln_dynvor_mix ) ) THEN 
    820          DO_3D_10_10( 1, jpk ) 
     820         DO_3D( 1, 0, 1, 0, 1, jpk ) 
    821821            IF(    tmask(ji,jj+1,jk) + tmask(ji+1,jj+1,jk)              & 
    822822               & + tmask(ji,jj  ,jk) + tmask(ji+1,jj  ,jk) == 3._wp )   fmask(ji,jj,jk) = 1._wp 
     
    857857         CASE( np_ENT )                      !* T-point metric term :   pre-compute di(e2u)/2 and dj(e1v)/2 
    858858            ALLOCATE( di_e2u_2(jpi,jpj), dj_e1v_2(jpi,jpj) ) 
    859             DO_2D_00_00 
     859            DO_2D( 0, 0, 0, 0 ) 
    860860               di_e2u_2(ji,jj) = ( e2u(ji,jj) - e2u(ji-1,jj  ) ) * 0.5_wp 
    861861               dj_e1v_2(ji,jj) = ( e1v(ji,jj) - e1v(ji  ,jj-1) ) * 0.5_wp 
     
    865865         CASE DEFAULT                        !* F-point metric term :   pre-compute di(e2u)/(2*e1e2f) and dj(e1v)/(2*e1e2f) 
    866866            ALLOCATE( di_e2v_2e1e2f(jpi,jpj), dj_e1u_2e1e2f(jpi,jpj) ) 
    867             DO_2D_10_10 
     867            DO_2D( 1, 0, 1, 0 ) 
    868868               di_e2v_2e1e2f(ji,jj) = ( e2v(ji+1,jj  ) - e2v(ji,jj) )  * 0.5 * r1_e1e2f(ji,jj) 
    869869               dj_e1u_2e1e2f(ji,jj) = ( e1u(ji  ,jj+1) - e1u(ji,jj) )  * 0.5 * r1_e1e2f(ji,jj) 
  • NEMO/trunk/src/OCE/DYN/dynzad.F90

    r13237 r13295  
    7878       
    7979      DO jk = 2, jpkm1              ! Vertical momentum advection at level w and u- and v- vertical 
    80          DO_2D_01_01 
     80         DO_2D( 0, 1, 0, 1 ) 
    8181            zww(ji,jj) = 0.25_wp * e1e2t(ji,jj) * ww(ji,jj,jk) 
    8282         END_2D 
    83          DO_2D_00_00 
     83         DO_2D( 0, 0, 0, 0 ) 
    8484            zwuw(ji,jj,jk) = ( zww(ji+1,jj  ) + zww(ji,jj) ) * ( puu(ji,jj,jk-1,Kmm) - puu(ji,jj,jk,Kmm) ) 
    8585            zwvw(ji,jj,jk) = ( zww(ji  ,jj+1) + zww(ji,jj) ) * ( pvv(ji,jj,jk-1,Kmm) - pvv(ji,jj,jk,Kmm) ) 
     
    8888      ! 
    8989      ! Surface and bottom advective fluxes set to zero 
    90       DO_2D_00_00 
     90      DO_2D( 0, 0, 0, 0 ) 
    9191         zwuw(ji,jj, 1 ) = 0._wp 
    9292         zwvw(ji,jj, 1 ) = 0._wp 
     
    9595      END_2D 
    9696      ! 
    97       DO_3D_00_00( 1, jpkm1 ) 
     97      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    9898         puu(ji,jj,jk,Krhs) = puu(ji,jj,jk,Krhs) - ( zwuw(ji,jj,jk) + zwuw(ji,jj,jk+1) ) * r1_e1e2u(ji,jj)   & 
    9999            &                                      / e3u(ji,jj,jk,Kmm) 
  • NEMO/trunk/src/OCE/DYN/dynzdf.F90

    r13286 r13295  
    107107      !                    ! time stepping except vertical diffusion 
    108108      IF( ln_dynadv_vec .OR. ln_linssh ) THEN   ! applied on velocity 
    109          DO_3D_00_00( 1, jpkm1 ) 
     109         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    110110            puu(ji,jj,jk,Kaa) = ( puu(ji,jj,jk,Kbb) + rDt * puu(ji,jj,jk,Krhs) ) * umask(ji,jj,jk) 
    111111            pvv(ji,jj,jk,Kaa) = ( pvv(ji,jj,jk,Kbb) + rDt * pvv(ji,jj,jk,Krhs) ) * vmask(ji,jj,jk) 
    112112         END_3D 
    113113      ELSE                                      ! applied on thickness weighted velocity 
    114          DO_3D_00_00( 1, jpkm1 ) 
     114         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    115115            puu(ji,jj,jk,Kaa) = (         e3u(ji,jj,jk,Kbb) * puu(ji,jj,jk,Kbb )  & 
    116116               &                  + rDt * e3u(ji,jj,jk,Kmm) * puu(ji,jj,jk,Krhs)  ) & 
     
    127127      !     G. Madec : in linear free surface, e3u(:,:,:,Kaa) = e3u(:,:,:,Kmm) = e3u_0, so systematic use of e3u(:,:,:,Kaa) 
    128128      IF( ln_drgimp .AND. ln_dynspg_ts ) THEN 
    129          DO_3D_00_00( 1, jpkm1 )      ! remove barotropic velocities 
     129         DO_3D( 0, 0, 0, 0, 1, jpkm1 )      ! remove barotropic velocities 
    130130            puu(ji,jj,jk,Kaa) = ( puu(ji,jj,jk,Kaa) - uu_b(ji,jj,Kaa) ) * umask(ji,jj,jk) 
    131131            pvv(ji,jj,jk,Kaa) = ( pvv(ji,jj,jk,Kaa) - vv_b(ji,jj,Kaa) ) * vmask(ji,jj,jk) 
    132132         END_3D 
    133          DO_2D_00_00 
     133         DO_2D( 0, 0, 0, 0 ) 
    134134            iku = mbku(ji,jj)         ! ocean bottom level at u- and v-points  
    135135            ikv = mbkv(ji,jj)         ! (deepest ocean u- and v-points) 
     
    142142         END_2D 
    143143         IF( ln_isfcav ) THEN    ! Ocean cavities (ISF) 
    144             DO_2D_00_00 
     144            DO_2D( 0, 0, 0, 0 ) 
    145145               iku = miku(ji,jj)         ! top ocean level at u- and v-points  
    146146               ikv = mikv(ji,jj)         ! (first wet ocean u- and v-points) 
     
    162162         SELECT CASE( nldf_dyn ) 
    163163         CASE( np_lap_i )           ! rotated lateral mixing: add its vertical mixing (akzu) 
    164             DO_3D_00_00( 1, jpkm1 ) 
     164            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    165165               ze3ua =  ( 1._wp - r_vvl ) * e3u(ji,jj,jk,Kmm)    & 
    166166                  &             + r_vvl   * e3u(ji,jj,jk,Kaa)   ! after scale factor at U-point 
     
    176176            END_3D 
    177177         CASE DEFAULT               ! iso-level lateral mixing 
    178             DO_3D_00_00( 1, jpkm1 ) 
     178            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    179179               ze3ua =  ( 1._wp - r_vvl ) * e3u(ji,jj,jk,Kmm)    &    ! after scale factor at U-point 
    180180                  &             + r_vvl   * e3u(ji,jj,jk,Kaa) 
     
    190190            END_3D 
    191191         END SELECT 
    192          DO_2D_00_00 
     192         DO_2D( 0, 0, 0, 0 ) 
    193193            zwi(ji,jj,1) = 0._wp 
    194194            ze3ua =  ( 1._wp - r_vvl ) * e3u(ji,jj,1,Kmm)    & 
     
    203203         SELECT CASE( nldf_dyn ) 
    204204         CASE( np_lap_i )           ! rotated lateral mixing: add its vertical mixing (akzu) 
    205             DO_3D_00_00( 1, jpkm1 ) 
     205            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    206206               ze3ua =  ( 1._wp - r_vvl ) * e3u(ji,jj,jk,Kmm)    & 
    207207                  &             + r_vvl   * e3u(ji,jj,jk,Kaa)   ! after scale factor at U-point 
     
    215215            END_3D 
    216216         CASE DEFAULT               ! iso-level lateral mixing 
    217             DO_3D_00_00( 1, jpkm1 ) 
     217            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    218218               ze3ua =  ( 1._wp - r_vvl ) * e3u(ji,jj,jk,Kmm)    & 
    219219                  &             + r_vvl   * e3u(ji,jj,jk,Kaa)   ! after scale factor at U-point 
     
    227227            END_3D 
    228228         END SELECT 
    229          DO_2D_00_00 
     229         DO_2D( 0, 0, 0, 0 ) 
    230230            zwi(ji,jj,1) = 0._wp 
    231231            zwd(ji,jj,1) = 1._wp - zws(ji,jj,1) 
     
    241241      ! 
    242242      IF ( ln_drgimp ) THEN      ! implicit bottom friction 
    243          DO_2D_00_00 
     243         DO_2D( 0, 0, 0, 0 ) 
    244244            iku = mbku(ji,jj)       ! ocean bottom level at u- and v-points 
    245245            ze3ua =  ( 1._wp - r_vvl ) * e3u(ji,jj,iku,Kmm)    & 
     
    248248         END_2D 
    249249         IF ( ln_isfcav ) THEN   ! top friction (always implicit) 
    250             DO_2D_00_00 
     250            DO_2D( 0, 0, 0, 0 ) 
    251251               !!gm   top Cd is masked (=0 outside cavities) no need of test on mik>=2  ==>> it has been suppressed 
    252252               iku = miku(ji,jj)       ! ocean top level at u- and v-points  
     
    273273      !----------------------------------------------------------------------- 
    274274      ! 
    275       DO_3D_00_00( 2, jpkm1 ) 
     275      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    276276         zwd(ji,jj,jk) = zwd(ji,jj,jk) - zwi(ji,jj,jk) * zws(ji,jj,jk-1) / zwd(ji,jj,jk-1) 
    277277      END_3D 
    278278      ! 
    279       DO_2D_00_00 
     279      DO_2D( 0, 0, 0, 0 ) 
    280280         ze3ua =  ( 1._wp - r_vvl ) * e3u(ji,jj,1,Kmm)    & 
    281281            &             + r_vvl   * e3u(ji,jj,1,Kaa)  
     
    283283            &                                      / ( ze3ua * rho0 ) * umask(ji,jj,1)  
    284284      END_2D 
    285       DO_3D_00_00( 2, jpkm1 ) 
     285      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    286286         puu(ji,jj,jk,Kaa) = puu(ji,jj,jk,Kaa) - zwi(ji,jj,jk) / zwd(ji,jj,jk-1) * puu(ji,jj,jk-1,Kaa) 
    287287      END_3D 
    288288      ! 
    289       DO_2D_00_00 
     289      DO_2D( 0, 0, 0, 0 ) 
    290290         puu(ji,jj,jpkm1,Kaa) = puu(ji,jj,jpkm1,Kaa) / zwd(ji,jj,jpkm1) 
    291291      END_2D 
    292       DO_3DS_00_00( jpk-2, 1, -1 ) 
     292      DO_3DS( 0, 0, 0, 0, jpk-2, 1, -1 ) 
    293293         puu(ji,jj,jk,Kaa) = ( puu(ji,jj,jk,Kaa) - zws(ji,jj,jk) * puu(ji,jj,jk+1,Kaa) ) / zwd(ji,jj,jk) 
    294294      END_3D 
     
    301301         SELECT CASE( nldf_dyn ) 
    302302         CASE( np_lap_i )           ! rotated lateral mixing: add its vertical mixing (akzv) 
    303             DO_3D_00_00( 1, jpkm1 ) 
     303            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    304304               ze3va =  ( 1._wp - r_vvl ) * e3v(ji,jj,jk,Kmm)    & 
    305305                  &             + r_vvl   * e3v(ji,jj,jk,Kaa)   ! after scale factor at V-point 
     
    315315            END_3D 
    316316         CASE DEFAULT               ! iso-level lateral mixing 
    317             DO_3D_00_00( 1, jpkm1 ) 
     317            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    318318               ze3va =  ( 1._wp - r_vvl ) * e3v(ji,jj,jk,Kmm)    & 
    319319                  &             + r_vvl   * e3v(ji,jj,jk,Kaa)   ! after scale factor at V-point 
     
    329329            END_3D 
    330330         END SELECT 
    331          DO_2D_00_00 
     331         DO_2D( 0, 0, 0, 0 ) 
    332332            zwi(ji,jj,1) = 0._wp 
    333333            ze3va =  ( 1._wp - r_vvl ) * e3v(ji,jj,1,Kmm)    & 
     
    342342         SELECT CASE( nldf_dyn ) 
    343343         CASE( np_lap_i )           ! rotated lateral mixing: add its vertical mixing (akzu) 
    344             DO_3D_00_00( 1, jpkm1 ) 
     344            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    345345               ze3va =  ( 1._wp - r_vvl ) * e3v(ji,jj,jk,Kmm)    & 
    346346                  &             + r_vvl   * e3v(ji,jj,jk,Kaa)   ! after scale factor at V-point 
     
    354354            END_3D 
    355355         CASE DEFAULT               ! iso-level lateral mixing 
    356             DO_3D_00_00( 1, jpkm1 ) 
     356            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    357357               ze3va =  ( 1._wp - r_vvl ) * e3v(ji,jj,jk,Kmm)    & 
    358358                  &             + r_vvl   * e3v(ji,jj,jk,Kaa)   ! after scale factor at V-point 
     
    366366            END_3D 
    367367         END SELECT 
    368          DO_2D_00_00 
     368         DO_2D( 0, 0, 0, 0 ) 
    369369            zwi(ji,jj,1) = 0._wp 
    370370            zwd(ji,jj,1) = 1._wp - zws(ji,jj,1) 
     
    379379      ! 
    380380      IF( ln_drgimp ) THEN 
    381          DO_2D_00_00 
     381         DO_2D( 0, 0, 0, 0 ) 
    382382            ikv = mbkv(ji,jj)       ! (deepest ocean u- and v-points) 
    383383            ze3va =  ( 1._wp - r_vvl ) * e3v(ji,jj,ikv,Kmm)    & 
     
    386386         END_2D 
    387387         IF ( ln_isfcav ) THEN 
    388             DO_2D_00_00 
     388            DO_2D( 0, 0, 0, 0 ) 
    389389               ikv = mikv(ji,jj)       ! (first wet ocean u- and v-points) 
    390390               ze3va =  ( 1._wp - r_vvl ) * e3v(ji,jj,ikv,Kmm)    & 
     
    410410      !----------------------------------------------------------------------- 
    411411      ! 
    412       DO_3D_00_00( 2, jpkm1 ) 
     412      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    413413         zwd(ji,jj,jk) = zwd(ji,jj,jk) - zwi(ji,jj,jk) * zws(ji,jj,jk-1) / zwd(ji,jj,jk-1) 
    414414      END_3D 
    415415      ! 
    416       DO_2D_00_00 
     416      DO_2D( 0, 0, 0, 0 ) 
    417417         ze3va =  ( 1._wp - r_vvl ) * e3v(ji,jj,1,Kmm)    & 
    418418            &             + r_vvl   * e3v(ji,jj,1,Kaa)  
     
    420420            &                                      / ( ze3va * rho0 ) * vmask(ji,jj,1)  
    421421      END_2D 
    422       DO_3D_00_00( 2, jpkm1 ) 
     422      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    423423         pvv(ji,jj,jk,Kaa) = pvv(ji,jj,jk,Kaa) - zwi(ji,jj,jk) / zwd(ji,jj,jk-1) * pvv(ji,jj,jk-1,Kaa) 
    424424      END_3D 
    425425      ! 
    426       DO_2D_00_00 
     426      DO_2D( 0, 0, 0, 0 ) 
    427427         pvv(ji,jj,jpkm1,Kaa) = pvv(ji,jj,jpkm1,Kaa) / zwd(ji,jj,jpkm1) 
    428428      END_2D 
    429       DO_3DS_00_00( jpk-2, 1, -1 ) 
     429      DO_3DS( 0, 0, 0, 0, jpk-2, 1, -1 ) 
    430430         pvv(ji,jj,jk,Kaa) = ( pvv(ji,jj,jk,Kaa) - zws(ji,jj,jk) * pvv(ji,jj,jk+1,Kaa) ) / zwd(ji,jj,jk) 
    431431      END_3D 
  • NEMO/trunk/src/OCE/DYN/sshwzv.F90

    r13286 r13295  
    178178            ! horizontal divergence of thickness diffusion transport ( velocity multiplied by e3t) 
    179179            ! - ML - note: computation already done in dom_vvl_sf_nxt. Could be optimized (not critical and clearer this way) 
    180             DO_2D_00_00 
     180            DO_2D( 0, 0, 0, 0 ) 
    181181               zhdiv(ji,jj,jk) = r1_e1e2t(ji,jj) * ( un_td(ji,jj,jk) - un_td(ji-1,jj,jk) + vn_td(ji,jj,jk) - vn_td(ji,jj-1,jk) ) 
    182182            END_2D 
     
    358358      zdt = 2._wp * rn_Dt                            ! 2*rn_Dt and not rDt (for restartability) 
    359359      IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN 
    360          DO_3D_00_00( 1, jpkm1 ) 
     360         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    361361            z1_e3t = 1._wp / e3t(ji,jj,jk,Kmm) 
    362362            Cu_adv(ji,jj,jk) =   zdt *                                                         & 
     
    375375         END_3D 
    376376      ELSE 
    377          DO_3D_00_00( 1, jpkm1 ) 
     377         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    378378            z1_e3t = 1._wp / e3t(ji,jj,jk,Kmm) 
    379379            Cu_adv(ji,jj,jk) =   zdt *                                                      & 
     
    393393      ! 
    394394      IF( MAXVAL( Cu_adv(:,:,:) ) > Cu_min ) THEN       ! Quick check if any breaches anywhere 
    395          DO_3DS_11_11( jpkm1, 2, -1 ) 
     395         DO_3DS( 1, 1, 1, 1, jpkm1, 2, -1 ) 
    396396            ! 
    397397            zCu = MAX( Cu_adv(ji,jj,jk) , Cu_adv(ji,jj,jk-1) ) 
  • NEMO/trunk/src/OCE/DYN/wet_dry.F90

    r13237 r13295  
    174174      ! 
    175175      wdmask(:,:) = 1._wp 
    176       DO_2D_01_01 
     176      DO_2D( 0, 1, 0, 1 ) 
    177177         ! 
    178178         IF( tmask(ji,jj,1)        < 0.5_wp )   CYCLE    ! we don't care about land cells 
     
    198198      wdramp(:,:) = min((ht_0(:,:) + psshb1(:,:) - rn_wdmin1)/(rn_wdmin0 - rn_wdmin1),1.0_wp) 
    199199      !jth assume don't need a lbc_lnk here 
    200       DO_2D_10_10 
     200      DO_2D( 1, 0, 1, 0 ) 
    201201         wdrampu(ji,jj) = MIN( wdramp(ji,jj) , wdramp(ji+1,jj) ) 
    202202         wdrampv(ji,jj) = MIN( wdramp(ji,jj) , wdramp(ji,jj+1) ) 
     
    211211         jflag = 0     ! flag indicating if any further iterations are needed 
    212212         ! 
    213          DO_2D_01_01 
     213         DO_2D( 0, 1, 0, 1 ) 
    214214            IF( tmask(ji, jj, 1) < 0.5_wp )   CYCLE  
    215215            IF( ht_0(ji,jj)      > zdepwd )   CYCLE 
     
    307307      zwdlmtv(:,:) = 1._wp 
    308308      ! 
    309       DO_2D_01_01 
     309      DO_2D( 0, 1, 0, 1 ) 
    310310         ! 
    311311         IF( tmask(ji, jj, 1 ) < 0.5_wp) CYCLE   ! we don't care about land cells 
     
    333333         jflag = 0     ! flag indicating if any further iterations are needed 
    334334         ! 
    335          DO_2D_01_01 
     335         DO_2D( 0, 1, 0, 1 ) 
    336336            ! 
    337337            IF( tmask(ji, jj, 1 ) < 0.5_wp )   CYCLE  
  • NEMO/trunk/src/OCE/ICB/icbclv.F90

    r12377 r13295  
    7171         !  where (berg_grid%calving==0.) berg_grid%stored_ice(:,:,jn)=0. 
    7272         !end do 
    73          DO_2D_00_00 
     73         DO_2D( 0, 0, 0, 0 ) 
    7474            IF( berg_grid%calving(ji,jj) /= 0._wp )                                          &    ! Need units of J 
    7575               berg_grid%stored_heat(ji,jj) = SUM( berg_grid%stored_ice(ji,jj,:) ) *         &    ! initial stored ice in kg 
     
    8181      ! assume that all calving flux must be distributed even if distribution array does not sum 
    8282      ! to one - this may not be what is intended, but it's what you've got 
    83       DO_2D_11_11 
     83      DO_2D( 1, 1, 1, 1 ) 
    8484         imx = berg_grid%maxclass(ji,jj) 
    8585         zdist = SUM( rn_distribution(1:nclasses) ) / SUM( rn_distribution(1:imx) ) 
  • NEMO/trunk/src/OCE/ICB/icbini.F90

    r13286 r13295  
    123123      nicbfldproc(:) = -1 
    124124 
    125       DO_2D_11_11 
     125      DO_2D( 1, 1, 1, 1 ) 
    126126         src_calving_hflx(ji,jj) = narea 
    127127         src_calving     (ji,jj) = nicbpack * mjg(jj) + mig(ji) 
  • NEMO/trunk/src/OCE/IOM/iom.F90

    r13286 r13295  
    22552255      ! 
    22562256      ! Cell vertices that can be defined 
    2257       DO_2D_00_00 
     2257      DO_2D( 0, 0, 0, 0 ) 
    22582258         z_bnds(1,ji,jj,1) = plat_cnr(ji+icnr,  jj+jcnr  ) ! Bottom-left 
    22592259         z_bnds(2,ji,jj,1) = plat_cnr(ji+icnr+1,jj+jcnr  ) ! Bottom-right 
     
    22662266      END_2D 
    22672267      ! 
    2268       DO_2D_00_00 
     2268      DO_2D( 0, 0, 0, 0 ) 
    22692269         IF( z_fld(ji,jj) == -1. ) THEN 
    22702270            z_rot(1,:) = z_bnds(3,ji,jj,:) ; z_rot(2,:) = z_bnds(4,ji,jj,:) 
  • NEMO/trunk/src/OCE/ISF/isfcavmlt.F90

    r12489 r13295  
    210210      ! compute upward heat flux zhtflx and upward water flux zwflx 
    211211      ! Resolution of a 3d equation from equation 24, 25 and 26 (note conduction through the ice has been added to Eq 24) 
    212       DO_2D_11_11 
     212      DO_2D( 1, 1, 1, 1 ) 
    213213         ! 
    214214         ! compute coeficient to solve the 2nd order equation 
  • NEMO/trunk/src/OCE/ISF/isfcpl.F90

    r13286 r13295  
    194194         ! 
    195195         zdssmask(:,:) = ssmask(:,:) - zssmask0(:,:) 
    196          DO_2D_00_00 
     196         DO_2D( 0, 0, 0, 0 ) 
    197197            jip1=ji+1; jim1=ji-1; 
    198198            jjp1=jj+1; jjm1=jj-1; 
     
    317317            zdmask(:,:) = tmask(:,:,jk) - ztmask0(:,:,jk); 
    318318            ! 
    319             DO_2D_00_00 
     319            DO_2D( 0, 0, 0, 0 ) 
    320320               jip1=ji+1; jim1=ji-1; 
    321321               jjp1=jj+1; jjm1=jj-1; 
     
    378378      ! ----------------------------------------------------------------------------------------- 
    379379      ! case we open a cell but no neigbour cells available to get an estimate of T and S 
    380       DO_3D_11_11( 1,jpk-1 ) 
     380      DO_3D( 1, 1, 1, 1, 1,jpk-1 ) 
    381381         IF (tmask(ji,jj,jk) == 1._wp .AND. ts(ji,jj,jk,2,Kmm) == 0._wp)              & 
    382382            &   CALL ctl_stop('STOP', 'failing to fill all new weet cell,     & 
     
    418418      DO jk = 1, jpk                                 ! Horizontal slab 
    419419         ! 1.1: get volume flux before coupling (>0 out) 
    420          DO_2D_00_00 
     420         DO_2D( 0, 0, 0, 0 ) 
    421421            zqvolb(ji,jj,jk) =    & 
    422422               &  (   e2u(ji  ,jj  ) * ze3u_b(ji  ,jj  ,jk) * uu(ji  ,jj  ,jk,Kmm)      & 
     
    433433         vv(:,:,jk,Kmm) = vv(:,:,jk,Kmm) * vmask(:,:,jk) 
    434434         ! compute volume flux divergence after coupling 
    435          DO_2D_00_00 
     435         DO_2D( 0, 0, 0, 0 ) 
    436436            zqvoln(ji,jj,jk) =   & 
    437437               &  (   e2u(ji  ,jj  ) * e3u(ji  ,jj  ,jk,Kmm) * uu(ji  ,jj  ,jk,Kmm)    & 
     
    449449      ! 2.0: include the contribution of the vertical velocity in the volume flux correction 
    450450      ! 
    451       DO_2D_00_00 
     451      DO_2D( 0, 0, 0, 0 ) 
    452452         ! 
    453453         ikt = mikt(ji,jj) 
  • NEMO/trunk/src/OCE/ISF/isfdiags.F90

    r13237 r13295  
    101101      zvar3d(:,:,:) = 0._wp 
    102102      ! 
    103       DO_2D_11_11 
     103      DO_2D( 1, 1, 1, 1 ) 
    104104         ikt = ktop(ji,jj) 
    105105         ikb = kbot(ji,jj) 
  • NEMO/trunk/src/OCE/ISF/isfhdiv.F90

    r13237 r13295  
    100100      ! 
    101101      ! update divergence at each level affected by ice shelf top boundary layer 
    102       DO_2D_11_11 
     102      DO_2D( 1, 1, 1, 1 ) 
    103103         ikt = ktop(ji,jj) 
    104104         ikb = kbot(ji,jj) 
  • NEMO/trunk/src/OCE/ISF/isfload.F90

    r13237 r13295  
    9494      !                                !- Surface value + ice shelf gradient 
    9595      pisfload(:,:) = 0._wp                       ! compute pressure due to ice shelf load  
    96       DO_2D_11_11 
     96      DO_2D( 1, 1, 1, 1 ) 
    9797         ikt = mikt(ji,jj) 
    9898         ! 
  • NEMO/trunk/src/OCE/ISF/isftbl.F90

    r13237 r13295  
    7878         ! compute tbl property at T point 
    7979         pvarout(1,:) = 0._wp 
    80          DO_2D_11_01 
     80         DO_2D( 1, 1, 0, 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_01_11 
     101         DO_2D( 0, 1, 1, 1 ) 
    102102            pvarout(ji,jj) = 0.5_wp * (zvarout(ji,jj) + zvarout(ji,jj-1)) 
    103103         END_2D 
     
    138138      ! 
    139139      ! compute tbl top.bottom level and thickness 
    140       DO_2D_11_11 
     140      DO_2D( 1, 1, 1, 1 ) 
    141141         ! 
    142142         ! tbl top/bottom indices initialisation 
     
    176176      ! 
    177177      ! get htbl 
    178       DO_2D_11_11 
     178      DO_2D( 1, 1, 1, 1 ) 
    179179         ! 
    180180         ! tbl top/bottom indices initialisation 
     
    193193      ! 
    194194      ! get pfrac 
    195       DO_2D_11_11 
     195      DO_2D( 1, 1, 1, 1 ) 
    196196         ! 
    197197         ! tbl top/bottom indices initialisation 
     
    227227      ! 
    228228      ! get ktbl 
    229       DO_2D_11_11 
     229      DO_2D( 1, 1, 1, 1 ) 
    230230         ! 
    231231         ! determine the deepest level influenced by the boundary layer 
     
    261261      ! test: this routine run with pdep = 0 should return 1 
    262262      ! 
    263       DO_2D_11_11 
     263      DO_2D( 1, 1, 1, 1 ) 
    264264         ! comput ktop 
    265265         ikt = 2 
  • NEMO/trunk/src/OCE/LDF/ldfc1d_c2d.F90

    r13226 r13295  
    8080            pah1(:,:,jk) = pahs1(:,:) * (  zratio + zc * ( 1._wp + TANH( - ( gdept_0(:,:,jk) - zh ) * zw) )  ) 
    8181         END DO 
    82          DO_3DS_10_10( jpkm1, 1, -1 ) 
     82         DO_3DS( 1, 0, 1, 0, jpkm1, 1, -1 ) 
    8383            zdep2 = (  gdept_0(ji,jj+1,jk) + gdept_0(ji+1,jj+1,jk)   & 
    8484               &     + gdept_0(ji,jj  ,jk) + gdept_0(ji+1,jj  ,jk)  ) * r1_4 
     
    8888         ! 
    8989      CASE( 'TRA' )                     ! U- and V-points (zdep1 & 2 are an approximation in zps-coord.) 
    90          DO_3DS_10_10( jpkm1, 1, -1 ) 
     90         DO_3DS( 1, 0, 1, 0, jpkm1, 1, -1 ) 
    9191            zdep1 = (  gdept_0(ji,jj,jk) + gdept_0(ji+1,jj,jk)  ) * 0.5_wp 
    9292            zdep2 = (  gdept_0(ji,jj,jk) + gdept_0(ji,jj+1,jk)  ) * 0.5_wp 
     
    135135      ! 
    136136      CASE( 'DYN' )                       ! T- and F-points 
    137          DO_2D_11_11 
     137         DO_2D( 1, 1, 1, 1 ) 
    138138            pah1(ji,jj,1) = pUfac * MAX( e1t(ji,jj) , e2t(ji,jj) )**knn 
    139139            pah2(ji,jj,1) = pUfac * MAX( e1f(ji,jj) , e2f(ji,jj) )**knn 
    140140         END_2D 
    141141      CASE( 'TRA' )                       ! U- and V-points 
    142          DO_2D_11_11 
     142         DO_2D( 1, 1, 1, 1 ) 
    143143            pah1(ji,jj,1) = pUfac * MAX( e1u(ji,jj), e2u(ji,jj) )**knn 
    144144            pah2(ji,jj,1) = pUfac * MAX( e1v(ji,jj), e2v(ji,jj) )**knn 
  • NEMO/trunk/src/OCE/LDF/ldfdyn.F90

    r13286 r13295  
    311311            IF( ierr /= 0 )   CALL ctl_stop( 'STOP', 'ldf_dyn_init: failed to allocate Smagorinsky arrays') 
    312312            ! 
    313             DO_2D_11_11 
     313            DO_2D( 1, 1, 1, 1 ) 
    314314               esqt(ji,jj) = ( 2._wp * e1e2t(ji,jj) / ( e1t(ji,jj) + e2t(ji,jj) ) )**2  
    315315               esqf(ji,jj) = ( 2._wp * e1e2f(ji,jj) / ( e1f(ji,jj) + e2f(ji,jj) ) )**2  
     
    368368         IF( ln_dynldf_lap   ) THEN        ! laplacian operator : |u| e /12 = |u/144| e 
    369369            DO jk = 1, jpkm1 
    370                DO_2D_00_00 
     370               DO_2D( 0, 0, 0, 0 ) 
    371371                  zu2pv2_ij    = uu(ji  ,jj  ,jk,Kbb) * uu(ji  ,jj  ,jk,Kbb) + vv(ji  ,jj  ,jk,Kbb) * vv(ji  ,jj  ,jk,Kbb) 
    372372                  zu2pv2_ij_m1 = uu(ji-1,jj  ,jk,Kbb) * uu(ji-1,jj  ,jk,Kbb) + vv(ji  ,jj-1,jk,Kbb) * vv(ji  ,jj-1,jk,Kbb) 
     
    374374                  ahmt(ji,jj,jk) = SQRT( (zu2pv2_ij + zu2pv2_ij_m1) * r1_288 ) * zemax * tmask(ji,jj,jk)      ! 288= 12*12 * 2 
    375375               END_2D 
    376                DO_2D_10_10 
     376               DO_2D( 1, 0, 1, 0 ) 
    377377                  zu2pv2_ij_p1 = uu(ji  ,jj+1,jk, Kbb) * uu(ji  ,jj+1,jk, Kbb) + vv(ji+1,jj  ,jk, Kbb) * vv(ji+1,jj  ,jk, Kbb) 
    378378                  zu2pv2_ij    = uu(ji  ,jj  ,jk, Kbb) * uu(ji  ,jj  ,jk, Kbb) + vv(ji  ,jj  ,jk, Kbb) * vv(ji  ,jj  ,jk, Kbb) 
     
    383383         ELSEIF( ln_dynldf_blp ) THEN      ! bilaplacian operator : sqrt( |u| e^3 /12 ) = sqrt( |u/144| e ) * e 
    384384            DO jk = 1, jpkm1 
    385                DO_2D_00_00 
     385               DO_2D( 0, 0, 0, 0 ) 
    386386                  zu2pv2_ij    = uu(ji  ,jj  ,jk,Kbb) * uu(ji  ,jj  ,jk,Kbb) + vv(ji  ,jj  ,jk,Kbb) * vv(ji  ,jj  ,jk,Kbb) 
    387387                  zu2pv2_ij_m1 = uu(ji-1,jj  ,jk,Kbb) * uu(ji-1,jj  ,jk,Kbb) + vv(ji  ,jj-1,jk,Kbb) * vv(ji  ,jj-1,jk,Kbb) 
     
    389389                  ahmt(ji,jj,jk) = SQRT(  SQRT( (zu2pv2_ij + zu2pv2_ij_m1) * r1_288 ) * zemax  ) * zemax * tmask(ji,jj,jk) 
    390390               END_2D 
    391                DO_2D_10_10 
     391               DO_2D( 1, 0, 1, 0 ) 
    392392                  zu2pv2_ij_p1 = uu(ji  ,jj+1,jk, Kbb) * uu(ji  ,jj+1,jk, Kbb) + vv(ji+1,jj  ,jk, Kbb) * vv(ji+1,jj  ,jk, Kbb) 
    393393                  zu2pv2_ij    = uu(ji  ,jj  ,jk, Kbb) * uu(ji  ,jj  ,jk, Kbb) + vv(ji  ,jj  ,jk, Kbb) * vv(ji  ,jj  ,jk, Kbb) 
     
    412412            DO jk = 1, jpkm1 
    413413               ! 
    414                DO_2D_00_00 
     414               DO_2D( 0, 0, 0, 0 ) 
    415415                  zdb =    ( uu(ji,jj,jk,Kbb) * r1_e2u(ji,jj) -  uu(ji-1,jj,jk,Kbb) * r1_e2u(ji-1,jj) )  & 
    416416                       &                      * r1_e1t(ji,jj) * e2t(ji,jj)                           & 
     
    420420               END_2D 
    421421               ! 
    422                DO_2D_10_10 
     422               DO_2D( 1, 0, 1, 0 ) 
    423423                  zdb =   (  uu(ji,jj+1,jk,Kbb) * r1_e1u(ji,jj+1) -  uu(ji,jj,jk,Kbb) * r1_e1u(ji,jj) )  & 
    424424                       &                        * r1_e2f(ji,jj)   * e1f(ji,jj)                       & 
     
    434434            DO jk = 1, jpkm1 
    435435              ! 
    436                DO_2D_00_00 
     436               DO_2D( 0, 0, 0, 0 ) 
    437437                  ! 
    438438                  zu2pv2_ij    = uu(ji  ,jj  ,jk,Kbb) * uu(ji  ,jj  ,jk,Kbb) + vv(ji  ,jj  ,jk,Kbb) * vv(ji  ,jj  ,jk,Kbb) 
     
    448448               END_2D 
    449449               ! 
    450                DO_2D_10_10 
     450               DO_2D( 1, 0, 1, 0 ) 
    451451                  ! 
    452452                  zu2pv2_ij_p1 = uu(ji  ,jj+1,jk, kbb) * uu(ji  ,jj+1,jk, kbb) + vv(ji+1,jj  ,jk, kbb) * vv(ji+1,jj  ,jk, kbb) 
     
    471471            !                          ! effective default limits are 1/12 |U|L^3 < B_hm < 1//(32*2dt) L^4 
    472472            DO jk = 1, jpkm1 
    473                DO_2D_00_00 
     473               DO_2D( 0, 0, 0, 0 ) 
    474474                  ahmt(ji,jj,jk) = SQRT( r1_8 * esqt(ji,jj) * ahmt(ji,jj,jk) ) 
    475475               END_2D 
    476                DO_2D_10_10 
     476               DO_2D( 1, 0, 1, 0 ) 
    477477                  ahmf(ji,jj,jk) = SQRT( r1_8 * esqf(ji,jj) * ahmf(ji,jj,jk) ) 
    478478               END_2D 
  • NEMO/trunk/src/OCE/LDF/ldfslp.F90

    r13237 r13295  
    137137      zwz(:,:,:) = 0._wp 
    138138      ! 
    139       DO_3D_10_10( 1, jpk ) 
     139      DO_3D( 1, 0, 1, 0, 1, jpk ) 
    140140         zgru(ji,jj,jk) = umask(ji,jj,jk) * ( prd(ji+1,jj  ,jk) - prd(ji,jj,jk) ) 
    141141         zgrv(ji,jj,jk) = vmask(ji,jj,jk) * ( prd(ji  ,jj+1,jk) - prd(ji,jj,jk) ) 
    142142      END_3D 
    143143      IF( ln_zps ) THEN                           ! partial steps correction at the bottom ocean level 
    144          DO_2D_10_10 
     144         DO_2D( 1, 0, 1, 0 ) 
    145145            zgru(ji,jj,mbku(ji,jj)) = gru(ji,jj) 
    146146            zgrv(ji,jj,mbkv(ji,jj)) = grv(ji,jj) 
     
    148148      ENDIF 
    149149      IF( ln_zps .AND. ln_isfcav ) THEN           ! partial steps correction at the bottom ocean level 
    150          DO_2D_10_10 
     150         DO_2D( 1, 0, 1, 0 ) 
    151151            IF( miku(ji,jj) > 1 )   zgru(ji,jj,miku(ji,jj)) = grui(ji,jj)  
    152152            IF( mikv(ji,jj) > 1 )   zgrv(ji,jj,mikv(ji,jj)) = grvi(ji,jj) 
     
    173173      ! 
    174174      IF ( ln_isfcav ) THEN 
    175          DO_2D_00_00 
     175         DO_2D( 0, 0, 0, 0 ) 
    176176            zslpml_hmlpu(ji,jj) = uslpml(ji,jj) / ( MAX(hmlpt  (ji,jj), hmlpt  (ji+1,jj  ), 5._wp) & 
    177177               &                                  - MAX(risfdep(ji,jj), risfdep(ji+1,jj  )       ) )  
     
    180180         END_2D 
    181181      ELSE 
    182          DO_2D_00_00 
     182         DO_2D( 0, 0, 0, 0 ) 
    183183            zslpml_hmlpu(ji,jj) = uslpml(ji,jj) / MAX(hmlpt(ji,jj), hmlpt(ji+1,jj  ), 5._wp) 
    184184            zslpml_hmlpv(ji,jj) = vslpml(ji,jj) / MAX(hmlpt(ji,jj), hmlpt(ji  ,jj+1), 5._wp) 
     
    186186      END IF 
    187187 
    188       DO_3D_00_00( 2, jpkm1 ) 
     188      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    189189         !                                      ! horizontal and vertical density gradient at u- and v-points 
    190190         zau = zgru(ji,jj,jk) * r1_e1u(ji,jj) 
     
    233233      !                                            !* horizontal Shapiro filter 
    234234      DO jk = 2, jpkm1 
    235          DO_2D_00_00 
     235         DO_2D( 0, 0, 0, 0 ) 
    236236            uslp(ji,jj,jk) = z1_16 * (        zwz(ji-1,jj-1,jk) + zwz(ji+1,jj-1,jk)      & 
    237237               &                       +      zwz(ji-1,jj+1,jk) + zwz(ji+1,jj+1,jk)      & 
     
    260260         END DO 
    261261         !                                        !* decrease along coastal boundaries 
    262          DO_2D_00_00 
     262         DO_2D( 0, 0, 0, 0 ) 
    263263            uslp(ji,jj,jk) = uslp(ji,jj,jk) * ( umask(ji,jj+1,jk) + umask(ji,jj-1,jk  ) ) * 0.5_wp   & 
    264264               &                            * ( umask(ji,jj  ,jk) + umask(ji,jj  ,jk+1) ) * 0.5_wp 
     
    272272      ! ===========================      | wslpj = mij( d/dj( prd ) / d/dz( prd ) 
    273273      ! 
    274       DO_3D_00_00( 2, jpkm1 ) 
     274      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    275275         !                                  !* Local vertical density gradient evaluated from N^2 
    276276         zbw = zm1_2g * pn2 (ji,jj,jk) * ( prd (ji,jj,jk) + prd (ji,jj,jk-1) + 2. ) 
     
    307307      !                                           !* horizontal Shapiro filter 
    308308      DO jk = 2, jpkm1 
    309          DO_2D_00_00 
     309         DO_2D( 0, 0, 0, 0 ) 
    310310            zcofw = wmask(ji,jj,jk) * z1_16 
    311311            wslpi(ji,jj,jk) = (         zwz(ji-1,jj-1,jk) + zwz(ji+1,jj-1,jk)     & 
     
    338338         END DO 
    339339         !                                        !* decrease in vicinity of topography 
    340          DO_2D_00_00 
     340         DO_2D( 0, 0, 0, 0 ) 
    341341            zck =   ( umask(ji,jj,jk) + umask(ji-1,jj,jk) )   & 
    342342               &  * ( vmask(ji,jj,jk) + vmask(ji,jj-1,jk) ) * 0.25 
     
    401401         ! 
    402402         ip = jl   ;   jp = jl                ! guaranteed nonzero gradients ( absolute value larger than repsln) 
    403          DO_3D_10_10( 1, jpkm1 ) 
     403         DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    404404            zdit = ( ts(ji+1,jj,jk,jp_tem,Kbb) - ts(ji,jj,jk,jp_tem,Kbb) )    ! i-gradient of T & S at u-point 
    405405            zdis = ( ts(ji+1,jj,jk,jp_sal,Kbb) - ts(ji,jj,jk,jp_sal,Kbb) ) 
     
    413413         ! 
    414414         IF( ln_zps .AND. l_grad_zps ) THEN     ! partial steps: correction of i- & j-grad on bottom 
    415             DO_2D_10_10 
     415            DO_2D( 1, 0, 1, 0 ) 
    416416               iku  = mbku(ji,jj)          ;   ikv  = mbkv(ji,jj)             ! last ocean level (u- & v-points) 
    417417               zdit = gtsu(ji,jj,jp_tem)   ;   zdjt = gtsv(ji,jj,jp_tem)      ! i- & j-gradient of Temperature 
     
    427427 
    428428      DO kp = 0, 1                            !==  unmasked before density i- j-, k-gradients  ==! 
    429          DO_3D_11_11( 1, jpkm1 ) 
     429         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    430430            IF( jk+kp > 1 ) THEN        ! k-gradient of T & S a jk+kp 
    431431               zdkt = ( ts(ji,jj,jk+kp-1,jp_tem,Kbb) - ts(ji,jj,jk+kp,jp_tem,Kbb) ) 
     
    442442      END DO 
    443443      ! 
    444       DO_2D_11_11 
     444      DO_2D( 1, 1, 1, 1 ) 
    445445         jk = MIN( nmln(ji,jj), mbkt(ji,jj) ) + 1     ! MIN in case ML depth is the ocean depth 
    446446         z1_mlbw(ji,jj) = 1._wp / gdepw(ji,jj,jk,Kmm) 
     
    462462      DO jl = 0, 1                            ! calculate slope of the 4 triads immediately ONE level below mixed-layer base 
    463463         DO kp = 0, 1                         ! with only the slope-max limit   and   MASKED 
    464             DO_2D_10_10 
     464            DO_2D( 1, 0, 1, 0 ) 
    465465               ip = jl   ;   jp = jl 
    466466               ! 
     
    499499               ! Must mask contribution to slope from dz/dx at constant s for triads jk=1,kp=0 that poke up though ocean surface 
    500500               znot_thru_surface = REAL( 1-1/(jk+kp), wp )  !jk+kp=1,=0.; otherwise=1.0 
    501                DO_2D_10_10 
     501               DO_2D( 1, 0, 1, 0 ) 
    502502                  ! 
    503503                  ! Calculate slope relative to geopotentials used for GM skew fluxes 
     
    628628      ! 
    629629      !                                            !==   surface mixed layer mask   ! 
    630       DO_3D_11_11( 1, jpk ) 
     630      DO_3D( 1, 1, 1, 1, 1, jpk ) 
    631631         ik = nmln(ji,jj) - 1 
    632632         IF( jk <= ik ) THEN   ;   omlmask(ji,jj,jk) = 1._wp 
     
    646646      !----------------------------------------------------------------------- 
    647647      ! 
    648       DO_2D_00_00 
     648      DO_2D( 0, 0, 0, 0 ) 
    649649         !                        !==   Slope at u- & v-points just below the Mixed Layer   ==! 
    650650         ! 
  • NEMO/trunk/src/OCE/LDF/ldftra.F90

    r13286 r13295  
    430430         zaht_min = 0.2_wp * aht0                                       ! minimum value for aht 
    431431         zDaht    = aht0 - zaht_min                                       
    432          DO_2D_11_11 
     432         DO_2D( 1, 1, 1, 1 ) 
    433433            !!gm CAUTION : here we assume lat/lon grid in 20deg N/S band (like all ORCA cfg) 
    434434            !!     ==>>>   The Coriolis value is identical for t- & u_points, and for v- and f-points 
     
    648648      !                       ! Compute lateral diffusive coefficient at T-point 
    649649      IF( ln_traldf_triad ) THEN 
    650          DO_3D_00_00( 1, jpk ) 
     650         DO_3D( 0, 0, 0, 0, 1, jpk ) 
    651651            ! Take the max of N^2 and zero then take the vertical sum  
    652652            ! of the square root of the resulting N^2 ( required to compute  
     
    662662         END_3D 
    663663      ELSE 
    664          DO_3D_00_00( 1, jpk ) 
     664         DO_3D( 0, 0, 0, 0, 1, jpk ) 
    665665            ! Take the max of N^2 and zero then take the vertical sum  
    666666            ! of the square root of the resulting N^2 ( required to compute  
     
    678678      ENDIF 
    679679 
    680       DO_2D_00_00 
     680      DO_2D( 0, 0, 0, 0 ) 
    681681         zfw = MAX( ABS( 2. * omega * SIN( rad * gphit(ji,jj) ) ) , 1.e-10 ) 
    682682         ! Rossby radius at w-point taken betwenn 2 km and  40km 
     
    688688      !                                         !==  Bound on eiv coeff.  ==! 
    689689      z1_f20 = 1._wp / (  2._wp * omega * sin( rad * 20._wp )  ) 
    690       DO_2D_00_00 
     690      DO_2D( 0, 0, 0, 0 ) 
    691691         zzaei = MIN( 1._wp, ABS( ff_t(ji,jj) * z1_f20 ) ) * zaeiw(ji,jj)     ! tropical decrease 
    692692         zaeiw(ji,jj) = MIN( zzaei , paei0 )                                  ! Max value = paei0 
     
    694694      CALL lbc_lnk( 'ldftra', zaeiw(:,:), 'W', 1.0_wp )       ! lateral boundary condition 
    695695      !                
    696       DO_2D_00_00 
     696      DO_2D( 0, 0, 0, 0 ) 
    697697         paeiu(ji,jj,1) = 0.5_wp * ( zaeiw(ji,jj) + zaeiw(ji+1,jj  ) ) * umask(ji,jj,1) 
    698698         paeiv(ji,jj,1) = 0.5_wp * ( zaeiw(ji,jj) + zaeiw(ji  ,jj+1) ) * vmask(ji,jj,1) 
     
    750750      zpsi_uw(:,:,jpk) = 0._wp   ;   zpsi_vw(:,:,jpk) = 0._wp 
    751751      ! 
    752       DO_3D_10_10( 2, jpkm1 ) 
     752      DO_3D( 1, 0, 1, 0, 2, jpkm1 ) 
    753753         zpsi_uw(ji,jj,jk) = - r1_4 * e2u(ji,jj) * ( wslpi(ji,jj,jk  ) + wslpi(ji+1,jj,jk) )   & 
    754754            &                                    * ( aeiu (ji,jj,jk-1) + aeiu (ji  ,jj,jk) ) * wumask(ji,jj,jk) 
     
    757757      END_3D 
    758758      ! 
    759       DO_3D_10_10( 1, jpkm1 ) 
     759      DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    760760         pu(ji,jj,jk) = pu(ji,jj,jk) - ( zpsi_uw(ji,jj,jk) - zpsi_uw(ji,jj,jk+1) ) 
    761761         pv(ji,jj,jk) = pv(ji,jj,jk) - ( zpsi_vw(ji,jj,jk) - zpsi_vw(ji,jj,jk+1) ) 
    762762      END_3D 
    763       DO_3D_00_00( 1, jpkm1 ) 
     763      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    764764         pw(ji,jj,jk) = pw(ji,jj,jk) + (  zpsi_uw(ji,jj,jk) - zpsi_uw(ji-1,jj  ,jk)   & 
    765765            &                             + zpsi_vw(ji,jj,jk) - zpsi_vw(ji  ,jj-1,jk) ) 
     
    813813      CALL iom_put( "voce_eiv", zw3d ) 
    814814      ! 
    815       DO_3D_00_00( 1, jpkm1 ) 
     815      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    816816         zw3d(ji,jj,jk) = (  psi_vw(ji,jj,jk) - psi_vw(ji  ,jj-1,jk)    & 
    817817            &              + psi_uw(ji,jj,jk) - psi_uw(ji-1,jj  ,jk)  ) / e1e2t(ji,jj) 
     
    840840        zw2d(:,:)   = 0._wp  
    841841        zw3d(:,:,:) = 0._wp  
    842         DO_3D_00_00( 1, jpkm1 ) 
     842        DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    843843           zw3d(ji,jj,jk) = zw3d(ji,jj,jk) + ( psi_uw(ji,jj,jk+1)          - psi_uw(ji  ,jj,jk)            )   & 
    844844              &                            * ( ts    (ji,jj,jk,jp_tem,Kmm) + ts    (ji+1,jj,jk,jp_tem,Kmm) )  
     
    861861      zw2d(:,:)   = 0._wp  
    862862      zw3d(:,:,:) = 0._wp  
    863       DO_3D_00_00( 1, jpkm1 ) 
     863      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    864864         zw3d(ji,jj,jk) = zw3d(ji,jj,jk) + ( psi_vw(ji,jj,jk+1)          - psi_vw(ji,jj  ,jk)            )   & 
    865865            &                            * ( ts    (ji,jj,jk,jp_tem,Kmm) + ts    (ji,jj+1,jk,jp_tem,Kmm) )  
     
    876876        zw2d(:,:) = 0._wp  
    877877        zw3d(:,:,:) = 0._wp  
    878         DO_3D_00_00( 1, jpkm1 ) 
     878        DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    879879           zw3d(ji,jj,jk) = zw3d(ji,jj,jk) * ( psi_uw(ji,jj,jk+1)          - psi_uw(ji  ,jj,jk)            )   & 
    880880              &                            * ( ts    (ji,jj,jk,jp_sal,Kmm) + ts    (ji+1,jj,jk,jp_sal,Kmm) )  
     
    888888      zw2d(:,:) = 0._wp  
    889889      zw3d(:,:,:) = 0._wp  
    890       DO_3D_00_00( 1, jpkm1 ) 
     890      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    891891         zw3d(ji,jj,jk) = zw3d(ji,jj,jk) + ( psi_vw(ji,jj,jk+1)          - psi_vw(ji,jj  ,jk)            )   & 
    892892            &                            * ( ts    (ji,jj,jk,jp_sal,Kmm) + ts    (ji,jj+1,jk,jp_sal,Kmm) )  
  • NEMO/trunk/src/OCE/OBS/obs_oper.F90

    r12377 r13295  
    189189         ! Initialize daily mean for first timestep of the day 
    190190         IF ( idayend == 1 .OR. kt == 0 ) THEN 
    191             DO_3D_11_11( 1, jpk ) 
     191            DO_3D( 1, 1, 1, 1, 1, jpk ) 
    192192               prodatqc%vdmean(ji,jj,jk,1) = 0.0 
    193193               prodatqc%vdmean(ji,jj,jk,2) = 0.0 
     
    195195         ENDIF 
    196196 
    197          DO_3D_11_11( 1, jpk ) 
     197         DO_3D( 1, 1, 1, 1, 1, jpk ) 
    198198            ! Increment field 1 for computing daily mean 
    199199            prodatqc%vdmean(ji,jj,jk,1) = prodatqc%vdmean(ji,jj,jk,1) & 
     
    209209            IF (lwp) WRITE(numout,*) 'Calculating prodatqc%vdmean on time-step: ',kt 
    210210            CALL FLUSH(numout) 
    211             DO_3D_11_11( 1, jpk ) 
     211            DO_3D( 1, 1, 1, 1, 1, jpk ) 
    212212               prodatqc%vdmean(ji,jj,jk,1) = prodatqc%vdmean(ji,jj,jk,1) & 
    213213                  &                        * zdaystp 
     
    750750         ! Initialize night-time mean for first timestep of the day 
    751751         IF ( idayend == 1 .OR. kt == 0 ) THEN 
    752             DO_2D_11_11 
     752            DO_2D( 1, 1, 1, 1 ) 
    753753               surfdataqc%vdmean(ji,jj) = 0.0 
    754754               zmeanday(ji,jj) = 0.0 
     
    761761         imask_night(:,:) = INT( zouttmp(:,:) ) 
    762762 
    763          DO_2D_11_11 
     763         DO_2D( 1, 1, 1, 1 ) 
    764764            ! Increment the temperature field for computing night mean and counter 
    765765            surfdataqc%vdmean(ji,jj) = surfdataqc%vdmean(ji,jj)  & 
     
    773773         IF ( idayend == 0 ) THEN 
    774774            IF (lwp) WRITE(numout,*) 'Calculating surfdataqc%vdmean on time-step: ',kt 
    775             DO_2D_11_11 
     775            DO_2D( 1, 1, 1, 1 ) 
    776776               ! Test if "no night" point 
    777777               IF ( icount_night(ji,jj) > 0 ) THEN 
  • NEMO/trunk/src/OCE/OBS/obs_readmdt.F90

    r13286 r13295  
    215215      zeta2 = 0.0 
    216216 
    217       DO_2D_11_11 
     217      DO_2D( 1, 1, 1, 1 ) 
    218218       zdxdy = e1e2t(ji,jj) * zpromsk(ji,jj) 
    219219       zarea = zarea + zdxdy 
  • NEMO/trunk/src/OCE/SBC/cyclone.F90

    r12377 r13295  
    147147            zb = 2. 
    148148 
    149             DO_2D_11_11 
     149            DO_2D( 1, 1, 1, 1 ) 
    150150 
    151151               ! calc distance between TC center and any point following great circle 
     
    208208            ENDIF            
    209209         
    210             DO_2D_11_11 
     210            DO_2D( 1, 1, 1, 1 ) 
    211211                                
    212212               zzrglam = rad * glamt(ji,jj) - zrlon 
  • NEMO/trunk/src/OCE/SBC/fldread.F90

    r13286 r13295  
    11691169            WRITE(clname,'(a3,i2.2)') 'src',jn 
    11701170            CALL iom_get ( inum, jpdom_global, clname, data_tmp(:,:), cd_type = 'Z' )   !  no call to lbc_lnk 
    1171             DO_2D_00_00 
     1171            DO_2D( 0, 0, 0, 0 ) 
    11721172               isrc = NINT(data_tmp(ji,jj)) - 1 
    11731173               ref_wgts(nxt_wgt)%data_jpi(ji,jj,jn) = 1 + MOD(isrc,  ref_wgts(nxt_wgt)%ddims(1)) 
     
    11791179            WRITE(clname,'(a3,i2.2)') 'wgt',jn 
    11801180            CALL iom_get ( inum, jpdom_global, clname, data_tmp(:,:), cd_type = 'Z' )   !  no call to lbc_lnk 
    1181             DO_2D_00_00 
     1181            DO_2D( 0, 0, 0, 0 ) 
    11821182               ref_wgts(nxt_wgt)%data_wgt(ji,jj,jn) = data_tmp(ji,jj) 
    11831183            END_2D 
     
    14421442      dta(:,:,:) = 0._wp 
    14431443      DO jn = 1,4 
    1444          DO_3D_00_00( 1,ipk ) 
     1444         DO_3D( 0, 0, 0, 0, 1,ipk ) 
    14451445            ni = ref_wgts(kw)%data_jpi(ji,jj,jn) + 1 
    14461446            nj = ref_wgts(kw)%data_jpj(ji,jj,jn) + 1 
     
    14861486         ! 
    14871487!!$         DO jn = 1,4 
    1488 !!$            DO_3D_00_00( 1,ipk ) 
     1488!!$            DO_3D( 0, 0, 0, 0, 1,ipk ) 
    14891489!!$               ni = ref_wgts(kw)%data_jpi(ji,jj,jn) + 1 
    14901490!!$               nj = ref_wgts(kw)%data_jpj(ji,jj,jn) + 1 
     
    15041504         ! 
    15051505         DO jn = 1,4 
    1506             DO_3D_00_00( 1,ipk ) 
     1506            DO_3D( 0, 0, 0, 0, 1,ipk ) 
    15071507               ni = ref_wgts(kw)%data_jpi(ji,jj,jn) 
    15081508               nj = ref_wgts(kw)%data_jpj(ji,jj,jn) 
     
    15131513         END DO 
    15141514         DO jn = 1,4 
    1515             DO_3D_00_00( 1,ipk ) 
     1515            DO_3D( 0, 0, 0, 0, 1,ipk ) 
    15161516               ni = ref_wgts(kw)%data_jpi(ji,jj,jn) 
    15171517               nj = ref_wgts(kw)%data_jpj(ji,jj,jn) 
     
    15221522         END DO 
    15231523         DO jn = 1,4 
    1524             DO_3D_00_00( 1,ipk ) 
     1524            DO_3D( 0, 0, 0, 0, 1,ipk ) 
    15251525               ni = ref_wgts(kw)%data_jpi(ji,jj,jn) 
    15261526               nj = ref_wgts(kw)%data_jpj(ji,jj,jn) 
  • NEMO/trunk/src/OCE/SBC/geo2ocean.F90

    r13226 r13295  
    160160      ! (computation done on the north stereographic polar plane) 
    161161      ! 
    162       DO_2D_00_01 
     162      DO_2D( 0, 0, 0, 1 ) 
    163163         !                   
    164164         zlam = plamt(ji,jj)     ! north pole direction & modulous (at t-point) 
     
    249249      ! =============== ! 
    250250 
    251       DO_2D_00_01 
     251      DO_2D( 0, 0, 0, 1 ) 
    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/sbc_oce.F90

    r13226 r13295  
    217217      !!--------------------------------------------------------------------- 
    218218      zcoef = 0.5 / ( zrhoa * zcdrag ) 
    219       DO_2D_00_00 
     219      DO_2D( 0, 0, 0, 0 ) 
    220220         ztx = utau(ji-1,jj  ) + utau(ji,jj) 
    221221         zty = vtau(ji  ,jj-1) + vtau(ji,jj) 
  • NEMO/trunk/src/OCE/SBC/sbcblk.F90

    r13226 r13295  
    568568      zwnd_j(:,:) = 0._wp 
    569569      CALL wnd_cyc( kt, zwnd_i, zwnd_j )    ! add analytical tropical cyclone (Vincent et al. JGR 2012) 
    570       DO_2D_11_11 
     570      DO_2D( 1, 1, 1, 1 ) 
    571571         zwnd_i(ji,jj) = pwndi(ji,jj) + zwnd_i(ji,jj) 
    572572         zwnd_j(ji,jj) = pwndj(ji,jj) + zwnd_j(ji,jj) 
     
    576576#else 
    577577      ! ... scalar wind module at T-point (not masked) 
    578       DO_2D_11_11 
     578      DO_2D( 1, 1, 1, 1 ) 
    579579         wndm(ji,jj) = SQRT(  pwndi(ji,jj) * pwndi(ji,jj) + pwndj(ji,jj) * pwndj(ji,jj)  ) 
    580580      END_2D 
     
    628628         !     use scalar version of gamma_moist() ... 
    629629         IF( ln_tpot ) THEN 
    630             DO_2D_11_11 
     630            DO_2D( 1, 1, 1, 1 ) 
    631631               ztpot(ji,jj) = ptair(ji,jj) + gamma_moist( ptair(ji,jj), zqair(ji,jj) ) * rn_zqt 
    632632            END_2D 
     
    690690 
    691691      IF( ln_abl ) THEN         !==  ABL formulation  ==!   multiplication by rho_air and turbulent fluxes computation done in ablstp 
    692          DO_2D_11_11 
     692         DO_2D( 1, 1, 1, 1 ) 
    693693            zztmp = zU_zu(ji,jj) 
    694694            wndm(ji,jj)   = zztmp                   ! Store zU_zu in wndm to compute ustar2 in ablmod 
     
    710710         pevp(:,:) = pevp(:,:) * tmask(:,:,1) 
    711711 
    712          DO_2D_11_11 
     712         DO_2D( 1, 1, 1, 1 ) 
    713713            IF( wndm(ji,jj) > 0._wp ) THEN 
    714714               zztmp = taum(ji,jj) / wndm(ji,jj) 
     
    728728         IF( ln_crt_fbk ) THEN   ! aply eq. 10 and 11 of Renault et al. 2020 (doi: 10.1029/2019MS001715) 
    729729            zstmax = MIN( rn_stau_a * 3._wp + rn_stau_b, 0._wp )   ! set the max value of Stau corresponding to a wind of 3 m/s (<0) 
    730             DO_2D_01_01   ! end at jpj and jpi, as ztau_j(ji,jj+1) ztau_i(ji+1,jj) used in the next loop 
     730            DO_2D( 0, 1, 0, 1 )   ! end at jpj and jpi, as ztau_j(ji,jj+1) ztau_i(ji+1,jj) used in the next loop 
    731731               zstau = MIN( rn_stau_a * wndm(ji,jj) + rn_stau_b, zstmax )   ! stau (<0) must be smaller than zstmax 
    732732               ztau_i(ji,jj) = ztau_i(ji,jj) + zstau * ( 0.5_wp * ( pu(ji-1,jj  ) + pu(ji,jj) ) - puatm(ji,jj) ) 
     
    739739         !     Note the use of 0.5*(2-umask) in order to unmask the stress along coastlines 
    740740         !     Note that coastal wind stress is not used in the code... so this extra care has no effect 
    741          DO_2D_00_00              ! start loop at 2, in case ln_crt_fbk = T 
     741         DO_2D( 0, 0, 0, 0 )              ! start loop at 2, in case ln_crt_fbk = T 
    742742            utau(ji,jj) = 0.5 * ( 2. - umask(ji,jj,1) ) * ( ztau_i(ji,jj) + ztau_i(ji+1,jj  ) ) & 
    743743               &              * MAX(tmask(ji,jj,1),tmask(ji+1,jj,1)) 
     
    828828 
    829829      ! use scalar version of L_vap() for AGRIF compatibility 
    830       DO_2D_11_11 
     830      DO_2D( 1, 1, 1, 1 ) 
    831831         zqla(ji,jj) = - L_vap( ztskk(ji,jj) ) * pevp(ji,jj)    ! Latent Heat flux !!GS: possibility to add a global qla to avoid recomputation after abl update 
    832832      END_2D 
     
    933933      ! ------------------------------------------------------------ ! 
    934934      ! C-grid ice dynamics :   U & V-points (same as ocean) 
    935       DO_2D_11_11 
     935      DO_2D( 1, 1, 1, 1 ) 
    936936         wndm_ice(ji,jj) = SQRT( pwndi(ji,jj) * pwndi(ji,jj) + pwndj(ji,jj) * pwndj(ji,jj) ) 
    937937      END_2D 
     
    959959         ! ---------------------------------------------------- ! 
    960960         ! supress moving ice in wind stress computation as we don't know how to do it properly... 
    961          DO_2D_01_01    ! at T point  
     961         DO_2D( 0, 1, 0, 1 )    ! at T point  
    962962            putaui(ji,jj) = rhoa(ji,jj) * zcd_dui(ji,jj) * pwndi(ji,jj) 
    963963            pvtaui(ji,jj) = rhoa(ji,jj) * zcd_dui(ji,jj) * pwndj(ji,jj) 
    964964         END_2D 
    965965         ! 
    966          DO_2D_00_00    ! U & V-points (same as ocean). 
     966         DO_2D( 0, 0, 0, 0 )    ! U & V-points (same as ocean). 
    967967            ! take care of the land-sea mask to avoid "pollution" of coastal stress. p[uv]taui used in frazil and  rheology  
    968968            zztmp1 = 0.5_wp * ( 2. - umask(ji,jj,1) ) * MAX( tmask(ji,jj,1),tmask(ji+1,jj  ,1) ) 
     
    978978         zztmp1 = 11637800.0_wp 
    979979         zztmp2 =    -5897.8_wp 
    980          DO_2D_11_11 
     980         DO_2D( 1, 1, 1, 1 ) 
    981981            pcd_dui(ji,jj) = zcd_dui (ji,jj) 
    982982            pseni  (ji,jj) = wndm_ice(ji,jj) * Ch_ice(ji,jj) 
     
    12331233         ! 
    12341234         DO jl = 1, jpl 
    1235             DO_2D_11_11 
     1235            DO_2D( 1, 1, 1, 1 ) 
    12361236               zhe = ( rn_cnd_s * phi(ji,jj,jl) + rcnd_i * phs(ji,jj,jl) ) * zfac                            ! Effective thickness 
    12371237               IF( zhe >=  zfac2 )   zgfac(ji,jj,jl) = MIN( 2._wp, 0.5_wp * ( 1._wp + LOG( zhe * zfac3 ) ) ) ! Enhanced conduction factor 
     
    12481248      ! 
    12491249      DO jl = 1, jpl 
    1250          DO_2D_11_11 
     1250         DO_2D( 1, 1, 1, 1 ) 
    12511251            ! 
    12521252            zkeff_h = zfac * zgfac(ji,jj,jl) / &                                    ! Effective conductivity of the snow-ice system divided by thickness 
     
    13961396      zqi_sat(:,:) =                  q_sat( ptm_su(:,:), pslp(:,:) )   ! saturation humidity over ice   [kg/kg] 
    13971397      ! 
    1398       DO_2D_00_00 
     1398      DO_2D( 0, 0, 0, 0 ) 
    13991399         ! Virtual potential temperature [K] 
    14001400         zthetav_os = zst(ji,jj)    * ( 1._wp + rctv0 * zqo_sat(ji,jj) )   ! over ocean 
  • NEMO/trunk/src/OCE/SBC/sbcblk_algo_coare3p0.F90

    r12615 r13295  
    394394      !!------------------------------------------------------------------- 
    395395      ! 
    396       DO_2D_11_11 
     396      DO_2D( 1, 1, 1, 1 ) 
    397397      ! 
    398398      zw = pwnd(ji,jj)   ! wind speed 
     
    430430      !!---------------------------------------------------------------------------------- 
    431431      ! 
    432       DO_2D_11_11 
     432      DO_2D( 1, 1, 1, 1 ) 
    433433      ! 
    434434      zta = pzeta(ji,jj) 
     
    481481      REAL(wp) :: zta, zphi_h, zphi_c, zpsi_k, zpsi_c, zf, zc, zstab 
    482482      ! 
    483       DO_2D_11_11 
     483      DO_2D( 1, 1, 1, 1 ) 
    484484      ! 
    485485      zta = pzeta(ji,jj) 
  • NEMO/trunk/src/OCE/SBC/sbcblk_algo_coare3p6.F90

    r12615 r13295  
    430430      !!---------------------------------------------------------------------------------- 
    431431      ! 
    432       DO_2D_11_11 
     432      DO_2D( 1, 1, 1, 1 ) 
    433433      ! 
    434434      zta = pzeta(ji,jj) 
     
    481481      REAL(wp) :: zta, zphi_h, zphi_c, zpsi_k, zpsi_c, zf, zc, zstab 
    482482      ! 
    483       DO_2D_11_11 
     483      DO_2D( 1, 1, 1, 1 ) 
    484484      ! 
    485485      zta = pzeta(ji,jj) 
  • NEMO/trunk/src/OCE/SBC/sbcblk_algo_ecmwf.F90

    r12615 r13295  
    410410      REAL(wp) :: zzeta, zx, ztmp, psi_unst, psi_stab, stab 
    411411      !!---------------------------------------------------------------------------------- 
    412       DO_2D_11_11 
     412      DO_2D( 1, 1, 1, 1 ) 
    413413      ! 
    414414      zzeta = MIN( pzeta(ji,jj) , 5._wp ) !! Very stable conditions (L positif and big!): 
     
    455455      !!---------------------------------------------------------------------------------- 
    456456      ! 
    457       DO_2D_11_11 
     457      DO_2D( 1, 1, 1, 1 ) 
    458458      ! 
    459459      zzeta = MIN(pzeta(ji,jj) , 5._wp)   ! Very stable conditions (L positif and big!): 
  • NEMO/trunk/src/OCE/SBC/sbcblk_algo_ncar.F90

    r12615 r13295  
    241241      !!---------------------------------------------------------------------------------- 
    242242      ! 
    243       DO_2D_11_11 
     243      DO_2D( 1, 1, 1, 1 ) 
    244244         ! 
    245245         zw  = pw10(ji,jj) 
     
    277277      REAL(wp) :: zx2, zx, zstab   ! local scalars 
    278278      !!---------------------------------------------------------------------------------- 
    279       DO_2D_11_11 
     279      DO_2D( 1, 1, 1, 1 ) 
    280280         zx2 = SQRT( ABS( 1._wp - 16._wp*pzeta(ji,jj) ) ) 
    281281         zx2 = MAX( zx2 , 1._wp ) 
     
    308308      !!---------------------------------------------------------------------------------- 
    309309      ! 
    310       DO_2D_11_11 
     310      DO_2D( 1, 1, 1, 1 ) 
    311311         zx2 = SQRT( ABS( 1._wp - 16._wp*pzeta(ji,jj) ) ) 
    312312         zx2 = MAX( zx2 , 1._wp ) 
  • NEMO/trunk/src/OCE/SBC/sbcblk_phy.F90

    r13165 r13295  
    181181      !!---------------------------------------------------------------------------------- 
    182182      ! 
    183       DO_2D_11_11 
     183      DO_2D( 1, 1, 1, 1 ) 
    184184         ztc  = ptak(ji,jj) - rt0   ! air temp, in deg. C 
    185185         ztc2 = ztc*ztc 
     
    270270      INTEGER  ::   ji, jj         ! dummy loop indices 
    271271      !!---------------------------------------------------------------------------------- 
    272       DO_2D_11_11 
     272      DO_2D( 1, 1, 1, 1 ) 
    273273         gamma_moist_vctr(ji,jj) = gamma_moist_sclr( ptak(ji,jj), pqa(ji,jj) ) 
    274274      END_2D 
     
    315315      !!------------------------------------------------------------------- 
    316316      ! 
    317       DO_2D_11_11 
     317      DO_2D( 1, 1, 1, 1 ) 
    318318         ! 
    319319         zqa = (1._wp + rctv0*pqa(ji,jj)) 
     
    351351      !!------------------------------------------------------------------- 
    352352      ! 
    353       DO_2D_11_11 
     353      DO_2D( 1, 1, 1, 1 ) 
    354354         ! 
    355355         zqa = 0.5_wp*(pqa(ji,jj)+pssq(ji,jj))                                        ! ~ mean q within the layer... 
     
    448448      !!---------------------------------------------------------------------------------- 
    449449      ! 
    450       DO_2D_11_11 
     450      DO_2D( 1, 1, 1, 1 ) 
    451451         ! 
    452452         ze_sat =  e_sat_sclr( ptak(ji,jj) ) 
     
    473473      !!---------------------------------------------------------------------------------- 
    474474      ! 
    475       DO_2D_11_11 
     475      DO_2D( 1, 1, 1, 1 ) 
    476476         ze = prha(ji,jj)*e_sat_sclr(ptak(ji,jj)) 
    477477         q_air_rh(ji,jj) = ze*reps0/(pslp(ji,jj) - (1. - reps0)*ze) 
     
    511511      INTEGER  ::   ji, jj     ! dummy loop indices 
    512512      !!---------------------------------------------------------------------------------- 
    513       DO_2D_11_11 
     513      DO_2D( 1, 1, 1, 1 ) 
    514514 
    515515         zdt = pTa(ji,jj) - pTs(ji,jj) ;  zdt = SIGN( MAX(ABS(zdt),1.E-6_wp), zdt ) 
     
    621621      IF( PRESENT(pfact_evap) ) zfact_evap = pfact_evap 
    622622 
    623       DO_2D_11_11 
     623      DO_2D( 1, 1, 1, 1 ) 
    624624 
    625625         CALL BULK_FORMULA_SCLR( pzu, pTs(ji,jj), pqs(ji,jj), pTa(ji,jj), pqa(ji,jj), & 
  • NEMO/trunk/src/OCE/SBC/sbcblk_skin_coare.F90

    r12489 r13295  
    8989      REAL(wp) :: zQabs, zdlt, zfr, zalfa, zqlat, zus 
    9090      !!--------------------------------------------------------------------- 
    91       DO_2D_11_11 
     91      DO_2D( 1, 1, 1, 1 ) 
    9292 
    9393         zQabs = pQnsol(ji,jj) ! first guess of heat flux absorbed within the viscous sublayer of thicknes delta, 
     
    156156      ztime = REAL(nsec_day,wp)/(24._wp*3600._wp) ! time of current time step since 00:00 for current day (UTC) -> ztime = 0 -> 00:00 / ztime = 0.5 -> 12:00 ... 
    157157 
    158       DO_2D_11_11 
     158      DO_2D( 1, 1, 1, 1 ) 
    159159 
    160160         l_exit       = .FALSE. 
  • NEMO/trunk/src/OCE/SBC/sbcblk_skin_ecmwf.F90

    r12489 r13295  
    9595      REAL(wp) :: zQabs, zdlt, zfr, zalfa, zus 
    9696      !!--------------------------------------------------------------------- 
    97       DO_2D_11_11 
     97      DO_2D( 1, 1, 1, 1 ) 
    9898 
    9999         zQabs = pQnsol(ji,jj) ! first guess of heat flux absorbed within the viscous sublayer of thicknes delta, 
     
    173173      IF( PRESENT(pustk) ) l_pustk_known = .TRUE. 
    174174 
    175       DO_2D_11_11 
     175      DO_2D( 1, 1, 1, 1 ) 
    176176 
    177177         zHwl = Hz_wl(ji,jj) ! first guess for warm-layer depth (and unique..., less advanced than COARE3p6 !) 
  • NEMO/trunk/src/OCE/SBC/sbccpl.F90

    r13286 r13295  
    11701170            !                               
    11711171            IF( srcv(jpr_otx1)%clgrid == 'T' ) THEN 
    1172                DO_2D_00_00 
     1172               DO_2D( 0, 0, 0, 0 ) 
    11731173                  frcv(jpr_otx1)%z3(ji,jj,1) = 0.5 * ( frcv(jpr_otx1)%z3(ji+1,jj  ,1) + frcv(jpr_otx1)%z3(ji,jj,1) ) 
    11741174                  frcv(jpr_oty1)%z3(ji,jj,1) = 0.5 * ( frcv(jpr_oty1)%z3(ji  ,jj+1,1) + frcv(jpr_oty1)%z3(ji,jj,1) ) 
     
    11941194         ! => need to be done only when otx1 was changed 
    11951195         IF( llnewtx ) THEN 
    1196             DO_2D_00_00 
     1196            DO_2D( 0, 0, 0, 0 ) 
    11971197               zzx = frcv(jpr_otx1)%z3(ji-1,jj  ,1) + frcv(jpr_otx1)%z3(ji,jj,1) 
    11981198               zzy = frcv(jpr_oty1)%z3(ji  ,jj-1,1) + frcv(jpr_oty1)%z3(ji,jj,1) 
     
    12191219         IF( llnewtau ) THEN  
    12201220            zcoef = 1. / ( zrhoa * zcdrag )  
    1221             DO_2D_11_11 
     1221            DO_2D( 1, 1, 1, 1 ) 
    12221222               frcv(jpr_w10m)%z3(ji,jj,1) = SQRT( frcv(jpr_taum)%z3(ji,jj,1) * zcoef ) 
    12231223            END_2D 
     
    15491549            p_tauj(:,:) = frcv(jpr_ity1)%z3(:,:,1) 
    15501550         CASE( 'T' ) 
    1551             DO_2D_00_00 
     1551            DO_2D( 0, 0, 0, 0 ) 
    15521552               ! take care of the land-sea mask to avoid "pollution" of coastal stress. p[uv]taui used in frazil and  rheology  
    15531553               zztmp1 = 0.5_wp * ( 2. - umask(ji,jj,1) ) * MAX( tmask(ji,jj,1),tmask(ji+1,jj  ,1) ) 
     
    23652365            SELECT CASE( TRIM( sn_snd_crt%cldes ) ) 
    23662366            CASE( 'oce only'             )      ! C-grid ==> T 
    2367                DO_2D_00_00 
     2367               DO_2D( 0, 0, 0, 0 ) 
    23682368                  zotx1(ji,jj) = 0.5 * ( uu(ji,jj,1,Kmm) + uu(ji-1,jj  ,1,Kmm) ) 
    23692369                  zoty1(ji,jj) = 0.5 * ( vv(ji,jj,1,Kmm) + vv(ji  ,jj-1,1,Kmm) )  
    23702370               END_2D 
    23712371            CASE( 'weighted oce and ice' )      ! Ocean and Ice on C-grid ==> T   
    2372                DO_2D_00_00 
     2372               DO_2D( 0, 0, 0, 0 ) 
    23732373                  zotx1(ji,jj) = 0.5 * ( uu   (ji,jj,1,Kmm) + uu   (ji-1,jj  ,1,Kmm) ) * zfr_l(ji,jj)   
    23742374                  zoty1(ji,jj) = 0.5 * ( vv   (ji,jj,1,Kmm) + vv   (ji  ,jj-1,1,Kmm) ) * zfr_l(ji,jj) 
     
    23782378               CALL lbc_lnk_multi( 'sbccpl', zitx1, 'T', -1.0_wp, zity1, 'T', -1.0_wp ) 
    23792379            CASE( 'mixed oce-ice'        )      ! Ocean and Ice on C-grid ==> T 
    2380                DO_2D_00_00 
     2380               DO_2D( 0, 0, 0, 0 ) 
    23812381                  zotx1(ji,jj) = 0.5 * ( uu   (ji,jj,1,Kmm) + uu   (ji-1,jj  ,1,Kmm) ) * zfr_l(ji,jj)   & 
    23822382                     &         + 0.5 * ( u_ice(ji,jj  )     + u_ice(ji-1,jj    )     ) *  fr_i(ji,jj) 
     
    24422442          SELECT CASE( TRIM( sn_snd_crtw%cldes ) )  
    24432443          CASE( 'oce only'             )      ! C-grid ==> T  
    2444              DO_2D_00_00 
     2444             DO_2D( 0, 0, 0, 0 ) 
    24452445                zotx1(ji,jj) = 0.5 * ( uu(ji,jj,1,Kmm) + uu(ji-1,jj  ,1,Kmm) )  
    24462446                zoty1(ji,jj) = 0.5 * ( vv(ji,jj,1,Kmm) + vv(ji , jj-1,1,Kmm) )   
    24472447             END_2D 
    24482448          CASE( 'weighted oce and ice' )      ! Ocean and Ice on C-grid ==> T    
    2449              DO_2D_00_00 
     2449             DO_2D( 0, 0, 0, 0 ) 
    24502450                zotx1(ji,jj) = 0.5 * ( uu   (ji,jj,1,Kmm) + uu   (ji-1,jj  ,1,Kmm) ) * zfr_l(ji,jj)    
    24512451                zoty1(ji,jj) = 0.5 * ( vv   (ji,jj,1,Kmm) + vv   (ji  ,jj-1,1,Kmm) ) * zfr_l(ji,jj)  
     
    24552455             CALL lbc_lnk_multi( 'sbccpl', zitx1, 'T', -1.0_wp,  zity1, 'T', -1.0_wp )  
    24562456          CASE( 'mixed oce-ice'        )      ! Ocean and Ice on C-grid ==> T   
    2457              DO_2D_00_00 
     2457             DO_2D( 0, 0, 0, 0 ) 
    24582458                zotx1(ji,jj) = 0.5 * ( uu   (ji,jj,1,Kmm) + uu   (ji-1,jj  ,1,Kmm) ) * zfr_l(ji,jj)   &  
    24592459                   &         + 0.5 * ( u_ice(ji,jj  ) + u_ice(ji-1,jj    ) ) *  fr_i(ji,jj)  
  • NEMO/trunk/src/OCE/SBC/sbcdcy.F90

    r12489 r13295  
    110110 
    111111      imask_night(:,:) = 0 
    112       DO_2D_11_11 
     112      DO_2D( 1, 1, 1, 1 ) 
    113113         ztmpm = 0._wp 
    114114         IF( ABS(rab(ji,jj)) < 1. ) THEN         ! day duration is less than 24h 
     
    193193 
    194194         zsin = SIN( zdecrad )   ;   zcos = COS( zdecrad ) 
    195          DO_2D_11_11 
     195         DO_2D( 1, 1, 1, 1 ) 
    196196            ztmp = rad * gphit(ji,jj) 
    197197            raa(ji,jj) = SIN( ztmp ) * zsin 
     
    202202         ! rab to test if the day time is equal to 0, less than 24h of full day 
    203203         rab(:,:) = -raa(:,:) / rbb(:,:) 
    204          DO_2D_11_11 
     204         DO_2D( 1, 1, 1, 1 ) 
    205205            IF( ABS(rab(ji,jj)) < 1._wp ) THEN         ! day duration is less than 24h 
    206206               ! When is it night? 
     
    226226         !         Avoid possible infinite scaling factor, associated with very short daylight 
    227227         !         periods, by ignoring periods less than 1/1000th of a day (ticket #1040) 
    228          DO_2D_11_11 
     228         DO_2D( 1, 1, 1, 1 ) 
    229229            IF( ABS(rab(ji,jj)) < 1._wp ) THEN         ! day duration is less than 24h 
    230230               rscal(ji,jj) = 0.0_wp 
  • NEMO/trunk/src/OCE/SBC/sbcflx.F90

    r13226 r13295  
    129129         ELSE                  ;   qsr(:,:) =          sf(jp_qsr)%fnow(:,:,1) 
    130130         ENDIF 
    131          DO_2D_11_11 
     131         DO_2D( 1, 1, 1, 1 ) 
    132132            utau(ji,jj) = sf(jp_utau)%fnow(ji,jj,1) 
    133133            vtau(ji,jj) = sf(jp_vtau)%fnow(ji,jj,1) 
     
    143143         !                                                        ! module of wind stress and wind speed at T-point 
    144144         zcoef = 1. / ( zrhoa * zcdrag ) 
    145          DO_2D_00_00 
     145         DO_2D( 0, 0, 0, 0 ) 
    146146            ztx = utau(ji-1,jj  ) + utau(ji,jj)  
    147147            zty = vtau(ji  ,jj-1) + vtau(ji,jj)  
  • NEMO/trunk/src/OCE/SBC/sbcice_cice.F90

    r13286 r13295  
    217217! T point to U point 
    218218! T point to V point 
    219       DO_2D_10_10 
     219      DO_2D( 1, 0, 1, 0 ) 
    220220         fr_iu(ji,jj)=0.5*(fr_i(ji,jj)+fr_i(ji+1,jj))*umask(ji,jj,1) 
    221221         fr_iv(ji,jj)=0.5*(fr_i(ji,jj)+fr_i(ji,jj+1))*vmask(ji,jj,1) 
     
    312312! x comp of wind stress (CI_1) 
    313313! U point to F point 
    314          DO_2D_10_11 
     314         DO_2D( 1, 0, 1, 1 ) 
    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_11_10 
     322         DO_2D( 1, 1, 1, 0 ) 
    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) 
     
    335335            qla_ice(:,:,1)= - ( emp_ice(:,:)+sprecip(:,:) ) * rLsub 
    336336! End of temporary code 
    337             DO_2D_11_11 
     337            DO_2D( 1, 1, 1, 1 ) 
    338338               IF(fr_i(ji,jj).eq.0.0) THEN 
    339339                  DO jl=1,ncat 
     
    437437! x comp and y comp of surface ocean current 
    438438! U point to F point 
    439       DO_2D_10_11 
     439      DO_2D( 1, 0, 1, 1 ) 
    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_11_10 
     445      DO_2D( 1, 1, 1, 0 ) 
    446446         ztmp(ji,jj)=0.5*(ssv_m(ji,jj)+ssv_m(ji+1,jj))*fmask(ji,jj,1) 
    447447      END_2D 
     
    467467! x comp and y comp of sea surface slope (on F points) 
    468468! T point to F point 
    469       DO_2D_10_10 
     469      DO_2D( 1, 0, 1, 0 ) 
    470470         ztmp(ji,jj)=0.5 * (  (zpice(ji+1,jj  )-zpice(ji,jj  )) * r1_e1u(ji,jj  )    & 
    471471            &               + (zpice(ji+1,jj+1)-zpice(ji,jj+1)) * r1_e1u(ji,jj+1)  ) * fmask(ji,jj,1) 
     
    474474 
    475475! T point to F point 
    476       DO_2D_10_10 
     476      DO_2D( 1, 0, 1, 0 ) 
    477477         ztmp(ji,jj)=0.5 * (  (zpice(ji  ,jj+1)-zpice(ji  ,jj)) * r1_e2v(ji  ,jj)    & 
    478478            &               + (zpice(ji+1,jj+1)-zpice(ji+1,jj)) * r1_e2v(ji+1,jj)  ) *  fmask(ji,jj,1) 
     
    503503      ss_iou(:,:)=0.0 
    504504! F point to U point 
    505       DO_2D_00_00 
     505      DO_2D( 0, 0, 0, 0 ) 
    506506         ss_iou(ji,jj) = 0.5 * ( ztmp1(ji,jj-1) + ztmp1(ji,jj) ) * umask(ji,jj,1) 
    507507      END_2D 
     
    513513! F point to V point 
    514514 
    515       DO_2D_10_00 
     515      DO_2D( 1, 0, 0, 0 ) 
    516516         ss_iov(ji,jj) = 0.5 * ( ztmp1(ji-1,jj) + ztmp1(ji,jj) ) * vmask(ji,jj,1) 
    517517      END_2D 
     
    597597      CALL lbc_lnk( 'sbcice_cice', qsr , 'T', 1.0_wp ) 
    598598 
    599       DO_2D_11_11 
     599      DO_2D( 1, 1, 1, 1 ) 
    600600         nfrzmlt(ji,jj)=MAX(nfrzmlt(ji,jj),0.0) 
    601601      END_2D 
     
    621621! T point to U point 
    622622! T point to V point 
    623       DO_2D_10_10 
     623      DO_2D( 1, 0, 1, 0 ) 
    624624         fr_iu(ji,jj)=0.5*(fr_i(ji,jj)+fr_i(ji+1,jj))*umask(ji,jj,1) 
    625625         fr_iv(ji,jj)=0.5*(fr_i(ji,jj)+fr_i(ji,jj+1))*vmask(ji,jj,1) 
     
    981981 
    982982      pn(:,:)=0.0 
    983       DO_2D_10_10 
     983      DO_2D( 1, 0, 1, 0 ) 
    984984         pn(ji,jj)=pc(ji+1-ji_off,jj+1-jj_off,1) 
    985985      END_2D 
  • NEMO/trunk/src/OCE/SBC/sbcice_if.F90

    r12377 r13295  
    109109 
    110110         ! Flux and ice fraction computation 
    111          DO_2D_11_11 
     111         DO_2D( 1, 1, 1, 1 ) 
    112112            ! 
    113113            zt_fzp  = fr_i(ji,jj)                        ! freezing point temperature 
  • NEMO/trunk/src/OCE/SBC/sbcrnf.F90

    r13286 r13295  
    209209      IF( ln_rnf_depth .OR. ln_rnf_depth_ini ) THEN      !==   runoff distributed over several levels   ==! 
    210210         IF( ln_linssh ) THEN    !* constant volume case : just apply the runoff input flow 
    211             DO_2D_11_11 
     211            DO_2D( 1, 1, 1, 1 ) 
    212212               DO jk = 1, nk_rnf(ji,jj) 
    213213                  phdivn(ji,jj,jk) = phdivn(ji,jj,jk) - ( rnf(ji,jj) + rnf_b(ji,jj) ) * zfact * r1_rho0 / h_rnf(ji,jj) 
     
    215215            END_2D 
    216216         ELSE                    !* variable volume case 
    217             DO_2D_11_11 
     217            DO_2D( 1, 1, 1, 1 ) 
    218218               h_rnf(ji,jj) = 0._wp 
    219219               DO jk = 1, nk_rnf(ji,jj)                           ! recalculates h_rnf to be the depth in metres 
     
    361361         ! 
    362362         nk_rnf(:,:) = 0                               ! set the number of level over which river runoffs are applied 
    363          DO_2D_11_11 
     363         DO_2D( 1, 1, 1, 1 ) 
    364364            IF( h_rnf(ji,jj) > 0._wp ) THEN 
    365365               jk = 2 
     
    374374            ENDIF 
    375375         END_2D 
    376          DO_2D_11_11 
     376         DO_2D( 1, 1, 1, 1 ) 
    377377            h_rnf(ji,jj) = 0._wp 
    378378            DO jk = 1, nk_rnf(ji,jj) 
     
    404404         WHERE( zrnfcl(:,:,1) > 0._wp )  h_rnf(:,:) = zacoef * zrnfcl(:,:,1)   ! compute depth for all runoffs 
    405405         ! 
    406          DO_2D_11_11 
     406         DO_2D( 1, 1, 1, 1 ) 
    407407            IF( zrnfcl(ji,jj,1) > 0._wp ) THEN 
    408408               jk = mbkt(ji,jj) 
     
    412412         ! 
    413413         nk_rnf(:,:) = 0                       ! number of levels on which runoffs are distributed 
    414          DO_2D_11_11 
     414         DO_2D( 1, 1, 1, 1 ) 
    415415            IF( zrnfcl(ji,jj,1) > 0._wp ) THEN 
    416416               jk = 2 
     
    423423         END_2D 
    424424         ! 
    425          DO_2D_11_11 
     425         DO_2D( 1, 1, 1, 1 ) 
    426426            h_rnf(ji,jj) = 0._wp 
    427427            DO jk = 1, nk_rnf(ji,jj) 
  • NEMO/trunk/src/OCE/SBC/sbcssr.F90

    r13226 r13295  
    9595            ! 
    9696            IF( nn_sstr == 1 ) THEN                                   !* Temperature restoring term 
    97                DO_2D_11_11 
     97               DO_2D( 1, 1, 1, 1 ) 
    9898                  zqrp = rn_dqdt * ( sst_m(ji,jj) - sf_sst(1)%fnow(ji,jj,1) ) * tmask(ji,jj,1) 
    9999                  qns(ji,jj) = qns(ji,jj) + zqrp 
     
    105105              ! use fraction of ice ( fr_i ) to adjust relaxation under ice if nn_sssr_ice .ne. 1 
    106106              ! n.b. coefice is initialised and fixed to 1._wp if nn_sssr_ice = 1 
    107                DO_2D_11_11 
     107               DO_2D( 1, 1, 1, 1 ) 
    108108                  SELECT CASE ( nn_sssr_ice ) 
    109109                    CASE ( 0 )    ;  coefice(ji,jj) = 1._wp - fr_i(ji,jj)              ! no/reduced damping under ice 
     
    115115            IF( nn_sssr == 1 ) THEN                                   !* Salinity damping term (salt flux only (sfx)) 
    116116               zsrp = rn_deds / rday                                  ! from [mm/day] to [kg/m2/s] 
    117                DO_2D_11_11 
     117               DO_2D( 1, 1, 1, 1 ) 
    118118                  zerp = zsrp * ( 1. - 2.*rnfmsk(ji,jj) )   &      ! No damping in vicinity of river mouths 
    119119                     &        *   coefice(ji,jj)            &      ! Optional control of damping under sea-ice 
     
    126126               zsrp = rn_deds / rday                                  ! from [mm/day] to [kg/m2/s] 
    127127               zerp_bnd = rn_sssr_bnd / rday                          !       -              -     
    128                DO_2D_11_11 
     128               DO_2D( 1, 1, 1, 1 ) 
    129129                  zerp = zsrp * ( 1. - 2.*rnfmsk(ji,jj) )   &      ! No damping in vicinity of river mouths 
    130130                     &        *   coefice(ji,jj)            &      ! Optional control of damping under sea-ice 
  • NEMO/trunk/src/OCE/SBC/sbcwave.F90

    r13237 r13295  
    113113      IF( ll_st_bv_li ) THEN   ! (Eq. (19) in Breivik et al. (2014) ) 
    114114         zfac = 2.0_wp * rpi / 16.0_wp 
    115          DO_2D_11_11 
     115         DO_2D( 1, 1, 1, 1 ) 
    116116            ! Stokes drift velocity estimated from Hs and Tmean 
    117117            ztransp = zfac * hsw(ji,jj)*hsw(ji,jj) / MAX( wmp(ji,jj), 0.0000001_wp ) 
     
    121121            zk_t(ji,jj) = ABS( tsd2d(ji,jj) ) / MAX( ABS( 5.97_wp*ztransp ), 0.0000001_wp ) 
    122122         END_2D 
    123          DO_2D_10_10 
     123         DO_2D( 1, 0, 1, 0 ) 
    124124            zk_u(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji+1,jj) ) 
    125125            zk_v(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji,jj+1) ) 
     
    129129         END_2D 
    130130      ELSE IF( ll_st_peakfr ) THEN    ! peak wave number calculated from the peak frequency received by the wave model 
    131          DO_2D_11_11 
     131         DO_2D( 1, 1, 1, 1 ) 
    132132            zk_t(ji,jj) = ( 2.0_wp * rpi * wfreq(ji,jj) ) * ( 2.0_wp * rpi * wfreq(ji,jj) ) / grav 
    133133         END_2D 
    134          DO_2D_10_10 
     134         DO_2D( 1, 0, 1, 0 ) 
    135135            zk_u(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji+1,jj) ) 
    136136            zk_v(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji,jj+1) ) 
     
    143143      !                       !==  horizontal Stokes Drift 3D velocity  ==! 
    144144      IF( ll_st_bv2014 ) THEN 
    145          DO_3D_00_00( 1, jpkm1 ) 
     145         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    146146            zdep_u = 0.5_wp * ( gdept(ji,jj,jk,Kmm) + gdept(ji+1,jj,jk,Kmm) ) 
    147147            zdep_v = 0.5_wp * ( gdept(ji,jj,jk,Kmm) + gdept(ji,jj+1,jk,Kmm) ) 
     
    158158      ELSE IF( ll_st_li2017 .OR. ll_st_peakfr ) THEN 
    159159         ALLOCATE( zstokes_psi_u_top(jpi,jpj), zstokes_psi_v_top(jpi,jpj) ) 
    160          DO_2D_10_10 
     160         DO_2D( 1, 0, 1, 0 ) 
    161161            zstokes_psi_u_top(ji,jj) = 0._wp 
    162162            zstokes_psi_v_top(ji,jj) = 0._wp 
     
    164164         zsqrtpi = SQRT(rpi) 
    165165         z_two_thirds = 2.0_wp / 3.0_wp 
    166          DO_3D_00_00( 1, jpkm1 ) 
     166         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    167167            zbot_u = ( gdepw(ji,jj,jk+1,Kmm) + gdepw(ji+1,jj,jk+1,Kmm) )  ! 2 * bottom depth 
    168168            zbot_v = ( gdepw(ji,jj,jk+1,Kmm) + gdepw(ji,jj+1,jk+1,Kmm) )  ! 2 * bottom depth 
     
    204204      !                       !==  vertical Stokes Drift 3D velocity  ==! 
    205205      ! 
    206       DO_3D_01_01( 1, jpkm1 ) 
     206      DO_3D( 0, 1, 0, 1, 1, jpkm1 ) 
    207207         ze3divh(ji,jj,jk) = (  e2u(ji  ,jj) * e3u(ji  ,jj,jk,Kmm) * usd(ji  ,jj,jk)    & 
    208208            &                 - e2u(ji-1,jj) * e3u(ji-1,jj,jk,Kmm) * usd(ji-1,jj,jk)    & 
     
    263263      ! 
    264264      IF( ln_tauw ) THEN 
    265          DO_2D_10_10 
     265         DO_2D( 1, 0, 1, 0 ) 
    266266            ! Stress components at u- & v-points 
    267267            utau(ji,jj) = 0.5_wp * ( tauw_x(ji,jj) + tauw_x(ji+1,jj) ) 
  • NEMO/trunk/src/OCE/STO/stopar.F90

    r13286 r13295  
    837837      REAL(wp) :: gran   ! Gaussian random number (forced KIND=8 as in kiss_gaussian) 
    838838 
    839       DO_2D_11_11 
     839      DO_2D( 1, 1, 1, 1 ) 
    840840         CALL kiss_gaussian( gran ) 
    841841         psto(ji,jj) = gran 
     
    855855      INTEGER  :: ji, jj 
    856856 
    857       DO_2D_00_00 
     857      DO_2D( 0, 0, 0, 0 ) 
    858858         psto(ji,jj) = 0.5_wp * psto(ji,jj) + 0.125_wp * & 
    859859                           &  ( psto(ji-1,jj) + psto(ji+1,jj) +  & 
  • NEMO/trunk/src/OCE/STO/stopts.F90

    r12377 r13295  
    9595      ! Eliminate any possible negative salinity 
    9696      DO jdof = 1, nn_sto_eos 
    97          DO_3D_11_11( 1, jpkm1 ) 
     97         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    9898            pts_ran(ji,jj,jk,jp_sal,jdof) = MIN( ABS(pts_ran(ji,jj,jk,jp_sal,jdof)) ,  & 
    9999                                          &      MAX(pts(ji,jj,jk,jp_sal),0._wp) )     & 
  • NEMO/trunk/src/OCE/TRA/eosbn2.F90

    r13237 r13295  
    238238      CASE( np_teos10, np_eos80 )                !==  polynomial TEOS-10 / EOS-80 ==! 
    239239         ! 
    240          DO_3D_11_11( 1, jpkm1 ) 
     240         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    241241            ! 
    242242            zh  = pdep(ji,jj,jk) * r1_Z0                                  ! depth 
     
    274274      CASE( np_seos )                !==  simplified EOS  ==! 
    275275         ! 
    276          DO_3D_11_11( 1, jpkm1 ) 
     276         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    277277            zt  = pts  (ji,jj,jk,jp_tem) - 10._wp 
    278278            zs  = pts  (ji,jj,jk,jp_sal) - 35._wp 
     
    338338            END DO 
    339339            ! 
    340             DO_3D_11_11( 1, jpkm1 ) 
     340            DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    341341               ! 
    342342               ! compute density (2*nn_sto_eos) times: 
     
    388388         ! Non-stochastic equation of state 
    389389         ELSE 
    390             DO_3D_11_11( 1, jpkm1 ) 
     390            DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    391391               ! 
    392392               zh  = pdep(ji,jj,jk) * r1_Z0                                  ! depth 
     
    426426      CASE( np_seos )                !==  simplified EOS  ==! 
    427427         ! 
    428          DO_3D_11_11( 1, jpkm1 ) 
     428         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    429429            zt  = pts  (ji,jj,jk,jp_tem) - 10._wp 
    430430            zs  = pts  (ji,jj,jk,jp_sal) - 35._wp 
     
    480480      CASE( np_teos10, np_eos80 )                !==  polynomial TEOS-10 / EOS-80 ==! 
    481481         ! 
    482          DO_2D_11_11 
     482         DO_2D( 1, 1, 1, 1 ) 
    483483            ! 
    484484            zh  = pdep(ji,jj) * r1_Z0                                  ! depth 
     
    515515      CASE( np_seos )                !==  simplified EOS  ==! 
    516516         ! 
    517          DO_2D_11_11 
     517         DO_2D( 1, 1, 1, 1 ) 
    518518            ! 
    519519            zt    = pts  (ji,jj,jp_tem)  - 10._wp 
     
    563563      CASE( np_teos10, np_eos80 )                !==  polynomial TEOS-10 / EOS-80 ==! 
    564564         ! 
    565          DO_3D_11_11( 1, jpkm1 ) 
     565         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    566566            ! 
    567567            zh  = gdept(ji,jj,jk,Kmm) * r1_Z0                                ! depth 
     
    616616      CASE( np_seos )                  !==  simplified EOS  ==! 
    617617         ! 
    618          DO_3D_11_11( 1, jpkm1 ) 
     618         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    619619            zt  = pts (ji,jj,jk,jp_tem) - 10._wp   ! pot. temperature anomaly (t-T0) 
    620620            zs  = pts (ji,jj,jk,jp_sal) - 35._wp   ! abs. salinity anomaly (s-S0) 
     
    670670      CASE( np_teos10, np_eos80 )                !==  polynomial TEOS-10 / EOS-80 ==! 
    671671         ! 
    672          DO_2D_11_11 
     672         DO_2D( 1, 1, 1, 1 ) 
    673673            ! 
    674674            zh  = pdep(ji,jj) * r1_Z0                                  ! depth 
     
    723723      CASE( np_seos )                  !==  simplified EOS  ==! 
    724724         ! 
    725          DO_2D_11_11 
     725         DO_2D( 1, 1, 1, 1 ) 
    726726            ! 
    727727            zt    = pts  (ji,jj,jp_tem) - 10._wp   ! pot. temperature anomaly (t-T0) 
     
    873873      IF( ln_timing )   CALL timing_start('bn2') 
    874874      ! 
    875       DO_3D_11_11( 2, jpkm1 ) 
     875      DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    876876         zrw =   ( gdepw(ji,jj,jk  ,Kmm) - gdept(ji,jj,jk,Kmm) )   & 
    877877            &  / ( gdept(ji,jj,jk-1,Kmm) - gdept(ji,jj,jk,Kmm) )  
     
    921921      z1_T0   = 1._wp/40._wp 
    922922      ! 
    923       DO_2D_11_11 
     923      DO_2D( 1, 1, 1, 1 ) 
    924924         ! 
    925925         zt  = ctmp   (ji,jj) * z1_T0 
     
    974974         ! 
    975975         z1_S0 = 1._wp / 35.16504_wp 
    976          DO_2D_11_11 
     976         DO_2D( 1, 1, 1, 1 ) 
    977977            zs= SQRT( ABS( psal(ji,jj) ) * z1_S0 )           ! square root salinity 
    978978            ptf(ji,jj) = ((((1.46873e-03_wp*zs-9.64972e-03_wp)*zs+2.28348e-02_wp)*zs & 
     
    10811081      CASE( np_teos10, np_eos80 )                !==  polynomial TEOS-10 / EOS-80 ==! 
    10821082         ! 
    1083          DO_3D_11_11( 1, jpkm1 ) 
     1083         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    10841084            ! 
    10851085            zh  = gdept(ji,jj,jk,Kmm) * r1_Z0                                ! depth 
     
    11401140      CASE( np_seos )                !==  Vallis (2006) simplified EOS  ==! 
    11411141         ! 
    1142          DO_3D_11_11( 1, jpkm1 ) 
     1142         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    11431143            zt  = pts(ji,jj,jk,jp_tem) - 10._wp  ! temperature anomaly (t-T0) 
    11441144            zs = pts (ji,jj,jk,jp_sal) - 35._wp  ! abs. salinity anomaly (s-S0) 
  • NEMO/trunk/src/OCE/TRA/traadv_cen.F90

    r13237 r13295  
    104104         ! 
    105105         CASE(  2  )                         !* 2nd order centered 
    106             DO_3D_10_10( 1, jpkm1 ) 
     106            DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    107107               zwx(ji,jj,jk) = 0.5_wp * pU(ji,jj,jk) * ( pt(ji,jj,jk,jn,Kmm) + pt(ji+1,jj  ,jk,jn,Kmm) ) 
    108108               zwy(ji,jj,jk) = 0.5_wp * pV(ji,jj,jk) * ( pt(ji,jj,jk,jn,Kmm) + pt(ji  ,jj+1,jk,jn,Kmm) ) 
     
    112112            ztu(:,:,jpk) = 0._wp                   ! Bottom value : flux set to zero 
    113113            ztv(:,:,jpk) = 0._wp 
    114             DO_3D_00_00( 1, jpkm1 ) 
     114            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    115115               ztu(ji,jj,jk) = ( pt(ji+1,jj  ,jk,jn,Kmm) - pt(ji,jj,jk,jn,Kmm) ) * umask(ji,jj,jk) 
    116116               ztv(ji,jj,jk) = ( pt(ji  ,jj+1,jk,jn,Kmm) - pt(ji,jj,jk,jn,Kmm) ) * vmask(ji,jj,jk) 
     
    118118            CALL lbc_lnk_multi( 'traadv_cen', ztu, 'U', -1.0_wp , ztv, 'V', -1.0_wp )   ! Lateral boundary cond. 
    119119            ! 
    120             DO_3D_00_10( 1, jpkm1 ) 
     120            DO_3D( 0, 0, 1, 0, 1, jpkm1 ) 
    121121               zC2t_u = pt(ji,jj,jk,jn,Kmm) + pt(ji+1,jj  ,jk,jn,Kmm)   ! C2 interpolation of T at u- & v-points (x2) 
    122122               zC2t_v = pt(ji,jj,jk,jn,Kmm) + pt(ji  ,jj+1,jk,jn,Kmm) 
     
    136136         ! 
    137137         CASE(  2  )                         !* 2nd order centered 
    138             DO_3D_00_00( 2, jpk ) 
     138            DO_3D( 0, 0, 0, 0, 2, jpk ) 
    139139               zwz(ji,jj,jk) = 0.5 * pW(ji,jj,jk) * ( pt(ji,jj,jk,jn,Kmm) + pt(ji,jj,jk-1,jn,Kmm) ) * wmask(ji,jj,jk) 
    140140            END_3D 
     
    142142         CASE(  4  )                         !* 4th order compact 
    143143            CALL interp_4th_cpt( pt(:,:,:,jn,Kmm) , ztw )      ! ztw = interpolated value of T at w-point 
    144             DO_3D_00_00( 2, jpkm1 ) 
     144            DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    145145               zwz(ji,jj,jk) = pW(ji,jj,jk) * ztw(ji,jj,jk) * wmask(ji,jj,jk) 
    146146            END_3D 
     
    150150         IF( ln_linssh ) THEN                !* top value   (linear free surf. only as zwz is multiplied by wmask) 
    151151            IF( ln_isfcav ) THEN                  ! ice-shelf cavities (top of the ocean) 
    152                DO_2D_11_11 
     152               DO_2D( 1, 1, 1, 1 ) 
    153153                  zwz(ji,jj, mikt(ji,jj) ) = pW(ji,jj,mikt(ji,jj)) * pt(ji,jj,mikt(ji,jj),jn,Kmm)  
    154154               END_2D 
     
    158158         ENDIF 
    159159         !                
    160          DO_3D_00_00( 1, jpkm1 ) 
     160         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    161161            pt(ji,jj,jk,jn,Krhs) = pt(ji,jj,jk,jn,Krhs)    & 
    162162               &             - (  zwx(ji,jj,jk) - zwx(ji-1,jj  ,jk  )    & 
  • NEMO/trunk/src/OCE/TRA/traadv_fct.F90

    r13286 r13295  
    139139      IF( ll_zAimp ) THEN 
    140140         ALLOCATE(zwdia(jpi,jpj,jpk), zwinf(jpi,jpj,jpk),zwsup(jpi,jpj,jpk)) 
    141          DO_3D_00_00( 1, jpkm1 ) 
     141         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    142142            zwdia(ji,jj,jk) =  1._wp + p2dt * ( MAX( wi(ji,jj,jk) , 0._wp ) - MIN( wi(ji,jj,jk+1) , 0._wp ) )   & 
    143143            &                               / e3t(ji,jj,jk,Krhs) 
     
    151151         !        !==  upstream advection with initial mass fluxes & intermediate update  ==! 
    152152         !                    !* upstream tracer flux in the i and j direction  
    153          DO_3D_10_10( 1, jpkm1 ) 
     153         DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    154154            ! upstream scheme 
    155155            zfp_ui = pU(ji,jj,jk) + ABS( pU(ji,jj,jk) ) 
     
    161161         END_3D 
    162162         !                    !* upstream tracer flux in the k direction *! 
    163          DO_3D_11_11( 2, jpkm1 ) 
     163         DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    164164            zfp_wk = pW(ji,jj,jk) + ABS( pW(ji,jj,jk) ) 
    165165            zfm_wk = pW(ji,jj,jk) - ABS( pW(ji,jj,jk) ) 
     
    168168         IF( ln_linssh ) THEN    ! top ocean value (only in linear free surface as zwz has been w-masked) 
    169169            IF( ln_isfcav ) THEN             ! top of the ice-shelf cavities and at the ocean surface 
    170                DO_2D_11_11 
     170               DO_2D( 1, 1, 1, 1 ) 
    171171                  zwz(ji,jj, mikt(ji,jj) ) = pW(ji,jj,mikt(ji,jj)) * pt(ji,jj,mikt(ji,jj),jn,Kbb)   ! linear free surface  
    172172               END_2D 
    173173            ELSE                             ! no cavities: only at the ocean surface 
    174                DO_2D_11_11 
     174               DO_2D( 1, 1, 1, 1 ) 
    175175                  zwz(ji,jj,1) = pW(ji,jj,1) * pt(ji,jj,1,jn,Kbb) 
    176176               END_2D 
     
    178178         ENDIF 
    179179         !                
    180          DO_3D_00_00( 1, jpkm1 ) 
     180         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    181181            !                             ! total intermediate advective trends 
    182182            ztra = - (  zwx(ji,jj,jk) - zwx(ji-1,jj  ,jk  )   & 
     
    194194            ! 
    195195            ztw(:,:,1) = 0._wp ; ztw(:,:,jpk) = 0._wp ; 
    196             DO_3D_00_00( 2, jpkm1 ) 
     196            DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    197197               zfp_wk = wi(ji,jj,jk) + ABS( wi(ji,jj,jk) ) 
    198198               zfm_wk = wi(ji,jj,jk) - ABS( wi(ji,jj,jk) ) 
     
    200200               zwz(ji,jj,jk) = zwz(ji,jj,jk) + ztw(ji,jj,jk) ! update vertical fluxes 
    201201            END_3D 
    202             DO_3D_00_00( 1, jpkm1 ) 
     202            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    203203               pt(ji,jj,jk,jn,Krhs) = pt(ji,jj,jk,jn,Krhs) - ( ztw(ji,jj,jk) - ztw(ji  ,jj  ,jk+1) ) & 
    204204                  &                                        * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 
     
    218218         ! 
    219219         CASE(  2  )                   !- 2nd order centered 
    220             DO_3D_10_10( 1, jpkm1 ) 
     220            DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    221221               zwx(ji,jj,jk) = 0.5_wp * pU(ji,jj,jk) * ( pt(ji,jj,jk,jn,Kmm) + pt(ji+1,jj,jk,jn,Kmm) ) - zwx(ji,jj,jk) 
    222222               zwy(ji,jj,jk) = 0.5_wp * pV(ji,jj,jk) * ( pt(ji,jj,jk,jn,Kmm) + pt(ji,jj+1,jk,jn,Kmm) ) - zwy(ji,jj,jk) 
     
    227227            zltv(:,:,jpk) = 0._wp 
    228228            DO jk = 1, jpkm1                 ! Laplacian 
    229                DO_2D_10_10 
     229               DO_2D( 1, 0, 1, 0 ) 
    230230                  ztu(ji,jj,jk) = ( pt(ji+1,jj  ,jk,jn,Kmm) - pt(ji,jj,jk,jn,Kmm) ) * umask(ji,jj,jk) 
    231231                  ztv(ji,jj,jk) = ( pt(ji  ,jj+1,jk,jn,Kmm) - pt(ji,jj,jk,jn,Kmm) ) * vmask(ji,jj,jk) 
    232232               END_2D 
    233                DO_2D_00_00 
     233               DO_2D( 0, 0, 0, 0 ) 
    234234                  zltu(ji,jj,jk) = (  ztu(ji,jj,jk) + ztu(ji-1,jj,jk)  ) * r1_6 
    235235                  zltv(ji,jj,jk) = (  ztv(ji,jj,jk) + ztv(ji,jj-1,jk)  ) * r1_6 
     
    238238            CALL lbc_lnk_multi( 'traadv_fct', zltu, 'T', 1.0_wp , zltv, 'T', 1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
    239239            ! 
    240             DO_3D_10_10( 1, jpkm1 ) 
     240            DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    241241               zC2t_u = pt(ji,jj,jk,jn,Kmm) + pt(ji+1,jj  ,jk,jn,Kmm)   ! 2 x C2 interpolation of T at u- & v-points 
    242242               zC2t_v = pt(ji,jj,jk,jn,Kmm) + pt(ji  ,jj+1,jk,jn,Kmm) 
     
    249249            ztu(:,:,jpk) = 0._wp             ! Bottom value : flux set to zero 
    250250            ztv(:,:,jpk) = 0._wp 
    251             DO_3D_10_10( 1, jpkm1 ) 
     251            DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    252252               ztu(ji,jj,jk) = ( pt(ji+1,jj  ,jk,jn,Kmm) - pt(ji,jj,jk,jn,Kmm) ) * umask(ji,jj,jk) 
    253253               ztv(ji,jj,jk) = ( pt(ji  ,jj+1,jk,jn,Kmm) - pt(ji,jj,jk,jn,Kmm) ) * vmask(ji,jj,jk) 
     
    255255            CALL lbc_lnk_multi( 'traadv_fct', ztu, 'U', -1.0_wp , ztv, 'V', -1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
    256256            ! 
    257             DO_3D_00_00( 1, jpkm1 ) 
     257            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    258258               zC2t_u = pt(ji,jj,jk,jn,Kmm) + pt(ji+1,jj  ,jk,jn,Kmm)   ! 2 x C2 interpolation of T at u- & v-points (x2) 
    259259               zC2t_v = pt(ji,jj,jk,jn,Kmm) + pt(ji  ,jj+1,jk,jn,Kmm) 
     
    271271         ! 
    272272         CASE(  2  )                   !- 2nd order centered 
    273             DO_3D_00_00( 2, jpkm1 ) 
     273            DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    274274               zwz(ji,jj,jk) =  (  pW(ji,jj,jk) * 0.5_wp * ( pt(ji,jj,jk,jn,Kmm) + pt(ji,jj,jk-1,jn,Kmm) )   & 
    275275                  &              - zwz(ji,jj,jk)  ) * wmask(ji,jj,jk) 
     
    278278         CASE(  4  )                   !- 4th order COMPACT 
    279279            CALL interp_4th_cpt( pt(:,:,:,jn,Kmm) , ztw )   ! zwt = COMPACT interpolation of T at w-point 
    280             DO_3D_00_00( 2, jpkm1 ) 
     280            DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    281281               zwz(ji,jj,jk) = ( pW(ji,jj,jk) * ztw(ji,jj,jk) - zwz(ji,jj,jk) ) * wmask(ji,jj,jk) 
    282282            END_3D 
     
    288288         !          
    289289         IF ( ll_zAimp ) THEN 
    290             DO_3D_00_00( 1, jpkm1 ) 
     290            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    291291               !                             ! total intermediate advective trends 
    292292               ztra = - (  zwx(ji,jj,jk) - zwx(ji-1,jj  ,jk  )   & 
     
    298298            CALL tridia_solver( zwdia, zwsup, zwinf, ztw, ztw , 0 ) 
    299299            ! 
    300             DO_3D_00_00( 2, jpkm1 ) 
     300            DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    301301               zfp_wk = wi(ji,jj,jk) + ABS( wi(ji,jj,jk) ) 
    302302               zfm_wk = wi(ji,jj,jk) - ABS( wi(ji,jj,jk) ) 
     
    313313         !        !==  final trend with corrected fluxes  ==! 
    314314         ! 
    315          DO_3D_00_00( 1, jpkm1 ) 
     315         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    316316            ztra = - (  zwx(ji,jj,jk) - zwx(ji-1,jj  ,jk  )   & 
    317317               &      + zwy(ji,jj,jk) - zwy(ji  ,jj-1,jk  )   & 
     
    324324            ! 
    325325            ztw(:,:,1) = 0._wp ; ztw(:,:,jpk) = 0._wp 
    326             DO_3D_00_00( 2, jpkm1 ) 
     326            DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    327327               zfp_wk = wi(ji,jj,jk) + ABS( wi(ji,jj,jk) ) 
    328328               zfm_wk = wi(ji,jj,jk) - ABS( wi(ji,jj,jk) ) 
     
    330330               zwz(ji,jj,jk) = zwz(ji,jj,jk) + ztw(ji,jj,jk) ! Update vertical fluxes for trend diagnostic 
    331331            END_3D 
    332             DO_3D_00_00( 1, jpkm1 ) 
     332            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    333333               pt(ji,jj,jk,jn,Krhs) = pt(ji,jj,jk,jn,Krhs) - ( ztw(ji,jj,jk) - ztw(ji  ,jj  ,jk+1) ) & 
    334334                  &                                        * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 
     
    409409      DO jk = 1, jpkm1 
    410410         ikm1 = MAX(jk-1,1) 
    411          DO_2D_00_00 
     411         DO_2D( 0, 0, 0, 0 ) 
    412412 
    413413            ! search maximum in neighbourhood 
     
    443443      ! 3. monotonic flux in the i & j direction (paa & pbb) 
    444444      ! ---------------------------------------- 
    445       DO_3D_00_00( 1, jpkm1 ) 
     445      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    446446         zau = MIN( 1._wp, zbetdo(ji,jj,jk), zbetup(ji+1,jj,jk) ) 
    447447         zbu = MIN( 1._wp, zbetup(ji,jj,jk), zbetdo(ji+1,jj,jk) ) 
     
    481481      !!---------------------------------------------------------------------- 
    482482       
    483       DO_3D_11_11( 3, jpkm1 ) 
     483      DO_3D( 1, 1, 1, 1, 3, jpkm1 ) 
    484484         zwd (ji,jj,jk) = 4._wp 
    485485         zwi (ji,jj,jk) = 1._wp 
     
    496496      ! 
    497497      jk = 2                                          ! Switch to second order centered at top 
    498       DO_2D_11_11 
     498      DO_2D( 1, 1, 1, 1 ) 
    499499         zwd (ji,jj,jk) = 1._wp 
    500500         zwi (ji,jj,jk) = 0._wp 
     
    504504      ! 
    505505      !                       !==  tridiagonal solve  ==! 
    506       DO_2D_11_11 
     506      DO_2D( 1, 1, 1, 1 ) 
    507507         zwt(ji,jj,2) = zwd(ji,jj,2) 
    508508      END_2D 
    509       DO_3D_11_11( 3, jpkm1 ) 
     509      DO_3D( 1, 1, 1, 1, 3, jpkm1 ) 
    510510         zwt(ji,jj,jk) = zwd(ji,jj,jk) - zwi(ji,jj,jk) * zws(ji,jj,jk-1) /zwt(ji,jj,jk-1) 
    511511      END_3D 
    512512      ! 
    513       DO_2D_11_11 
     513      DO_2D( 1, 1, 1, 1 ) 
    514514         pt_out(ji,jj,2) = zwrm(ji,jj,2) 
    515515      END_2D 
    516       DO_3D_11_11( 3, jpkm1 ) 
     516      DO_3D( 1, 1, 1, 1, 3, jpkm1 ) 
    517517         pt_out(ji,jj,jk) = zwrm(ji,jj,jk) - zwi(ji,jj,jk) / zwt(ji,jj,jk-1) *pt_out(ji,jj,jk-1)              
    518518      END_3D 
    519519 
    520       DO_2D_11_11 
     520      DO_2D( 1, 1, 1, 1 ) 
    521521         pt_out(ji,jj,jpkm1) = pt_out(ji,jj,jpkm1) / zwt(ji,jj,jpkm1) 
    522522      END_2D 
    523       DO_3DS_11_11( jpk-2, 2, -1 ) 
     523      DO_3DS( 1, 1, 1, 1, jpk-2, 2, -1 ) 
    524524         pt_out(ji,jj,jk) = ( pt_out(ji,jj,jk) - zws(ji,jj,jk) * pt_out(ji,jj,jk+1) ) / zwt(ji,jj,jk) 
    525525      END_3D 
     
    546546      !                      !==  build the three diagonal matrix & the RHS  ==! 
    547547      ! 
    548       DO_3D_00_00( 3, jpkm1 ) 
     548      DO_3D( 0, 0, 0, 0, 3, jpkm1 ) 
    549549         zwd (ji,jj,jk) = 3._wp * wmask(ji,jj,jk) + 1._wp                 !       diagonal 
    550550         zwi (ji,jj,jk) =         wmask(ji,jj,jk)                         ! lower diagonal 
     
    565565      END IF 
    566566      ! 
    567       DO_2D_00_00 
     567      DO_2D( 0, 0, 0, 0 ) 
    568568         ikt = mikt(ji,jj) + 1            ! w-point below the 1st  wet point 
    569569         ikb = MAX(mbkt(ji,jj), 2)        !     -   above the last wet point 
     
    582582      !                       !==  tridiagonal solver  ==! 
    583583      ! 
    584       DO_2D_00_00 
     584      DO_2D( 0, 0, 0, 0 ) 
    585585         zwt(ji,jj,2) = zwd(ji,jj,2) 
    586586      END_2D 
    587       DO_3D_00_00( 3, jpkm1 ) 
     587      DO_3D( 0, 0, 0, 0, 3, jpkm1 ) 
    588588         zwt(ji,jj,jk) = zwd(ji,jj,jk) - zwi(ji,jj,jk) * zws(ji,jj,jk-1) /zwt(ji,jj,jk-1) 
    589589      END_3D 
    590590      ! 
    591       DO_2D_00_00 
     591      DO_2D( 0, 0, 0, 0 ) 
    592592         pt_out(ji,jj,2) = zwrm(ji,jj,2) 
    593593      END_2D 
    594       DO_3D_00_00( 3, jpkm1 ) 
     594      DO_3D( 0, 0, 0, 0, 3, jpkm1 ) 
    595595         pt_out(ji,jj,jk) = zwrm(ji,jj,jk) - zwi(ji,jj,jk) / zwt(ji,jj,jk-1) *pt_out(ji,jj,jk-1)              
    596596      END_3D 
    597597 
    598       DO_2D_00_00 
     598      DO_2D( 0, 0, 0, 0 ) 
    599599         pt_out(ji,jj,jpkm1) = pt_out(ji,jj,jpkm1) / zwt(ji,jj,jpkm1) 
    600600      END_2D 
    601       DO_3DS_00_00( jpk-2, 2, -1 ) 
     601      DO_3DS( 0, 0, 0, 0, jpk-2, 2, -1 ) 
    602602         pt_out(ji,jj,jk) = ( pt_out(ji,jj,jk) - zws(ji,jj,jk) * pt_out(ji,jj,jk+1) ) / zwt(ji,jj,jk) 
    603603      END_3D 
     
    638638      kstart =  1  + klev 
    639639      ! 
    640       DO_2D_00_00 
     640      DO_2D( 0, 0, 0, 0 ) 
    641641         zwt(ji,jj,kstart) = pD(ji,jj,kstart) 
    642642      END_2D 
    643       DO_3D_00_00( kstart+1, jpkm1 ) 
     643      DO_3D( 0, 0, 0, 0, kstart+1, jpkm1 ) 
    644644         zwt(ji,jj,jk) = pD(ji,jj,jk) - pL(ji,jj,jk) * pU(ji,jj,jk-1) /zwt(ji,jj,jk-1) 
    645645      END_3D 
    646646      ! 
    647       DO_2D_00_00 
     647      DO_2D( 0, 0, 0, 0 ) 
    648648         pt_out(ji,jj,kstart) = pRHS(ji,jj,kstart) 
    649649      END_2D 
    650       DO_3D_00_00( kstart+1, jpkm1 ) 
     650      DO_3D( 0, 0, 0, 0, kstart+1, jpkm1 ) 
    651651         pt_out(ji,jj,jk) = pRHS(ji,jj,jk) - pL(ji,jj,jk) / zwt(ji,jj,jk-1) *pt_out(ji,jj,jk-1)              
    652652      END_3D 
    653653 
    654       DO_2D_00_00 
     654      DO_2D( 0, 0, 0, 0 ) 
    655655         pt_out(ji,jj,jpkm1) = pt_out(ji,jj,jpkm1) / zwt(ji,jj,jpkm1) 
    656656      END_2D 
    657       DO_3DS_00_00( jpk-2, kstart, -1 ) 
     657      DO_3DS( 0, 0, 0, 0, jpk-2, kstart, -1 ) 
    658658         pt_out(ji,jj,jk) = ( pt_out(ji,jj,jk) - pU(ji,jj,jk) * pt_out(ji,jj,jk+1) ) / zwt(ji,jj,jk) 
    659659      END_3D 
  • NEMO/trunk/src/OCE/TRA/traadv_mus.F90

    r13237 r13295  
    132132         zwx(:,:,jpk) = 0._wp                   ! bottom values 
    133133         zwy(:,:,jpk) = 0._wp   
    134          DO_3D_10_10( 1, jpkm1 ) 
     134         DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    135135            zwx(ji,jj,jk) = umask(ji,jj,jk) * ( pt(ji+1,jj,jk,jn,Kbb) - pt(ji,jj,jk,jn,Kbb) ) 
    136136            zwy(ji,jj,jk) = vmask(ji,jj,jk) * ( pt(ji,jj+1,jk,jn,Kbb) - pt(ji,jj,jk,jn,Kbb) ) 
     
    141141         zslpx(:,:,jpk) = 0._wp                 ! bottom values 
    142142         zslpy(:,:,jpk) = 0._wp 
    143          DO_3D_01_01( 1, jpkm1 ) 
     143         DO_3D( 0, 1, 0, 1, 1, jpkm1 ) 
    144144            zslpx(ji,jj,jk) =                       ( zwx(ji,jj,jk) + zwx(ji-1,jj  ,jk) )   & 
    145145               &            * ( 0.25 + SIGN( 0.25_wp, zwx(ji,jj,jk) * zwx(ji-1,jj  ,jk) ) ) 
     
    148148         END_3D 
    149149         ! 
    150          DO_3D_01_01( 1, jpkm1 ) 
     150         DO_3D( 0, 1, 0, 1, 1, jpkm1 ) 
    151151            zslpx(ji,jj,jk) = SIGN( 1.0_wp, zslpx(ji,jj,jk) ) * MIN(    ABS( zslpx(ji  ,jj,jk) ),   & 
    152152               &                                                     2.*ABS( zwx  (ji-1,jj,jk) ),   & 
     
    157157         END_3D 
    158158         ! 
    159          DO_3D_00_00( 1, jpkm1 ) 
     159         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    160160            ! MUSCL fluxes 
    161161            z0u = SIGN( 0.5_wp, pU(ji,jj,jk) ) 
     
    175175         CALL lbc_lnk_multi( 'traadv_mus', zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp )   ! lateral boundary conditions   (changed sign) 
    176176         ! 
    177          DO_3D_00_00( 1, jpkm1 ) 
     177         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    178178            pt(ji,jj,jk,jn,Krhs) = pt(ji,jj,jk,jn,Krhs) - ( zwx(ji,jj,jk) - zwx(ji-1,jj  ,jk  )       & 
    179179            &                                     + zwy(ji,jj,jk) - zwy(ji  ,jj-1,jk  ) )     & 
     
    200200         !                                !-- Slopes of tracer 
    201201         zslpx(:,:,1) = 0._wp                   ! surface values 
    202          DO_3D_11_11( 2, jpkm1 ) 
     202         DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    203203            zslpx(ji,jj,jk) =                        ( zwx(ji,jj,jk) + zwx(ji,jj,jk+1) )  & 
    204204               &            * (  0.25 + SIGN( 0.25_wp, zwx(ji,jj,jk) * zwx(ji,jj,jk+1) )  ) 
    205205         END_3D 
    206          DO_3D_11_11( 2, jpkm1 ) 
     206         DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    207207            zslpx(ji,jj,jk) = SIGN( 1.0_wp, zslpx(ji,jj,jk) ) * MIN(    ABS( zslpx(ji,jj,jk  ) ),   & 
    208208               &                                                     2.*ABS( zwx  (ji,jj,jk+1) ),   & 
    209209               &                                                     2.*ABS( zwx  (ji,jj,jk  ) )  ) 
    210210         END_3D 
    211          DO_3D_00_00( 1, jpk-2 ) 
     211         DO_3D( 0, 0, 0, 0, 1, jpk-2 ) 
    212212            z0w = SIGN( 0.5_wp, pW(ji,jj,jk+1) ) 
    213213            zalpha = 0.5 + z0w 
     
    219219         IF( ln_linssh ) THEN                   ! top values, linear free surface only 
    220220            IF( ln_isfcav ) THEN                      ! ice-shelf cavities (top of the ocean) 
    221                DO_2D_11_11 
     221               DO_2D( 1, 1, 1, 1 ) 
    222222                  zwx(ji,jj, mikt(ji,jj) ) = pW(ji,jj,mikt(ji,jj)) * pt(ji,jj,mikt(ji,jj),jn,Kbb) 
    223223               END_2D 
     
    227227         ENDIF 
    228228         ! 
    229          DO_3D_00_00( 1, jpkm1 ) 
     229         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    230230            pt(ji,jj,jk,jn,Krhs) =  pt(ji,jj,jk,jn,Krhs) - ( zwx(ji,jj,jk) - zwx(ji,jj,jk+1) )   & 
    231231               &                                      * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 
  • NEMO/trunk/src/OCE/TRA/traadv_qck.F90

    r13237 r13295  
    142142         ! 
    143143!!gm why not using a SHIFT instruction... 
    144          DO_3D_00_00( 1, jpkm1 ) 
     144         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    145145            zfc(ji,jj,jk) = pt(ji-1,jj,jk,jn,Kbb)        ! Upstream   in the x-direction for the tracer 
    146146            zfd(ji,jj,jk) = pt(ji+1,jj,jk,jn,Kbb)        ! Downstream in the x-direction for the tracer 
     
    151151         ! Horizontal advective fluxes 
    152152         ! --------------------------- 
    153          DO_3D_00_00( 1, jpkm1 ) 
     153         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    154154            zdir = 0.5 + SIGN( 0.5_wp, pU(ji,jj,jk) )   ! if pU > 0 : zdir = 1 otherwise zdir = 0  
    155155            zfu(ji,jj,jk) = zdir * zfc(ji,jj,jk ) + ( 1. - zdir ) * zfd(ji+1,jj,jk)  ! FU in the x-direction for T  
    156156         END_3D 
    157157         ! 
    158          DO_3D_00_00( 1, jpkm1 ) 
     158         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    159159            zdir = 0.5 + SIGN( 0.5_wp, pU(ji,jj,jk) )   ! if pU > 0 : zdir = 1 otherwise zdir = 0  
    160160            zdx = ( zdir * e1t(ji,jj) + ( 1. - zdir ) * e1t(ji+1,jj) ) * e2u(ji,jj) * e3u(ji,jj,jk,Kmm) 
     
    170170         ! 
    171171         ! Mask at the T-points in the x-direction (mask=0 or mask=1) 
    172          DO_3D_00_00( 1, jpkm1 ) 
     172         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    173173            zfu(ji,jj,jk) = tmask(ji-1,jj,jk) + tmask(ji,jj,jk) + tmask(ji+1,jj,jk) - 2. 
    174174         END_3D 
     
    179179         DO jk = 1, jpkm1   
    180180            ! 
    181             DO_2D_00_00 
     181            DO_2D( 0, 0, 0, 0 ) 
    182182               zdir = 0.5 + SIGN( 0.5_wp, pU(ji,jj,jk) )   ! if pU > 0 : zdir = 1 otherwise zdir = 0  
    183183               !--- If the second ustream point is a land point 
     
    192192         ! 
    193193         ! Computation of the trend 
    194          DO_3D_00_00( 1, jpkm1 ) 
     194         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    195195            zbtr = r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 
    196196            ! horizontal advective trends 
     
    233233            !                                              
    234234            !--- Computation of the ustream and downstream value of the tracer and the mask 
    235             DO_2D_00_00 
     235            DO_2D( 0, 0, 0, 0 ) 
    236236               ! Upstream in the x-direction for the tracer 
    237237               zfc(ji,jj,jk) = pt(ji,jj-1,jk,jn,Kbb) 
     
    247247         ! --------------------------- 
    248248         ! 
    249          DO_3D_00_00( 1, jpkm1 ) 
     249         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    250250            zdir = 0.5 + SIGN( 0.5_wp, pV(ji,jj,jk) )   ! if pU > 0 : zdir = 1 otherwise zdir = 0  
    251251            zfu(ji,jj,jk) = zdir * zfc(ji,jj,jk ) + ( 1. - zdir ) * zfd(ji,jj+1,jk)  ! FU in the x-direction for T  
    252252         END_3D 
    253253         ! 
    254          DO_3D_00_00( 1, jpkm1 ) 
     254         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    255255            zdir = 0.5 + SIGN( 0.5_wp, pV(ji,jj,jk) )   ! if pU > 0 : zdir = 1 otherwise zdir = 0  
    256256            zdx = ( zdir * e2t(ji,jj) + ( 1. - zdir ) * e2t(ji,jj+1) ) * e1v(ji,jj) * e3v(ji,jj,jk,Kmm) 
     
    267267         ! 
    268268         ! Mask at the T-points in the x-direction (mask=0 or mask=1) 
    269          DO_3D_00_00( 1, jpkm1 ) 
     269         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    270270            zfu(ji,jj,jk) = tmask(ji,jj-1,jk) + tmask(ji,jj,jk) + tmask(ji,jj+1,jk) - 2. 
    271271         END_3D 
     
    275275         DO jk = 1, jpkm1   
    276276            ! 
    277             DO_2D_00_00 
     277            DO_2D( 0, 0, 0, 0 ) 
    278278               zdir = 0.5 + SIGN( 0.5_wp, pV(ji,jj,jk) )   ! if pU > 0 : zdir = 1 otherwise zdir = 0  
    279279               !--- If the second ustream point is a land point 
     
    288288         ! 
    289289         ! Computation of the trend 
    290          DO_3D_00_00( 1, jpkm1 ) 
     290         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    291291            zbtr = r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 
    292292            ! horizontal advective trends 
     
    327327         !                                                       ! =========== 
    328328         ! 
    329          DO_3D_00_00( 2, jpkm1 ) 
     329         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    330330            zwz(ji,jj,jk) = 0.5 * pW(ji,jj,jk) * ( pt(ji,jj,jk-1,jn,Kmm) + pt(ji,jj,jk,jn,Kmm) ) * wmask(ji,jj,jk) 
    331331         END_3D 
    332332         IF( ln_linssh ) THEN                !* top value   (only in linear free surf. as zwz is multiplied by wmask) 
    333333            IF( ln_isfcav ) THEN                  ! ice-shelf cavities (top of the ocean) 
    334                DO_2D_11_11 
     334               DO_2D( 1, 1, 1, 1 ) 
    335335                  zwz(ji,jj, mikt(ji,jj) ) = pW(ji,jj,mikt(ji,jj)) * pt(ji,jj,mikt(ji,jj),jn,Kmm)   ! linear free surface  
    336336               END_2D 
     
    340340         ENDIF 
    341341         ! 
    342          DO_3D_00_00( 1, jpkm1 ) 
     342         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    343343            pt(ji,jj,jk,jn,Krhs) = pt(ji,jj,jk,jn,Krhs) - ( zwz(ji,jj,jk) - zwz(ji,jj,jk+1) )   & 
    344344               &                                * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 
     
    369369      !---------------------------------------------------------------------- 
    370370      ! 
    371       DO_3D_11_11( 1, jpkm1 ) 
     371      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    372372         zc     = puc(ji,jj,jk)                         ! Courant number 
    373373         zcurv  = pfd(ji,jj,jk) + pfu(ji,jj,jk) - 2. * pfc(ji,jj,jk) 
  • NEMO/trunk/src/OCE/TRA/traadv_ubs.F90

    r13237 r13295  
    125125         !                                               
    126126         DO jk = 1, jpkm1        !==  horizontal laplacian of before tracer ==! 
    127             DO_2D_10_10 
     127            DO_2D( 1, 0, 1, 0 ) 
    128128               zeeu = e2_e1u(ji,jj) * e3u(ji,jj,jk,Kmm) * umask(ji,jj,jk) 
    129129               zeev = e1_e2v(ji,jj) * e3v(ji,jj,jk,Kmm) * vmask(ji,jj,jk) 
     
    131131               ztv(ji,jj,jk) = zeev * ( pt(ji  ,jj+1,jk,jn,Kbb) - pt(ji,jj,jk,jn,Kbb) ) 
    132132            END_2D 
    133             DO_2D_00_00 
     133            DO_2D( 0, 0, 0, 0 ) 
    134134               zcoef = 1._wp / ( 6._wp * e3t(ji,jj,jk,Kmm) ) 
    135135               zltu(ji,jj,jk) = (  ztu(ji,jj,jk) - ztu(ji-1,jj,jk)  ) * zcoef 
     
    140140         CALL lbc_lnk( 'traadv_ubs', zltu, 'T', 1.0_wp )   ;    CALL lbc_lnk( 'traadv_ubs', zltv, 'T', 1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
    141141         !     
    142          DO_3D_10_10( 1, jpkm1 ) 
     142         DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    143143            zfp_ui = pU(ji,jj,jk) + ABS( pU(ji,jj,jk) )      ! upstream transport (x2) 
    144144            zfm_ui = pU(ji,jj,jk) - ABS( pU(ji,jj,jk) ) 
     
    156156         ! 
    157157         DO jk = 1, jpkm1        !==  add the horizontal advective trend  ==! 
    158             DO_2D_00_00 
     158            DO_2D( 0, 0, 0, 0 ) 
    159159               pt(ji,jj,jk,jn,Krhs) = pt(ji,jj,jk,jn,Krhs)                        & 
    160160                  &             - (  ztu(ji,jj,jk) - ztu(ji-1,jj  ,jk)    & 
     
    188188            ! 
    189189            !                          !*  upstream advection with initial mass fluxes & intermediate update  ==! 
    190             DO_3D_11_11( 2, jpkm1 ) 
     190            DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    191191               zfp_wk = pW(ji,jj,jk) + ABS( pW(ji,jj,jk) ) 
    192192               zfm_wk = pW(ji,jj,jk) - ABS( pW(ji,jj,jk) ) 
     
    195195            IF( ln_linssh ) THEN             ! top ocean value (only in linear free surface as ztw has been w-masked) 
    196196               IF( ln_isfcav ) THEN                ! top of the ice-shelf cavities and at the ocean surface 
    197                   DO_2D_11_11 
     197                  DO_2D( 1, 1, 1, 1 ) 
    198198                     ztw(ji,jj, mikt(ji,jj) ) = pW(ji,jj,mikt(ji,jj)) * pt(ji,jj,mikt(ji,jj),jn,Kbb)   ! linear free surface  
    199199                  END_2D 
     
    203203            ENDIF 
    204204            ! 
    205             DO_3D_00_00( 1, jpkm1 ) 
     205            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    206206               ztak = - ( ztw(ji,jj,jk) - ztw(ji,jj,jk+1) )    & 
    207207                  &     * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 
     
    212212            ! 
    213213            !                          !*  anti-diffusive flux : high order minus low order 
    214             DO_3D_11_11( 2, jpkm1 ) 
     214            DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    215215               ztw(ji,jj,jk) = (   0.5_wp * pW(ji,jj,jk) * ( pt(ji,jj,jk,jn,Kmm) + pt(ji,jj,jk-1,jn,Kmm) )   & 
    216216                  &              - ztw(ji,jj,jk)   ) * wmask(ji,jj,jk) 
     
    223223         CASE(  4  )                               ! 4th order COMPACT 
    224224            CALL interp_4th_cpt( pt(:,:,:,jn,Kmm) , ztw )         ! 4th order compact interpolation of T at w-point 
    225             DO_3D_00_00( 2, jpkm1 ) 
     225            DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    226226               ztw(ji,jj,jk) = pW(ji,jj,jk) * ztw(ji,jj,jk) * wmask(ji,jj,jk) 
    227227            END_3D 
     
    230230         END SELECT 
    231231         ! 
    232          DO_3D_00_00( 1, jpkm1 ) 
     232         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    233233            pt(ji,jj,jk,jn,Krhs) = pt(ji,jj,jk,jn,Krhs) - ( ztw(ji,jj,jk) - ztw(ji,jj,jk+1) )    & 
    234234               &                                        * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 
     
    236236         ! 
    237237         IF( l_trd )  THEN       ! vertical advective trend diagnostics 
    238             DO_3D_00_00( 1, jpkm1 ) 
     238            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    239239               zltv(ji,jj,jk) = pt(ji,jj,jk,jn,Krhs) - zltv(ji,jj,jk)                          & 
    240240                  &           + pt(ji,jj,jk,jn,Kmm) * (  pW(ji,jj,jk) - pW(ji,jj,jk+1)  )   & 
     
    286286      DO jk = 1, jpkm1     ! search maximum in neighbourhood 
    287287         ikm1 = MAX(jk-1,1) 
    288          DO_2D_00_00 
     288         DO_2D( 0, 0, 0, 0 ) 
    289289            zbetup(ji,jj,jk) = MAX(  pbef(ji  ,jj  ,jk  ), paft(ji  ,jj  ,jk  ),   & 
    290290               &                     pbef(ji  ,jj  ,ikm1), pbef(ji  ,jj  ,jk+1),   & 
     
    298298      DO jk = 1, jpkm1     ! search minimum in neighbourhood 
    299299         ikm1 = MAX(jk-1,1) 
    300          DO_2D_00_00 
     300         DO_2D( 0, 0, 0, 0 ) 
    301301            zbetdo(ji,jj,jk) = MIN(  pbef(ji  ,jj  ,jk  ), paft(ji  ,jj  ,jk  ),   & 
    302302               &                     pbef(ji  ,jj  ,ikm1), pbef(ji  ,jj  ,jk+1),   & 
     
    310310      ! Positive and negative part of fluxes and beta terms 
    311311      ! --------------------------------------------------- 
    312       DO_3D_00_00( 1, jpkm1 ) 
     312      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    313313         ! positive & negative part of the flux 
    314314         zpos = MAX( 0., pcc(ji  ,jj  ,jk+1) ) - MIN( 0., pcc(ji  ,jj  ,jk  ) ) 
     
    322322      ! monotonic flux in the k direction, i.e. pcc 
    323323      ! ------------------------------------------- 
    324       DO_3D_00_00( 2, jpkm1 ) 
     324      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    325325         za = MIN( 1., zbetdo(ji,jj,jk), zbetup(ji,jj,jk-1) ) 
    326326         zb = MIN( 1., zbetup(ji,jj,jk), zbetdo(ji,jj,jk-1) ) 
  • NEMO/trunk/src/OCE/TRA/traatf.F90

    r13237 r13295  
    210210      DO jn = 1, kjpt 
    211211         ! 
    212          DO_3D_00_00( 1, jpkm1 ) 
     212         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    213213            ztn = pt(ji,jj,jk,jn,Kmm)                                     
    214214            ztd = pt(ji,jj,jk,jn,Kaa) - 2._wp * ztn + pt(ji,jj,jk,jn,Kbb)  ! time laplacian on tracers 
     
    275275      zfact2 = zfact1 * r1_rho0 
    276276      DO jn = 1, kjpt       
    277          DO_3D_00_00( 1, jpkm1 ) 
     277         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    278278            ze3t_b = e3t(ji,jj,jk,Kbb) 
    279279            ze3t_n = e3t(ji,jj,jk,Kmm) 
  • NEMO/trunk/src/OCE/TRA/traatf_qco.F90

    r13237 r13295  
    203203      DO jn = 1, kjpt 
    204204         ! 
    205          DO_3D_00_00( 1, jpkm1 ) 
     205         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    206206            ztn = pt(ji,jj,jk,jn,Kmm) 
    207207            ztd = pt(ji,jj,jk,jn,Kaa) - 2._wp * ztn + pt(ji,jj,jk,jn,Kbb)  ! time laplacian on tracers 
     
    268268      zfact2 = zfact1 * r1_rho0 
    269269      DO jn = 1, kjpt 
    270          DO_3D_00_00( 1, jpkm1 ) 
     270         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    271271            ze3t_b = e3t(ji,jj,jk,Kbb) 
    272272            ze3t_n = e3t(ji,jj,jk,Kmm) 
  • NEMO/trunk/src/OCE/TRA/trabbc.F90

    r13237 r13295  
    9191      ENDIF 
    9292      !                             !  Add the geothermal trend on temperature 
    93       DO_2D_00_00 
     93      DO_2D( 0, 0, 0, 0 ) 
    9494         pts(ji,jj,mbkt(ji,jj),jp_tem,Krhs) = pts(ji,jj,mbkt(ji,jj),jp_tem,Krhs)   & 
    9595            &             + qgh_trd0(ji,jj) / e3t(ji,jj,mbkt(ji,jj),Kmm) 
  • NEMO/trunk/src/OCE/TRA/trabbl.F90

    r13237 r13295  
    192192      DO jn = 1, kjpt                                     ! tracer loop 
    193193         !                                                ! =========== 
    194          DO_2D_11_11 
     194         DO_2D( 1, 1, 1, 1 ) 
    195195            ik = mbkt(ji,jj)                             ! bottom T-level index 
    196196            zptb(ji,jj) = pt(ji,jj,ik,jn)                ! bottom before T and S 
    197197         END_2D 
    198198         !                
    199          DO_2D_00_00 
     199         DO_2D( 0, 0, 0, 0 ) 
    200200            ik = mbkt(ji,jj)                            ! bottom T-level index 
    201201            pt_rhs(ji,jj,ik,jn) = pt_rhs(ji,jj,ik,jn)                                                  & 
     
    343343      ENDIF 
    344344      !                                        !* bottom variables (T, S, alpha, beta, depth, velocity) 
    345       DO_2D_11_11 
     345      DO_2D( 1, 1, 1, 1 ) 
    346346         ik = mbkt(ji,jj)                             ! bottom T-level index 
    347347         zts (ji,jj,jp_tem) = ts(ji,jj,ik,jp_tem,Kbb) ! bottom before T and S 
     
    358358      IF( nn_bbl_ldf == 1 ) THEN          !   diffusive bbl   ! 
    359359         !                                !-------------------! 
    360          DO_2D_10_10 
     360         DO_2D( 1, 0, 1, 0 ) 
    361361            !                                                   ! i-direction 
    362362            za = zab(ji+1,jj,jp_tem) + zab(ji,jj,jp_tem)              ! 2*(alpha,beta) at u-point 
     
    388388         ! 
    389389         CASE( 1 )                                   != use of upper velocity 
    390             DO_2D_10_10 
     390            DO_2D( 1, 0, 1, 0 ) 
    391391               !                                                  ! i-direction 
    392392               za = zab(ji+1,jj,jp_tem) + zab(ji,jj,jp_tem)               ! 2*(alpha,beta) at u-point 
     
    417417         CASE( 2 )                                 != bbl velocity = F( delta rho ) 
    418418            zgbbl = grav * rn_gambbl 
    419             DO_2D_10_10 
     419            DO_2D( 1, 0, 1, 0 ) 
    420420               !                                                  ! i-direction 
    421421               ! down-slope T-point i/k-index (deep)  &   up-slope T-point i/k-index (shelf) 
     
    509509      ! 
    510510      !                             !* vertical index of  "deep" bottom u- and v-points 
    511       DO_2D_10_10 
     511      DO_2D( 1, 0, 1, 0 ) 
    512512         mbku_d(ji,jj) = MAX(  mbkt(ji+1,jj  ) , mbkt(ji,jj)  )   ! >= 1 as mbkt=1 over land 
    513513         mbkv_d(ji,jj) = MAX(  mbkt(ji  ,jj+1) , mbkt(ji,jj)  ) 
     
    520520      !                             !* sign of grad(H) at u- and v-points; zero if grad(H) = 0 
    521521      mgrhu(:,:) = 0   ;   mgrhv(:,:) = 0 
    522       DO_2D_10_10 
     522      DO_2D( 1, 0, 1, 0 ) 
    523523         IF( gdept_0(ji+1,jj,mbkt(ji+1,jj)) - gdept_0(ji,jj,mbkt(ji,jj)) /= 0._wp ) THEN 
    524524            mgrhu(ji,jj) = INT(  SIGN( 1.0_wp, gdept_0(ji+1,jj,mbkt(ji+1,jj)) - gdept_0(ji,jj,mbkt(ji,jj)) )  ) 
     
    530530      END_2D 
    531531      ! 
    532       DO_2D_10_10 
     532      DO_2D( 1, 0, 1, 0 ) 
    533533         e3u_bbl_0(ji,jj) = MIN( e3u_0(ji,jj,mbkt(ji+1,jj  )), e3u_0(ji,jj,mbkt(ji,jj)) ) 
    534534         e3v_bbl_0(ji,jj) = MIN( e3v_0(ji,jj,mbkt(ji  ,jj+1)), e3v_0(ji,jj,mbkt(ji,jj)) ) 
  • NEMO/trunk/src/OCE/TRA/tradmp.F90

    r13286 r13295  
    112112      CASE( 0 )                        !*  newtonian damping throughout the water column  *! 
    113113         DO jn = 1, jpts 
    114             DO_3D_00_00( 1, jpkm1 ) 
     114            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    115115               pts(ji,jj,jk,jn,Krhs) = pts(ji,jj,jk,jn,Krhs)           & 
    116116                  &                  + resto(ji,jj,jk) * ( zts_dta(ji,jj,jk,jn) - pts(ji,jj,jk,jn,Kbb) ) 
     
    119119         ! 
    120120      CASE ( 1 )                       !*  no damping in the turbocline (avt > 5 cm2/s)  *! 
    121          DO_3D_00_00( 1, jpkm1 ) 
     121         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    122122            IF( avt(ji,jj,jk) <= avt_c ) THEN 
    123123               pts(ji,jj,jk,jp_tem,Krhs) = pts(ji,jj,jk,jp_tem,Krhs)   & 
     
    129129         ! 
    130130      CASE ( 2 )                       !*  no damping in the mixed layer   *! 
    131          DO_3D_00_00( 1, jpkm1 ) 
     131         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    132132            IF( gdept(ji,jj,jk,Kmm) >= hmlp (ji,jj) ) THEN 
    133133               pts(ji,jj,jk,jp_tem,Krhs) = pts(ji,jj,jk,jp_tem,Krhs)   & 
  • NEMO/trunk/src/OCE/TRA/traisf.F90

    r13237 r13295  
    108108      ! 
    109109      ! update pts(:,:,:,:,Krhs) 
    110       DO_2D_11_11 
     110      DO_2D( 1, 1, 1, 1 ) 
    111111         ! 
    112112         ikt = ktop(ji,jj) 
  • NEMO/trunk/src/OCE/TRA/traldf_iso.F90

    r13237 r13295  
    141141      IF( kpass == 1 ) THEN                  !==  first pass only  ==! 
    142142         ! 
    143          DO_3D_00_00( 2, jpkm1 ) 
     143         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    144144            ! 
    145145            zmsku = wmask(ji,jj,jk) / MAX(   umask(ji  ,jj,jk-1) + umask(ji-1,jj,jk)          & 
     
    158158         ! 
    159159         IF( ln_traldf_msc ) THEN                ! stabilizing vertical diffusivity coefficient 
    160             DO_3D_00_00( 2, jpkm1 ) 
     160            DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    161161               akz(ji,jj,jk) = 0.25_wp * (                                                                     & 
    162162                  &              ( pahu(ji  ,jj,jk) + pahu(ji  ,jj,jk-1) ) / ( e1u(ji  ,jj) * e1u(ji  ,jj) )   & 
     
    167167            ! 
    168168            IF( ln_traldf_blp ) THEN                ! bilaplacian operator 
    169                DO_3D_10_10( 2, jpkm1 ) 
     169               DO_3D( 1, 0, 1, 0, 2, jpkm1 ) 
    170170                  akz(ji,jj,jk) = 16._wp   & 
    171171                     &   * ah_wslp2   (ji,jj,jk)   & 
     
    175175               END_3D 
    176176            ELSEIF( ln_traldf_lap ) THEN              ! laplacian operator 
    177                DO_3D_10_10( 2, jpkm1 ) 
     177               DO_3D( 1, 0, 1, 0, 2, jpkm1 ) 
    178178                  ze3w_2 = e3w(ji,jj,jk,Kmm) * e3w(ji,jj,jk,Kmm) 
    179179                  zcoef0 = rDt * (  akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2  ) 
     
    200200 
    201201         ! Horizontal tracer gradient  
    202          DO_3D_10_10( 1, jpkm1 ) 
     202         DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    203203            zdit(ji,jj,jk) = ( pt(ji+1,jj  ,jk,jn) - pt(ji,jj,jk,jn) ) * umask(ji,jj,jk) 
    204204            zdjt(ji,jj,jk) = ( pt(ji  ,jj+1,jk,jn) - pt(ji,jj,jk,jn) ) * vmask(ji,jj,jk) 
    205205         END_3D 
    206206         IF( ln_zps ) THEN      ! botton and surface ocean correction of the horizontal gradient 
    207             DO_2D_10_10 
     207            DO_2D( 1, 0, 1, 0 ) 
    208208               zdit(ji,jj,mbku(ji,jj)) = pgu(ji,jj,jn)           
    209209               zdjt(ji,jj,mbkv(ji,jj)) = pgv(ji,jj,jn) 
    210210            END_2D 
    211211            IF( ln_isfcav ) THEN      ! first wet level beneath a cavity 
    212                DO_2D_10_10 
     212               DO_2D( 1, 0, 1, 0 ) 
    213213                  IF( miku(ji,jj) > 1 )   zdit(ji,jj,miku(ji,jj)) = pgui(ji,jj,jn)           
    214214                  IF( mikv(ji,jj) > 1 )   zdjt(ji,jj,mikv(ji,jj)) = pgvi(ji,jj,jn)      
     
    229229            ELSE                 ;   zdkt(:,:) = ( pt(:,:,jk-1,jn) - pt(:,:,jk,jn) ) * wmask(:,:,jk) 
    230230            ENDIF 
    231             DO_2D_10_10 
     231            DO_2D( 1, 0, 1, 0 ) 
    232232               zabe1 = pahu(ji,jj,jk) * e2_e1u(ji,jj) * e3u(ji,jj,jk,Kmm) 
    233233               zabe2 = pahv(ji,jj,jk) * e1_e2v(ji,jj) * e3v(ji,jj,jk,Kmm) 
     
    250250            END_2D 
    251251            ! 
    252             DO_2D_00_00 
     252            DO_2D( 0, 0, 0, 0 ) 
    253253               pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn)    & 
    254254                  &       + zsign * (  zftu(ji,jj,jk) - zftu(ji-1,jj,jk) + zftv(ji,jj,jk) - zftv(ji,jj-1,jk)  )   & 
     
    266266         ztfw(:,:, 1 ) = 0._wp      ;      ztfw(:,:,jpk) = 0._wp 
    267267          
    268          DO_3D_00_00( 2, jpkm1 ) 
     268         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    269269            ! 
    270270            zmsku = wmask(ji,jj,jk) / MAX(   umask(ji  ,jj,jk-1) + umask(ji-1,jj,jk)          & 
     
    288288         !                                !==  add the vertical 33 flux  ==! 
    289289         IF( ln_traldf_lap ) THEN               ! laplacian case: eddy coef = ah_wslp2 - akz 
    290             DO_3D_00_00( 2, jpkm1 ) 
     290            DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    291291               ztfw(ji,jj,jk) = ztfw(ji,jj,jk) + e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * wmask(ji,jj,jk)   & 
    292292                  &                            * ( ah_wslp2(ji,jj,jk) - akz(ji,jj,jk) )               & 
     
    297297            SELECT CASE( kpass ) 
    298298            CASE(  1  )                            ! 1st pass : eddy coef = ah_wslp2 
    299                DO_3D_00_00( 2, jpkm1 ) 
     299               DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    300300                  ztfw(ji,jj,jk) =   & 
    301301                     &  ztfw(ji,jj,jk) + ah_wslp2(ji,jj,jk) * e1e2t(ji,jj)   & 
     
    303303               END_3D 
    304304            CASE(  2  )                         ! 2nd pass : eddy flux = ah_wslp2 and akz applied on pt  and pt2 gradients, resp. 
    305                DO_3D_00_00( 2, jpkm1 ) 
     305               DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    306306                  ztfw(ji,jj,jk) = ztfw(ji,jj,jk) + e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * wmask(ji,jj,jk)                  & 
    307307                     &                            * (  ah_wslp2(ji,jj,jk) * ( pt (ji,jj,jk-1,jn) - pt (ji,jj,jk,jn) )   & 
     
    311311         ENDIF 
    312312         !          
    313          DO_3D_00_00( 1, jpkm1 ) 
     313         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    314314            pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn) + zsign * (  ztfw (ji,jj,jk) - ztfw(ji,jj,jk+1)  ) * r1_e1e2t(ji,jj)   & 
    315315               &                                             / e3t(ji,jj,jk,Kmm) 
  • NEMO/trunk/src/OCE/TRA/traldf_lap_blp.F90

    r13237 r13295  
    9999      ELSE                    ;   zsign = -1._wp 
    100100      ENDIF 
    101       DO_3D_10_10( 1, jpkm1 ) 
     101      DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    102102         zaheeu(ji,jj,jk) = zsign * pahu(ji,jj,jk) * e2_e1u(ji,jj) * e3u(ji,jj,jk,Kmm)   !!gm   * umask(ji,jj,jk) pah masked! 
    103103         zaheev(ji,jj,jk) = zsign * pahv(ji,jj,jk) * e1_e2v(ji,jj) * e3v(ji,jj,jk,Kmm)   !!gm   * vmask(ji,jj,jk) 
     
    108108         !                          ! =========== !     
    109109         !                                
    110          DO_3D_10_10( 1, jpkm1 ) 
     110         DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    111111            ztu(ji,jj,jk) = zaheeu(ji,jj,jk) * ( pt(ji+1,jj  ,jk,jn) - pt(ji,jj,jk,jn) ) 
    112112            ztv(ji,jj,jk) = zaheev(ji,jj,jk) * ( pt(ji  ,jj+1,jk,jn) - pt(ji,jj,jk,jn) ) 
    113113         END_3D 
    114114         IF( ln_zps ) THEN                ! set gradient at bottom/top ocean level 
    115             DO_2D_10_10 
     115            DO_2D( 1, 0, 1, 0 ) 
    116116               ztu(ji,jj,mbku(ji,jj)) = zaheeu(ji,jj,mbku(ji,jj)) * pgu(ji,jj,jn) 
    117117               ztv(ji,jj,mbkv(ji,jj)) = zaheev(ji,jj,mbkv(ji,jj)) * pgv(ji,jj,jn) 
    118118            END_2D 
    119119            IF( ln_isfcav ) THEN                ! top in ocean cavities only 
    120                DO_2D_10_10 
     120               DO_2D( 1, 0, 1, 0 ) 
    121121                  IF( miku(ji,jj) > 1 )   ztu(ji,jj,miku(ji,jj)) = zaheeu(ji,jj,miku(ji,jj)) * pgui(ji,jj,jn)  
    122122                  IF( mikv(ji,jj) > 1 )   ztv(ji,jj,mikv(ji,jj)) = zaheev(ji,jj,mikv(ji,jj)) * pgvi(ji,jj,jn)  
     
    125125         ENDIF 
    126126         ! 
    127          DO_3D_00_00( 1, jpkm1 ) 
     127         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    128128            pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn) + (  ztu(ji,jj,jk) - ztu(ji-1,jj,jk)     & 
    129129               &                                      +    ztv(ji,jj,jk) - ztv(ji,jj-1,jk) )   & 
  • NEMO/trunk/src/OCE/TRA/traldf_triad.F90

    r13237 r13295  
    137137         DO ip = 0, 1                            ! i-k triads 
    138138            DO kp = 0, 1 
    139                DO_3D_10_10( 1, jpkm1 ) 
     139               DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    140140                  ze3wr = 1._wp / e3w(ji+ip,jj,jk+kp,Kmm) 
    141141                  zbu   = e1e2u(ji,jj) * e3u(ji,jj,jk,Kmm) 
     
    157157         DO jp = 0, 1                            ! j-k triads  
    158158            DO kp = 0, 1 
    159                DO_3D_10_10( 1, jpkm1 ) 
     159               DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    160160                  ze3wr = 1.0_wp / e3w(ji,jj+jp,jk+kp,Kmm) 
    161161                  zbv   = e1e2v(ji,jj) * e3v(ji,jj,jk,Kmm) 
     
    179179            ! 
    180180            IF( ln_traldf_blp ) THEN                ! bilaplacian operator 
    181                DO_3D_10_10( 2, jpkm1 ) 
     181               DO_3D( 1, 0, 1, 0, 2, jpkm1 ) 
    182182                  akz(ji,jj,jk) = 16._wp           & 
    183183                     &   * ah_wslp2   (ji,jj,jk)   & 
     
    187187               END_3D 
    188188            ELSEIF( ln_traldf_lap ) THEN              ! laplacian operator 
    189                DO_3D_10_10( 2, jpkm1 ) 
     189               DO_3D( 1, 0, 1, 0, 2, jpkm1 ) 
    190190                  ze3w_2 = e3w(ji,jj,jk,Kmm) * e3w(ji,jj,jk,Kmm) 
    191191                  zcoef0 = rDt * (  akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2  ) 
     
    211211         zftv(:,:,:) = 0._wp 
    212212         ! 
    213          DO_3D_10_10( 1, jpkm1 ) 
     213         DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    214214            zdit(ji,jj,jk) = ( pt(ji+1,jj  ,jk,jn) - pt(ji,jj,jk,jn) ) * umask(ji,jj,jk) 
    215215            zdjt(ji,jj,jk) = ( pt(ji  ,jj+1,jk,jn) - pt(ji,jj,jk,jn) ) * vmask(ji,jj,jk) 
    216216         END_3D 
    217217         IF( ln_zps .AND. l_grad_zps ) THEN    ! partial steps: correction at top/bottom ocean level 
    218             DO_2D_10_10 
     218            DO_2D( 1, 0, 1, 0 ) 
    219219               zdit(ji,jj,mbku(ji,jj)) = pgu(ji,jj,jn) 
    220220               zdjt(ji,jj,mbkv(ji,jj)) = pgv(ji,jj,jn) 
    221221            END_2D 
    222222            IF( ln_isfcav ) THEN                   ! top level (ocean cavities only) 
    223                DO_2D_10_10 
     223               DO_2D( 1, 0, 1, 0 ) 
    224224                  IF( miku(ji,jj)  > 1 )   zdit(ji,jj,miku(ji,jj) ) = pgui(ji,jj,jn)  
    225225                  IF( mikv(ji,jj)  > 1 )   zdjt(ji,jj,mikv(ji,jj) ) = pgvi(ji,jj,jn)  
     
    246246               DO ip = 0, 1              !==  Horizontal & vertical fluxes 
    247247                  DO kp = 0, 1 
    248                      DO_2D_10_10 
     248                     DO_2D( 1, 0, 1, 0 ) 
    249249                        ze1ur = r1_e1u(ji,jj) 
    250250                        zdxt  = zdit(ji,jj,jk) * ze1ur 
     
    267267               DO jp = 0, 1 
    268268                  DO kp = 0, 1 
    269                      DO_2D_10_10 
     269                     DO_2D( 1, 0, 1, 0 ) 
    270270                        ze2vr = r1_e2v(ji,jj) 
    271271                        zdyt  = zdjt(ji,jj,jk) * ze2vr 
     
    289289               DO ip = 0, 1               !==  Horizontal & vertical fluxes 
    290290                  DO kp = 0, 1 
    291                      DO_2D_10_10 
     291                     DO_2D( 1, 0, 1, 0 ) 
    292292                        ze1ur = r1_e1u(ji,jj) 
    293293                        zdxt  = zdit(ji,jj,jk) * ze1ur 
     
    310310               DO jp = 0, 1 
    311311                  DO kp = 0, 1 
    312                      DO_2D_10_10 
     312                     DO_2D( 1, 0, 1, 0 ) 
    313313                        ze2vr = r1_e2v(ji,jj) 
    314314                        zdyt  = zdjt(ji,jj,jk) * ze2vr 
     
    329329            ENDIF 
    330330            !                             !==  horizontal divergence and add to the general trend  ==! 
    331             DO_2D_00_00 
     331            DO_2D( 0, 0, 0, 0 ) 
    332332               pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn)    & 
    333333                  &                       + zsign * (  zftu(ji-1,jj  ,jk) - zftu(ji,jj,jk)       & 
     
    340340         !                                !==  add the vertical 33 flux  ==! 
    341341         IF( ln_traldf_lap ) THEN               ! laplacian case: eddy coef = ah_wslp2 - akz 
    342             DO_3D_10_00( 2, jpkm1 ) 
     342            DO_3D( 1, 0, 0, 0, 2, jpkm1 ) 
    343343               ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk)   & 
    344344                  &                            * ( ah_wslp2(ji,jj,jk) - akz(ji,jj,jk) )             & 
     
    348348            SELECT CASE( kpass ) 
    349349            CASE(  1  )                            ! 1st pass : eddy coef = ah_wslp2 
    350                DO_3D_10_00( 2, jpkm1 ) 
     350               DO_3D( 1, 0, 0, 0, 2, jpkm1 ) 
    351351                  ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk)             & 
    352352                     &                            * ah_wslp2(ji,jj,jk) * ( pt(ji,jj,jk-1,jn) - pt(ji,jj,jk,jn) ) 
    353353               END_3D 
    354354            CASE(  2  )                            ! 2nd pass : eddy flux = ah_wslp2 and akz applied on pt  and pt2 gradients, resp. 
    355                DO_3D_10_00( 2, jpkm1 ) 
     355               DO_3D( 1, 0, 0, 0, 2, jpkm1 ) 
    356356                  ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk)                      & 
    357357                     &                            * (  ah_wslp2(ji,jj,jk) * ( pt (ji,jj,jk-1,jn) - pt (ji,jj,jk,jn) )   & 
     
    361361         ENDIF 
    362362         ! 
    363          DO_3D_00_00( 1, jpkm1 ) 
     363         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    364364            pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn)    & 
    365365            &                                  + zsign * (  ztfw(ji,jj,jk+1) - ztfw(ji,jj,jk)  )   & 
  • NEMO/trunk/src/OCE/TRA/tramle.F90

    r13237 r13295  
    100100      inml_mle(:,:) = mbkt(:,:) + 1                    ! init. to number of ocean w-level (T-level + 1) 
    101101      IF ( nla10 > 0 ) THEN                            ! avoid case where first level is thicker than 10m 
    102          DO_3DS_11_11( jpkm1, nlb10, -1 ) 
     102         DO_3DS( 1, 1, 1, 1, jpkm1, nlb10, -1 ) 
    103103            IF( rhop(ji,jj,jk) > rhop(ji,jj,nla10) + rn_rho_c_mle )   inml_mle(ji,jj) = jk      ! Mixed layer 
    104104         END_3D 
     
    110110      zbm (:,:) = 0._wp 
    111111      zn2 (:,:) = 0._wp 
    112       DO_3D_11_11( 1, ikmax ) 
     112      DO_3D( 1, 1, 1, 1, 1, ikmax ) 
    113113         zc = e3t(ji,jj,jk,Kmm) * REAL( MIN( MAX( 0, inml_mle(ji,jj)-jk ) , 1  )  )    ! zc being 0 outside the ML t-points 
    114114         zmld(ji,jj) = zmld(ji,jj) + zc 
     
    119119      SELECT CASE( nn_mld_uv )                         ! MLD at u- & v-pts 
    120120      CASE ( 0 )                                               != min of the 2 neighbour MLDs 
    121          DO_2D_10_10 
     121         DO_2D( 1, 0, 1, 0 ) 
    122122            zhu(ji,jj) = MIN( zmld(ji+1,jj), zmld(ji,jj) ) 
    123123            zhv(ji,jj) = MIN( zmld(ji,jj+1), zmld(ji,jj) ) 
    124124         END_2D 
    125125      CASE ( 1 )                                               != average of the 2 neighbour MLDs 
    126          DO_2D_10_10 
     126         DO_2D( 1, 0, 1, 0 ) 
    127127            zhu(ji,jj) = ( zmld(ji+1,jj) + zmld(ji,jj) ) * 0.5_wp 
    128128            zhv(ji,jj) = ( zmld(ji,jj+1) + zmld(ji,jj) ) * 0.5_wp 
    129129         END_2D 
    130130      CASE ( 2 )                                               != max of the 2 neighbour MLDs 
    131          DO_2D_10_10 
     131         DO_2D( 1, 0, 1, 0 ) 
    132132            zhu(ji,jj) = MAX( zmld(ji+1,jj), zmld(ji,jj) ) 
    133133            zhv(ji,jj) = MAX( zmld(ji,jj+1), zmld(ji,jj) ) 
     
    146146      ! 
    147147      IF( nn_mle == 0 ) THEN           ! Fox-Kemper et al. 2010 formulation 
    148          DO_2D_10_10 
     148         DO_2D( 1, 0, 1, 0 ) 
    149149            zpsim_u(ji,jj) = rn_ce * zhu(ji,jj) * zhu(ji,jj)  * e2_e1u(ji,jj)                                            & 
    150150               &           * ( zbm(ji+1,jj) - zbm(ji,jj) ) * MIN( 111.e3_wp , e1u(ji,jj) )   & 
     
    157157         ! 
    158158      ELSEIF( nn_mle == 1 ) THEN       ! New formulation (Lf = 5km fo/ff with fo=Coriolis parameter at latitude rn_lat) 
    159          DO_2D_10_10 
     159         DO_2D( 1, 0, 1, 0 ) 
    160160            zpsim_u(ji,jj) = rc_f *   zhu(ji,jj)   * zhu(ji,jj)   * e2_e1u(ji,jj)               & 
    161161               &                  * ( zbm(ji+1,jj) - zbm(ji,jj) ) * MIN( 111.e3_wp , e1u(ji,jj) ) 
     
    167167      ! 
    168168      IF( nn_conv == 1 ) THEN              ! No MLE in case of convection 
    169          DO_2D_10_10 
     169         DO_2D( 1, 0, 1, 0 ) 
    170170            IF( MIN( zn2(ji,jj) , zn2(ji+1,jj) ) < 0._wp )   zpsim_u(ji,jj) = 0._wp 
    171171            IF( MIN( zn2(ji,jj) , zn2(ji,jj+1) ) < 0._wp )   zpsim_v(ji,jj) = 0._wp 
     
    174174      ! 
    175175      !                                      !==  structure function value at uw- and vw-points  ==! 
    176       DO_2D_10_10 
     176      DO_2D( 1, 0, 1, 0 ) 
    177177         zhu(ji,jj) = 1._wp / zhu(ji,jj)                   ! hu --> 1/hu 
    178178         zhv(ji,jj) = 1._wp / zhv(ji,jj) 
     
    182182      zpsi_vw(:,:,:) = 0._wp 
    183183      ! 
    184       DO_3D_10_10( 2, ikmax ) 
     184      DO_3D( 1, 0, 1, 0, 2, ikmax ) 
    185185         zcuw = 1._wp - ( gdepw(ji+1,jj,jk,Kmm) + gdepw(ji,jj,jk,Kmm) ) * zhu(ji,jj) 
    186186         zcvw = 1._wp - ( gdepw(ji,jj+1,jk,Kmm) + gdepw(ji,jj,jk,Kmm) ) * zhv(ji,jj) 
     
    196196      !                                      !==  transport increased by the MLE induced transport ==! 
    197197      DO jk = 1, ikmax 
    198          DO_2D_10_10 
     198         DO_2D( 1, 0, 1, 0 ) 
    199199            pu(ji,jj,jk) = pu(ji,jj,jk) + ( zpsi_uw(ji,jj,jk) - zpsi_uw(ji,jj,jk+1) ) 
    200200            pv(ji,jj,jk) = pv(ji,jj,jk) + ( zpsi_vw(ji,jj,jk) - zpsi_vw(ji,jj,jk+1) ) 
    201201         END_2D 
    202          DO_2D_00_00 
     202         DO_2D( 0, 0, 0, 0 ) 
    203203            pw(ji,jj,jk) = pw(ji,jj,jk) - ( zpsi_uw(ji,jj,jk) - zpsi_uw(ji-1,jj,jk)   & 
    204204               &                          + zpsi_vw(ji,jj,jk) - zpsi_vw(ji,jj-1,jk) ) 
     
    283283            IF( ierr /= 0 )   CALL ctl_stop( 'tra_adv_mle_init: failed to allocate arrays' ) 
    284284            z1_t2 = 1._wp / ( rn_time * rn_time ) 
    285             DO_2D_01_01 
     285            DO_2D( 0, 1, 0, 1 ) 
    286286               zfu = ( ff_f(ji,jj) + ff_f(ji,jj-1) ) * 0.5_wp 
    287287               zfv = ( ff_f(ji,jj) + ff_f(ji-1,jj) ) * 0.5_wp 
  • NEMO/trunk/src/OCE/TRA/tranpc.F90

    r13237 r13295  
    103103         inpcc = 0 
    104104         ! 
    105          DO_2D_00_00 
     105         DO_2D( 0, 0, 0, 0 ) 
    106106            ! 
    107107            IF( tmask(ji,jj,2) == 1 ) THEN      ! At least 2 ocean points 
  • NEMO/trunk/src/OCE/TRA/traqsr.F90

    r13286 r13295  
    172172            ! most expensive calculations) 
    173173            ! 
    174             DO_2D_00_00 
     174            DO_2D( 0, 0, 0, 0 ) 
    175175                       ! zlogc = log(zchl) 
    176176               zlogc = LOG ( MIN( 10. , MAX( 0.03, sf_chl(1)%fnow(ji,jj,1) ) ) )      
     
    191191             
    192192! 
    193             DO_3D_00_00 ( 1, nksr + 1 ) 
     193            DO_3D( 0, 0, 0, 0, 1, nksr + 1 ) 
    194194               ! zchl    = ALOG( ze0(ji,jj) ) 
    195195               zlogc = ze0(ji,jj) 
     
    221221         ! 
    222222         zcoef  = ( 1. - rn_abs ) / 3._wp    !* surface equi-partition in R-G-B 
    223          DO_2D_00_00 
     223         DO_2D( 0, 0, 0, 0 ) 
    224224            ze0(ji,jj) = rn_abs * qsr(ji,jj) 
    225225            ze1(ji,jj) = zcoef  * qsr(ji,jj) 
     
    232232         ! 
    233233         !* interior equi-partition in R-G-B depending on vertical profile of Chl 
    234          DO_3D_00_00 ( 2, nksr + 1 ) 
     234         DO_3D( 0, 0, 0, 0, 2, nksr + 1 ) 
    235235            ze3t = e3t(ji,jj,jk-1,Kmm) 
    236236            irgb = NINT( ztmp3d(ji,jj,jk) ) 
     
    246246         END_3D 
    247247         ! 
    248          DO_3D_00_00( 1, nksr ) 
     248         DO_3D( 0, 0, 0, 0, 1, nksr ) 
    249249            qsr_hc(ji,jj,jk) = r1_rho0_rcp * ( ztmp3d(ji,jj,jk) - ztmp3d(ji,jj,jk+1) ) 
    250250         END_3D 
     
    256256         zz0 =        rn_abs   * r1_rho0_rcp      ! surface equi-partition in 2-bands 
    257257         zz1 = ( 1. - rn_abs ) * r1_rho0_rcp 
    258          DO_3D_00_00( 1, nksr ) 
     258         DO_3D( 0, 0, 0, 0, 1, nksr ) 
    259259            zc0 = zz0 * EXP( -gdepw(ji,jj,jk  ,Kmm)*xsi0r ) + zz1 * EXP( -gdepw(ji,jj,jk  ,Kmm)*xsi1r ) 
    260260            zc1 = zz0 * EXP( -gdepw(ji,jj,jk+1,Kmm)*xsi0r ) + zz1 * EXP( -gdepw(ji,jj,jk+1,Kmm)*xsi1r ) 
     
    265265      ! 
    266266      !                          !-----------------------------! 
    267       DO_3D_00_00( 1, nksr ) 
     267      DO_3D( 0, 0, 0, 0, 1, nksr ) 
    268268         pts(ji,jj,jk,jp_tem,Krhs) = pts(ji,jj,jk,jp_tem,Krhs)   & 
    269269            &                      + z1_2 * ( qsr_hc_b(ji,jj,jk) + qsr_hc(ji,jj,jk) )   & 
     
    272272      ! 
    273273      ! sea-ice: store the 1st ocean level attenuation coefficient 
    274       DO_2D_00_00 
     274      DO_2D( 0, 0, 0, 0 ) 
    275275         IF( qsr(ji,jj) /= 0._wp ) THEN   ;   fraqsr_1lev(ji,jj) = qsr_hc(ji,jj,1) / ( r1_rho0_rcp * qsr(ji,jj) ) 
    276276         ELSE                             ;   fraqsr_1lev(ji,jj) = 1._wp 
  • NEMO/trunk/src/OCE/TRA/trasbc.F90

    r13286 r13295  
    124124      ENDIF 
    125125      !                             !==  Now sbc tracer content fields  ==! 
    126       DO_2D_01_00 
     126      DO_2D( 0, 1, 0, 0 ) 
    127127         sbc_tsc(ji,jj,jp_tem) = r1_rho0_rcp * qns(ji,jj)   ! non solar heat flux 
    128128         sbc_tsc(ji,jj,jp_sal) = r1_rho0     * sfx(ji,jj)   ! salt flux due to freezing/melting 
    129129      END_2D 
    130130      IF( ln_linssh ) THEN                !* linear free surface   
    131          DO_2D_01_00 
     131         DO_2D( 0, 1, 0, 0 ) 
    132132            sbc_tsc(ji,jj,jp_tem) = sbc_tsc(ji,jj,jp_tem) + r1_rho0 * emp(ji,jj) * pts(ji,jj,1,jp_tem,Kmm) 
    133133            sbc_tsc(ji,jj,jp_sal) = sbc_tsc(ji,jj,jp_sal) + r1_rho0 * emp(ji,jj) * pts(ji,jj,1,jp_sal,Kmm) 
     
    138138      ! 
    139139      DO jn = 1, jpts               !==  update tracer trend  ==! 
    140          DO_2D_01_00 
     140         DO_2D( 0, 1, 0, 0 ) 
    141141            pts(ji,jj,1,jn,Krhs) = pts(ji,jj,1,jn,Krhs) + zfact * ( sbc_tsc_b(ji,jj,jn) + sbc_tsc(ji,jj,jn) )    & 
    142142               &                                                / e3t(ji,jj,1,Kmm) 
     
    157157      IF( ln_rnf ) THEN         ! input of heat and salt due to river runoff  
    158158         zfact = 0.5_wp 
    159          DO_2D_01_00 
     159         DO_2D( 0, 1, 0, 0 ) 
    160160            IF( rnf(ji,jj) /= 0._wp ) THEN 
    161161               zdep = zfact / h_rnf(ji,jj) 
     
    182182          ! 
    183183         IF( ln_linssh ) THEN  
    184             DO_2D_01_00 
     184            DO_2D( 0, 1, 0, 0 ) 
    185185               ztim = ssh_iau(ji,jj) / e3t(ji,jj,1,Kmm) 
    186186               pts(ji,jj,1,jp_tem,Krhs) = pts(ji,jj,1,jp_tem,Krhs) + pts(ji,jj,1,jp_tem,Kmm) * ztim 
     
    188188            END_2D 
    189189         ELSE 
    190             DO_2D_01_00 
     190            DO_2D( 0, 1, 0, 0 ) 
    191191               ztim = ssh_iau(ji,jj) / ( ht(ji,jj) + 1. - ssmask(ji, jj) ) 
    192192               pts(ji,jj,:,jp_tem,Krhs) = pts(ji,jj,:,jp_tem,Krhs) + pts(ji,jj,:,jp_tem,Kmm) * ztim 
  • NEMO/trunk/src/OCE/TRA/trazdf.F90

    r13237 r13295  
    161161            IF( l_ldfslp ) THEN            ! isoneutral diffusion: add the contribution  
    162162               IF( ln_traldf_msc  ) THEN     ! MSC iso-neutral operator  
    163                   DO_3D_00_00( 2, jpkm1 ) 
     163                  DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    164164                     zwt(ji,jj,jk) = zwt(ji,jj,jk) + akz(ji,jj,jk)   
    165165                  END_3D 
    166166               ELSE                          ! standard or triad iso-neutral operator 
    167                   DO_3D_00_00( 2, jpkm1 ) 
     167                  DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    168168                     zwt(ji,jj,jk) = zwt(ji,jj,jk) + ah_wslp2(ji,jj,jk) 
    169169                  END_3D 
     
    173173            ! Diagonal, lower (i), upper (s)  (including the bottom boundary condition since avt is masked) 
    174174            IF( ln_zad_Aimp ) THEN         ! Adaptive implicit vertical advection 
    175                DO_3D_00_00( 1, jpkm1 ) 
     175               DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    176176                  zzwi = - p2dt * zwt(ji,jj,jk  ) / e3w(ji,jj,jk  ,Kmm) 
    177177                  zzws = - p2dt * zwt(ji,jj,jk+1) / e3w(ji,jj,jk+1,Kmm) 
     
    182182               END_3D 
    183183            ELSE 
    184                DO_3D_00_00( 1, jpkm1 ) 
     184               DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    185185                  zwi(ji,jj,jk) = - p2dt * zwt(ji,jj,jk  ) / e3w(ji,jj,jk,Kmm) 
    186186                  zws(ji,jj,jk) = - p2dt * zwt(ji,jj,jk+1) / e3w(ji,jj,jk+1,Kmm) 
     
    208208            !   used as a work space array: its value is modified. 
    209209            ! 
    210             DO_2D_00_00 
     210            DO_2D( 0, 0, 0, 0 ) 
    211211               zwt(ji,jj,1) = zwd(ji,jj,1) 
    212212            END_2D 
    213             DO_3D_00_00( 2, jpkm1 ) 
     213            DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    214214               zwt(ji,jj,jk) = zwd(ji,jj,jk) - zwi(ji,jj,jk) * zws(ji,jj,jk-1) / zwt(ji,jj,jk-1) 
    215215            END_3D 
     
    217217         ENDIF  
    218218         !          
    219          DO_2D_00_00 
     219         DO_2D( 0, 0, 0, 0 ) 
    220220            pt(ji,jj,1,jn,Kaa) =        e3t(ji,jj,1,Kbb) * pt(ji,jj,1,jn,Kbb)    & 
    221221               &               + p2dt * e3t(ji,jj,1,Kmm) * pt(ji,jj,1,jn,Krhs) 
    222222         END_2D 
    223          DO_3D_00_00( 2, jpkm1 ) 
     223         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    224224            zrhs =        e3t(ji,jj,jk,Kbb) * pt(ji,jj,jk,jn,Kbb)    &  
    225225               & + p2dt * e3t(ji,jj,jk,Kmm) * pt(ji,jj,jk,jn,Krhs)   ! zrhs=right hand side 
     
    227227         END_3D 
    228228         ! 
    229          DO_2D_00_00 
     229         DO_2D( 0, 0, 0, 0 ) 
    230230            pt(ji,jj,jpkm1,jn,Kaa) = pt(ji,jj,jpkm1,jn,Kaa) / zwt(ji,jj,jpkm1) * tmask(ji,jj,jpkm1) 
    231231         END_2D 
    232          DO_3DS_00_00( jpk-2, 1, -1 ) 
     232         DO_3DS( 0, 0, 0, 0, jpk-2, 1, -1 ) 
    233233            pt(ji,jj,jk,jn,Kaa) = ( pt(ji,jj,jk,jn,Kaa) - zws(ji,jj,jk) * pt(ji,jj,jk+1,jn,Kaa) )   & 
    234234               &             / zwt(ji,jj,jk) * tmask(ji,jj,jk) 
  • NEMO/trunk/src/OCE/TRA/zpshde.F90

    r13237 r13295  
    107107      DO jn = 1, kjpt      !==   Interpolation of tracers at the last ocean level   ==! 
    108108         ! 
    109          DO_2D_10_10 
     109         DO_2D( 1, 0, 1, 0 ) 
    110110            iku = mbku(ji,jj)   ;   ikum1 = MAX( iku - 1 , 1 )    ! last and before last ocean level at u- & v-points 
    111111            ikv = mbkv(ji,jj)   ;   ikvm1 = MAX( ikv - 1 , 1 )    ! if level first is a p-step, ik.m1=1 
     
    151151         pgru(:,:) = 0._wp 
    152152         pgrv(:,:) = 0._wp                ! depth of the partial step level 
    153          DO_2D_10_10 
     153         DO_2D( 1, 0, 1, 0 ) 
    154154            iku = mbku(ji,jj) 
    155155            ikv = mbkv(ji,jj) 
     
    167167         CALL eos( ztj, zhj, zrj )        ! at the partial step depth output in  zri, zrj  
    168168         ! 
    169          DO_2D_10_10 
     169         DO_2D( 1, 0, 1, 0 ) 
    170170            iku = mbku(ji,jj) 
    171171            ikv = mbkv(ji,jj) 
     
    262262      DO jn = 1, kjpt      !==   Interpolation of tracers at the last ocean level   ==! 
    263263         ! 
    264          DO_2D_10_10 
     264         DO_2D( 1, 0, 1, 0 ) 
    265265 
    266266            iku = mbku(ji,jj); ikum1 = MAX( iku - 1 , 1 )    ! last and before last ocean level at u- & v-points 
     
    308308         pgru(:,:)=0.0_wp   ; pgrv(:,:)=0.0_wp ;  
    309309         ! 
    310          DO_2D_10_10 
     310         DO_2D( 1, 0, 1, 0 ) 
    311311 
    312312            iku = mbku(ji,jj) 
     
    329329         CALL eos( ztj, zhj, zrj ) 
    330330 
    331          DO_2D_10_10 
     331         DO_2D( 1, 0, 1, 0 ) 
    332332            iku = mbku(ji,jj) 
    333333            ikv = mbkv(ji,jj) 
     
    351351      ! 
    352352      DO jn = 1, kjpt      !==   Interpolation of tracers at the last ocean level   ==!            ! 
    353          DO_2D_10_10 
     353         DO_2D( 1, 0, 1, 0 ) 
    354354            iku = miku(ji,jj); ikup1 = miku(ji,jj) + 1 
    355355            ikv = mikv(ji,jj); ikvp1 = mikv(ji,jj) + 1 
     
    400400         ! 
    401401         pgrui(:,:)  =0.0_wp; pgrvi(:,:)  =0.0_wp; 
    402          DO_2D_10_10 
     402         DO_2D( 1, 0, 1, 0 ) 
    403403 
    404404            iku = miku(ji,jj) 
     
    420420         CALL eos( ztj, zhj, zrj )        ! at the partial step depth output in  zri, zrj  
    421421         ! 
    422          DO_2D_10_10 
     422         DO_2D( 1, 0, 1, 0 ) 
    423423            iku = miku(ji,jj)  
    424424            ikv = mikv(ji,jj)  
  • NEMO/trunk/src/OCE/TRD/trddyn.F90

    r13237 r13295  
    124124                              z3dx(:,:,:) = 0._wp                  ! U.dxU & V.dyV (approximation) 
    125125                              z3dy(:,:,:) = 0._wp 
    126                               DO_3D_00_00( 1, jpkm1 ) 
     126                              DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    127127                                 z3dx(ji,jj,jk) = uu(ji,jj,jk,Kmm) * ( uu(ji+1,jj,jk,Kmm) - uu(ji-1,jj,jk,Kmm) ) / ( 2._wp * e1u(ji,jj) ) 
    128128                                 z3dy(ji,jj,jk) = vv(ji,jj,jk,Kmm) * ( vv(ji,jj+1,jk,Kmm) - vv(ji,jj-1,jk,Kmm) ) / ( 2._wp * e2v(ji,jj) ) 
  • NEMO/trunk/src/OCE/TRD/trdglo.F90

    r13237 r13295  
    8686         ! 
    8787         CASE( 'TRA' )          !==  Tracers (T & S)  ==! 
    88             DO_3D_11_11( 1, jpkm1 ) 
     88            DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    8989               zvm = e1e2t(ji,jj) * e3t(ji,jj,jk,Kmm) * tmask(ji,jj,jk) * tmask_i(ji,jj) 
    9090               zvt = ptrdx(ji,jj,jk) * zvm 
     
    115115            ! 
    116116         CASE( 'DYN' )          !==  Momentum and KE  ==!         
    117             DO_3D_10_10( 1, jpkm1 ) 
     117            DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    118118               zvt = ptrdx(ji,jj,jk) * tmask_i(ji+1,jj) * tmask_i(ji,jj) * umask(ji,jj,jk)   & 
    119119                  &                                     * e1e2u  (ji,jj) * e3u(ji,jj,jk,Kmm) 
     
    127127            IF( ktrd == jpdyn_zdf ) THEN      ! zdf trend: compute separately the surface forcing trend 
    128128               z1_2rho0 = 0.5_wp / rho0 
    129                DO_2D_10_10 
     129               DO_2D( 1, 0, 1, 0 ) 
    130130                  zvt = ( utau_b(ji,jj) + utau(ji,jj) ) * tmask_i(ji+1,jj) * tmask_i(ji,jj) * umask(ji,jj,jk)   & 
    131131                     &                                                     * z1_2rho0       * e1e2u(ji,jj) 
     
    211211          
    212212         zcof   = 0.5_wp / rho0           ! Density flux at u and v-points 
    213          DO_3D_10_10( 1, jpkm1 ) 
     213         DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    214214            zkx(ji,jj,jk) = zcof * e2u(ji,jj) * e3u(ji,jj,jk,Kmm)   & 
    215215               &                              *  uu(ji,jj,jk,Kmm) * ( rhop(ji,jj,jk) + rhop(ji+1,jj,jk) ) 
     
    218218         END_3D 
    219219          
    220          DO_3D_00_00( 1, jpkm1 ) 
     220         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    221221            zkepe(ji,jj,jk) = - (  zkz(ji,jj,jk) - zkz(ji  ,jj  ,jk+1)               & 
    222222               &                 + zkx(ji,jj,jk) - zkx(ji-1,jj  ,jk  )               & 
     
    527527      tvolv = 0._wp 
    528528 
    529       DO_3D_00_00( 1, jpk ) 
     529      DO_3D( 0, 0, 0, 0, 1, jpk ) 
    530530         tvolu = tvolu + e1u(ji,jj) * e2u(ji,jj) * e3u(ji,jj,jk,Kmm)   & 
    531531            &                                       * tmask_i(ji+1,jj  ) * tmask_i(ji,jj) * umask(ji,jj,jk) 
  • NEMO/trunk/src/OCE/TRD/trdken.F90

    r13237 r13295  
    102102      zke(1,:, : ) = 0._wp 
    103103      zke(:,1, : ) = 0._wp 
    104       DO_3D_01_01( 1, jpkm1 ) 
     104      DO_3D( 0, 1, 0, 1, 1, jpkm1 ) 
    105105         zke(ji,jj,jk) = 0.5_wp * rho0 *( uu(ji  ,jj,jk,Kmm) * putrd(ji  ,jj,jk) * bu(ji  ,jj,jk)  & 
    106106            &                           + uu(ji-1,jj,jk,Kmm) * putrd(ji-1,jj,jk) * bu(ji-1,jj,jk)  & 
     
    123123                           z2dy(:,:) = vv(:,:,1,Kmm) * ( vtau_b(:,:) + vtau(:,:) ) * e1e2v(:,:) * vmask(:,:,1) 
    124124                           zke2d(1,:) = 0._wp   ;   zke2d(:,1) = 0._wp 
    125                            DO_2D_01_01 
     125                           DO_2D( 0, 1, 0, 1 ) 
    126126                              zke2d(ji,jj) = r1_rho0 * 0.5_wp * (   z2dx(ji,jj) + z2dx(ji-1,jj)   & 
    127127                              &                                   + z2dy(ji,jj) + z2dy(ji,jj-1)   ) * r1_bt(ji,jj,1) 
     
    219219 
    220220      ! conv value on T-point 
    221       DO_3D_11_11( 1, jpkm1 ) 
     221      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    222222         zcoef = 0.5_wp / e3t(ji,jj,jk,Kmm) 
    223223         pconv(ji,jj,jk) = zcoef * ( zconv(ji,jj,jk) + zconv(ji,jj,jk+1) ) * tmask(ji,jj,jk) 
  • NEMO/trunk/src/OCE/TRD/trdmxl.F90

    r13237 r13295  
    120120         ! 
    121121         wkx(:,:,:) = 0._wp         !==  now ML weights for vertical averaging  ==! 
    122          DO_3D_11_11( 1, jpktrd ) 
     122         DO_3D( 1, 1, 1, 1, 1, jpktrd ) 
    123123            IF( jk - kmxln(ji,jj) < 0 )   THEN 
    124124               wkx(ji,jj,jk) = e3t(ji,jj,jk,Kmm) * tmask(ji,jj,jk) 
  • NEMO/trunk/src/OCE/TRD/trdtra.F90

    r13237 r13295  
    221221      ptrd(:,:,jpk) = 0._wp 
    222222      ! 
    223       DO_3D_00_00( 1, jpkm1 ) 
     223      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    224224         ptrd(ji,jj,jk) = - (     pf (ji,jj,jk) - pf (ji-ii,jj-ij,jk-ik)                        & 
    225225           &                  - ( pu(ji,jj,jk) - pu(ji-ii,jj-ij,jk-ik) ) * pt(ji,jj,jk)  )   & 
  • NEMO/trunk/src/OCE/TRD/trdvor.F90

    r13237 r13295  
    105105      CASE( jpdyn_zdf )                                                      ! Vertical Diffusion  
    106106         ztswu(:,:) = 0.e0   ;   ztswv(:,:) = 0.e0 
    107          DO_2D_00_00 
     107         DO_2D( 0, 0, 0, 0 ) 
    108108            ztswu(ji,jj) = 0.5 * ( utau_b(ji,jj) + utau(ji,jj) ) / ( e3u(ji,jj,1,Kmm) * rho0 ) 
    109109            ztswv(ji,jj) = 0.5 * ( vtau_b(ji,jj) + vtau(ji,jj) ) / ( e3v(ji,jj,1,Kmm) * rho0 ) 
     
    172172      ! 
    173173      CASE( jpvor_bfr )        ! bottom friction 
    174          DO_2D_00_00 
     174         DO_2D( 0, 0, 0, 0 ) 
    175175            ikbu = mbkv(ji,jj) 
    176176            ikbv = mbkv(ji,jj)             
  • NEMO/trunk/src/OCE/USR/usrdef_hgr.F90

    r13286 r13295  
    115115      ENDIF 
    116116      !    
    117       DO_2D_11_11 
     117      DO_2D( 1, 1, 1, 1 ) 
    118118         zim1 = REAL( mig0_oldcmp(ji), wp ) - 1.   ;   zim05 = REAL( mig0_oldcmp(ji), wp ) - 1.5 
    119119         zjm1 = REAL( mjg0_oldcmp(jj), wp ) - 1.   ;   zjm05 = REAL( mjg0_oldcmp(jj), wp ) - 1.5 
  • NEMO/trunk/src/OCE/USR/usrdef_istate.F90

    r12377 r13295  
    6161      pssh(:,:)   = 0._wp 
    6262      ! 
    63       DO_3D_11_11( 1, jpk ) 
     63      DO_3D( 1, 1, 1, 1, 1, jpk ) 
    6464         pts(ji,jj,jk,jp_tem) =  (  (  16. - 12. * TANH( (pdept(ji,jj,jk) - 400) / 700 ) )   & 
    6565              &           * (-TANH( (500. - pdept(ji,jj,jk)) / 150. ) + 1.) / 2.             & 
  • NEMO/trunk/src/OCE/USR/usrdef_sbc.F90

    r13226 r13295  
    110110      ztrp= - 40.e0        ! retroaction term on heat fluxes (W/m2/K) 
    111111      zconv = 3.16e-5      ! convertion factor: 1 m/yr => 3.16e-5 mm/s 
    112       DO_2D_11_11 
     112      DO_2D( 1, 1, 1, 1 ) 
    113113         ! domain from 15 deg to 50 deg between 27 and 28  degC at 15N, -3 
    114114         ! and 13 degC at 50N 53.5 + or - 11 = 1/4 period : 
     
    165165      ztau_sais = 0.015 
    166166      ztaun = ztau - ztau_sais * COS( (ztime - ztimemax) / (ztimemin - ztimemax) * rpi ) 
    167       DO_2D_11_11 
     167      DO_2D( 1, 1, 1, 1 ) 
    168168        ! domain from 15deg to 50deg and 1/2 period along 14deg 
    169169        ! so 5/4 of half period with seasonal cycle 
     
    174174      ! module of wind stress and wind speed at T-point 
    175175      zcoef = 1. / ( zrhoa * zcdrag )  
    176       DO_2D_00_00 
     176      DO_2D( 0, 0, 0, 0 ) 
    177177         ztx = utau(ji-1,jj  ) + utau(ji,jj)  
    178178         zty = vtau(ji  ,jj-1) + vtau(ji,jj)  
  • NEMO/trunk/src/OCE/ZDF/zdfddm.F90

    r13237 r13295  
    9494!!gm                            and many acces in memory 
    9595          
    96          DO_2D_11_11 
     96         DO_2D( 1, 1, 1, 1 ) 
    9797            zrw =   ( gdepw(ji,jj,jk  ,Kmm) - gdept(ji,jj,jk,Kmm) )   & 
    9898!!gm please, use e3w at Kmm below  
     
    110110         END_2D 
    111111 
    112          DO_2D_11_11 
     112         DO_2D( 1, 1, 1, 1 ) 
    113113            ! stability indicator: msks=1 if rn2>0; 0 elsewhere 
    114114            IF( rn2(ji,jj,jk) + 1.e-12  <= 0. ) THEN   ;   zmsks(ji,jj) = 0._wp 
     
    140140         ! ------------------ 
    141141         ! Constant eddy coefficient: reset to the background value 
    142          DO_2D_11_11 
     142         DO_2D( 1, 1, 1, 1 ) 
    143143            zinr = 1._wp / zrau(ji,jj) 
    144144            ! salt fingering 
  • NEMO/trunk/src/OCE/ZDF/zdfdrg.F90

    r13286 r13295  
    116116      ! 
    117117      IF( l_log_not_linssh ) THEN     !==  "log layer"  ==!   compute Cd and -Cd*|U| 
    118          DO_2D_00_00 
     118         DO_2D( 0, 0, 0, 0 ) 
    119119            imk = k_mk(ji,jj)          ! ocean bottom level at t-points 
    120120            zut = uu(ji,jj,imk,Kmm) + uu(ji-1,jj,imk,Kmm)     ! 2 x velocity at t-point 
     
    128128         END_2D 
    129129      ELSE                                            !==  standard Cd  ==! 
    130          DO_2D_00_00 
     130         DO_2D( 0, 0, 0, 0 ) 
    131131            imk = k_mk(ji,jj)    ! ocean bottom level at t-points 
    132132            zut = uu(ji,jj,imk,Kmm) + uu(ji-1,jj,imk,Kmm)     ! 2 x velocity at t-point 
     
    175175      ENDIF 
    176176 
    177       DO_2D_00_00 
     177      DO_2D( 0, 0, 0, 0 ) 
    178178         ikbu = mbku(ji,jj)          ! deepest wet ocean u- & v-levels 
    179179         ikbv = mbkv(ji,jj) 
     
    188188      ! 
    189189      IF( ln_isfcav ) THEN        ! ocean cavities 
    190          DO_2D_00_00 
     190         DO_2D( 0, 0, 0, 0 ) 
    191191            ikbu = miku(ji,jj)          ! first wet ocean u- & v-levels 
    192192            ikbv = mikv(ji,jj) 
     
    422422            l_log_not_linssh = .FALSE.    !- don't update Cd at each time step 
    423423            ! 
    424             DO_2D_11_11 
     424            DO_2D( 1, 1, 1, 1 ) 
    425425               zzz =  0.5_wp * e3t_0(ji,jj,k_mk(ji,jj)) 
    426426               zcd = (  vkarmn / LOG( zzz / rn_z0 )  )**2 
  • NEMO/trunk/src/OCE/ZDF/zdfevd.F90

    r12377 r13295  
    8787!         END WHERE 
    8888         ! 
    89          DO_3D_00_00( 1, jpkm1 ) 
     89         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    9090            IF(  MIN( rn2(ji,jj,jk), rn2b(ji,jj,jk) ) <= -1.e-12 ) THEN 
    9191               p_avt(ji,jj,jk) = rn_evd * wmask(ji,jj,jk) 
     
    103103!         END WHERE 
    104104 
    105          DO_3D_00_00( 1, jpkm1 ) 
     105         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    106106            IF(  MIN( rn2(ji,jj,jk), rn2b(ji,jj,jk) ) <= -1.e-12 )   & 
    107107               p_avt(ji,jj,jk) = rn_evd * wmask(ji,jj,jk) 
  • NEMO/trunk/src/OCE/ZDF/zdfgls.F90

    r13286 r13295  
    168168 
    169169      ! Compute surface, top and bottom friction at T-points 
    170       DO_2D_00_00 
     170      DO_2D( 0, 0, 0, 0 ) 
    171171         ! 
    172172         ! surface friction 
     
    181181      END_2D 
    182182      IF( ln_isfcav ) THEN       !top friction 
    183          DO_2D_00_00 
     183         DO_2D( 0, 0, 0, 0 ) 
    184184            zmsku = ( 2. - umask(ji-1,jj,mikt(ji,jj)) * umask(ji,jj,mikt(ji,jj)) ) 
    185185            zmskv = ( 2. - vmask(ji,jj-1,mikt(ji,jj)) * vmask(ji,jj,mikt(ji,jj)) )     ! (CAUTION: CdU<0) 
     
    204204      END SELECT 
    205205      ! 
    206       DO_3D_10_10( 2, jpkm1 ) 
     206      DO_3D( 1, 0, 1, 0, 2, jpkm1 ) 
    207207         eps(ji,jj,jk)  = rc03 * en(ji,jj,jk) * SQRT( en(ji,jj,jk) ) / hmxl_n(ji,jj,jk) 
    208208      END_3D 
     
    213213 
    214214      IF( nn_clos == 0 ) THEN    ! Mellor-Yamada 
    215          DO_3D_00_00( 2, jpkm1 ) 
     215         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    216216            zup   = hmxl_n(ji,jj,jk) * gdepw(ji,jj,mbkt(ji,jj)+1,Kmm) 
    217217            zdown = vkarmn * gdepw(ji,jj,jk,Kmm) * ( -gdepw(ji,jj,jk,Kmm) + gdepw(ji,jj,mbkt(ji,jj)+1,Kmm) ) 
     
    234234      ! Warning : after this step, en : right hand side of the matrix 
    235235 
    236       DO_3D_00_00( 2, jpkm1 ) 
     236      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    237237         ! 
    238238         buoy = - p_avt(ji,jj,jk) * rn2(ji,jj,jk)     ! stratif. destruction 
     
    330330         !                      ! en(ibot) = u*^2 / Co2 and hmxl_n(ibot) = rn_lmin 
    331331         !                      ! Balance between the production and the dissipation terms 
    332          DO_2D_00_00 
     332         DO_2D( 0, 0, 0, 0 ) 
    333333!!gm This means that bottom and ocean w-level above have a specified "en" value.   Sure ???? 
    334334!!   With thick deep ocean level thickness, this may be quite large, no ??? 
     
    348348         ! 
    349349         IF( ln_isfcav) THEN     ! top boundary   (ocean cavity) 
    350             DO_2D_00_00 
     350            DO_2D( 0, 0, 0, 0 ) 
    351351               itop   = mikt(ji,jj)       ! k   top w-point 
    352352               itopp1 = mikt(ji,jj) + 1   ! k+1 1st w-point below the top one 
     
    366366      CASE ( 1 )             ! Neumman boundary condition 
    367367         !                       
    368          DO_2D_00_00 
     368         DO_2D( 0, 0, 0, 0 ) 
    369369            ibot   = mbkt(ji,jj) + 1      ! k   bottom level of w-point 
    370370            ibotm1 = mbkt(ji,jj)          ! k-1 bottom level of w-point but >=1 
     
    380380         END_2D 
    381381         IF( ln_isfcav) THEN     ! top boundary   (ocean cavity) 
    382             DO_2D_00_00 
     382            DO_2D( 0, 0, 0, 0 ) 
    383383               itop   = mikt(ji,jj)       ! k   top w-point 
    384384               itopp1 = mikt(ji,jj) + 1   ! k+1 1st w-point below the top one 
     
    400400      ! ---------------------------------------------------------- 
    401401      ! 
    402       DO_3D_00_00( 2, jpkm1 ) 
     402      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    403403         zdiag(ji,jj,jk) = zdiag(ji,jj,jk) - zd_lw(ji,jj,jk) * zd_up(ji,jj,jk-1) / zdiag(ji,jj,jk-1) 
    404404      END_3D 
    405       DO_3D_00_00( 2, jpk ) 
     405      DO_3D( 0, 0, 0, 0, 2, jpk ) 
    406406         zd_lw(ji,jj,jk) = en(ji,jj,jk) - zd_lw(ji,jj,jk) / zdiag(ji,jj,jk-1) * zd_lw(ji,jj,jk-1) 
    407407      END_3D 
    408       DO_3DS_00_00( jpk-1, 2, -1 ) 
     408      DO_3DS( 0, 0, 0, 0, jpk-1, 2, -1 ) 
    409409         en(ji,jj,jk) = ( zd_lw(ji,jj,jk) - zd_up(ji,jj,jk) * en(ji,jj,jk+1) ) / zdiag(ji,jj,jk) 
    410410      END_3D 
     
    421421      ! 
    422422      CASE( 0 )               ! k-kl  (Mellor-Yamada) 
    423          DO_3D_00_00( 2, jpkm1 ) 
     423         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    424424            psi(ji,jj,jk)  = eb(ji,jj,jk) * hmxl_b(ji,jj,jk) 
    425425         END_3D 
    426426         ! 
    427427      CASE( 1 )               ! k-eps 
    428          DO_3D_00_00( 2, jpkm1 ) 
     428         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    429429            psi(ji,jj,jk)  = eps(ji,jj,jk) 
    430430         END_3D 
    431431         ! 
    432432      CASE( 2 )               ! k-w 
    433          DO_3D_00_00( 2, jpkm1 ) 
     433         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    434434            psi(ji,jj,jk)  = SQRT( eb(ji,jj,jk) ) / ( rc0 * hmxl_b(ji,jj,jk) ) 
    435435         END_3D 
    436436         ! 
    437437      CASE( 3 )               ! generic 
    438          DO_3D_00_00( 2, jpkm1 ) 
     438         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    439439            psi(ji,jj,jk)  = rc02 * eb(ji,jj,jk) * hmxl_b(ji,jj,jk)**rnn  
    440440         END_3D 
     
    449449      ! Warning : after this step, en : right hand side of the matrix 
    450450 
    451       DO_3D_00_00( 2, jpkm1 ) 
     451      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    452452         ! 
    453453         ! psi / k 
     
    546546         !                      ! en(ibot) = u*^2 / Co2 and hmxl_n(ibot) = vkarmn * r_z0_bot 
    547547         !                      ! Balance between the production and the dissipation terms 
    548          DO_2D_00_00 
     548         DO_2D( 0, 0, 0, 0 ) 
    549549            ibot   = mbkt(ji,jj) + 1      ! k   bottom level of w-point 
    550550            ibotm1 = mbkt(ji,jj)          ! k-1 bottom level of w-point but >=1 
     
    565565      CASE ( 1 )             ! Neumman boundary condition 
    566566         !                       
    567          DO_2D_00_00 
     567         DO_2D( 0, 0, 0, 0 ) 
    568568            ibot   = mbkt(ji,jj) + 1      ! k   bottom level of w-point 
    569569            ibotm1 = mbkt(ji,jj)          ! k-1 bottom level of w-point but >=1 
     
    593593      ! ---------------- 
    594594      ! 
    595       DO_3D_00_00( 2, jpkm1 ) 
     595      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    596596         zdiag(ji,jj,jk) = zdiag(ji,jj,jk) - zd_lw(ji,jj,jk) * zd_up(ji,jj,jk-1) / zdiag(ji,jj,jk-1) 
    597597      END_3D 
    598       DO_3D_00_00( 2, jpk ) 
     598      DO_3D( 0, 0, 0, 0, 2, jpk ) 
    599599         zd_lw(ji,jj,jk) = psi(ji,jj,jk) - zd_lw(ji,jj,jk) / zdiag(ji,jj,jk-1) * zd_lw(ji,jj,jk-1) 
    600600      END_3D 
    601       DO_3DS_00_00( jpk-1, 2, -1 ) 
     601      DO_3DS( 0, 0, 0, 0, jpk-1, 2, -1 ) 
    602602         psi(ji,jj,jk) = ( zd_lw(ji,jj,jk) - zd_up(ji,jj,jk) * psi(ji,jj,jk+1) ) / zdiag(ji,jj,jk) 
    603603      END_3D 
     
    609609      ! 
    610610      CASE( 0 )               ! k-kl  (Mellor-Yamada) 
    611          DO_3D_00_00( 1, jpkm1 ) 
     611         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    612612            eps(ji,jj,jk) = rc03 * en(ji,jj,jk) * en(ji,jj,jk) * SQRT( en(ji,jj,jk) ) / MAX( psi(ji,jj,jk), rn_epsmin) 
    613613         END_3D 
    614614         ! 
    615615      CASE( 1 )               ! k-eps 
    616          DO_3D_00_00( 1, jpkm1 ) 
     616         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    617617            eps(ji,jj,jk) = psi(ji,jj,jk) 
    618618         END_3D 
    619619         ! 
    620620      CASE( 2 )               ! k-w 
    621          DO_3D_00_00( 1, jpkm1 ) 
     621         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    622622            eps(ji,jj,jk) = rc04 * en(ji,jj,jk) * psi(ji,jj,jk)  
    623623         END_3D 
     
    627627         zex1  =      ( 1.5_wp + rmm/rnn ) 
    628628         zex2  = -1._wp / rnn 
    629          DO_3D_00_00( 1, jpkm1 ) 
     629         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    630630            eps(ji,jj,jk) = zcoef * en(ji,jj,jk)**zex1 * psi(ji,jj,jk)**zex2 
    631631         END_3D 
     
    635635      ! Limit dissipation rate under stable stratification 
    636636      ! -------------------------------------------------- 
    637       DO_3D_00_00( 1, jpkm1 ) 
     637      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    638638         ! limitation 
    639639         eps   (ji,jj,jk)  = MAX( eps(ji,jj,jk), rn_epsmin ) 
     
    651651      ! 
    652652      CASE ( 0 , 1 )             ! Galperin or Kantha-Clayson stability functions 
    653          DO_3D_00_00( 2, jpkm1 ) 
     653         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    654654            ! zcof =  l²/q² 
    655655            zcof = hmxl_b(ji,jj,jk) * hmxl_b(ji,jj,jk) / ( 2._wp*eb(ji,jj,jk) ) 
     
    668668         ! 
    669669      CASE ( 2, 3 )               ! Canuto stability functions 
    670          DO_3D_00_00( 2, jpkm1 ) 
     670         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    671671            ! zcof =  l²/q² 
    672672            zcof = hmxl_b(ji,jj,jk)*hmxl_b(ji,jj,jk) / ( 2._wp * eb(ji,jj,jk) ) 
     
    700700      ! default value, in case jpk > mbkt(ji,jj)+1. Not needed but avoid a bug when looking for undefined values (-fpe0) 
    701701      zstm(:,:,jpk) = 0.   
    702       DO_2D_00_00 
     702      DO_2D( 0, 0, 0, 0 ) 
    703703         zstm(ji,jj,mbkt(ji,jj)+1) = zstm(ji,jj,mbkt(ji,jj)) 
    704704      END_2D 
     
    715715      !     later overwritten by surface/bottom boundaries conditions, so we don't really care of p_avm(:,:1) and p_avm(:,:jpk) 
    716716      !     for zd_lw and zd_up but they have to be defined to avoid a bug when looking for undefined values (-fpe0) 
    717       DO_3D_00_00( 1, jpk ) 
     717      DO_3D( 0, 0, 0, 0, 1, jpk ) 
    718718         zsqen = SQRT( 2._wp * en(ji,jj,jk) ) * hmxl_n(ji,jj,jk) 
    719719         zavt  = zsqen * zstt(ji,jj,jk) 
  • NEMO/trunk/src/OCE/ZDF/zdfiwm.F90

    r13286 r13295  
    143143      ! Set to zero the 1st and last vertical levels of appropriate variables 
    144144      IF( iom_use("emix_iwm") ) THEN 
    145          DO_2D_00_00 
     145         DO_2D( 0, 0, 0, 0 ) 
    146146            zemx_iwm (ji,jj,1) = 0._wp   ;   zemx_iwm (ji,jj,jpk) = 0._wp 
    147147         END_2D 
     
    150150      ENDIF 
    151151      IF( iom_use("av_ratio") ) THEN 
    152          DO_2D_00_00 
     152         DO_2D( 0, 0, 0, 0 ) 
    153153            zav_ratio(ji,jj,1) = 0._wp   ;   zav_ratio(ji,jj,jpk) = 0._wp 
    154154         END_2D 
     
    157157      ENDIF 
    158158      IF( iom_use("av_wave") ) THEN 
    159          DO_2D_00_00 
     159         DO_2D( 0, 0, 0, 0 ) 
    160160            zav_wave (ji,jj,1) = 0._wp   ;   zav_wave (ji,jj,jpk) = 0._wp 
    161161         END_2D 
     
    170170      !                       !* Critical slope mixing: distribute energy over the time-varying ocean depth, 
    171171      !                                                 using an exponential decay from the seafloor. 
    172       DO_2D_00_00 
     172      DO_2D( 0, 0, 0, 0 ) 
    173173         zhdep(ji,jj) = gdepw_0(ji,jj,mbkt(ji,jj)+1)       ! depth of the ocean 
    174174         zfact(ji,jj) = rho0 * (  1._wp - EXP( -zhdep(ji,jj) / hcri_iwm(ji,jj) )  ) 
     
    176176      END_2D 
    177177!!gm gde3w ==>>>  check for ssh taken into account.... seem OK gde3w_n=gdept(:,:,:,Kmm) - ssh(:,:,Kmm) 
    178       DO_3D_00_00( 2, jpkm1 ) 
     178      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    179179         IF ( zfact(ji,jj) == 0._wp .OR. wmask(ji,jj,jk) == 0._wp ) THEN   ! optimization 
    180180            zemx_iwm(ji,jj,jk) = 0._wp 
     
    196196      CASE ( 1 )               ! Dissipation scales as N (recommended) 
    197197         ! 
    198          DO_2D_00_00 
     198         DO_2D( 0, 0, 0, 0 ) 
    199199            zfact(ji,jj) = 0._wp 
    200200         END_2D 
    201          DO_3D_00_00( 2, jpkm1 )       ! part independent of the level 
     201         DO_3D( 0, 0, 0, 0, 2, jpkm1 )       ! part independent of the level 
    202202            zfact(ji,jj) = zfact(ji,jj) + e3w(ji,jj,jk,Kmm) * SQRT(  MAX( 0._wp, rn2(ji,jj,jk) )  ) * wmask(ji,jj,jk) 
    203203         END_3D 
    204204         ! 
    205          DO_2D_00_00 
     205         DO_2D( 0, 0, 0, 0 ) 
    206206            IF( zfact(ji,jj) /= 0 )   zfact(ji,jj) = epyc_iwm(ji,jj) / ( rho0 * zfact(ji,jj) ) 
    207207         END_2D 
    208208         ! 
    209          DO_3D_00_00( 2, jpkm1 )       ! complete with the level-dependent part 
     209         DO_3D( 0, 0, 0, 0, 2, jpkm1 )       ! complete with the level-dependent part 
    210210            zemx_iwm(ji,jj,jk) = zemx_iwm(ji,jj,jk) + zfact(ji,jj) * SQRT(  MAX( 0._wp, rn2(ji,jj,jk) )  ) * wmask(ji,jj,jk) 
    211211         END_3D 
     
    213213      CASE ( 2 )               ! Dissipation scales as N^2 
    214214         ! 
    215          DO_2D_00_00 
     215         DO_2D( 0, 0, 0, 0 ) 
    216216            zfact(ji,jj) = 0._wp 
    217217         END_2D 
    218          DO_3D_00_00( 2, jpkm1 )       ! part independent of the level 
     218         DO_3D( 0, 0, 0, 0, 2, jpkm1 )       ! part independent of the level 
    219219            zfact(ji,jj) = zfact(ji,jj) + e3w(ji,jj,jk,Kmm) * MAX( 0._wp, rn2(ji,jj,jk) ) * wmask(ji,jj,jk) 
    220220         END_3D 
    221221         ! 
    222          DO_2D_00_00 
     222         DO_2D( 0, 0, 0, 0 ) 
    223223            IF( zfact(ji,jj) /= 0 )   zfact(ji,jj) = epyc_iwm(ji,jj) / ( rho0 * zfact(ji,jj) ) 
    224224         END_2D 
    225225         ! 
    226          DO_3D_00_00( 2, jpkm1 )       ! complete with the level-dependent part 
     226         DO_3D( 0, 0, 0, 0, 2, jpkm1 )       ! complete with the level-dependent part 
    227227            zemx_iwm(ji,jj,jk) = zemx_iwm(ji,jj,jk) + zfact(ji,jj) * MAX( 0._wp, rn2(ji,jj,jk) ) * wmask(ji,jj,jk) 
    228228         END_3D 
     
    233233      !                        !* ocean depth as proportional to rn2 * exp(-z_wkb/rn_hbot) 
    234234      ! 
    235       DO_2D_00_00 
     235      DO_2D( 0, 0, 0, 0 ) 
    236236         zwkb(ji,jj,1) = 0._wp 
    237237      END_2D 
    238       DO_3D_00_00( 2, jpkm1 ) 
     238      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    239239         zwkb(ji,jj,jk) = zwkb(ji,jj,jk-1) + e3w(ji,jj,jk,Kmm) * SQRT(  MAX( 0._wp, rn2(ji,jj,jk) )  ) * wmask(ji,jj,jk) 
    240240      END_3D 
    241       DO_2D_00_00 
     241      DO_2D( 0, 0, 0, 0 ) 
    242242         zfact(ji,jj) = zwkb(ji,jj,jpkm1) 
    243243      END_2D 
    244244      ! 
    245       DO_3D_00_00( 2, jpkm1 ) 
     245      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    246246         IF( zfact(ji,jj) /= 0 )   zwkb(ji,jj,jk) = zhdep(ji,jj) * ( zfact(ji,jj) - zwkb(ji,jj,jk) )   & 
    247247            &                                     * wmask(ji,jj,jk) / zfact(ji,jj) 
    248248      END_3D 
    249       DO_2D_00_00 
     249      DO_2D( 0, 0, 0, 0 ) 
    250250         zwkb (ji,jj,1) = zhdep(ji,jj) * wmask(ji,jj,1) 
    251251      END_2D 
    252252      ! 
    253       DO_3D_00_00( 2, jpkm1 ) 
     253      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    254254         IF ( rn2(ji,jj,jk) <= 0._wp .OR. wmask(ji,jj,jk) == 0._wp ) THEN   ! optimization: EXP coast a lot 
    255255            zweight(ji,jj,jk) = 0._wp 
     
    260260      END_3D 
    261261      ! 
    262       DO_2D_00_00 
     262      DO_2D( 0, 0, 0, 0 ) 
    263263         zfact(ji,jj) = 0._wp 
    264264      END_2D 
    265       DO_3D_00_00( 2, jpkm1 )       ! part independent of the level 
     265      DO_3D( 0, 0, 0, 0, 2, jpkm1 )       ! part independent of the level 
    266266         zfact(ji,jj) = zfact(ji,jj) + zweight(ji,jj,jk) 
    267267      END_3D 
    268268      ! 
    269       DO_2D_00_00 
     269      DO_2D( 0, 0, 0, 0 ) 
    270270         IF( zfact(ji,jj) /= 0 )   zfact(ji,jj) = ebot_iwm(ji,jj) / ( rho0 * zfact(ji,jj) ) 
    271271      END_2D 
    272272      ! 
    273       DO_3D_00_00( 2, jpkm1 )       ! complete with the level-dependent part 
     273      DO_3D( 0, 0, 0, 0, 2, jpkm1 )       ! complete with the level-dependent part 
    274274         zemx_iwm(ji,jj,jk) = zemx_iwm(ji,jj,jk) + zweight(ji,jj,jk) * zfact(ji,jj) * wmask(ji,jj,jk)   & 
    275275            &                                                        / ( gde3w(ji,jj,jk) - gde3w(ji,jj,jk-1) ) 
     
    279279!!gm  this is to be replaced by just a constant value znu=1.e-6 m2/s 
    280280      ! Calculate molecular kinematic viscosity 
    281       DO_3D_00_00( 1, jpkm1 ) 
     281      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    282282         znu_t(ji,jj,jk) = 1.e-4_wp * (  17.91_wp - 0.53810_wp * ts(ji,jj,jk,jp_tem,Kmm)   & 
    283283            &                                     + 0.00694_wp * ts(ji,jj,jk,jp_tem,Kmm) * ts(ji,jj,jk,jp_tem,Kmm)  & 
    284284            &                                     + 0.02305_wp * ts(ji,jj,jk,jp_sal,Kmm)  ) * tmask(ji,jj,jk) * r1_rho0 
    285285      END_3D 
    286       DO_3D_00_00( 2, jpkm1 ) 
     286      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    287287         znu_w(ji,jj,jk) = 0.5_wp * ( znu_t(ji,jj,jk-1) + znu_t(ji,jj,jk) ) * wmask(ji,jj,jk) 
    288288      END_3D 
     
    290290      ! 
    291291      ! Calculate turbulence intensity parameter Reb 
    292       DO_3D_00_00( 2, jpkm1 ) 
     292      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    293293         zReb(ji,jj,jk) = zemx_iwm(ji,jj,jk) / MAX( 1.e-20_wp, znu_w(ji,jj,jk) * rn2(ji,jj,jk) ) 
    294294      END_3D 
    295295      ! 
    296296      ! Define internal wave-induced diffusivity 
    297       DO_3D_00_00( 2, jpkm1 ) 
     297      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    298298         zav_wave(ji,jj,jk) = znu_w(ji,jj,jk) * zReb(ji,jj,jk) * r1_6   ! This corresponds to a constant mixing efficiency of 1/6 
    299299      END_3D 
    300300      ! 
    301301      IF( ln_mevar ) THEN              ! Variable mixing efficiency case : modify zav_wave in the 
    302          DO_3D_00_00( 2, jpkm1 ) 
     302         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    303303            IF( zReb(ji,jj,jk) > 480.00_wp ) THEN 
    304304               zav_wave(ji,jj,jk) = 3.6515_wp * znu_w(ji,jj,jk) * SQRT( zReb(ji,jj,jk) ) 
     
    309309      ENDIF 
    310310      ! 
    311       DO_3D_00_00( 2, jpkm1 )          ! Bound diffusivity by molecular value and 100 cm2/s 
     311      DO_3D( 0, 0, 0, 0, 2, jpkm1 )          ! Bound diffusivity by molecular value and 100 cm2/s 
    312312         zav_wave(ji,jj,jk) = MIN(  MAX( 1.4e-7_wp, zav_wave(ji,jj,jk) ), 1.e-2_wp  ) * wmask(ji,jj,jk) 
    313313      END_3D 
     
    316316         zztmp = 0._wp 
    317317!!gm used of glosum 3D.... 
    318          DO_3D_00_00( 2, jpkm1 ) 
     318         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    319319            zztmp = zztmp + e3w(ji,jj,jk,Kmm) * e1e2t(ji,jj)   & 
    320320               &          * MAX( 0._wp, rn2(ji,jj,jk) ) * zav_wave(ji,jj,jk) * wmask(ji,jj,jk) * tmask_i(ji,jj) 
     
    338338      IF( ln_tsdiff ) THEN          !* Option for differential mixing of salinity and temperature 
    339339         ztmp1 = 0.505_wp + 0.495_wp * TANH( 0.92_wp * ( LOG10( 1.e-20_wp ) - 0.60_wp ) ) 
    340          DO_3D_00_00( 2, jpkm1 ) 
     340         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    341341            ztmp2 = zReb(ji,jj,jk) * 5._wp * r1_6 
    342342            IF ( ztmp2 > 1.e-20_wp .AND. wmask(ji,jj,jk) == 1._wp ) THEN 
     
    347347         END_3D 
    348348         CALL iom_put( "av_ratio", zav_ratio ) 
    349          DO_3D_00_00( 2, jpkm1 )    !* update momentum & tracer diffusivity with wave-driven mixing 
     349         DO_3D( 0, 0, 0, 0, 2, jpkm1 )    !* update momentum & tracer diffusivity with wave-driven mixing 
    350350            p_avs(ji,jj,jk) = p_avs(ji,jj,jk) + zav_wave(ji,jj,jk) * zav_ratio(ji,jj,jk) 
    351351            p_avt(ji,jj,jk) = p_avt(ji,jj,jk) + zav_wave(ji,jj,jk) 
     
    354354         ! 
    355355      ELSE                          !* update momentum & tracer diffusivity with wave-driven mixing 
    356          DO_3D_00_00( 2, jpkm1 ) 
     356         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    357357            p_avs(ji,jj,jk) = p_avs(ji,jj,jk) + zav_wave(ji,jj,jk) 
    358358            p_avt(ji,jj,jk) = p_avt(ji,jj,jk) + zav_wave(ji,jj,jk) 
     
    369369         ALLOCATE( z2d(jpi,jpj) , z3d(jpi,jpj,jpk) ) 
    370370         ! Initialisation for iom_put 
    371          DO_2D_00_00 
     371         DO_2D( 0, 0, 0, 0 ) 
    372372            z3d(ji,jj,1) = 0._wp   ;   z3d(ji,jj,jpk) = 0._wp 
    373373         END_2D 
     
    377377         z2d(jpi-nn_hls+1:jpi   ,:  ) = 0._wp   ;   z2d(:,jpj-nn_hls+1:   jpj  ) = 0._wp 
    378378 
    379          DO_3D_00_00( 2, jpkm1 ) 
     379         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    380380            z3d(ji,jj,jk) = MAX( 0._wp, rn2(ji,jj,jk) ) * zav_wave(ji,jj,jk) 
    381381         END_3D 
    382          DO_2D_00_00 
     382         DO_2D( 0, 0, 0, 0 ) 
    383383            z2d(ji,jj) = 0._wp 
    384384         END_2D 
    385          DO_3D_00_00( 2, jpkm1 )  
     385         DO_3D( 0, 0, 0, 0, 2, jpkm1 )  
    386386            z2d(ji,jj) = z2d(ji,jj) + e3w(ji,jj,jk,Kmm) * z3d(ji,jj,jk) * wmask(ji,jj,jk) 
    387387         END_3D 
    388          DO_2D_00_00 
     388         DO_2D( 0, 0, 0, 0 ) 
    389389            z2d(ji,jj) = rho0 * z2d(ji,jj) 
    390390         END_2D 
  • NEMO/trunk/src/OCE/ZDF/zdfmxl.F90

    r13237 r13295  
    9999      hmlp(:,:)  = 0._wp               ! here hmlp used as a dummy variable, integrating vertically N^2 
    100100      zN2_c = grav * rho_c * r1_rho0   ! convert density criteria into N^2 criteria 
    101       DO_3D_11_11( nlb10, jpkm1 ) 
     101      DO_3D( 1, 1, 1, 1, nlb10, jpkm1 ) 
    102102         ikt = mbkt(ji,jj) 
    103103         hmlp(ji,jj) =   & 
     
    108108      ! w-level of the turbocline and mixing layer (iom_use) 
    109109      imld(:,:) = mbkt(:,:) + 1        ! Initialization to the number of w ocean point 
    110       DO_3DS_11_11( jpkm1, nlb10, -1 ) 
     110      DO_3DS( 1, 1, 1, 1, jpkm1, nlb10, -1 ) 
    111111         IF( avt (ji,jj,jk) < avt_c * wmask(ji,jj,jk) )   imld(ji,jj) = jk      ! Turbocline  
    112112      END_3D 
    113113      ! depth of the mixing and mixed layers 
    114       DO_2D_11_11 
     114      DO_2D( 1, 1, 1, 1 ) 
    115115         iiki = imld(ji,jj) 
    116116         iikn = nmln(ji,jj) 
  • NEMO/trunk/src/OCE/ZDF/zdfosm.F90

    r13286 r13295  
    300300     zz0 =       rn_abs       ! surface equi-partition in 2-bands 
    301301     zz1 =  1. - rn_abs 
    302      DO_2D_00_00 
     302     DO_2D( 0, 0, 0, 0 ) 
    303303        ! Surface downward irradiance (so always +ve) 
    304304        zrad0(ji,jj) = qsr(ji,jj) * r1_rho0_rcp 
     
    310310     END_2D 
    311311     ! Turbulent surface fluxes and fluxes averaged over depth of the OSBL 
    312      DO_2D_00_00 
     312     DO_2D( 0, 0, 0, 0 ) 
    313313        zthermal = rab_n(ji,jj,1,jp_tem) 
    314314        zbeta    = rab_n(ji,jj,1,jp_sal) 
     
    337337     ! Assume constant La#=0.3 
    338338     CASE(0) 
    339         DO_2D_00_00 
     339        DO_2D( 0, 0, 0, 0 ) 
    340340           zus_x = zcos_wind(ji,jj) * zustar(ji,jj) / 0.3**2 
    341341           zus_y = zsin_wind(ji,jj) * zustar(ji,jj) / 0.3**2 
     
    345345     ! Assume Pierson-Moskovitz wind-wave spectrum 
    346346     CASE(1) 
    347         DO_2D_00_00 
     347        DO_2D( 0, 0, 0, 0 ) 
    348348           ! Use wind speed wndm included in sbc_oce module 
    349349           zustke(ji,jj) = MAX ( 0.016 * wndm(ji,jj), 1.0e-8 ) 
     
    353353     CASE(2) 
    354354        zfac =  2.0_wp * rpi / 16.0_wp 
    355         DO_2D_00_00 
     355        DO_2D( 0, 0, 0, 0 ) 
    356356           ! The Langmur number from the ECMWF model appears to give La<0.3 for wind-driven seas. 
    357357           !    The coefficient 0.8 gives La=0.3  in this situation. 
     
    366366     ! Langmuir velocity scale (zwstrl), La # (zla) 
    367367     ! mixed scale (zvstr), convective velocity scale (zwstrc) 
    368      DO_2D_00_00 
     368     DO_2D( 0, 0, 0, 0 ) 
    369369        ! Langmuir velocity scale (zwstrl), at T-point 
    370370        zwstrl(ji,jj) = ( zustar(ji,jj) * zustar(ji,jj) * zustke(ji,jj) )**pthird 
     
    402402      hbl(:,:) = MAX(hbl(:,:), gdepw(:,:,3,Kmm) ) 
    403403      ibld(:,:) = 3 
    404       DO_3D_00_00( 4, jpkm1 ) 
     404      DO_3D( 0, 0, 0, 0, 4, jpkm1 ) 
    405405         IF ( hbl(ji,jj) >= gdepw(ji,jj,jk,Kmm) ) THEN 
    406406            ibld(ji,jj) = MIN(mbkt(ji,jj), jk) 
     
    408408      END_3D 
    409409 
    410       DO_2D_00_00 
     410      DO_2D( 0, 0, 0, 0 ) 
    411411            zthermal = rab_n(ji,jj,1,jp_tem) !ideally use ibld not 1?? 
    412412            zbeta    = rab_n(ji,jj,1,jp_sal) 
     
    478478      zdhdt(:,:) = MIN(zdhdt(:,:), (zhbl_t(:,:) - hbl(:,:))/rn_Dt + ww(ji,jj,ibld(ji,jj))) ! adjustment to represent limiting by ocean bottom 
    479479 
    480       DO_3D_00_00( 4, jpkm1 ) 
     480      DO_3D( 0, 0, 0, 0, 4, jpkm1 ) 
    481481         IF ( zhbl_t(ji,jj) >= gdepw(ji,jj,jk,Kmm) ) THEN 
    482482            ibld(ji,jj) =  MIN(mbkt(ji,jj), jk) 
     
    487487! Step through model levels taking account of buoyancy change to determine the effect on dhdt 
    488488! 
    489       DO_2D_00_00 
     489      DO_2D( 0, 0, 0, 0 ) 
    490490         IF ( ibld(ji,jj) - imld(ji,jj) > 1 ) THEN 
    491491! 
     
    552552     ! Consider later  combining this into the loop above and looking for columns 
    553553     ! where the index for base of the boundary layer have changed 
    554       DO_2D_00_00 
     554      DO_2D( 0, 0, 0, 0 ) 
    555555            zthermal = rab_n(ji,jj,1,jp_tem) !ideally use ibld not 1?? 
    556556            zbeta    = rab_n(ji,jj,1,jp_sal) 
     
    635635      ! Average over the depth of the mixed layer in the convective boundary layer 
    636636      ! Also calculate entrainment fluxes for temperature and salinity 
    637       DO_2D_00_00 
     637      DO_2D( 0, 0, 0, 0 ) 
    638638         zthermal = rab_n(ji,jj,1,jp_tem) !ideally use ibld not 1?? 
    639639         zbeta    = rab_n(ji,jj,1,jp_sal) 
     
    705705    ! 
    706706 
    707       DO_2D_00_00 
     707      DO_2D( 0, 0, 0, 0 ) 
    708708         ztemp = zu_ml(ji,jj) 
    709709         zu_ml(ji,jj) = zu_ml(ji,jj) * zcos_wind(ji,jj) + zv_ml(ji,jj) * zsin_wind(ji,jj) 
     
    723723     zuw_bse = 0._wp 
    724724     zvw_bse = 0._wp 
    725      DO_2D_00_00 
     725     DO_2D( 0, 0, 0, 0 ) 
    726726 
    727727        IF ( lconv(ji,jj) ) THEN 
     
    740740      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    741741 
    742        DO_2D_00_00 
     742       DO_2D( 0, 0, 0, 0 ) 
    743743       ! 
    744744          IF ( lconv (ji,jj) ) THEN 
     
    788788       END_2D 
    789789! 
    790        DO_2D_00_00 
     790       DO_2D( 0, 0, 0, 0 ) 
    791791       ! 
    792792          IF ( lconv (ji,jj) ) THEN 
     
    832832      !     zvisml_sc = zwstrl * zhbl * EXP ( -( zhol / 0.183_wp )**2 ) 
    833833      !  ENDWHERE 
    834        DO_2D_00_00 
     834       DO_2D( 0, 0, 0, 0 ) 
    835835          IF ( lconv(ji,jj) ) THEN 
    836836            zdifml_sc(ji,jj) = zhml(ji,jj) * ( zvstr(ji,jj)**3 + 0.5 * zwstrc(ji,jj)**3 )**pthird 
     
    846846       END_2D 
    847847! 
    848        DO_2D_00_00 
     848       DO_2D( 0, 0, 0, 0 ) 
    849849          IF ( lconv(ji,jj) ) THEN 
    850850             DO jk = 2, imld(ji,jj)   ! mixed layer diffusivity 
     
    896896 
    897897 
    898        DO_2D_00_00 
     898       DO_2D( 0, 0, 0, 0 ) 
    899899         IF ( lconv(ji,jj) ) THEN 
    900900           DO jk = 2, imld(ji,jj) 
     
    929929       ENDWHERE 
    930930 
    931        DO_2D_00_00 
     931       DO_2D( 0, 0, 0, 0 ) 
    932932          IF ( lconv(ji,jj) ) THEN 
    933933             DO jk = 2, imld(ji,jj) 
     
    961961       ENDWHERE 
    962962 
    963        DO_2D_00_00 
     963       DO_2D( 0, 0, 0, 0 ) 
    964964          IF (lconv(ji,jj) ) THEN 
    965965             DO jk = 2, imld(ji,jj) 
     
    993993       ENDWHERE 
    994994 
    995        DO_2D_00_00 
     995       DO_2D( 0, 0, 0, 0 ) 
    996996          IF ( lconv(ji,jj) ) THEN 
    997997             DO jk = 2 , imld(ji,jj) 
     
    10211021       ENDWHERE 
    10221022 
    1023        DO_2D_00_00 
     1023       DO_2D( 0, 0, 0, 0 ) 
    10241024         IF ( lconv(ji,jj) ) THEN 
    10251025            DO jk = 2, imld(ji,jj) 
     
    10581058       ENDWHERE 
    10591059 
    1060        DO_2D_00_00 
     1060       DO_2D( 0, 0, 0, 0 ) 
    10611061          IF ( lconv(ji,jj) ) THEN 
    10621062            DO jk = 2, imld(ji,jj) 
     
    10931093! Make surface forced velocity non-gradient terms go to zero at the base of the mixed layer. 
    10941094 
    1095       DO_2D_00_00 
     1095      DO_2D( 0, 0, 0, 0 ) 
    10961096         IF ( lconv(ji,jj) ) THEN 
    10971097            DO jk = 2, ibld(ji,jj) 
     
    11221122       ! Temporary fix to avoid instabilities when zdb_bl becomes very very small 
    11231123       zsc_uw_1 = 0._wp ! 50.0 * zla**(8.0/3.0) * zustar**2 * zhbl / ( zdb_bl + epsln ) 
    1124        DO_2D_00_00 
     1124       DO_2D( 0, 0, 0, 0 ) 
    11251125          DO jk= 2, ibld(ji,jj) 
    11261126             znd = gdepw(ji,jj,jk,Kmm) / zhbl(ji,jj) 
     
    11351135! Entrainment contribution. 
    11361136 
    1137        DO_2D_00_00 
     1137       DO_2D( 0, 0, 0, 0 ) 
    11381138          IF ( lconv(ji,jj) ) THEN 
    11391139            DO jk = 1, imld(ji,jj) - 1 
     
    11701170       ! rotate non-gradient velocity terms back to model reference frame 
    11711171 
    1172        DO_2D_00_00 
     1172       DO_2D( 0, 0, 0, 0 ) 
    11731173          DO jk = 2, ibld(ji,jj) 
    11741174             ztemp = ghamu(ji,jj,jk) 
     
    11841184! KPP-style Ri# mixing 
    11851185       IF( ln_kpprimix) THEN 
    1186           DO_3D_10_10( 2, jpkm1 ) 
     1186          DO_3D( 1, 0, 1, 0, 2, jpkm1 ) 
    11871187             z3du(ji,jj,jk) = 0.5 * (  uu(ji,jj,jk-1,Kmm) -  uu(ji  ,jj,jk,Kmm) )   & 
    11881188                  &                 * (  uu(ji,jj,jk-1,Kbb) -  uu(ji  ,jj,jk,Kbb) ) * wumask(ji,jj,jk) & 
     
    11931193          END_3D 
    11941194      ! 
    1195          DO_3D_00_00( 2, jpkm1 ) 
     1195         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    11961196            !                                          ! shear prod. at w-point weightened by mask 
    11971197            zesh2  =  ( z3du(ji-1,jj,jk) + z3du(ji,jj,jk) ) / MAX( 1._wp , umask(ji-1,jj,jk) + umask(ji,jj,jk) )   & 
     
    12041204         END_3D 
    12051205 
    1206           DO_2D_00_00 
     1206          DO_2D( 0, 0, 0, 0 ) 
    12071207             DO jk = ibld(ji,jj) + 1, jpkm1 
    12081208                zdiffut(ji,jj,jk) = zrimix(ji,jj,jk)*rn_difri 
     
    12151215! KPP-style set diffusivity large if unstable below BL 
    12161216       IF( ln_convmix) THEN 
    1217           DO_2D_00_00 
     1217          DO_2D( 0, 0, 0, 0 ) 
    12181218             DO jk = ibld(ji,jj) + 1, jpkm1 
    12191219               IF(  MIN( rn2(ji,jj,jk), rn2b(ji,jj,jk) ) <= -1.e-12 ) zdiffut(ji,jj,jk) = rn_difconv 
     
    12271227       ! GN 25/8: need to change tmask --> wmask 
    12281228 
    1229      DO_3D_00_00( 2, jpkm1 ) 
     1229     DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    12301230          p_avt(ji,jj,jk) = MAX( zdiffut(ji,jj,jk), avtb(jk) ) * tmask(ji,jj,jk) 
    12311231          p_avm(ji,jj,jk) = MAX( zviscos(ji,jj,jk), avmb(jk) ) * tmask(ji,jj,jk) 
     
    12341234     CALL lbc_lnk_multi( 'zdfosm', p_avt, 'W', 1.0_wp , p_avm, 'W', 1.0_wp,   & 
    12351235      &                  ghamu, 'W', 1.0_wp , ghamv, 'W', 1.0_wp ) 
    1236        DO_3D_00_00( 2, jpkm1 ) 
     1236       DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    12371237            ghamu(ji,jj,jk) = ( ghamu(ji,jj,jk) + ghamu(ji+1,jj,jk) ) & 
    12381238               &  / MAX( 1., tmask(ji,jj,jk) + tmask (ji + 1,jj,jk) ) * umask(ji,jj,jk) 
     
    13951395        etmean(:,:,:) = 0.e0 
    13961396 
    1397         DO_3D_00_00( 1, jpkm1 ) 
     1397        DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    13981398           etmean(ji,jj,jk) = tmask(ji,jj,jk)                     & 
    13991399                &  / MAX( 1.,  umask(ji-1,jj  ,jk) + umask(ji,jj,jk)   & 
     
    14091409        etmean(:,:,:) = 0.e0 
    14101410 
    1411         DO_3D_00_00( 1, jpkm1 ) 
     1411        DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    14121412           etmean(ji,jj,jk) = tmask(ji, jj,jk)                           & 
    14131413                & / MAX( 1., 2.* tmask(ji,jj,jk)                           & 
     
    15161516     ! 
    15171517     hbl(:,:)  = 0._wp              ! here hbl used as a dummy variable, integrating vertically N^2 
    1518      DO_3D_11_11( 1, jpkm1 ) 
     1518     DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    15191519        ikt = mbkt(ji,jj) 
    15201520        hbl(ji,jj) = hbl(ji,jj) + MAX( rn2(ji,jj,jk) , 0._wp ) * e3w(ji,jj,jk,Kmm) 
     
    15221522     END_3D 
    15231523     ! 
    1524      DO_2D_11_11 
     1524     DO_2D( 1, 1, 1, 1 ) 
    15251525        iiki = imld_rst(ji,jj) 
    15261526        hbl (ji,jj) = gdepw(ji,jj,iiki  ,Kmm) * ssmask(ji,jj)    ! Turbocline depth 
     
    15611561 
    15621562      ! add non-local temperature and salinity flux 
    1563       DO_3D_00_00( 1, jpkm1 ) 
     1563      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    15641564         pts(ji,jj,jk,jp_tem,Krhs) =  pts(ji,jj,jk,jp_tem,Krhs)                      & 
    15651565            &                 - (  ghamt(ji,jj,jk  )  & 
     
    16291629      !code saving tracer trends removed, replace with trdmxl_oce 
    16301630 
    1631       DO_3D_00_00( 1, jpkm1 ) 
     1631      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    16321632         puu(ji,jj,jk,Krhs) =  puu(ji,jj,jk,Krhs)                      & 
    16331633            &                 - (  ghamu(ji,jj,jk  )  & 
  • NEMO/trunk/src/OCE/ZDF/zdfric.F90

    r13286 r13295  
    160160      ! 
    161161      !                       !==  avm and avt = F(Richardson number)  ==! 
    162       DO_3D_10_10( 2, jpkm1 ) 
     162      DO_3D( 1, 0, 1, 0, 2, jpkm1 ) 
    163163         zcfRi = 1._wp / (  1._wp + rn_alp * MAX(  0._wp , avm(ji,jj,jk) * rn2(ji,jj,jk) / ( p_sh2(ji,jj,jk) + 1.e-20 ) )  ) 
    164164         zav   = rn_avmri * zcfRi**nn_ric 
     
    173173      IF( ln_mldw ) THEN      !==  set a minimum value in the Ekman layer  ==! 
    174174         ! 
    175          DO_2D_00_00 
     175         DO_2D( 0, 0, 0, 0 ) 
    176176            zustar = SQRT( taum(ji,jj) * r1_rho0 ) 
    177177            zhek   = rn_ekmfc * zustar / ( ABS( ff_t(ji,jj) ) + rsmall )   ! Ekman depth 
    178178            zh_ekm(ji,jj) = MAX(  rn_mldmin , MIN( zhek , rn_mldmax )  )   ! set allowed range 
    179179         END_2D 
    180          DO_3D_00_00( 2, jpkm1 ) 
     180         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    181181            IF( gdept(ji,jj,jk,Kmm) < zh_ekm(ji,jj) ) THEN 
    182182               p_avm(ji,jj,jk) = MAX(  p_avm(ji,jj,jk), rn_wvmix  ) * wmask(ji,jj,jk) 
  • NEMO/trunk/src/OCE/ZDF/zdfsh2.F90

    r13237 r13295  
    6060      ! 
    6161      DO jk = 2, jpkm1 
    62          DO_2D_10_10 
     62         DO_2D( 1, 0, 1, 0 ) 
    6363            zsh2u(ji,jj) = ( p_avm(ji+1,jj,jk) + p_avm(ji,jj,jk) ) & 
    6464               &         * (   uu(ji,jj,jk-1,Kmm) -   uu(ji,jj,jk,Kmm) ) & 
     
    7272               &         * wvmask(ji,jj,jk) 
    7373         END_2D 
    74          DO_2D_00_00 
     74         DO_2D( 0, 0, 0, 0 ) 
    7575            p_sh2(ji,jj,jk) = 0.25 * (   ( zsh2u(ji-1,jj) + zsh2u(ji,jj) ) * ( 2. - umask(ji-1,jj,jk) * umask(ji,jj,jk) )   & 
    7676               &                       + ( zsh2v(ji,jj-1) + zsh2v(ji,jj) ) * ( 2. - vmask(ji,jj-1,jk) * vmask(ji,jj,jk) )   ) 
  • NEMO/trunk/src/OCE/ZDF/zdfswm.F90

    r12377 r13295  
    6363      ! 
    6464      zcoef = 1._wp * 0.353553_wp 
    65       DO_3D_00_00( 2, jpkm1 ) 
     65      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    6666         zqb = zcoef * hsw(ji,jj) * tsd2d(ji,jj) * EXP( -3. * wnum(ji,jj) * gdepw(ji,jj,jk,Kmm) ) * wmask(ji,jj,jk) 
    6767         ! 
  • NEMO/trunk/src/OCE/ZDF/zdftke.F90

    r13286 r13295  
    224224      !                     !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    225225      !  
    226       DO_2D_00_00 
     226      DO_2D( 0, 0, 0, 0 ) 
    227227         en(ji,jj,1) = MAX( rn_emin0, zbbrau * taum(ji,jj) ) * tmask(ji,jj,1) 
    228228      END_2D 
     
    238238      IF( ln_drg ) THEN       !== friction used as top/bottom boundary condition on TKE 
    239239         ! 
    240          DO_2D_00_00 
     240         DO_2D( 0, 0, 0, 0 ) 
    241241            zmsku = ( 2. - umask(ji-1,jj,mbkt(ji,jj)) * umask(ji,jj,mbkt(ji,jj)) ) 
    242242            zmskv = ( 2. - vmask(ji,jj-1,mbkt(ji,jj)) * vmask(ji,jj,mbkt(ji,jj)) ) 
     
    247247         END_2D 
    248248         IF( ln_isfcav ) THEN       ! top friction 
    249             DO_2D_00_00 
     249            DO_2D( 0, 0, 0, 0 ) 
    250250               zmsku = ( 2. - umask(ji-1,jj,mikt(ji,jj)) * umask(ji,jj,mikt(ji,jj)) ) 
    251251               zmskv = ( 2. - vmask(ji,jj-1,mikt(ji,jj)) * vmask(ji,jj,mikt(ji,jj)) ) 
     
    274274         zcof = 0.5 * 0.016 * 0.016 / ( zrhoa * zcdrag ) 
    275275         imlc(:,:) = mbkt(:,:) + 1       ! Initialization to the number of w ocean point (=2 over land) 
    276          DO_3DS_11_11( jpkm1, 2, -1 ) 
     276         DO_3DS( 1, 1, 1, 1, jpkm1, 2, -1 ) 
    277277            zus  = zcof * taum(ji,jj) 
    278278            IF( zpelc(ji,jj,jk) > zus )   imlc(ji,jj) = jk 
    279279         END_3D 
    280280         !                               ! finite LC depth 
    281          DO_2D_11_11 
     281         DO_2D( 1, 1, 1, 1 ) 
    282282            zhlc(ji,jj) = gdepw(ji,jj,imlc(ji,jj),Kmm) 
    283283         END_2D 
    284284         zcof = 0.016 / SQRT( zrhoa * zcdrag ) 
    285          DO_2D_00_00 
     285         DO_2D( 0, 0, 0, 0 ) 
    286286            zus  = zcof * SQRT( taum(ji,jj) )           ! Stokes drift 
    287287            zfr_i(ji,jj) = ( 1._wp - 4._wp * fr_i(ji,jj) ) * zus * zus * zus * tmask(ji,jj,1) ! zus > 0. ok 
    288288            IF (zfr_i(ji,jj) < 0. ) zfr_i(ji,jj) = 0. 
    289289         END_2D 
    290          DO_3D_00_00( 2, jpkm1 ) 
     290         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    291291            IF ( zfr_i(ji,jj) /= 0. ) THEN                
    292292               ! vertical velocity due to LC    
     
    310310      ! 
    311311      IF( nn_pdl == 1 ) THEN      !* Prandtl number = F( Ri ) 
    312          DO_3D_00_00( 2, jpkm1 ) 
     312         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    313313            !                             ! local Richardson number 
    314314            IF (rn2b(ji,jj,jk) <= 0.0_wp) then 
     
    322322      ENDIF 
    323323      !          
    324       DO_3D_00_00( 2, jpkm1 ) 
     324      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    325325         zcof   = zfact1 * tmask(ji,jj,jk) 
    326326         !                                   ! A minimum of 2.e-5 m2/s is imposed on TKE vertical 
     
    344344      END_3D 
    345345      !                          !* Matrix inversion from level 2 (tke prescribed at level 1) 
    346       DO_3D_00_00( 3, jpkm1 ) 
     346      DO_3D( 0, 0, 0, 0, 3, jpkm1 ) 
    347347         zdiag(ji,jj,jk) = zdiag(ji,jj,jk) - zd_lw(ji,jj,jk) * zd_up(ji,jj,jk-1) / zdiag(ji,jj,jk-1) 
    348348      END_3D 
    349       DO_2D_00_00 
     349      DO_2D( 0, 0, 0, 0 ) 
    350350         zd_lw(ji,jj,2) = en(ji,jj,2) - zd_lw(ji,jj,2) * en(ji,jj,1)    ! Surface boudary conditions on tke 
    351351      END_2D 
    352       DO_3D_00_00( 3, jpkm1 ) 
     352      DO_3D( 0, 0, 0, 0, 3, jpkm1 ) 
    353353         zd_lw(ji,jj,jk) = en(ji,jj,jk) - zd_lw(ji,jj,jk) / zdiag(ji,jj,jk-1) *zd_lw(ji,jj,jk-1) 
    354354      END_3D 
    355       DO_2D_00_00 
     355      DO_2D( 0, 0, 0, 0 ) 
    356356         en(ji,jj,jpkm1) = zd_lw(ji,jj,jpkm1) / zdiag(ji,jj,jpkm1) 
    357357      END_2D 
    358       DO_3DS_00_00( jpk-2, 2, -1 ) 
     358      DO_3DS( 0, 0, 0, 0, jpk-2, 2, -1 ) 
    359359         en(ji,jj,jk) = ( zd_lw(ji,jj,jk) - zd_up(ji,jj,jk) * en(ji,jj,jk+1) ) / zdiag(ji,jj,jk) 
    360360      END_3D 
    361       DO_3D_00_00( 2, jpkm1 ) 
     361      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    362362         en(ji,jj,jk) = MAX( en(ji,jj,jk), rn_emin ) * wmask(ji,jj,jk) 
    363363      END_3D 
     
    371371       
    372372      IF( nn_etau == 1 ) THEN           !* penetration below the mixed layer (rn_efr fraction) 
    373          DO_3D_00_00( 2, jpkm1 ) 
     373         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    374374            en(ji,jj,jk) = en(ji,jj,jk) + rn_efr * en(ji,jj,1) * EXP( -gdepw(ji,jj,jk,Kmm) / htau(ji,jj) )   & 
    375375               &                                 * MAX(0.,1._wp - rn_eice *fr_i(ji,jj) )  * wmask(ji,jj,jk) * tmask(ji,jj,1) 
    376376         END_3D 
    377377      ELSEIF( nn_etau == 2 ) THEN       !* act only at the base of the mixed layer (jk=nmln)  (rn_efr fraction) 
    378          DO_2D_00_00 
     378         DO_2D( 0, 0, 0, 0 ) 
    379379            jk = nmln(ji,jj) 
    380380            en(ji,jj,jk) = en(ji,jj,jk) + rn_efr * en(ji,jj,1) * EXP( -gdepw(ji,jj,jk,Kmm) / htau(ji,jj) )   & 
     
    382382         END_2D 
    383383      ELSEIF( nn_etau == 3 ) THEN       !* penetration belox the mixed layer (HF variability) 
    384          DO_3D_00_00( 2, jpkm1 ) 
     384         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    385385            ztx2 = utau(ji-1,jj  ) + utau(ji,jj) 
    386386            zty2 = vtau(ji  ,jj-1) + vtau(ji,jj) 
     
    456456         zraug = vkarmn * 2.e5_wp / ( rho0 * grav ) 
    457457#if ! defined key_si3 && ! defined key_cice 
    458          DO_2D_00_00 
     458         DO_2D( 0, 0, 0, 0 ) 
    459459            zmxlm(ji,jj,1) =  zraug * taum(ji,jj) * tmask(ji,jj,1) 
    460460         END_2D 
     
    463463         ! 
    464464         CASE( 0 )                      ! No scaling under sea-ice 
    465             DO_2D_00_00 
     465            DO_2D( 0, 0, 0, 0 ) 
    466466               zmxlm(ji,jj,1) = zraug * taum(ji,jj) * tmask(ji,jj,1) 
    467467            END_2D 
    468468            ! 
    469469         CASE( 1 )                           ! scaling with constant sea-ice thickness 
    470             DO_2D_00_00 
     470            DO_2D( 0, 0, 0, 0 ) 
    471471               zmxlm(ji,jj,1) =  ( ( 1. - fr_i(ji,jj) ) * zraug * taum(ji,jj) + fr_i(ji,jj) * rn_mxlice ) * tmask(ji,jj,1) 
    472472            END_2D 
    473473            ! 
    474474         CASE( 2 )                                 ! scaling with mean sea-ice thickness 
    475             DO_2D_00_00 
     475            DO_2D( 0, 0, 0, 0 ) 
    476476#if defined key_si3 
    477477               zmxlm(ji,jj,1) = ( ( 1. - fr_i(ji,jj) ) * zraug * taum(ji,jj) + fr_i(ji,jj) * hm_i(ji,jj) * 2. ) * tmask(ji,jj,1) 
     
    483483            ! 
    484484         CASE( 3 )                                 ! scaling with max sea-ice thickness 
    485             DO_2D_00_00 
     485            DO_2D( 0, 0, 0, 0 ) 
    486486               zmaxice = MAXVAL( h_i(ji,jj,:) ) 
    487487               zmxlm(ji,jj,1) = ( ( 1. - fr_i(ji,jj) ) * zraug * taum(ji,jj) + fr_i(ji,jj) * zmaxice ) * tmask(ji,jj,1) 
     
    491491#endif 
    492492         ! 
    493          DO_2D_00_00 
     493         DO_2D( 0, 0, 0, 0 ) 
    494494            zmxlm(ji,jj,1) = MAX( rn_mxl0, zmxlm(ji,jj,1) ) 
    495495         END_2D 
     
    500500 
    501501      ! 
    502       DO_3D_00_00( 2, jpkm1 ) 
     502      DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    503503         zrn2 = MAX( rn2(ji,jj,jk), rsmall ) 
    504504         zmxlm(ji,jj,jk) = MAX(  rmxl_min,  SQRT( 2._wp * en(ji,jj,jk) / zrn2 )  ) 
     
    515515      ! where wmask = 0 set zmxlm == e3w(:,:,:,Kmm) 
    516516      CASE ( 0 )           ! bounded by the distance to surface and bottom 
    517          DO_3D_00_00( 2, jpkm1 ) 
     517         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    518518            zemxl = MIN( gdepw(ji,jj,jk,Kmm) - gdepw(ji,jj,mikt(ji,jj),Kmm), zmxlm(ji,jj,jk),   & 
    519519            &            gdepw(ji,jj,mbkt(ji,jj)+1,Kmm) - gdepw(ji,jj,jk,Kmm) ) 
     
    526526         ! 
    527527      CASE ( 1 )           ! bounded by the vertical scale factor 
    528          DO_3D_00_00( 2, jpkm1 ) 
     528         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    529529            zemxl = MIN( e3w(ji,jj,jk,Kmm), zmxlm(ji,jj,jk) ) 
    530530            zmxlm(ji,jj,jk) = zemxl 
     
    533533         ! 
    534534      CASE ( 2 )           ! |dk[xml]| bounded by e3t : 
    535          DO_3D_00_00( 2, jpkm1 ) 
     535         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    536536            zmxlm(ji,jj,jk) =   & 
    537537               &    MIN( zmxlm(ji,jj,jk-1) + e3t(ji,jj,jk-1,Kmm), zmxlm(ji,jj,jk) ) 
    538538         END_3D 
    539          DO_3DS_00_00( jpkm1, 2, -1 ) 
     539         DO_3DS( 0, 0, 0, 0, jpkm1, 2, -1 ) 
    540540            zemxl = MIN( zmxlm(ji,jj,jk+1) + e3t(ji,jj,jk+1,Kmm), zmxlm(ji,jj,jk) ) 
    541541            zmxlm(ji,jj,jk) = zemxl 
     
    544544         ! 
    545545      CASE ( 3 )           ! lup and ldown, |dk[xml]| bounded by e3t : 
    546          DO_3D_00_00( 2, jpkm1 ) 
     546         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    547547            zmxld(ji,jj,jk) =    & 
    548548               &    MIN( zmxld(ji,jj,jk-1) + e3t(ji,jj,jk-1,Kmm), zmxlm(ji,jj,jk) ) 
    549549         END_3D 
    550          DO_3DS_00_00( jpkm1, 2, -1 ) 
     550         DO_3DS( 0, 0, 0, 0, jpkm1, 2, -1 ) 
    551551            zmxlm(ji,jj,jk) =   & 
    552552               &    MIN( zmxlm(ji,jj,jk+1) + e3t(ji,jj,jk+1,Kmm), zmxlm(ji,jj,jk) ) 
    553553         END_3D 
    554          DO_3D_00_00( 2, jpkm1 ) 
     554         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    555555            zemlm = MIN ( zmxld(ji,jj,jk),  zmxlm(ji,jj,jk) ) 
    556556            zemlp = SQRT( zmxld(ji,jj,jk) * zmxlm(ji,jj,jk) ) 
     
    564564      !                     !  Vertical eddy viscosity and diffusivity  (avm and avt) 
    565565      !                     !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    566       DO_3D_00_00( 1, jpkm1 ) 
     566      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    567567         zsqen = SQRT( en(ji,jj,jk) ) 
    568568         zav   = rn_ediff * zmxlm(ji,jj,jk) * zsqen 
     
    574574      ! 
    575575      IF( nn_pdl == 1 ) THEN      !* Prandtl number case: update avt 
    576          DO_3D_00_00( 2, jpkm1 ) 
     576         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    577577            p_avt(ji,jj,jk)   = MAX( apdlr(ji,jj,jk) * p_avt(ji,jj,jk), avtb_2d(ji,jj) * avtb(jk) ) * wmask(ji,jj,jk) 
    578578         END_3D 
  • NEMO/trunk/src/OCE/do_loop_substitute.h90

    r13286 r13295  
    4747!   END_2D 
    4848!  
    49 ! similar conventions apply to the 3D loops macros. jk loop limits are retained through macro arguments and are not restricted. This 
    50 ! includes the possibility of strides for which an extra set of DO_3DS macros are defined. 
     49! similar conventions apply to the 3D loops macros. jk loop limits are retained through macro arguments  
     50! and are not restricted. This includes the possibility of strides for which an extra set of DO_3DS  
     51! macros are defined. 
    5152! 
    52 ! In the following definitions the inner PE domain is defined by start indices of (_Nis0, Njs0) and end indices of (Nie0, Njs0) 
    53 ! The following macros are defined just below: _Nis0, Njs0, _Nis1, Njs1, _Nie0, Njs0, _Nie1, Nje1.  
    54 ! These names are chosen to, hopefully, avoid any future, unintended matches elsewhere in the code. 
     53! In the following definitions the inner PE domain is defined by start indices of (Nis0, Njs0) and end  
     54! indices of (Nie0, Nje0) where: 
    5555! 
    56 !!gm changes ; 
    57 ! 
    58 ! -0- fortran code : defined in par_oce.F90 the folowwing valiables : 
    59 !!#  
    60 !!#    INTEGER, PUBLIC ::   Nis0, Nis1, Nis2   !: start I-index (_0: no halo, _1 & _2: 1 & 2-halos) 
    61 !!#    INTEGER, PUBLIC ::   Nie0, Nie1, Nie2   !: end   I-index (_0: no halo, _1 & _2: 1 & 2-halos) 
    62 !!#    INTEGER, PUBLIC ::   Njs0, Njs1, Njs2   !: start J-index (_0: no halo, _1 & _2: 1 & 2-halos) 
    63 !!#    INTEGER, PUBLIC ::   Nje0, Nje1, Nje2   !: end   J-index (_0: no halo, _1 & _2: 1 & 2-halos) 
    64 !!#  
    65 ! -1- fortran code  put in  mppinit.F90 :    
    66 !!#            just after the futur read of nn_hls in namXXX (to be defined) 
    67 !!#            NB: currently nn_hls is defined as a parameter in par_oce.F90 
    68 !!#   SUBROUTINE init_do_loop 
    69 !!#      !!---------------------------------------------------------------------- 
    70 !!#      !!                  ***  ROUTINE init_do_loop_indices  *** 
    71 !!#      !! 
    72 !!#      !! ** Purpose :   set the starting/ending indices of DO-loop 
    73 !!#      !!              These indices are used in do_loop_substitute.h90 
    74 !!#      !!----------------------------------------------------------------------!!# !                             !==  set the starting/ending indices of DO-loop  ==!   (used in do_loop_substitute.h90) 
    75 !!#      ! 
    76 !!#      IF(     nn_hls == 1 ) THEN          !* halo size of 1 
    77 !!#         ! 
    78 !!#         Nis0 =   2     ;   Nis1 =   1     ;   Nis2 = Nis1 
    79 !!#         Njs0 = Nis0    ;   Njs1 = Nis1    ;   Njs2 = Nis1 
    80 !!#         ! 
    81 !!#         Nie0 = jpi-1   ;   Nje1 = jpi     ;   Nie2 = Nie1 
    82 !!#         Nje0 = jpj-1   ;   Nje1 = jpj-1   ;   Nje2 = Nie1 
    83 !!#         ! 
    84 !!#      ELSEIF( nn_hls == 2 ) THEN          !* halo size of 2 
    85 !!#         ! 
    86 !!#         Nis0 =   3     ;   Nis1 =   2     ;   Nis2 =   1 
    87 !!#         Njs0 = Nis0    ;   Njs1 = Nis1    ;   Njs2 = Nis2 
    88 !!#         ! 
    89 !!#         Nie0 = jpi-2   ;   Nje1 = jpi-1   ;   Nie2 = jpi 
    90 !!#         Nje0 = jpj-2   ;   Nje1 = jpj-1   ;   Nje2 = jpj 
    91 !!#         ! 
    92 !!#      ELSE                                !* unexpected halo size 
    93 !!#         CALL ctl_stop( 'STOP', 'ini_mpp:  wrong value of halo size : nn_hls= 1 or 2 only !') 
    94 !!#      ENDIF 
    95 !!# 
    96 !!#      ! 
    97 !!#   END SUBROUTINE init_do_loop 
    98 ! 
    99 !  ! -2- in do_loop_substitute becomes : 
     56! Nis0 =   1 + nn_hls     Njs0 =   1 + nn_hls 
     57! Nie0 = jpi - nn_hls     Nje0 = jpj - nn_hls 
    10058!  
    10159#endif 
    10260 
    103 ! 2D loops with 1 
     61#define DO_2D(B, T, L, R) DO jj = Njs0-(B), Nje0+(T)   ;   DO ji = Nis0-(L), Nie0+(R) 
    10462 
    105 #define DO_2D_00_00   DO jj = Njs0, Nje0   ;   DO ji = Nis0, Nie0 
    106 #define DO_2D_00_01   DO jj = Njs0, Nje0   ;   DO ji = Nis0, Nie1 
    107 #define DO_2D_00_10   DO jj = Njs0, Nje0   ;   DO ji = Nis1, Nie0 
    108 #define DO_2D_00_11   DO jj = Njs0, Nje0   ;   DO ji = Nis1, Nie1 
    109   
    110 #define DO_2D_01_00   DO jj = Njs0, Nje1   ;   DO ji = Nis0, Nie0 
    111 #define DO_2D_01_01   DO jj = Njs0, Nje1   ;   DO ji = Nis0, Nie1 
    112 #define DO_2D_01_10   DO jj = Njs0, Nje1   ;   DO ji = Nis1, Nie0 
    113 #define DO_2D_01_11   DO jj = Njs0, Nje1   ;   DO ji = Nis1, Nie1 
    114   
    115 #define DO_2D_10_00   DO jj = Njs1, Nje0   ;   DO ji = Nis0, Nie0 
    116 #define DO_2D_10_01   DO jj = Njs1, Nje0   ;   DO ji = Nis0, Nie1   ! not used ? 
    117 #define DO_2D_10_10   DO jj = Njs1, Nje0   ;   DO ji = Nis1, Nie0 
    118 #define DO_2D_10_11   DO jj = Njs1, Nje0   ;   DO ji = Nis1, Nie1 
    119   
    120 #define DO_2D_11_00   DO jj = Njs1, Nje1   ;   DO ji = Nis0, Nie0 
    121 #define DO_2D_11_01   DO jj = Njs1, Nje1   ;   DO ji = Nis0, Nie1 
    122 #define DO_2D_11_10   DO jj = Njs1, Nje1   ;   DO ji = Nis1, Nie0 
    123 #define DO_2D_11_11   DO jj = Njs1, Nje1   ;   DO ji = Nis1, Nie1 
     63#define DO_3D(B, T, L, R, ks, ke) DO jk = ks, ke   ;   DO_2D(B, T, L, R) 
    12464 
    125 ! 2D loops with 1 following a 2/3D loop with 2 
     65#define DO_3DS(B, T, L, R, ks, ke, ki) DO jk = ks, ke, ki   ;   DO_2D(B, T, L, R) 
    12666 
    127 #define DO_2D_00_01nxt2   DO jj = Njs0    , Nje0       ;   DO ji = Nis0    , Nie1nxt2 
    128 #define DO_2D_00_10nxt2   DO jj = Njs0    , Nje0       ;   DO ji = Nis1nxt2, Nie0 
    129 #define DO_2D_00_11nxt2   DO jj = Njs0    , Nje0       ;   DO ji = Nis1nxt2, Nie1nxt2 
    130  
    131 #define DO_2D_01_00nxt2   DO jj = Njs0    , Nje1nxt2   ;   DO ji = Nis0    , Nie0 
    132 #define DO_2D_01_01nxt2   DO jj = Njs0    , Nje1nxt2   ;   DO ji = Nis0    , Nie1nxt2 
    133 #define DO_2D_01_10nxt2   DO jj = Njs0    , Nje1nxt2   ;   DO ji = Nis1nxt2, Nie0 
    134 #define DO_2D_01_11nxt2   DO jj = Njs0    , Nje1nxt2   ;   DO ji = Nis1nxt2, Nie1nxt2 
    135  
    136 #define DO_2D_10_00nxt2   DO jj = Njs1nxt2, Nje0       ;   DO ji = Nis0    , Nie0 
    137 #define DO_2D_10_01nxt2   DO jj = Njs1nxt2, Nje0       ;   DO ji = Nis0    , Nie1nxt2   ! not used ? 
    138 #define DO_2D_10_10nxt2   DO jj = Njs1nxt2, Nje0       ;   DO ji = Nis1nxt2, Nie0 
    139 #define DO_2D_10_11nxt2   DO jj = Njs1nxt2, Nje0       ;   DO ji = Nis1nxt2, Nie1nxt2 
    140  
    141 #define DO_2D_11_00nxt2   DO jj = Njs1nxt2, Nje1nxt2   ;   DO ji = Nis0    , Nie0 
    142 #define DO_2D_11_01nxt2   DO jj = Njs1nxt2, Nje1nxt2   ;   DO ji = Nis0    , Nie1nxt2 
    143 #define DO_2D_11_10nxt2   DO jj = Njs1nxt2, Nje1nxt2   ;   DO ji = Nis1nxt2, Nie0 
    144 #define DO_2D_11_11nxt2   DO jj = Njs1nxt2, Nje1nxt2   ;   DO ji = Nis1nxt2, Nie1nxt2 
    145  
    146 ! 2D loops with 2 
    147  
    148 #define DO_2D_11_12   DO jj = Njs1nxt2, Nje1nxt2   ;   DO ji = Nis1nxt2, Nie2 
    149 #define DO_2D_11_21   DO jj = Njs1nxt2, Nje1nxt2   ;   DO ji = Nis2    , Nie1nxt2 
    150 #define DO_2D_11_22   DO jj = Njs1nxt2, Nje1nxt2   ;   DO ji = Nis2    , Nie2 
    151  
    152 #define DO_2D_12_11   DO jj = Njs1nxt2, Nje2       ;   DO ji = Nis1nxt2, Nie1nxt2 
    153 #define DO_2D_12_12   DO jj = Njs1nxt2, Nje2       ;   DO ji = Nis1nxt2, Nie2 
    154 #define DO_2D_12_21   DO jj = Njs1nxt2, Nje2       ;   DO ji = Nis2    , Nie1nxt2 
    155 #define DO_2D_12_22   DO jj = Njs1nxt2, Nje2       ;   DO ji = Nis2    , Nie2 
    156   
    157 #define DO_2D_21_11   DO jj = Njs2    , Nje1nxt2   ;   DO ji = Nis1nxt2, Nie1nxt2 
    158 #define DO_2D_21_12   DO jj = Njs2    , Nje1nxt2   ;   DO ji = Nis1nxt2, Nie2        ! not used ? 
    159 #define DO_2D_21_21   DO jj = Njs2    , Nje1nxt2   ;   DO ji = Nis2    , Nie1nxt2 
    160 #define DO_2D_21_22   DO jj = Njs2    , Nje1nxt2   ;   DO ji = Nis2    , Nie2 
    161                                       
    162 #define DO_2D_22_11   DO jj = Njs2    , Nje2       ;   DO ji = Nis1nxt2, Nie1nxt2 
    163 #define DO_2D_22_12   DO jj = Njs2    , Nje2       ;   DO ji = Nis1nxt2, Nie2 
    164 #define DO_2D_22_21   DO jj = Njs2    , Nje2       ;   DO ji = Nis2    , Nie1nxt2 
    165 #define DO_2D_22_22   DO jj = Njs2    , Nje2       ;   DO ji = Nis2    , Nie2 
    166  
    167 ! 3D loops with 1 
    168  
    169 #define DO_3D_00_00(ks,ke)   DO jk = ks, ke   ;   DO_2D_00_00    
    170 #define DO_3D_00_01(ks,ke)   DO jk = ks, ke   ;   DO_2D_00_01    
    171 #define DO_3D_00_10(ks,ke)   DO jk = ks, ke   ;   DO_2D_00_10    
    172 #define DO_3D_00_11(ks,ke)   DO jk = ks, ke   ;   DO_2D_00_11    
    173  
    174 #define DO_3D_01_00(ks,ke)   DO jk = ks, ke   ;   DO_2D_01_00    
    175 #define DO_3D_01_01(ks,ke)   DO jk = ks, ke   ;   DO_2D_01_01    
    176 #define DO_3D_01_10(ks,ke)   DO jk = ks, ke   ;   DO_2D_01_10    
    177 #define DO_3D_01_11(ks,ke)   DO jk = ks, ke   ;   DO_2D_01_11    
    178  
    179 #define DO_3D_10_00(ks,ke)   DO jk = ks, ke   ;   DO_2D_10_00    
    180 #define DO_3D_10_01(ks,ke)   DO jk = ks, ke   ;   DO_2D_10_01    
    181 #define DO_3D_10_10(ks,ke)   DO jk = ks, ke   ;   DO_2D_10_10    
    182 #define DO_3D_10_11(ks,ke)   DO jk = ks, ke   ;   DO_2D_10_11    
    183  
    184 #define DO_3D_11_00(ks,ke)   DO jk = ks, ke   ;   DO_2D_11_00    
    185 #define DO_3D_11_01(ks,ke)   DO jk = ks, ke   ;   DO_2D_11_01    
    186 #define DO_3D_11_10(ks,ke)   DO jk = ks, ke   ;   DO_2D_11_10    
    187 #define DO_3D_11_11(ks,ke)   DO jk = ks, ke   ;   DO_2D_11_11    
    188  
    189 ! 3D loops with 1, following a 2/3D loop with 2 
    190  
    191 #define DO_3D_00_01nxt2(ks,ke)   DO jk = ks, ke   ;   DO_2D_00_01nxt2    
    192 #define DO_3D_00_10nxt2(ks,ke)   DO jk = ks, ke   ;   DO_2D_00_10nxt2    
    193 #define DO_3D_00_11nxt2(ks,ke)   DO jk = ks, ke   ;   DO_2D_00_11nxt2    
    194  
    195 #define DO_3D_01_00nxt2(ks,ke)   DO jk = ks, ke   ;   DO_2D_01_00nxt2    
    196 #define DO_3D_01_01nxt2(ks,ke)   DO jk = ks, ke   ;   DO_2D_01_01nxt2    
    197 #define DO_3D_01_10nxt2(ks,ke)   DO jk = ks, ke   ;   DO_2D_01_10nxt2    
    198 #define DO_3D_01_11nxt2(ks,ke)   DO jk = ks, ke   ;   DO_2D_01_11nxt2    
    199  
    200 #define DO_3D_10_00nxt2(ks,ke)   DO jk = ks, ke   ;   DO_2D_10_00nxt2    
    201 #define DO_3D_10_01nxt2(ks,ke)   DO jk = ks, ke   ;   DO_2D_10_01nxt2    
    202 #define DO_3D_10_10nxt2(ks,ke)   DO jk = ks, ke   ;   DO_2D_10_10nxt2    
    203 #define DO_3D_10_11nxt2(ks,ke)   DO jk = ks, ke   ;   DO_2D_10_11nxt2    
    204  
    205 #define DO_3D_11_00nxt2(ks,ke)   DO jk = ks, ke   ;   DO_2D_11_00nxt2    
    206 #define DO_3D_11_01nxt2(ks,ke)   DO jk = ks, ke   ;   DO_2D_11_01nxt2    
    207 #define DO_3D_11_10nxt2(ks,ke)   DO jk = ks, ke   ;   DO_2D_11_10nxt2    
    208 #define DO_3D_11_11nxt2(ks,ke)   DO jk = ks, ke   ;   DO_2D_11_11nxt2    
    209  
    210 ! 3D loops with 2 
    211  
    212 #define DO_3D_11_12(ks,ke)   DO jk = ks, ke   ;   DO_2D_11_12    
    213 #define DO_3D_11_21(ks,ke)   DO jk = ks, ke   ;   DO_2D_11_21    
    214 #define DO_3D_11_22(ks,ke)   DO jk = ks, ke   ;   DO_2D_11_22    
    215  
    216 #define DO_3D_12_11(ks,ke)   DO jk = ks, ke   ;   DO_2D_12_11    
    217 #define DO_3D_12_12(ks,ke)   DO jk = ks, ke   ;   DO_2D_12_12    
    218 #define DO_3D_12_21(ks,ke)   DO jk = ks, ke   ;   DO_2D_12_21    
    219 #define DO_3D_12_22(ks,ke)   DO jk = ks, ke   ;   DO_2D_12_22    
    220  
    221 #define DO_3D_21_11(ks,ke)   DO jk = ks, ke   ;   DO_2D_21_11    
    222 #define DO_3D_21_12(ks,ke)   DO jk = ks, ke   ;   DO_2D_21_12    
    223 #define DO_3D_21_21(ks,ke)   DO jk = ks, ke   ;   DO_2D_21_21    
    224 #define DO_3D_21_22(ks,ke)   DO jk = ks, ke   ;   DO_2D_21_22    
    225  
    226 #define DO_3D_22_11(ks,ke)   DO jk = ks, ke   ;   DO_2D_22_11    
    227 #define DO_3D_22_12(ks,ke)   DO jk = ks, ke   ;   DO_2D_22_12    
    228 #define DO_3D_22_21(ks,ke)   DO jk = ks, ke   ;   DO_2D_22_21    
    229 #define DO_3D_22_22(ks,ke)   DO jk = ks, ke   ;   DO_2D_22_22    
    230                                  
    231 ! 3D loops with increment with 1 
    232  
    233 #define DO_3DS_00_00(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_00_00    
    234 #define DO_3DS_00_01(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_00_01    
    235 #define DO_3DS_00_10(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_00_10    
    236 #define DO_3DS_00_11(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_00_11    
    237  
    238 #define DO_3DS_01_00(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_01_00    
    239 #define DO_3DS_01_01(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_01_01    
    240 #define DO_3DS_01_10(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_01_10    
    241 #define DO_3DS_01_11(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_01_11    
    242  
    243 #define DO_3DS_10_00(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_10_00    
    244 #define DO_3DS_10_01(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_10_01    
    245 #define DO_3DS_10_10(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_10_10    
    246 #define DO_3DS_10_11(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_10_11    
    247  
    248 #define DO_3DS_11_00(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_11_00    
    249 #define DO_3DS_11_01(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_11_01    
    250 #define DO_3DS_11_10(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_11_10    
    251 #define DO_3DS_11_11(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_11_11    
    252                                  
    253 ! 3D loops with increment with 1, following a 2/3D loop with 2 
    254  
    255 #define DO_3DS_00_01nxt2(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_00_01nxt2    
    256 #define DO_3DS_00_10nxt2(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_00_10nxt2    
    257 #define DO_3DS_00_11nxt2(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_00_11nxt2    
    258  
    259 #define DO_3DS_01_00nxt2(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_01_00nxt2    
    260 #define DO_3DS_01_01nxt2(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_01_01nxt2    
    261 #define DO_3DS_01_10nxt2(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_01_10nxt2    
    262 #define DO_3DS_01_11nxt2(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_01_11nxt2    
    263  
    264 #define DO_3DS_10_00nxt2(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_10_00nxt2    
    265 #define DO_3DS_10_01nxt2(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_10_01nxt2    
    266 #define DO_3DS_10_10nxt2(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_10_10nxt2    
    267 #define DO_3DS_10_11nxt2(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_10_11nxt2    
    268  
    269 #define DO_3DS_11_00nxt2(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_11_00nxt2    
    270 #define DO_3DS_11_01nxt2(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_11_01nxt2    
    271 #define DO_3DS_11_10nxt2(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_11_10nxt2    
    272 #define DO_3DS_11_11nxt2(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_11_11nxt2    
    273  
    274 ! 3D loops with increment with 2 
    275  
    276 #define DO_3DS_11_12(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_11_12    
    277 #define DO_3DS_11_21(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_11_21    
    278 #define DO_3DS_11_22(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_11_22    
    279  
    280 #define DO_3DS_12_11(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_12_11    
    281 #define DO_3DS_12_12(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_12_12    
    282 #define DO_3DS_12_21(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_12_21    
    283 #define DO_3DS_12_22(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_12_22    
    284  
    285 #define DO_3DS_21_11(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_21_11    
    286 #define DO_3DS_21_12(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_21_12    
    287 #define DO_3DS_21_21(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_21_21    
    288 #define DO_3DS_21_22(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_21_22    
    289  
    290 #define DO_3DS_22_11(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_22_11    
    291 #define DO_3DS_22_12(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_22_12    
    292 #define DO_3DS_22_21(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_22_21    
    293 #define DO_3DS_22_22(ks,ke,ki)   DO jk = ks, ke, ki   ;   DO_2D_22_22    
    294                                  
    29567#define END_2D   END DO   ;   END DO 
    29668#define END_3D   END DO   ;   END DO   ;   END DO 
  • NEMO/trunk/src/OCE/lib_fortran.F90

    r13226 r13295  
    217217      IF( SIZE(p2d,2) /= jpj ) CALL ctl_stop( 'STOP', 'wrong call of sum3x3_2d, the second dimension is not equal to jpj' )  
    218218      ! 
    219       DO_2D_11_11 
     219      DO_2D( 1, 1, 1, 1 ) 
    220220         IF( MOD(mig(ji), 3) == 1 .AND. MOD(mjg(jj), 3) == 1 ) THEN   ! bottom left corber of a 3x3 box 
    221221            ji2 = MIN(mig(ji)+2, jpiglo) - nimpp + 1                  ! right position of the box 
     
    264264      ! 
    265265      DO jn = 1, ipn 
    266          DO_2D_11_11 
     266         DO_2D( 1, 1, 1, 1 ) 
    267267            IF( MOD(mig(ji), 3) == 1 .AND. MOD(mjg(jj), 3) == 1 ) THEN   ! bottom left corber of a 3x3 box 
    268268               ji2 = MIN(mig(ji)+2, jpiglo) - nimpp + 1                  ! right position of the box 
Note: See TracChangeset for help on using the changeset viewer.