New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 13295 for NEMO/trunk/src/SWE – NEMO

Changeset 13295 for NEMO/trunk/src/SWE


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

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

Location:
NEMO/trunk/src/SWE
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/SWE/asminc.F90

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

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

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

    r12983 r13295  
    131131      ! 
    132132      tmask(:,:,:) = 0._wp 
    133       DO_2D_11_11 
     133      DO_2D( 1, 1, 1, 1 ) 
    134134         iktop = k_top(ji,jj) 
    135135         ikbot = k_bot(ji,jj) 
     
    153153         CALL iom_get ( inum, jpdom_data, 'bdy_msk', bdytmask(:,:) ) 
    154154         CALL iom_close( inum ) 
    155          DO_3D_11_11( 1, jpkm1 ) 
     155         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    156156            tmask(ji,jj,jk) = tmask(ji,jj,jk) * bdytmask(ji,jj) 
    157157         END_3D 
     
    194194!!an  
    195195      ! ssfmask(:,:) = MAXVAL( fmask(:,:,:), DIM=3 ) 
    196       DO_2D_10_10 
     196      DO_2D( 1, 0, 1, 0 ) 
    197197         ssfmask(ji,jj) = MAX(  tmask(ji,jj+1,1), tmask(ji+1,jj+1,1),  &  
    198198            &                   tmask(ji,jj  ,1), tmask(ji+1,jj  ,1)   ) 
     
    245245         DO jk = 1, jpk 
    246246            zwf(:,:) = fmask(:,:,jk)          
    247             DO_2D_00_00 
     247            DO_2D( 0, 0, 0, 0 ) 
    248248               IF( fmask(ji,jj,jk) == 0._wp ) THEN 
    249249                  fmask(ji,jj,jk) = rn_shlat * MIN( 1._wp , MAX( zwf(ji+1,jj), zwf(ji,jj+1),   & 
  • NEMO/trunk/src/SWE/domvvl.F90

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

    r12983 r13295  
    197197         IF( ln_linssh ) THEN             ! Fixed volume ! 
    198198            !                             ! =============! 
    199             DO_3D_11_11( 1, jpkm1 ) 
     199            DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    200200               puu(ji,jj,jk,Kmm) = puu(ji,jj,jk,Kmm) + rn_atfp * ( puu(ji,jj,jk,Kbb) - 2._wp * puu(ji,jj,jk,Kmm) + puu(ji,jj,jk,Kaa) ) 
    201201               pvv(ji,jj,jk,Kmm) = pvv(ji,jj,jk,Kmm) + rn_atfp * ( pvv(ji,jj,jk,Kbb) - 2._wp * pvv(ji,jj,jk,Kmm) + pvv(ji,jj,jk,Kaa) ) 
     
    232232               CALL dom_vvl_interpol( ssh(:,:,Kmm), pe3u(:,:,:,Kmm), 'U' ) 
    233233               CALL dom_vvl_interpol( ssh(:,:,Kmm), pe3v(:,:,:,Kmm), 'V' ) 
    234                DO_3D_11_11( 1, jpkm1 ) 
     234               DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    235235                  puu(ji,jj,jk,Kmm) = puu(ji,jj,jk,Kmm) + rn_atfp * ( puu(ji,jj,jk,Kbb) - 2._wp * puu(ji,jj,jk,Kmm) + puu(ji,jj,jk,Kaa) ) 
    236236                  pvv(ji,jj,jk,Kmm) = pvv(ji,jj,jk,Kmm) + rn_atfp * ( pvv(ji,jj,jk,Kbb) - 2._wp * pvv(ji,jj,jk,Kmm) + pvv(ji,jj,jk,Kaa) ) 
     
    243243               CALL dom_vvl_interpol( ssh(:,:,Kmm), ze3u_f, 'U' ) 
    244244               CALL dom_vvl_interpol( ssh(:,:,Kmm), ze3v_f, 'V' ) 
    245                DO_3D_11_11( 1, jpkm1 ) 
     245               DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    246246                  zue3a = pe3u(ji,jj,jk,Kaa) * puu(ji,jj,jk,Kaa) 
    247247                  zve3a = pe3v(ji,jj,jk,Kaa) * pvv(ji,jj,jk,Kaa) 
  • NEMO/trunk/src/SWE/dynkeg.F90

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

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

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

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

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

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

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

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