Changeset 15033


Ignore:
Timestamp:
2021-06-21T12:24:45+02:00 (4 months ago)
Author:
smasson
Message:

trunk: suppress jpim1 et jpjm1, #2699

Location:
NEMO/trunk
Files:
20 edited

Legend:

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

    r14433 r15033  
    11681168      !! ** Purpose :  compute the max of the 9 points around 
    11691169      !!---------------------------------------------------------------------- 
    1170       REAL(wp), DIMENSION(:,:,:)      , INTENT(in ) ::   pice   ! input 
    1171       REAL(wp), DIMENSION(:,:,:)      , INTENT(out) ::   pmax   ! output 
    1172       REAL(wp), DIMENSION(2:jpim1,jpj)              ::   zmax   ! temporary array 
     1170      REAL(wp), DIMENSION(:,:,:), INTENT(in ) ::   pice   ! input 
     1171      REAL(wp), DIMENSION(:,:,:), INTENT(out) ::   pmax   ! output 
    11731172      INTEGER  ::   ji, jj, jl   ! dummy loop indices 
    11741173      !!---------------------------------------------------------------------- 
    11751174      DO jl = 1, jpl 
    1176          DO jj = Njs0-1, Nje0+1 
    1177             DO ji = Nis0, Nie0 
    1178                zmax(ji,jj) = MAX( epsi20, pice(ji,jj,jl), pice(ji-1,jj,jl), pice(ji+1,jj,jl) ) 
    1179             END DO 
    1180          END DO 
    1181          DO jj = Njs0, Nje0 
    1182             DO ji = Nis0, Nie0 
    1183                pmax(ji,jj,jl) = MAX( epsi20, zmax(ji,jj), zmax(ji,jj-1), zmax(ji,jj+1) ) 
    1184             END DO 
    1185          END DO 
     1175         DO_2D( 0, 0, 0, 0 ) 
     1176            pmax(ji,jj,jl) = MAX( epsi20, pice(ji-1,jj-1,jl), pice(ji,jj-1,jl), pice(ji+1,jj-1,jl),   & 
     1177               &                          pice(ji-1,jj  ,jl), pice(ji,jj  ,jl), pice(ji+1,jj  ,jl),   & 
     1178               &                          pice(ji-1,jj+1,jl), pice(ji,jj+1,jl), pice(ji+1,jj+1,jl) ) 
     1179         END_2D 
    11861180      END DO 
    11871181   END SUBROUTINE icemax3D 
     
    11921186      !! ** Purpose :  compute the max of the 9 points around 
    11931187      !!---------------------------------------------------------------------- 
    1194       REAL(wp), DIMENSION(:,:,:,:)    , INTENT(in ) ::   pice   ! input 
    1195       REAL(wp), DIMENSION(:,:,:,:)    , INTENT(out) ::   pmax   ! output 
    1196       REAL(wp), DIMENSION(2:jpim1,jpj)              ::   zmax   ! temporary array 
     1188      REAL(wp), DIMENSION(:,:,:,:), INTENT(in ) ::   pice   ! input 
     1189      REAL(wp), DIMENSION(:,:,:,:), INTENT(out) ::   pmax   ! output 
    11971190      INTEGER  ::   jlay, ji, jj, jk, jl   ! dummy loop indices 
    11981191      !!---------------------------------------------------------------------- 
     
    12001193      DO jl = 1, jpl 
    12011194         DO jk = 1, jlay 
    1202             DO jj = Njs0-1, Nje0+1 
    1203                DO ji = Nis0, Nie0 
    1204                   zmax(ji,jj) = MAX( epsi20, pice(ji,jj,jk,jl), pice(ji-1,jj,jk,jl), pice(ji+1,jj,jk,jl) ) 
    1205                END DO 
    1206             END DO 
    1207             DO jj = Njs0, Nje0 
    1208                DO ji = Nis0, Nie0 
    1209                   pmax(ji,jj,jk,jl) = MAX( epsi20, zmax(ji,jj), zmax(ji,jj-1), zmax(ji,jj+1) ) 
    1210                END DO 
    1211             END DO 
     1195            DO_2D( 0, 0, 0, 0 ) 
     1196               pmax(ji,jj,jk,jl) = MAX( epsi20, pice(ji-1,jj-1,jk,jl), pice(ji,jj-1,jk,jl), pice(ji+1,jj-1,jk,jl),   & 
     1197                  &                             pice(ji-1,jj  ,jk,jl), pice(ji,jj  ,jk,jl), pice(ji+1,jj  ,jk,jl),   & 
     1198                  &                             pice(ji-1,jj+1,jk,jl), pice(ji,jj+1,jk,jl), pice(ji+1,jj+1,jk,jl) ) 
     1199            END_2D 
    12121200         END DO 
    12131201      END DO 
  • NEMO/trunk/src/ICE/icedyn_adv_umx.F90

    r14433 r15033  
    867867      !                                                     !--  Laplacian in i-direction  --! 
    868868      DO jl = 1, jpl 
    869          DO jj = 2, jpjm1         ! First derivative (gradient) 
    870             DO ji = 1, jpim1 
    871                ztu1(ji,jj,jl) = ( pt(ji+1,jj,jl) - pt(ji,jj,jl) ) * r1_e1u(ji,jj) * umask(ji,jj,1) 
    872             END DO 
    873             !                     ! Second derivative (Laplacian) 
    874             DO ji = 2, jpim1 
    875                ztu2(ji,jj,jl) = ( ztu1(ji,jj,jl) - ztu1(ji-1,jj,jl) ) * r1_e1t(ji,jj) 
    876             END DO 
    877          END DO 
     869         DO_2D( 1, 0, 0, 0 )      ! First derivative (gradient) 
     870            ztu1(ji,jj,jl) = ( pt(ji+1,jj,jl) - pt(ji,jj,jl) ) * r1_e1u(ji,jj) * umask(ji,jj,1) 
     871         END_2D 
     872         DO_2D( 0, 0, 0, 0 )      ! Second derivative (Laplacian) 
     873            ztu2(ji,jj,jl) = ( ztu1(ji,jj,jl) - ztu1(ji-1,jj,jl) ) * r1_e1t(ji,jj) 
     874         END_2D 
    878875      END DO 
    879876      CALL lbc_lnk( 'icedyn_adv_umx', ztu2, 'T', 1.0_wp ) 
     
    881878      !                                                     !--  BiLaplacian in i-direction  --! 
    882879      DO jl = 1, jpl 
    883          DO jj = 2, jpjm1         ! Third derivative 
    884             DO ji = 1, jpim1 
    885                ztu3(ji,jj,jl) = ( ztu2(ji+1,jj,jl) - ztu2(ji,jj,jl) ) * r1_e1u(ji,jj) * umask(ji,jj,1) 
    886             END DO 
    887             !                     ! Fourth derivative 
    888             DO ji = 2, jpim1 
     880         DO_2D( 1, 0, 0, 0 )      ! Third derivative 
     881            ztu3(ji,jj,jl) = ( ztu2(ji+1,jj,jl) - ztu2(ji,jj,jl) ) * r1_e1u(ji,jj) * umask(ji,jj,1) 
     882         END_2D 
     883         DO_2D( 0, 0, 0, 0 )      ! Fourth derivative 
    889884               ztu4(ji,jj,jl) = ( ztu3(ji,jj,jl) - ztu3(ji-1,jj,jl) ) * r1_e1t(ji,jj) 
    890             END DO 
    891          END DO 
     885         END_2D 
    892886      END DO 
    893887      CALL lbc_lnk( 'icedyn_adv_umx', ztu4, 'T', 1.0_wp ) 
     
    10211015      !                                                     !--  BiLaplacian in j-direction  --! 
    10221016      DO jl = 1, jpl 
    1023          DO_2D( 0, 0, 1, 0 )         ! First derivative 
     1017         DO_2D( 0, 0, 1, 0 )         ! Third derivative 
    10241018            ztv3(ji,jj,jl) = ( ztv2(ji,jj+1,jl) - ztv2(ji,jj,jl) ) * r1_e2v(ji,jj) * vmask(ji,jj,1) 
    10251019         END_2D 
    1026          DO_2D( 0, 0, 0, 0 )         ! Second derivative 
     1020         DO_2D( 0, 0, 0, 0 )         ! Fourth derivative 
    10271021            ztv4(ji,jj,jl) = ( ztv3(ji,jj,jl) - ztv3(ji,jj-1,jl) ) * r1_e2t(ji,jj) 
    10281022         END_2D 
     
    16271621      !! ** Purpose :  compute the max of the 9 points around 
    16281622      !!---------------------------------------------------------------------- 
    1629       REAL(wp), DIMENSION(:,:,:)      , INTENT(in ) ::   pice   ! input 
    1630       REAL(wp), DIMENSION(:,:,:)      , INTENT(out) ::   pmax   ! output 
    1631       REAL(wp), DIMENSION(2:jpim1,jpj)              ::   zmax   ! temporary array 
     1623      REAL(wp), DIMENSION(:,:,:), INTENT(in ) ::   pice   ! input 
     1624      REAL(wp), DIMENSION(:,:,:), INTENT(out) ::   pmax   ! output 
    16321625      INTEGER  ::   ji, jj, jl   ! dummy loop indices 
    16331626      !!---------------------------------------------------------------------- 
    16341627      DO jl = 1, jpl 
    1635          DO jj = Njs0-1, Nje0+1 
    1636             DO ji = Nis0, Nie0 
    1637                zmax(ji,jj) = MAX( epsi20, pice(ji,jj,jl), pice(ji-1,jj,jl), pice(ji+1,jj,jl) ) 
    1638             END DO 
    1639          END DO 
    1640          DO jj = Njs0, Nje0 
    1641             DO ji = Nis0, Nie0 
    1642                pmax(ji,jj,jl) = MAX( epsi20, zmax(ji,jj), zmax(ji,jj-1), zmax(ji,jj+1) ) 
    1643             END DO 
    1644          END DO 
     1628         DO_2D( 0, 0, 0, 0 ) 
     1629            pmax(ji,jj,jl) = MAX( epsi20, pice(ji-1,jj-1,jl), pice(ji,jj-1,jl), pice(ji+1,jj-1,jl),   & 
     1630               &                          pice(ji-1,jj  ,jl), pice(ji,jj  ,jl), pice(ji+1,jj  ,jl),   & 
     1631               &                          pice(ji-1,jj+1,jl), pice(ji,jj+1,jl), pice(ji+1,jj+1,jl) ) 
     1632         END_2D 
    16451633      END DO 
    16461634   END SUBROUTINE icemax3D 
     
    16511639      !! ** Purpose :  compute the max of the 9 points around 
    16521640      !!---------------------------------------------------------------------- 
    1653       REAL(wp), DIMENSION(:,:,:,:)    , INTENT(in ) ::   pice   ! input 
    1654       REAL(wp), DIMENSION(:,:,:,:)    , INTENT(out) ::   pmax   ! output 
    1655       REAL(wp), DIMENSION(2:jpim1,jpj)              ::   zmax   ! temporary array 
     1641      REAL(wp), DIMENSION(:,:,:,:), INTENT(in ) ::   pice   ! input 
     1642      REAL(wp), DIMENSION(:,:,:,:), INTENT(out) ::   pmax   ! output 
    16561643      INTEGER  ::   jlay, ji, jj, jk, jl   ! dummy loop indices 
    16571644      !!---------------------------------------------------------------------- 
     
    16591646      DO jl = 1, jpl 
    16601647         DO jk = 1, jlay 
    1661             DO jj = Njs0-1, Nje0+1 
    1662                DO ji = Nis0, Nie0 
    1663                   zmax(ji,jj) = MAX( epsi20, pice(ji,jj,jk,jl), pice(ji-1,jj,jk,jl), pice(ji+1,jj,jk,jl) ) 
    1664                END DO 
    1665             END DO 
    1666             DO jj = Njs0, Nje0 
    1667                DO ji = Nis0, Nie0 
    1668                   pmax(ji,jj,jk,jl) = MAX( epsi20, zmax(ji,jj), zmax(ji,jj-1), zmax(ji,jj+1) ) 
    1669                END DO 
    1670             END DO 
     1648            DO_2D( 0, 0, 0, 0 ) 
     1649               pmax(ji,jj,jk,jl) = MAX( epsi20, pice(ji-1,jj-1,jk,jl), pice(ji,jj-1,jk,jl), pice(ji+1,jj-1,jk,jl),   & 
     1650                  &                             pice(ji-1,jj  ,jk,jl), pice(ji,jj  ,jk,jl), pice(ji+1,jj  ,jk,jl),   & 
     1651                  &                             pice(ji-1,jj+1,jk,jl), pice(ji,jj+1,jk,jl), pice(ji+1,jj+1,jk,jl) ) 
     1652            END_2D 
    16711653         END DO 
    16721654      END DO 
  • NEMO/trunk/src/OCE/CRS/crs.F90

    r14433 r15033  
    4343      INTEGER  ::  narea_full, narea_crs        !: node 
    4444      INTEGER  ::  jpnij_full, jpnij_crs        !: =jpni*jpnj, the pe decomposition 
    45       INTEGER  ::  jpim1_full, jpjm1_full       !:  
     45!!$      INTEGER  ::  jpim1_full, jpjm1_full       !:  
    4646      INTEGER  ::  nimpp_full, njmpp_full       !: global position of point (1,1) of subdomain on parent grid 
    4747      INTEGER  ::  nimpp_crs, njmpp_crs         !: set to 1,1 for now .  Valid only for monoproc 
     
    247247      jpi    = jpi_full 
    248248      jpj    = jpj_full 
    249       jpim1  = jpim1_full 
    250       jpjm1  = jpjm1_full 
     249!!$      jpim1  = jpim1_full 
     250!!$      jpjm1  = jpjm1_full 
    251251!!$      jperio = nperio_full 
    252252 
     
    286286      jpi    = jpi_crs 
    287287      jpj    = jpj_crs 
    288       jpim1  = jpi_crsm1 
    289       jpjm1  = jpj_crsm1 
     288!!$      jpim1  = jpi_crsm1 
     289!!$      jpjm1  = jpj_crsm1 
    290290!!$      jperio = nperio_crs 
    291291 
  • NEMO/trunk/src/OCE/DOM/domwri.F90

    r14433 r15033  
    200200      zr1(:)   = 0._wp 
    201201      ! 
    202       DO ji = 2, jpim1 
    203          DO jj = 2, jpjm1 
    204             DO jk = 1, jpkm1 
    205 !!gm   remark: dk(gdepw) = e3t   ===>>>  possible simplification of the following calculation.... 
    206 !!             especially since it is gde3w which is used to compute the pressure gradient 
    207 !!             furthermore, I think gdept_0 should be used below instead of w point in the numerator 
    208 !!             so that the ratio is computed at the same point (i.e. uw and vw) .... 
    209                zr1(1) = ABS(  ( gdepw_0(ji  ,jj,jk  )-gdepw_0(ji-1,jj,jk  )               &  
    210                     &          +gdepw_0(ji  ,jj,jk+1)-gdepw_0(ji-1,jj,jk+1) )             & 
    211                     &       / ( gdepw_0(ji  ,jj,jk  )+gdepw_0(ji-1,jj,jk  )               & 
    212                     &          -gdepw_0(ji  ,jj,jk+1)-gdepw_0(ji-1,jj,jk+1) + rsmall )  ) * umask(ji-1,jj,jk) 
    213                zr1(2) = ABS(  ( gdepw_0(ji+1,jj,jk  )-gdepw_0(ji  ,jj,jk  )               & 
    214                     &          +gdepw_0(ji+1,jj,jk+1)-gdepw_0(ji  ,jj,jk+1) )             & 
    215                     &       / ( gdepw_0(ji+1,jj,jk  )+gdepw_0(ji  ,jj,jk  )               & 
    216                     &          -gdepw_0(ji+1,jj,jk+1)-gdepw_0(ji  ,jj,jk+1) + rsmall )  ) * umask(ji  ,jj,jk) 
    217                zr1(3) = ABS(  ( gdepw_0(ji,jj+1,jk  )-gdepw_0(ji,jj  ,jk  )               & 
    218                     &          +gdepw_0(ji,jj+1,jk+1)-gdepw_0(ji,jj  ,jk+1) )             & 
    219                     &       / ( gdepw_0(ji,jj+1,jk  )+gdepw_0(ji,jj  ,jk  )               & 
    220                     &          -gdepw_0(ji,jj+1,jk+1)-gdepw_0(ji,jj  ,jk+1) + rsmall )  ) * vmask(ji,jj  ,jk) 
    221                zr1(4) = ABS(  ( gdepw_0(ji,jj  ,jk  )-gdepw_0(ji,jj-1,jk  )               & 
    222                     &          +gdepw_0(ji,jj  ,jk+1)-gdepw_0(ji,jj-1,jk+1) )             & 
    223                     &       / ( gdepw_0(ji,jj  ,jk  )+gdepw_0(ji,jj-1,jk  )               & 
    224                     &          -gdepw_0(ji,jj  ,jk+1)-gdepw_0(ji,jj-1,jk+1) + rsmall )  ) * vmask(ji,jj-1,jk) 
    225                zrxmax = MAXVAL( zr1(1:4) ) 
    226                zx1(ji,jj) = MAX( zx1(ji,jj) , zrxmax ) 
    227             END DO 
    228          END DO 
    229       END DO 
     202      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     203         !!gm   remark: dk(gdepw) = e3t   ===>>>  possible simplification of the following calculation.... 
     204         !!             especially since it is gde3w which is used to compute the pressure gradient 
     205         !!             furthermore, I think gdept_0 should be used below instead of w point in the numerator 
     206         !!             so that the ratio is computed at the same point (i.e. uw and vw) .... 
     207         zr1(1) = ABS(  ( gdepw_0(ji  ,jj,jk  )-gdepw_0(ji-1,jj,jk  )               &  
     208            &            +gdepw_0(ji  ,jj,jk+1)-gdepw_0(ji-1,jj,jk+1) )             & 
     209            &         / ( gdepw_0(ji  ,jj,jk  )+gdepw_0(ji-1,jj,jk  )               & 
     210            &            -gdepw_0(ji  ,jj,jk+1)-gdepw_0(ji-1,jj,jk+1) + rsmall )  ) * umask(ji-1,jj,jk) 
     211         zr1(2) = ABS(  ( gdepw_0(ji+1,jj,jk  )-gdepw_0(ji  ,jj,jk  )               & 
     212            &            +gdepw_0(ji+1,jj,jk+1)-gdepw_0(ji  ,jj,jk+1) )             & 
     213            &         / ( gdepw_0(ji+1,jj,jk  )+gdepw_0(ji  ,jj,jk  )               & 
     214            &            -gdepw_0(ji+1,jj,jk+1)-gdepw_0(ji  ,jj,jk+1) + rsmall )  ) * umask(ji  ,jj,jk) 
     215         zr1(3) = ABS(  ( gdepw_0(ji,jj+1,jk  )-gdepw_0(ji,jj  ,jk  )               & 
     216            &            +gdepw_0(ji,jj+1,jk+1)-gdepw_0(ji,jj  ,jk+1) )             & 
     217            &         / ( gdepw_0(ji,jj+1,jk  )+gdepw_0(ji,jj  ,jk  )               & 
     218            &            -gdepw_0(ji,jj+1,jk+1)-gdepw_0(ji,jj  ,jk+1) + rsmall )  ) * vmask(ji,jj  ,jk) 
     219         zr1(4) = ABS(  ( gdepw_0(ji,jj  ,jk  )-gdepw_0(ji,jj-1,jk  )               & 
     220            &            +gdepw_0(ji,jj  ,jk+1)-gdepw_0(ji,jj-1,jk+1) )             & 
     221            &         / ( gdepw_0(ji,jj  ,jk  )+gdepw_0(ji,jj-1,jk  )               & 
     222            &            -gdepw_0(ji,jj  ,jk+1)-gdepw_0(ji,jj-1,jk+1) + rsmall )  ) * vmask(ji,jj-1,jk) 
     223         zrxmax = MAXVAL( zr1(1:4) ) 
     224         zx1(ji,jj) = MAX( zx1(ji,jj) , zrxmax ) 
     225      END_3D 
    230226      CALL lbc_lnk( 'domwri', zx1, 'T', 1.0_wp ) 
    231227      ! 
  • NEMO/trunk/src/OCE/DYN/dynldf_lap_blp.F90

    r14834 r15033  
    114114            ! 
    115115            DO_2D( iij-1, iij, iij-1, iij ) 
    116                !                                      ! ahm * e3 * curl  (computed from 1 to jpim1/jpjm1) 
     116               !                                      ! ahm * e3 * curl  (warning: computed for ji-1,jj-1) 
    117117               zcur(ji-1,jj-1) = ahmf(ji-1,jj-1,jk) * e3f(ji-1,jj-1,jk) * r1_e1e2f(ji-1,jj-1)       &   ! ahmf already * by fmask 
    118118                  &     * (  e2v(ji  ,jj-1) * pv(ji  ,jj-1,jk) - e2v(ji-1,jj-1) * pv(ji-1,jj-1,jk)  & 
    119119                  &        - e1u(ji-1,jj  ) * pu(ji-1,jj  ,jk) + e1u(ji-1,jj-1) * pu(ji-1,jj-1,jk)  ) 
    120                !                                      ! ahm * div        (computed from 2 to jpi/jpj) 
     120               !                                      ! ahm * div        (warning: computed for ji,jj) 
    121121               zdiv(ji,jj)     = ahmt(ji,jj,jk) * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kbb)               &   ! ahmt already * by tmask 
    122122                  &     * (  e2u(ji,jj)*e3u(ji,jj,jk,Kbb) * pu(ji,jj,jk) - e2u(ji-1,jj)*e3u(ji-1,jj,jk,Kbb) * pu(ji-1,jj,jk)  & 
  • NEMO/trunk/src/OCE/DYN/dynldf_lap_blp_lf.F90

    r14834 r15033  
    101101         ! 
    102102         DO_3D( iij-1, iij-1, iij-1, iij-1, 1, jpkm1 )                           ! Horizontal slab 
    103             !                                      ! ahm * e3 * curl  (computed from 1 to jpim1/jpjm1) 
     103            !                                      ! ahm * e3 * curl  (warning: computed for ji-1,jj-1) 
    104104            zcur     = ahmf(ji,jj,jk) * e3f(ji,jj,jk) * r1_e1e2f(ji,jj)               &   ! ahmf already * by fmask    
    105105               &       * ( e2v(ji+1,jj) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk)  & 
     
    111111               &       * ( e2v(ji,jj) * pv(ji,jj,jk) - e2v(ji-1,jj) * pv(ji-1,jj,jk)  & 
    112112               &       - e1u(ji-1,jj+1) * pu(ji-1,jj+1,jk) + e1u(ji-1,jj) * pu(ji-1,jj,jk) ) 
    113             !                                      ! ahm * div        (computed from 2 to jpi/jpj) 
     113            !                                      ! ahm * div        (warning: computed for ji,jj) 
    114114            zdiv     = ahmt(ji,jj,jk) * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kbb)               &   ! ahmt already * by tmask 
    115115               &     * ( e2u(ji,jj)*e3u(ji,jj,jk,Kbb) * pu(ji,jj,jk) - e2u(ji-1,jj)*e3u(ji-1,jj,jk,Kbb) * pu(ji-1,jj,jk)  & 
  • NEMO/trunk/src/OCE/IOM/iom.F90

    r15023 r15033  
    23162316      REAL(wp), DIMENSION(jpi,jpj), INTENT(in) ::   plat 
    23172317      ! 
    2318       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zmask 
     2318      REAL(wp), DIMENSION(A2D(0),jpk) ::   zmask 
    23192319      INTEGER :: jn 
    23202320      INTEGER, DIMENSION(nijtile) :: ini, inj, idb 
     
    23572357         ! mask land points, keep values on coast line -> specific mask for U, V and W points 
    23582358         SELECT CASE ( cdgrd ) 
    2359          CASE('T')   ;   zmask( :     , :     ,:) = tmask(:,:,:) 
    2360          CASE('U')   ;   zmask(2:jpim1, :     ,:) = tmask(2:jpim1, :     ,:) + tmask(3:jpi  , :   ,:) 
    2361          CASE('V')   ;   zmask( :     ,2:jpjm1,:) = tmask( :     ,2:jpjm1,:) + tmask( :     ,3:jpj,:) 
    2362          CASE('F')   ;   zmask(2:jpim1,2:jpjm1,:) = tmask(2:jpim1,2:jpjm1,:) + tmask(2:jpim1,3:jpj,:)    & 
    2363             &                                     + tmask(3:jpi  ,2:jpjm1,:) + tmask(3:jpi  ,3:jpj,:) 
    2364          CASE('W')   ;   zmask(:,:,2:jpk  ) = tmask(:,:,1:jpkm1) + tmask(:,:,2:jpk)   ;   zmask(:,:,1) = tmask(:,:,1) 
     2359         CASE('T')   ;   zmask(:,:,:) = tmask(Nis0  :Nie0  , Njs0:Nje0,:) 
     2360         CASE('U')   ;   zmask(:,:,:) = tmask(Nis0  :Nie0  , Njs0:Nje0,:) + tmask(Nis0+1:Nie0+1, Njs0  :Nje0  ,:) 
     2361         CASE('V')   ;   zmask(:,:,:) = tmask(Nis0  :Nie0  , Njs0:Nje0,:) + tmask(Nis0  :Nie0  , Njs0+1:Nje0+1,:) 
     2362         CASE('F')   ;   zmask(:,:,:) = tmask(Nis0  :Nie0  , Njs0:Nje0,:) + tmask(Nis0  :Nie0  , Njs0+1:Nje0+1,:)   & 
     2363            &                         + tmask(Nis0+1:Nie0+1, Njs0:Nje0,:) + tmask(Nis0+1:Nie0+1, Njs0+1:Nje0+1,:) 
     2364         CASE('W')   ;   zmask(:,:,2:jpk) = tmask(Nis0:Nie0, Njs0:Nje0,1:jpkm1) + tmask(Nis0:Nie0, Njs0:Nje0,2:jpk) 
     2365                         zmask(:,:,1    ) = tmask(Nis0:Nie0, Njs0:Nje0,1) 
    23652366         END SELECT 
    23662367         ! 
    2367          CALL iom_set_domain_attr( "grid_"//cdgrd             , mask=RESHAPE(zmask(Nis0:Nie0,Njs0:Nje0,1),(/Ni_0*Nj_0    /)) /= 0. ) 
    2368          CALL iom_set_grid_attr  ( "grid_"//cdgrd//"_3D"      , mask=RESHAPE(zmask(Nis0:Nie0,Njs0:Nje0,:),(/Ni_0,Nj_0,jpk/)) /= 0. ) 
    2369          CALL iom_set_domain_attr( "grid_"//cdgrd//"_inner"   , mask=RESHAPE(zmask(Nis0:Nie0,Njs0:Nje0,1),(/Ni_0*Nj_0    /)) /= 0. ) 
    2370          CALL iom_set_grid_attr  ( "grid_"//cdgrd//"_3D_inner", mask=RESHAPE(zmask(Nis0:Nie0,Njs0:Nje0,:),(/Ni_0,Nj_0,jpk/)) /= 0. ) 
     2368         CALL iom_set_domain_attr( "grid_"//cdgrd             , mask=RESHAPE(zmask(:,:,1),(/Ni_0*Nj_0    /)) /= 0. ) 
     2369         CALL iom_set_grid_attr  ( "grid_"//cdgrd//"_3D"      , mask=RESHAPE(zmask(:,:,:),(/Ni_0,Nj_0,jpk/)) /= 0. ) 
     2370         CALL iom_set_domain_attr( "grid_"//cdgrd//"_inner"   , mask=RESHAPE(zmask(:,:,1),(/Ni_0*Nj_0    /)) /= 0. ) 
     2371         CALL iom_set_grid_attr  ( "grid_"//cdgrd//"_3D_inner", mask=RESHAPE(zmask(:,:,:),(/Ni_0,Nj_0,jpk/)) /= 0. ) 
    23712372      ENDIF 
    23722373      ! 
  • NEMO/trunk/src/OCE/LBC/mpp_lnk_icb_generic.h90

    r14433 r15033  
    5656      !                                           !* Cyclic east-west 
    5757      IF( l_Iperio ) THEN 
    58          pt2d(1-kexti:     1   ,:) = pt2d(jpim1-kexti: jpim1 ,:)       ! east 
     58         pt2d(1-kexti:     1   ,:) = pt2d(jpi-1-kexti: jpi-1 ,:)       ! east 
    5959         pt2d(  jpi  :jpi+kexti,:) = pt2d(     2     :2+kexti,:)       ! west 
    6060         ! 
     
    7070      !                                      ! North-South boundaries 
    7171      IF( l_Jperio ) THEN                         !* cyclic (only with no mpp j-split) 
    72          pt2d(:,1-kextj:     1   ) = pt2d(:,jpjm1-kextj:  jpjm1)       ! north 
     72         pt2d(:,1-kextj:     1   ) = pt2d(:,jpj-1-kextj:  jpj-1)       ! north 
    7373         pt2d(:,  jpj  :jpj+kextj) = pt2d(:,     2     :2+kextj)       ! south 
    7474      ELSE                                        !* closed 
  • NEMO/trunk/src/OCE/LBC/mppini.F90

    r15023 r15033  
    13381338      Nj_0 = Nje0 - Njs0 + 1 
    13391339      ! 
    1340       ! old indices to be removed... 
    1341       jpim1 = jpi-1                             ! inner domain indices 
    1342       jpjm1 = jpj-1                             !   "           " 
    13431340      jpkm1 = jpk-1                             !   "           " 
    13441341      ! 
  • NEMO/trunk/src/OCE/OBS/obs_read_altbias.F90

    r13286 r15033  
    1616   USE par_oce, ONLY : &        ! Domain parameters 
    1717      & jpi, & 
    18       & jpj, & 
    19       & jpim1 
     18      & jpj 
    2019   USE in_out_manager, ONLY : & ! I/O manager 
    2120      & lwp,    & 
  • NEMO/trunk/src/OCE/OBS/obs_sstbias.F90

    r13286 r15033  
    1414   USE par_oce, ONLY : &        ! Domain parameters 
    1515      & jpi, & 
    16       & jpj, & 
    17       & jpim1 
     16      & jpj 
    1817   USE in_out_manager, ONLY : & ! I/O manager 
    1918      & lwp,    & 
  • NEMO/trunk/src/OCE/TRD/trdvor.F90

    r14433 r15033  
    9595      !!---------------------------------------------------------------------- 
    9696 
     97      CALL lbc_lnk( 'trdvor', putrd, 'U', -1.0_wp , pvtrd, 'V', -1.0_wp )      ! lateral boundary condition 
     98 
    9799      SELECT CASE( ktrd )  
    98100      CASE( jpdyn_hpg )   ;   CALL trd_vor_zint( putrd, pvtrd, jpvor_prg, Kmm )   ! Hydrostatique Pressure Gradient  
     
    104106      CASE( jpdyn_spg )   ;   CALL trd_vor_zint( putrd, pvtrd, jpvor_spg, Kmm )   ! Surface Pressure Grad.  
    105107      CASE( jpdyn_zdf )                                                           ! Vertical Diffusion  
    106          ztswu(:,:) = 0.e0   ;   ztswv(:,:) = 0.e0 
    107          DO_2D( 0, 0, 0, 0 )                                                               ! wind stress trends 
     108         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls )                                                               ! wind stress trends 
    108109            ztswu(ji,jj) = 0.5 * ( utau_b(ji,jj) + utau(ji,jj) ) / ( e3u(ji,jj,1,Kmm) * rho0 ) 
    109110            ztswv(ji,jj) = 0.5 * ( vtau_b(ji,jj) + vtau(ji,jj) ) / ( e3v(ji,jj,1,Kmm) * rho0 ) 
    110111         END_2D 
    111          ! 
    112112         CALL trd_vor_zint( putrd, pvtrd, jpvor_zdf, Kmm )                             ! zdf trend including surf./bot. stresses  
    113113         CALL trd_vor_zint( ztswu, ztswv, jpvor_swf, Kmm )                             ! surface wind stress  
     
    142142      !!                  vortrd (,, 9) = Beta V 
    143143      !!                  vortrd (,,10) = forcing term 
    144       !!                  vortrd (,,11) = bottom friction term 
     144      !!      vortrd (,,11) = bottom friction term 
    145145      !!                  rotot(,) : total cumulative trends over nn_write-1 time steps 
    146146      !!                  vor_avrtot(,) : first membre of vrticity equation 
     
    149149      !!      trends output in netCDF format using ioipsl 
    150150      !!---------------------------------------------------------------------- 
    151       INTEGER                     , INTENT(in   ) ::   ktrd       ! ocean trend index 
    152       INTEGER                     , INTENT(in   ) ::   Kmm        ! time level index 
    153       REAL(wp), DIMENSION(jpi,jpj), INTENT(inout) ::   putrdvor   ! u vorticity trend  
    154       REAL(wp), DIMENSION(jpi,jpj), INTENT(inout) ::   pvtrdvor   ! v vorticity trend 
     151      INTEGER                     , INTENT(in) ::   ktrd       ! ocean trend index 
     152      INTEGER                     , INTENT(in) ::   Kmm        ! time level index 
     153      REAL(wp), DIMENSION(jpi,jpj), INTENT(in) ::   putrdvor   ! u vorticity trend  
     154      REAL(wp), DIMENSION(jpi,jpj), INTENT(in) ::   pvtrdvor   ! v vorticity trend 
    155155      ! 
    156156      INTEGER ::   ji, jj       ! dummy loop indices 
     
    159159      !!---------------------------------------------------------------------- 
    160160 
    161       ! 
    162  
    163       zudpvor(:,:) = 0._wp                 ;   zvdpvor(:,:) = 0._wp                    ! Initialisation 
    164       CALL lbc_lnk( 'trdvor', putrdvor, 'U', -1.0_wp , pvtrdvor, 'V', -1.0_wp )      ! lateral boundary condition 
    165        
    166  
    167161      !  ===================================== 
    168162      !  I vertical integration of 2D trends 
     
    172166      ! 
    173167      CASE( jpvor_bfr )        ! bottom friction 
    174          DO_2D( 0, 0, 0, 0 ) 
     168         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    175169            ikbu = mbkv(ji,jj) 
    176170            ikbv = mbkv(ji,jj)             
     
    190184    
    191185      ! Curl 
    192       DO ji = 1, jpim1 
    193          DO jj = 1, jpjm1 
    194             vortrd(ji,jj,ktrd) = (    zvdpvor(ji+1,jj) - zvdpvor(ji,jj)       & 
    195                  &                - ( zudpvor(ji,jj+1) - zudpvor(ji,jj) )   ) & 
    196                  &                  / ( e1f(ji,jj) * e2f(ji,jj) ) 
    197          END DO 
    198       END DO 
    199       vortrd(:,:,ktrd) = vortrd(:,:,ktrd) * fmask(:,:,1)      ! Surface mask 
     186      DO_2D( 0, 0, 0, 0 ) 
     187         vortrd(ji,jj,ktrd) = (    zvdpvor(ji+1,jj) - zvdpvor(ji,jj)       & 
     188            &                  - ( zudpvor(ji,jj+1) - zudpvor(ji,jj) )   ) & 
     189            &                  / ( e1f(ji,jj) * e2f(ji,jj) ) * fmask(ji,jj,1) 
     190      END_2D 
    200191 
    201192      IF( ndebug /= 0 ) THEN 
     
    235226      !!---------------------------------------------------------------------- 
    236227      ! 
    237       INTEGER                         , INTENT(in   ) ::   ktrd       ! ocean trend index 
    238       INTEGER                         , INTENT(in   ) ::   Kmm        ! time level index 
    239       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   putrdvor   ! u vorticity trend  
    240       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pvtrdvor   ! v vorticity trend 
     228      INTEGER                         , INTENT(in) ::   ktrd       ! ocean trend index 
     229      INTEGER                         , INTENT(in) ::   Kmm        ! time level index 
     230      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in) ::   putrdvor   ! u vorticity trend  
     231      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in) ::   pvtrdvor   ! v vorticity trend 
    241232      ! 
    242233      INTEGER ::   ji, jj, jk   ! dummy loop indices 
    243       REAL(wp), DIMENSION(jpi,jpj) :: zubet  , zvbet    ! Beta.V    
    244234      REAL(wp), DIMENSION(jpi,jpj) :: zudpvor, zvdpvor  ! total cmulative trends 
    245235      !!---------------------------------------------------------------------- 
    246       
    247       ! Initialization 
    248       zubet  (:,:) = 0._wp 
    249       zvbet  (:,:) = 0._wp 
    250       zudpvor(:,:) = 0._wp 
    251       zvdpvor(:,:) = 0._wp 
    252       !                            ! lateral boundary condition on input momentum trends 
    253       CALL lbc_lnk( 'trdvor', putrdvor, 'U', -1.0_wp , pvtrdvor, 'V', -1.0_wp ) 
    254236 
    255237      !  ===================================== 
     
    265247      ! as Beta.V term need intergration, not average 
    266248      IF( ktrd == jpvor_pvo ) THEN  
    267          zubet(:,:) = zudpvor(:,:) 
    268          zvbet(:,:) = zvdpvor(:,:) 
    269          DO ji = 1, jpim1 
    270             DO jj = 1, jpjm1 
    271                vortrd(ji,jj,jpvor_bev) = (    zvbet(ji+1,jj) - zvbet(ji,jj)     & 
    272                   &                       - ( zubet(ji,jj+1) - zubet(ji,jj) ) ) & 
    273                   &                           / ( e1f(ji,jj) * e2f(ji,jj) ) 
    274             END DO 
    275          END DO 
    276          ! Average of the Curl and Surface mask 
    277          vortrd(:,:,jpvor_bev) = vortrd(:,:,jpvor_bev) * r1_hu(:,:,Kmm) * fmask(:,:,1) 
     249         DO_2D( 0, 0, 0, 0 ) 
     250            vortrd(ji,jj,jpvor_bev) = (    zvdpvor(ji+1,jj) - zvdpvor(ji,jj)     & 
     251               &                       - ( zudpvor(ji,jj+1) - zudpvor(ji,jj) ) ) & 
     252               &                           / ( e1f(ji,jj) * e2f(ji,jj) ) * r1_hu(ji,jj,Kmm) * fmask(ji,jj,1) 
     253         END_2D 
    278254      ENDIF 
    279255      ! 
     
    283259      ! 
    284260      ! Curl 
    285       DO ji=1,jpim1 
    286          DO jj=1,jpjm1 
    287             vortrd(ji,jj,ktrd) = (    zvdpvor(ji+1,jj) - zvdpvor(ji,jj)     & 
    288                &                  - ( zudpvor(ji,jj+1) - zudpvor(ji,jj) ) ) & 
    289                &                         / ( e1f(ji,jj) * e2f(ji,jj) ) 
    290          END DO 
    291       END DO 
    292       ! Surface mask 
    293       vortrd(:,:,ktrd) = vortrd(:,:,ktrd) * fmask(:,:,1) 
     261      DO_2D( 0, 0, 0, 0 ) 
     262         vortrd(ji,jj,ktrd) = (    zvdpvor(ji+1,jj) - zvdpvor(ji,jj)     & 
     263            &                  - ( zudpvor(ji,jj+1) - zudpvor(ji,jj) ) ) & 
     264            &                         / ( e1f(ji,jj) * e2f(ji,jj) ) * fmask(ji,jj,1) 
     265      END_2D 
    294266    
    295267      IF( ndebug /= 0 ) THEN 
     
    346318 
    347319      ! Curl 
    348       DO ji = 1, jpim1 
    349          DO jj = 1, jpjm1 
    350             vor_avr(ji,jj) = (  ( zvv(ji+1,jj) - zvv(ji,jj) )    & 
    351                &              - ( zuu(ji,jj+1) - zuu(ji,jj) ) )  & 
    352                &             / ( e1f(ji,jj) * e2f(ji,jj) ) * fmask(ji,jj,1) 
    353          END DO 
    354       END DO 
     320      DO_2D( 0, 0, 0, 0 ) 
     321         vor_avr(ji,jj) = (  ( zvv(ji+1,jj) - zvv(ji,jj) )    & 
     322            &              - ( zuu(ji,jj+1) - zuu(ji,jj) ) )  & 
     323            &             / ( e1f(ji,jj) * e2f(ji,jj) ) * fmask(ji,jj,1) 
     324      END_2D 
    355325       
    356326      !  ================================= 
  • NEMO/trunk/src/OCE/par_oce.F90

    r14976 r15033  
    5858   INTEGER, PUBLIC ::   jpj   !                                                    !: second dimension 
    5959   INTEGER, PUBLIC ::   jpk   ! = jpkglo                                           !: third  dimension 
    60    INTEGER, PUBLIC ::   jpim1 ! = jpi-1                                            !: inner domain indices 
    61    INTEGER, PUBLIC ::   jpjm1 ! = jpj-1                                            !:   -     -      - 
    6260   INTEGER, PUBLIC ::   jpkm1 ! = jpk-1                                            !:   -     -      - 
    6361   INTEGER, PUBLIC ::   jpij  ! = jpi*jpj                                          !:  jpi x jpj 
  • NEMO/trunk/src/TOP/PISCES/SED/par_sed.F90

    r14086 r15033  
    1414      jpi      =>   jpi   ,  & !: first  dimension of grid --> i 
    1515      jpj      =>   jpj   ,  & !: second dimension of grid --> j 
    16       jpim1    =>   jpim1 ,  & !: jpi - 1 
    17       jpjm1    =>   jpjm1 ,  & !: jpj - 1 
    1816      jpij     =>   jpij  ,  & !: jpi x jpj 
    1917      jp_tem   =>   jp_tem,  & !: indice of temperature 
  • NEMO/trunk/src/TOP/oce_trc.F90

    r14433 r15033  
    1212   USE par_oce , ONLY :   jpj      =>   jpj        !: second dimension of grid --> j   
    1313   USE par_oce , ONLY :   jpk      =>   jpk        !: number of levels   
    14    USE par_oce , ONLY :   jpim1    =>   jpim1      !: jpi - 1 
    15    USE par_oce , ONLY :   jpjm1    =>   jpjm1      !: jpj - 1  
    1614   USE par_oce , ONLY :   jpkm1    =>   jpkm1      !: jpk - 1   
    1715   USE par_oce , ONLY :   jpij     =>   jpij       !: jpi x jpj 
  • NEMO/trunk/tests/DOME/MY_SRC/usrdef_zgr.F90

    r14976 r15033  
    8686      ! at u/v/f-point: averaging zht 
    8787      zhu(:,:) = 600_wp ; zhv(:,:) = 600_wp ; zhf(:,:) = 600_wp 
    88       DO ji = 1, jpim1 
    89          zhu(ji,:) = 0.5_wp * ( zht(ji,:) + zht(ji+1,:) ) 
    90       END DO 
    91       DO jj = 1, jpjm1 
    92          zhv(:,jj) = 0.5_wp * ( zht(:,jj) + zht(:,jj+1) ) 
    93       END DO 
    94       DO jj = 1, jpjm1 
    95          DO ji = 1, jpim1 
    96             zhf(ji,jj) = 0.25_wp * (  zht(ji,jj  ) + zht(ji+1,jj  ) & 
    97                        &            + zht(ji,jj+1) + zht(ji+1,jj+1) )  
    98          END DO 
    99       END DO 
     88      DO_2D( 0, 0, 0, 0 ) 
     89         zhu(ji,jj) =  0.5_wp * ( zht(ji,jj  ) + zht(ji+1,jj  ) ) 
     90         zhv(jj,jj) =  0.5_wp * ( zht(ji,jj  ) + zht(ji  ,jj+1) ) 
     91         zhf(ji,jj) = 0.25_wp * ( zht(ji,jj  ) + zht(ji+1,jj  ) & 
     92                       &        + zht(ji,jj+1) + zht(ji+1,jj+1) )  
     93      END_2D 
    10094      CALL lbc_lnk( 'usrdef_zgr', zhu, 'U', 1.0_wp, zhv, 'V', 1.0_wp, zhf, 'F', 1.0_wp)       
    10195      !      
  • NEMO/trunk/tests/OVERFLOW/MY_SRC/usrdef_zgr.F90

    r14857 r15033  
    9090      ! 
    9191      ! at u-point: averaging zht 
    92       DO ji = 1, jpim1 
    93          zhu(ji,:) = 0.5_wp * ( zht(ji,:) + zht(ji+1,:) ) 
    94       END DO 
     92      DO_2D( 0, 0, 0, 0 ) 
     93         zhu(ji,jj) = 0.5_wp * ( zht(ji,jj) + zht(ji+1,jj) ) 
     94      END_2D 
    9595      CALL lbc_lnk( 'usrdef_zgr', zhu, 'U', 1. )     ! boundary condition: this mask the surrouding grid-points 
    9696      !                                ! ==>>>  set by hand non-zero value on first/last columns & rows  
  • NEMO/trunk/tests/SWG/MY_SRC/usrdef_sbc.F90

    r14433 r15033  
    3232   PUBLIC   usrdef_sbc_ice_flx   ! routine called by icestp.F90 for ice thermo 
    3333       
     34   !! * Substitutions 
     35#  include "do_loop_substitute.h90" 
    3436   !!---------------------------------------------------------------------- 
    3537   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    8486      ztauv = - REAL( rn_tau, wp ) * SIN( rn_theta * rad )   ! N.m-2 
    8587       
    86       DO jj = 1, jpj 
    87          DO ji = 1, jpi 
    88            ! length of the domain : 2000km x 2000km  
    89            utau(ji,jj) = - ztauu * COS( rpi * gphiu(ji,jj) / 2000000._wp) 
    90            vtau(ji,jj) = - ztauv * COS( rpi * gphiv(ji,jj) / 2000000._wp) 
    91          END DO 
    92       END DO 
    93       
     88      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
     89         ! length of the domain : 2000km x 2000km  
     90         utau(ji,jj) = - ztauu * COS( rpi * gphiu(ji,jj) / 2000000._wp) 
     91         vtau(ji,jj) = - ztauv * COS( rpi * gphiv(ji,jj) / 2000000._wp) 
     92      END_2D 
     93       
    9494      ! module of wind stress and wind speed at T-point 
    9595      zcoef = 1. / ( zrhoa * zcdrag )  
    96       DO jj = 2, jpjm1 
    97          DO ji = 2, jpim1 
    98             ztx = utau(ji-1,jj  ) + utau(ji,jj)  
    99             zty = vtau(ji  ,jj-1) + vtau(ji,jj)  
    100             zmod = 0.5 * SQRT( ztx * ztx + zty * zty ) 
    101             taum(ji,jj) = zmod 
    102             wndm(ji,jj) = SQRT( zmod * zcoef ) 
    103          END DO 
    104       END DO 
    105        
     96      DO_2D( 0, 0, 0, 0 ) 
     97         ztx = utau(ji-1,jj  ) + utau(ji,jj)  
     98         zty = vtau(ji  ,jj-1) + vtau(ji,jj)  
     99         zmod = 0.5 * SQRT( ztx * ztx + zty * zty ) 
     100         taum(ji,jj) = zmod 
     101         wndm(ji,jj) = SQRT( zmod * zcoef ) 
     102      END_2D 
    106103      CALL lbc_lnk( 'usrdef_sbc', taum(:,:), 'T', 1. , wndm(:,:), 'T', 1. ) 
    107104      ! 
  • NEMO/trunk/tests/SWG/MY_SRC/usrdef_zgr.F90

    r14433 r15033  
    3131   PUBLIC   usr_def_zgr        ! called by domzgr.F90 
    3232 
     33   !! * Substitutions 
     34#  include "do_loop_substitute.h90" 
    3335   !!---------------------------------------------------------------------- 
    3436   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    197199      zxlim1 = 2010000._wp    ! 2010km 
    198200      ! 
    199       DO jj = 1, jpj 
    200          DO ji = 1, jpi 
     201      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    201202         ! if T point in the 2000 km x 2000 km domain 
    202203         ! IF ( gphit(ji,jj) > zylim0 .AND. gphit(ji,jj) < zylim1 .AND. &  
     
    205206         IF ( gphiv(ji,jj) > zylim0 .AND. gphiv(ji,jj) < zylim1 .AND. &  
    206207            & glamu(ji,jj) > zxlim0 .AND. glamu(ji,jj) < zxlim1       )  THEN 
    207          k_top(ji,jj) = 1    ! = ocean 
    208          k_bot(ji,jj) = NINT( z2d(ji,jj) ) 
     208            k_top(ji,jj) = 1    ! = ocean 
     209            k_bot(ji,jj) = NINT( z2d(ji,jj) ) 
    209210         ELSE 
    210          k_top(ji,jj) = 0    ! = land 
    211          k_bot(ji,jj) = 0 
     211            k_top(ji,jj) = 0    ! = land 
     212            k_bot(ji,jj) = 0 
    212213         END IF 
    213          END DO 
    214       END DO 
     214      END_2D 
    215215      ! mask the lonely corners 
    216       DO jj = 2, jpjm1 
    217          DO ji = 2, jpim1 
     216      DO_2D( 0, 0, 0, 0 ) 
    218217         zcoeff = k_top(ji+1,jj) + k_top(ji,jj+1)   & 
    219218            +     k_top(ji-1,jj) + k_top(ji,jj-1) 
     
    222221            k_bot(ji,jj) = 0 
    223222         END IF 
    224          END DO 
    225       END DO 
    226       ! 
     223      END_2D 
    227224      ! 
    228225   END SUBROUTINE zgr_msk_top_bot 
  • NEMO/trunk/tests/WAD/MY_SRC/usrdef_zgr.F90

    r14433 r15033  
    230230 
    231231      ! at u-point: averaging zht 
    232       DO ji = 1, jpim1 
    233          zhu(ji,:) = 0.5_wp * ( zht(ji,:) + zht(ji+1,:) ) 
    234       END DO 
     232      DO_2D( 0, 0, 0, 0 ) 
     233         zhu(ji,jj) = 0.5_wp * ( zht(ji,jj) + zht(ji+1,jj) ) 
     234      END_2D 
    235235      CALL lbc_lnk( 'usrdef_zgr', zhu, 'U', 1. )     ! boundary condition: this mask the surrounding grid-points 
    236236      !                                ! ==>>>  set by hand non-zero value on first/last columns & rows  
Note: See TracChangeset for help on using the changeset viewer.