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

Changeset 13295 for NEMO/trunk/src


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
Files:
198 edited

Legend:

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

    r13226 r13295  
    127127      !! needed for surface boundary condition of TKE 
    128128      !! pwndm contains | U10m - U_oce | (see blk_oce_1 in sbcblk) 
    129       DO_2D_11_11 
     129      DO_2D( 1, 1, 1, 1 ) 
    130130         zzoce         = pCd_du    (ji,jj) * pwndm    (ji,jj) 
    131131#if defined key_si3 
     
    245245            ! 
    246246            ! Advance u_abl & v_abl to time n+1 
    247             DO_2D_11_11 
     247            DO_2D( 1, 1, 1, 1 ) 
    248248               zcff = ( fft_abl(ji,jj) * rDt_abl )*( fft_abl(ji,jj) * rDt_abl )  ! (f dt)**2 
    249249 
     
    483483         DO jk = 2, jpka    ! outer loop 
    484484         !------------- 
    485             DO_2D_01_01 
     485            DO_2D( 0, 1, 0, 1 ) 
    486486               zcff1 = pblh( ji, jj ) 
    487487               zsig  = ght_abl(jk) / MAX( jp_pblh_min,  MIN(  jp_pblh_max, zcff1  ) ) 
     
    506506      DO jk = 2, jpka    ! outer loop 
    507507      !------------- 
    508          DO_2D_11_11 
     508         DO_2D( 1, 1, 1, 1 ) 
    509509            zcff1 = pblh( ji, jj ) 
    510510            zsig  = ght_abl(jk) / MAX( jp_pblh_min,  MIN(  jp_pblh_max, zcff1  ) ) 
     
    580580      !                            !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    581581      ! 
    582       DO_2D_11_11 
     582      DO_2D( 1, 1, 1, 1 ) 
    583583         ztemp          =  tq_abl( ji, jj, 2, nt_a, jp_ta ) 
    584584         zhumi          =  tq_abl( ji, jj, 2, nt_a, jp_qa ) 
     
    589589      END_2D 
    590590 
    591       DO_2D_01_01 
     591      DO_2D( 0, 1, 0, 1 ) 
    592592         zwnd_i(ji,jj) = u_abl(ji  ,jj,2,nt_a) - 0.5_wp * ( pssu(ji  ,jj) + pssu(ji-1,jj) )   
    593593         zwnd_j(ji,jj) = v_abl(ji,jj  ,2,nt_a) - 0.5_wp * ( pssv(ji,jj  ) + pssv(ji,jj-1) )  
     
    597597      ! 
    598598      ! ... scalar wind ( = | U10m - U_oce | ) at T-point (masked) 
    599       DO_2D_11_11 
     599      DO_2D( 1, 1, 1, 1 ) 
    600600         zcff          = SQRT(  zwnd_i(ji,jj) * zwnd_i(ji,jj)   & 
    601601            &                 + zwnd_j(ji,jj) * zwnd_j(ji,jj) )   ! * msk_abl(ji,jj) 
     
    610610      !     Note the use of 0.5*(2-umask) in order to unmask the stress along coastlines 
    611611      !     Note the use of MAX(tmask(i,j),tmask(i+1,j) is to mask tau over ice shelves 
    612       DO_2D_00_00 
     612      DO_2D( 0, 0, 0, 0 ) 
    613613         zcff  = 0.5_wp * ( 2._wp - msk_abl(ji,jj)*msk_abl(ji+1,jj) ) 
    614614         zztmp = MAX(msk_abl(ji,jj),msk_abl(ji+1,jj)) 
     
    633633      !    Wind stress relative to the moving ice ( U10m - U_ice )   ! 
    634634      ! ------------------------------------------------------------ ! 
    635       DO_2D_00_00            
     635      DO_2D( 0, 0, 0, 0 )            
    636636         ptaui_ice(ji,jj) = 0.5_wp * ( rhoa(ji+1,jj) * pCd_du_ice(ji+1,jj) + rhoa(ji,jj) * pCd_du_ice(ji,jj)      )   & 
    637637            &                      * ( 0.5_wp * ( u_abl(ji+1,jj,2,nt_a) + u_abl(ji,jj,2,nt_a) ) - pssu_ice(ji,jj) ) 
     
    646646      !    Wind stress relative to the moving ice ( U10m - U_ice )   ! 
    647647      ! ------------------------------------------------------------ ! 
    648       DO_2D_00_00 
     648      DO_2D( 0, 0, 0, 0 ) 
    649649 
    650650         zztmp1 = 0.5_wp * ( u_abl(ji+1,jj  ,2,nt_a) + u_abl(ji,jj,2,nt_a) ) 
     
    12591259      smth_b = 1._wp / 4._wp 
    12601260      ! 
    1261       DO_2D_11_10 
     1261      DO_2D( 1, 1, 1, 0 ) 
    12621262         zumsk = msk(ji,jj) * msk(ji+1,jj) 
    12631263         zdX ( ji, jj ) = ( pvar2d( ji+1,jj ) - pvar2d( ji  ,jj ) ) * zumsk 
    12641264      END_2D 
    12651265 
    1266       DO_2D_10_11 
     1266      DO_2D( 1, 0, 1, 1 ) 
    12671267         zvmsk = msk(ji,jj) * msk(ji,jj+1) 
    12681268         zdY ( ji, jj ) = ( pvar2d( ji, jj+1 ) - pvar2d( ji  ,jj ) ) * zvmsk 
    12691269      END_2D 
    12701270 
    1271       DO_2D_10_00 
     1271      DO_2D( 1, 0, 0, 0 ) 
    12721272         zFY ( ji, jj  ) =   zdY ( ji, jj   )                        & 
    12731273            & +  smth_a*  ( (zdX ( ji, jj+1 ) - zdX( ji-1, jj+1 ))   & 
     
    12751275      END_2D 
    12761276 
    1277       DO_2D_00_10 
     1277      DO_2D( 0, 0, 1, 0 ) 
    12781278         zFX( ji, jj  ) =    zdX( ji, jj   )                         & 
    12791279           &    + smth_a*(  (zdY( ji+1, jj ) - zdY( ji+1, jj-1))     & 
     
    12811281      END_2D 
    12821282 
    1283       DO_2D_00_00 
     1283      DO_2D( 0, 0, 0, 0 ) 
    12841284         pvar2d( ji  ,jj ) = pvar2d( ji  ,jj )              & 
    12851285  &         + msk(ji,jj) * smth_b * (                       & 
  • NEMO/trunk/src/ICE/icealb.F90

    r12377 r13295  
    119119      ! 
    120120      DO jl = 1, jpl 
    121          DO_2D_11_11 
     121         DO_2D( 1, 1, 1, 1 ) 
    122122            !                       !--- Specific snow, ice and pond fractions (for now, we prevent melt ponds and snow at the same time) 
    123123            IF( ph_snw(ji,jj,jl) == 0._wp ) THEN 
  • NEMO/trunk/src/ICE/icecor.F90

    r13226 r13295  
    8888         zzc = rhoi * r1_Dt_ice 
    8989         DO jl = 1, jpl 
    90             DO_2D_11_11 
     90            DO_2D( 1, 1, 1, 1 ) 
    9191               zsal = sv_i(ji,jj,jl) 
    9292               sv_i(ji,jj,jl) = MIN(  MAX( rn_simin*v_i(ji,jj,jl) , sv_i(ji,jj,jl) ) , rn_simax*v_i(ji,jj,jl)  ) 
     
    106106      !                             !----------------------------------------------------- 
    107107      IF( kn == 2 ) THEN            !  Ice drift case: Corrections to avoid wrong values ! 
    108          DO_2D_00_00 
     108         DO_2D( 0, 0, 0, 0 ) 
    109109            IF ( at_i(ji,jj) == 0._wp ) THEN    ! what to do if there is no ice 
    110110               IF ( at_i(ji+1,jj) == 0._wp )   u_ice(ji  ,jj) = 0._wp   ! right side 
  • NEMO/trunk/src/ICE/icectl.F90

    r13286 r13295  
    368368      cl_alname(ialert_id) = ' Incompat vol and con         '    ! name of the alert 
    369369      DO jl = 1, jpl 
    370          DO_2D_11_11 
     370         DO_2D( 1, 1, 1, 1 ) 
    371371            IF(  v_i(ji,jj,jl) /= 0._wp   .AND.   a_i(ji,jj,jl) == 0._wp   ) THEN 
    372372               WRITE(numout,*) ' ALERTE 2 :   Incompatible volume and concentration ' 
     
    380380      cl_alname(ialert_id) = ' Very thick ice               ' ! name of the alert 
    381381      jl = jpl  
    382       DO_2D_11_11 
     382      DO_2D( 1, 1, 1, 1 ) 
    383383         IF(   h_i(ji,jj,jl)  >  50._wp   ) THEN 
    384384            WRITE(numout,*) ' ALERTE 3 :   Very thick ice' 
     
    391391      ialert_id = 4 ! reference number of this alert 
    392392      cl_alname(ialert_id) = ' Very fast ice               ' ! name of the alert 
    393       DO_2D_11_11 
     393      DO_2D( 1, 1, 1, 1 ) 
    394394         IF(   MAX( ABS( u_ice(ji,jj) ), ABS( v_ice(ji,jj) ) ) > 2.  .AND.  & 
    395395            &  at_i(ji,jj) > 0._wp   ) THEN 
     
    403403      ialert_id = 5 ! reference number of this alert 
    404404      cl_alname(ialert_id) = ' High salt flux               ' ! name of the alert 
    405       DO_2D_11_11 
     405      DO_2D( 1, 1, 1, 1 ) 
    406406         IF( ABS( sfx (ji,jj) ) > 1.0e-2 ) THEN  ! = 1 psu/day for 1m ocean depth 
    407407            WRITE(numout,*) ' ALERTE 5 :   High salt flux' 
     
    414414      ialert_id = 6 ! reference number of this alert 
    415415      cl_alname(ialert_id) = ' Ice on continents           ' ! name of the alert 
    416       DO_2D_11_11 
     416      DO_2D( 1, 1, 1, 1 ) 
    417417         IF(   tmask(ji,jj,1) <= 0._wp   .AND.   at_i(ji,jj) > 0._wp   ) THEN  
    418418            WRITE(numout,*) ' ALERTE 6 :   Ice on continents' 
     
    427427      cl_alname(ialert_id) = ' Very fresh ice               ' ! name of the alert 
    428428      DO jl = 1, jpl 
    429          DO_2D_11_11 
     429         DO_2D( 1, 1, 1, 1 ) 
    430430            IF( s_i(ji,jj,jl) < 0.1 .AND. a_i(ji,jj,jl) > 0._wp ) THEN 
    431431               WRITE(numout,*) ' ALERTE 7 :   Very fresh ice' 
     
    439439      ialert_id = 8 ! reference number of this alert 
    440440      cl_alname(ialert_id) = ' fnsolar very big             ' ! name of the alert 
    441       DO_2D_11_11 
     441      DO_2D( 1, 1, 1, 1 ) 
    442442         IF( ABS( qns(ji,jj) ) > 1500._wp .AND. at_i(ji,jj) > 0._wp ) THEN 
    443443            ! 
     
    454454      cl_alname(ialert_id) = ' Very old   ice               ' ! name of the alert 
    455455      DO jl = 1, jpl 
    456          DO_2D_11_11 
     456         DO_2D( 1, 1, 1, 1 ) 
    457457            IF ( ( ( ABS( o_i(ji,jj,jl) ) > rDt_ice ) .OR. & 
    458458                   ( ABS( o_i(ji,jj,jl) ) < 0._wp) ) .AND. & 
     
    470470      inb_alp(ialert_id) = 0 
    471471      DO jl = 1, jpl 
    472          DO_3D_11_11( 1, nlay_i ) 
     472         DO_3D( 1, 1, 1, 1, 1, nlay_i ) 
    473473            ztmelts    =  -rTmlt * sz_i(ji,jj,jk,jl) + rt0 
    474474            IF( t_i(ji,jj,jk,jl) > ztmelts  .AND.  v_i(ji,jj,jl) > 1.e-10   & 
  • NEMO/trunk/src/ICE/icedyn.F90

    r13226 r13295  
    126126         ! CFL = 0.5 at a distance from the bound of 1/6 of the basin length 
    127127         ! Then for dx = 2m and dt = 1s => rn_uice = u (1/6th) = 1m/s  
    128          DO_2D_11_11 
     128         DO_2D( 1, 1, 1, 1 ) 
    129129            zcoefu = ( REAL(jpiglo+1)*0.5 - REAL(ji+nimpp-1) ) / ( REAL(jpiglo+1)*0.5 - 1. ) 
    130130            zcoefv = ( REAL(jpjglo+1)*0.5 - REAL(jj+njmpp-1) ) / ( REAL(jpjglo+1)*0.5 - 1. ) 
     
    155155 
    156156            ALLOCATE( zdivu_i(jpi,jpj) ) 
    157             DO_2D_00_00 
     157            DO_2D( 0, 0, 0, 0 ) 
    158158               zdivu_i(ji,jj) = ( e2u(ji,jj) * u_ice(ji,jj) - e2u(ji-1,jj) * u_ice(ji-1,jj)   & 
    159159                  &             + e1v(ji,jj) * v_ice(ji,jj) - e1v(ji,jj-1) * v_ice(ji,jj-1) ) * r1_e1e2t(ji,jj) 
  • NEMO/trunk/src/ICE/icedyn_adv_pra.F90

    r13286 r13295  
    102102      ! --- Record max of the surrounding 9-pts ice thick. (for call Hbig) --- ! 
    103103      DO jl = 1, jpl 
    104          DO_2D_00_00 
     104         DO_2D( 0, 0, 0, 0 ) 
    105105            zhip_max(ji,jj,jl) = MAX( epsi20, ph_ip(ji,jj,jl), ph_ip(ji+1,jj  ,jl), ph_ip(ji  ,jj+1,jl), & 
    106106               &                                               ph_ip(ji-1,jj  ,jl), ph_ip(ji  ,jj-1,jl), & 
     
    250250         ! derive open water from ice concentration 
    251251         zati2(:,:) = SUM( pa_i(:,:,:), dim=3 ) 
    252          DO_2D_00_00 
     252         DO_2D( 0, 0, 0, 0 ) 
    253253            pato_i(ji,jj) = pato_i(ji,jj) - ( zati2(ji,jj) - zati1(ji,jj) ) &                        !--- open water 
    254254               &                          - ( zudy(ji,jj) - zudy(ji-1,jj) + zvdx(ji,jj) - zvdx(ji,jj-1) ) * r1_e1e2t(ji,jj) * zdt 
     
    305305         ! 
    306306         ! Limitation of moments.                                            
    307          DO_2D_00_11 
     307         DO_2D( 0, 0, 1, 1 ) 
    308308            !  Initialize volumes of boxes  (=area if adv_x first called, =psm otherwise)                                      
    309309            psm (ji,jj,jl) = MAX( pcrh * e1e2t(ji,jj) + ( 1.0 - pcrh ) * psm(ji,jj,jl) , epsi20 ) 
     
    325325 
    326326         !  Calculate fluxes and moments between boxes i<-->i+1               
    327          DO_2D_00_11 
     327         DO_2D( 0, 0, 1, 1 ) 
    328328            zbet(ji,jj)  =  MAX( 0._wp, SIGN( 1._wp, put(ji,jj) ) ) 
    329329            zalf         =  MAX( 0._wp, put(ji,jj) ) * pdt / psm(ji,jj,jl) 
     
    350350         END_2D 
    351351 
    352          DO_2D_00_10 
     352         DO_2D( 0, 0, 1, 0 ) 
    353353            zalf          = MAX( 0._wp, -put(ji,jj) ) * pdt / psm(ji+1,jj,jl)  
    354354            zalg  (ji,jj) = zalf 
     
    369369         END_2D 
    370370 
    371          DO_2D_00_00 
     371         DO_2D( 0, 0, 0, 0 ) 
    372372            zbt  =       zbet(ji-1,jj) 
    373373            zbt1 = 1.0 - zbet(ji-1,jj) 
     
    383383 
    384384         !   Put the temporary moments into appropriate neighboring boxes.     
    385          DO_2D_00_00 
     385         DO_2D( 0, 0, 0, 0 ) 
    386386            zbt  =       zbet(ji-1,jj) 
    387387            zbt1 = 1.0 - zbet(ji-1,jj) 
     
    403403         END_2D 
    404404 
    405          DO_2D_00_00 
     405         DO_2D( 0, 0, 0, 0 ) 
    406406            zbt  =       zbet(ji,jj) 
    407407            zbt1 = 1.0 - zbet(ji,jj) 
     
    462462         ! 
    463463         ! Limitation of moments. 
    464          DO_2D_11_00 
     464         DO_2D( 1, 1, 0, 0 ) 
    465465            !  Initialize volumes of boxes (=area if adv_x first called, =psm otherwise) 
    466466            psm(ji,jj,jl) = MAX(  pcrh * e1e2t(ji,jj) + ( 1.0 - pcrh ) * psm(ji,jj,jl) , epsi20  ) 
     
    482482  
    483483         !  Calculate fluxes and moments between boxes j<-->j+1               
    484          DO_2D_11_00 
     484         DO_2D( 1, 1, 0, 0 ) 
    485485            zbet(ji,jj)  =  MAX( 0._wp, SIGN( 1._wp, pvt(ji,jj) ) ) 
    486486            zalf         =  MAX( 0._wp, pvt(ji,jj) ) * pdt / psm(ji,jj,jl) 
     
    507507         END_2D 
    508508         ! 
    509          DO_2D_10_00 
     509         DO_2D( 1, 0, 0, 0 ) 
    510510            zalf          = MAX( 0._wp, -pvt(ji,jj) ) * pdt / psm(ji,jj+1,jl)  
    511511            zalg  (ji,jj) = zalf 
     
    527527 
    528528         !  Readjust moments remaining in the box.  
    529          DO_2D_00_00 
     529         DO_2D( 0, 0, 0, 0 ) 
    530530            zbt  =         zbet(ji,jj-1) 
    531531            zbt1 = ( 1.0 - zbet(ji,jj-1) ) 
     
    541541 
    542542         !   Put the temporary moments into appropriate neighboring boxes.     
    543          DO_2D_00_00 
     543         DO_2D( 0, 0, 0, 0 ) 
    544544            zbt  =       zbet(ji,jj-1) 
    545545            zbt1 = 1.0 - zbet(ji,jj-1) 
     
    562562         END_2D 
    563563 
    564          DO_2D_00_00 
     564         DO_2D( 0, 0, 0, 0 ) 
    565565            zbt  =       zbet(ji,jj) 
    566566            zbt1 = 1.0 - zbet(ji,jj) 
     
    618618      DO jl = 1, jpl 
    619619 
    620          DO_2D_11_11 
     620         DO_2D( 1, 1, 1, 1 ) 
    621621            IF ( pv_i(ji,jj,jl) > 0._wp ) THEN 
    622622               ! 
     
    684684      ! -- check snow load -- ! 
    685685      DO jl = 1, jpl 
    686          DO_2D_11_11 
     686         DO_2D( 1, 1, 1, 1 ) 
    687687            IF ( pv_i(ji,jj,jl) > 0._wp ) THEN 
    688688               ! 
  • NEMO/trunk/src/ICE/icedyn_adv_umx.F90

    r13226 r13295  
    107107      ! --- Record max of the surrounding 9-pts ice thick. (for call Hbig) --- ! 
    108108      DO jl = 1, jpl 
    109          DO_2D_00_00 
     109         DO_2D( 0, 0, 0, 0 ) 
    110110            zhip_max(ji,jj,jl) = MAX( epsi20, ph_ip(ji,jj,jl), ph_ip(ji+1,jj  ,jl), ph_ip(ji  ,jj+1,jl), & 
    111111               &                                               ph_ip(ji-1,jj  ,jl), ph_ip(ji  ,jj-1,jl), & 
     
    150150      ! 
    151151      ! --- define velocity for advection: u*grad(H) --- ! 
    152       DO_2D_00_00 
     152      DO_2D( 0, 0, 0, 0 ) 
    153153         IF    ( pu_ice(ji,jj) * pu_ice(ji-1,jj) <= 0._wp ) THEN   ;   zcu_box(ji,jj) = 0._wp 
    154154         ELSEIF( pu_ice(ji,jj)                   >  0._wp ) THEN   ;   zcu_box(ji,jj) = pu_ice(ji-1,jj) 
     
    183183            IF( .NOT. ALLOCATED(jmsk_small) )   ALLOCATE( jmsk_small(jpi,jpj,jpl) )  
    184184            DO jl = 1, jpl 
    185                DO_2D_10_10 
     185               DO_2D( 1, 0, 1, 0 ) 
    186186                  zvi_cen = 0.5_wp * ( pv_i(ji+1,jj,jl) + pv_i(ji,jj,jl) ) 
    187187                  IF( zvi_cen < epsi06) THEN   ;   imsk_small(ji,jj,jl) = 0 
     
    332332         !== Open water area ==! 
    333333         zati2(:,:) = SUM( pa_i(:,:,:), dim=3 ) 
    334          DO_2D_00_00 
     334         DO_2D( 0, 0, 0, 0 ) 
    335335            pato_i(ji,jj) = pato_i(ji,jj) - ( zati2(ji,jj) - zati1(ji,jj) ) &  
    336336               &                          - ( zudy(ji,jj) - zudy(ji-1,jj) + zvdx(ji,jj) - zvdx(ji,jj-1) ) * r1_e1e2t(ji,jj) * zdt 
     
    441441      IF( pamsk == 0._wp ) THEN 
    442442         DO jl = 1, jpl 
    443             DO_2D_10_10 
     443            DO_2D( 1, 0, 1, 0 ) 
    444444               IF( ABS( pu(ji,jj) ) > epsi10 ) THEN 
    445445                  zfu_ho (ji,jj,jl) = zfu_ho (ji,jj,jl) * puc    (ji,jj,jl) / pu(ji,jj) 
     
    463463         ! thus we calculate the upstream solution and apply a limiter again 
    464464         DO jl = 1, jpl 
    465             DO_2D_00_00 
     465            DO_2D( 0, 0, 0, 0 ) 
    466466               ztra = - ( zfu_ups(ji,jj,jl) - zfu_ups(ji-1,jj,jl) + zfv_ups(ji,jj,jl) - zfv_ups(ji,jj-1,jl) ) 
    467467               ! 
     
    484484      IF( PRESENT( pua_ho ) ) THEN 
    485485         DO jl = 1, jpl 
    486             DO_2D_10_10 
     486            DO_2D( 1, 0, 1, 0 ) 
    487487               pua_ho (ji,jj,jl) = zfu_ho (ji,jj,jl) ; pva_ho (ji,jj,jl) = zfv_ho (ji,jj,jl) 
    488488               pua_ups(ji,jj,jl) = zfu_ups(ji,jj,jl) ; pva_ups(ji,jj,jl) = zfv_ups(ji,jj,jl) 
     
    494494      ! --------------------------------- 
    495495      DO jl = 1, jpl 
    496          DO_2D_00_00 
     496         DO_2D( 0, 0, 0, 0 ) 
    497497            ztra = - ( zfu_ho(ji,jj,jl) - zfu_ho(ji-1,jj,jl) + zfv_ho(ji,jj,jl) - zfv_ho(ji,jj-1,jl) )   
    498498            ! 
     
    528528         ! 
    529529         DO jl = 1, jpl 
    530             DO_2D_10_10 
     530            DO_2D( 1, 0, 1, 0 ) 
    531531               pfu_ups(ji,jj,jl) = MAX( pu(ji,jj), 0._wp ) * pt(ji,jj,jl) + MIN( pu(ji,jj), 0._wp ) * pt(ji+1,jj,jl) 
    532532               pfv_ups(ji,jj,jl) = MAX( pv(ji,jj), 0._wp ) * pt(ji,jj,jl) + MIN( pv(ji,jj), 0._wp ) * pt(ji,jj+1,jl) 
     
    539539            ! 
    540540            DO jl = 1, jpl              !-- flux in x-direction 
    541                DO_2D_10_10 
     541               DO_2D( 1, 0, 1, 0 ) 
    542542                  pfu_ups(ji,jj,jl) = MAX( pu(ji,jj), 0._wp ) * pt(ji,jj,jl) + MIN( pu(ji,jj), 0._wp ) * pt(ji+1,jj,jl) 
    543543               END_2D 
     
    545545            ! 
    546546            DO jl = 1, jpl              !-- first guess of tracer from u-flux 
    547                DO_2D_00_00 
     547               DO_2D( 0, 0, 0, 0 ) 
    548548                  ztra = - ( pfu_ups(ji,jj,jl) - pfu_ups(ji-1,jj,jl) )              & 
    549549                     &   + ( pu     (ji,jj   ) - pu     (ji-1,jj   ) ) * pt(ji,jj,jl) * (1.-pamsk) 
     
    555555            ! 
    556556            DO jl = 1, jpl              !-- flux in y-direction 
    557                DO_2D_10_10 
     557               DO_2D( 1, 0, 1, 0 ) 
    558558                  pfv_ups(ji,jj,jl) = MAX( pv(ji,jj), 0._wp ) * zpt(ji,jj,jl) + MIN( pv(ji,jj), 0._wp ) * zpt(ji,jj+1,jl) 
    559559               END_2D 
     
    563563            ! 
    564564            DO jl = 1, jpl              !-- flux in y-direction 
    565                DO_2D_10_10 
     565               DO_2D( 1, 0, 1, 0 ) 
    566566                  pfv_ups(ji,jj,jl) = MAX( pv(ji,jj), 0._wp ) * pt(ji,jj,jl) + MIN( pv(ji,jj), 0._wp ) * pt(ji,jj+1,jl) 
    567567               END_2D 
     
    569569            ! 
    570570            DO jl = 1, jpl              !-- first guess of tracer from v-flux 
    571                DO_2D_00_00 
     571               DO_2D( 0, 0, 0, 0 ) 
    572572                  ztra = - ( pfv_ups(ji,jj,jl) - pfv_ups(ji,jj-1,jl) )  & 
    573573                     &   + ( pv     (ji,jj   ) - pv     (ji,jj-1   ) ) * pt(ji,jj,jl) * (1.-pamsk) 
     
    579579            ! 
    580580            DO jl = 1, jpl              !-- flux in x-direction 
    581                DO_2D_10_10 
     581               DO_2D( 1, 0, 1, 0 ) 
    582582                  pfu_ups(ji,jj,jl) = MAX( pu(ji,jj), 0._wp ) * zpt(ji,jj,jl) + MIN( pu(ji,jj), 0._wp ) * zpt(ji+1,jj,jl) 
    583583               END_2D 
     
    589589      ! 
    590590      DO jl = 1, jpl                    !-- after tracer with upstream scheme 
    591          DO_2D_00_00 
     591         DO_2D( 0, 0, 0, 0 ) 
    592592            ztra = - (   pfu_ups(ji,jj,jl) - pfu_ups(ji-1,jj  ,jl)   & 
    593593               &       + pfv_ups(ji,jj,jl) - pfv_ups(ji  ,jj-1,jl) ) & 
     
    628628         ! 
    629629         DO jl = 1, jpl 
    630             DO_2D_10_10 
     630            DO_2D( 1, 0, 1, 0 ) 
    631631               pfu_ho(ji,jj,jl) = 0.5_wp * pu(ji,jj) * ( pt(ji,jj,jl) + pt(ji+1,jj  ,jl) ) 
    632632               pfv_ho(ji,jj,jl) = 0.5_wp * pv(ji,jj) * ( pt(ji,jj,jl) + pt(ji  ,jj+1,jl) ) 
     
    646646            ! 
    647647            DO jl = 1, jpl              !-- flux in x-direction 
    648                DO_2D_10_10 
     648               DO_2D( 1, 0, 1, 0 ) 
    649649                  pfu_ho(ji,jj,jl) = 0.5_wp * pu(ji,jj) * ( pt(ji,jj,jl) + pt(ji+1,jj,jl) ) 
    650650               END_2D 
     
    653653 
    654654            DO jl = 1, jpl              !-- first guess of tracer from u-flux 
    655                DO_2D_00_00 
     655               DO_2D( 0, 0, 0, 0 ) 
    656656                  ztra = - ( pfu_ho(ji,jj,jl) - pfu_ho(ji-1,jj,jl) )              & 
    657657                     &   + ( pu    (ji,jj   ) - pu    (ji-1,jj   ) ) * pt(ji,jj,jl) * (1.-pamsk) 
     
    663663 
    664664            DO jl = 1, jpl              !-- flux in y-direction 
    665                DO_2D_10_10 
     665               DO_2D( 1, 0, 1, 0 ) 
    666666                  pfv_ho(ji,jj,jl) = 0.5_wp * pv(ji,jj) * ( zpt(ji,jj,jl) + zpt(ji,jj+1,jl) ) 
    667667               END_2D 
     
    672672            ! 
    673673            DO jl = 1, jpl              !-- flux in y-direction 
    674                DO_2D_10_10 
     674               DO_2D( 1, 0, 1, 0 ) 
    675675                  pfv_ho(ji,jj,jl) = 0.5_wp * pv(ji,jj) * ( pt(ji,jj,jl) + pt(ji,jj+1,jl) ) 
    676676               END_2D 
     
    679679            ! 
    680680            DO jl = 1, jpl              !-- first guess of tracer from v-flux 
    681                DO_2D_00_00 
     681               DO_2D( 0, 0, 0, 0 ) 
    682682                  ztra = - ( pfv_ho(ji,jj,jl) - pfv_ho(ji,jj-1,jl) )  & 
    683683                     &   + ( pv    (ji,jj   ) - pv    (ji,jj-1   ) ) * pt(ji,jj,jl) * (1.-pamsk) 
     
    689689            ! 
    690690            DO jl = 1, jpl              !-- flux in x-direction 
    691                DO_2D_10_10 
     691               DO_2D( 1, 0, 1, 0 ) 
    692692                  pfu_ho(ji,jj,jl) = 0.5_wp * pu(ji,jj) * ( zpt(ji,jj,jl) + zpt(ji+1,jj,jl) ) 
    693693               END_2D 
     
    737737         !                                                        !--  advective form update in zpt  --! 
    738738         DO jl = 1, jpl 
    739             DO_2D_00_00 
     739            DO_2D( 0, 0, 0, 0 ) 
    740740               zpt(ji,jj,jl) = ( pt(ji,jj,jl) - (  pubox(ji,jj   ) * ( zt_u(ji,jj,jl) - zt_u(ji-1,jj,jl) ) * r1_e1t  (ji,jj) & 
    741741                  &                              + pt   (ji,jj,jl) * ( pu  (ji,jj   ) - pu  (ji-1,jj   ) ) * r1_e1e2t(ji,jj) & 
     
    764764         !                                                        !--  advective form update in zpt  --! 
    765765         DO jl = 1, jpl 
    766             DO_2D_00_00 
     766            DO_2D( 0, 0, 0, 0 ) 
    767767               zpt(ji,jj,jl) = ( pt(ji,jj,jl) - (  pvbox(ji,jj   ) * ( zt_v(ji,jj,jl) - zt_v(ji,jj-1,jl) ) * r1_e2t  (ji,jj) & 
    768768                  &                              + pt   (ji,jj,jl) * ( pv  (ji,jj   ) - pv  (ji,jj-1   ) ) * r1_e1e2t(ji,jj) & 
     
    846846         !         
    847847         DO jl = 1, jpl 
    848             DO_2D_10_10 
     848            DO_2D( 1, 0, 1, 0 ) 
    849849               pt_u(ji,jj,jl) = 0.5_wp * umask(ji,jj,1) * (                                pt(ji+1,jj,jl) + pt(ji,jj,jl)   & 
    850850                  &                                         - SIGN( 1._wp, pu(ji,jj) ) * ( pt(ji+1,jj,jl) - pt(ji,jj,jl) ) ) 
     
    855855         ! 
    856856         DO jl = 1, jpl 
    857             DO_2D_10_10 
     857            DO_2D( 1, 0, 1, 0 ) 
    858858               zcu  = pu(ji,jj) * r1_e2u(ji,jj) * pdt * r1_e1u(ji,jj) 
    859859               pt_u(ji,jj,jl) = 0.5_wp * umask(ji,jj,1) * (                                pt(ji+1,jj,jl) + pt(ji,jj,jl)   & 
     
    865865         ! 
    866866         DO jl = 1, jpl 
    867             DO_2D_10_10 
     867            DO_2D( 1, 0, 1, 0 ) 
    868868               zcu  = pu(ji,jj) * r1_e2u(ji,jj) * pdt * r1_e1u(ji,jj) 
    869869               zdx2 = e1u(ji,jj) * e1u(ji,jj) 
     
    879879         ! 
    880880         DO jl = 1, jpl 
    881             DO_2D_10_10 
     881            DO_2D( 1, 0, 1, 0 ) 
    882882               zcu  = pu(ji,jj) * r1_e2u(ji,jj) * pdt * r1_e1u(ji,jj) 
    883883               zdx2 = e1u(ji,jj) * e1u(ji,jj) 
     
    893893         ! 
    894894         DO jl = 1, jpl 
    895             DO_2D_10_10 
     895            DO_2D( 1, 0, 1, 0 ) 
    896896               zcu  = pu(ji,jj) * r1_e2u(ji,jj) * pdt * r1_e1u(ji,jj) 
    897897               zdx2 = e1u(ji,jj) * e1u(ji,jj) 
     
    914914      IF( ll_neg ) THEN 
    915915         DO jl = 1, jpl 
    916             DO_2D_10_10 
     916            DO_2D( 1, 0, 1, 0 ) 
    917917               IF( pt_u(ji,jj,jl) < 0._wp .OR. ( imsk_small(ji,jj,jl) == 0 .AND. pamsk == 0. ) ) THEN 
    918918                  pt_u(ji,jj,jl) = 0.5_wp * umask(ji,jj,1) * (                                pt(ji+1,jj,jl) + pt(ji,jj,jl)   & 
     
    924924      !                                                     !-- High order flux in i-direction  --! 
    925925      DO jl = 1, jpl 
    926          DO_2D_10_10 
     926         DO_2D( 1, 0, 1, 0 ) 
    927927            pfu_ho(ji,jj,jl) = pu(ji,jj) * pt_u(ji,jj,jl) 
    928928         END_2D 
     
    957957      !                                                     !--  Laplacian in j-direction  --! 
    958958      DO jl = 1, jpl 
    959          DO_2D_10_00 
     959         DO_2D( 1, 0, 0, 0 ) 
    960960            ztv1(ji,jj,jl) = ( pt(ji,jj+1,jl) - pt(ji,jj,jl) ) * r1_e2v(ji,jj) * vmask(ji,jj,1) 
    961961         END_2D 
    962          DO_2D_00_00 
     962         DO_2D( 0, 0, 0, 0 ) 
    963963            ztv2(ji,jj,jl) = ( ztv1(ji,jj,jl) - ztv1(ji,jj-1,jl) ) * r1_e2t(ji,jj) 
    964964         END_2D 
     
    968968      !                                                     !--  BiLaplacian in j-direction  --! 
    969969      DO jl = 1, jpl 
    970          DO_2D_10_00 
     970         DO_2D( 1, 0, 0, 0 ) 
    971971            ztv3(ji,jj,jl) = ( ztv2(ji,jj+1,jl) - ztv2(ji,jj,jl) ) * r1_e2v(ji,jj) * vmask(ji,jj,1) 
    972972         END_2D 
    973          DO_2D_00_00 
     973         DO_2D( 0, 0, 0, 0 ) 
    974974            ztv4(ji,jj,jl) = ( ztv3(ji,jj,jl) - ztv3(ji,jj-1,jl) ) * r1_e2t(ji,jj) 
    975975         END_2D 
     
    982982      CASE( 1 )                                                !==  1st order central TIM  ==! (Eq. 21) 
    983983         DO jl = 1, jpl 
    984             DO_2D_10_10 
     984            DO_2D( 1, 0, 1, 0 ) 
    985985               pt_v(ji,jj,jl) = 0.5_wp * vmask(ji,jj,1) * (                                pt(ji,jj+1,jl) + pt(ji,jj,jl)   & 
    986986                  &                                         - SIGN( 1._wp, pv(ji,jj) ) * ( pt(ji,jj+1,jl) - pt(ji,jj,jl) ) ) 
     
    990990      CASE( 2 )                                                !==  2nd order central TIM  ==! (Eq. 23) 
    991991         DO jl = 1, jpl 
    992             DO_2D_10_10 
     992            DO_2D( 1, 0, 1, 0 ) 
    993993               zcv  = pv(ji,jj) * r1_e1v(ji,jj) * pdt * r1_e2v(ji,jj) 
    994994               pt_v(ji,jj,jl) = 0.5_wp * vmask(ji,jj,1) * (                                pt(ji,jj+1,jl) + pt(ji,jj,jl)   & 
     
    999999      CASE( 3 )                                                !==  3rd order central TIM  ==! (Eq. 24) 
    10001000         DO jl = 1, jpl 
    1001             DO_2D_10_10 
     1001            DO_2D( 1, 0, 1, 0 ) 
    10021002               zcv  = pv(ji,jj) * r1_e1v(ji,jj) * pdt * r1_e2v(ji,jj) 
    10031003               zdy2 = e2v(ji,jj) * e2v(ji,jj) 
     
    10121012      CASE( 4 )                                                !==  4th order central TIM  ==! (Eq. 27) 
    10131013         DO jl = 1, jpl 
    1014             DO_2D_10_10 
     1014            DO_2D( 1, 0, 1, 0 ) 
    10151015               zcv  = pv(ji,jj) * r1_e1v(ji,jj) * pdt * r1_e2v(ji,jj) 
    10161016               zdy2 = e2v(ji,jj) * e2v(ji,jj) 
     
    10251025      CASE( 5 )                                                !==  5th order central TIM  ==! (Eq. 29) 
    10261026         DO jl = 1, jpl 
    1027             DO_2D_10_10 
     1027            DO_2D( 1, 0, 1, 0 ) 
    10281028               zcv  = pv(ji,jj) * r1_e1v(ji,jj) * pdt * r1_e2v(ji,jj) 
    10291029               zdy2 = e2v(ji,jj) * e2v(ji,jj) 
     
    10461046      IF( ll_neg ) THEN 
    10471047         DO jl = 1, jpl 
    1048             DO_2D_10_10 
     1048            DO_2D( 1, 0, 1, 0 ) 
    10491049               IF( pt_v(ji,jj,jl) < 0._wp .OR. ( jmsk_small(ji,jj,jl) == 0 .AND. pamsk == 0. ) ) THEN 
    10501050                  pt_v(ji,jj,jl) = 0.5_wp * vmask(ji,jj,1) * (                              ( pt(ji,jj+1,jl) + pt(ji,jj,jl) )  & 
     
    10561056      !                                                     !-- High order flux in j-direction  --! 
    10571057      DO jl = 1, jpl 
    1058          DO_2D_10_10 
     1058         DO_2D( 1, 0, 1, 0 ) 
    10591059            pfv_ho(ji,jj,jl) = pv(ji,jj) * pt_v(ji,jj,jl) 
    10601060         END_2D 
     
    10921092      ! -------------------------------------------------- 
    10931093      DO jl = 1, jpl 
    1094          DO_2D_10_10 
     1094         DO_2D( 1, 0, 1, 0 ) 
    10951095            pfu_ho(ji,jj,jl) = pfu_ho(ji,jj,jl) - pfu_ups(ji,jj,jl) 
    10961096            pfv_ho(ji,jj,jl) = pfv_ho(ji,jj,jl) - pfv_ups(ji,jj,jl) 
     
    11091109          
    11101110         DO jl = 1, jpl 
    1111             DO_2D_00_00 
     1111            DO_2D( 0, 0, 0, 0 ) 
    11121112               zti_ups(ji,jj,jl)= pt_ups(ji+1,jj  ,jl) 
    11131113               ztj_ups(ji,jj,jl)= pt_ups(ji  ,jj+1,jl) 
     
    11171117 
    11181118         DO jl = 1, jpl 
    1119             DO_2D_00_00 
     1119            DO_2D( 0, 0, 0, 0 ) 
    11201120               IF ( pfu_ho(ji,jj,jl) * ( pt_ups(ji+1,jj  ,jl) - pt_ups(ji,jj,jl) ) <= 0._wp .AND.  & 
    11211121                  & pfv_ho(ji,jj,jl) * ( pt_ups(ji  ,jj+1,jl) - pt_ups(ji,jj,jl) ) <= 0._wp ) THEN 
     
    11461146      DO jl = 1, jpl 
    11471147          
    1148          DO_2D_11_11 
     1148         DO_2D( 1, 1, 1, 1 ) 
    11491149            IF    ( pt(ji,jj,jl) <= 0._wp .AND. pt_ups(ji,jj,jl) <= 0._wp ) THEN 
    11501150               zbup(ji,jj) = -zbig 
     
    11621162         END_2D 
    11631163 
    1164          DO_2D_00_00 
     1164         DO_2D( 0, 0, 0, 0 ) 
    11651165            ! 
    11661166            zup  = MAX( zbup(ji,jj), zbup(ji-1,jj), zbup(ji+1,jj), zbup(ji,jj-1), zbup(ji,jj+1) )  ! search max/min in neighbourhood 
     
    11991199      ! --------------------------------- 
    12001200      DO jl = 1, jpl 
    1201          DO_2D_10_10 
     1201         DO_2D( 1, 0, 1, 0 ) 
    12021202            zau = MIN( 1._wp , zbetdo(ji,jj,jl) , zbetup(ji+1,jj,jl) ) 
    12031203            zbu = MIN( 1._wp , zbetup(ji,jj,jl) , zbetdo(ji+1,jj,jl) ) 
     
    12101210         END_2D 
    12111211 
    1212          DO_2D_10_10 
     1212         DO_2D( 1, 0, 1, 0 ) 
    12131213            zav = MIN( 1._wp , zbetdo(ji,jj,jl) , zbetup(ji,jj+1,jl) ) 
    12141214            zbv = MIN( 1._wp , zbetup(ji,jj,jl) , zbetdo(ji,jj+1,jl) ) 
     
    12441244      ! 
    12451245      DO jl = 1, jpl 
    1246          DO_2D_00_00 
     1246         DO_2D( 0, 0, 0, 0 ) 
    12471247            zslpx(ji,jj,jl) = ( pt(ji+1,jj,jl) - pt(ji,jj,jl) ) * umask(ji,jj,1) 
    12481248         END_2D 
     
    12511251       
    12521252      DO jl = 1, jpl 
    1253          DO_2D_00_00 
     1253         DO_2D( 0, 0, 0, 0 ) 
    12541254            uCFL = pdt * ABS( pu(ji,jj) ) * r1_e1e2t(ji,jj) 
    12551255             
     
    13351335      ! 
    13361336      DO jl = 1, jpl 
    1337          DO_2D_00_00 
     1337         DO_2D( 0, 0, 0, 0 ) 
    13381338            zslpy(ji,jj,jl) = ( pt(ji,jj+1,jl) - pt(ji,jj,jl) ) * vmask(ji,jj,1) 
    13391339         END_2D 
     
    13421342 
    13431343      DO jl = 1, jpl 
    1344          DO_2D_00_00 
     1344         DO_2D( 0, 0, 0, 0 ) 
    13451345            vCFL = pdt * ABS( pv(ji,jj) ) * r1_e1e2t(ji,jj) 
    13461346 
     
    14361436      DO jl = 1, jpl 
    14371437 
    1438          DO_2D_11_11 
     1438         DO_2D( 1, 1, 1, 1 ) 
    14391439            IF ( pv_i(ji,jj,jl) > 0._wp ) THEN 
    14401440               ! 
     
    15021502      ! -- check snow load -- ! 
    15031503      DO jl = 1, jpl 
    1504          DO_2D_11_11 
     1504         DO_2D( 1, 1, 1, 1 ) 
    15051505            IF ( pv_i(ji,jj,jl) > 0._wp ) THEN 
    15061506               ! 
  • NEMO/trunk/src/ICE/icedyn_rdgrft.F90

    r13226 r13295  
    161161      npti = 0   ;   nptidx(:) = 0 
    162162      ipti = 0   ;   iptidx(:) = 0 
    163       DO_2D_11_11 
     163      DO_2D( 1, 1, 1, 1 ) 
    164164         IF ( at_i(ji,jj) > epsi10 ) THEN 
    165165            npti           = npti + 1 
     
    774774      !                              !--------------------------------------------------! 
    775775      CASE( 1 )               !--- Spatial smoothing 
    776          DO_2D_00_00 
     776         DO_2D( 0, 0, 0, 0 ) 
    777777            IF ( SUM( a_i(ji,jj,:) ) > 0._wp ) THEN  
    778778               zworka(ji,jj) = ( 4.0 * strength(ji,jj)              & 
     
    785785         END_2D 
    786786          
    787          DO_2D_00_00 
     787         DO_2D( 0, 0, 0, 0 ) 
    788788            strength(ji,jj) = zworka(ji,jj) 
    789789         END_2D 
     
    796796         ENDIF 
    797797         ! 
    798          DO_2D_00_00 
     798         DO_2D( 0, 0, 0, 0 ) 
    799799            IF ( SUM( a_i(ji,jj,:) ) > 0._wp ) THEN  
    800800               itframe = 1 ! number of time steps for the running mean 
  • NEMO/trunk/src/ICE/icedyn_rhg_evp.F90

    r13286 r13295  
    181181      !------------------------------------------------------------------------------! 
    182182      ! ocean/land mask 
    183       DO_2D_10_10 
     183      DO_2D( 1, 0, 1, 0 ) 
    184184         zfmask(ji,jj) = tmask(ji,jj,1) * tmask(ji+1,jj,1) * tmask(ji,jj+1,1) * tmask(ji+1,jj+1,1) 
    185185      END_2D 
     
    188188      ! Lateral boundary conditions on velocity (modify zfmask) 
    189189      zwf(:,:) = zfmask(:,:) 
    190       DO_2D_00_00 
     190      DO_2D( 0, 0, 0, 0 ) 
    191191         IF( zfmask(ji,jj) == 0._wp ) THEN 
    192192            zfmask(ji,jj) = rn_ishlat * MIN( 1._wp , MAX( zwf(ji+1,jj), zwf(ji,jj+1), zwf(ji-1,jj), zwf(ji,jj-1) ) ) 
     
    254254      zsshdyn(:,:) = ice_var_sshdyn( ssh_m, snwice_mass, snwice_mass_b) 
    255255 
    256       DO_2D_00_00 
     256      DO_2D( 0, 0, 0, 0 ) 
    257257 
    258258         ! ice fraction at U-V points 
     
    305305      ! 
    306306      IF( ln_landfast_L16 ) THEN         !-- Lemieux 2016 
    307          DO_2D_00_00 
     307         DO_2D( 0, 0, 0, 0 ) 
    308308            ! ice thickness at U-V points 
    309309            zvU = 0.5_wp * ( vt_i(ji,jj) * e1e2t(ji,jj) + vt_i(ji+1,jj) * e1e2t(ji+1,jj) ) * r1_e1e2u(ji,jj) * umask(ji,jj,1) 
     
    322322         ! 
    323323      ELSE                               !-- no landfast 
    324          DO_2D_00_00 
     324         DO_2D( 0, 0, 0, 0 ) 
    325325            ztaux_base(ji,jj) = 0._wp 
    326326            ztauy_base(ji,jj) = 0._wp 
     
    345345 
    346346         ! --- divergence, tension & shear (Appendix B of Hunke & Dukowicz, 2002) --- ! 
    347          DO_2D_10_10 
     347         DO_2D( 1, 0, 1, 0 ) 
    348348 
    349349            ! shear at F points 
     
    355355         CALL lbc_lnk( 'icedyn_rhg_evp', zds, 'F', 1.0_wp ) 
    356356 
    357          DO_2D_01_01 
     357         DO_2D( 0, 1, 0, 1 ) 
    358358 
    359359            ! shear**2 at T points (doc eq. A16) 
     
    397397         CALL lbc_lnk( 'icedyn_rhg_evp', zp_delt, 'T', 1.0_wp ) 
    398398 
    399          DO_2D_10_10 
     399         DO_2D( 1, 0, 1, 0 ) 
    400400 
    401401            ! alpha & beta for aEVP 
     
    415415 
    416416         ! --- Ice internal stresses (Appendix C of Hunke and Dukowicz, 2002) --- ! 
    417          DO_2D_00_00 
     417         DO_2D( 0, 0, 0, 0 ) 
    418418            !                   !--- U points 
    419419            zfU(ji,jj) = 0.5_wp * ( ( zs1(ji+1,jj) - zs1(ji,jj) ) * e2u(ji,jj)                                             & 
     
    443443         IF( MOD(jter,2) == 0 ) THEN ! even iterations 
    444444            ! 
    445             DO_2D_00_00 
     445            DO_2D( 0, 0, 0, 0 ) 
    446446               !                 !--- tau_io/(v_oce - v_ice) 
    447447               zTauO = zaV(ji,jj) * zrhoco * SQRT( ( v_ice (ji,jj) - v_oce (ji,jj) ) * ( v_ice (ji,jj) - v_oce (ji,jj) )  & 
     
    492492            IF( ln_bdy )   CALL bdy_ice_dyn( 'V' ) 
    493493            ! 
    494             DO_2D_00_00 
     494            DO_2D( 0, 0, 0, 0 ) 
    495495               !                 !--- tau_io/(u_oce - u_ice) 
    496496               zTauO = zaU(ji,jj) * zrhoco * SQRT( ( u_ice (ji,jj) - u_oce (ji,jj) ) * ( u_ice (ji,jj) - u_oce (ji,jj) )  & 
     
    543543         ELSE ! odd iterations 
    544544            ! 
    545             DO_2D_00_00 
     545            DO_2D( 0, 0, 0, 0 ) 
    546546               !                 !--- tau_io/(u_oce - u_ice) 
    547547               zTauO = zaU(ji,jj) * zrhoco * SQRT( ( u_ice (ji,jj) - u_oce (ji,jj) ) * ( u_ice (ji,jj) - u_oce (ji,jj) )  & 
     
    592592            IF( ln_bdy )   CALL bdy_ice_dyn( 'U' ) 
    593593            ! 
    594             DO_2D_00_00 
     594            DO_2D( 0, 0, 0, 0 ) 
    595595               !                 !--- tau_io/(v_oce - v_ice) 
    596596               zTauO = zaV(ji,jj) * zrhoco * SQRT( ( v_ice (ji,jj) - v_oce (ji,jj) ) * ( v_ice (ji,jj) - v_oce (ji,jj) )  & 
     
    658658      ! 4) Recompute delta, shear and div (inputs for mechanical redistribution)  
    659659      !------------------------------------------------------------------------------! 
    660       DO_2D_10_10 
     660      DO_2D( 1, 0, 1, 0 ) 
    661661 
    662662         ! shear at F points 
     
    667667      END_2D 
    668668       
    669       DO_2D_00_00 
     669      DO_2D( 0, 0, 0, 0 ) 
    670670          
    671671         ! tension**2 at T points 
     
    706706      ! 5) diagnostics 
    707707      !------------------------------------------------------------------------------! 
    708       DO_2D_11_11 
     708      DO_2D( 1, 1, 1, 1 ) 
    709709         zmsk00(ji,jj) = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - epsi06 ) ) ! 1 if ice, 0 if no ice 
    710710      END_2D 
     
    735735         ALLOCATE( zsig1(jpi,jpj) , zsig2(jpi,jpj) , zsig3(jpi,jpj) ) 
    736736         !          
    737          DO_2D_00_00 
     737         DO_2D( 0, 0, 0, 0 ) 
    738738            zdum1 = ( zmsk00(ji-1,jj) * pstress12_i(ji-1,jj) + zmsk00(ji  ,jj-1) * pstress12_i(ji  ,jj-1) +  &  ! stress12_i at T-point 
    739739               &      zmsk00(ji  ,jj) * pstress12_i(ji  ,jj) + zmsk00(ji-1,jj-1) * pstress12_i(ji-1,jj-1) )  & 
     
    786786            &      zdiag_xmtrp_snw(jpi,jpj) , zdiag_ymtrp_snw(jpi,jpj) , zdiag_xatrp(jpi,jpj) , zdiag_yatrp(jpi,jpj) ) 
    787787         ! 
    788          DO_2D_00_00 
     788         DO_2D( 0, 0, 0, 0 ) 
    789789            ! 2D ice mass, snow mass, area transport arrays (X, Y) 
    790790            zfac_x = 0.5 * u_ice(ji,jj) * e2u(ji,jj) * zmsk00(ji,jj) 
  • NEMO/trunk/src/ICE/iceistate.F90

    r13237 r13295  
    288288            ! select ice covered grid points 
    289289            npti = 0 ; nptidx(:) = 0 
    290             DO_2D_11_11 
     290            DO_2D( 1, 1, 1, 1 ) 
    291291               IF ( zht_i_ini(ji,jj) > 0._wp ) THEN 
    292292                  npti         = npti  + 1 
     
    338338            CALL ice_var_salprof ! for sz_i 
    339339            DO jl = 1, jpl 
    340                DO_2D_11_11 
     340               DO_2D( 1, 1, 1, 1 ) 
    341341                  v_i (ji,jj,jl) = h_i(ji,jj,jl) * a_i(ji,jj,jl) 
    342342                  v_s (ji,jj,jl) = h_s(ji,jj,jl) * a_i(ji,jj,jl) 
     
    346346            ! 
    347347            DO jl = 1, jpl 
    348                DO_3D_11_11( 1, nlay_s ) 
     348               DO_3D( 1, 1, 1, 1, 1, nlay_s ) 
    349349                  t_s(ji,jj,jk,jl) = zts_3d(ji,jj,jl) 
    350350                  e_s(ji,jj,jk,jl) = zswitch(ji,jj) * v_s(ji,jj,jl) * r1_nlay_s * & 
     
    354354            ! 
    355355            DO jl = 1, jpl 
    356                DO_3D_11_11( 1, nlay_i ) 
     356               DO_3D( 1, 1, 1, 1, 1, nlay_i ) 
    357357                  t_i (ji,jj,jk,jl) = zti_3d(ji,jj,jl)  
    358358                  ztmelts          = - rTmlt * sz_i(ji,jj,jk,jl) + rt0 ! melting temperature in K 
  • NEMO/trunk/src/ICE/iceitd.F90

    r13226 r13295  
    9898      ! 
    9999      npti = 0   ;   nptidx(:) = 0 
    100       DO_2D_11_11 
     100      DO_2D( 1, 1, 1, 1 ) 
    101101         IF ( at_i(ji,jj) > epsi10 ) THEN 
    102102            npti = npti + 1 
     
    611611         !                    !--------------------------------------- 
    612612         npti = 0   ;   nptidx(:) = 0 
    613          DO_2D_11_11 
     613         DO_2D( 1, 1, 1, 1 ) 
    614614            IF( a_i(ji,jj,jl) > 0._wp .AND. v_i(ji,jj,jl) > (a_i(ji,jj,jl) * hi_max(jl)) ) THEN 
    615615               npti = npti + 1 
     
    650650         !                    !----------------------------------------- 
    651651         npti = 0 ; nptidx(:) = 0 
    652          DO_2D_11_11 
     652         DO_2D( 1, 1, 1, 1 ) 
    653653            IF( a_i(ji,jj,jl+1) > 0._wp .AND. v_i(ji,jj,jl+1) <= (a_i(ji,jj,jl+1) * hi_max(jl)) ) THEN 
    654654               npti = npti + 1 
  • NEMO/trunk/src/ICE/icesbc.F90

    r13226 r13295  
    8282      IF( ln_mixcpl) THEN                                                        ! Case of a mixed Bulk/Coupled formulation 
    8383                                   CALL sbc_cpl_ice_tau( zutau_ice , zvtau_ice ) 
    84          DO_2D_00_00 
     84         DO_2D( 0, 0, 0, 0 ) 
    8585            utau_ice(ji,jj) = utau_ice(ji,jj) * xcplmask(ji,jj,0) + zutau_ice(ji,jj) * ( 1. - xcplmask(ji,jj,0) ) 
    8686            vtau_ice(ji,jj) = vtau_ice(ji,jj) * xcplmask(ji,jj,0) + zvtau_ice(ji,jj) * ( 1. - xcplmask(ji,jj,0) ) 
  • NEMO/trunk/src/ICE/icethd.F90

    r13226 r13295  
    109109         zu_io(:,:) = u_ice(:,:) - ssu_m(:,:) 
    110110         zv_io(:,:) = v_ice(:,:) - ssv_m(:,:) 
    111          DO_2D_00_00 
     111         DO_2D( 0, 0, 0, 0 ) 
    112112            zfric(ji,jj) = rn_cio * ( 0.5_wp *  & 
    113113               &                    (  zu_io(ji,jj) * zu_io(ji,jj) + zu_io(ji-1,jj) * zu_io(ji-1,jj)   & 
     
    115115         END_2D 
    116116      ELSE      !  if no ice dynamics => transmit directly the atmospheric stress to the ocean 
    117          DO_2D_00_00 
     117         DO_2D( 0, 0, 0, 0 ) 
    118118            zfric(ji,jj) = r1_rho0 * SQRT( 0.5_wp *  & 
    119119               &                         (  utau(ji,jj) * utau(ji,jj) + utau(ji-1,jj) * utau(ji-1,jj)   & 
     
    126126      ! Partial computation of forcing for the thermodynamic sea ice model 
    127127      !--------------------------------------------------------------------! 
    128       DO_2D_11_11 
     128      DO_2D( 1, 1, 1, 1 ) 
    129129         rswitch  = tmask(ji,jj,1) * MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - epsi10 ) ) ! 0 if no ice 
    130130         ! 
     
    196196         ! select ice covered grid points 
    197197         npti = 0 ; nptidx(:) = 0 
    198          DO_2D_11_11 
     198         DO_2D( 1, 1, 1, 1 ) 
    199199            IF ( a_i(ji,jj,jl) > epsi10 ) THEN      
    200200               npti         = npti  + 1 
  • NEMO/trunk/src/ICE/icethd_do.F90

    r13226 r13295  
    145145         zgamafr = 0.03 
    146146         ! 
    147          DO_2D_00_00 
     147         DO_2D( 0, 0, 0, 0 ) 
    148148            IF ( qlead(ji,jj) < 0._wp .AND. tau_icebfr(ji,jj) == 0._wp ) THEN ! activated if cooling and no landfast 
    149149               ! -- Wind stress -- ! 
     
    202202      ! Identify grid points where new ice forms 
    203203      npti = 0   ;   nptidx(:) = 0 
    204       DO_2D_11_11 
     204      DO_2D( 1, 1, 1, 1 ) 
    205205         IF ( qlead(ji,jj)  <  0._wp .AND. tau_icebfr(ji,jj) == 0._wp ) THEN 
    206206            npti = npti + 1 
  • NEMO/trunk/src/ICE/iceupdate.F90

    r13286 r13295  
    113113      ENDIF 
    114114       
    115       DO_2D_11_11 
     115      DO_2D( 1, 1, 1, 1 ) 
    116116 
    117117         ! Solar heat flux reaching the ocean = zqsr (W.m-2)  
     
    332332      ! 
    333333      IF( MOD( kt-1, nn_fsbc ) == 0 ) THEN     !==  Ice time-step only  ==!   (i.e. surface module time-step) 
    334          DO_2D_00_00 
     334         DO_2D( 0, 0, 0, 0 ) 
    335335            !                                               ! 2*(U_ice-U_oce) at T-point 
    336336            zu_t = u_ice(ji,jj) + u_ice(ji-1,jj) - u_oce(ji,jj) - u_oce(ji-1,jj)    
     
    351351      !                                      !==  every ocean time-step  ==! 
    352352      ! 
    353       DO_2D_00_00 
     353      DO_2D( 0, 0, 0, 0 ) 
    354354         ! ice area at u and v-points  
    355355         zat_u  = ( at_i(ji,jj) * tmask(ji,jj,1) + at_i (ji+1,jj    ) * tmask(ji+1,jj  ,1) )  & 
  • NEMO/trunk/src/ICE/icevar.F90

    r13226 r13295  
    243243      zlay_i   = REAL( nlay_i , wp )    ! number of layers 
    244244      DO jl = 1, jpl 
    245          DO_3D_11_11( 1, nlay_i ) 
     245         DO_3D( 1, 1, 1, 1, 1, nlay_i ) 
    246246            IF ( v_i(ji,jj,jl) > epsi20 ) THEN     !--- icy area  
    247247               ! 
     
    347347         z1_dS = 1._wp / ( zsi1 - zsi0 ) 
    348348         DO jl = 1, jpl 
    349             DO_2D_11_11 
     349            DO_2D( 1, 1, 1, 1 ) 
    350350               zalpha(ji,jj,jl) = MAX(  0._wp , MIN( ( zsi1 - s_i(ji,jj,jl) ) * z1_dS , 1._wp )  ) 
    351351               !                             ! force a constant profile when SSS too low (Baltic Sea) 
     
    356356         ! Computation of the profile 
    357357         DO jl = 1, jpl 
    358             DO_3D_11_11( 1, nlay_i ) 
     358            DO_3D( 1, 1, 1, 1, 1, nlay_i ) 
    359359               !                          ! linear profile with 0 surface value 
    360360               zs0 = z_slope_s(ji,jj,jl) * ( REAL(jk,wp) - 0.5_wp ) * h_i(ji,jj,jl) * r1_nlay_i 
     
    486486         ! Zap ice energy and use ocean heat to melt ice 
    487487         !----------------------------------------------------------------- 
    488          DO_3D_11_11( 1, nlay_i ) 
     488         DO_3D( 1, 1, 1, 1, 1, nlay_i ) 
    489489            ! update exchanges with ocean 
    490490            hfx_res(ji,jj)   = hfx_res(ji,jj) - (1._wp - zswitch(ji,jj) ) * e_i(ji,jj,jk,jl) * r1_Dt_ice ! W.m-2 <0 
     
    493493         END_3D 
    494494         ! 
    495          DO_3D_11_11( 1, nlay_s ) 
     495         DO_3D( 1, 1, 1, 1, 1, nlay_s ) 
    496496            ! update exchanges with ocean 
    497497            hfx_res(ji,jj)   = hfx_res(ji,jj) - (1._wp - zswitch(ji,jj) ) * e_s(ji,jj,jk,jl) * r1_Dt_ice ! W.m-2 <0 
     
    503503         ! zap ice and snow volume, add water and salt to ocean 
    504504         !----------------------------------------------------------------- 
    505          DO_2D_11_11 
     505         DO_2D( 1, 1, 1, 1 ) 
    506506            ! update exchanges with ocean 
    507507            sfx_res(ji,jj)  = sfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * sv_i(ji,jj,jl)   * rhoi * r1_Dt_ice 
     
    574574         ! zap ice energy and send it to the ocean 
    575575         !---------------------------------------- 
    576          DO_3D_11_11( 1, nlay_i ) 
     576         DO_3D( 1, 1, 1, 1, 1, nlay_i ) 
    577577            IF( pe_i(ji,jj,jk,jl) < 0._wp .OR. pa_i(ji,jj,jl) <= 0._wp ) THEN 
    578578               hfx_res(ji,jj)   = hfx_res(ji,jj) - pe_i(ji,jj,jk,jl) * z1_dt ! W.m-2 >0 
     
    581581         END_3D 
    582582         ! 
    583          DO_3D_11_11( 1, nlay_s ) 
     583         DO_3D( 1, 1, 1, 1, 1, nlay_s ) 
    584584            IF( pe_s(ji,jj,jk,jl) < 0._wp .OR. pa_i(ji,jj,jl) <= 0._wp ) THEN 
    585585               hfx_res(ji,jj)   = hfx_res(ji,jj) - pe_s(ji,jj,jk,jl) * z1_dt ! W.m-2 <0 
     
    591591         ! zap ice and snow volume, add water and salt to ocean 
    592592         !----------------------------------------------------- 
    593          DO_2D_11_11 
     593         DO_2D( 1, 1, 1, 1 ) 
    594594            IF( pv_i(ji,jj,jl) < 0._wp .OR. pa_i(ji,jj,jl) <= 0._wp ) THEN 
    595595               wfx_res(ji,jj)    = wfx_res(ji,jj) + pv_i (ji,jj,jl) * rhoi * z1_dt 
  • NEMO/trunk/src/ICE/icewri.F90

    r13226 r13295  
    7171 
    7272      ! tresholds for outputs 
    73       DO_2D_11_11 
     73      DO_2D( 1, 1, 1, 1 ) 
    7474         zmsk00(ji,jj) = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - epsi06  ) ) ! 1 if ice    , 0 if no ice 
    7575         zmsk05(ji,jj) = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - 0.05_wp ) ) ! 1 if 5% ice , 0 if less 
     
    7878      END_2D 
    7979      DO jl = 1, jpl 
    80          DO_2D_11_11 
     80         DO_2D( 1, 1, 1, 1 ) 
    8181            zmsk00l(ji,jj,jl)  = MAX( 0._wp , SIGN( 1._wp , a_i(ji,jj,jl) - epsi06 ) ) 
    8282            zmsksnl(ji,jj,jl)  = MAX( 0._wp , SIGN( 1._wp , v_s(ji,jj,jl) - epsi06 ) ) 
     
    130130      ! 
    131131      IF( iom_use('icevel') .OR. iom_use('fasticepres') ) THEN                                                              ! module of ice velocity 
    132          DO_2D_00_00 
     132         DO_2D( 0, 0, 0, 0 ) 
    133133            z2da  = u_ice(ji,jj) + u_ice(ji-1,jj) 
    134134            z2db  = v_ice(ji,jj) + v_ice(ji,jj-1) 
  • NEMO/trunk/src/NST/agrif_oce_sponge.F90

    r13286 r13295  
    271271         fspu(:,:) = 0._wp 
    272272         fspv(:,:) = 0._wp 
    273          DO_2D_00_00 
     273         DO_2D( 0, 0, 0, 0 ) 
    274274            fspu(ji,jj) = 0.5_wp * ( ztabramp(ji,jj) + ztabramp(ji+1,jj  ) ) * ssumask(ji,jj) 
    275275            fspv(ji,jj) = 0.5_wp * ( ztabramp(ji,jj) + ztabramp(ji  ,jj+1) ) * ssvmask(ji,jj) 
     
    281281         fspt(:,:) = 0._wp 
    282282         fspf(:,:) = 0._wp 
    283          DO_2D_00_00 
     283         DO_2D( 0, 0, 0, 0 ) 
    284284            fspt(ji,jj) = ztabramp(ji,jj) * ssmask(ji,jj) 
    285285            fspf(ji,jj) = 0.25_wp * ( ztabramp(ji  ,jj  ) + ztabramp(ji  ,jj+1)   & 
     
    305305#if defined key_vertical 
    306306      ! Remove vertical interpolation where not needed: 
    307       DO_2D_00_00 
     307      DO_2D( 0, 0, 0, 0 ) 
    308308         IF ((fspu(ji-1,jj)==0._wp).AND.(fspu(ji,jj)==0._wp).AND. & 
    309309         &   (fspv(ji,jj-1)==0._wp).AND.(fspv(ji,jj)==0._wp)) mbkt_parent(ji,jj) = 0 
  • NEMO/trunk/src/NST/agrif_user.F90

    r13286 r13295  
    257257      ! TODO: Switch to linear interpolation of bathymetry in the s-coordinate case 
    258258      !       and no refinement 
    259       DO_2D_10_10 
     259      DO_2D( 1, 0, 1, 0 ) 
    260260         mbku_parent(ji,jj) = MIN( mbkt_parent(ji+1,jj  ), mbkt_parent(ji,jj) ) 
    261261         mbkv_parent(ji,jj) = MIN( mbkt_parent(ji  ,jj+1), mbkt_parent(ji,jj) ) 
    262262      END_2D 
    263263      IF ( ln_sco.AND.Agrif_Parent(ln_sco) ) THEN  
    264          DO_2D_10_10 
     264         DO_2D( 1, 0, 1, 0 ) 
    265265            hu0_parent(ji,jj) = 0.5_wp * ( ht0_parent(ji,jj)+ht0_parent(ji+1,jj) ) 
    266266            hv0_parent(ji,jj) = 0.5_wp * ( ht0_parent(ji,jj)+ht0_parent(ji,jj+1) ) 
    267267         END_2D 
    268268      ELSE 
    269          DO_2D_10_10 
     269         DO_2D( 1, 0, 1, 0 ) 
    270270            hu0_parent(ji,jj) = MIN( ht0_parent(ji,jj), ht0_parent(ji+1,jj) ) 
    271271            hv0_parent(ji,jj) = MIN( ht0_parent(ji,jj), ht0_parent(ji,jj+1) ) 
     
    274274      ! 
    275275      CALL lbc_lnk_multi( 'Agrif_Init_Domain', hu0_parent, 'U', 1.0_wp, hv0_parent, 'V', 1.0_wp ) 
    276       DO_2D_00_00 
     276      DO_2D( 0, 0, 0, 0 ) 
    277277         zk(ji,jj) = REAL( mbku_parent(ji,jj), wp ) 
    278278      END_2D 
    279279      CALL lbc_lnk( 'Agrif_InitValues_cont', zk, 'U', 1.0_wp ) 
    280280      mbku_parent(:,:) = MAX( NINT( zk(:,:) ), 1 ) 
    281       DO_2D_00_00 
     281      DO_2D( 0, 0, 0, 0 ) 
    282282         zk(ji,jj) = REAL( mbkv_parent(ji,jj), wp ) 
    283283      END_2D 
  • 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 
  • NEMO/trunk/src/OFF/dtadyn.F90

    r13286 r13295  
    371371        gdepw(:,:,1,Kmm) = 0.0_wp 
    372372 
    373         DO_3D_11_11( 2, jpk ) 
     373        DO_3D( 1, 1, 1, 1, 2, jpk ) 
    374374          !    zcoef = (tmask(ji,jj,jk) - wmask(ji,jj,jk))   ! 0 everywhere 
    375375          !    tmask = wmask, ie everywhere expect at jk = mikt 
     
    396396         ! 
    397397         nk_rnf(:,:) = 0                               ! set the number of level over which river runoffs are applied 
    398          DO_2D_11_11 
     398         DO_2D( 1, 1, 1, 1 ) 
    399399            IF( h_rnf(ji,jj) > 0._wp ) THEN 
    400400               jk = 2 
     
    410410         END_2D 
    411411!!st pourquoi on n'utilise pas le gde3w ici plutôt que de faire une boucle ?  
    412          DO_2D_11_11 
     412         DO_2D( 1, 1, 1, 1 ) 
    413413            h_rnf(ji,jj) = 0._wp 
    414414            DO jk = 1, nk_rnf(ji,jj) 
     
    605605      gdepw(:,:,1,Kmm) = 0.0_wp 
    606606      ! 
    607       DO_3D_11_11( 2, jpk ) 
     607      DO_3D( 1, 1, 1, 1, 2, jpk ) 
    608608         zcoef = (tmask(ji,jj,jk) - wmask(ji,jj,jk)) 
    609609         gdepw(ji,jj,jk,Kmm) = gdepw(ji,jj,jk-1,Kmm) + e3t(ji,jj,jk-1,Kmm) 
     
    686686      ! 
    687687!!st code dupliqué même remarque que plus haut pourquoi ne pas utiliser gdepw ? 
    688       DO_2D_11_11 
     688      DO_2D( 1, 1, 1, 1 ) 
    689689         h_rnf(ji,jj) = 0._wp 
    690690         DO jk = 1, nk_rnf(ji,jj)                           ! recalculates h_rnf to be the depth in metres 
  • NEMO/trunk/src/SWE/asminc.F90

    r12983 r13295  
    416416            DO jk = 1, jpkm1           ! zhdiv = e1e1 * div 
    417417               zhdiv(:,:) = 0._wp 
    418                DO_2D_00_00 
     418               DO_2D( 0, 0, 0, 0 ) 
    419419                  zhdiv(ji,jj) = (  e2u(ji  ,jj) * e3u(ji  ,jj,jk,Kmm) * u_bkginc(ji  ,jj,jk)    & 
    420420                     &            - e2u(ji-1,jj) * e3u(ji-1,jj,jk,Kmm) * u_bkginc(ji-1,jj,jk)    & 
     
    425425               CALL lbc_lnk( 'asminc', zhdiv, 'T', 1. )   ! lateral boundary cond. (no sign change) 
    426426               ! 
    427                DO_2D_00_00 
     427               DO_2D( 0, 0, 0, 0 ) 
    428428                  u_bkginc(ji,jj,jk) = u_bkginc(ji,jj,jk)                         & 
    429429                     &               + 0.2_wp * ( zhdiv(ji+1,jj) - zhdiv(ji  ,jj) ) * r1_e1u(ji,jj) * umask(ji,jj,jk) 
  • NEMO/trunk/src/SWE/diawri.F90

    r12983 r13295  
    180180      IF( iom_use("hu") )   THEN                   ! water column at u-point 
    181181         z2d(:,:) = 0._wp 
    182          DO_2D_10_10   
     182         DO_2D( 1, 0, 1, 0 )   
    183183            z2d(ji,jj) = 0.5_wp * ( e3t(ji  ,jj,1,Kmm) * e1e2t(ji  ,jj)  & 
    184184               &                  + e3t(ji+1,jj,1,Kmm) * e1e2t(ji+1,jj)  ) * r1_e1e2u(ji,jj) 
     
    190190      IF( iom_use("hv") )   THEN                  ! water column at v-point 
    191191         z2d(:,:) = 0._wp 
    192          DO_2D_10_10   
     192         DO_2D( 1, 0, 1, 0 )   
    193193            z2d(ji,jj) = 0.5_wp * (  e3t(ji,jj+1,1,Kmm) * e1e2t(ji,jj+1)   & 
    194194              &                    + e3t(ji,jj  ,1,Kmm) * e1e2t(ji,jj  )   ) * r1_e1e2v(ji,jj) 
     
    200200      IF( iom_use("hf") )  THEN                    ! water column at f-point 
    201201         z2d(:,:) = 0._wp 
    202          DO_2D_10_10   
     202         DO_2D( 1, 0, 1, 0 )   
    203203            z2d(ji,jj) = 0.25_wp * (  e3t(ji,jj+1,1,Kmm) * e1e2t(ji,jj+1) + e3t(ji+1,jj+1,1,Kmm) * e1e2t(ji+1,jj+1)    & 
    204204              &                     + e3t(ji,jj  ,1,Kmm) * e1e2t(ji,jj  ) + e3t(ji+1,jj  ,1,Kmm) * e1e2t(ji+1,jj  )  ) * r1_e1e2f(ji,jj) 
     
    216216         zztmp = rho0 * 0.25 
    217217         z2d(:,:) = 0._wp 
    218          DO_2D_00_00 
     218         DO_2D( 0, 0, 0, 0 ) 
    219219            zztmp2 = (  ( rCdU_bot(ji+1,jj)+rCdU_bot(ji  ,jj) ) * uu(ji  ,jj,mbku(ji  ,jj),Kmm)  )**2   & 
    220220               &   + (  ( rCdU_bot(ji  ,jj)+rCdU_bot(ji-1,jj) ) * uu(ji-1,jj,mbku(ji-1,jj),Kmm)  )**2   & 
     
    235235      IF ( iom_use("sKE") ) THEN                        ! surface kinetic energy at T point 
    236236         z2d(:,:) = 0._wp 
    237          DO_2D_00_00 
     237         DO_2D( 0, 0, 0, 0 ) 
    238238            z2d(ji,jj) =    0.25_wp * ( uu(ji  ,jj,1,Kmm) * uu(ji  ,jj,1,Kmm) * e1e2u(ji  ,jj) * e3u(ji  ,jj,1,Kmm)  & 
    239239               &                      + uu(ji-1,jj,1,Kmm) * uu(ji-1,jj,1,Kmm) * e1e2u(ji-1,jj) * e3u(ji-1,jj,1,Kmm)  & 
     
    251251      IF ( iom_use("sKEf") ) THEN                        ! surface kinetic energy at F point 
    252252         z2d(:,:) = 0._wp                                ! CAUTION : only valid in SWE, not with bathymetry 
    253          DO_2D_00_00 
     253         DO_2D( 0, 0, 0, 0 ) 
    254254            z2d(ji,jj) =    0.25_wp * ( uu(ji,jj  ,1,Kmm) * uu(ji,jj  ,1,Kmm) * e1e2u(ji,jj  ) * e3u(ji,jj  ,1,Kmm)  & 
    255255               &                      + uu(ji,jj+1,1,Kmm) * uu(ji,jj+1,1,Kmm) * e1e2u(ji,jj+1) * e3u(ji,jj+1,1,Kmm)  & 
     
    273273         z2d(:,:) = 0._wp  
    274274         ze3 = 0._wp  
    275          DO_2D_10_10 
     275         DO_2D( 1, 0, 1, 0 ) 
    276276            z2d(ji,jj) = (   e2v(ji+1,jj  ) * vv(ji+1,jj  ,1,Kmm) - e2v(ji,jj) * vv(ji,jj,1,Kmm)    & 
    277277            &              - e1u(ji  ,jj+1) * uu(ji  ,jj+1,1,Kmm) + e1u(ji,jj) * uu(ji,jj,1,Kmm)  ) * r1_e1e2f(ji,jj) 
     
    282282         CALL iom_put( "plavor", ff_f )                 ! planetary vorticity ( f ) 
    283283         ! 
    284          DO_2D_10_10   
     284         DO_2D( 1, 0, 1, 0 )   
    285285            ze3 = (  e3t(ji,jj+1,1,Kmm) * e1e2t(ji,jj+1) + e3t(ji+1,jj+1,1,Kmm) * e1e2t(ji+1,jj+1)    & 
    286286              &    + e3t(ji,jj  ,1,Kmm) * e1e2t(ji,jj  ) + e3t(ji+1,jj  ,1,Kmm) * e1e2t(ji+1,jj  )  ) * r1_e1e2f(ji,jj) 
     
    293293         CALL iom_put( "relpotvor", z2d )                  ! relative potential vorticity (zeta/h) 
    294294         ! 
    295          DO_2D_10_10 
     295         DO_2D( 1, 0, 1, 0 ) 
    296296            ze3 = (  e3t(ji,jj+1,1,Kmm) * e1e2t(ji,jj+1) + e3t(ji+1,jj+1,1,Kmm) * e1e2t(ji+1,jj+1)    & 
    297297              &    + e3t(ji,jj  ,1,Kmm) * e1e2t(ji,jj  ) + e3t(ji+1,jj  ,1,Kmm) * e1e2t(ji+1,jj  )  ) * r1_e1e2f(ji,jj) 
     
    304304         CALL iom_put( "abspotvor", z2d )                  ! absolute potential vorticity ( q ) 
    305305         ! 
    306          DO_2D_10_10   
     306         DO_2D( 1, 0, 1, 0 )   
    307307            z2d(ji,jj) = 0.5_wp * z2d(ji,jj)  * z2d(ji,jj)  
    308308         END_2D 
  • NEMO/trunk/src/SWE/domain.F90

    r12983 r13295  
    169169!!anhf hf_0 = mean(ht_0*tmask) so hf = mimj( ht0 + ssht) 
    170170! ne pas combiner avec an45 tout de suite 
    171 !      DO_2D_10_10 
     171!      DO_2D( 1, 0, 1, 0 ) 
    172172!         hf_0(ji,jj) = 0.25_wp * (   ht_0(ji,jj+1) * tmask(ji,jj+1,1) + ht_0(ji+1,jj+1) * tmask(ji+1,jj+1,1)   & 
    173173!            &                      + ht_0(ji,jj  ) * tmask(ji,jj  ,1) + ht_0(ji+1,jj  ) * tmask(ji+1,jj  ,1)   ) 
     
    183183!!an45 Ligne de cote a 45deg : e1e2t *= ( mi(umask) + mj(vmask) ) /2 
    184184!!                             idem pour e1e2f 
    185 !      DO_2D_10_10 
     185!      DO_2D( 1, 0, 1, 0 ) 
    186186!      zcoeff = 0.25_wp * (   umask(ji,jj+1,1) + umask(ji+1,jj+1,1)   & 
    187187!         &                 + vmask(ji,jj  ,1) + vmask(ji+1,jj  ,1)   ) 
  • NEMO/trunk/src/SWE/dommsk.F90

    r12983 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) 
     
    153153         CALL iom_get ( inum, jpdom_data, 'bdy_msk', bdytmask(:,:) ) 
    154154         CALL iom_close( inum ) 
    155          DO_3D_11_11( 1, jpkm1 ) 
     155         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    156156            tmask(ji,jj,jk) = tmask(ji,jj,jk) * bdytmask(ji,jj) 
    157157         END_3D 
     
    194194!!an  
    195195      ! ssfmask(:,:) = MAXVAL( fmask(:,:,:), DIM=3 ) 
    196       DO_2D_10_10 
     196      DO_2D( 1, 0, 1, 0 ) 
    197197         ssfmask(ji,jj) = MAX(  tmask(ji,jj+1,1), tmask(ji+1,jj+1,1),  &  
    198198            &                   tmask(ji,jj  ,1), tmask(ji+1,jj  ,1)   ) 
     
    245245         DO jk = 1, jpk 
    246246            zwf(:,:) = fmask(:,:,jk)          
    247             DO_2D_00_00 
     247            DO_2D( 0, 0, 0, 0 ) 
    248248               IF( fmask(ji,jj,jk) == 0._wp ) THEN 
    249249                  fmask(ji,jj,jk) = rn_shlat * MIN( 1._wp , MAX( zwf(ji+1,jj), zwf(ji,jj+1),   & 
  • NEMO/trunk/src/SWE/domvvl.F90

    r12983 r13295  
    205205      gdept(:,:,1,Kbb) = 0.5_wp * e3w(:,:,1,Kbb) 
    206206      gdepw(:,:,1,Kbb) = 0.0_wp 
    207       DO_3D_11_11( 2, jpk ) 
     207      DO_3D( 1, 1, 1, 1, 2, jpk ) 
    208208         !    zcoef = tmask - wmask    ! 0 everywhere tmask = wmask, ie everywhere expect at jk = mikt 
    209209         !                             ! 1 everywhere from mbkt to mikt + 1 or 1 (if no isf) 
     
    253253         ENDIF 
    254254         IF ( ln_vvl_zstar_at_eqtor ) THEN   ! use z-star in vicinity of the Equator 
    255             DO_2D_11_11 
     255            DO_2D( 1, 1, 1, 1 ) 
    256256!!gm  case |gphi| >= 6 degrees is useless   initialized just above by default 
    257257               IF( ABS(gphit(ji,jj)) >= 6.) THEN 
     
    354354      e3v(:,:,:,Kaa) = e3v(:,:,:,Kmm) 
    355355      ! 
    356       DO_3D_11_11( 1, jpk ) 
     356      DO_3D( 1, 1, 1, 1, 1, jpk ) 
    357357         gdepw(ji,jj,jk,Kmm) =  gdepw_0(ji,jj,jk) * (1._wp + r3t(ji,jj,Kmm)) 
    358358         gdept(ji,jj,jk,Kmm) =  gdept_0(ji,jj,jk) * (1._wp + r3t(ji,jj,Kmm))  
     
    500500         zwu(:,:) = 0._wp 
    501501         zwv(:,:) = 0._wp 
    502          DO_3D_10_10( 1, jpkm1 ) 
     502         DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    503503            un_td(ji,jj,jk) = rn_ahe3 * umask(ji,jj,jk) * e2_e1u(ji,jj)           & 
    504504               &            * ( tilde_e3t_b(ji,jj,jk) - tilde_e3t_b(ji+1,jj  ,jk) ) 
     
    508508            zwv(ji,jj) = zwv(ji,jj) + vn_td(ji,jj,jk) 
    509509         END_3D 
    510          DO_2D_11_11 
     510         DO_2D( 1, 1, 1, 1 ) 
    511511            un_td(ji,jj,mbku(ji,jj)) = un_td(ji,jj,mbku(ji,jj)) - zwu(ji,jj) 
    512512            vn_td(ji,jj,mbkv(ji,jj)) = vn_td(ji,jj,mbkv(ji,jj)) - zwv(ji,jj) 
    513513         END_2D 
    514          DO_3D_00_00( 1, jpkm1 ) 
     514         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    515515            tilde_e3t_a(ji,jj,jk) = tilde_e3t_a(ji,jj,jk) + (   un_td(ji-1,jj  ,jk) - un_td(ji,jj,jk)    & 
    516516               &                                          +     vn_td(ji  ,jj-1,jk) - vn_td(ji,jj,jk)    & 
     
    831831      gdepw(:,:,1,Kmm) = 0.0_wp 
    832832      gde3w(:,:,1) = gdept(:,:,1,Kmm) - ssh(:,:,Kmm) 
    833       DO_3D_11_11( 2, jpk ) 
     833      DO_3D( 1, 1, 1, 1, 2, jpk ) 
    834834        !    zcoef = (tmask(ji,jj,jk) - wmask(ji,jj,jk))   ! 0 everywhere tmask = wmask, ie everywhere expect at jk = mikt 
    835835                                                           ! 1 for jk = mikt 
     
    918918 
    919919      ! t- and w- points depth (set the isf depth as it is in the initial step) 
    920       DO_3D_11_11( 1, jpk ) 
     920      DO_3D( 1, 1, 1, 1, 1, jpk ) 
    921921         gdepw(ji,jj,jk,Kmm) =  gdepw_0(ji,jj,jk) * (1._wp + r3t(ji,jj,Kmm)) 
    922922         gdept(ji,jj,jk,Kmm) =  gdept_0(ji,jj,jk) * (1._wp + r3t(ji,jj,Kmm))  
     
    10141014         ! 
    10151015      CASE( 'U' )                   !* from T- to U-point : hor. surface weighted mean 
    1016          DO_2D_00_00 
     1016         DO_2D( 0, 0, 0, 0 ) 
    10171017            zc3(ji,jj) = 0.5_wp * (  e1e2t(ji  ,jj) * pssh(ji  ,jj)  & 
    10181018               &                   + e1e2t(ji+1,jj) * pssh(ji+1,jj)  ) * r1_hu_0(ji,jj) * r1_e1e2u(ji,jj) 
     
    10251025         ! 
    10261026      CASE( 'V' )                   !* from T- to V-point : hor. surface weighted mean 
    1027          DO_2D_00_00 
     1027         DO_2D( 0, 0, 0, 0 ) 
    10281028            zc3(ji,jj) = 0.5_wp * (  e1e2t(ji,jj  ) * pssh(ji,jj  )  & 
    10291029               &                   + e1e2t(ji,jj+1) * pssh(ji,jj+1)  ) * r1_hv_0(ji,jj) * r1_e1e2v(ji,jj) 
     
    10361036         ! 
    10371037      CASE( 'F' )                   !* from U-point to F-point : hor. surface weighted mean 
    1038          DO_2D_10_10 
     1038         DO_2D( 1, 0, 1, 0 ) 
    10391039            zc3(ji,jj) = 0.25_wp * (  e1e2t(ji  ,jj  ) * pssh(ji  ,jj  )  & 
    10401040               &                    + e1e2t(ji+1,jj  ) * pssh(ji+1,jj  )  & 
     
    10571057      CASE( 'UW' )                  !* from U- to UW-point 
    10581058         ! 
    1059          DO_2D_00_00 
     1059         DO_2D( 0, 0, 0, 0 ) 
    10601060            zc3(ji,jj) = 0.5_wp * (  e1e2t(ji  ,jj) * pssh(ji  ,jj)  & 
    10611061               &                   + e1e2t(ji+1,jj) * pssh(ji+1,jj)  ) * r1_hu_0(ji,jj) * r1_e1e2u(ji,jj) 
     
    10681068      CASE( 'VW' )                  !* from U- to UW-point : vertical simple mean 
    10691069         ! 
    1070          DO_2D_00_00 
     1070         DO_2D( 0, 0, 0, 0 ) 
    10711071            zc3(ji,jj) = 0.5_wp * (  e1e2t(ji,jj  ) * pssh(ji,jj  )  & 
    10721072               &                   + e1e2t(ji,jj+1) * pssh(ji,jj+1)  ) * r1_hv_0(ji,jj) * r1_e1e2v(ji,jj) 
     
    12011201                  ssh(:,:,Kbb) = -ssh_ref 
    12021202 
    1203                   DO_2D_11_11 
     1203                  DO_2D( 1, 1, 1, 1 ) 
    12041204                     IF( ht_0(ji,jj)-ssh_ref <  rn_wdmin1 ) THEN ! if total depth is less than min depth 
    12051205                        ssh(ji,jj,Kbb) = rn_wdmin1 - (ht_0(ji,jj) ) 
  • NEMO/trunk/src/SWE/dynatf.F90

    r12983 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) ) 
     
    232232               CALL dom_vvl_interpol( ssh(:,:,Kmm), pe3u(:,:,:,Kmm), 'U' ) 
    233233               CALL dom_vvl_interpol( ssh(:,:,Kmm), pe3v(:,:,:,Kmm), 'V' ) 
    234                DO_3D_11_11( 1, jpkm1 ) 
     234               DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    235235                  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) ) 
    236236                  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) ) 
     
    243243               CALL dom_vvl_interpol( ssh(:,:,Kmm), ze3u_f, 'U' ) 
    244244               CALL dom_vvl_interpol( ssh(:,:,Kmm), ze3v_f, 'V' ) 
    245                DO_3D_11_11( 1, jpkm1 ) 
     245               DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    246246                  zue3a = pe3u(ji,jj,jk,Kaa) * puu(ji,jj,jk,Kaa) 
    247247                  zve3a = pe3v(ji,jj,jk,Kaa) * pvv(ji,jj,jk,Kaa) 
  • NEMO/trunk/src/SWE/dynkeg.F90

    r12983 r13295  
    103103!!an45 to be ADDED : que cas C2 - "wet points only" il suffit de x2 le terme quadratic a la coast (nn_dynkeg_adv = 2) 
    104104      CASE ( nkeg_C2_wpo )                          !--  Standard scheme  --! 
    105          DO_3D_01_01( 1, jpkm1 ) 
     105         DO_3D( 0, 1, 0, 1, 1, jpkm1 ) 
    106106            zu =  (   puu(ji-1,jj  ,jk,Kmm) * puu(ji-1,jj  ,jk,Kmm)   & 
    107107               &    + puu(ji  ,jj  ,jk,Kmm) * puu(ji  ,jj  ,jk,Kmm)   ) * ( 2._wp - umask(ji-1,jj,jk) * umask(ji,jj,jk) ) 
     
    113113      ! 
    114114      CASE ( nkeg_C2 )                          !--  Standard scheme  --! 
    115          DO_3D_01_01( 1, jpkm1 ) 
     115         DO_3D( 0, 1, 0, 1, 1, jpkm1 ) 
    116116            zu =    puu(ji-1,jj  ,jk,Kmm) * puu(ji-1,jj  ,jk,Kmm)   & 
    117117               &  + puu(ji  ,jj  ,jk,Kmm) * puu(ji  ,jj  ,jk,Kmm) 
     
    121121         END_3D 
    122122      CASE ( nkeg_HW )                          !--  Hollingsworth scheme  --! 
    123          DO_3D_00_00( 1, jpkm1 ) 
     123         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    124124            zu = 8._wp * ( puu(ji-1,jj  ,jk,Kmm) * puu(ji-1,jj  ,jk,Kmm)    & 
    125125               &         + puu(ji  ,jj  ,jk,Kmm) * puu(ji  ,jj  ,jk,Kmm) )  & 
     
    137137      END SELECT  
    138138      ! 
    139       DO_3D_00_00( 1, jpkm1 ) 
     139      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    140140         puu(ji,jj,jk,Krhs) = puu(ji,jj,jk,Krhs) - ( zhke(ji+1,jj  ,jk) - zhke(ji,jj,jk) ) / e1u(ji,jj) 
    141141         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/SWE/dynldf_lap_blp.F90

    r12983 r13295  
    9797            DO jk = 1, jpkm1                                 ! Horizontal slab 
    9898               !                                              
    99                DO_2D_01_01 
     99               DO_2D( 0, 1, 0, 1 ) 
    100100               !                                      ! ahm * e3 * curl  (computed from 1 to jpim1/jpjm1) 
    101101!!gm open question here : e3f  at before or now ?    probably now...  
     
    112112               END_2D 
    113113               ! 
    114                DO_2D_00_00 
     114               DO_2D( 0, 0, 0, 0 ) 
    115115                  pu_rhs(ji,jj,jk) = pu_rhs(ji,jj,jk) + zsign * (                                             & 
    116116                     &              - ( zcur(ji  ,jj) - zcur(ji,jj-1) ) * r1_e2u(ji,jj) / e3u(ji,jj,jk,Kmm)   & 
     
    128128            DO jk = 1, jpkm1                                 ! Horizontal slab 
    129129               ! 
    130                DO_2D_01_01 
     130               DO_2D( 0, 1, 0, 1 ) 
    131131                  !                                      ! shearing stress component (F-point)   NB : ahmf has already been multiplied by fmask 
    132132                  zshe(ji-1,jj-1) = ahmf(ji-1,jj-1,jk)                                                              & 
     
    143143               END_2D 
    144144               ! 
    145                DO_2D_00_00 
     145               DO_2D( 0, 0, 0, 0 ) 
    146146                  pu_rhs(ji,jj,jk) = pu_rhs(ji,jj,jk) + zsign * r1_e1e2u(ji,jj) / e3u(ji,jj,jk,Kmm)                               & 
    147147                     &    * (   (   zten(ji+1,jj  ) * e2t(ji+1,jj  )*e2t(ji+1,jj  ) * e3t(ji+1,jj  ,jk,Kmm)                       & 
     
    164164            DO jk = 1, jpkm1                                 ! Horizontal slab 
    165165               ! 
    166                DO_2D_01_01 
     166               DO_2D( 0, 1, 0, 1 ) 
    167167                  !                                      ! shearing stress component (F-point)   NB : ahmf has already been multiplied by fmask 
    168168                  zshe(ji-1,jj-1) = ahmf(ji-1,jj-1,jk)                                           & 
     
    175175               END_2D 
    176176               ! 
    177                DO_2D_00_00 
     177               DO_2D( 0, 0, 0, 0 ) 
    178178                  pu_rhs(ji,jj,jk) = pu_rhs(ji,jj,jk) + zsign * r1_e1e2u(ji,jj) / e3u(ji,jj,jk,Kmm)   & 
    179179                     &    * (   zten(ji+1,jj  ) * e2t(ji+1,jj  ) * e3t(ji+1,jj  ,jk,Kmm)              & 
  • NEMO/trunk/src/SWE/dynvor.F90

    r12983 r13295  
    232232      CASE ( np_RVO , np_CRV )                  !* relative vorticity at f-point is used 
    233233         DO jk = 1, jpkm1                                ! Horizontal slab 
    234             DO_2D_10_10 
     234            DO_2D( 1, 0, 1, 0 ) 
    235235               zwz(ji,jj,jk) = (  e2v(ji+1,jj) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk)  & 
    236236                  &             - e1u(ji,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
    237237            END_2D 
    238238            IF( ln_dynvor_msk ) THEN                     ! mask relative vorticity  
    239                DO_2D_10_10 
     239               DO_2D( 1, 0, 1, 0 ) 
    240240                  zwz(ji,jj,jk) = zwz(ji,jj,jk) * fmask(ji,jj,jk) 
    241241               END_2D 
     
    255255            zwt(:,:) = ff_t(:,:) * e1e2t(:,:)*e3t(:,:,jk,Kmm) 
    256256         CASE ( np_RVO )                           !* relative vorticity 
    257             DO_2D_01_01 
     257            DO_2D( 0, 1, 0, 1 ) 
    258258               zwt(ji,jj) = r1_4 * (   zwz(ji-1,jj  ,jk) + zwz(ji,jj  ,jk)   & 
    259259                  &                  + zwz(ji-1,jj-1,jk) + zwz(ji,jj-1,jk) ) & 
     
    261261            END_2D 
    262262         CASE ( np_MET )                           !* metric term 
    263             DO_2D_01_01 
     263            DO_2D( 0, 1, 0, 1 ) 
    264264               zwt(ji,jj) = (   ( pv(ji,jj,jk) + pv(ji,jj-1,jk) ) * di_e2u_2(ji,jj)     & 
    265265                  &           - ( pu(ji,jj,jk) + pu(ji-1,jj,jk) ) * dj_e1v_2(ji,jj)   ) & 
     
    267267            END_2D 
    268268         CASE ( np_CRV )                           !* Coriolis + relative vorticity 
    269             DO_2D_01_01 
     269            DO_2D( 0, 1, 0, 1 ) 
    270270               zwt(ji,jj) = (  ff_t(ji,jj) + r1_4 * ( zwz(ji-1,jj  ,jk) + zwz(ji,jj  ,jk)      & 
    271271                  &                                 + zwz(ji-1,jj-1,jk) + zwz(ji,jj-1,jk) )  ) & 
     
    273273            END_2D 
    274274         CASE ( np_CME )                           !* Coriolis + metric 
    275             DO_2D_01_01 
     275            DO_2D( 0, 1, 0, 1 ) 
    276276               zwt(ji,jj) = (  ff_t(ji,jj) * e1e2t(ji,jj)                             & 
    277277                    &        + ( pv(ji,jj,jk) + pv(ji,jj-1,jk) ) * di_e2u_2(ji,jj)    & 
     
    284284         ! 
    285285         !                                   !==  compute and add the vorticity term trend  =! 
    286          DO_2D_00_00 
     286         DO_2D( 0, 0, 0, 0 ) 
    287287            pu_rhs(ji,jj,jk) = pu_rhs(ji,jj,jk) + r1_4 * r1_e1e2u(ji,jj) / e3u(ji,jj,jk,Kmm)                    & 
    288288               &                                * (  zwt(ji+1,jj) * ( pv(ji+1,jj,jk) + pv(ji+1,jj-1,jk) )   & 
     
    344344            zwz(:,:) = ff_f(:,:)  
    345345         CASE ( np_RVO )                           !* relative vorticity 
    346             DO_2D_10_10 
     346            DO_2D( 1, 0, 1, 0 ) 
    347347               zwz(ji,jj) = (  e2v(ji+1,jj  ) * pv(ji+1,jj  ,jk) - e2v(ji,jj) * pv(ji,jj,jk)    & 
    348348                  &          - e1u(ji  ,jj+1) * pu(ji  ,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
    349349            END_2D 
    350350            IF( ln_dynvor_msk ) THEN                     ! mask the relative vorticity 
    351                DO_2D_10_10 
     351               DO_2D( 1, 0, 1, 0 ) 
    352352                  zwz(ji,jj) = zwz(ji,jj) * fmask(ji,jj,jk) 
    353353               END_2D 
    354354            ENDIF 
    355355         CASE ( np_MET )                           !* metric term 
    356             DO_2D_10_10 
     356            DO_2D( 1, 0, 1, 0 ) 
    357357               zwz(ji,jj) = ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    358358                  &       - ( pu(ji  ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
    359359            END_2D 
    360360         CASE ( np_CRV )                           !* Coriolis + relative vorticity 
    361             DO_2D_10_10 
     361            DO_2D( 1, 0, 1, 0 ) 
    362362               zwz(ji,jj) = ff_f(ji,jj) + (  e2v(ji+1,jj) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk)      & 
    363363                  &                        - e1u(ji,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
    364364            END_2D 
    365365            IF( ln_dynvor_msk ) THEN                     ! mask the relative vorticity (NOT the Coriolis term) 
    366                DO_2D_10_10 
     366               DO_2D( 1, 0, 1, 0 ) 
    367367                  zwz(ji,jj) = ( zwz(ji,jj) - ff_f(ji,jj) ) * fmask(ji,jj,jk) + ff_f(ji,jj) 
    368368               END_2D 
    369369            ENDIF 
    370370         CASE ( np_CME )                           !* Coriolis + metric 
    371             DO_2D_10_10 
     371            DO_2D( 1, 0, 1, 0 ) 
    372372               zwz(ji,jj) = ff_f(ji,jj) + ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    373373                  &                     - ( pu(ji  ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
     
    383383         ! 
    384384         !                                   !==  compute and add the vorticity term trend  =! 
    385          DO_2D_00_00 
     385         DO_2D( 0, 0, 0, 0 ) 
    386386            zy1 = zwy(ji,jj-1) + zwy(ji+1,jj-1) 
    387387            zy2 = zwy(ji,jj  ) + zwy(ji+1,jj  ) 
     
    441441            zwz(:,:) = ff_f(:,:)  
    442442         CASE ( np_RVO )                           !* relative vorticity 
    443             DO_2D_10_10 
     443            DO_2D( 1, 0, 1, 0 ) 
    444444               zwz(ji,jj) = (  e2v(ji+1,jj  ) * pv(ji+1,jj  ,jk) - e2v(ji,jj) * pv(ji,jj,jk)    & 
    445445                  &          - e1u(ji  ,jj+1) * pu(ji  ,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
    446446            END_2D 
    447447            IF( ln_dynvor_msk ) THEN                     ! mask the relative vorticity 
    448                DO_2D_10_10 
     448               DO_2D( 1, 0, 1, 0 ) 
    449449                  zwz(ji,jj) = ff_f(ji,jj) * fmask(ji,jj,jk) 
    450450               END_2D 
    451451            ENDIF 
    452452         CASE ( np_MET )                           !* metric term 
    453             DO_2D_10_10 
     453            DO_2D( 1, 0, 1, 0 ) 
    454454               zwz(ji,jj) = ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    455455                  &       - ( pu(ji  ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
    456456            END_2D 
    457457         CASE ( np_CRV )                           !* Coriolis + relative vorticity 
    458             DO_2D_10_10 
     458            DO_2D( 1, 0, 1, 0 ) 
    459459               zwz(ji,jj) = ff_f(ji,jj) + (  e2v(ji+1,jj  ) * pv(ji+1,jj  ,jk) - e2v(ji,jj) * pv(ji,jj,jk)  & 
    460460                  &                        - e1u(ji  ,jj+1) * pu(ji  ,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
    461461            END_2D 
    462462            IF( ln_dynvor_msk ) THEN                     ! mask the relative vorticity (NOT the Coriolis term) 
    463                DO_2D_10_10 
     463               DO_2D( 1, 0, 1, 0 ) 
    464464                  zwz(ji,jj) = ( zwz(ji,jj) - ff_f(ji,jj) ) * fmask(ji,jj,jk) + ff_f(ji,jj) 
    465465               END_2D 
    466466            ENDIF 
    467467         CASE ( np_CME )                           !* Coriolis + metric 
    468             DO_2D_10_10 
     468            DO_2D( 1, 0, 1, 0 ) 
    469469               zwz(ji,jj) = ff_f(ji,jj) + ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    470470                  &                     - ( pu(ji  ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
     
    481481         ! 
    482482         !                                   !==  compute and add the vorticity term trend  =! 
    483          DO_2D_00_00 
     483         DO_2D( 0, 0, 0, 0 ) 
    484484            zuav = r1_8 * r1_e1u(ji,jj) * (  zwy(ji  ,jj-1) + zwy(ji+1,jj-1)  & 
    485485               &                           + zwy(ji  ,jj  ) + zwy(ji+1,jj  )  ) 
     
    539539         SELECT CASE( nn_een_e3f )           ! == reciprocal of e3 at F-point 
    540540         CASE ( 0 )                                   ! original formulation  (masked averaging of e3t divided by 4) 
    541             DO_2D_10_10 
     541            DO_2D( 1, 0, 1, 0 ) 
    542542               ze3f = (  e3t(ji  ,jj+1,jk,Kmm)*tmask(ji  ,jj+1,jk)   & 
    543543                  &    + e3t(ji+1,jj+1,jk,Kmm)*tmask(ji+1,jj+1,jk)   & 
     
    549549            END_2D 
    550550         CASE ( 1 )                                   ! new formulation  (masked averaging of e3t divided by the sum of mask) 
    551             DO_2D_10_10 
     551            DO_2D( 1, 0, 1, 0 ) 
    552552               ze3f = (  e3t(ji  ,jj+1,jk,Kmm)*tmask(ji  ,jj+1,jk)   & 
    553553                  &    + e3t(ji+1,jj+1,jk,Kmm)*tmask(ji+1,jj+1,jk)   & 
     
    564564         SELECT CASE( kvor )                 !==  vorticity considered  ==! 
    565565         CASE ( np_COR )                           !* Coriolis (planetary vorticity) 
    566             DO_2D_10_10 
     566            DO_2D( 1, 0, 1, 0 ) 
    567567               zwz(ji,jj,jk) = ff_f(ji,jj) * z1_e3f(ji,jj) 
    568568            END_2D 
    569569         CASE ( np_RVO )                           !* relative vorticity 
    570             DO_2D_10_10 
     570            DO_2D( 1, 0, 1, 0 ) 
    571571               zwz(ji,jj,jk) = ( e2v(ji+1,jj  ) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk)  & 
    572572                  &            - e1u(ji  ,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) * r1_e1e2f(ji,jj)*z1_e3f(ji,jj) 
    573573            END_2D 
    574574         CASE ( np_MET )                           !* metric term 
    575             DO_2D_10_10 
     575            DO_2D( 1, 0, 1, 0 ) 
    576576               zwz(ji,jj,jk) = (   ( pv(ji+1,jj,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    577577                  &              - ( pu(ji,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj)   ) * z1_e3f(ji,jj) 
    578578            END_2D 
    579579         CASE ( np_CRV )                           !* Coriolis + relative vorticity 
    580             DO_2D_10_10 
     580            DO_2D( 1, 0, 1, 0 ) 
    581581               zwz(ji,jj,jk) = (  ff_f(ji,jj) + (  e2v(ji+1,jj  ) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk)      & 
    582582                  &                              - e1u(ji  ,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  )   & 
     
    584584            END_2D 
    585585         CASE ( np_CME )                           !* Coriolis + metric 
    586             DO_2D_10_10 
     586            DO_2D( 1, 0, 1, 0 ) 
    587587               zwz(ji,jj,jk) = (   ff_f(ji,jj) + ( 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) 
     
    593593         ! 
    594594         IF( ln_dynvor_msk ) THEN          !==  mask/unmask vorticity ==! 
    595             DO_2D_10_10 
     595            DO_2D( 1, 0, 1, 0 ) 
    596596               zwz(ji,jj,jk) = zwz(ji,jj,jk) * fmask(ji,jj,jk) 
    597597            END_2D 
     
    624624            END DO 
    625625         END DO 
    626          DO_2D_00_00 
     626         DO_2D( 0, 0, 0, 0 ) 
    627627            zua = + r1_12 * r1_e1u(ji,jj) * (  ztne(ji,jj  ) * zwy(ji  ,jj  ) + ztnw(ji+1,jj) * zwy(ji+1,jj  )   & 
    628628               &                             + ztse(ji,jj  ) * zwy(ji  ,jj-1) + ztsw(ji+1,jj) * zwy(ji+1,jj-1) ) 
     
    684684         SELECT CASE( kvor )                 !==  vorticity considered  ==! 
    685685         CASE ( np_COR )                           !* Coriolis (planetary vorticity) 
    686             DO_2D_10_10 
     686            DO_2D( 1, 0, 1, 0 ) 
    687687               zwz(ji,jj,jk) = ff_f(ji,jj) 
    688688            END_2D 
    689689         CASE ( np_RVO )                           !* relative vorticity 
    690             DO_2D_10_10 
     690            DO_2D( 1, 0, 1, 0 ) 
    691691               zwz(ji,jj,jk) = (  e2v(ji+1,jj  ) * pv(ji+1,jj  ,jk) - e2v(ji,jj) * pv(ji,jj,jk)    & 
    692692                  &             - e1u(ji  ,jj+1) * pu(ji  ,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) & 
     
    694694            END_2D 
    695695         CASE ( np_MET )                           !* metric term 
    696             DO_2D_10_10 
     696            DO_2D( 1, 0, 1, 0 ) 
    697697               zwz(ji,jj,jk) = ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    698698                  &          - ( pu(ji  ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
    699699            END_2D 
    700700         CASE ( np_CRV )                           !* Coriolis + relative vorticity 
    701             DO_2D_10_10 
     701            DO_2D( 1, 0, 1, 0 ) 
    702702               zwz(ji,jj,jk) = (  ff_f(ji,jj) + (  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_CME )                           !* Coriolis + metric 
    707             DO_2D_10_10 
     707            DO_2D( 1, 0, 1, 0 ) 
    708708               zwz(ji,jj,jk) = ff_f(ji,jj) + ( 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) 
     
    714714         ! 
    715715         IF( ln_dynvor_msk ) THEN          !==  mask/unmask vorticity ==! 
    716             DO_2D_10_10 
     716            DO_2D( 1, 0, 1, 0 ) 
    717717               zwz(ji,jj,jk) = zwz(ji,jj,jk) * fmask(ji,jj,jk) 
    718718            END_2D 
     
    747747            END DO 
    748748         END DO 
    749          DO_2D_00_00 
     749         DO_2D( 0, 0, 0, 0 ) 
    750750            zua = + r1_12 * r1_e1u(ji,jj) * (  ztne(ji,jj  ) * zwy(ji  ,jj  ) + ztnw(ji+1,jj) * zwy(ji+1,jj  )   & 
    751751               &                             + ztse(ji,jj  ) * zwy(ji  ,jj-1) + ztsw(ji+1,jj) * zwy(ji+1,jj-1) ) 
     
    807807      IF(lwp) WRITE(numout,*) '      change fmask value in the angles (T)           ln_vorlat = ', ln_vorlat 
    808808      IF( ln_vorlat .AND. ( ln_dynvor_ene .OR. ln_dynvor_ens .OR. ln_dynvor_mix ) ) THEN 
    809          DO_3D_10_10( 1, jpk ) 
     809         DO_3D( 1, 0, 1, 0, 1, jpk ) 
    810810            IF(    tmask(ji,jj+1,jk) + tmask(ji+1,jj+1,jk)              & 
    811811               & + tmask(ji,jj  ,jk) + tmask(ji+1,jj+1,jk) == 3._wp )   fmask(ji,jj,jk) = 1._wp 
     
    846846         CASE( np_ENT )                      !* T-point metric term :   pre-compute di(e2u)/2 and dj(e1v)/2 
    847847            ALLOCATE( di_e2u_2(jpi,jpj), dj_e1v_2(jpi,jpj) ) 
    848             DO_2D_00_00 
     848            DO_2D( 0, 0, 0, 0 ) 
    849849               di_e2u_2(ji,jj) = ( e2u(ji,jj) - e2u(ji-1,jj  ) ) * 0.5_wp 
    850850               dj_e1v_2(ji,jj) = ( e1v(ji,jj) - e1v(ji  ,jj-1) ) * 0.5_wp 
     
    854854         CASE DEFAULT                        !* F-point metric term :   pre-compute di(e2u)/(2*e1e2f) and dj(e1v)/(2*e1e2f) 
    855855            ALLOCATE( di_e2v_2e1e2f(jpi,jpj), dj_e1u_2e1e2f(jpi,jpj) ) 
    856             DO_2D_10_10 
     856            DO_2D( 1, 0, 1, 0 ) 
    857857               di_e2v_2e1e2f(ji,jj) = ( e2v(ji+1,jj  ) - e2v(ji,jj) )  * 0.5 * r1_e1e2f(ji,jj) 
    858858               dj_e1u_2e1e2f(ji,jj) = ( e1u(ji  ,jj+1) - e1u(ji,jj) )  * 0.5 * r1_e1e2f(ji,jj) 
  • NEMO/trunk/src/SWE/ldfdyn.F90

    r12983 r13295  
    312312            IF( ierr /= 0 )   CALL ctl_stop( 'STOP', 'ldf_dyn_init: failed to allocate Smagorinsky arrays') 
    313313            ! 
    314             DO_2D_11_11 
     314            DO_2D( 1, 1, 1, 1 ) 
    315315               esqt(ji,jj) = ( 2._wp * e1e2t(ji,jj) / ( e1t(ji,jj) + e2t(ji,jj) ) )**2  
    316316               esqf(ji,jj) = ( 2._wp * e1e2f(ji,jj) / ( e1f(ji,jj) + e2f(ji,jj) ) )**2  
     
    396396         IF( ln_dynldf_lap   ) THEN        ! laplacian operator : |u| e /12 = |u/144| e 
    397397            DO jk = 1, jpkm1 
    398                DO_2D_00_00 
     398               DO_2D( 0, 0, 0, 0 ) 
    399399                  zu2pv2_ij    = uu(ji  ,jj  ,jk,Kbb) * uu(ji  ,jj  ,jk,Kbb) + vv(ji  ,jj  ,jk,Kbb) * vv(ji  ,jj  ,jk,Kbb) 
    400400                  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) 
     
    402402                  ahmt(ji,jj,jk) = SQRT( (zu2pv2_ij + zu2pv2_ij_m1) * r1_288 ) * zemax * tmask(ji,jj,jk)      ! 288= 12*12 * 2 
    403403               END_2D 
    404                DO_2D_10_10 
     404               DO_2D( 1, 0, 1, 0 ) 
    405405                  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) 
    406406                  zu2pv2_ij    = uu(ji  ,jj  ,jk, Kbb) * uu(ji  ,jj  ,jk, Kbb) + vv(ji  ,jj  ,jk, Kbb) * vv(ji  ,jj  ,jk, Kbb) 
     
    411411         ELSEIF( ln_dynldf_blp ) THEN      ! bilaplacian operator : sqrt( |u| e^3 /12 ) = sqrt( |u/144| e ) * e 
    412412            DO jk = 1, jpkm1 
    413                DO_2D_00_00 
     413               DO_2D( 0, 0, 0, 0 ) 
    414414                  zu2pv2_ij    = uu(ji  ,jj  ,jk,Kbb) * uu(ji  ,jj  ,jk,Kbb) + vv(ji  ,jj  ,jk,Kbb) * vv(ji  ,jj  ,jk,Kbb) 
    415415                  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) 
     
    417417                  ahmt(ji,jj,jk) = SQRT(  SQRT( (zu2pv2_ij + zu2pv2_ij_m1) * r1_288 ) * zemax  ) * zemax * tmask(ji,jj,jk) 
    418418               END_2D 
    419                DO_2D_10_10 
     419               DO_2D( 1, 0, 1, 0 ) 
    420420                  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) 
    421421                  zu2pv2_ij    = uu(ji  ,jj  ,jk, Kbb) * uu(ji  ,jj  ,jk, Kbb) + vv(ji  ,jj  ,jk, Kbb) * vv(ji  ,jj  ,jk, Kbb) 
     
    440440            DO jk = 1, jpkm1 
    441441               ! 
    442                DO_2D_00_00 
     442               DO_2D( 0, 0, 0, 0 ) 
    443443                  zdb =    ( uu(ji,jj,jk,Kbb) * r1_e2u(ji,jj) -  uu(ji-1,jj,jk,Kbb) * r1_e2u(ji-1,jj) )  & 
    444444                       &                      * r1_e1t(ji,jj) * e2t(ji,jj)                           & 
     
    448448               END_2D 
    449449               ! 
    450                DO_2D_10_10 
     450               DO_2D( 1, 0, 1, 0 ) 
    451451                  zdb =   (  uu(ji,jj+1,jk,Kbb) * r1_e1u(ji,jj+1) -  uu(ji,jj,jk,Kbb) * r1_e1u(ji,jj) )  & 
    452452                       &                        * r1_e2f(ji,jj)   * e1f(ji,jj)                       & 
     
    462462            DO jk = 1, jpkm1 
    463463              ! 
    464                DO_2D_00_00 
     464               DO_2D( 0, 0, 0, 0 ) 
    465465                  ! 
    466466                  zu2pv2_ij    = uu(ji  ,jj  ,jk,Kbb) * uu(ji  ,jj  ,jk,Kbb) + vv(ji  ,jj  ,jk,Kbb) * vv(ji  ,jj  ,jk,Kbb) 
     
    476476               END_2D 
    477477               ! 
    478                DO_2D_10_10 
     478               DO_2D( 1, 0, 1, 0 ) 
    479479                  ! 
    480480                  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) 
     
    499499            !                          ! effective default limits are 1/12 |U|L^3 < B_hm < 1//(32*2dt) L^4 
    500500            DO jk = 1, jpkm1 
    501                DO_2D_00_00 
     501               DO_2D( 0, 0, 0, 0 ) 
    502502                  ahmt(ji,jj,jk) = SQRT( r1_8 * esqt(ji,jj) * ahmt(ji,jj,jk) ) 
    503503               END_2D 
    504                DO_2D_10_10 
     504               DO_2D( 1, 0, 1, 0 ) 
    505505                  ahmf(ji,jj,jk) = SQRT( r1_8 * esqf(ji,jj) * ahmf(ji,jj,jk) ) 
    506506               END_2D 
  • NEMO/trunk/src/SWE/sbcice_cice.F90

    r12983 r13295  
    219219! T point to U point 
    220220! T point to V point 
    221       DO_2D_10_10 
     221      DO_2D( 1, 0, 1, 0 ) 
    222222         fr_iu(ji,jj)=0.5*(fr_i(ji,jj)+fr_i(ji+1,jj))*umask(ji,jj,1) 
    223223         fr_iv(ji,jj)=0.5*(fr_i(ji,jj)+fr_i(ji,jj+1))*vmask(ji,jj,1) 
     
    316316! x comp of wind stress (CI_1) 
    317317! U point to F point 
    318          DO_2D_10_11 
     318         DO_2D( 1, 0, 1, 1 ) 
    319319            ztmp(ji,jj) = 0.5 * (  fr_iu(ji,jj) * utau(ji,jj)      & 
    320320                                 + fr_iu(ji,jj+1) * utau(ji,jj+1) ) * fmask(ji,jj,1) 
     
    324324! y comp of wind stress (CI_2) 
    325325! V point to F point 
    326          DO_2D_11_10 
     326         DO_2D( 1, 1, 1, 0 ) 
    327327            ztmp(ji,jj) = 0.5 * (  fr_iv(ji,jj) * vtau(ji,jj)      & 
    328328                                 + fr_iv(ji+1,jj) * vtau(ji+1,jj) ) * fmask(ji,jj,1) 
     
    339339            qla_ice(:,:,1)= - ( emp_ice(:,:)+sprecip(:,:) ) * rLsub 
    340340! End of temporary code 
    341             DO_2D_11_11 
     341            DO_2D( 1, 1, 1, 1 ) 
    342342               IF(fr_i(ji,jj).eq.0.0) THEN 
    343343                  DO jl=1,ncat 
     
    441441! x comp and y comp of surface ocean current 
    442442! U point to F point 
    443       DO_2D_10_11 
     443      DO_2D( 1, 0, 1, 1 ) 
    444444         ztmp(ji,jj)=0.5*(ssu_m(ji,jj)+ssu_m(ji,jj+1))*fmask(ji,jj,1) 
    445445      END_2D 
     
    447447 
    448448! V point to F point 
    449       DO_2D_11_10 
     449      DO_2D( 1, 1, 1, 0 ) 
    450450         ztmp(ji,jj)=0.5*(ssv_m(ji,jj)+ssv_m(ji+1,jj))*fmask(ji,jj,1) 
    451451      END_2D 
     
    471471! x comp and y comp of sea surface slope (on F points) 
    472472! T point to F point 
    473       DO_2D_10_10 
     473      DO_2D( 1, 0, 1, 0 ) 
    474474         ztmp(ji,jj)=0.5 * (  (zpice(ji+1,jj  )-zpice(ji,jj  )) * r1_e1u(ji,jj  )    & 
    475475            &               + (zpice(ji+1,jj+1)-zpice(ji,jj+1)) * r1_e1u(ji,jj+1)  ) * fmask(ji,jj,1) 
     
    478478 
    479479! T point to F point 
    480       DO_2D_10_10 
     480      DO_2D( 1, 0, 1, 0 ) 
    481481         ztmp(ji,jj)=0.5 * (  (zpice(ji  ,jj+1)-zpice(ji  ,jj)) * r1_e2v(ji  ,jj)    & 
    482482            &               + (zpice(ji+1,jj+1)-zpice(ji+1,jj)) * r1_e2v(ji+1,jj)  ) *  fmask(ji,jj,1) 
     
    507507      ss_iou(:,:)=0.0 
    508508! F point to U point 
    509       DO_2D_00_00 
     509      DO_2D( 0, 0, 0, 0 ) 
    510510         ss_iou(ji,jj) = 0.5 * ( ztmp1(ji,jj-1) + ztmp1(ji,jj) ) * umask(ji,jj,1) 
    511511      END_2D 
     
    517517! F point to V point 
    518518 
    519       DO_2D_10_00 
     519      DO_2D( 1, 0, 0, 0 ) 
    520520         ss_iov(ji,jj) = 0.5 * ( ztmp1(ji-1,jj) + ztmp1(ji,jj) ) * vmask(ji,jj,1) 
    521521      END_2D 
     
    601601      CALL lbc_lnk( 'sbcice_cice', qsr , 'T', 1. ) 
    602602 
    603       DO_2D_11_11 
     603      DO_2D( 1, 1, 1, 1 ) 
    604604         nfrzmlt(ji,jj)=MAX(nfrzmlt(ji,jj),0.0) 
    605605      END_2D 
     
    625625! T point to U point 
    626626! T point to V point 
    627       DO_2D_10_10 
     627      DO_2D( 1, 0, 1, 0 ) 
    628628         fr_iu(ji,jj)=0.5*(fr_i(ji,jj)+fr_i(ji+1,jj))*umask(ji,jj,1) 
    629629         fr_iv(ji,jj)=0.5*(fr_i(ji,jj)+fr_i(ji,jj+1))*vmask(ji,jj,1) 
     
    985985 
    986986      pn(:,:)=0.0 
    987       DO_2D_10_10 
     987      DO_2D( 1, 0, 1, 0 ) 
    988988         pn(ji,jj)=pc(ji+1-ji_off,jj+1-jj_off,1) 
    989989      END_2D 
  • NEMO/trunk/src/SWE/step.F90

    r12983 r13295  
    148148 
    149149!!an - calcul du gradient de pression horizontal (explicit) 
    150       DO_3D_00_00( 1, jpkm1 ) 
     150      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    151151         uu(ji,jj,jk,Nrhs) = uu(ji,jj,jk,Nrhs) - grav * ( ssh(ji+1,jj,Nnn) - ssh(ji,jj,Nnn) ) * r1_e1u(ji,jj) 
    152152         vv(ji,jj,jk,Nrhs) = vv(ji,jj,jk,Nrhs) - grav * ( ssh(ji,jj+1,Nnn) - ssh(ji,jj,Nnn) ) * r1_e2v(ji,jj) 
     
    155155      ! add wind stress forcing and layer linear friction to the RHS  
    156156      z1_2rho0 = 0.5_wp * r1_rho0 
    157       DO_3D_00_00(1,jpkm1) 
     157      DO_3D( 0, 0, 0, 0,1,jpkm1) 
    158158         uu(ji,jj,jk,Nrhs) = uu(ji,jj,jk,Nrhs) + z1_2rho0 * ( utau_b(ji,jj) + utau(ji,jj) ) / e3u(ji,jj,jk,Nnn)   & 
    159159            &                                  - rn_rfr * uu(ji,jj,jk,Nbb) 
     
    172172      IF( ln_dynadv_vec ) THEN      ! vector invariant form : applied on velocity 
    173173         IF( l_1st_euler ) THEN           ! Euler time stepping (no Asselin filter) 
    174             DO_3D_00_00(1,jpkm1) 
     174            DO_3D( 0, 0, 0, 0,1,jpkm1) 
    175175               uu(ji,jj,jk,Naa) = uu(ji,jj,jk,Nbb) + rDt * uu(ji,jj,jk,Nrhs) * umask(ji,jj,jk) 
    176176               vv(ji,jj,jk,Naa) = vv(ji,jj,jk,Nbb) + rDt * vv(ji,jj,jk,Nrhs) * vmask(ji,jj,jk) 
    177177             END_3D           
    178178         ELSE                             ! Leap Frog time stepping + Asselin filter          
    179             DO_3D_11_11(1,jpkm1) 
     179            DO_3D( 1, 1, 1, 1,1,jpkm1) 
    180180               zua = uu(ji,jj,jk,Nbb) + rDt * uu(ji,jj,jk,Nrhs) * umask(ji,jj,jk) 
    181181               zva = vv(ji,jj,jk,Nbb) + rDt * vv(ji,jj,jk,Nrhs) * vmask(ji,jj,jk) 
     
    199199      ELSE                          ! flux form : applied on thickness weighted velocity 
    200200         IF( l_1st_euler ) THEN           ! Euler time stepping (no Asselin filter) 
    201             DO_3D_00_00(1,jpkm1) 
     201            DO_3D( 0, 0, 0, 0,1,jpkm1) 
    202202               zue3b = e3u(ji,jj,jk,Nbb) * uu(ji,jj,jk,Nbb) 
    203203               zve3b = e3v(ji,jj,jk,Nbb) * vv(ji,jj,jk,Nbb) 
     
    210210            END_3D 
    211211         ELSE                             ! Leap Frog time stepping + Asselin filter 
    212             DO_3D_11_11(1,jpkm1) 
     212            DO_3D( 1, 1, 1, 1,1,jpkm1) 
    213213               zue3n = e3u(ji,jj,jk,Nnn) * uu(ji,jj,jk,Nnn) 
    214214               zve3n = e3v(ji,jj,jk,Nnn) * vv(ji,jj,jk,Nnn) 
  • NEMO/trunk/src/SWE/stepLF.F90

    r12983 r13295  
    146146      !IF( .NOT.ln_linssh )  CALL dom_vvl_sf_nxt_st( kstp, Nbb, Nnn,      Naa )    ! after vertical scale factors  
    147147!!an - calcul du gradient de pression horizontal (explicit) 
    148       DO_3D_00_00( 1, jpkm1 ) 
     148      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    149149         uu(ji,jj,jk,Nrhs) = uu(ji,jj,jk,Nrhs) - grav * ( ssh(ji+1,jj,Nnn) - ssh(ji,jj,Nnn) ) * r1_e1u(ji,jj) 
    150150         vv(ji,jj,jk,Nrhs) = vv(ji,jj,jk,Nrhs) - grav * ( ssh(ji,jj+1,Nnn) - ssh(ji,jj,Nnn) ) * r1_e2v(ji,jj) 
     
    153153      ! add wind stress forcing and layer linear friction to the RHS  
    154154      z1_2rho0 = 0.5_wp * r1_rho0 
    155       DO_3D_00_00(1,jpkm1) 
     155      DO_3D( 0, 0, 0, 0,1,jpkm1) 
    156156         uu(ji,jj,jk,Nrhs) = uu(ji,jj,jk,Nrhs) + z1_2rho0 * ( utau_b(ji,jj) + utau(ji,jj) ) / e3u(ji,jj,jk,Nnn)   & 
    157157            &                                  - rn_rfr * uu(ji,jj,jk,Nbb) 
     
    176176      IF( ln_dynadv_vec ) THEN      ! vector invariant form : applied on velocity 
    177177         IF( l_1st_euler ) THEN           ! Euler time stepping (no Asselin filter) 
    178             DO_3D_00_00(1,jpkm1) 
     178            DO_3D( 0, 0, 0, 0,1,jpkm1) 
    179179               uu(ji,jj,jk,Naa) = uu(ji,jj,jk,Nbb) + rDt * uu(ji,jj,jk,Nrhs) * umask(ji,jj,jk) 
    180180               vv(ji,jj,jk,Naa) = vv(ji,jj,jk,Nbb) + rDt * vv(ji,jj,jk,Nrhs) * vmask(ji,jj,jk) 
    181181             END_3D           
    182182         ELSE                             ! Leap Frog time stepping + Asselin filter          
    183             DO_3D_11_11(1,jpkm1) 
     183            DO_3D( 1, 1, 1, 1,1,jpkm1) 
    184184               zua = uu(ji,jj,jk,Nbb) + rDt * uu(ji,jj,jk,Nrhs) * umask(ji,jj,jk) 
    185185               zva = vv(ji,jj,jk,Nbb) + rDt * vv(ji,jj,jk,Nrhs) * vmask(ji,jj,jk) 
     
    203203      ELSE                          ! flux form : applied on thickness weighted velocity 
    204204         IF( l_1st_euler ) THEN           ! Euler time stepping (no Asselin filter) 
    205             DO_3D_00_00(1,jpkm1) 
     205            DO_3D( 0, 0, 0, 0,1,jpkm1) 
    206206               zue3b = e3u(ji,jj,jk,Nbb) * uu(ji,jj,jk,Nbb) 
    207207               zve3b = e3v(ji,jj,jk,Nbb) * vv(ji,jj,jk,Nbb) 
     
    215215         ELSE                             ! Leap Frog time stepping + Asselin filter 
    216216            CALL dom_qco_r3c( ssh(:,:,Nnn), r3t_f(:,:), r3u_f(:,:), r3v_f(:,:) )   ! "now" ssh/h_0 ratio from filtrered ssh 
    217             DO_3D_11_11(1,jpkm1) 
     217            DO_3D( 1, 1, 1, 1,1,jpkm1) 
    218218               zue3n = e3u(ji,jj,jk,Nnn) * uu(ji,jj,jk,Nnn) 
    219219               zve3n = e3v(ji,jj,jk,Nnn) * vv(ji,jj,jk,Nnn) 
  • NEMO/trunk/src/SWE/stpRK3.F90

    r12983 r13295  
    145145      ! 
    146146!!an - calcul du gradient de pression horizontal (explicit) 
    147       DO_3D_00_00( 1, jpkm1 ) 
     147      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    148148         uu(ji,jj,jk,Nrhs) = uu(ji,jj,jk,Nrhs) - grav * ( ssh(ji+1,jj,Nbb) - ssh(ji,jj,Nbb) ) * r1_e1u(ji,jj) 
    149149         vv(ji,jj,jk,Nrhs) = vv(ji,jj,jk,Nrhs) - grav * ( ssh(ji,jj+1,Nbb) - ssh(ji,jj,Nbb) ) * r1_e2v(ji,jj) 
     
    153153      ! add wind stress forcing and layer linear friction to the RHS  
    154154      z5_6 = 5._wp/6._wp 
    155       DO_3D_00_00(1,jpkm1) 
     155      DO_3D( 0, 0, 0, 0,1,jpkm1) 
    156156         uu(ji,jj,jk,Nrhs) = uu(ji,jj,jk,Nrhs) + r1_rho0 * ( z5_6*utau_b(ji,jj) + (1._wp - z5_6)*utau(ji,jj) ) / e3u(ji,jj,jk,Nbb)   & 
    157157            &                                  - rn_rfr * uu(ji,jj,jk,Nbb) 
     
    163163                            CALL dom_qco_r3c   ( ssh(:,:,Naa), r3t(:,:,Naa), r3u(:,:,Naa), r3v(:,:,Naa), r3f(:,:) )   ! "after" ssh./h._0 ratio explicit 
    164164      IF( ln_dynadv_vec ) THEN      ! vector invariant form : applied on velocity 
    165          DO_3D_00_00(1,jpkm1) 
     165         DO_3D( 0, 0, 0, 0,1,jpkm1) 
    166166            uu(ji,jj,jk,Naa) = uu(ji,jj,jk,Nbb) + rDt * uu(ji,jj,jk,Nrhs) * umask(ji,jj,jk) 
    167167            vv(ji,jj,jk,Naa) = vv(ji,jj,jk,Nbb) + rDt * vv(ji,jj,jk,Nrhs) * vmask(ji,jj,jk) 
    168168         END_3D           
    169169      ELSE 
    170          DO_3D_00_00(1,jpkm1)       ! flux form : applied on thickness weighted velocity 
     170         DO_3D( 0, 0, 0, 0,1,jpkm1)       ! flux form : applied on thickness weighted velocity 
    171171            uu(ji,jj,jk,Naa) = (         uu(ji,jj,jk,Nbb )*e3u(ji,jj,jk,Nbb)                              & 
    172172               &                 + rDt * uu(ji,jj,jk,Nrhs)*e3t(ji,jj,jk,Nbb) * umask(ji,jj,jk)        )   & 
     
    203203      ! 
    204204!!an - calcul du gradient de pression horizontal (explicit) 
    205       DO_3D_00_00( 1, jpkm1 ) 
     205      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    206206         uu(ji,jj,jk,Nrhs) = uu(ji,jj,jk,Nrhs) - grav * ( ssh(ji+1,jj,Nnn) - ssh(ji,jj,Nnn) ) * r1_e1u(ji,jj) 
    207207         vv(ji,jj,jk,Nrhs) = vv(ji,jj,jk,Nrhs) - grav * ( ssh(ji,jj+1,Nnn) - ssh(ji,jj,Nnn) ) * r1_e2v(ji,jj) 
     
    211211#if defined key_RK3all 
    212212      z3_4 = 3._wp/4._wp 
    213       DO_3D_00_00(1,jpkm1) 
     213      DO_3D( 0, 0, 0, 0,1,jpkm1) 
    214214         uu(ji,jj,jk,Nrhs) = uu(ji,jj,jk,Nrhs) + r1_rho0 * ( z3_4*utau_b(ji,jj) + (1._wp - z3_4)*utau(ji,jj) ) / e3u(ji,jj,jk,Nbb)   & 
    215215            &                                  - rn_rfr * uu(ji,jj,jk,Nbb) 
     
    221221                           CALL dom_qco_r3c   ( ssh(:,:,Naa), r3t(:,:,Naa), r3u(:,:,Naa), r3v(:,:,Naa), r3f(:,:) )   ! "after" ssh./h._0 ratio explicit 
    222222      IF( ln_dynadv_vec ) THEN      ! vector invariant form : applied on velocity 
    223          DO_3D_00_00(1,jpkm1) 
     223         DO_3D( 0, 0, 0, 0,1,jpkm1) 
    224224            uu(ji,jj,jk,Naa) = uu(ji,jj,jk,Nbb) + rDt * uu(ji,jj,jk,Nrhs) * umask(ji,jj,jk) 
    225225            vv(ji,jj,jk,Naa) = vv(ji,jj,jk,Nbb) + rDt * vv(ji,jj,jk,Nrhs) * vmask(ji,jj,jk) 
    226226         END_3D           
    227227      ELSE 
    228          DO_3D_00_00(1,jpkm1)       ! flux form : applied on thickness weighted velocity 
     228         DO_3D( 0, 0, 0, 0,1,jpkm1)       ! flux form : applied on thickness weighted velocity 
    229229            uu(ji,jj,jk,Naa) = (         uu(ji,jj,jk,Nbb )*e3u(ji,jj,jk,Nbb)                              & 
    230230               &                 + rDt * uu(ji,jj,jk,Nrhs)*e3t(ji,jj,jk,Nnn) * umask(ji,jj,jk)        )   & 
     
    264264 
    265265!!an - calcul du gradient de pression horizontal (explicit) 
    266       DO_3D_00_00( 1, jpkm1 ) 
     266      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    267267         uu(ji,jj,jk,Nrhs) = uu(ji,jj,jk,Nrhs) - grav * ( ssh(ji+1,jj,Nnn) - ssh(ji,jj,Nnn) ) * r1_e1u(ji,jj) 
    268268         vv(ji,jj,jk,Nrhs) = vv(ji,jj,jk,Nrhs) - grav * ( ssh(ji,jj+1,Nnn) - ssh(ji,jj,Nnn) ) * r1_e2v(ji,jj) 
     
    271271      ! add wind stress forcing and layer linear friction to the RHS  
    272272      z1_2rho0 = 0.5_wp * r1_rho0 
    273       DO_3D_00_00(1,jpkm1) 
     273      DO_3D( 0, 0, 0, 0,1,jpkm1) 
    274274         uu(ji,jj,jk,Nrhs) = uu(ji,jj,jk,Nrhs) + z1_2rho0 * ( utau_b(ji,jj) + utau(ji,jj) ) / e3u(ji,jj,jk,Nnn)   & 
    275275            &                                  - rn_rfr * uu(ji,jj,jk,Nbb) 
     
    280280                            CALL dom_qco_r3c   ( ssh(:,:,Naa), r3t(:,:,Naa), r3u(:,:,Naa), r3v(:,:,Naa), r3f(:,:) )   ! "after" ssh./h._0 ratio explicit       
    281281      IF( ln_dynadv_vec ) THEN      ! vector invariant form : applied on velocity 
    282          DO_3D_11_11(1,jpkm1) 
     282         DO_3D( 1, 1, 1, 1,1,jpkm1) 
    283283            zua = uu(ji,jj,jk,Nbb) + rDt * uu(ji,jj,jk,Nrhs) * umask(ji,jj,jk) 
    284284            zva = vv(ji,jj,jk,Nbb) + rDt * vv(ji,jj,jk,Nrhs) * vmask(ji,jj,jk) 
     
    292292         ! 
    293293      ELSE                          ! flux form : applied on thickness weighted velocity 
    294          DO_3D_11_11(1,jpkm1) 
     294         DO_3D( 1, 1, 1, 1,1,jpkm1) 
    295295            zue3n = e3u(ji,jj,jk,Nnn) * uu(ji,jj,jk,Nnn) 
    296296            zve3n = e3v(ji,jj,jk,Nnn) * vv(ji,jj,jk,Nnn) 
  • NEMO/trunk/src/TOP/C14/trcatm_c14.F90

    r12489 r13295  
    120120            IF( ierr3 /= 0 )   CALL ctl_stop( 'STOP', 'trc_atm_c14_ini: unable to allocate fareaz' ) 
    121121      ! 
    122             DO_2D_11_11 
     122            DO_2D( 1, 1, 1, 1 ) 
    123123              IF( gphit(ji,jj) >= yn40 ) THEN 
    124124                 fareaz(ji,jj,1) = 0. 
  • NEMO/trunk/src/TOP/C14/trcsms_c14.F90

    r13237 r13295  
    8181      ! ------------------------------------------------------------------- 
    8282 
    83       DO_2D_11_11 
     83      DO_2D( 1, 1, 1, 1 ) 
    8484         IF( tmask(ji,jj,1) >  0. ) THEN 
    8585            ! 
     
    128128      ! 
    129129      ! Add the surface flux to the trend of jp_c14 
    130       DO_2D_11_11 
     130      DO_2D( 1, 1, 1, 1 ) 
    131131         tr(ji,jj,1,jp_c14,Krhs) = tr(ji,jj,1,jp_c14,Krhs) + qtr_c14(ji,jj) / e3t(ji,jj,1,Kmm)  
    132132      END_2D 
    133133      ! 
    134134      ! Computation of decay effects on jp_c14 
    135       DO_3D_11_11( 1, jpk ) 
     135      DO_3D( 1, 1, 1, 1, 1, jpk ) 
    136136         ! 
    137137         tr(ji,jj,jk,jp_c14,Krhs) = tr(ji,jj,jk,jp_c14,Krhs) - rlam14 * tr(ji,jj,jk,jp_c14,Kbb) * tmask(ji,jj,jk)  
  • NEMO/trunk/src/TOP/C14/trcwri_c14.F90

    r12377 r13295  
    6060         zz3d(:,:,:) = 0._wp 
    6161         ! 
    62          DO_3D_11_11( 1, jpkm1 ) 
     62         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    6363            IF( tmask(ji,jj,jk) > 0._wp) THEN 
    6464               z3d (ji,jj,jk) = tr(ji,jj,jk,jp_c14,Kmm) 
     
    7171         z2d(:,:) =0._wp 
    7272         jk = 1 
    73          DO_2D_11_11 
     73         DO_2D( 1, 1, 1, 1 ) 
    7474            ztemp = zres(ji,jj) / c14sbc(ji,jj) 
    7575            IF( ztemp > 0._wp .AND. tmask(ji,jj,jk) > 0._wp ) z2d(ji,jj) = LOG( ztemp ) 
  • NEMO/trunk/src/TOP/CFC/trcini_cfc.F90

    r12377 r13295  
    132132      !--------------------------------------------------------------------------------------- 
    133133      zyd = ylatn - ylats       
    134       DO_2D_11_11 
     134      DO_2D( 1, 1, 1, 1 ) 
    135135         IF(     gphit(ji,jj) >= ylatn ) THEN   ;   xphem(ji,jj) = 1.e0 
    136136         ELSEIF( gphit(ji,jj) <= ylats ) THEN   ;   xphem(ji,jj) = 0.e0 
  • NEMO/trunk/src/TOP/CFC/trcsms_cfc.F90

    r13286 r13295  
    126126          
    127127         !                                                         !------------! 
    128          DO_2D_11_11 
     128         DO_2D( 1, 1, 1, 1 ) 
    129129  
    130130            ! space interpolation 
  • NEMO/trunk/src/TOP/PISCES/P2Z/p2zbio.F90

    r13286 r13295  
    122122      DO jk = 1, jpkbm1                      !  Upper ocean (bio-layers)  ! 
    123123         !                                   ! -------------------------- ! 
    124          DO_2D_00_00 
     124         DO_2D( 0, 0, 0, 0 ) 
    125125            ! trophic variables( det, zoo, phy, no3, nh4, dom) 
    126126            ! ------------------------------------------------ 
     
    242242      DO jk = jpkb, jpkm1                    !  Upper ocean (bio-layers)  ! 
    243243         !                                   ! -------------------------- ! 
    244          DO_2D_00_00 
     244         DO_2D( 0, 0, 0, 0 ) 
    245245            ! remineralisation of all quantities towards nitrate  
    246246 
  • NEMO/trunk/src/TOP/PISCES/P2Z/p2zexp.F90

    r13286 r13295  
    8282      ! LAYERS IS DETERMINED BY DMIN3 DEFINED IN sms_p2z.F90 
    8383      ! ---------------------------------------------------------------------- 
    84       DO_3D_00_00( 1, jpkm1 ) 
     84      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    8585         ze3t = 1. / e3t(ji,jj,jk,Kmm) 
    8686         tr(ji,jj,jk,jpno3,Krhs) = tr(ji,jj,jk,jpno3,Krhs) + ze3t * dmin3(ji,jj,jk) * xksi(ji,jj) 
     
    9393      zgeolpoc = 0.e0         !     Initialization 
    9494      ! Release of nutrients from the "simple" sediment 
    95       DO_2D_00_00 
     95      DO_2D( 0, 0, 0, 0 ) 
    9696         ikt = mbkt(ji,jj)  
    9797         tr(ji,jj,ikt,jpno3,Krhs) = tr(ji,jj,ikt,jpno3,Krhs) + sedlam * sedpocn(ji,jj) / e3t(ji,jj,ikt,Kmm)  
     
    103103      END_2D 
    104104 
    105       DO_2D_00_00 
     105      DO_2D( 0, 0, 0, 0 ) 
    106106         tr(ji,jj,1,jpno3,Krhs) = tr(ji,jj,1,jpno3,Krhs) + zgeolpoc * cmask(ji,jj) / areacot / e3t(ji,jj,1,Kmm) 
    107107      END_2D 
     
    121121      ELSE 
    122122        ! 
    123         DO_2D_11_11 
     123        DO_2D( 1, 1, 1, 1 ) 
    124124           zsedpocd = zsedpoca(ji,jj) - 2. * sedpocn(ji,jj) + sedpocb(ji,jj)      ! time laplacian on tracers 
    125125           sedpocb(ji,jj) = sedpocn(ji,jj) + rn_atfp * zsedpocd                     ! sedpocb <-- filtered sedpocn 
     
    174174      zdm0 = 0._wp 
    175175      zrro = 1._wp 
    176       DO_3D_11_11( jpkb, jpkm1 ) 
     176      DO_3D( 1, 1, 1, 1, jpkb, jpkm1 ) 
    177177         zfluo = ( gdepw(ji,jj,jk  ,Kmm) / gdepw(ji,jj,jpkb,Kmm) )**xhr 
    178178         zfluu = ( gdepw(ji,jj,jk+1,Kmm) / gdepw(ji,jj,jpkb,Kmm) )**xhr 
     
    191191      dminl(:,:)   = 0._wp 
    192192      dmin3(:,:,:) = zdm0 
    193       DO_3D_11_11( 1, jpk ) 
     193      DO_3D( 1, 1, 1, 1, 1, jpk ) 
    194194         IF( tmask(ji,jj,jk) == 0._wp ) THEN 
    195195            dminl(ji,jj) = dminl(ji,jj) + dmin3(ji,jj,jk) 
     
    198198      END_3D 
    199199 
    200       DO_2D_11_11 
     200      DO_2D( 1, 1, 1, 1 ) 
    201201         IF( tmask(ji,jj,1) == 0 )   dmin3(ji,jj,1) = 0._wp 
    202202      END_2D 
     
    204204      ! Coastal mask  
    205205      cmask(:,:) = 0._wp 
    206       DO_2D_00_00 
     206      DO_2D( 0, 0, 0, 0 ) 
    207207         IF( tmask(ji,jj,1) /= 0. ) THEN 
    208208            zmaskt = tmask(ji+1,jj,1) * tmask(ji-1,jj,1) * tmask(ji,jj+1,1) * tmask(ji,jj-1,1)  
  • NEMO/trunk/src/TOP/PISCES/P2Z/p2zopt.F90

    r13286 r13295  
    9595      !                                          ! Photosynthetically Available Radiation (PAR) 
    9696      zcoef = 12 * redf / rcchl / rpig           ! -------------------------------------- 
    97       DO_3D_11_11( 2, jpk ) 
     97      DO_3D( 1, 1, 1, 1, 2, jpk ) 
    9898         zpig = LOG(  MAX( TINY(0.), tr(ji,jj,jk-1,jpphy,Kmm) ) * zcoef  ) 
    9999         zkr  = xkr0 + xkrp * EXP( xlr * zpig ) 
     
    102102         zparg(ji,jj,jk) = zparg(ji,jj,jk-1) * EXP( -zkg * e3t(ji,jj,jk-1,Kmm) ) 
    103103      END_3D 
    104       DO_3D_11_11( 1, jpkm1 ) 
     104      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    105105         zpig = LOG(  MAX( TINY(0.), tr(ji,jj,jk,jpphy,Kmm) ) * zcoef  ) 
    106106         zkr  = xkr0 + xkrp * EXP( xlr * zpig ) 
     
    114114      !                                          ! -------------- 
    115115      neln(:,:) = 1                                   ! euphotic layer level 
    116       DO_3D_11_11( 1, jpkm1 ) 
     116      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    117117        IF( etot(ji,jj,jk) >= zpar100(ji,jj) )   neln(ji,jj) = jk + 1  
    118118      END_3D 
    119119      !                                               ! Euphotic layer depth 
    120       DO_2D_11_11 
     120      DO_2D( 1, 1, 1, 1 ) 
    121121         heup(ji,jj) = gdepw(ji,jj,neln(ji,jj),Kmm) 
    122122      END_2D 
  • NEMO/trunk/src/TOP/PISCES/P2Z/p2zsed.F90

    r13286 r13295  
    8989 
    9090      ! tracer flux divergence at t-point added to the general trend 
    91       DO_3D_11_11( 1, jpkm1 ) 
     91      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    9292         ztra(ji,jj,jk)  = - ( zwork(ji,jj,jk) - zwork(ji,jj,jk+1) ) / e3t(ji,jj,jk,Kmm) 
    9393         tr(ji,jj,jk,jpdet,Krhs) = tr(ji,jj,jk,jpdet,Krhs) + ztra(ji,jj,jk)  
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zagg.F90

    r13286 r13295  
    6060      IF( ln_p4z ) THEN 
    6161         ! 
    62          DO_3D_11_11( 1, jpkm1 ) 
     62         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    6363            ! 
    6464            zfact = xstep * xdiss(ji,jj,jk) 
     
    102102      ELSE    ! ln_p5z 
    103103        ! 
    104          DO_3D_11_11( 1, jpkm1 ) 
     104         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    105105            ! 
    106106            zfact = xstep * xdiss(ji,jj,jk) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zbc.F90

    r13286 r13295  
    112112      IF( ll_river ) THEN 
    113113          jl = n_trc_indcbc(jpno3) 
    114           DO_2D_11_11 
     114          DO_2D( 1, 1, 1, 1 ) 
    115115             DO jk = 1, nk_rnf(ji,jj) 
    116116                zcoef = rn_rfact / ( e1e2t(ji,jj) * h_rnf(ji,jj) * rn_cbc_time ) * tmask(ji,jj,1) 
     
    145145         ALLOCATE( zironice(jpi,jpj) ) 
    146146         ! 
    147          DO_2D_11_11 
     147         DO_2D( 1, 1, 1, 1 ) 
    148148            zdep    = rfact / e3t(ji,jj,1,Kmm) 
    149149            zwflux  = fmmflx(ji,jj) / 1000._wp 
     
    297297         IF(lwp) WRITE(numout,*) 
    298298         IF(lwp) WRITE(numout,*) ' Level corresponding to 50m depth ',  ik50,' ', gdept_1d(ik50+1) 
    299          DO_3D_00_00( 1, ik50 ) 
     299         DO_3D( 0, 0, 0, 0, 1, ik50 ) 
    300300            ze3t   = e3t_0(ji,jj,jk) 
    301301            zsurfc =  e1u(ji,jj) * ( 1. - umask(ji  ,jj  ,jk) )   & 
     
    313313         CALL lbc_lnk( 'p4zbc', zcmask , 'T', 1.0_wp )      ! lateral boundary conditions on cmask   (sign unchanged) 
    314314         ! 
    315          DO_3D_11_11( 1, jpk ) 
     315         DO_3D( 1, 1, 1, 1, 1, jpk ) 
    316316            zexpide   = MIN( 8.,( gdept(ji,jj,jk,Kmm) / 500. )**(-1.5) ) 
    317317            zdenitide = -0.9543 + 0.7662 * LOG( zexpide ) - 0.235 * LOG( zexpide )**2 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zbio.F90

    r13286 r13295  
    7272      xdiss(:,:,:) = 1. 
    7373!!gm the use of nmld should be better here? 
    74       DO_3D_11_11( 2, jpkm1 ) 
     74      DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    7575!!gm  :  use nmln  and test on jk ...  less memory acces 
    7676         IF( gdepw(ji,jj,jk+1,Kmm) > hmld(ji,jj) )   xdiss(ji,jj,jk) = 0.01 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zche.F90

    r13237 r13295  
    179179      ! 0.04°C relative to an exact computation 
    180180      ! --------------------------------------------------------------------- 
    181       DO_3D_11_11( 1, jpk ) 
     181      DO_3D( 1, 1, 1, 1, 1, jpk ) 
    182182         zpres = gdept(ji,jj,jk,Kmm) / 1000. 
    183183         za1 = 0.04 * ( 1.0 + 0.185 * ts(ji,jj,jk,jp_tem,Kmm) + 0.035 * (salinprac(ji,jj,jk) - 35.0) ) 
     
    472472      IF( ln_timing )  CALL timing_start('ahini_for_at') 
    473473      ! 
    474       DO_3D_11_11( 1, jpk ) 
     474      DO_3D( 1, 1, 1, 1, 1, jpk ) 
    475475      p_alkcb  = tr(ji,jj,jk,jptal,Kbb) * 1000. / (rhop(ji,jj,jk) + rtrn) 
    476476      p_dictot = tr(ji,jj,jk,jpdic,Kbb) * 1000. / (rhop(ji,jj,jk) + rtrn) 
     
    570570 
    571571   ! TOTAL H+ scale: conversion factor for Htot = aphscale * Hfree 
    572    DO_3D_11_11( 1, jpk ) 
     572   DO_3D( 1, 1, 1, 1, 1, jpk ) 
    573573      IF (rmask(ji,jj,jk) == 1.) THEN 
    574574         p_alktot = tr(ji,jj,jk,jptal,Kbb) * 1000. / (rhop(ji,jj,jk) + rtrn) 
     
    599599 
    600600   DO jn = 1, jp_maxniter_atgen  
    601    DO_3D_11_11( 1, jpk ) 
     601   DO_3D( 1, 1, 1, 1, 1, jpk ) 
    602602      IF (rmask(ji,jj,jk) == 1.) THEN 
    603603         zfact = rhop(ji,jj,jk) / 1000. + rtrn 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zfechem.F90

    r13286 r13295  
    9292      ! Chemistry is supposed to be fast enough to be at equilibrium 
    9393      ! ------------------------------------------------------------ 
    94       DO_3D_11_11( 1, jpkm1 ) 
     94      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    9595         zTL1(ji,jj,jk)  = ztotlig(ji,jj,jk) 
    9696         zkeq            = fekeq(ji,jj,jk) 
     
    107107 
    108108      zdust = 0.         ! if no dust available 
    109       DO_3D_11_11( 1, jpkm1 ) 
     109      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    110110         ! Scavenging rate of iron. This scavenging rate depends on the load of particles of sea water.  
    111111         ! This parameterization assumes a simple second order kinetics (k[Particles][Fe]). 
     
    177177      IF( ln_ligand ) THEN 
    178178         ! 
    179          DO_3D_11_11( 1, jpkm1 ) 
     179         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    180180            zlam1a   = ( 0.369  * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) + 102.4  * tr(ji,jj,jk,jppoc,Kbb) ) * xdiss(ji,jj,jk)    & 
    181181                &    + ( 114.   * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) ) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zflx.F90

    r13286 r13295  
    110110      IF( l_co2cpl )   satmco2(:,:) = atm_co2(:,:) 
    111111 
    112       DO_2D_11_11 
     112      DO_2D( 1, 1, 1, 1 ) 
    113113         ! DUMMY VARIABLES FOR DIC, H+, AND BORATE 
    114114         zfact = rhop(ji,jj,1) / 1000. + rtrn 
     
    126126      ! ------------------------------------------- 
    127127 
    128       DO_2D_11_11 
     128      DO_2D( 1, 1, 1, 1 ) 
    129129         ztc  = MIN( 35., ts(ji,jj,1,jp_tem,Kmm) ) 
    130130         ztc2 = ztc * ztc 
     
    145145 
    146146 
    147       DO_2D_11_11 
     147      DO_2D( 1, 1, 1, 1 ) 
    148148         ztkel = tempis(ji,jj,1) + 273.15 
    149149         zsal  = salinprac(ji,jj,1) + ( 1.- tmask(ji,jj,1) ) * 35. 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zligand.F90

    r13286 r13295  
    5252      IF( ln_timing )   CALL timing_start('p4z_ligand') 
    5353      ! 
    54       DO_3D_11_11( 1, jpkm1 ) 
     54      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    5555         ! 
    5656         ! ------------------------------------------------------------------ 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zlim.F90

    r12377 r13295  
    9898      IF( ln_timing )   CALL timing_start('p4z_lim') 
    9999      ! 
    100       DO_3D_11_11( 1, jpkm1 ) 
     100      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    101101          
    102102         ! Tuning of the iron concentration to a minimum level that is set to the detection limit 
     
    173173      ! Compute the fraction of nanophytoplankton that is made of calcifiers 
    174174      ! -------------------------------------------------------------------- 
    175       DO_3D_11_11( 1, jpkm1 ) 
     175      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    176176         zlim1 =  ( tr(ji,jj,jk,jpno3,Kbb) * concnnh4 + tr(ji,jj,jk,jpnh4,Kbb) * concnno3 )    & 
    177177            &   / ( concnno3 * concnnh4 + concnnh4 * tr(ji,jj,jk,jpno3,Kbb) + concnno3 * tr(ji,jj,jk,jpnh4,Kbb) )  
     
    193193      END_3D 
    194194      ! 
    195       DO_3D_11_11( 1, jpkm1 ) 
     195      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    196196         ! denitrification factor computed from O2 levels 
    197197         nitrfac(ji,jj,jk) = MAX(  0.e0, 0.4 * ( 6.e-6  - tr(ji,jj,jk,jpoxy,Kbb) )    & 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zlys.F90

    r13286 r13295  
    7575      CALL solve_at_general( zhinit, zhi, Kbb ) 
    7676 
    77       DO_3D_11_11( 1, jpkm1 ) 
     77      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    7878         zco3(ji,jj,jk) = tr(ji,jj,jk,jpdic,Kbb) * ak13(ji,jj,jk) * ak23(ji,jj,jk) / (zhi(ji,jj,jk)**2   & 
    7979            &             + ak13(ji,jj,jk) * zhi(ji,jj,jk) + ak13(ji,jj,jk) * ak23(ji,jj,jk) + rtrn ) 
     
    8787      !     --------------------------------------------------------- 
    8888 
    89       DO_3D_11_11( 1, jpkm1 ) 
     89      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    9090 
    9191         ! DEVIATION OF [CO3--] FROM SATURATION VALUE 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zmeso.F90

    r13286 r13295  
    8181      IF( ln_timing )   CALL timing_start('p4z_meso') 
    8282      ! 
    83       DO_3D_11_11( 1, jpkm1 ) 
     83      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    8484         zcompam   = MAX( ( tr(ji,jj,jk,jpmes,Kbb) - 1.e-9 ), 0.e0 ) 
    8585         zfact     = xstep * tgfunc2(ji,jj,jk) * zcompam 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zmicro.F90

    r13286 r13295  
    7979      IF( ln_timing )   CALL timing_start('p4z_micro') 
    8080      ! 
    81       DO_3D_11_11( 1, jpkm1 ) 
     81      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    8282         zcompaz = MAX( ( tr(ji,jj,jk,jpzoo,Kbb) - 1.e-9 ), 0.e0 ) 
    8383         zfact   = xstep * tgfunc2(ji,jj,jk) * zcompaz 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zmort.F90

    r13286 r13295  
    7777      ! 
    7878      prodcal(:,:,:) = 0._wp   ! calcite production variable set to zero 
    79       DO_3D_11_11( 1, jpkm1 ) 
     79      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    8080         zcompaph = MAX( ( tr(ji,jj,jk,jpphy,Kbb) - 1e-8 ), 0.e0 ) 
    8181         !     When highly limited by macronutrients, very small cells  
     
    152152      !     ------------------------------------------------------------ 
    153153 
    154       DO_3D_11_11( 1, jpkm1 ) 
     154      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    155155 
    156156         zcompadi = MAX( ( tr(ji,jj,jk,jpdia,Kbb) - 1e-9), 0. ) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zopt.F90

    r13286 r13295  
    8989      IF( ln_p5z )   zchl3d(:,:,:) = zchl3d(:,:,:)    + tr(:,:,:,jppch,Kbb) 
    9090      ! 
    91       DO_3D_11_11( 1, jpkm1 ) 
     91      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    9292         zchl = ( zchl3d(ji,jj,jk) + rtrn ) * 1.e6 
    9393         zchl = MIN(  10. , MAX( 0.05, zchl )  ) 
     
    160160      heup_01(:,:) = gdepw(:,:,2,Kmm) 
    161161 
    162       DO_3D_11_11( 2, nksrp ) 
     162      DO_3D( 1, 1, 1, 1, 2, nksrp ) 
    163163        IF( etot_ndcy(ji,jj,jk) * tmask(ji,jj,jk) >=  zqsr100(ji,jj) )  THEN 
    164164           neln(ji,jj) = jk+1                    ! Euphotic level : 1rst T-level strictly below Euphotic layer 
     
    178178      zetmp2 (:,:)   = 0.e0 
    179179 
    180       DO_3D_11_11( 1, nksrp ) 
     180      DO_3D( 1, 1, 1, 1, 1, nksrp ) 
    181181         IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 
    182182            zetmp1 (ji,jj) = zetmp1 (ji,jj) + etot     (ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! remineralisation 
     
    189189      zpar(:,:,:) = etot_ndcy(:,:,:)  ! diagnostic : PAR with no diurnal cycle  
    190190      ! 
    191       DO_3D_11_11( 1, nksrp ) 
     191      DO_3D( 1, 1, 1, 1, 1, nksrp ) 
    192192         IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 
    193193            z1_dep = 1. / ( zdepmoy(ji,jj) + rtrn ) 
     
    201201      zetmp4 (:,:)   = 0.e0 
    202202      ! 
    203       DO_3D_11_11( 1, nksrp ) 
     203      DO_3D( 1, 1, 1, 1, 1, nksrp ) 
    204204         IF( gdepw(ji,jj,jk+1,Kmm) <= MIN(hmld(ji,jj), heup_01(ji,jj)) ) THEN 
    205205            zetmp3 (ji,jj) = zetmp3 (ji,jj) + enano    (ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! production 
     
    211211      ediatm(:,:,:) = ediat(:,:,:) 
    212212      ! 
    213       DO_3D_11_11( 1, nksrp ) 
     213      DO_3D( 1, 1, 1, 1, 1, nksrp ) 
    214214         IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 
    215215            z1_dep = 1. / ( zdepmoy(ji,jj) + rtrn ) 
     
    221221      IF( ln_p5z ) THEN 
    222222         ALLOCATE( zetmp5(jpi,jpj) )  ;   zetmp5 (:,:) = 0.e0 
    223          DO_3D_11_11( 1, nksrp ) 
     223         DO_3D( 1, 1, 1, 1, 1, nksrp ) 
    224224            IF( gdepw(ji,jj,jk+1,Kmm) <= MIN(hmld(ji,jj), heup_01(ji,jj)) ) THEN 
    225225               zetmp5(ji,jj)  = zetmp5 (ji,jj) + epico(ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! production 
     
    229229         epicom(:,:,:) = epico(:,:,:) 
    230230         ! 
    231          DO_3D_11_11( 1, nksrp ) 
     231         DO_3D( 1, 1, 1, 1, 1, nksrp ) 
    232232            IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 
    233233               z1_dep = 1. / ( zdepmoy(ji,jj) + rtrn ) 
     
    302302        pe3(:,:,1) = zqsr(:,:) * EXP( -0.5 * ekr(:,:,1) ) 
    303303        ! 
    304         DO_3D_11_11( 2, nksrp ) 
     304        DO_3D( 1, 1, 1, 1, 2, nksrp ) 
    305305           pe1(ji,jj,jk) = pe1(ji,jj,jk-1) * EXP( -0.5 * ( ekb(ji,jj,jk-1) + ekb(ji,jj,jk) ) ) 
    306306           pe2(ji,jj,jk) = pe2(ji,jj,jk-1) * EXP( -0.5 * ( ekg(ji,jj,jk-1) + ekg(ji,jj,jk) ) ) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zpoc.F90

    r13286 r13295  
    107107     ! ----------------------------------------------------------------------- 
    108108     ztremint(:,:,:) = zremigoc(:,:,:) 
    109      DO_3D_11_11( 2, jpkm1 ) 
     109     DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    110110        IF (tmask(ji,jj,jk) == 1.) THEN 
    111111          zdep = hmld(ji,jj) 
     
    192192 
    193193      IF( ln_p4z ) THEN 
    194          DO_3D_11_11( 1, jpkm1 ) 
     194         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    195195            ! POC disaggregation by turbulence and bacterial activity.  
    196196            ! -------------------------------------------------------- 
     
    212212         END_3D 
    213213      ELSE 
    214          DO_3D_11_11( 1, jpkm1 ) 
     214         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    215215             ! POC disaggregation by turbulence and bacterial activity.  
    216216            ! -------------------------------------------------------- 
     
    260260     ! ---------------------------------------------------------------- 
    261261     !  
    262      DO_3D_11_11( 1, jpkm1 ) 
     262     DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    263263        zdep = hmld(ji,jj) 
    264264        IF (tmask(ji,jj,jk) == 1. .AND. gdept(ji,jj,jk,Kmm) <= zdep ) THEN 
     
    275275     ! --------------------------------------------------------------------- 
    276276     ztremint(:,:,:) = zremipoc(:,:,:) 
    277      DO_3D_11_11( 1, jpkm1 ) 
     277     DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    278278        IF (tmask(ji,jj,jk) == 1.) THEN 
    279279          zdep = hmld(ji,jj) 
     
    310310     ! ----------------------------------------------------------------------- 
    311311     ! 
    312      DO_3D_11_11( 2, jpkm1 ) 
     312     DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    313313        IF (tmask(ji,jj,jk) == 1.) THEN 
    314314          zdep = hmld(ji,jj) 
     
    384384 
    385385     IF( ln_p4z ) THEN 
    386          DO_3D_11_11( 1, jpkm1 ) 
     386         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    387387            IF (tmask(ji,jj,jk) == 1.) THEN 
    388388              ! POC disaggregation by turbulence and bacterial activity.  
     
    401401         END_3D 
    402402     ELSE 
    403        DO_3D_11_11( 1, jpkm1 ) 
     403       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    404404          ! POC disaggregation by turbulence and bacterial activity.  
    405405          ! -------------------------------------------------------- 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zprod.F90

    r13286 r13295  
    110110      ! day length in hours 
    111111      zstrn(:,:) = 0. 
    112       DO_2D_11_11 
     112      DO_2D( 1, 1, 1, 1 ) 
    113113         zargu = TAN( zcodel ) * TAN( gphit(ji,jj) * rad ) 
    114114         zargu = MAX( -1., MIN(  1., zargu ) ) 
     
    117117 
    118118      ! Impact of the day duration and light intermittency on phytoplankton growth 
    119       DO_3D_11_11( 1, jpkm1 ) 
     119      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    120120         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    121121            zval = MAX( 1., zstrn(ji,jj) ) 
     
    135135 
    136136      ! Computation of the P-I slope for nanos and diatoms 
    137       DO_3D_11_11( 1, jpkm1 ) 
     137      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    138138         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    139139            ztn         = MAX( 0., ts(ji,jj,jk,jp_tem,Kmm) - 15. ) 
     
    150150      END_3D 
    151151 
    152       DO_3D_11_11( 1, jpkm1 ) 
     152      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    153153         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    154154             ! Computation of production function for Carbon 
     
    171171      !  Computation of a proxy of the N/C ratio 
    172172      !  --------------------------------------- 
    173       DO_3D_11_11( 1, jpkm1 ) 
     173      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    174174          zval = MIN( xnanopo4(ji,jj,jk), ( xnanonh4(ji,jj,jk) + xnanono3(ji,jj,jk) ) )   & 
    175175          &      * zprmaxn(ji,jj,jk) / ( zprbio(ji,jj,jk) + rtrn ) 
     
    181181 
    182182 
    183       DO_3D_11_11( 1, jpkm1 ) 
     183      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    184184 
    185185          IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
     
    205205      !  Sea-ice effect on production 
    206206 
    207       DO_3D_11_11( 1, jpkm1 ) 
     207      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    208208         zprbio(ji,jj,jk) = zprbio(ji,jj,jk) * ( 1. - fr_i(ji,jj) ) 
    209209         zprdia(ji,jj,jk) = zprdia(ji,jj,jk) * ( 1. - fr_i(ji,jj) ) 
     
    211211 
    212212      ! Computation of the various production terms  
    213       DO_3D_11_11( 1, jpkm1 ) 
     213      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    214214         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    215215            !  production terms for nanophyto. (C) 
     
    237237 
    238238      ! Computation of the chlorophyll production terms 
    239       DO_3D_11_11( 1, jpkm1 ) 
     239      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    240240         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    241241            !  production terms for nanophyto. ( chlorophyll ) 
     
    260260 
    261261      !   Update the arrays TRA which contain the biological sources and sinks 
    262       DO_3D_11_11( 1, jpkm1 ) 
     262      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    263263        IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    264264           zproreg  = zprorcan(ji,jj,jk) - zpronewn(ji,jj,jk) 
     
    288288     IF( ln_ligand ) THEN 
    289289         zpligprod1(:,:,:) = 0._wp    ;    zpligprod2(:,:,:) = 0._wp 
    290          DO_3D_11_11( 1, jpkm1 ) 
     290         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    291291           IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    292292              zdocprod = excretd * zprorcad(ji,jj,jk) + excretn * zprorcan(ji,jj,jk) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zrem.F90

    r13286 r13295  
    8989      ! that was modeling explicitely bacteria 
    9090      ! ------------------------------------------------------- 
    91       DO_3D_11_11( 1, jpkm1 ) 
     91      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    9292         zdep = MAX( hmld(ji,jj), heup(ji,jj) ) 
    9393         IF( gdept(ji,jj,jk,Kmm) < zdep ) THEN 
     
    103103 
    104104      IF( ln_p4z ) THEN 
    105          DO_3D_11_11( 1, jpkm1 ) 
     105         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    106106            ! DOC ammonification. Depends on depth, phytoplankton biomass 
    107107            ! and a limitation term which is supposed to be a parameterization of the bacterial activity.  
     
    134134         END_3D 
    135135      ELSE 
    136          DO_3D_11_11( 1, jpkm1 ) 
     136         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    137137            ! DOC ammonification. Depends on depth, phytoplankton biomass 
    138138            ! and a limitation term which is supposed to be a parameterization of the bacterial activity.  
     
    178178 
    179179 
    180       DO_3D_11_11( 1, jpkm1 ) 
     180      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    181181         ! NH4 nitrification to NO3. Ceased for oxygen concentrations 
    182182         ! below 2 umol/L. Inhibited at strong light  
     
    200200       ENDIF 
    201201 
    202       DO_3D_11_11( 1, jpkm1 ) 
     202      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    203203 
    204204         ! Bacterial uptake of iron. No iron is available in DOC. So 
     
    226226      ! --------------------------------------------------------------- 
    227227 
    228       DO_3D_11_11( 1, jpkm1 ) 
     228      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    229229         zdep     = MAX( hmld(ji,jj), heup_01(ji,jj) ) 
    230230         zsatur   = MAX( rtrn, ( sio3eq(ji,jj,jk) - tr(ji,jj,jk,jpsil,Kbb) ) / ( sio3eq(ji,jj,jk) + rtrn ) ) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zsed.F90

    r13286 r13295  
    9494         ! OA: Warning, the following part is necessary to avoid CFL problems above the sediments 
    9595         ! -------------------------------------------------------------------- 
    96          DO_2D_11_11 
     96         DO_2D( 1, 1, 1, 1 ) 
    9797            ikt  = mbkt(ji,jj) 
    9898            zdep = e3t(ji,jj,ikt,Kmm) / xstep 
     
    104104         ! Computation of the fraction of organic matter that is permanently buried from Dunne's model 
    105105         ! ------------------------------------------------------- 
    106          DO_2D_11_11 
     106         DO_2D( 1, 1, 1, 1 ) 
    107107           IF( tmask(ji,jj,1) == 1 ) THEN 
    108108              ikt = mbkt(ji,jj) 
     
    130130      IF( .NOT.lk_sed )  zrivsil = 1._wp - sedsilfrac 
    131131 
    132       DO_2D_11_11 
     132      DO_2D( 1, 1, 1, 1 ) 
    133133         ikt  = mbkt(ji,jj) 
    134134         zdep = xstep / e3t(ji,jj,ikt,Kmm)  
     
    142142      ! 
    143143      IF( .NOT.lk_sed ) THEN 
    144          DO_2D_11_11 
     144         DO_2D( 1, 1, 1, 1 ) 
    145145            ikt  = mbkt(ji,jj) 
    146146            zdep = xstep / e3t(ji,jj,ikt,Kmm)  
     
    160160      ENDIF 
    161161      ! 
    162       DO_2D_11_11 
     162      DO_2D( 1, 1, 1, 1 ) 
    163163         ikt  = mbkt(ji,jj) 
    164164         zdep = xstep / e3t(ji,jj,ikt,Kmm)  
     
    172172      ! 
    173173      IF( ln_p5z ) THEN 
    174          DO_2D_11_11 
     174         DO_2D( 1, 1, 1, 1 ) 
    175175            ikt  = mbkt(ji,jj) 
    176176            zdep = xstep / e3t(ji,jj,ikt,Kmm)  
     
    187187         ! The 0.5 factor in zpdenit is to avoid negative NO3 concentration after 
    188188         ! denitrification in the sediments. Not very clever, but simpliest option. 
    189          DO_2D_11_11 
     189         DO_2D( 1, 1, 1, 1 ) 
    190190            ikt  = mbkt(ji,jj) 
    191191            zdep = xstep / e3t(ji,jj,ikt,Kmm)  
     
    224224      ENDDO 
    225225      IF( ln_p4z ) THEN 
    226          DO_3D_11_11( 1, jpkm1 ) 
     226         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    227227            !                      ! Potential nitrogen fixation dependant on temperature and iron 
    228228            ztemp = ts(ji,jj,jk,jp_tem,Kmm) 
     
    240240         END_3D 
    241241      ELSE       ! p5z 
    242          DO_3D_11_11( 1, jpkm1 ) 
     242         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    243243            !                      ! Potential nitrogen fixation dependant on temperature and iron 
    244244            ztemp = ts(ji,jj,jk,jp_tem,Kmm) 
     
    261261      ! ---------------------------------------- 
    262262      IF( ln_p4z ) THEN 
    263          DO_3D_11_11( 1, jpkm1 ) 
     263         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    264264            zfact = nitrpot(ji,jj,jk) * nitrfix 
    265265            tr(ji,jj,jk,jpnh4,Krhs) = tr(ji,jj,jk,jpnh4,Krhs) + zfact / 3.0 
     
    278278         END_3D 
    279279      ELSE    ! p5z 
    280          DO_3D_11_11( 1, jpkm1 ) 
     280         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    281281            zfact = nitrpot(ji,jj,jk) * nitrfix 
    282282            tr(ji,jj,jk,jpnh4,Krhs) = tr(ji,jj,jk,jpnh4,Krhs) + zfact / 3.0 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zsink.F90

    r13286 r13295  
    8181      !    by data and from the coagulation theory 
    8282      !    ----------------------------------------------------------- 
    83       DO_3D_11_11( 1, jpkm1 ) 
     83      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    8484         zmax  = MAX( heup_01(ji,jj), hmld(ji,jj) ) 
    8585         zfact = MAX( 0., gdepw(ji,jj,jk+1,Kmm) - zmax ) / wsbio2scale 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zsms.F90

    r13286 r13295  
    133133         xnegtr(:,:,:) = 1.e0 
    134134         DO jn = jp_pcs0, jp_pcs1 
    135             DO_3D_11_11( 1, jpk ) 
     135            DO_3D( 1, 1, 1, 1, 1, jpk ) 
    136136               IF( ( tr(ji,jj,jk,jn,Kbb) + tr(ji,jj,jk,jn,Krhs) ) < 0.e0 ) THEN 
    137137                  ztra             = ABS( tr(ji,jj,jk,jn,Kbb) ) / ( ABS( tr(ji,jj,jk,jn,Krhs) ) + rtrn ) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p5zlim.F90

    r12377 r13295  
    131131      zratchl = 6.0 
    132132      ! 
    133       DO_3D_11_11( 1, jpkm1 ) 
     133      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    134134         !  
    135135         ! Tuning of the iron concentration to a minimum level that is set to the detection limit 
     
    318318      ! phytoplankton (see Daines et al., 2013).  
    319319      ! -------------------------------------------------------------------------------------------------- 
    320       DO_3D_11_11( 1, jpkm1 ) 
     320      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    321321         ! Size estimation of nanophytoplankton 
    322322         ! ------------------------------------ 
     
    367367      ! Compute the fraction of nanophytoplankton that is made of calcifiers 
    368368      ! -------------------------------------------------------------------- 
    369       DO_3D_11_11( 1, jpkm1 ) 
     369      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    370370         zlim1 =  tr(ji,jj,jk,jpnh4,Kbb) / ( tr(ji,jj,jk,jpnh4,Kbb) + concnnh4 ) + tr(ji,jj,jk,jpno3,Kbb)    & 
    371371         &        / ( tr(ji,jj,jk,jpno3,Kbb) + concnno3 ) * ( 1.0 - tr(ji,jj,jk,jpnh4,Kbb)   & 
     
    385385      END_3D 
    386386      ! 
    387       DO_3D_11_11( 1, jpkm1 ) 
     387      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    388388         ! denitrification factor computed from O2 levels 
    389389         nitrfac(ji,jj,jk) = MAX(  0.e0, 0.4 * ( 6.e-6  - tr(ji,jj,jk,jpoxy,Kbb) )    & 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p5zmeso.F90

    r13286 r13295  
    9898      IF ( bmetexc2 ) zmetexcess = 1.0 
    9999 
    100       DO_3D_11_11( 1, jpkm1 ) 
     100      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    101101         zcompam   = MAX( ( tr(ji,jj,jk,jpmes,Kbb) - 1.e-9 ), 0.e0 ) 
    102102         zfact     = xstep * tgfunc2(ji,jj,jk) * zcompam 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p5zmicro.F90

    r13286 r13295  
    9696      IF ( bmetexc ) zmetexcess = 1.0 
    9797      ! 
    98       DO_3D_11_11( 1, jpkm1 ) 
     98      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    9999         zcompaz = MAX( ( tr(ji,jj,jk,jpzoo,Kbb) - 1.e-9 ), 0.e0 ) 
    100100         zfact   = xstep * tgfunc2(ji,jj,jk) * zcompaz 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p5zmort.F90

    r13286 r13295  
    8282      ! 
    8383      prodcal(:,:,:) = 0.  !: calcite production variable set to zero 
    84       DO_3D_11_11( 1, jpkm1 ) 
     84      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    8585         zcompaph = MAX( ( tr(ji,jj,jk,jpphy,Kbb) - 1e-9 ), 0.e0 ) 
    8686         !   Squared mortality of Phyto similar to a sedimentation term during 
     
    148148      IF( ln_timing )   CALL timing_start('p5z_pico') 
    149149      ! 
    150       DO_3D_11_11( 1, jpkm1 ) 
     150      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    151151         zcompaph = MAX( ( tr(ji,jj,jk,jppic,Kbb) - 1e-9 ), 0.e0 ) 
    152152         !  Squared mortality of Phyto similar to a sedimentation term during 
     
    207207      ! 
    208208 
    209       DO_3D_11_11( 1, jpkm1 ) 
     209      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    210210 
    211211         zcompadi = MAX( ( tr(ji,jj,jk,jpdia,Kbb) - 1E-9), 0. ) 
  • NEMO/trunk/src/TOP/PISCES/P4Z/p5zprod.F90

    r13286 r13295  
    125125      ! day length in hours 
    126126      zstrn(:,:) = 0. 
    127       DO_2D_11_11 
     127      DO_2D( 1, 1, 1, 1 ) 
    128128         zargu = TAN( zcodel ) * TAN( gphit(ji,jj) * rad ) 
    129129         zargu = MAX( -1., MIN(  1., zargu ) ) 
     
    132132 
    133133         ! Impact of the day duration on phytoplankton growth 
    134       DO_3D_11_11( 1, jpkm1 ) 
     134      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    135135         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    136136            zval = MAX( 1., zstrn(ji,jj) ) 
     
    152152      WHERE( zstrn(:,:) < 1.e0 ) zstrn(:,:) = 24. 
    153153 
    154       DO_3D_11_11( 1, jpkm1 ) 
     154      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    155155         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    156156            ! Computation of the P-I slope for nanos and diatoms 
     
    186186      END_3D 
    187187 
    188       DO_3D_11_11( 1, jpkm1 ) 
     188      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    189189 
    190190          IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
     
    208208 
    209209      !  Sea-ice effect on production                                                                                
    210       DO_3D_11_11( 1, jpkm1 ) 
     210      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    211211         zprbio(ji,jj,jk)  = zprbio(ji,jj,jk) * ( 1. - fr_i(ji,jj) ) 
    212212         zprpic(ji,jj,jk)  = zprpic(ji,jj,jk) * ( 1. - fr_i(ji,jj) )  
     
    216216 
    217217      ! Computation of the various production terms of nanophytoplankton  
    218       DO_3D_11_11( 1, jpkm1 ) 
     218      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    219219         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    220220            !  production terms for nanophyto. 
     
    249249 
    250250      ! Computation of the various production terms of picophytoplankton  
    251       DO_3D_11_11( 1, jpkm1 ) 
     251      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    252252         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    253253            !  production terms for picophyto. 
     
    282282 
    283283      ! Computation of the various production terms of diatoms 
    284       DO_3D_11_11( 1, jpkm1 ) 
     284      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    285285         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    286286            !  production terms for diatomees 
     
    316316      END_3D 
    317317 
    318       DO_3D_11_11( 1, jpkm1 ) 
     318      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    319319         IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    320320               !  production terms for nanophyto. ( chlorophyll ) 
     
    347347 
    348348      !   Update the arrays TRA which contain the biological sources and sinks 
    349       DO_3D_11_11( 1, jpkm1 ) 
     349      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    350350        zprontot = zpronewn(ji,jj,jk) + zproregn(ji,jj,jk) 
    351351        zproptot = zpronewp(ji,jj,jk) + zproregp(ji,jj,jk) 
     
    410410     IF( ln_ligand ) THEN 
    411411         zpligprod1(:,:,:) = 0._wp    ;    zpligprod2(:,:,:) = 0._wp              
    412          DO_3D_11_11( 1, jpkm1 ) 
     412         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    413413           zdocprod = excretd * zprorcad(ji,jj,jk) + excretn * zprorcan(ji,jj,jk) + excretp * zprorcap(ji,jj,jk) 
    414414           zfeup    = texcretn * zprofen(ji,jj,jk) + texcretd * zprofed(ji,jj,jk) + texcretp * zprofep(ji,jj,jk) 
  • NEMO/trunk/src/TOP/PISCES/SED/sedchem.F90

    r12839 r13295  
    138138         CALL sed_chem_cst 
    139139      ELSE 
    140          DO_2D_11_11 
     140         DO_2D( 1, 1, 1, 1 ) 
    141141            ikt = mbkt(ji,jj)  
    142142            IF ( tmask(ji,jj,ikt) == 1 ) THEN 
  • NEMO/trunk/src/TOP/PISCES/SED/seddta.F90

    r13237 r13295  
    9696      !    ----------------------------------------------------------- 
    9797      IF (ln_sediment_offline) THEN 
    98          DO_2D_11_11 
     98         DO_2D( 1, 1, 1, 1 ) 
    9999            ikt = mbkt(ji,jj) 
    100100            zwsbio4(ji,jj) = wsbio2 / rday 
     
    102102         END_2D 
    103103      ELSE 
    104          DO_2D_11_11 
     104         DO_2D( 1, 1, 1, 1 ) 
    105105            ikt = mbkt(ji,jj) 
    106106            zdep = e3t(ji,jj,ikt,Kmm) / rDt_trc 
     
    111111 
    112112      trc_data(:,:,:) = 0. 
    113       DO_2D_11_11 
     113      DO_2D( 1, 1, 1, 1 ) 
    114114         ikt = mbkt(ji,jj) 
    115115         IF ( tmask(ji,jj,ikt) == 1 ) THEN 
  • NEMO/trunk/src/TOP/PISCES/SED/sedini.F90

    r12489 r13295  
    135135      ! Determination of sediments number of points and allocate global variables 
    136136      epkbot(:,:) = 0. 
    137       DO_2D_11_11 
     137      DO_2D( 1, 1, 1, 1 ) 
    138138         ikt = mbkt(ji,jj)  
    139139         IF( tmask(ji,jj,ikt) == 1 ) epkbot(ji,jj) = e3t_1d(ikt) 
     
    247247      ! Computation of 1D array of sediments points 
    248248      indoce = 0 
    249       DO_2D_11_11 
     249      DO_2D( 1, 1, 1, 1 ) 
    250250         IF (  epkbot(ji,jj) > 0. ) THEN 
    251251            indoce          = indoce + 1 
  • NEMO/trunk/src/TOP/PISCES/SED/sedsfc.F90

    r12377 r13295  
    4848 
    4949 
    50       DO_2D_11_11 
     50      DO_2D( 1, 1, 1, 1 ) 
    5151         ikt = mbkt(ji,jj) 
    5252         IF ( tmask(ji,jj,ikt) == 1 ) THEN 
  • NEMO/trunk/src/TOP/PISCES/SED/trcdmp_sed.F90

    r13286 r13295  
    9393               CALL trc_dta( kt, Kmm, sf_trcdta(jl), rf_trfac(jl), ztrcdta )   ! read tracer data at nit000 
    9494               ! 
    95                DO_2D_11_11 
     95               DO_2D( 1, 1, 1, 1 ) 
    9696                  ikt = mbkt(ji,jj) 
    9797                  tr(ji,jj,ikt,jn,Kbb) = ztrcdta(ji,jj,ikt) + ( tr(ji,jj,ikt,jn,Kbb) -  ztrcdta(ji,jj,ikt) )     & 
  • NEMO/trunk/src/TOP/PISCES/trcwri_pisces.F90

    r13237 r13295  
    6969            zo2min   (:,:) = tr(:,:,1,jpoxy,Kmm) * tmask(:,:,1) 
    7070            zdepo2min(:,:) = gdepw(:,:,1,Kmm)   * tmask(:,:,1) 
    71             DO_3D_11_11( 2, jpkm1 ) 
     71            DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    7272               IF( tmask(ji,jj,jk) == 1 ) then 
    7373                  IF( tr(ji,jj,jk,jpoxy,Kmm) < zo2min(ji,jj) ) then 
  • NEMO/trunk/src/TOP/TRP/trcatf.F90

    r13286 r13295  
    239239      ! 
    240240      DO jn = 1, jptra       
    241          DO_3D_11_11( 1, jpkm1 ) 
     241         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    242242            ze3t_b = e3t(ji,jj,jk,Kbb) 
    243243            ze3t_n = e3t(ji,jj,jk,Kmm) 
     
    314314      ! 
    315315      DO jn = 1, jptra       
    316          DO_3D_11_11( 1, jpkm1 ) 
     316         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    317317            ze3t_b = 1._wp + r3t(ji,jj,Kbb) * tmask(ji,jj,jk) 
    318318            ze3t_n = 1._wp + r3t(ji,jj,Kmm) * tmask(ji,jj,jk) 
  • NEMO/trunk/src/TOP/TRP/trcdmp.F90

    r13286 r13295  
    113113               ! 
    114114               CASE( 0 )                !==  newtonian damping throughout the water column  ==! 
    115                   DO_3D_00_00( 1, jpkm1 ) 
     115                  DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    116116                     ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - ptr(ji,jj,jk,jn,Kbb) ) 
    117117                  END_3D 
    118118                  ! 
    119119               CASE ( 1 )                !==  no damping in the turbocline (avt > 5 cm2/s)  ==! 
    120                   DO_3D_00_00( 1, jpkm1 ) 
     120                  DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    121121                     IF( avt(ji,jj,jk) <= avt_c )  THEN  
    122122                        ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - ptr(ji,jj,jk,jn,Kbb) ) 
     
    125125                  ! 
    126126               CASE ( 2 )               !==  no damping in the mixed layer   ==!  
    127                   DO_3D_00_00( 1, jpkm1 ) 
     127                  DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    128128                     IF( gdept(ji,jj,jk,Kmm) >= hmlp (ji,jj) ) THEN 
    129129                        ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - ptr(ji,jj,jk,jn,Kbb) ) 
  • NEMO/trunk/src/TOP/TRP/trcldf.F90

    r13286 r13295  
    8282      zahv(:,:,:) = rldf * ahtv(:,:,:) 
    8383      !                                  !* Enhanced zonal diffusivity coefficent in the equatorial domain 
    84       DO_3D_11_11( 1, jpk ) 
     84      DO_3D( 1, 1, 1, 1, 1, jpk ) 
    8585         IF( gdept(ji,jj,jk,Kmm) > 200. .AND. gphit(ji,jj) < 5. .AND. gphit(ji,jj) > -5. ) THEN 
    8686            zdep = MAX( gdept(ji,jj,jk,Kmm) - 1000., 0. ) / 1000. 
  • NEMO/trunk/src/TOP/TRP/trcrad.F90

    r13286 r13295  
    168168              IF( l_trdtrc )   ztrtrd(:,:,:) = ptr(:,:,:,jn,itime)                       ! save input tr(:,:,:,:,Kbb) for trend computation            
    169169              ! 
    170               DO_3D_11_11( 1, jpkm1 ) 
     170              DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    171171                 IF( ztrneg(ji,jj,jn) /= 0. ) THEN                                 ! if negative values over the 3x3 box 
    172172                    ! 
  • NEMO/trunk/src/TOP/TRP/trcsbc.F90

    r13286 r13295  
    121121         ! 
    122122         DO jn = 1, jptra 
    123             DO_2D_01_00 
     123            DO_2D( 0, 1, 0, 0 ) 
    124124               sbc_trc(ji,jj,jn) = zsfx(ji,jj) * r1_rho0 * ptr(ji,jj,1,jn,Kmm) 
    125125            END_2D 
     
    129129         ! 
    130130         DO jn = 1, jptra 
    131             DO_2D_01_00 
     131            DO_2D( 0, 1, 0, 0 ) 
    132132               sbc_trc(ji,jj,jn) = ( zsfx(ji,jj) + fmmflx(ji,jj) ) * r1_rho0 * ptr(ji,jj,1,jn,Kmm) 
    133133            END_2D 
     
    137137         ! 
    138138         DO jn = 1, jptra 
    139             DO_2D_01_00 
     139            DO_2D( 0, 1, 0, 0 ) 
    140140               zse3t = 1. / e3t(ji,jj,1,Kmm) 
    141141               ! tracer flux at the ice/ocean interface (tracer/m2/s) 
     
    161161         IF( l_trdtrc )   ztrtrd(:,:,:) = ptr(:,:,:,jn,Krhs)  ! save trends 
    162162         ! 
    163          DO_2D_01_00 
     163         DO_2D( 0, 1, 0, 0 ) 
    164164            zse3t = zfact / e3t(ji,jj,1,Kmm) 
    165165            ptr(ji,jj,1,jn,Krhs) = ptr(ji,jj,1,jn,Krhs) + ( sbc_trc_b(ji,jj,jn) + sbc_trc(ji,jj,jn) ) * zse3t 
  • NEMO/trunk/src/TOP/TRP/trcsink.F90

    r13237 r13295  
    7474         iiter(:,:) = 1 
    7575      ELSE 
    76          DO_2D_11_11 
     76         DO_2D( 1, 1, 1, 1 ) 
    7777            iiter(ji,jj) = 1 
    7878            DO jk = 1, jpkm1 
     
    8686      ENDIF 
    8787 
    88       DO_3D_11_11( 1,jpkm1 ) 
     88      DO_3D( 1, 1, 1, 1, 1,jpkm1 ) 
    8989         IF( tmask(ji,jj,jk) == 1.0 ) THEN 
    9090           zwsmax = 0.5 * e3t(ji,jj,jk,Kmm) * rday / rsfact 
     
    146146      DO jn = 1, 2 
    147147         !  first guess of the slopes interior values 
    148          DO_2D_11_11 
     148         DO_2D( 1, 1, 1, 1 ) 
    149149            ! 
    150150            zstep = rsfact / REAL( kiter(ji,jj), wp ) / 2. 
     
    186186      END DO 
    187187 
    188       DO_3D_11_11( 1,jpkm1 ) 
     188      DO_3D( 1, 1, 1, 1, 1,jpkm1 ) 
    189189         zflx = ( psinkflx(ji,jj,jk) - psinkflx(ji,jj,jk+1) ) / e3t(ji,jj,jk,Kmm) 
    190190         ztrb(ji,jj,jk) = ztrb(ji,jj,jk) + 2. * zflx 
  • NEMO/trunk/src/TOP/TRP/trdmxl_trc.F90

    r13237 r13295  
    125125 
    126126            IF( jpktrd_trc < jpk ) THEN                           ! description ??? 
    127                DO_2D_11_11 
     127               DO_2D( 1, 1, 1, 1 ) 
    128128                  IF( nmld_trc(ji,jj) <= jpktrd_trc ) THEN 
    129129                     zvlmsk(ji,jj) = tmask(ji,jj,1) 
     
    148148         ! ... Weights for vertical averaging 
    149149         wkx_trc(:,:,:) = 0.e0 
    150          DO_3D_11_11( 1, jpktrd_trc ) 
     150         DO_3D( 1, 1, 1, 1, 1, jpktrd_trc ) 
    151151            IF( jk - nmld_trc(ji,jj) < 0 )   wkx_trc(ji,jj,jk) = e3t(ji,jj,jk,Kmm) * tmask(ji,jj,jk) 
    152152         END_3D 
     
    259259         ! 
    260260         DO jn = 1, jptra 
    261             DO_2D_11_11 
     261            DO_2D( 1, 1, 1, 1 ) 
    262262               ik = nmld_trc(ji,jj) 
    263263               IF( ln_trdtrc(jn) )    & 
  • NEMO/trunk/src/TOP/trcbc.F90

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

    r13237 r13295  
    199199               WRITE(numout,*) 'trc_dta: interpolates passive tracer data onto the s- or mixed s-z-coordinate mesh' 
    200200            ENDIF 
    201             DO_2D_11_11 
     201            DO_2D( 1, 1, 1, 1 ) 
    202202               DO jk = 1, jpk                        ! determines the intepolated T-S profiles at each (i,j) points 
    203203                  zl = gdept(ji,jj,jk,Kmm) 
Note: See TracChangeset for help on using the changeset viewer.