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

Changeset 13295 for NEMO/trunk/src/ICE


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/ICE
Files:
16 edited

Legend:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    r13226 r13295  
    7171 
    7272      ! tresholds for outputs 
    73       DO_2D_11_11 
     73      DO_2D( 1, 1, 1, 1 ) 
    7474         zmsk00(ji,jj) = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - epsi06  ) ) ! 1 if ice    , 0 if no ice 
    7575         zmsk05(ji,jj) = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - 0.05_wp ) ) ! 1 if 5% ice , 0 if less 
     
    7878      END_2D 
    7979      DO jl = 1, jpl 
    80          DO_2D_11_11 
     80         DO_2D( 1, 1, 1, 1 ) 
    8181            zmsk00l(ji,jj,jl)  = MAX( 0._wp , SIGN( 1._wp , a_i(ji,jj,jl) - epsi06 ) ) 
    8282            zmsksnl(ji,jj,jl)  = MAX( 0._wp , SIGN( 1._wp , v_s(ji,jj,jl) - epsi06 ) ) 
     
    130130      ! 
    131131      IF( iom_use('icevel') .OR. iom_use('fasticepres') ) THEN                                                              ! module of ice velocity 
    132          DO_2D_00_00 
     132         DO_2D( 0, 0, 0, 0 ) 
    133133            z2da  = u_ice(ji,jj) + u_ice(ji-1,jj) 
    134134            z2db  = v_ice(ji,jj) + v_ice(ji,jj-1) 
Note: See TracChangeset for help on using the changeset viewer.