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 13497 for NEMO/trunk – NEMO

Changeset 13497 for NEMO/trunk


Ignore:
Timestamp:
2020-09-21T14:37:46+02:00 (4 years ago)
Author:
techene
Message:

re-introduce comments that have been erased by loops transformation see #2525

Location:
NEMO/trunk/src
Files:
71 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/ICE/icecor.F90

    r13472 r13497  
    105105      !                             !----------------------------------------------------- 
    106106      IF( kn == 2 ) THEN            !  Ice drift case: Corrections to avoid wrong values ! 
    107          DO_2D( 0, 0, 0, 0 ) 
     107         DO_2D( 0, 0, 0, 0 )        !----------------------------------------------------- 
    108108            IF ( at_i(ji,jj) == 0._wp ) THEN    ! what to do if there is no ice 
    109109               IF ( at_i(ji+1,jj) == 0._wp )   u_ice(ji  ,jj) = 0._wp   ! right side 
  • NEMO/trunk/src/ICE/icedyn_adv_pra.F90

    r13472 r13497  
    383383 
    384384         !  Calculate fluxes and moments between boxes i<-->i+1               
    385          DO_2D( 0, 0, 1, 1 ) 
     385         DO_2D( 0, 0, 1, 1 )                   !  Flux from i to i+1 WHEN u GT 0 
    386386            zbet(ji,jj)  =  MAX( 0._wp, SIGN( 1._wp, put(ji,jj) ) ) 
    387387            zalf         =  MAX( 0._wp, put(ji,jj) ) * pdt / psm(ji,jj,jl) 
     
    408408         END_2D 
    409409 
    410          DO_2D( 0, 0, 1, 0 ) 
     410         DO_2D( 0, 0, 1, 0 )                   !  Flux from i+1 to i when u LT 0. 
    411411            zalf          = MAX( 0._wp, -put(ji,jj) ) * pdt / psm(ji+1,jj,jl)  
    412412            zalg  (ji,jj) = zalf 
     
    427427         END_2D 
    428428 
    429          DO_2D( 0, 0, 0, 0 ) 
     429         DO_2D( 0, 0, 0, 0 )                   !  Readjust moments remaining in the box. 
    430430            zbt  =       zbet(ji-1,jj) 
    431431            zbt1 = 1.0 - zbet(ji-1,jj) 
     
    441441 
    442442         !   Put the temporary moments into appropriate neighboring boxes.     
    443          DO_2D( 0, 0, 0, 0 ) 
     443         DO_2D( 0, 0, 0, 0 )                   !   Flux from i to i+1 IF u GT 0. 
    444444            zbt  =       zbet(ji-1,jj) 
    445445            zbt1 = 1.0 - zbet(ji-1,jj) 
     
    461461         END_2D 
    462462 
    463          DO_2D( 0, 0, 0, 0 ) 
     463         DO_2D( 0, 0, 0, 0 )                   !  Flux from i+1 to i IF u LT 0. 
    464464            zbt  =       zbet(ji,jj) 
    465465            zbt1 = 1.0 - zbet(ji,jj) 
     
    540540  
    541541         !  Calculate fluxes and moments between boxes j<-->j+1               
    542          DO_2D( 1, 1, 0, 0 ) 
     542         DO_2D( 1, 1, 0, 0 )                   !  Flux from j to j+1 WHEN v GT 0 
    543543            zbet(ji,jj)  =  MAX( 0._wp, SIGN( 1._wp, pvt(ji,jj) ) ) 
    544544            zalf         =  MAX( 0._wp, pvt(ji,jj) ) * pdt / psm(ji,jj,jl) 
     
    565565         END_2D 
    566566         ! 
    567          DO_2D( 1, 0, 0, 0 ) 
     567         DO_2D( 1, 0, 0, 0 )                   !  Flux from j+1 to j when v LT 0. 
    568568            zalf          = MAX( 0._wp, -pvt(ji,jj) ) * pdt / psm(ji,jj+1,jl)  
    569569            zalg  (ji,jj) = zalf 
     
    599599 
    600600         !   Put the temporary moments into appropriate neighboring boxes.     
    601          DO_2D( 0, 0, 0, 0 ) 
     601         DO_2D( 0, 0, 0, 0 )                   !  Flux from j to j+1 IF v GT 0. 
    602602            zbt  =       zbet(ji,jj-1) 
    603603            zbt1 = 1.0 - zbet(ji,jj-1) 
     
    620620         END_2D 
    621621 
    622          DO_2D( 0, 0, 0, 0 ) 
     622         DO_2D( 0, 0, 0, 0 )                   !  Flux from j+1 to j IF v LT 0. 
    623623            zbt  =       zbet(ji,jj) 
    624624            zbt1 = 1.0 - zbet(ji,jj) 
  • NEMO/trunk/src/ICE/icedyn_adv_umx.F90

    r13472 r13497  
    10061006      !                                                     !--  Laplacian in j-direction  --! 
    10071007      DO jl = 1, jpl 
    1008          DO_2D( 1, 0, 0, 0 ) 
     1008         DO_2D( 1, 0, 0, 0 )         ! First derivative (gradient) 
    10091009            ztv1(ji,jj,jl) = ( pt(ji,jj+1,jl) - pt(ji,jj,jl) ) * r1_e2v(ji,jj) * vmask(ji,jj,1) 
    10101010         END_2D 
    1011          DO_2D( 0, 0, 0, 0 ) 
     1011         DO_2D( 0, 0, 0, 0 )         ! Second derivative (Laplacian) 
    10121012            ztv2(ji,jj,jl) = ( ztv1(ji,jj,jl) - ztv1(ji,jj-1,jl) ) * r1_e2t(ji,jj) 
    10131013         END_2D 
     
    10171017      !                                                     !--  BiLaplacian in j-direction  --! 
    10181018      DO jl = 1, jpl 
    1019          DO_2D( 1, 0, 0, 0 ) 
     1019         DO_2D( 1, 0, 0, 0 )         ! First derivative 
    10201020            ztv3(ji,jj,jl) = ( ztv2(ji,jj+1,jl) - ztv2(ji,jj,jl) ) * r1_e2v(ji,jj) * vmask(ji,jj,1) 
    10211021         END_2D 
    1022          DO_2D( 0, 0, 0, 0 ) 
     1022         DO_2D( 0, 0, 0, 0 )         ! Second derivative 
    10231023            ztv4(ji,jj,jl) = ( ztv3(ji,jj,jl) - ztv3(ji,jj-1,jl) ) * r1_e2t(ji,jj) 
    10241024         END_2D 
  • NEMO/trunk/src/ICE/icedyn_rhg_evp.F90

    r13472 r13497  
    370370         CALL lbc_lnk( 'icedyn_rhg_evp', zds, 'F', 1.0_wp ) 
    371371 
    372          DO_2D( 0, 1, 0, 1 ) 
     372         DO_2D( 0, 1, 0, 1 )   ! loop to jpi,jpj to avoid making a communication for zs1,zs2,zs12 ! no vector loop 
    373373 
    374374            ! shear**2 at T points (doc eq. A16) 
     
    704704      END_2D 
    705705       
    706       DO_2D( 0, 0, 0, 0 ) 
     706      DO_2D( 0, 0, 0, 0 )   ! no vector loop 
    707707          
    708708         ! tension**2 at T points 
  • NEMO/trunk/src/ICE/iceupdate.F90

    r13472 r13497  
    332332      ! 
    333333      IF( MOD( kt-1, nn_fsbc ) == 0 ) THEN     !==  Ice time-step only  ==!   (i.e. surface module time-step) 
    334          DO_2D( 0, 0, 0, 0 ) 
     334         DO_2D( 0, 0, 0, 0 )                          !* update the modulus of stress at ocean surface (T-point) 
    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)    
     
    358358      ENDIF 
    359359      ! 
    360       DO_2D( 0, 0, 0, 0 ) 
     360      DO_2D( 0, 0, 0, 0 )                             !* update the stress WITHOUT an ice-ocean rotation angle 
    361361         ! ice area at u and v-points  
    362362         zat_u  = ( at_i(ji,jj) * tmask(ji,jj,1) + at_i (ji+1,jj    ) * tmask(ji+1,jj  ,1) )  & 
  • NEMO/trunk/src/OCE/C1D/dtauvd.F90

    r13295 r13497  
    158158         ENDIF 
    159159         ! 
    160          DO_2D( 1, 1, 1, 1 ) 
     160         DO_2D( 1, 1, 1, 1 )           ! vertical interpolation of U & V current: 
    161161            DO jk = 1, jpk 
    162162               zl = gdept(ji,jj,jk,Kmm) 
  • NEMO/trunk/src/OCE/DIA/diaar5.F90

    r13295 r13497  
    144144         IF( ln_linssh ) THEN 
    145145            IF( ln_isfcav ) THEN 
    146                DO ji = 1, jpi 
    147                   DO jj = 1, jpj 
    148                      iks = mikt(ji,jj) 
    149                      zbotpres(ji,jj) = zbotpres(ji,jj) + ssh(ji,jj,Kmm) * zrhd(ji,jj,iks) + riceload(ji,jj) 
    150                   END DO 
    151                END DO 
     146               DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
     147                  iks = mikt(ji,jj) 
     148                  zbotpres(ji,jj) = zbotpres(ji,jj) + ssh(ji,jj,Kmm) * zrhd(ji,jj,iks) + riceload(ji,jj) 
     149               END_2D 
    152150            ELSE 
    153151               zbotpres(:,:) = zbotpres(:,:) + ssh(:,:,Kmm) * zrhd(:,:,1) 
     
    385383         zvol0 (:,:) = 0._wp 
    386384         thick0(:,:) = 0._wp 
    387          DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     385         DO_3D( 1, 1, 1, 1, 1, jpkm1 )   ! interpolation of salinity at the last ocean level (i.e. the partial step) 
    388386            idep = tmask(ji,jj,jk) * e3t_0(ji,jj,jk) 
    389387            zvol0 (ji,jj) = zvol0 (ji,jj) +  idep * e1e2t(ji,jj) 
     
    403401            sn0(:,:,:) = sn0(:,:,:) * tmask(:,:,:) 
    404402            IF( ln_zps ) THEN               ! z-coord. partial steps 
    405                DO_2D( 1, 1, 1, 1 ) 
     403               DO_2D( 1, 1, 1, 1 )          ! interpolation of salinity at the last ocean level (i.e. the partial step) 
    406404                  ik = mbkt(ji,jj) 
    407405                  IF( ik > 1 ) THEN 
  • NEMO/trunk/src/OCE/DIA/diacfl.F90

    r13458 r13497  
    6666      llmsk(:,Nje1: jpj,:) = .FALSE. 
    6767      ! 
    68       DO_3D( 0, 0, 0, 0, 1, jpk ) 
     68      DO_3D( 0, 0, 0, 0, 1, jpk )      ! calculate Courant numbers 
    6969         zCu_cfl(ji,jj,jk) = ABS( uu(ji,jj,jk,Kmm) ) * rDt / e1u  (ji,jj)      ! for i-direction 
    7070         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

    r13295 r13497  
    170170            ! MLD: rho = rho(1) + zrho1                                     ! 
    171171            ! ------------------------------------------------------------- ! 
    172             DO_3DS( 1, 1, 1, 1, jpkm1, 2, -1 ) 
     172            DO_3DS( 1, 1, 1, 1, jpkm1, 2, -1 )   ! loop from bottom to 2 
    173173               ! 
    174174               zzdep = gdepw(ji,jj,jk,Kmm) 
     
    207207            ! depth of temperature inversion                                ! 
    208208            ! ------------------------------------------------------------- ! 
    209             DO_3DS( 1, 1, 1, 1, jpkm1, nlb10, -1 ) 
     209            DO_3DS( 1, 1, 1, 1, jpkm1, nlb10, -1 )   ! loop from bottom to nlb10 
    210210               ! 
    211211               zzdep = gdepw(ji,jj,jk,Kmm) * tmask(ji,jj,1) 
     
    305305      ! --------------------------------------- ! 
    306306      iktem(:,:) = 1 
    307       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     307      DO_3D( 1, 1, 1, 1, 1, jpkm1 )   ! beware temperature is not always decreasing with depth => loop from top to bottom 
    308308         zztmp = ts(ji,jj,jk,jp_tem,Kmm) 
    309309         IF( zztmp >= ptem )   iktem(ji,jj) = jk 
  • NEMO/trunk/src/OCE/DIA/diawri.F90

    r13472 r13497  
    270270          
    271271      IF ( iom_use("sstgrad") .OR. iom_use("sstgrad2") ) THEN 
    272          DO_2D( 0, 0, 0, 0 ) 
     272         DO_2D( 0, 0, 0, 0 )                                 ! sst gradient 
    273273            zztmp  = ts(ji,jj,1,jp_tem,Kmm) 
    274274            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) 
  • NEMO/trunk/src/OCE/DOM/domvvl.F90

    r13458 r13497  
    202202      gdept(:,:,1,Kbb) = 0.5_wp * e3w(:,:,1,Kbb) 
    203203      gdepw(:,:,1,Kbb) = 0.0_wp 
    204       DO_3D( 1, 1, 1, 1, 2, jpk ) 
     204      DO_3D( 1, 1, 1, 1, 2, jpk )                     ! vertical sum 
    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) 
     
    420420         zwu(:,:) = 0._wp 
    421421         zwv(:,:) = 0._wp 
    422          DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
     422         DO_3D( 1, 0, 1, 0, 1, jpkm1 )   ! a - first derivative: diffusive fluxes 
    423423            un_td(ji,jj,jk) = rn_ahe3 * umask(ji,jj,jk) * e2_e1u(ji,jj)           & 
    424424               &            * ( tilde_e3t_b(ji,jj,jk) - tilde_e3t_b(ji+1,jj  ,jk) ) 
     
    428428            zwv(ji,jj) = zwv(ji,jj) + vn_td(ji,jj,jk) 
    429429         END_3D 
    430          DO_2D( 1, 1, 1, 1 ) 
     430         DO_2D( 1, 1, 1, 1 )             ! b - correction for last oceanic u-v points 
    431431            un_td(ji,jj,mbku(ji,jj)) = un_td(ji,jj,mbku(ji,jj)) - zwu(ji,jj) 
    432432            vn_td(ji,jj,mbkv(ji,jj)) = vn_td(ji,jj,mbkv(ji,jj)) - zwv(ji,jj) 
    433433         END_2D 
    434          DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     434         DO_3D( 0, 0, 0, 0, 1, jpkm1 )   ! c - second derivative: divergence of diffusive fluxes 
    435435            tilde_e3t_a(ji,jj,jk) = tilde_e3t_a(ji,jj,jk) + (   un_td(ji-1,jj  ,jk) - un_td(ji,jj,jk)    & 
    436436               &                                          +     vn_td(ji  ,jj-1,jk) - vn_td(ji,jj,jk)    & 
    437437               &                                            ) * r1_e1e2t(ji,jj) 
    438438         END_3D 
    439          !                       ! d - thickness diffusion transport: boundary conditions 
     439         !                               ! d - thickness diffusion transport: boundary conditions 
    440440         !                             (stored for tracer advction and continuity equation) 
    441441         CALL lbc_lnk_multi( 'domvvl', un_td , 'U' , -1._wp, vn_td , 'V' , -1._wp) 
  • NEMO/trunk/src/OCE/DOM/dtatsd.F90

    r13295 r13497  
    186186         ENDIF 
    187187         ! 
    188          DO_2D( 1, 1, 1, 1 ) 
     188         DO_2D( 1, 1, 1, 1 )                  ! vertical interpolation of T & S 
    189189            DO jk = 1, jpk                        ! determines the intepolated T-S profiles at each (i,j) points 
    190190               zl = gdept_0(ji,jj,jk) 
  • NEMO/trunk/src/OCE/DYN/divhor.F90

    r13295 r13497  
    7777      ENDIF 
    7878      ! 
    79       DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     79      DO_3D( 0, 0, 0, 0, 1, jpkm1 )                                    !==  Horizontal divergence  ==! 
    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

    r13295 r13497  
    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( 1, 0, 1, 0 ) 
     74         DO_2D( 1, 0, 1, 0 )              ! horizontal momentum fluxes (at T- and F-point) 
    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( 0, 0, 0, 0 ) 
     80         DO_2D( 0, 0, 0, 0 )              ! divergence of horizontal momentum fluxes 
    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( 0, 0, 0, 0 ) 
     100      DO_2D( 0, 0, 0, 0 )                 ! surface/bottom advective fluxes set to zero 
    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 
     
    109109      ENDIF 
    110110      DO jk = 2, jpkm1                    ! interior advective fluxes 
    111          DO_2D( 0, 1, 0, 1 ) 
     111         DO_2D( 0, 1, 0, 1 )                  ! 1/4 * Vertical transport 
    112112            zfw(ji,jj,jk) = 0.25_wp * e1e2t(ji,jj) * ww(ji,jj,jk) 
    113113         END_2D 
     
    117117         END_2D 
    118118      END DO 
    119       DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     119      DO_3D( 0, 0, 0, 0, 1, jpkm1 )       ! divergence of vertical momentum flux divergence 
    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

    r13295 r13497  
    108108         zfv(:,:,jk) = e1v(:,:) * e3v(:,:,jk,Kmm) * pvv(:,:,jk,Kmm) 
    109109         !             
    110          DO_2D( 0, 0, 0, 0 ) 
     110         DO_2D( 0, 0, 0, 0 )                       ! laplacian 
    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( 1, 0, 1, 0 ) 
     138         DO_2D( 1, 0, 1, 0 )                       ! horizontal momentum fluxes at T- and F-point 
    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( 0, 0, 0, 0 ) 
     170         DO_2D( 0, 0, 0, 0 )                       ! divergence of horizontal momentum fluxes 
    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( 0, 0, 0, 0 ) 
     189      DO_2D( 0, 0, 0, 0 )                          ! surface/bottom advective fluxes set to zero 
    190190         zfu_uw(ji,jj,jpk) = 0._wp 
    191191         zfv_vw(ji,jj,jpk) = 0._wp 
     
    208208         END_2D 
    209209      END DO 
    210       DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     210      DO_3D( 0, 0, 0, 0, 1, jpkm1 )             ! divergence of vertical momentum flux divergence 
    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/dynkeg.F90

    r13295 r13497  
    125125      END SELECT  
    126126      ! 
    127       DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     127      DO_3D( 0, 0, 0, 0, 1, jpkm1 )       !==  grad( KE ) added to the general momentum trends  ==! 
    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

    r13295 r13497  
    128128      IF( ln_dynldf_hor .AND. ln_traldf_iso ) THEN 
    129129         ! 
    130          DO_3D( 0, 0, 0, 0, 1, jpk ) 
     130         DO_3D( 0, 0, 0, 0, 1, jpk )      ! set the slopes of iso-level 
    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) 
     
    268268         ! Second derivative (divergence) and add to the general trend 
    269269         ! ----------------------------------------------------------- 
    270          DO_2D( 0, 0, 0, 0 ) 
     270         DO_2D( 0, 0, 0, 0 )      !!gm Question vectop possible??? !!bug 
    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

    r13295 r13497  
    8484         END_2D 
    8585         ! 
    86          DO_2D( 0, 0, 0, 0 ) 
     86         DO_2D( 0, 0, 0, 0 )                       ! - curl( curl) + grad( div ) 
    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

    r13295 r13497  
    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( 0, 0, 0, 0 ) 
     104            DO_2D( 0, 0, 0, 0 )                       ! gradient of Patm using inverse barometer ssh 
    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( 0, 0, 0, 0 ) 
     119            DO_2D( 0, 0, 0, 0 )                      ! add tide potential forcing 
    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( 0, 0, 0, 0 ) 
     126               DO_2D( 0, 0, 0, 0 )                   ! add scalar approximation for load potential 
    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) 
     
    143143         ENDIF 
    144144         ! 
    145          DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     145         DO_3D( 0, 0, 0, 0, 1, jpkm1 )       !== Add all terms to the general trend 
    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

    r13295 r13497  
    7474      IF( ln_linssh ) THEN          !* linear free surface : add the surface pressure gradient trend 
    7575         ! 
    76          DO_2D( 0, 0, 0, 0 ) 
     76         DO_2D( 0, 0, 0, 0 )                 ! now surface pressure gradient 
    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( 0, 0, 0, 0, 1, jpkm1 ) 
     81         DO_3D( 0, 0, 0, 0, 1, jpkm1 )       ! Add it to the general trend 
    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

    r13472 r13497  
    279279      ENDIF 
    280280      ! 
    281       DO_2D( 0, 0, 0, 0 ) 
     281      DO_2D( 0, 0, 0, 0 )                          ! Remove coriolis term (and possibly spg) from barotropic trend 
    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) 
     
    475475            ! 
    476476            !                          ! ocean u- and v-depth at mid-step   (separate DO-loops remove the need of a lbc_lnk) 
    477             DO_2D( 1, 1, 1, 0 ) 
     477            DO_2D( 1, 1, 1, 0 )   ! not jpi-column 
    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( 1, 0, 1, 1 ) 
     482            DO_2D( 1, 0, 1, 1 )   ! not jpj-row 
    483483               zhvp2_e(ji,jj) = hv_0(ji,jj) + r1_2 * r1_e1e2v(ji,jj)                        & 
    484484                    &                              * (  e1e2t(ji,jj  ) * zsshp2_e(ji,jj  )  & 
     
    13081308      !!---------------------------------------------------------------------- 
    13091309      ! 
    1310       DO_2D( 1, 1, 1, 0 ) 
     1310      DO_2D( 1, 1, 1, 0 )   ! not jpi-column 
    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( 1, 0, 1, 1 ) 
     1318      DO_2D( 1, 0, 1, 1 )   ! not jpj-row 
    13191319         IF ( phV(ji,jj) > 0._wp ) THEN   ;   pVmsk(ji,jj) = pTmsk(ji,jj  ) 
    13201320         ELSE                             ;   pVmsk(ji,jj) = pTmsk(ji,jj+1)   
  • NEMO/trunk/src/OCE/DYN/dynvor.F90

    r13295 r13497  
    246246      CASE ( np_CRV )                           !* Coriolis + relative vorticity 
    247247         DO jk = 1, jpkm1                                 ! Horizontal slab 
    248             DO_2D( 1, 0, 1, 0 ) 
     248            DO_2D( 1, 0, 1, 0 )                          ! relative vorticity 
    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) 
  • NEMO/trunk/src/OCE/DYN/dynzad.F90

    r13295 r13497  
    7171      ENDIF 
    7272 
    73       IF( l_trddyn )   THEN         ! Save puu(:,:,:,Krhs) and pvv(:,:,:,Krhs) trends 
     73      IF( l_trddyn )   THEN           ! Save puu(:,:,:,Krhs) and pvv(:,:,:,Krhs) trends 
    7474         ALLOCATE( ztrdu(jpi,jpj,jpk) , ztrdv(jpi,jpj,jpk) )  
    7575         ztrdu(:,:,:) = puu(:,:,:,Krhs)  
     
    7777      ENDIF 
    7878       
    79       DO jk = 2, jpkm1              ! Vertical momentum advection at level w and u- and v- vertical 
    80          DO_2D( 0, 1, 0, 1 ) 
     79      DO jk = 2, jpkm1                ! Vertical momentum advection at level w and u- and v- vertical 
     80         DO_2D( 0, 1, 0, 1 )              ! vertical fluxes 
    8181            zww(ji,jj) = 0.25_wp * e1e2t(ji,jj) * ww(ji,jj,jk) 
    8282         END_2D 
    83          DO_2D( 0, 0, 0, 0 ) 
     83         DO_2D( 0, 0, 0, 0 )              ! vertical momentum advection at w-point 
    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) ) 
     
    9595      END_2D 
    9696      ! 
    97       DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     97      DO_3D( 0, 0, 0, 0, 1, jpkm1 )   ! Vertical momentum advection at u- and v-points 
    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) 
     
    102102      END_3D 
    103103 
    104       IF( l_trddyn ) THEN           ! save the vertical advection trends for diagnostic 
     104      IF( l_trddyn ) THEN             ! save the vertical advection trends for diagnostic 
    105105         ztrdu(:,:,:) = puu(:,:,:,Krhs) - ztrdu(:,:,:) 
    106106         ztrdv(:,:,:) = pvv(:,:,:,Krhs) - ztrdv(:,:,:) 
     
    108108         DEALLOCATE( ztrdu, ztrdv )  
    109109      ENDIF 
    110       !                             ! Control print 
     110      !                               ! Control print 
    111111      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' zad  - Ua: ', mask1=umask,   & 
    112112         &                                  tab3d_2=pvv(:,:,:,Krhs), clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
  • NEMO/trunk/src/OCE/DYN/dynzdf.F90

    r13472 r13497  
    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( 0, 0, 0, 0 ) 
     133         DO_2D( 0, 0, 0, 0 )      ! Add bottom/top stress due to barotropic component only 
    134134            iku = mbku(ji,jj)         ! ocean bottom level at u- and v-points  
    135135            ikv = mbkv(ji,jj)         ! (deepest ocean u- and v-points) 
     
    190190            END_3D 
    191191         END SELECT 
    192          DO_2D( 0, 0, 0, 0 ) 
     192         DO_2D( 0, 0, 0, 0 )     !* Surface boundary conditions 
    193193            zwi(ji,jj,1) = 0._wp 
    194194            ze3ua =  ( 1._wp - r_vvl ) * e3u(ji,jj,1,Kmm)    & 
     
    227227            END_3D 
    228228         END SELECT 
    229          DO_2D( 0, 0, 0, 0 ) 
     229         DO_2D( 0, 0, 0, 0 )     !* Surface boundary conditions 
    230230            zwi(ji,jj,1) = 0._wp 
    231231            zwd(ji,jj,1) = 1._wp - zws(ji,jj,1) 
     
    366366            END_3D 
    367367         END SELECT 
    368          DO_2D( 0, 0, 0, 0 ) 
     368         DO_2D( 0, 0, 0, 0 )        !* Surface boundary conditions 
    369369            zwi(ji,jj,1) = 0._wp 
    370370            zwd(ji,jj,1) = 1._wp - zws(ji,jj,1) 
  • NEMO/trunk/src/OCE/DYN/sshwzv.F90

    r13295 r13497  
    203203      ELSE                                            !==  Quasi-Eulerian vertical coordinate  ==!   ('key_qco') 
    204204         !                                            !==========================================! 
    205          DO jk = jpkm1, 1, -1                       ! integrate from the bottom the hor. divergence 
     205         DO jk = jpkm1, 1, -1                               ! integrate from the bottom the hor. divergence 
    206206            pww(:,:,jk) = pww(:,:,jk+1) - (  e3t(:,:,jk,Kmm) * hdiv(:,:,jk)                 & 
    207207               &                            + r1_Dt * (  e3t(:,:,jk,Kaa)        & 
     
    393393      ! 
    394394      IF( MAXVAL( Cu_adv(:,:,:) ) > Cu_min ) THEN       ! Quick check if any breaches anywhere 
    395          DO_3DS( 1, 1, 1, 1, jpkm1, 2, -1 ) 
     395         DO_3DS( 1, 1, 1, 1, jpkm1, 2, -1 )             ! or scan Courant criterion and partition ! w where necessary 
    396396            ! 
    397397            zCu = MAX( Cu_adv(ji,jj,jk) , Cu_adv(ji,jj,jk-1) ) 
  • NEMO/trunk/src/OCE/DYN/wet_dry.F90

    r13295 r13497  
    307307      zwdlmtv(:,:) = 1._wp 
    308308      ! 
    309       DO_2D( 0, 1, 0, 1 ) 
     309      DO_2D( 0, 1, 0, 1 )      ! Horizontal Flux in u and v direction 
    310310         ! 
    311311         IF( tmask(ji, jj, 1 ) < 0.5_wp) CYCLE   ! we don't care about land cells 
  • NEMO/trunk/src/OCE/LDF/ldfc1d_c2d.F90

    r13295 r13497  
    8080            pah1(:,:,jk) = pahs1(:,:) * (  zratio + zc * ( 1._wp + TANH( - ( gdept_0(:,:,jk) - zh ) * zw) )  ) 
    8181         END DO 
    82          DO_3DS( 1, 0, 1, 0, jpkm1, 1, -1 ) 
     82         DO_3DS( 1, 0, 1, 0, jpkm1, 1, -1 )  ! pah2 at F-point (zdep2 is an approximation in zps-coord.) 
    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 
  • NEMO/trunk/src/OCE/LDF/ldfdyn.F90

    r13295 r13497  
    311311            IF( ierr /= 0 )   CALL ctl_stop( 'STOP', 'ldf_dyn_init: failed to allocate Smagorinsky arrays') 
    312312            ! 
    313             DO_2D( 1, 1, 1, 1 ) 
     313            DO_2D( 1, 1, 1, 1 )        ! Set local gridscale values 
    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  
     
    434434            DO jk = 1, jpkm1 
    435435              ! 
    436                DO_2D( 0, 0, 0, 0 ) 
     436               DO_2D( 0, 0, 0, 0 )                                   ! T-point value 
    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( 1, 0, 1, 0 ) 
     450               DO_2D( 1, 0, 1, 0 )                                   ! F-point value 
    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) 
  • NEMO/trunk/src/OCE/LDF/ldfslp.F90

    r13295 r13497  
    128128      IF( ln_timing )   CALL timing_start('ldf_slp') 
    129129      ! 
    130       zeps   =  1.e-20_wp        !==   Local constant initialization   ==! 
     130      zeps   =  1.e-20_wp           !==   Local constant initialization   ==! 
    131131      z1_16  =  1.0_wp / 16._wp 
    132132      zm1_g  = -1.0_wp / grav 
     
    137137      zwz(:,:,:) = 0._wp 
    138138      ! 
    139       DO_3D( 1, 0, 1, 0, 1, jpk ) 
     139      DO_3D( 1, 0, 1, 0, 1, jpk )   !==   i- & j-gradient of density   ==! 
    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) ) 
     
    154154      ENDIF 
    155155      ! 
    156       zdzr(:,:,1) = 0._wp        !==   Local vertical density gradient at T-point   == !   (evaluated from N^2) 
     156      zdzr(:,:,1) = 0._wp           !==   Local vertical density gradient at T-point   == !   (evaluated from N^2) 
    157157      DO jk = 2, jpkm1 
    158158         !                                ! zdzr = d/dz(prd)= - ( prd ) / grav * mk(pn2) -- at t point 
     
    165165      END DO 
    166166      ! 
    167       !                          !==   Slopes just below the mixed layer   ==! 
     167      !                             !==   Slopes just below the mixed layer   ==! 
    168168      CALL ldf_slp_mxl( prd, pn2, zgru, zgrv, zdzr, Kmm )        ! output: uslpml, vslpml, wslpiml, wslpjml 
    169169 
     
    186186      END IF 
    187187 
    188       DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
     188      DO_3D( 0, 0, 0, 0, 2, jpkm1 )        !* Slopes at u and v points 
    189189         !                                      ! horizontal and vertical density gradient at u- and v-points 
    190190         zau = zgru(ji,jj,jk) * r1_e1u(ji,jj) 
     
    231231      CALL lbc_lnk_multi( 'ldfslp', zwz, 'U', -1.0_wp,  zww, 'V', -1.0_wp )      ! lateral boundary conditions 
    232232      ! 
    233       !                                            !* horizontal Shapiro filter 
     233      !                                    !* horizontal Shapiro filter 
    234234      DO jk = 2, jpkm1 
    235          DO_2D( 0, 0, 0, 0 ) 
     235         DO_2D( 0, 0, 0, 0 )                                 ! rows jj=2 and =jpjm1 only 
    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)      & 
     
    245245               &                       + 4.*  zww(ji,jj    ,jk)                       ) 
    246246         END_2D 
    247          DO jj = 3, jpj-2                               ! other rows 
     247         DO jj = 3, jpj-2                                    ! other rows 
    248248            DO ji = 2, jpim1   ! vector opt. 
    249249               uslp(ji,jj,jk) = z1_16 * (        zwz(ji-1,jj-1,jk) + zwz(ji+1,jj-1,jk)      & 
     
    259259            END DO 
    260260         END DO 
    261          !                                        !* decrease along coastal boundaries 
     261         !                                 !* decrease along coastal boundaries 
    262262         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   & 
     
    307307      !                                           !* horizontal Shapiro filter 
    308308      DO jk = 2, jpkm1 
    309          DO_2D( 0, 0, 0, 0 ) 
     309         DO_2D( 0, 0, 0, 0 )                             ! rows jj=2 and =jpjm1 only 
    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)     & 
     
    401401         ! 
    402402         ip = jl   ;   jp = jl                ! guaranteed nonzero gradients ( absolute value larger than repsln) 
    403          DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
     403         DO_3D( 1, 0, 1, 0, 1, jpkm1 )        ! done each pair of triad ! NB: not masked ==>  a minimum value is set 
    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) ) 
     
    427427 
    428428      DO kp = 0, 1                            !==  unmasked before density i- j-, k-gradients  ==! 
    429          DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    430             IF( jk+kp > 1 ) THEN        ! k-gradient of T & S a jk+kp 
     429         DO_3D( 1, 1, 1, 1, 1, jpkm1 )        ! done each pair of triad ! NB: not masked ==>  a minimum value is set 
     430            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) ) 
    432432               zdks = ( ts(ji,jj,jk+kp-1,jp_sal,Kbb) - ts(ji,jj,jk+kp,jp_sal,Kbb) ) 
     
    442442      END DO 
    443443      ! 
    444       DO_2D( 1, 1, 1, 1 ) 
     444      DO_2D( 1, 1, 1, 1 )                     !==  Reciprocal depth of the w-point below ML base  ==! 
    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) 
     
    628628      ! 
    629629      !                                            !==   surface mixed layer mask   ! 
    630       DO_3D( 1, 1, 1, 1, 1, jpk ) 
     630      DO_3D( 1, 1, 1, 1, 1, jpk )                  ! =1 inside the mixed layer, =0 otherwise 
    631631         ik = nmln(ji,jj) - 1 
    632632         IF( jk <= ik ) THEN   ;   omlmask(ji,jj,jk) = 1._wp 
  • NEMO/trunk/src/OCE/LDF/ldftra.F90

    r13295 r13497  
    694694      CALL lbc_lnk( 'ldftra', zaeiw(:,:), 'W', 1.0_wp )       ! lateral boundary condition 
    695695      !                
    696       DO_2D( 0, 0, 0, 0 ) 
     696      DO_2D( 0, 0, 0, 0 )                       !== aei at u- and v-points  ==! 
    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) 
     
    813813      CALL iom_put( "voce_eiv", zw3d ) 
    814814      ! 
    815       DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     815      DO_3D( 0, 0, 0, 0, 1, jpkm1 )                            ! e1 e2 w_eiv = dk[psix] + dk[psix] 
    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) 
  • NEMO/trunk/src/OCE/SBC/sbccpl.F90

    r13472 r13497  
    11951195            !                               
    11961196            IF( srcv(jpr_otx1)%clgrid == 'T' ) THEN 
    1197                DO_2D( 0, 0, 0, 0 ) 
     1197               DO_2D( 0, 0, 0, 0 )                                        ! T ==> (U,V) 
    11981198                  frcv(jpr_otx1)%z3(ji,jj,1) = 0.5 * ( frcv(jpr_otx1)%z3(ji+1,jj  ,1) + frcv(jpr_otx1)%z3(ji,jj,1) ) 
    11991199                  frcv(jpr_oty1)%z3(ji,jj,1) = 0.5 * ( frcv(jpr_oty1)%z3(ji  ,jj+1,1) + frcv(jpr_oty1)%z3(ji,jj,1) ) 
     
    15861586            p_tauj(:,:) = frcv(jpr_ity1)%z3(:,:,1) 
    15871587         CASE( 'T' ) 
    1588             DO_2D( 0, 0, 0, 0 ) 
     1588            DO_2D( 0, 0, 0, 0 )                    ! T ==> (U,V) 
    15891589               ! take care of the land-sea mask to avoid "pollution" of coastal stress. p[uv]taui used in frazil and  rheology  
    15901590               zztmp1 = 0.5_wp * ( 2. - umask(ji,jj,1) ) * MAX( tmask(ji,jj,1),tmask(ji+1,jj  ,1) ) 
  • NEMO/trunk/src/OCE/SBC/sbcflx.F90

    r13491 r13497  
    133133            END_2D 
    134134         ENDIF 
    135          DO_2D( 0, 0, 0, 0 ) 
     135         DO_2D( 0, 0, 0, 0 )                                      ! set the ocean fluxes from read fields 
    136136            utau(ji,jj) =   sf(jp_utau)%fnow(ji,jj,1)                              * umask(ji,jj,1) 
    137137            vtau(ji,jj) =   sf(jp_vtau)%fnow(ji,jj,1)                              * vmask(ji,jj,1) 
  • NEMO/trunk/src/OCE/SBC/sbcrnf.F90

    r13295 r13497  
    215215            END_2D 
    216216         ELSE                    !* variable volume case 
    217             DO_2D( 1, 1, 1, 1 ) 
     217            DO_2D( 1, 1, 1, 1 )              ! update the depth over which runoffs are distributed 
    218218               h_rnf(ji,jj) = 0._wp 
    219                DO jk = 1, nk_rnf(ji,jj)                           ! recalculates h_rnf to be the depth in metres 
     219               DO jk = 1, nk_rnf(ji,jj)                             ! recalculates h_rnf to be the depth in metres 
    220220                  h_rnf(ji,jj) = h_rnf(ji,jj) + e3t(ji,jj,jk,Kmm)   ! to the bottom of the relevant grid box 
    221221               END DO 
     
    374374            ENDIF 
    375375         END_2D 
    376          DO_2D( 1, 1, 1, 1 ) 
     376         DO_2D( 1, 1, 1, 1 )                           ! set the associated depth 
    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( 1, 1, 1, 1 ) 
     406         DO_2D( 1, 1, 1, 1 )                ! take in account min depth of ocean rn_hmin 
    407407            IF( zrnfcl(ji,jj,1) > 0._wp ) THEN 
    408408               jk = mbkt(ji,jj) 
     
    423423         END_2D 
    424424         ! 
    425          DO_2D( 1, 1, 1, 1 ) 
     425         DO_2D( 1, 1, 1, 1 )                          ! set the associated depth 
    426426            h_rnf(ji,jj) = 0._wp 
    427427            DO jk = 1, nk_rnf(ji,jj) 
  • NEMO/trunk/src/OCE/SBC/sbcwave.F90

    r13295 r13497  
    121121            zk_t(ji,jj) = ABS( tsd2d(ji,jj) ) / MAX( ABS( 5.97_wp*ztransp ), 0.0000001_wp ) 
    122122         END_2D 
    123          DO_2D( 1, 0, 1, 0 ) 
     123         DO_2D( 1, 0, 1, 0 )          ! exp. wave number & Stokes drift velocity at u- & v-points 
    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) ) 
     
    164164         zsqrtpi = SQRT(rpi) 
    165165         z_two_thirds = 2.0_wp / 3.0_wp 
    166          DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     166         DO_3D( 0, 0, 0, 0, 1, jpkm1 )       ! exp. wave number & Stokes drift velocity at u- & v-points 
    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( 0, 1, 0, 1, 1, jpkm1 ) 
     206      DO_3D( 0, 1, 0, 1, 1, jpkm1 )    ! Horizontal e3*divergence 
    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)    & 
  • NEMO/trunk/src/OCE/TRA/eosbn2.F90

    r13295 r13497  
    873873      IF( ln_timing )   CALL timing_start('bn2') 
    874874      ! 
    875       DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
     875      DO_3D( 1, 1, 1, 1, 2, jpkm1 )      ! interior points only (2=< jk =< jpkm1 ); surface and bottom value set to zero one for all in istate.F90 
    876876         zrw =   ( gdepw(ji,jj,jk  ,Kmm) - gdept(ji,jj,jk,Kmm) )   & 
    877877            &  / ( gdept(ji,jj,jk-1,Kmm) - gdept(ji,jj,jk,Kmm) )  
  • NEMO/trunk/src/OCE/TRA/traadv_cen.F90

    r13457 r13497  
    112112            ztu(:,:,jpk) = 0._wp                   ! Bottom value : flux set to zero 
    113113            ztv(:,:,jpk) = 0._wp 
    114             DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     114            DO_3D( 0, 0, 0, 0, 1, jpkm1 )          ! masked gradient 
    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( 0, 0, 0, 0, 1, jpkm1 ) 
     120            DO_3D( 0, 0, 0, 0, 1, jpkm1 )           ! Horizontal advective fluxes 
    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) 
     
    159159         ENDIF 
    160160         !                
    161          DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     161         DO_3D( 0, 0, 0, 0, 1, jpkm1 )   !--  Divergence of advective fluxes  --! 
    162162            pt(ji,jj,jk,jn,Krhs) = pt(ji,jj,jk,jn,Krhs)    & 
    163163               &             - (  zwx(ji,jj,jk) - zwx(ji-1,jj  ,jk  )    & 
     
    166166               &                * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 
    167167         END_3D 
    168          !                             ! trend diagnostics 
     168         !                               ! trend diagnostics 
    169169         IF( l_trd ) THEN 
    170170            CALL trd_tra( kt, Kmm, Krhs, cdtype, jn, jptra_xad, zwx, pU, pt(:,:,:,jn,Kmm) ) 
  • NEMO/trunk/src/OCE/TRA/traadv_fct.F90

    r13295 r13497  
    160160            zwy(ji,jj,jk) = 0.5 * ( zfp_vj * pt(ji,jj,jk,jn,Kbb) + zfm_vj * pt(ji  ,jj+1,jk,jn,Kbb) ) 
    161161         END_3D 
    162          !                    !* upstream tracer flux in the k direction *! 
    163          DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
     162         !                               !* upstream tracer flux in the k direction *! 
     163         DO_3D( 1, 1, 1, 1, 2, jpkm1 )      ! Interior value ( multiplied by wmask) 
    164164            zfp_wk = pW(ji,jj,jk) + ABS( pW(ji,jj,jk) ) 
    165165            zfm_wk = pW(ji,jj,jk) - ABS( pW(ji,jj,jk) ) 
    166166            zwz(ji,jj,jk) = 0.5 * ( zfp_wk * pt(ji,jj,jk,jn,Kbb) + zfm_wk * pt(ji,jj,jk-1,jn,Kbb) ) * wmask(ji,jj,jk) 
    167167         END_3D 
    168          IF( ln_linssh ) THEN    ! top ocean value (only in linear free surface as zwz has been w-masked) 
    169             IF( ln_isfcav ) THEN             ! top of the ice-shelf cavities and at the ocean surface 
     168         IF( ln_linssh ) THEN               ! top ocean value (only in linear free surface as zwz has been w-masked) 
     169            IF( ln_isfcav ) THEN                        ! top of the ice-shelf cavities and at the ocean surface 
    170170               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 
    173             ELSE                             ! no cavities: only at the ocean surface 
     173            ELSE                                        ! no cavities: only at the ocean surface 
    174174               DO_2D( 1, 1, 1, 1 ) 
    175175                  zwz(ji,jj,1) = pW(ji,jj,1) * pt(ji,jj,1,jn,Kbb) 
     
    178178         ENDIF 
    179179         !                
    180          DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    181             !                             ! total intermediate advective trends 
     180         DO_3D( 0, 0, 0, 0, 1, jpkm1 )   !* trend and after field with monotonic scheme 
     181            !                               ! total intermediate advective trends 
    182182            ztra = - (  zwx(ji,jj,jk) - zwx(ji-1,jj  ,jk  )   & 
    183183               &      + zwy(ji,jj,jk) - zwy(ji  ,jj-1,jk  )   & 
    184184               &      + zwz(ji,jj,jk) - zwz(ji  ,jj  ,jk+1) ) * r1_e1e2t(ji,jj) 
    185             !                             ! update and guess with monotonic sheme 
     185            !                               ! update and guess with monotonic sheme 
    186186            pt(ji,jj,jk,jn,Krhs) =                   pt(ji,jj,jk,jn,Krhs) +       ztra   & 
    187187               &                                  / e3t(ji,jj,jk,Kmm ) * tmask(ji,jj,jk) 
     
    194194            ! 
    195195            ztw(:,:,1) = 0._wp ; ztw(:,:,jpk) = 0._wp ; 
    196             DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
     196            DO_3D( 0, 0, 0, 0, 2, jpkm1 )       ! Interior value ( multiplied by wmask) 
    197197               zfp_wk = wi(ji,jj,jk) + ABS( wi(ji,jj,jk) ) 
    198198               zfm_wk = wi(ji,jj,jk) - ABS( wi(ji,jj,jk) ) 
     
    227227            zltv(:,:,jpk) = 0._wp 
    228228            DO jk = 1, jpkm1                 ! Laplacian 
    229                DO_2D( 1, 0, 1, 0 ) 
     229               DO_2D( 1, 0, 1, 0 )                 ! 1st derivative (gradient) 
    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( 0, 0, 0, 0 ) 
     233               DO_2D( 0, 0, 0, 0 )                 ! 2nd derivative * 1/ 6 
    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( 1, 0, 1, 0, 1, jpkm1 ) 
     240            DO_3D( 1, 0, 1, 0, 1, jpkm1 )    ! Horizontal advective fluxes 
    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) 
    243                !                                                  ! C4 minus upstream advective fluxes  
     243               !                                                        ! C4 minus upstream advective fluxes  
    244244               zwx(ji,jj,jk) =  0.5_wp * pU(ji,jj,jk) * ( zC2t_u + zltu(ji,jj,jk) - zltu(ji+1,jj,jk) ) - zwx(ji,jj,jk) 
    245245               zwy(ji,jj,jk) =  0.5_wp * pV(ji,jj,jk) * ( zC2t_v + zltv(ji,jj,jk) - zltv(ji,jj+1,jk) ) - zwy(ji,jj,jk) 
     
    249249            ztu(:,:,jpk) = 0._wp             ! Bottom value : flux set to zero 
    250250            ztv(:,:,jpk) = 0._wp 
    251             DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
     251            DO_3D( 1, 0, 1, 0, 1, jpkm1 )    ! 1st derivative (gradient) 
    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( 0, 0, 0, 0, 1, jpkm1 ) 
     257            DO_3D( 0, 0, 0, 0, 1, jpkm1 )    ! Horizontal advective fluxes 
    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) 
     
    288288         !          
    289289         IF ( ll_zAimp ) THEN 
    290             DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    291                !                             ! total intermediate advective trends 
     290            DO_3D( 0, 0, 0, 0, 1, jpkm1 )    !* trend and after field with monotonic scheme 
     291               !                                                ! total intermediate advective trends 
    292292               ztra = - (  zwx(ji,jj,jk) - zwx(ji-1,jj  ,jk  )   & 
    293293                  &      + zwy(ji,jj,jk) - zwy(ji  ,jj-1,jk  )   & 
     
    298298            CALL tridia_solver( zwdia, zwsup, zwinf, ztw, ztw , 0 ) 
    299299            ! 
    300             DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
     300            DO_3D( 0, 0, 0, 0, 2, jpkm1 )       ! Interior value ( multiplied by wmask) 
    301301               zfp_wk = wi(ji,jj,jk) + ABS( wi(ji,jj,jk) ) 
    302302               zfm_wk = wi(ji,jj,jk) - ABS( wi(ji,jj,jk) ) 
     
    324324            ! 
    325325            ztw(:,:,1) = 0._wp ; ztw(:,:,jpk) = 0._wp 
    326             DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
     326            DO_3D( 0, 0, 0, 0, 2, jpkm1 )      ! Interior value ( multiplied by wmask) 
    327327               zfp_wk = wi(ji,jj,jk) + ABS( wi(ji,jj,jk) ) 
    328328               zfm_wk = wi(ji,jj,jk) - ABS( wi(ji,jj,jk) ) 
     
    454454         pbb(ji,jj,jk) = pbb(ji,jj,jk) * ( zcv * zav + ( 1._wp - zcv) * zbv ) 
    455455 
    456 ! monotonic flux in the k direction, i.e. pcc 
    457 ! ------------------------------------------- 
     456      ! monotonic flux in the k direction, i.e. pcc 
     457      ! ------------------------------------------- 
    458458         za = MIN( 1., zbetdo(ji,jj,jk+1), zbetup(ji,jj,jk) ) 
    459459         zb = MIN( 1., zbetup(ji,jj,jk+1), zbetdo(ji,jj,jk) ) 
     
    481481      !!---------------------------------------------------------------------- 
    482482       
    483       DO_3D( 1, 1, 1, 1, 3, jpkm1 ) 
     483      DO_3D( 1, 1, 1, 1, 3, jpkm1 )       !==  build the three diagonal matrix  ==! 
    484484         zwd (ji,jj,jk) = 4._wp 
    485485         zwi (ji,jj,jk) = 1._wp 
     
    495495      END_3D 
    496496      ! 
    497       jk = 2                                          ! Switch to second order centered at top 
     497      jk = 2                                    ! Switch to second order centered at top 
    498498      DO_2D( 1, 1, 1, 1 ) 
    499499         zwd (ji,jj,jk) = 1._wp 
     
    504504      ! 
    505505      !                       !==  tridiagonal solve  ==! 
    506       DO_2D( 1, 1, 1, 1 ) 
     506      DO_2D( 1, 1, 1, 1 )           ! first recurrence 
    507507         zwt(ji,jj,2) = zwd(ji,jj,2) 
    508508      END_2D 
     
    511511      END_3D 
    512512      ! 
    513       DO_2D( 1, 1, 1, 1 ) 
     513      DO_2D( 1, 1, 1, 1 )           ! second recurrence:    Zk = Yk - Ik / Tk-1  Zk-1 
    514514         pt_out(ji,jj,2) = zwrm(ji,jj,2) 
    515515      END_2D 
     
    518518      END_3D 
    519519 
    520       DO_2D( 1, 1, 1, 1 ) 
     520      DO_2D( 1, 1, 1, 1 )           ! third recurrence: Xk = (Zk - Sk Xk+1 ) / Tk 
    521521         pt_out(ji,jj,jpkm1) = pt_out(ji,jj,jpkm1) / zwt(ji,jj,jpkm1) 
    522522      END_2D 
     
    546546      !                      !==  build the three diagonal matrix & the RHS  ==! 
    547547      ! 
    548       DO_3D( 0, 0, 0, 0, 3, jpkm1 ) 
     548      DO_3D( 0, 0, 0, 0, 3, jpkm1 )    ! interior (from jk=3 to jpk-1) 
    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( 0, 0, 0, 0 ) 
     567      DO_2D( 0, 0, 0, 0 )              ! 2nd order centered at top & bottom 
    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( 0, 0, 0, 0 ) 
     584      DO_2D( 0, 0, 0, 0 )           !* 1st recurrence:   Tk = Dk - Ik Sk-1 / Tk-1 
    585585         zwt(ji,jj,2) = zwd(ji,jj,2) 
    586586      END_2D 
     
    589589      END_3D 
    590590      ! 
    591       DO_2D( 0, 0, 0, 0 ) 
     591      DO_2D( 0, 0, 0, 0 )           !* 2nd recurrence:    Zk = Yk - Ik / Tk-1  Zk-1 
    592592         pt_out(ji,jj,2) = zwrm(ji,jj,2) 
    593593      END_2D 
     
    596596      END_3D 
    597597 
    598       DO_2D( 0, 0, 0, 0 ) 
     598      DO_2D( 0, 0, 0, 0 )           !* 3d recurrence:    Xk = (Zk - Sk Xk+1 ) / Tk 
    599599         pt_out(ji,jj,jpkm1) = pt_out(ji,jj,jpkm1) / zwt(ji,jj,jpkm1) 
    600600      END_2D 
     
    638638      kstart =  1  + klev 
    639639      ! 
    640       DO_2D( 0, 0, 0, 0 ) 
     640      DO_2D( 0, 0, 0, 0 )                         !* 1st recurrence:   Tk = Dk - Ik Sk-1 / Tk-1 
    641641         zwt(ji,jj,kstart) = pD(ji,jj,kstart) 
    642642      END_2D 
     
    645645      END_3D 
    646646      ! 
    647       DO_2D( 0, 0, 0, 0 ) 
     647      DO_2D( 0, 0, 0, 0 )                        !* 2nd recurrence:    Zk = Yk - Ik / Tk-1  Zk-1 
    648648         pt_out(ji,jj,kstart) = pRHS(ji,jj,kstart) 
    649649      END_2D 
     
    652652      END_3D 
    653653 
    654       DO_2D( 0, 0, 0, 0 ) 
     654      DO_2D( 0, 0, 0, 0 )                       !* 3d recurrence:    Xk = (Zk - Sk Xk+1 ) / Tk 
    655655         pt_out(ji,jj,jpkm1) = pt_out(ji,jj,jpkm1) / zwt(ji,jj,jpkm1) 
    656656      END_2D 
  • NEMO/trunk/src/OCE/TRA/traadv_mus.F90

    r13295 r13497  
    148148         END_3D 
    149149         ! 
    150          DO_3D( 0, 1, 0, 1, 1, jpkm1 ) 
     150         DO_3D( 0, 1, 0, 1, 1, jpkm1 )    !-- Slopes limitation 
    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( 0, 0, 0, 0, 1, jpkm1 ) 
     159         DO_3D( 0, 0, 0, 0, 1, jpkm1 )    !-- MUSCL horizontal advective fluxes 
    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( 0, 0, 0, 0, 1, jpkm1 ) 
     177         DO_3D( 0, 0, 0, 0, 1, jpkm1 )    !-- Tracer advective trend 
    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  ) )     & 
     
    204204               &            * (  0.25 + SIGN( 0.25_wp, zwx(ji,jj,jk) * zwx(ji,jj,jk+1) )  ) 
    205205         END_3D 
    206          DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
     206         DO_3D( 1, 1, 1, 1, 2, jpkm1 )    !-- Slopes limitation 
    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( 0, 0, 0, 0, 1, jpk-2 ) 
     211         DO_3D( 0, 0, 0, 0, 1, jpk-2 )    !-- vertical advective flux 
    212212            z0w = SIGN( 0.5_wp, pW(ji,jj,jk+1) ) 
    213213            zalpha = 0.5 + z0w 
     
    227227         ENDIF 
    228228         ! 
    229          DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     229         DO_3D( 0, 0, 0, 0, 1, jpkm1 )     !-- vertical advective trend 
    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

    r13295 r13497  
    142142         ! 
    143143!!gm why not using a SHIFT instruction... 
    144          DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     144         DO_3D( 0, 0, 0, 0, 1, jpkm1 )     !--- Computation of the ustream and downstream value of the tracer and the mask 
    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 
     
    327327         !                                                       ! =========== 
    328328         ! 
    329          DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
     329         DO_3D( 0, 0, 0, 0, 2, jpkm1 )       !* Interior point   (w-masked 2nd order centered flux) 
    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 
     
    340340         ENDIF 
    341341         ! 
    342          DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     342         DO_3D( 0, 0, 0, 0, 1, jpkm1 )   !==  Tracer flux divergence added to the general trend  ==! 
    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) 
  • NEMO/trunk/src/OCE/TRA/traadv_ubs.F90

    r13295 r13497  
    124124         !                                                       ! =========== 
    125125         !                                               
    126          DO jk = 1, jpkm1        !==  horizontal laplacian of before tracer ==! 
    127             DO_2D( 1, 0, 1, 0 ) 
     126         DO jk = 1, jpkm1                !==  horizontal laplacian of before tracer ==! 
     127            DO_2D( 1, 0, 1, 0 )                   ! First derivative (masked gradient) 
    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( 0, 0, 0, 0 ) 
     133            DO_2D( 0, 0, 0, 0 )                   ! Second derivative (divergence) 
    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( 1, 0, 1, 0, 1, jpkm1 ) 
    143             zfp_ui = pU(ji,jj,jk) + ABS( pU(ji,jj,jk) )      ! upstream transport (x2) 
     142         DO_3D( 1, 0, 1, 0, 1, jpkm1 )   !==  Horizontal advective fluxes  ==!     (UBS) 
     143            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) ) 
    145145            zfp_vj = pV(ji,jj,jk) + ABS( pV(ji,jj,jk) ) 
     
    166166         ! 
    167167         zltu(:,:,:) = pt(:,:,:,jn,Krhs) - zltu(:,:,:)    ! Horizontal advective trend used in vertical 2nd order FCT case 
    168          !                                            ! and/or in trend diagnostic (l_trd=T)  
     168         !                                                ! and/or in trend diagnostic (l_trd=T)  
    169169         !                 
    170170         IF( l_trd ) THEN                  ! trend diagnostics 
     
    187187            IF( l_trd )   zltv(:,:,:) = pt(:,:,:,jn,Krhs)          ! store pt(:,:,:,:,Krhs) if trend diag. 
    188188            ! 
    189             !                          !*  upstream advection with initial mass fluxes & intermediate update  ==! 
     189            !                               !*  upstream advection with initial mass fluxes & intermediate update  ==! 
    190190            DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 
    191191               zfp_wk = pW(ji,jj,jk) + ABS( pW(ji,jj,jk) ) 
     
    193193               ztw(ji,jj,jk) = 0.5_wp * (  zfp_wk * pt(ji,jj,jk,jn,Kbb) + zfm_wk * pt(ji,jj,jk-1,jn,Kbb)  ) * wmask(ji,jj,jk) 
    194194            END_3D 
    195             IF( ln_linssh ) THEN             ! top ocean value (only in linear free surface as ztw has been w-masked) 
    196                IF( ln_isfcav ) THEN                ! top of the ice-shelf cavities and at the ocean surface 
     195            IF( ln_linssh ) THEN                ! top ocean value (only in linear free surface as ztw has been w-masked) 
     196               IF( ln_isfcav ) THEN                   ! top of the ice-shelf cavities and at the ocean surface 
    197197                  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 
    200                ELSE                                ! no cavities: only at the ocean surface 
     200               ELSE                                   ! no cavities: only at the ocean surface 
    201201                  ztw(:,:,1) = pW(:,:,1) * pt(:,:,1,jn,Kbb) 
    202202               ENDIF 
    203203            ENDIF 
    204204            ! 
    205             DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     205            DO_3D( 0, 0, 0, 0, 1, jpkm1 )   !* trend and after field with monotonic scheme 
    206206               ztak = - ( ztw(ji,jj,jk) - ztw(ji,jj,jk+1) )    & 
    207207                  &     * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 
     
    230230         END SELECT 
    231231         ! 
    232          DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     232         DO_3D( 0, 0, 0, 0, 1, jpkm1 )   !  final trend with corrected fluxes 
    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) 
    235235         END_3D 
    236236         ! 
    237          IF( l_trd )  THEN       ! vertical advective trend diagnostics 
    238             DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     237         IF( l_trd )  THEN               ! vertical advective trend diagnostics 
     238            DO_3D( 0, 0, 0, 0, 1, jpkm1 )                 ! (compute -w.dk[ptn]= -dk[w.ptn] + ptn.dk[w]) 
    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)  )   & 
  • NEMO/trunk/src/OCE/TRA/trabbl.F90

    r13295 r13497  
    197197         END_2D 
    198198         !                
    199          DO_2D( 0, 0, 0, 0 ) 
     199         DO_2D( 0, 0, 0, 0 )                               ! Compute the trend 
    200200            ik = mbkt(ji,jj)                            ! bottom T-level index 
    201201            pt_rhs(ji,jj,ik,jn) = pt_rhs(ji,jj,ik,jn)                                                  & 
     
    358358      IF( nn_bbl_ldf == 1 ) THEN          !   diffusive bbl   ! 
    359359         !                                !-------------------! 
    360          DO_2D( 1, 0, 1, 0 ) 
     360         DO_2D( 1, 0, 1, 0 )                   ! (criteria for non zero flux: grad(rho).grad(h) < 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( 1, 0, 1, 0 ) 
     390            DO_2D( 1, 0, 1, 0 )                              ! criteria: grad(rho).grad(h)<0  and grad(rho).grad(h)<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( 1, 0, 1, 0 ) 
     419            DO_2D( 1, 0, 1, 0 )                         ! criteria: rho_up > rho_down 
    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( 1, 0, 1, 0 ) 
     511      DO_2D( 1, 0, 1, 0 )                 ! (the "shelf" bottom k-indices are mbku and mbkv) 
    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)  ) 
     
    530530      END_2D 
    531531      ! 
    532       DO_2D( 1, 0, 1, 0 ) 
     532      DO_2D( 1, 0, 1, 0 )           !* bbl thickness at u- (v-) point; minimum of top & bottom e3u_0 (e3v_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/traldf_iso.F90

    r13295 r13497  
    205205         END_3D 
    206206         IF( ln_zps ) THEN      ! botton and surface ocean correction of the horizontal gradient 
    207             DO_2D( 1, 0, 1, 0 ) 
     207            DO_2D( 1, 0, 1, 0 )           ! bottom correction (partial bottom cell) 
    208208               zdit(ji,jj,mbku(ji,jj)) = pgu(ji,jj,jn)           
    209209               zdjt(ji,jj,mbkv(ji,jj)) = pgv(ji,jj,jn) 
     
    229229            ELSE                 ;   zdkt(:,:) = ( pt(:,:,jk-1,jn) - pt(:,:,jk,jn) ) * wmask(:,:,jk) 
    230230            ENDIF 
    231             DO_2D( 1, 0, 1, 0 ) 
     231            DO_2D( 1, 0, 1, 0 )           !==  Horizontal fluxes 
    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( 0, 0, 0, 0 ) 
     252            DO_2D( 0, 0, 0, 0 )           !== horizontal divergence and add to pta 
    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( 0, 0, 0, 0, 2, jpkm1 ) 
     268         DO_3D( 0, 0, 0, 0, 2, jpkm1 )    ! interior (2=<jk=<jpk-1) 
    269269            ! 
    270270            zmsku = wmask(ji,jj,jk) / MAX(   umask(ji  ,jj,jk-1) + umask(ji-1,jj,jk)          & 
     
    311311         ENDIF 
    312312         !          
    313          DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     313         DO_3D( 0, 0, 0, 0, 1, jpkm1 )    !==  Divergence of vertical fluxes added to pta  ==! 
    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

    r13295 r13497  
    108108         !                          ! =========== !     
    109109         !                                
    110          DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
     110         DO_3D( 1, 0, 1, 0, 1, jpkm1 )            !== First derivative (gradient)  ==! 
    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 
    114          IF( ln_zps ) THEN                ! set gradient at bottom/top ocean level 
    115             DO_2D( 1, 0, 1, 0 ) 
     114         IF( ln_zps ) THEN                             ! set gradient at bottom/top ocean level 
     115            DO_2D( 1, 0, 1, 0 )                              ! bottom 
    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 
    119             IF( ln_isfcav ) THEN                ! top in ocean cavities only 
     119            IF( ln_isfcav ) THEN                             ! top in ocean cavities only 
    120120               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)  
     
    125125         ENDIF 
    126126         ! 
    127          DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     127         DO_3D( 0, 0, 0, 0, 1, jpkm1 )            !== Second derivative (divergence) added to the general tracer trends  ==! 
    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

    r13295 r13497  
    211211         zftv(:,:,:) = 0._wp 
    212212         ! 
    213          DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
     213         DO_3D( 1, 0, 1, 0, 1, jpkm1 )    !==  before lateral T & S gradients at T-level jk  ==! 
    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( 1, 0, 1, 0 ) 
     218            DO_2D( 1, 0, 1, 0 )                    ! bottom level 
    219219               zdit(ji,jj,mbku(ji,jj)) = pgu(ji,jj,jn) 
    220220               zdjt(ji,jj,mbkv(ji,jj)) = pgv(ji,jj,jn) 
     
    361361         ENDIF 
    362362         ! 
    363          DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     363         DO_3D( 0, 0, 0, 0, 1, jpkm1 )      !==  Divergence of vertical fluxes added to pta  ==! 
    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

    r13295 r13497  
    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( 1, 1, 1, 1, jpkm1, nlb10, -1 ) 
     102         DO_3DS( 1, 1, 1, 1, jpkm1, nlb10, -1 )        ! from the bottom to nlb10 (10m) 
    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( 1, 1, 1, 1, 1, ikmax ) 
     112      DO_3D( 1, 1, 1, 1, 1, ikmax )                    ! MLD and mean buoyancy and N2 over the mixed layer 
    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 
     
    182182      zpsi_vw(:,:,:) = 0._wp 
    183183      ! 
    184       DO_3D( 1, 0, 1, 0, 2, ikmax ) 
     184      DO_3D( 1, 0, 1, 0, 2, ikmax )                ! start from 2 : surface value = 0 
    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( 1, 0, 1, 0 ) 
     198         DO_2D( 1, 0, 1, 0 )                      ! CAUTION pu,pv must be defined at row/column i=1 / j=1 
    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) ) 
     
    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( 0, 1, 0, 1 ) 
     285            DO_2D( 0, 1, 0, 1 )                      ! "coriolis+ time^-1" at u- & v-points 
    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

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

    r13333 r13497  
    231231         END_2D 
    232232         ! 
    233          !* interior equi-partition in R-G-B depending on vertical profile of Chl 
     233         !                                    !* interior equi-partition in R-G-B depending on vertical profile of Chl 
    234234         DO_3D( 0, 0, 0, 0, 2, nksr + 1 ) 
    235235            ze3t = e3t(ji,jj,jk-1,Kmm) 
     
    246246         END_3D 
    247247         ! 
    248          DO_3D( 0, 0, 0, 0, 1, nksr ) 
     248         DO_3D( 0, 0, 0, 0, 1, nksr )          !* now qsr induced heat content 
    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( 0, 0, 0, 0, 1, nksr ) 
     258         DO_3D( 0, 0, 0, 0, 1, nksr )             ! solar heat absorbed at T-point in the top 400m  
    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 ) 
     
    264264      END SELECT 
    265265      ! 
     266      !                          !-----------------------------! 
     267      !                          !  update to the temp. trend  ! 
    266268      !                          !-----------------------------! 
    267269      DO_3D( 0, 0, 0, 0, 1, nksr ) 
  • NEMO/trunk/src/OCE/TRA/trasbc.F90

    r13295 r13497  
    129129      END_2D 
    130130      IF( ln_linssh ) THEN                !* linear free surface   
    131          DO_2D( 0, 1, 0, 0 ) 
     131         DO_2D( 0, 1, 0, 0 )                    !==>> add concentration/dilution effect due to constant volume cell 
    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) 
    134          END_2D 
     134         END_2D                                 !==>> output c./d. term 
    135135         IF( iom_use('emp_x_sst') )   CALL iom_put( "emp_x_sst", emp (:,:) * pts(:,:,1,jp_tem,Kmm) ) 
    136136         IF( iom_use('emp_x_sss') )   CALL iom_put( "emp_x_sss", emp (:,:) * pts(:,:,1,jp_sal,Kmm) ) 
  • NEMO/trunk/src/OCE/TRA/trazdf.F90

    r13295 r13497  
    208208            !   used as a work space array: its value is modified. 
    209209            ! 
    210             DO_2D( 0, 0, 0, 0 ) 
     210            DO_2D( 0, 0, 0, 0 )      !* 1st recurrence:   Tk = Dk - Ik Sk-1 / Tk-1   (increasing k) ! done one for all passive tracers (so included in the IF instruction) 
    211211               zwt(ji,jj,1) = zwd(ji,jj,1) 
    212212            END_2D 
     
    217217         ENDIF  
    218218         !          
    219          DO_2D( 0, 0, 0, 0 ) 
     219         DO_2D( 0, 0, 0, 0 )         !* 2nd recurrence:    Zk = Yk - Ik / Tk-1  Zk-1 
    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) 
     
    227227         END_3D 
    228228         ! 
    229          DO_2D( 0, 0, 0, 0 ) 
     229         DO_2D( 0, 0, 0, 0 )         !* 3d recurrence:    Xk = (Zk - Sk Xk+1 ) / Tk   (result is the after tracer) 
    230230            pt(ji,jj,jpkm1,jn,Kaa) = pt(ji,jj,jpkm1,jn,Kaa) / zwt(ji,jj,jpkm1) * tmask(ji,jj,jpkm1) 
    231231         END_2D 
  • NEMO/trunk/src/OCE/TRA/zpshde.F90

    r13295 r13497  
    167167         CALL eos( ztj, zhj, zrj )        ! at the partial step depth output in  zri, zrj  
    168168         ! 
    169          DO_2D( 1, 0, 1, 0 ) 
     169         DO_2D( 1, 0, 1, 0 )              ! Gradient of density at the last level 
    170170            iku = mbku(ji,jj) 
    171171            ikv = mbkv(ji,jj) 
     
    329329         CALL eos( ztj, zhj, zrj ) 
    330330 
    331          DO_2D( 1, 0, 1, 0 ) 
     331         DO_2D( 1, 0, 1, 0 )            ! Gradient of density at the last level 
    332332            iku = mbku(ji,jj) 
    333333            ikv = mbkv(ji,jj) 
     
    420420         CALL eos( ztj, zhj, zrj )        ! at the partial step depth output in  zri, zrj  
    421421         ! 
    422          DO_2D( 1, 0, 1, 0 ) 
     422         DO_2D( 1, 0, 1, 0 )              ! Gradient of density at the last level 
    423423            iku = miku(ji,jj)  
    424424            ikv = mikv(ji,jj)  
  • NEMO/trunk/src/OCE/TRD/trddyn.F90

    r13295 r13497  
    124124                              z3dx(:,:,:) = 0._wp                  ! U.dxU & V.dyV (approximation) 
    125125                              z3dy(:,:,:) = 0._wp 
    126                               DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     126                              DO_3D( 0, 0, 0, 0, 1, jpkm1 )   ! no mask as un,vn are masked 
    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

    r13295 r13497  
    8686         ! 
    8787         CASE( 'TRA' )          !==  Tracers (T & S)  ==! 
    88             DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     88            DO_3D( 1, 1, 1, 1, 1, jpkm1 )   ! global sum of mask volume trend and trend*T (including interior mask) 
    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 
     
    218218         END_3D 
    219219          
    220          DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     220         DO_3D( 0, 0, 0, 0, 1, jpkm1 )    ! Density flux divergence at t-point 
    221221            zkepe(ji,jj,jk) = - (  zkz(ji,jj,jk) - zkz(ji  ,jj  ,jk+1)               & 
    222222               &                 + zkx(ji,jj,jk) - zkx(ji-1,jj  ,jk  )               & 
  • NEMO/trunk/src/OCE/TRD/trdmxl.F90

    r13295 r13497  
    120120         ! 
    121121         wkx(:,:,:) = 0._wp         !==  now ML weights for vertical averaging  ==! 
    122          DO_3D( 1, 1, 1, 1, 1, jpktrd ) 
     122         DO_3D( 1, 1, 1, 1, 1, jpktrd )  ! initialize wkx with vertical scale factor in mixed-layer 
    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

    r13295 r13497  
    210210      !!---------------------------------------------------------------------- 
    211211      ! 
    212       SELECT CASE( cdir )      ! shift depending on the direction 
     212      SELECT CASE( cdir )             ! shift depending on the direction 
    213213      CASE( 'X' )   ;   ii = 1   ;   ij = 0   ;   ik = 0      ! i-trend 
    214214      CASE( 'Y' )   ;   ii = 0   ;   ij = 1   ;   ik = 0      ! j-trend 
     
    216216      END SELECT 
    217217      ! 
    218       !                        ! set to zero uncomputed values 
     218      !                               ! set to zero uncomputed values 
    219219      ptrd(jpi,:,:) = 0._wp   ;   ptrd(1,:,:) = 0._wp 
    220220      ptrd(:,jpj,:) = 0._wp   ;   ptrd(:,1,:) = 0._wp 
    221221      ptrd(:,:,jpk) = 0._wp 
    222222      ! 
    223       DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     223      DO_3D( 0, 0, 0, 0, 1, jpkm1 )   ! advective trend 
    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

    r13295 r13497  
    103103      CASE( jpdyn_zad )   ;   CALL trd_vor_zint( putrd, pvtrd, jpvor_zad, Kmm )   ! Vertical Advection  
    104104      CASE( jpdyn_spg )   ;   CALL trd_vor_zint( putrd, pvtrd, jpvor_spg, Kmm )   ! Surface Pressure Grad.  
    105       CASE( jpdyn_zdf )                                                      ! Vertical Diffusion  
     105      CASE( jpdyn_zdf )                                                           ! Vertical Diffusion  
    106106         ztswu(:,:) = 0.e0   ;   ztswv(:,:) = 0.e0 
    107          DO_2D( 0, 0, 0, 0 ) 
     107         DO_2D( 0, 0, 0, 0 )                                                               ! wind stress trends 
    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 ) 
  • NEMO/trunk/src/OCE/USR/usrdef_istate.F90

    r13295 r13497  
    5757      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~~   Ocean at rest, with an horizontally uniform T and S profiles' 
    5858      ! 
    59       pu  (:,:,:) = 0._wp        ! ocean at rest 
     59      pu  (:,:,:) = 0._wp           ! ocean at rest 
    6060      pv  (:,:,:) = 0._wp 
    6161      pssh(:,:)   = 0._wp 
    6262      ! 
    63       DO_3D( 1, 1, 1, 1, 1, jpk ) 
     63      DO_3D( 1, 1, 1, 1, 1, jpk )   ! horizontally uniform T & S profiles 
    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/ZDF/zdfddm.F90

    r13295 r13497  
    9494!!gm                            and many acces in memory 
    9595          
    96          DO_2D( 1, 1, 1, 1 ) 
     96         DO_2D( 1, 1, 1, 1 )           !==  R=zrau = (alpha / beta) (dk[t] / dk[s])  ==! 
    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( 1, 1, 1, 1 ) 
     112         DO_2D( 1, 1, 1, 1 )           !==  indicators  ==! 
    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 
  • NEMO/trunk/src/OCE/ZDF/zdfdrg.F90

    r13477 r13497  
    431431            l_log_not_linssh = .FALSE.    !- don't update Cd at each time step 
    432432            ! 
    433             DO_2D( 1, 1, 1, 1 ) 
     433            DO_2D( 1, 1, 1, 1 )              ! pCd0 = mask (and boosted) logarithmic drag coef. 
    434434               zzz =  0.5_wp * e3t_0(ji,jj,k_mk(ji,jj)) 
    435435               zcd = (  vkarmn / LOG( zzz / rn_z0 )  )**2 
  • NEMO/trunk/src/OCE/ZDF/zdfgls.F90

    r13472 r13497  
    179179       
    180180      ! Compute surface, top and bottom friction at T-points 
    181       DO_2D( 0, 0, 0, 0 ) 
     181      DO_2D( 0, 0, 0, 0 )          !==  surface ocean friction 
    182182         ustar2_surf(ji,jj) = r1_rho0 * taum(ji,jj) * tmask(ji,jj,1)   ! surface friction 
    183183      END_2D 
     
    185185      !!gm Rq we may add here r_ke0(_top/_bot) ?  ==>> think about that... 
    186186      !     
    187       IF( .NOT.ln_drg_OFF ) THEN   !== top/bottom friction   (explicit before friction) 
    188          DO_2D( 0, 0, 0, 0 )       ! bottom friction (explicit before friction) 
     187      IF( .NOT.ln_drg_OFF ) THEN     !== top/bottom friction   (explicit before friction) 
     188         DO_2D( 0, 0, 0, 0 )         ! bottom friction (explicit before friction) 
    189189            zmsku = ( 2._wp - umask(ji-1,jj,mbkt(ji,jj)) * umask(ji,jj,mbkt(ji,jj)) ) 
    190190            zmskv = ( 2._wp - vmask(ji,jj-1,mbkt(ji,jj)) * vmask(ji,jj,mbkt(ji,jj)) )     ! (CAUTION: CdU<0) 
     
    193193         END_2D 
    194194         IF( ln_isfcav ) THEN 
    195             DO_2D( 0, 0, 0, 0 )    ! top friction 
     195            DO_2D( 0, 0, 0, 0 )      ! top friction 
    196196               zmsku = ( 2. - umask(ji-1,jj,mikt(ji,jj)) * umask(ji,jj,mikt(ji,jj)) ) 
    197197               zmskv = ( 2. - vmask(ji,jj-1,mikt(ji,jj)) * vmask(ji,jj,mikt(ji,jj)) )     ! (CAUTION: CdU<0) 
     
    220220      zhsro(:,:) = ( (1._wp-zice_fra(:,:)) * zhsro(:,:) + zice_fra(:,:) * rn_hsri )*tmask(:,:,1)  + (1._wp - tmask(:,:,1))*rn_hsro 
    221221      ! 
    222       DO_3D( 1, 0, 1, 0, 2, jpkm1 ) 
     222      DO_3D( 1, 0, 1, 0, 2, jpkm1 )  !==  Compute dissipation rate  ==! 
    223223         eps(ji,jj,jk)  = rc03 * en(ji,jj,jk) * SQRT( en(ji,jj,jk) ) / hmxl_n(ji,jj,jk) 
    224224      END_3D 
     
    416416      ! ---------------------------------------------------------- 
    417417      ! 
    418       DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
     418      DO_3D( 0, 0, 0, 0, 2, jpkm1 )                ! First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1 
    419419         zdiag(ji,jj,jk) = zdiag(ji,jj,jk) - zd_lw(ji,jj,jk) * zd_up(ji,jj,jk-1) / zdiag(ji,jj,jk-1) 
    420420      END_3D 
    421       DO_3D( 0, 0, 0, 0, 2, jpk ) 
     421      DO_3D( 0, 0, 0, 0, 2, jpk )                  ! Second recurrence : Lk = RHSk - Lk / Dk-1 * Lk-1 
    422422         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) 
    423423      END_3D 
    424       DO_3DS( 0, 0, 0, 0, jpk-1, 2, -1 ) 
     424      DO_3DS( 0, 0, 0, 0, jpk-1, 2, -1 )           ! thrid recurrence : Ek = ( Lk - Uk * Ek+1 ) / Dk 
    425425         en(ji,jj,jk) = ( zd_lw(ji,jj,jk) - zd_up(ji,jj,jk) * en(ji,jj,jk+1) ) / zdiag(ji,jj,jk) 
    426426      END_3D 
     
    610610      ! ---------------- 
    611611      ! 
    612       DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
     612      DO_3D( 0, 0, 0, 0, 2, jpkm1 )                ! First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1 
    613613         zdiag(ji,jj,jk) = zdiag(ji,jj,jk) - zd_lw(ji,jj,jk) * zd_up(ji,jj,jk-1) / zdiag(ji,jj,jk-1) 
    614614      END_3D 
    615       DO_3D( 0, 0, 0, 0, 2, jpk ) 
     615      DO_3D( 0, 0, 0, 0, 2, jpk )                  ! Second recurrence : Lk = RHSk - Lk / Dk-1 * Lk-1 
    616616         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) 
    617617      END_3D 
    618       DO_3DS( 0, 0, 0, 0, jpk-1, 2, -1 ) 
     618      DO_3DS( 0, 0, 0, 0, jpk-1, 2, -1 )           ! Third recurrence : Ek = ( Lk - Uk * Ek+1 ) / Dk 
    619619         psi(ji,jj,jk) = ( zd_lw(ji,jj,jk) - zd_up(ji,jj,jk) * psi(ji,jj,jk+1) ) / zdiag(ji,jj,jk) 
    620620      END_3D 
     
    652652      ! Limit dissipation rate under stable stratification 
    653653      ! -------------------------------------------------- 
    654       DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     654      DO_3D( 0, 0, 0, 0, 1, jpkm1 )   ! Note that this set boundary conditions on hmxl_n at the same time 
    655655         ! limitation 
    656656         eps   (ji,jj,jk)  = MAX( eps(ji,jj,jk), rn_epsmin ) 
     
    717717      ! default value, in case jpk > mbkt(ji,jj)+1. Not needed but avoid a bug when looking for undefined values (-fpe0) 
    718718      zstm(:,:,jpk) = 0.   
    719       DO_2D( 0, 0, 0, 0 ) 
     719      DO_2D( 0, 0, 0, 0 )             ! update bottom with good values 
    720720         zstm(ji,jj,mbkt(ji,jj)+1) = zstm(ji,jj,mbkt(ji,jj)) 
    721721      END_2D 
  • NEMO/trunk/src/OCE/ZDF/zdfiwm.F90

    r13417 r13497  
    164164      !                       !* Critical slope mixing: distribute energy over the time-varying ocean depth, 
    165165      !                                                 using an exponential decay from the seafloor. 
    166       DO_2D( 0, 0, 0, 0 ) 
     166      DO_2D( 0, 0, 0, 0 )             ! part independent of the level 
    167167         zhdep(ji,jj) = gdepw_0(ji,jj,mbkt(ji,jj)+1)       ! depth of the ocean 
    168168         zfact(ji,jj) = rho0 * (  1._wp - EXP( -zhdep(ji,jj) / hcri_iwm(ji,jj) )  ) 
     
    170170      END_2D 
    171171!!gm gde3w ==>>>  check for ssh taken into account.... seem OK gde3w_n=gdept(:,:,:,Kmm) - ssh(:,:,Kmm) 
    172       DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
     172      DO_3D( 0, 0, 0, 0, 2, jpkm1 )   ! complete with the level-dependent part 
    173173         IF ( zfact(ji,jj) == 0._wp .OR. wmask(ji,jj,jk) == 0._wp ) THEN   ! optimization 
    174174            zemx_iwm(ji,jj,jk) = 0._wp 
     
    293293      END_3D 
    294294      ! 
    295       IF( ln_mevar ) THEN              ! Variable mixing efficiency case : modify zav_wave in the 
    296          DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
     295      IF( ln_mevar ) THEN                ! Variable mixing efficiency case : modify zav_wave in the 
     296         DO_3D( 0, 0, 0, 0, 2, jpkm1 )   ! energetic (Reb > 480) and buoyancy-controlled (Reb <10.224 ) regimes 
    297297            IF( zReb(ji,jj,jk) > 480.00_wp ) THEN 
    298298               zav_wave(ji,jj,jk) = 3.6515_wp * znu_w(ji,jj,jk) * SQRT( zReb(ji,jj,jk) ) 
     
    303303      ENDIF 
    304304      ! 
    305       DO_3D( 0, 0, 0, 0, 2, jpkm1 )          ! Bound diffusivity by molecular value and 100 cm2/s 
     305      DO_3D( 0, 0, 0, 0, 2, jpkm1 )      ! Bound diffusivity by molecular value and 100 cm2/s 
    306306         zav_wave(ji,jj,jk) = MIN(  MAX( 1.4e-7_wp, zav_wave(ji,jj,jk) ), 1.e-2_wp  ) * wmask(ji,jj,jk) 
    307307      END_3D 
     
    330330      !                          ! ----------------------- ! 
    331331      !       
    332       IF( ln_tsdiff ) THEN          !* Option for differential mixing of salinity and temperature 
     332      IF( ln_tsdiff ) THEN                !* Option for differential mixing of salinity and temperature 
    333333         ztmp1 = 0.505_wp + 0.495_wp * TANH( 0.92_wp * ( LOG10( 1.e-20_wp ) - 0.60_wp ) ) 
    334          DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
     334         DO_3D( 0, 0, 0, 0, 2, jpkm1 )       ! Calculate S/T diffusivity ratio as a function of Reb 
    335335            ztmp2 = zReb(ji,jj,jk) * 5._wp * r1_6 
    336336            IF ( ztmp2 > 1.e-20_wp .AND. wmask(ji,jj,jk) == 1._wp ) THEN 
     
    347347         END_3D 
    348348         ! 
    349       ELSE                          !* update momentum & tracer diffusivity with wave-driven mixing 
     349      ELSE                                !* update momentum & tracer diffusivity with wave-driven mixing 
    350350         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    351351            p_avs(ji,jj,jk) = p_avs(ji,jj,jk) + zav_wave(ji,jj,jk) 
     
    355355      ENDIF 
    356356 
    357       !                             !* output internal wave-driven mixing coefficient 
     357      !                                   !* output internal wave-driven mixing coefficient 
    358358      CALL iom_put( "av_wave", zav_wave ) 
    359                                     !* output useful diagnostics: Kz*N^2 ,  
     359                                          !* output useful diagnostics: Kz*N^2 ,  
    360360!!gm Kz*N2 should take into account the ratio avs/avt if it is used.... (see diaar5) 
    361                                     !  vertical integral of rho0 * Kz * N^2 , energy density (zemx_iwm) 
     361                                          !  vertical integral of rho0 * Kz * N^2 , energy density (zemx_iwm) 
    362362      IF( iom_use("bflx_iwm") .OR. iom_use("pcmap_iwm") ) THEN 
    363363         ALLOCATE( z2d(jpi,jpj) , z3d(jpi,jpj,jpk) ) 
  • NEMO/trunk/src/OCE/ZDF/zdfmxl.F90

    r13295 r13497  
    9696      ! 
    9797      ! w-level of the mixing and mixed layers 
    98       nmln(:,:)  = nlb10               ! Initialization to the number of w ocean point 
    99       hmlp(:,:)  = 0._wp               ! here hmlp used as a dummy variable, integrating vertically N^2 
    100       zN2_c = grav * rho_c * r1_rho0   ! convert density criteria into N^2 criteria 
    101       DO_3D( 1, 1, 1, 1, nlb10, jpkm1 ) 
     98      nmln(:,:)  = nlb10                  ! Initialization to the number of w ocean point 
     99      hmlp(:,:)  = 0._wp                  ! here hmlp used as a dummy variable, integrating vertically N^2 
     100      zN2_c = grav * rho_c * r1_rho0      ! convert density criteria into N^2 criteria 
     101      DO_3D( 1, 1, 1, 1, nlb10, jpkm1 )   ! Mixed layer level: w-level 
    102102         ikt = mbkt(ji,jj) 
    103103         hmlp(ji,jj) =   & 
     
    107107      ! 
    108108      ! w-level of the turbocline and mixing layer (iom_use) 
    109       imld(:,:) = mbkt(:,:) + 1        ! Initialization to the number of w ocean point 
    110       DO_3DS( 1, 1, 1, 1, jpkm1, nlb10, -1 ) 
     109      imld(:,:) = mbkt(:,:) + 1                ! Initialization to the number of w ocean point 
     110      DO_3DS( 1, 1, 1, 1, jpkm1, nlb10, -1 )   ! from the bottom to nlb10 
    111111         IF( avt (ji,jj,jk) < avt_c * wmask(ji,jj,jk) )   imld(ji,jj) = jk      ! Turbocline  
    112112      END_3D 
  • NEMO/trunk/src/OCE/ZDF/zdfosm.F90

    r13295 r13497  
    11841184! KPP-style Ri# mixing 
    11851185       IF( ln_kpprimix) THEN 
    1186           DO_3D( 1, 0, 1, 0, 2, jpkm1 ) 
     1186          DO_3D( 1, 0, 1, 0, 2, jpkm1 )      !* Shear production at uw- and vw-points (energy conserving form) 
    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) & 
     
    15161516     ! 
    15171517     hbl(:,:)  = 0._wp              ! here hbl used as a dummy variable, integrating vertically N^2 
    1518      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     1518     DO_3D( 1, 1, 1, 1, 1, jpkm1 )  ! Mixed layer level: w-level 
    15191519        ikt = mbkt(ji,jj) 
    15201520        hbl(ji,jj) = hbl(ji,jj) + MAX( rn2(ji,jj,jk) , 0._wp ) * e3w(ji,jj,jk,Kmm) 
     
    16291629      !code saving tracer trends removed, replace with trdmxl_oce 
    16301630 
    1631       DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     1631      DO_3D( 0, 0, 0, 0, 1, jpkm1 )       ! add non-local u and v fluxes 
    16321632         puu(ji,jj,jk,Krhs) =  puu(ji,jj,jk,Krhs)                      & 
    16331633            &                 - (  ghamu(ji,jj,jk  )  & 
  • NEMO/trunk/src/OCE/ZDF/zdfric.F90

    r13295 r13497  
    160160      ! 
    161161      !                       !==  avm and avt = F(Richardson number)  ==! 
    162       DO_3D( 1, 0, 1, 0, 2, jpkm1 ) 
     162      DO_3D( 1, 0, 1, 0, 2, jpkm1 )       ! coefficient = F(richardson number) (avm-weighted Ri) 
    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( 0, 0, 0, 0 ) 
     175         DO_2D( 0, 0, 0, 0 )             !* Ekman depth 
    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( 0, 0, 0, 0, 2, jpkm1 ) 
     180         DO_3D( 0, 0, 0, 0, 2, jpkm1 )   !* minimum mixing coeff. within the Ekman layer 
    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

    r13295 r13497  
    6060      ! 
    6161      DO jk = 2, jpkm1 
    62          DO_2D( 1, 0, 1, 0 ) 
     62         DO_2D( 1, 0, 1, 0 )     !* 2 x shear production at uw- and vw-points (energy conserving form) 
    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( 0, 0, 0, 0 ) 
     74         DO_2D( 0, 0, 0, 0 )     !* shear production at w-point ! coast mask: =2 at the coast ; =1 otherwise (NB: wmask useless as zsh2 are masked) 
    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/zdftke.F90

    r13472 r13497  
    238238      !                     !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    239239      ! 
    240       DO_2D( 0, 0, 0, 0 ) 
     240      DO_2D( 0, 0, 0, 0 )         ! en(1)   = rn_ebb taum / rau0  (min value rn_emin0) 
    241241!! clem: this should be the right formulation but it makes the model unstable unless drags are calculated implicitly 
    242242!!       one way around would be to increase zbbirau  
     
    325325      !                     ! zdiag : diagonal zd_up : upper diagonal zd_lw : lower diagonal 
    326326      ! 
    327       IF( nn_pdl == 1 ) THEN      !* Prandtl number = F( Ri ) 
     327      IF( nn_pdl == 1 ) THEN          !* Prandtl number = F( Ri ) 
    328328         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    329329            !                             ! local Richardson number 
     
    338338      ENDIF 
    339339      !          
    340       DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
     340      DO_3D( 0, 0, 0, 0, 2, jpkm1 )   !* Matrix and right hand side in en 
    341341         zcof   = zfact1 * tmask(ji,jj,jk) 
    342342         !                                   ! A minimum of 2.e-5 m2/s is imposed on TKE vertical 
     
    358358      END_3D 
    359359      !                          !* Matrix inversion from level 2 (tke prescribed at level 1) 
    360       DO_3D( 0, 0, 0, 0, 3, jpkm1 ) 
     360      DO_3D( 0, 0, 0, 0, 3, jpkm1 )                ! First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1 
    361361         zdiag(ji,jj,jk) = zdiag(ji,jj,jk) - zd_lw(ji,jj,jk) * zd_up(ji,jj,jk-1) / zdiag(ji,jj,jk-1) 
    362362      END_3D 
    363       DO_2D( 0, 0, 0, 0 ) 
     363      DO_2D( 0, 0, 0, 0 )                          ! Second recurrence : Lk = RHSk - Lk / Dk-1 * Lk-1 
    364364         zd_lw(ji,jj,2) = en(ji,jj,2) - zd_lw(ji,jj,2) * en(ji,jj,1)    ! Surface boudary conditions on tke 
    365365      END_2D 
     
    367367         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) 
    368368      END_3D 
    369       DO_2D( 0, 0, 0, 0 ) 
     369      DO_2D( 0, 0, 0, 0 )                          ! thrid recurrence : Ek = ( Lk - Uk * Ek+1 ) / Dk 
    370370         en(ji,jj,jpkm1) = zd_lw(ji,jj,jpkm1) / zdiag(ji,jj,jpkm1) 
    371371      END_2D 
     
    373373         en(ji,jj,jk) = ( zd_lw(ji,jj,jk) - zd_up(ji,jj,jk) * en(ji,jj,jk+1) ) / zdiag(ji,jj,jk) 
    374374      END_3D 
    375       DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
     375      DO_3D( 0, 0, 0, 0, 2, jpkm1 )                ! set the minimum value of tke 
    376376         en(ji,jj,jk) = MAX( en(ji,jj,jk), rn_emin ) * wmask(ji,jj,jk) 
    377377      END_3D 
     
    396396         END_2D 
    397397      ELSEIF( nn_etau == 3 ) THEN       !* penetration belox the mixed layer (HF variability) 
    398          DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
     398         DO_3D( 0, 0, 0, 0, 2, jpkm1 )         ! nn_eice=0 : ON below sea-ice ; nn_eice>0 : partly OFF 
    399399            ztx2 = utau(ji-1,jj  ) + utau(ji,jj) 
    400400            zty2 = vtau(ji  ,jj-1) + vtau(ji,jj) 
     
    470470         zraug = vkarmn * 2.e5_wp / ( rho0 * grav ) 
    471471#if ! defined key_si3 && ! defined key_cice 
    472          DO_2D( 0, 0, 0, 0 ) 
     472         DO_2D( 0, 0, 0, 0 )                  ! No sea-ice 
    473473            zmxlm(ji,jj,1) =  zraug * taum(ji,jj) * tmask(ji,jj,1) 
    474474         END_2D 
     
    481481            END_2D 
    482482            ! 
    483          CASE( 1 )                           ! scaling with constant sea-ice thickness 
     483         CASE( 1 )                      ! scaling with constant sea-ice thickness 
    484484            DO_2D( 0, 0, 0, 0 ) 
    485485               zmxlm(ji,jj,1) =  ( ( 1._wp - fr_i(ji,jj) ) * zraug * taum(ji,jj) + & 
     
    487487            END_2D 
    488488            ! 
    489          CASE( 2 )                                 ! scaling with mean sea-ice thickness 
     489         CASE( 2 )                      ! scaling with mean sea-ice thickness 
    490490            DO_2D( 0, 0, 0, 0 ) 
    491491#if defined key_si3 
     
    499499            END_2D 
    500500            ! 
    501          CASE( 3 )                                 ! scaling with max sea-ice thickness 
     501         CASE( 3 )                      ! scaling with max sea-ice thickness 
    502502            DO_2D( 0, 0, 0, 0 ) 
    503503               zmaxice = MAXVAL( h_i(ji,jj,:) ) 
     
    551551         ! 
    552552      CASE ( 2 )           ! |dk[xml]| bounded by e3t : 
    553          DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
     553         DO_3D( 0, 0, 0, 0, 2, jpkm1 )        ! from the surface to the bottom : 
    554554            zmxlm(ji,jj,jk) =   & 
    555555               &    MIN( zmxlm(ji,jj,jk-1) + e3t(ji,jj,jk-1,Kmm), zmxlm(ji,jj,jk) ) 
    556556         END_3D 
    557          DO_3DS( 0, 0, 0, 0, jpkm1, 2, -1 ) 
     557         DO_3DS( 0, 0, 0, 0, jpkm1, 2, -1 )   ! from the bottom to the surface : 
    558558            zemxl = MIN( zmxlm(ji,jj,jk+1) + e3t(ji,jj,jk+1,Kmm), zmxlm(ji,jj,jk) ) 
    559559            zmxlm(ji,jj,jk) = zemxl 
     
    562562         ! 
    563563      CASE ( 3 )           ! lup and ldown, |dk[xml]| bounded by e3t : 
    564          DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
     564         DO_3D( 0, 0, 0, 0, 2, jpkm1 )        ! from the surface to the bottom : lup 
    565565            zmxld(ji,jj,jk) =    & 
    566566               &    MIN( zmxld(ji,jj,jk-1) + e3t(ji,jj,jk-1,Kmm), zmxlm(ji,jj,jk) ) 
    567567         END_3D 
    568          DO_3DS( 0, 0, 0, 0, jpkm1, 2, -1 ) 
     568         DO_3DS( 0, 0, 0, 0, jpkm1, 2, -1 )   ! from the bottom to the surface : ldown 
    569569            zmxlm(ji,jj,jk) =   & 
    570570               &    MIN( zmxlm(ji,jj,jk+1) + e3t(ji,jj,jk+1,Kmm), zmxlm(ji,jj,jk) ) 
     
    582582      !                     !  Vertical eddy viscosity and diffusivity  (avm and avt) 
    583583      !                     !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    584       DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     584      DO_3D( 0, 0, 0, 0, 1, jpkm1 )   !* vertical eddy viscosity & diffivity at w-points 
    585585         zsqen = SQRT( en(ji,jj,jk) ) 
    586586         zav   = rn_ediff * zmxlm(ji,jj,jk) * zsqen 
     
    591591      ! 
    592592      ! 
    593       IF( nn_pdl == 1 ) THEN      !* Prandtl number case: update avt 
     593      IF( nn_pdl == 1 ) THEN          !* Prandtl number case: update avt 
    594594         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    595595            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) 
  • NEMO/trunk/src/OFF/dtadyn.F90

    r13377 r13497  
    412412            ENDIF 
    413413         END_2D 
    414 !!st pourquoi on n'utilise pas le gde3w ici plutôt que de faire une boucle ?  
    415          DO_2D( 1, 1, 1, 1 ) 
     414         DO_2D( 1, 1, 1, 1 )                           ! set the associated depth 
    416415            h_rnf(ji,jj) = 0._wp 
    417416            DO jk = 1, nk_rnf(ji,jj) 
     
    688687      !!---------------------------------------------------------------------- 
    689688      ! 
    690 !!st code dupliqué même remarque que plus haut pourquoi ne pas utiliser gdepw ? 
    691       DO_2D( 1, 1, 1, 1 ) 
     689      DO_2D( 1, 1, 1, 1 )               ! update the depth over which runoffs are distributed 
    692690         h_rnf(ji,jj) = 0._wp 
    693691         DO jk = 1, nk_rnf(ji,jj)                           ! recalculates h_rnf to be the depth in metres 
  • NEMO/trunk/src/TOP/C14/trcatm_c14.F90

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

    r13295 r13497  
    126126          
    127127         !                                                         !------------! 
    128          DO_2D( 1, 1, 1, 1 ) 
    129   
     128         DO_2D( 1, 1, 1, 1 )                                       !  i-j loop  ! 
     129            !                                                      !------------! 
    130130            ! space interpolation 
    131131            zpp_cfc  =       xphem(ji,jj)   * zpatm(1,jl)   & 
  • NEMO/trunk/src/TOP/PISCES/P2Z/p2zopt.F90

    r13295 r13497  
    9595      !                                          ! Photosynthetically Available Radiation (PAR) 
    9696      zcoef = 12 * redf / rcchl / rpig           ! -------------------------------------- 
    97       DO_3D( 1, 1, 1, 1, 2, jpk ) 
     97      DO_3D( 1, 1, 1, 1, 2, jpk )                     ! local par at w-levels 
    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( 1, 1, 1, 1, 1, jpkm1 ) 
     104      DO_3D( 1, 1, 1, 1, 1, jpkm1 )                   ! mean par at t-levels 
    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( 1, 1, 1, 1, 1, jpkm1 ) 
     116      DO_3D( 1, 1, 1, 1, 1, jpkm1 )                   ! (i.e. 1rst T-level strictly below EL bottom) 
    117117        IF( etot(ji,jj,jk) >= zpar100(ji,jj) )   neln(ji,jj) = jk + 1  
    118118      END_3D 
  • NEMO/trunk/src/TOP/TRP/trdmxl_trc.F90

    r13295 r13497  
    148148         ! ... Weights for vertical averaging 
    149149         wkx_trc(:,:,:) = 0.e0 
    150          DO_3D( 1, 1, 1, 1, 1, jpktrd_trc ) 
     150         DO_3D( 1, 1, 1, 1, 1, jpktrd_trc )                       ! initialize wkx_trc with vertical scale factor in mixed-layer 
    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 
  • NEMO/trunk/src/TOP/trcdta.F90

    r13295 r13497  
    199199               WRITE(numout,*) 'trc_dta: interpolates passive tracer data onto the s- or mixed s-z-coordinate mesh' 
    200200            ENDIF 
    201             DO_2D( 1, 1, 1, 1 ) 
     201            DO_2D( 1, 1, 1, 1 )                 ! vertical interpolation of T & S 
    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.