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

Changeset 14765


Ignore:
Timestamp:
2021-04-29T16:25:38+02:00 (3 years ago)
Author:
hadcv
Message:

#2600: Merge in dev_r14393_HPC-03_Mele_Comm_Cleanup [14757]

Location:
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src
Files:
44 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DOM/domqco.F90

    r14752 r14765  
    159159#if ! defined key_qcoTest_FluxForm 
    160160      !                                ! no 'key_qcoTest_FluxForm' : surface weighted ssh average 
    161       ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    162161      DO_2D_OVR( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    163162         pr3u(ji,jj) = 0.5_wp * (  e1e2t(ji  ,jj) * pssh(ji  ,jj)  & 
     
    168167!!st      ELSE                                         !- Flux Form   (simple averaging) 
    169168#else 
    170       ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    171169      DO_2D_OVR( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    172170         pr3u(ji,jj) = 0.5_wp * (  pssh(ji,jj) + pssh(ji+1,jj  )  ) * r1_hu_0(ji,jj) 
     
    177175      ! 
    178176      IF( .NOT.PRESENT( pr3f ) ) THEN              !- lbc on ratio at u-, v-points only 
    179          IF (nn_hls.eq.1) CALL lbc_lnk( 'dom_qco_r3c', pr3u, 'U', 1._wp, pr3v, 'V', 1._wp ) 
     177         IF (nn_hls==1) CALL lbc_lnk( 'dom_qco_r3c', pr3u, 'U', 1._wp, pr3v, 'V', 1._wp ) 
    180178         ! 
    181179         ! 
     
    186184         !                                ! no 'key_qcoTest_FluxForm' : surface weighted ssh average 
    187185 
    188       ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 )                               ! start from 1 since lbc_lnk('F') doesn't update the 1st row/line 
    189186      DO_2D_OVR( nn_hls, nn_hls-1, nn_hls, nn_hls-1 )                               ! start from 1 since lbc_lnk('F') doesn't update the 1st row/line 
    190187         ! round brackets added to fix the order of floating point operations 
     
    200197!!st         ELSE                                      !- Flux Form   (simple averaging) 
    201198#else 
    202       ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 )                               ! start from 1 since lbc_lnk('F') doesn't update the 1st row/line 
    203199      DO_2D_OVR( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    204200         ! round brackets added to fix the order of floating point operations 
     
    212208#endif 
    213209         !                                                 ! lbc on ratio at u-,v-,f-points 
    214          IF (nn_hls.eq.1) CALL lbc_lnk( 'dom_qco_r3c', pr3u, 'U', 1._wp, pr3v, 'V', 1._wp, pr3f, 'F', 1._wp ) 
     210         IF (nn_hls==1) CALL lbc_lnk( 'dom_qco_r3c', pr3u, 'U', 1._wp, pr3v, 'V', 1._wp, pr3f, 'F', 1._wp ) 
    215211         ! 
    216212      ENDIF 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DYN/divhor.F90

    r14751 r14765  
    7979      ENDIF 
    8080      ! 
    81       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpkm1 )                                    !==  Horizontal divergence  ==! 
    8281      DO_3D_OVR( nn_hls-1, nn_hls, nn_hls-1, nn_hls, 1, jpkm1 )                                    !==  Horizontal divergence  ==! 
    8382         ! round brackets added to fix the order of floating point operations 
     
    101100      IF( ln_isf )                      CALL isf_hdiv( kt, Kmm, hdiv )           !==  ice shelf         ==!   (update hdiv field) 
    102101      ! 
    103       IF (nn_hls.eq.1) CALL lbc_lnk( 'divhor', hdiv, 'T', 1.0_wp )   !   (no sign change) 
     102      IF (nn_hls==1) CALL lbc_lnk( 'divhor', hdiv, 'T', 1.0_wp )   !   (no sign change) 
    104103      ! 
    105104      IF( ln_timing )   CALL timing_stop('div_hor') 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DYN/dynadv_ubs.F90

    r14751 r14765  
    112112         END_2D 
    113113         !             
    114          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 )                       ! laplacian  
    115          DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 )                       ! laplacian 
    116  
    117             ! NOTE: [halo1-halo2] zlu_uu/zlv_vv expressions expanded and brackets added to make results independent of nn_hls 
    118             zlu_uu(ji,jj,jk,1) = ( (puu (ji+1,jj  ,jk,Kbb) - puu (ji  ,jj  ,jk,Kbb)) +                         & 
    119                &                   (puu (ji-1,jj  ,jk,Kbb) - puu (ji  ,jj  ,jk,Kbb)) ) * umask(ji  ,jj  ,jk) 
    120             zlv_vv(ji,jj,jk,1) = ( (pvv (ji  ,jj+1,jk,Kbb) - pvv (ji  ,jj  ,jk,Kbb)) +                         & 
    121                &                   (pvv (ji  ,jj-1,jk,Kbb) - pvv (ji  ,jj  ,jk,Kbb)) ) * vmask(ji  ,jj  ,jk) 
     114         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 )                       ! laplacia 
     115            ! round brackets added to fix the order of floating point operations 
     116            ! needed to ensure halo 1 - halo 2 compatibility 
     117            zlu_uu(ji,jj,jk,1) = ( ( puu (ji+1,jj  ,jk,Kbb) - puu (ji  ,jj  ,jk,Kbb) & 
     118               &                   )                                                 & ! bracket for halo 1 - halo 2 compatibility 
     119               &                 + ( puu (ji-1,jj  ,jk,Kbb) - puu (ji  ,jj  ,jk,Kbb) & 
     120               &                   )                                                 & ! bracket for halo 1 - halo 2 compatibility 
     121               &                 ) * umask(ji  ,jj  ,jk) 
     122            zlv_vv(ji,jj,jk,1) = ( ( pvv (ji  ,jj+1,jk,Kbb) - pvv (ji  ,jj  ,jk,Kbb) & 
     123               &                   )                                                 & ! bracket for halo 1 - halo 2 compatibility 
     124               &                 + ( pvv (ji  ,jj-1,jk,Kbb) - pvv (ji  ,jj  ,jk,Kbb) & 
     125               &                   )                                                 & ! bracket for halo 1 - halo 2 compatibility 
     126               &                 ) * vmask(ji  ,jj  ,jk) 
    122127            zlu_uv(ji,jj,jk,1) = (  puu (ji  ,jj+1,jk,Kbb) - puu (ji  ,jj  ,jk,Kbb)  ) * fmask(ji  ,jj  ,jk)   & 
    123128               &               - (  puu (ji  ,jj  ,jk,Kbb) - puu (ji  ,jj-1,jk,Kbb)  ) * fmask(ji  ,jj-1,jk) 
     
    125130               &               - (  pvv (ji  ,jj  ,jk,Kbb) - pvv (ji-1,jj  ,jk,Kbb)  ) * fmask(ji-1,jj  ,jk) 
    126131            ! 
    127             ! NOTE: [halo1-halo2] zlu_uu/zlv_vv expressions expanded and brackets added to make results independent of nn_hls 
    128             zlu_uu(ji,jj,jk,2) = ( (zfu(ji+1,jj  ,jk) - zfu(ji  ,jj  ,jk)) +                                   & 
    129                &                   (zfu(ji-1,jj  ,jk) - zfu(ji  ,jj  ,jk)) ) * umask(ji  ,jj  ,jk) 
    130             zlv_vv(ji,jj,jk,2) = ( (zfv(ji  ,jj+1,jk) - zfv(ji  ,jj  ,jk)) +                                   & 
    131                &                   (zfv(ji  ,jj-1,jk) - zfv(ji  ,jj  ,jk)) ) * vmask(ji  ,jj  ,jk) 
     132            ! round brackets added to fix the order of floating point operations 
     133            ! needed to ensure halo 1 - halo 2 compatibility 
     134            zlu_uu(ji,jj,jk,2) = ( ( zfu(ji+1,jj  ,jk) - zfu(ji  ,jj  ,jk)           & 
     135               &                   )                                                 & ! bracket for halo 1 - halo 2 compatibility 
     136               &                 + ( zfu(ji-1,jj  ,jk) - zfu(ji  ,jj  ,jk)           & 
     137               &                   )                                                 & ! bracket for halo 1 - halo 2 compatibility 
     138               &                 ) * umask(ji  ,jj  ,jk) 
     139            zlv_vv(ji,jj,jk,2) = ( ( zfv(ji  ,jj+1,jk) - zfv(ji  ,jj  ,jk)           & 
     140               &                   )                                                 & ! bracket for halo 1 - halo 2 compatibility 
     141               &                 + ( zfv(ji  ,jj-1,jk) - zfv(ji  ,jj  ,jk)           & 
     142               &                   )                                                 & ! bracket for halo 1 - halo 2 compatibility 
     143               &                 ) * vmask(ji  ,jj  ,jk) 
    132144            zlu_uv(ji,jj,jk,2) = (  zfu(ji  ,jj+1,jk) - zfu(ji  ,jj  ,jk)  ) * fmask(ji  ,jj  ,jk)             & 
    133145               &               - (  zfu(ji  ,jj  ,jk) - zfu(ji  ,jj-1,jk)  ) * fmask(ji  ,jj-1,jk) 
     
    137149      END DO 
    138150      ! NOTE: [tiling] sign reversal necessary for results to be independent of nn_hls (bug in trunk) 
    139       IF( nn_hls.eq.1 ) CALL lbc_lnk( 'dynadv_ubs', zlu_uu(:,:,:,1), 'U', -1.0_wp , zlu_uv(:,:,:,1), 'U', -1.0_wp,  & 
    140                                                 &   zlu_uu(:,:,:,2), 'U', -1.0_wp , zlu_uv(:,:,:,2), 'U', -1.0_wp,  & 
    141                                                 &   zlv_vv(:,:,:,1), 'V', -1.0_wp , zlv_vu(:,:,:,1), 'V', -1.0_wp,  & 
    142                                                 &   zlv_vv(:,:,:,2), 'V', -1.0_wp , zlv_vu(:,:,:,2), 'V', -1.0_wp   ) 
     151      IF( nn_hls == 1 ) CALL lbc_lnk( 'dynadv_ubs', zlu_uu(:,:,:,1), 'U', -1.0_wp , zlu_uv(:,:,:,1), 'U', -1.0_wp,  & 
     152                                              &   zlu_uu(:,:,:,2), 'U', -1.0_wp , zlu_uv(:,:,:,2), 'U', -1.0_wp,  & 
     153                                              &   zlv_vv(:,:,:,1), 'V', -1.0_wp , zlv_vu(:,:,:,1), 'V', -1.0_wp,  & 
     154                                              &   zlv_vv(:,:,:,2), 'V', -1.0_wp , zlv_vu(:,:,:,2), 'V', -1.0_wp   ) 
    143155      ! 
    144156      !                                      ! ====================== ! 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DYN/dynatf.F90

    r14751 r14765  
    201201         IF( ln_linssh ) THEN             ! Fixed volume ! 
    202202            !                             ! =============! 
    203             ! [comm_cleanup ] ! DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    204203            DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 
    205204               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) ) 
     
    238237               CALL dom_vvl_interpol( pe3t(:,:,:,Kmm), pe3u(:,:,:,Kmm), 'U' ) 
    239238               CALL dom_vvl_interpol( pe3t(:,:,:,Kmm), pe3v(:,:,:,Kmm), 'V' ) 
    240                ! [comm_cleanup ] ! DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    241239               DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 
    242240                  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) ) 
     
    250248               CALL dom_vvl_interpol( pe3t(:,:,:,Kmm), ze3u_f, 'U' ) 
    251249               CALL dom_vvl_interpol( pe3t(:,:,:,Kmm), ze3v_f, 'V' ) 
    252                ! [comm_cleanup ] ! DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    253250               DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 
    254251                  zue3a = pe3u(ji,jj,jk,Kaa) * puu(ji,jj,jk,Kaa) 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DYN/dynhpg.F90

    r14751 r14765  
    118118      CASE ( np_zps )   ;   CALL hpg_zps    ( kt, Kmm, puu, pvv, Krhs )  ! z-coordinate plus partial steps (interpolation) 
    119119      CASE ( np_sco )   ;   CALL hpg_sco    ( kt, Kmm, puu, pvv, Krhs )  ! s-coordinate (standard jacobian formulation) 
    120       CASE ( np_djc )   ;   CALL hpg_djc    ( kt, Kmm, puu, pvv, Krhs )  ! s-coordinate (Density Jacobian with Cubic polynomial) 
     120      CASE ( np_djc ) 
     121             ! [ comm_cleanup ] : it should not be needed but the removal/shift of this lbc_lnk results in a seg_fault error 
     122             ! NOTE: [tiling] to check if still needed 
     123!#if defined key_qco 
     124!             IF (nn_hls==2) CALL lbc_lnk( 'dynhpg', r3t(:,:,Kmm), 'T', 1.) 
     125!#endif 
     126                            CALL hpg_djc    ( kt, Kmm, puu, pvv, Krhs )  ! s-coordinate (Density Jacobian with Cubic polynomial) 
    121127      CASE ( np_prj )   ;   CALL hpg_prj    ( kt, Kmm, puu, pvv, Krhs )  ! s-coordinate (Pressure Jacobian scheme) 
    122128      CASE ( np_isf )   ;   CALL hpg_isf    ( kt, Kmm, puu, pvv, Krhs )  ! s-coordinate similar to sco modify for ice shelf 
     
    796802      zdzy  (:,:,:) = 0._wp 
    797803 
    798       ! [ comm_cleanup ] ! DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    799804      ! NOTE: [tiling] reorder zdzx/zdzy to avoid leading negation operator (may change order of operations) 
    800805      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 ) 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DYN/dynkeg.F90

    r14751 r14765  
    111111         END_3D 
    112112      CASE ( nkeg_HW )                          !--  Hollingsworth scheme  --! 
    113          ! [comm_cleanup ] ! DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    114113         DO_3D( 0, nn_hls-1, 0, nn_hls-1, 1, jpkm1 ) 
    115114            ! round brackets added to fix the order of floating point operations 
     
    128127            zhke(ji,jj,jk) = r1_48 * ( zv + zu ) 
    129128         END_3D 
    130          IF (nn_hls.eq.1) CALL lbc_lnk( 'dynkeg', zhke, 'T', 1.0_wp ) 
     129         IF (nn_hls==1) CALL lbc_lnk( 'dynkeg', zhke, 'T', 1.0_wp ) 
    131130         ! 
    132131      END SELECT  
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DYN/dynldf_iso.F90

    r14751 r14765  
    132132      IF( ln_dynldf_hor .AND. ln_traldf_iso ) THEN 
    133133         ! 
    134          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpk ) 
    135134         DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpk )      ! set the slopes of iso-level 
    136135            uslp (ji,jj,jk) = - ( gdept(ji+1,jj,jk,Kbb) - gdept(ji ,jj ,jk,Kbb) ) * r1_e1u(ji,jj) * umask(ji,jj,jk) 
     
    140139         END_3D 
    141140         ! Lateral boundary conditions on the slopes 
    142          IF( nn_hls.eq.1 ) CALL lbc_lnk( 'dynldf_iso', uslp , 'U', -1.0_wp, vslp , 'V', -1.0_wp,   & 
    143             &                                          wslpi, 'W', -1.0_wp, wslpj, 'W', -1.0_wp ) 
     141         IF (nn_hls == 1) CALL lbc_lnk( 'dynldf_iso', uslp , 'U', -1.0_wp, vslp , 'V', -1.0_wp, wslpi, 'W', -1.0_wp, wslpj, 'W', -1.0_wp ) 
    144142         ! 
    145143      ENDIF 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DYN/dynldf_lap_blp.F90

    r14751 r14765  
    105105         DO jk = 1, jpkm1                                 ! Horizontal slab 
    106106            ! 
    107             ! [comm_cleanup] ! DO_2D( 0, 1, 0, 1 ) 
    108107            DO_2D( iij-1, iij, iij-1, iij ) 
    109108               !                                      ! ahm * e3 * curl  (computed from 1 to jpim1/jpjm1) 
     
    117116            END_2D 
    118117            ! 
    119             ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 )                       ! - curl( curl) + grad( div ) 
    120118            DO_2D( iij-1, iij-1, iij-1, iij-1 )   ! - curl( curl) + grad( div ) 
    121119               pu_rhs(ji,jj,jk) = pu_rhs(ji,jj,jk) + zsign * umask(ji,jj,jk) * (    &    ! * by umask is mandatory for dyn_ldf_blp use 
     
    138136         DO jk = 1, jpkm1                                 ! Horizontal slab 
    139137            ! 
    140             ! [comm_cleanup] ! DO_2D( 0, 1, 0, 1 ) 
    141138            DO_2D( iij-1, iij, iij-1, iij ) 
    142139               !                                      ! shearing stress component (F-point)   NB : ahmf has already been multiplied by fmask 
     
    154151            END_2D 
    155152            ! 
    156             ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    157153            DO_2D( iij-1, iij-1, iij-1, iij-1 ) 
    158154               pu_rhs(ji,jj,jk) = pu_rhs(ji,jj,jk) + zsign * r1_e1e2u(ji,jj) / e3u(ji,jj,jk,Kmm)                               & 
     
    213209      CALL dyn_ldf_lap( kt, Kbb, Kmm, pu, pv, zulap, zvlap, 1 )   ! rotated laplacian applied to pt (output in zlap,Kbb) 
    214210      ! 
    215       IF (nn_hls.eq.1) CALL lbc_lnk( 'dynldf_lap_blp', zulap, 'U', -1.0_wp, zvlap, 'V', -1.0_wp )             ! Lateral boundary conditions 
     211      IF (nn_hls==1) CALL lbc_lnk( 'dynldf_lap_blp', zulap, 'U', -1.0_wp, zvlap, 'V', -1.0_wp )             ! Lateral boundary conditions 
    216212      ! 
    217213      CALL dyn_ldf_lap( kt, Kbb, Kmm, zulap, zvlap, pu_rhs, pv_rhs, 2 )   ! rotated laplacian applied to zlap (output in pt(:,:,:,:,Krhs)) 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DYN/dynvor.F90

    r14751 r14765  
    270270         ALLOCATE( zwz(A2D(nn_hls),jpk) ) 
    271271         DO jk = 1, jpkm1                                ! Horizontal slab 
    272             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )  
    273272            DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    274273               zwz(ji,jj,jk) = (  e2v(ji+1,jj) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk)  & 
     
    276275            END_2D 
    277276            IF( ln_dynvor_msk ) THEN                     ! mask relative vorticity 
    278                ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )  
    279277               DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    280278                  zwz(ji,jj,jk) = zwz(ji,jj,jk) * fmask(ji,jj,jk) 
     
    282280            ENDIF 
    283281         END DO 
    284          IF (nn_hls.eq.1) CALL lbc_lnk( 'dynvor', zwz, 'F', 1.0_wp ) 
     282         IF (nn_hls==1) CALL lbc_lnk( 'dynvor', zwz, 'F', 1.0_wp ) 
    285283         ! 
    286284      END SELECT 
     
    657655         ! 
    658656#if defined key_qco   ||   defined key_linssh 
    659          ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )                 ! == reciprocal of e3 at F-point (key_qco)  
    660657         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 )                 ! == reciprocal of e3 at F-point (key_qco) 
    661658            z1_e3f(ji,jj) = 1._wp / e3f_vor(ji,jj,jk) 
     
    664661         SELECT CASE( nn_e3f_typ )           ! == reciprocal of e3 at F-point 
    665662         CASE ( 0 )                                   ! original formulation  (masked averaging of e3t divided by 4) 
    666             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )  
    667663            DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    668664               ! NOTE: [halo1-halo2] brackets added to make results independent of nn_hls 
     
    676672            END_2D 
    677673         CASE ( 1 )                                   ! new formulation  (masked averaging of e3t divided by the sum of mask) 
    678             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )  
    679674            DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    680675               ! NOTE: [halo1-halo2] brackets added to make results independent of nn_hls 
     
    695690         ! 
    696691         CASE ( np_COR )                           !* Coriolis (planetary vorticity) 
    697             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )  
    698692            DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    699693               zwz(ji,jj,jk) = ff_f(ji,jj) * z1_e3f(ji,jj) 
    700694            END_2D 
    701695         CASE ( np_RVO )                           !* relative vorticity 
    702             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )  
    703696            DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    704697               zwz(ji,jj,jk) = ( e2v(ji+1,jj  ) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk)  & 
     
    706699            END_2D 
    707700            IF( ln_dynvor_msk ) THEN                     ! mask the relative vorticity 
    708                ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )  
    709701               DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    710702                  zwz(ji,jj,jk) = zwz(ji,jj,jk) * fmask(ji,jj,jk) 
     
    712704            ENDIF 
    713705         CASE ( np_MET )                           !* metric term 
    714             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )  
    715706            DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    716707               zwz(ji,jj,jk) = (   ( pv(ji+1,jj,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
     
    718709            END_2D 
    719710         CASE ( np_CRV )                           !* Coriolis + relative vorticity 
    720             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )  
    721711            DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    722712            ! round brackets added to fix the order of floating point operations 
     
    729719            END_2D 
    730720            IF( ln_dynvor_msk ) THEN                     ! mask the relative vorticity 
    731                ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )  
    732721               DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    733722                  zwz(ji,jj,jk) = ( zwz(ji,jj,jk) - ff_f(ji,jj) ) * fmask(ji,jj,jk) + ff_f(ji,jj) 
     
    735724            ENDIF 
    736725         CASE ( np_CME )                           !* Coriolis + metric 
    737             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )  
    738726            DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    739727               zwz(ji,jj,jk) = (   ff_f(ji,jj) + ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
     
    747735      !                                                ! =============== 
    748736      ! 
    749       IF (nn_hls.eq.1) CALL lbc_lnk( 'dynvor', zwz, 'F', 1.0_wp ) 
     737      IF (nn_hls==1) CALL lbc_lnk( 'dynvor', zwz, 'F', 1.0_wp ) 
    750738      ! 
    751739      !                                                ! =============== 
     
    828816         SELECT CASE( kvor )                 !==  vorticity considered  ==! 
    829817         CASE ( np_COR )                           !* Coriolis (planetary vorticity) 
    830             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )  
    831818            DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    832819               zwz(ji,jj,jk) = ff_f(ji,jj) 
    833820            END_2D 
    834821         CASE ( np_RVO )                           !* relative vorticity 
    835             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )  
    836822            DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    837823               ! NOTE: [halo1-halo2] brackets added to make results independent of nn_hls 
     
    841827            END_2D 
    842828            IF( ln_dynvor_msk ) THEN                     ! mask the relative vorticity 
    843                ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )  
    844829               DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    845830                  zwz(ji,jj,jk) = zwz(ji,jj,jk) * fmask(ji,jj,jk) 
     
    847832            ENDIF 
    848833         CASE ( np_MET )                           !* metric term 
    849             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )  
    850834            DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    851835               zwz(ji,jj,jk) = ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
     
    853837            END_2D 
    854838         CASE ( np_CRV )                           !* Coriolis + relative vorticity 
    855             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )  
    856839            DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    857840               ! NOTE: [halo1-halo2] brackets added to make results independent of nn_hls 
     
    861844            END_2D 
    862845            IF( ln_dynvor_msk ) THEN                     ! mask the relative vorticity 
    863                ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )  
    864846               DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    865847                  zwz(ji,jj,jk) = ( zwz(ji,jj,jk) - ff_f(ji,jj) ) * fmask(ji,jj,jk) + ff_f(ji,jj) 
     
    867849            ENDIF 
    868850         CASE ( np_CME )                           !* Coriolis + metric 
    869             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )  
    870851            DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    871852               zwz(ji,jj,jk) = ff_f(ji,jj) + ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
     
    880861      !                                                ! =============== 
    881862      ! 
    882       IF (nn_hls.eq.1) CALL lbc_lnk( 'dynvor', zwz, 'F', 1.0_wp ) 
     863      IF (nn_hls==1) CALL lbc_lnk( 'dynvor', zwz, 'F', 1.0_wp ) 
    883864      ! 
    884865      !                                                ! =============== 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/DYN/sshwzv.F90

    r14751 r14765  
    123123      IF ( .NOT.ln_dynspg_ts ) THEN 
    124124         IF( ln_bdy ) THEN 
    125             ! [comm_cleanup]  
    126             IF (nn_hls.eq.1) CALL lbc_lnk( 'sshwzv', pssh(:,:,Kaa), 'T', 1.0_wp )    ! Not sure that's necessary 
     125            IF (nn_hls==1) CALL lbc_lnk( 'sshwzv', pssh(:,:,Kaa), 'T', 1.0_wp )    ! Not sure that's necessary 
    127126            CALL bdy_ssh( pssh(:,:,Kaa) )             ! Duplicate sea level across open boundaries 
    128127         ENDIF 
     
    183182            ! horizontal divergence of thickness diffusion transport ( velocity multiplied by e3t) 
    184183            ! - ML - note: computation already done in dom_vvl_sf_nxt. Could be optimized (not critical and clearer this way) 
    185             ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    186184            DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    187185               zhdiv(ji,jj,jk) = r1_e1e2t(ji,jj) * ( un_td(ji,jj,jk) - un_td(ji-1,jj,jk) + vn_td(ji,jj,jk) - vn_td(ji,jj-1,jk) ) 
    188186            END_2D 
    189187         END DO 
    190          IF (nn_hls.eq.1) CALL lbc_lnk('sshwzv', zhdiv, 'T', 1.0_wp)  ! - ML - Perhaps not necessary: not used for horizontal "connexions" 
     188         IF (nn_hls==1) CALL lbc_lnk('sshwzv', zhdiv, 'T', 1.0_wp)  ! - ML - Perhaps not necessary: not used for horizontal "connexions" 
    191189         !                             ! Is it problematic to have a wrong vertical velocity in boundary cells? 
    192190         !                             ! Same question holds for hdiv. Perhaps just for security 
     
    364362      zdt = 2._wp * rn_Dt                            ! 2*rn_Dt and not rDt (for restartability) 
    365363      IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN 
    366          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    367364         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 ) 
    368365            z1_e3t = 1._wp / e3t(ji,jj,jk,Kmm) 
     
    382379         END_3D 
    383380      ELSE 
    384          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    385381         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 ) 
    386382            z1_e3t = 1._wp / e3t(ji,jj,jk,Kmm) 
     
    396392         END_3D 
    397393      ENDIF 
    398       IF (nn_hls.eq.1) CALL lbc_lnk( 'sshwzv', Cu_adv, 'T', 1.0_wp ) 
     394      IF (nn_hls==1) CALL lbc_lnk( 'sshwzv', Cu_adv, 'T', 1.0_wp ) 
    399395      ! 
    400396      CALL iom_put("Courant",Cu_adv) 
    401397      ! 
    402398      IF( MAXVAL( Cu_adv(:,:,:) ) > Cu_min ) THEN       ! Quick check if any breaches anywhere 
    403          ! [comm_cleanup] ! DO_3DS( 1, 1, 1, 1, jpkm1, 2, -1 )             ! or scan Courant criterion and partition ! w where necessary 
    404399         DO_3DS( nn_hls, nn_hls, nn_hls, nn_hls, jpkm1, 2, -1 )             ! or scan Courant criterion and partition ! w where necessary 
    405400            ! 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/LDF/ldfslp.F90

    r14631 r14765  
    371371         ! 
    372372         ip = jl   ;   jp = jl                ! guaranteed nonzero gradients ( absolute value larger than repsln) 
    373          ! [comm_cleanup] ! DO_3D( 1, 0, 1, 0, 1, jpkm1 )        ! done each pair of triad ! NB: not masked ==>  a minimum value is set 
    374373         DO_3D( nn_hls, nn_hls-1, nn_hls, nn_hls-1, 1, jpkm1 )        ! done each pair of triad ! NB: not masked ==>  a minimum value is set 
    375374            zdit = ( ts(ji+1,jj,jk,jp_tem,Kbb) - ts(ji,jj,jk,jp_tem,Kbb) )    ! i-gradient of T & S at u-point 
     
    384383         ! 
    385384         IF( ln_zps .AND. l_grad_zps ) THEN     ! partial steps: correction of i- & j-grad on bottom 
    386             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    387385            DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    388386               iku  = mbku(ji,jj)          ;   ikv  = mbkv(ji,jj)             ! last ocean level (u- & v-points) 
     
    399397 
    400398      DO kp = 0, 1                            !==  unmasked before density i- j-, k-gradients  ==! 
    401          ! [comm_cleanup] ! DO_3D( 1, 1, 1, 1, 1, jpkm1 )        ! done each pair of triad ! NB: not masked ==>  a minimum value is set 
    402399         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 )      ! done each pair of triad ! NB: not masked ==>  a minimum value is set 
    403400            IF( jk+kp > 1 ) THEN              ! k-gradient of T & S a jk+kp 
     
    415412      END DO 
    416413      ! 
    417       ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 )                     !==  Reciprocal depth of the w-point below ML base  ==! 
    418414      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls )                   !== Reciprocal depth of the w-point below ML base  ==! 
    419415         jk = MIN( nmln(ji,jj), mbkt(ji,jj) ) + 1     ! MIN in case ML depth is the ocean depth 
     
    436432      DO jl = 0, 1                            ! calculate slope of the 4 triads immediately ONE level below mixed-layer base 
    437433         DO kp = 0, 1                         ! with only the slope-max limit   and   MASKED 
    438             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    439434            DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    440435               ip = jl   ;   jp = jl 
     
    474469               ! Must mask contribution to slope from dz/dx at constant s for triads jk=1,kp=0 that poke up though ocean surface 
    475470               znot_thru_surface = REAL( 1-1/(jk+kp), wp )  !jk+kp=1,=0.; otherwise=1.0 
    476                ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    477471               DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    478472                  ! 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/LDF/ldftra.F90

    r14680 r14765  
    647647      !                       ! Compute lateral diffusive coefficient at T-point 
    648648      IF( ln_traldf_triad ) THEN 
    649          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpk ) 
    650649         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpk ) 
    651650            ! Take the max of N^2 and zero then take the vertical sum 
     
    662661         END_3D 
    663662      ELSE 
    664          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpk ) 
    665663         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpk ) 
    666664            ! Take the max of N^2 and zero then take the vertical sum 
     
    679677      ENDIF 
    680678 
    681       ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    682679      DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    683680         zfw = MAX( ABS( 2. * omega * SIN( rad * gphit(ji,jj) ) ) , 1.e-10 ) 
     
    690687      !                                         !==  Bound on eiv coeff.  ==! 
    691688      z1_f20 = 1._wp / (  2._wp * omega * sin( rad * 20._wp )  ) 
    692       ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    693689      DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    694690         zzaei = MIN( 1._wp, ABS( ff_t(ji,jj) * z1_f20 ) ) * zaeiw(ji,jj)     ! tropical decrease 
     
    697693      CALL lbc_lnk( 'ldftra', zaeiw(:,:), 'W', 1.0_wp )       ! lateral boundary condition 
    698694      ! 
    699       ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    700695      DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    701696         paeiu(ji,jj,1) = 0.5_wp * ( zaeiw(ji,jj) + zaeiw(ji+1,jj  ) ) * umask(ji,jj,1) 
     
    757752      zpsi_uw(:,:,jpk) = 0._wp   ;   zpsi_vw(:,:,jpk) = 0._wp 
    758753      ! 
    759       ! [comm_cleanup] ! DO_3D( 1, 0, 1, 0, 2, jpkm1 ) 
    760754      DO_3D( nn_hls, nn_hls-1, nn_hls, nn_hls-1, 2, jpkm1 ) 
    761755         zpsi_uw(ji,jj,jk) = - r1_4 * e2u(ji,jj) * ( wslpi(ji,jj,jk  ) + wslpi(ji+1,jj,jk) )   & 
     
    765759      END_3D 
    766760      ! 
    767       ! [comm_cleanup] ! DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    768761      DO_3D_OVR( nn_hls, nn_hls-1, nn_hls, nn_hls-1, 1, jpkm1 ) 
    769762         pu(ji,jj,jk) = pu(ji,jj,jk) - ( zpsi_uw(ji,jj,jk) - zpsi_uw(ji,jj,jk+1) ) 
    770763         pv(ji,jj,jk) = pv(ji,jj,jk) - ( zpsi_vw(ji,jj,jk) - zpsi_vw(ji,jj,jk+1) ) 
    771764      END_3D 
    772       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    773765      DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 ) 
    774766         pw(ji,jj,jk) = pw(ji,jj,jk) + (  zpsi_uw(ji,jj,jk) - zpsi_uw(ji-1,jj  ,jk)   & 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/SBC/sbccpl.F90

    r14574 r14765  
    12931293         IF( llnewtau ) THEN 
    12941294            zcoef = 1. / ( zrhoa * zcdrag ) 
    1295             DO_2D( 1, 1, 1, 1 ) 
     1295            DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    12961296               frcv(jpr_w10m)%z3(ji,jj,1) = SQRT( frcv(jpr_taum)%z3(ji,jj,1) * zcoef ) 
    12971297            END_2D 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/SBC/sbcrnf.F90

    r14751 r14765  
    207207      IF( ln_rnf_depth .OR. ln_rnf_depth_ini ) THEN      !==   runoff distributed over several levels   ==! 
    208208         IF( ln_linssh ) THEN    !* constant volume case : just apply the runoff input flow 
    209             ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 ) 
    210209            DO_2D_OVR( nn_hls-1, nn_hls, nn_hls-1, nn_hls ) 
    211210               DO jk = 1, nk_rnf(ji,jj) 
     
    214213            END_2D 
    215214         ELSE                    !* variable volume case 
    216             ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 )              ! update the depth over which runoffs are distributed 
    217215            DO_2D_OVR( nn_hls, nn_hls, nn_hls, nn_hls )         ! update the depth over which runoffs are distributed 
    218216               h_rnf(ji,jj) = 0._wp 
     
    363361         ! 
    364362         nk_rnf(:,:) = 0                               ! set the number of level over which river runoffs are applied 
    365          ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 ) 
    366363         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    367364            IF( h_rnf(ji,jj) > 0._wp ) THEN 
     
    377374            ENDIF 
    378375         END_2D 
    379          ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 )                           ! set the associated depth 
    380376         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls )                           ! set the associated depth 
    381377            h_rnf(ji,jj) = 0._wp 
     
    408404         WHERE( zrnfcl(:,:,1) > 0._wp )  h_rnf(:,:) = zacoef * zrnfcl(:,:,1)   ! compute depth for all runoffs 
    409405         ! 
    410          ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 )                ! take in account min depth of ocean rn_hmin 
    411406         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls )                ! take in account min depth of ocean rn_hmin 
    412407            IF( zrnfcl(ji,jj,1) > 0._wp ) THEN 
     
    417412         ! 
    418413         nk_rnf(:,:) = 0                       ! number of levels on which runoffs are distributed 
    419          ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 ) 
    420414         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    421415            IF( zrnfcl(ji,jj,1) > 0._wp ) THEN 
     
    429423         END_2D 
    430424         ! 
    431          ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 )                          ! set the associated depth 
    432425         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls )                          ! set the associated depth 
    433426            h_rnf(ji,jj) = 0._wp 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/traadv.F90

    r14764 r14765  
    112112      IF( nadv == np_FCT .OR. (nn_hls == 1 .AND. (nadv /= np_CEN .OR. (nadv == np_CEN .AND. nn_cen_h == 4))) )  THEN 
    113113         IF( ln_tile ) THEN 
    114             IF( ntile == 1 ) THEN 
     114         IF( ntile == 1 ) THEN 
    115115               CALL dom_tile_stop( ldhold=.TRUE., cstr='traadv' ) 
    116             ELSE 
    117                lskip = .TRUE. 
    118             ENDIF 
    119          ENDIF 
     116         ELSE 
     117            lskip = .TRUE. 
     118         ENDIF 
     119      ENDIF 
    120120      ENDIF 
    121121      IF( .NOT. lskip ) THEN 
     
    179179            CALL tra_adv_cen    ( kt, nit000, 'TRA',         zuu, zvv, zww, Kmm, pts, jpts, Krhs, nn_cen_h, nn_cen_v ) 
    180180         CASE ( np_FCT )                                 ! FCT scheme      : 2nd / 4th order 
    181             IF (nn_hls.EQ.2) THEN 
     181            IF (nn_hls==2) THEN 
    182182#if defined key_loop_fusion 
    183183               CALL tra_adv_fct_lf ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, nn_fct_h, nn_fct_v ) 
     
    189189            END IF 
    190190         CASE ( np_MUS )                                 ! MUSCL 
    191             IF (nn_hls.EQ.2) THEN 
     191            IF (nn_hls==2) THEN 
    192192#if defined key_loop_fusion 
    193193                CALL tra_adv_mus_lf ( kt, nit000, 'TRA', rDt, zuu, zvv, zww, Kbb, Kmm, pts, jpts, Krhs, ln_mus_ups ) 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/traadv_cen.F90

    r14631 r14765  
    119119               ztv(ji,jj,jk) = ( pt(ji  ,jj+1,jk,jn,Kmm) - pt(ji,jj,jk,jn,Kmm) ) * vmask(ji,jj,jk) 
    120120            END_3D 
    121             IF (nn_hls.EQ.1) CALL lbc_lnk( 'traadv_cen', ztu, 'U', -1.0_wp , ztv, 'V', -1.0_wp )   ! Lateral boundary cond. 
     121            IF (nn_hls==1) CALL lbc_lnk( 'traadv_cen', ztu, 'U', -1.0_wp , ztv, 'V', -1.0_wp )   ! Lateral boundary cond. 
    122122            ! 
    123123            DO_3D( nn_hls-1, 0, nn_hls-1, 0, 1, jpkm1 )           ! Horizontal advective fluxes 
     
    131131               zwy(ji,jj,jk) =  0.5_wp * pV(ji,jj,jk) * zC4t_v 
    132132            END_3D 
    133             IF (nn_hls.EQ.1) CALL lbc_lnk( 'traadv_cen', zwx, 'U', -1. , zwy, 'V', -1. ) 
     133            IF (nn_hls==1) CALL lbc_lnk( 'traadv_cen', zwx, 'U', -1. , zwy, 'V', -1. ) 
    134134            ! 
    135135         CASE DEFAULT 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/traadv_fct.F90

    r14631 r14765  
    238238               END_2D 
    239239            END DO 
    240             CALL lbc_lnk( 'traadv_fct', zltu, 'T', 1.0_wp , zltv, 'T', 1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
    241             ! 
    242             DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
     240            ! NOTE [ comm_cleanup ] : need to change sign to ensure halo 1 - halo 2 compatibility 
     241            CALL lbc_lnk( 'traadv_fct', zltu, 'T', -1.0_wp , zltv, 'T', -1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
     242            ! 
     243            DO_3D( nn_hls, nn_hls-1, nn_hls, nn_hls-1, 1, jpkm1 ) 
    243244               zC2t_u = pt(ji,jj,jk,jn,Kmm) + pt(ji+1,jj  ,jk,jn,Kmm)   ! 2 x C2 interpolation of T at u- & v-points 
    244245               zC2t_v = pt(ji,jj,jk,jn,Kmm) + pt(ji  ,jj+1,jk,jn,Kmm) 
    245246               !                                                        ! C4 minus upstream advective fluxes 
    246                zwx(ji,jj,jk) =  0.5_wp * pU(ji,jj,jk) * ( zC2t_u + zltu(ji,jj,jk) - zltu(ji+1,jj,jk) ) - zwx(ji,jj,jk) 
    247                zwy(ji,jj,jk) =  0.5_wp * pV(ji,jj,jk) * ( zC2t_v + zltv(ji,jj,jk) - zltv(ji,jj+1,jk) ) - zwy(ji,jj,jk) 
    248             END_3D 
    249             IF (nn_hls.EQ.2) CALL lbc_lnk( 'traadv_fct', zwx, 'U', -1.0_wp, zwy, 'V', -1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
     247               ! round brackets added to fix the order of floating point operations 
     248               ! needed to ensure halo 1 - halo 2 compatibility 
     249               zwx(ji,jj,jk) =  0.5_wp * pU(ji,jj,jk) * ( zC2t_u + ( zltu(ji,jj,jk) - zltu(ji+1,jj,jk)   & 
     250                             &                                     )                                     & ! bracket for halo 1 - halo 2 compatibility 
     251                             &                          ) - zwx(ji,jj,jk) 
     252               zwy(ji,jj,jk) =  0.5_wp * pV(ji,jj,jk) * ( zC2t_v + ( zltv(ji,jj,jk) - zltv(ji,jj+1,jk)   & 
     253                             &                                     )                                     & ! bracket for halo 1 - halo 2 compatibility 
     254                             &                          ) - zwy(ji,jj,jk) 
     255            END_3D 
    250256            ! 
    251257         CASE(  41 )                   !- 4th order centered       ==>>   !!gm coding attempt   need to be tested 
    252258            ztu(:,:,jpk) = 0._wp             ! Bottom value : flux set to zero 
    253259            ztv(:,:,jpk) = 0._wp 
    254             DO_3D( nn_hls, nn_hls-1, nn_hls, nn_hls-1, 1, jpkm1 )    ! 1st derivative (gradient) 
     260            DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 )    ! 1st derivative (gradient) 
    255261               ztu(ji,jj,jk) = ( pt(ji+1,jj  ,jk,jn,Kmm) - pt(ji,jj,jk,jn,Kmm) ) * umask(ji,jj,jk) 
    256262               ztv(ji,jj,jk) = ( pt(ji  ,jj+1,jk,jn,Kmm) - pt(ji,jj,jk,jn,Kmm) ) * vmask(ji,jj,jk) 
    257263            END_3D 
    258             IF (nn_hls.EQ.1) CALL lbc_lnk( 'traadv_fct', ztu, 'U', -1.0_wp , ztv, 'V', -1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
     264            IF (nn_hls==1) CALL lbc_lnk( 'traadv_fct', ztu, 'U', -1.0_wp , ztv, 'V', -1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
    259265            ! 
    260266            DO_3D( 0, 0, 0, 0, 1, jpkm1 )    ! Horizontal advective fluxes 
     
    268274               zwy(ji,jj,jk) =  0.5_wp * pV(ji,jj,jk) * zC4t_v - zwy(ji,jj,jk) 
    269275            END_3D 
    270             IF (nn_hls.EQ.2) CALL lbc_lnk( 'traadv_fct', zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
     276            IF (nn_hls==2) CALL lbc_lnk( 'traadv_fct', zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
    271277            ! 
    272278         END SELECT 
     
    291297         ENDIF 
    292298         ! 
    293          IF (nn_hls.EQ.1) THEN 
     299         IF (nn_hls==1) THEN 
    294300            CALL lbc_lnk( 'traadv_fct', zwi, 'T', 1.0_wp, zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp, zwz, 'T', 1.0_wp ) 
    295301         ELSE 
     
    449455         END_2D 
    450456      END DO 
    451       IF (nn_hls.EQ.1) CALL lbc_lnk( 'traadv_fct', zbetup, 'T', 1.0_wp , zbetdo, 'T', 1.0_wp )   ! lateral boundary cond. (unchanged sign) 
     457      IF (nn_hls==1) CALL lbc_lnk( 'traadv_fct', zbetup, 'T', 1.0_wp , zbetdo, 'T', 1.0_wp )   ! lateral boundary cond. (unchanged sign) 
    452458 
    453459      ! 3. monotonic flux in the i & j direction (paa & pbb) 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/traadv_mus.F90

    r14631 r14765  
    139139            zwy(ji,jj,jk) = vmask(ji,jj,jk) * ( pt(ji,jj+1,jk,jn,Kbb) - pt(ji,jj,jk,jn,Kbb) ) 
    140140         END_3D 
    141          ! lateral boundary conditions   (changed sign) 
    142          IF ( nn_hls.EQ.1 ) CALL lbc_lnk( 'traadv_mus', zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp ) 
    143141         !                                !-- Slopes of tracer 
    144142         zslpx(:,:,jpk) = 0._wp                 ! bottom values 
    145143         zslpy(:,:,jpk) = 0._wp 
    146          DO_3D( nn_hls-1, 1, nn_hls-1, 1, 1, jpkm1 ) 
     144         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 ) 
    147145            zslpx(ji,jj,jk) =                       ( zwx(ji,jj,jk) + zwx(ji-1,jj  ,jk) )   & 
    148146               &            * ( 0.25 + SIGN( 0.25_wp, zwx(ji,jj,jk) * zwx(ji-1,jj  ,jk) ) ) 
     
    151149         END_3D 
    152150         ! 
    153          DO_3D( nn_hls-1, 1, nn_hls-1, 1, 1, jpkm1 )    !-- Slopes limitation 
     151         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 )    !-- Slopes limitation 
    154152            zslpx(ji,jj,jk) = SIGN( 1.0_wp, zslpx(ji,jj,jk) ) * MIN(    ABS( zslpx(ji  ,jj,jk) ),   & 
    155153               &                                                     2.*ABS( zwx  (ji-1,jj,jk) ),   & 
     
    159157               &                                                     2.*ABS( zwy  (ji,jj  ,jk) ) ) 
    160158         END_3D 
    161          ! 
    162          DO_3D( nn_hls-1, 0, nn_hls-1, 0, 1, jpkm1 )    !-- MUSCL horizontal advective fluxes 
     159         ! NOTE [ comm_cleanup ] : need to change sign to ensure halo 1 - halo 2 compatibility 
     160         IF ( nn_hls==1 ) CALL lbc_lnk( 'traadv_mus', zslpx, 'T', -1.0_wp , zslpy, 'T', -1.0_wp )   ! lateral boundary conditions   (changed sign) 
     161         ! 
     162         DO_3D( 1, 0, 1, 0, 1, jpkm1 )    !-- MUSCL horizontal advective fluxes 
    163163            ! MUSCL fluxes 
    164164            z0u = SIGN( 0.5_wp, pU(ji,jj,jk) ) 
     
    176176            zwy(ji,jj,jk) = pV(ji,jj,jk) * ( zalpha * zzwx + (1.-zalpha) * zzwy ) 
    177177         END_3D 
    178          IF ( nn_hls.EQ.1 ) CALL lbc_lnk( 'traadv_mus', zwx, 'U', -1.0_wp , zwy, 'V', -1.0_wp )   ! lateral boundary conditions   (changed sign) 
    179178         ! 
    180179         DO_3D( 0, 0, 0, 0, 1, jpkm1 )    !-- Tracer advective trend 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/traadv_qck.F90

    r14631 r14765  
    149149            zfd(ji,jj,jk) = pt(ji+1,jj,jk,jn,Kbb)        ! Downstream in the x-direction for the tracer 
    150150         END_3D 
    151          IF (nn_hls.EQ.1) CALL lbc_lnk( 'traadv_qck', zfd(:,:,:), 'T', 1.0_wp )   ! Lateral boundary conditions 
     151         IF (nn_hls==1) CALL lbc_lnk( 'traadv_qck', zfd(:,:,:), 'T', 1.0_wp )   ! Lateral boundary conditions 
    152152 
    153153         ! 
     
    167167         END_3D 
    168168         !--- Lateral boundary conditions 
    169          IF (nn_hls.EQ.1) CALL lbc_lnk( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp, zfc(:,:,:), 'T', 1.0_wp,  zwx(:,:,:), 'T', 1.0_wp ) 
     169         IF (nn_hls==1) CALL lbc_lnk( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp, zfc(:,:,:), 'T', 1.0_wp,  zwx(:,:,:), 'T', 1.0_wp ) 
    170170 
    171171         !--- QUICKEST scheme 
     
    176176            zfu(ji,jj,jk) = tmask(ji-1,jj,jk) + tmask(ji,jj,jk) + tmask(ji+1,jj,jk) - 2. 
    177177         END_3D 
    178          IF (nn_hls.EQ.1) CALL lbc_lnk( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp )      ! Lateral boundary conditions 
     178         IF (nn_hls==1) CALL lbc_lnk( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp )      ! Lateral boundary conditions 
    179179 
    180180         ! 
     
    237237         END_3D 
    238238 
    239          IF (nn_hls.EQ.1) CALL lbc_lnk( 'traadv_qck', zfc(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp )   ! Lateral boundary conditions 
     239         IF (nn_hls==1) CALL lbc_lnk( 'traadv_qck', zfc(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp )   ! Lateral boundary conditions 
    240240 
    241241         ! Correct zfd on northfold after lbc_lnk; see #2640 
     
    263263 
    264264         !--- Lateral boundary conditions 
    265          IF (nn_hls.EQ.1) CALL lbc_lnk( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp, zfc(:,:,:), 'T', 1.0_wp, zwy(:,:,:), 'T', 1.0_wp ) 
     265         IF (nn_hls==1) CALL lbc_lnk( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp , zfd(:,:,:), 'T', 1.0_wp, zfc(:,:,:), 'T', 1.0_wp, zwy(:,:,:), 'T', 1.0_wp ) 
    266266 
    267267         !--- QUICKEST scheme 
     
    272272            zfu(ji,jj,jk) = tmask(ji,jj-1,jk) + tmask(ji,jj,jk) + tmask(ji,jj+1,jk) - 2. 
    273273         END_3D 
    274          IF (nn_hls.EQ.1) CALL lbc_lnk( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp )    !--- Lateral boundary conditions 
     274         IF (nn_hls==1) CALL lbc_lnk( 'traadv_qck', zfu(:,:,:), 'T', 1.0_wp )    !--- Lateral boundary conditions 
    275275         ! 
    276276         ! Tracer flux on the x-direction 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/traadv_ubs.F90

    r14631 r14765  
    140140            ! 
    141141         END DO 
    142          IF (nn_hls.EQ.1) CALL lbc_lnk( 'traadv_ubs', zltu, 'T', 1.0_wp, zltv, 'T', 1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
     142         IF (nn_hls==1) CALL lbc_lnk( 'traadv_ubs', zltu, 'T', 1.0_wp, zltv, 'T', 1.0_wp )   ! Lateral boundary cond. (unchanged sgn) 
    143143         ! 
    144144         DO_3D( 1, 0, 1, 0, 1, jpkm1 )   !==  Horizontal advective fluxes  ==!     (UBS) 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/traatf.F90

    r14753 r14765  
    175175         ENDIF 
    176176         ! 
    177          ! [comm_cleanup]  
     177         ! TODO: [tiling] check if needed 
    178178         IF (nn_hls.eq.1) CALL lbc_lnk( 'traatf',  pts(:,:,:,jp_tem,Kmm) , 'T', 1.0_wp, pts(:,:,:,jp_sal,Kmm) , 'T', 1.0_wp ) 
    179179 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/traatf_qco.F90

    r14764 r14765  
    146146         ENDIF 
    147147         ! 
    148          ! [ comm_cleanup ] 
     148         ! TODO: [tiling] check if needed 
    149149         CALL lbc_lnk( 'traatfqco', pts(:,:,:,jp_tem,Kmm) , 'T', 1._wp, pts(:,:,:,jp_sal,Kmm) , 'T', 1._wp ) 
    150150         ! 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/trabbl.F90

    r14663 r14765  
    137137         CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' bbl_adv  - Ta: ', mask1=tmask, & 
    138138            &          tab3d_2=pts(:,:,:,jp_sal,Krhs), clinfo2=           ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    139          IF( .NOT. l_istiled .OR. ntile == nijtile ) THEN                       ! Do only on the last tile 
    140             ! lateral boundary conditions ; just need for outputs 
    141             ! [ comm_cleanup ] ! no need lbc_lnk for outputs 
    142             ! NOTE: [tiling] removal of this lbc_lnk causes results to change, as the sign was unchanged (bug in trunk) 
    143             ! CALL lbc_lnk( 'trabbl', utr_bbl, 'U', 1.0_wp , vtr_bbl, 'V', 1.0_wp ) 
    144          ENDIF 
    145139         CALL iom_put( "uoce_bbl", utr_bbl )  ! bbl i-transport 
    146140         CALL iom_put( "voce_bbl", vtr_bbl )  ! bbl j-transport 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/traldf_iso.F90

    r14680 r14765  
    147147         ENDIF 
    148148         ! 
    149          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpk ) 
    150149         DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpk ) 
    151150            akz     (ji,jj,jk) = 0._wp 
     
    178177      IF( kpass == 1 ) THEN                  !==  first pass only  ==! 
    179178         ! 
    180          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    181179         DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    182180            ! 
     
    201199         ! 
    202200         IF( ln_traldf_msc ) THEN                ! stabilizing vertical diffusivity coefficient 
    203             ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    204201            DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    205202               ! round brackets added to fix the order of floating point operations 
     
    215212            ! 
    216213            IF( ln_traldf_blp ) THEN                ! bilaplacian operator 
    217                ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    218214               DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    219215                  akz(ji,jj,jk) = 16._wp   & 
     
    224220               END_3D 
    225221            ELSEIF( ln_traldf_lap ) THEN              ! laplacian operator 
    226                ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    227222               DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    228223                  ze3w_2 = e3w(ji,jj,jk,Kmm) * e3w(ji,jj,jk,Kmm) 
     
    233228           ! 
    234229         ELSE                                    ! 33 flux set to zero with akz=ah_wslp2 ==>> computed in full implicit 
    235             ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpk ) 
    236230            DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpk ) 
    237231               akz(ji,jj,jk) = ah_wslp2(ji,jj,jk) 
     
    251245 
    252246         ! Horizontal tracer gradient 
    253          ! [comm_cleanup] ! DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 
    254247         DO_3D( iij, iij-1, iij, iij-1, 1, jpkm1 ) 
    255248            zdit(ji,jj,jk) = ( pt(ji+1,jj  ,jk,jn) - pt(ji,jj,jk,jn) ) * umask(ji,jj,jk) 
     
    257250         END_3D 
    258251         IF( ln_zps ) THEN      ! botton and surface ocean correction of the horizontal gradient 
    259             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )           ! bottom correction (partial bottom cell) 
    260252            DO_2D( iij, iij-1, iij, iij-1 )            ! bottom correction (partial bottom cell) 
    261253               zdit(ji,jj,mbku(ji,jj)) = pgu(ji,jj,jn) 
     
    263255            END_2D 
    264256            IF( ln_isfcav ) THEN      ! first wet level beneath a cavity 
    265                ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    266257               DO_2D( iij, iij-1, iij, iij-1 ) 
    267258                  IF( miku(ji,jj) > 1 )   zdit(ji,jj,miku(ji,jj)) = pgui(ji,jj,jn) 
     
    277268         DO jk = 1, jpkm1                                 ! Horizontal slab 
    278269            ! 
    279             ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 ) 
    280270            DO_2D( iij, iij, iij, iij ) 
    281271               !                             !== Vertical tracer gradient 
     
    287277            END_2D 
    288278            ! 
    289             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )           !==  Horizontal fluxes 
    290279            DO_2D( iij, iij-1, iij, iij-1 )           !==  Horizontal fluxes 
    291280               zabe1 = pahu(ji,jj,jk) * e2_e1u(ji,jj) * e3u(ji,jj,jk,Kmm) 
     
    317306            END_2D 
    318307            ! 
    319             ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 )           !== horizontal divergence and add to pta 
    320308            DO_2D( iij-1, iij-1, iij-1, iij-1 )           !== horizontal divergence and add to pta 
    321309               ! round brackets added to fix the order of floating point operations 
     
    339327         ztfw(:,:, 1 ) = 0._wp      ;      ztfw(:,:,jpk) = 0._wp 
    340328 
    341          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )    ! interior (2=<jk=<jpk-1) 
    342329         DO_3D( iij-1, iij-1, iij-1, iij-1, 2, jpkm1 )    ! interior (2=<jk=<jpk-1) 
    343330            ! 
     
    370357         !                                !==  add the vertical 33 flux  ==! 
    371358         IF( ln_traldf_lap ) THEN               ! laplacian case: eddy coef = ah_wslp2 - akz 
    372             ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    373359            DO_3D( iij-1, iij-1, iij-1, iij-1, 2, jpkm1 ) 
    374360               ztfw(ji,jj,jk) = ztfw(ji,jj,jk) + e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * wmask(ji,jj,jk)   & 
     
    380366            SELECT CASE( kpass ) 
    381367            CASE(  1  )                            ! 1st pass : eddy coef = ah_wslp2 
    382                ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    383368               DO_3D( iij-1, iij-1, iij-1, iij-1, 2, jpkm1 ) 
    384369                  ztfw(ji,jj,jk) =   & 
     
    395380         ENDIF 
    396381         ! 
    397          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpkm1 )    !==  Divergence of vertical fluxes added to pta  ==! 
    398382         DO_3D( iij-1, iij-1, iij-1, iij-1, 1, jpkm1 )    !==  Divergence of vertical fluxes added to pta  ==! 
    399383            pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn) + zsign * (  ztfw (ji,jj,jk) - ztfw(ji,jj,jk+1)  ) * r1_e1e2t(ji,jj)   & 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/traldf_lap_blp.F90

    r14680 r14765  
    239239      END SELECT 
    240240      ! 
    241       ! [comm_cleanup] 
    242       IF (nn_hls.EQ.1) CALL lbc_lnk( 'traldf_lap_blp', zlap(:,:,:,:) , 'T', 1.0_wp )     ! Lateral boundary conditions (unchanged sign) 
     241      IF (nn_hls==1) CALL lbc_lnk( 'traldf_lap_blp', zlap(:,:,:,:) , 'T', 1.0_wp )     ! Lateral boundary conditions (unchanged sign) 
    243242      !                                               ! Partial top/bottom cell: GRADh( zlap ) 
    244243      IF( ln_isfcav .AND. ln_zps ) THEN   ;   CALL zps_hde_isf( kt, Kmm, kjpt, zlap, zglu, zglv, zgui, zgvi )  ! both top & bottom 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/traldf_triad.F90

    r14713 r14765  
    150150      IF( kpass == 1 ) THEN         !==  first pass only  and whatever the tracer is  ==! 
    151151         ! 
    152          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpk ) 
    153152         DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpk ) 
    154153            akz     (ji,jj,jk) = 0._wp 
     
    157156         ! 
    158157         DO kp = 0, 1                            ! i-k triads 
    159             ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    160158            DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 ) 
    161159               ze3wr = 1._wp / e3w(ji,jj,jk+kp,Kmm) 
     
    181179         ! 
    182180         DO kp = 0, 1                            ! j-k triads 
    183             ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    184181            DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 ) 
    185182               ze3wr = 1.0_wp / e3w(ji,jj,jk+kp,Kmm) 
     
    209206            ! 
    210207            IF( ln_traldf_blp ) THEN                ! bilaplacian operator 
    211                ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    212208               DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    213209                  akz(ji,jj,jk) = 16._wp           & 
     
    218214               END_3D 
    219215            ELSEIF( ln_traldf_lap ) THEN              ! laplacian operator 
    220                ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    221216               DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    222217                  ze3w_2 = e3w(ji,jj,jk,Kmm) * e3w(ji,jj,jk,Kmm) 
     
    227222           ! 
    228223         ELSE                                    ! 33 flux set to zero with akz=ah_wslp2 ==>> computed in full implicit 
    229             ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpk ) 
    230224            DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpk ) 
    231225               akz(ji,jj,jk) = ah_wslp2(ji,jj,jk) 
     
    268262         zdjt(:,:,:) = 0._wp 
    269263         ! 
    270          ! [comm_cleanup] ! DO_3D( 1, 0, 1, 0, 1, jpkm1 )    !==  before lateral T & S gradients at T-level jk  ==! 
    271264         DO_3D( iij, iij-1, iij, iij-1, 1, jpkm1 )    !==  before lateral T & S gradients at T-level jk  ==! 
    272265            zdit(ji,jj,jk) = ( pt(ji+1,jj  ,jk,jn) - pt(ji,jj,jk,jn) ) * umask(ji,jj,jk) 
     
    274267         END_3D 
    275268         IF( ln_zps .AND. l_grad_zps ) THEN    ! partial steps: correction at top/bottom ocean level 
    276             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )                    ! bottom level 
    277269            DO_2D( iij, iij-1, iij, iij-1 )                    ! bottom level 
    278270               zdit(ji,jj,mbku(ji,jj)) = pgu(ji,jj,jn) 
     
    280272            END_2D 
    281273            IF( ln_isfcav ) THEN                   ! top level (ocean cavities only) 
    282                ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    283274               DO_2D( iij, iij-1, iij, iij-1 ) 
    284275                  IF( miku(ji,jj)  > 1 )   zdit(ji,jj,miku(ji,jj) ) = pgui(ji,jj,jn) 
     
    294285         DO jk = 1, jpkm1 
    295286            !                    !==  Vertical tracer gradient at level jk and jk+1 
    296             ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 ) 
    297287            DO_2D( iij, iij, iij, iij ) 
    298288               zdkt3d(ji,jj,1) = ( pt(ji,jj,jk,jn) - pt(ji,jj,jk+1,jn) ) * tmask(ji,jj,jk+1) 
     
    302292            IF( jk == 1 ) THEN   ;   zdkt3d(:,:,0) = zdkt3d(:,:,1) 
    303293            ELSE 
    304                ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 ) 
    305294               DO_2D( iij, iij, iij, iij ) 
    306295                  zdkt3d(ji,jj,0) = ( pt(ji,jj,jk-1,jn) - pt(ji,jj,jk,jn) ) * tmask(ji,jj,jk) 
     
    315304            IF( ln_botmix_triad ) THEN 
    316305               DO kp = 0, 1              !==  Horizontal & vertical fluxes 
    317                   ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    318306                  DO_2D( iij, iij-1, iij, iij-1 ) 
    319307                     ze1ur = r1_e1u(ji,jj) 
     
    352340               ! 
    353341               DO kp = 0, 1 
    354                   ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    355342                  DO_2D( iij, iij-1, iij, iij-1 ) 
    356343                     ze2vr = r1_e2v(ji,jj) 
     
    390377               ! 
    391378               DO kp = 0, 1               !==  Horizontal & vertical fluxes 
    392                   ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    393379                  DO_2D( iij, iij-1, iij, iij-1 ) 
    394380                     ze1ur = r1_e1u(ji,jj) 
     
    429415               ! 
    430416               DO kp = 0, 1 
    431                   ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    432417                  DO_2D( iij, iij-1, iij, iij-1 ) 
    433418                     ze2vr = r1_e2v(ji,jj) 
     
    467452            ENDIF 
    468453            !                             !==  horizontal divergence and add to the general trend  ==! 
    469             ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    470454            DO_2D( iij-1, iij-1, iij-1, iij-1 ) 
    471455               ! round brackets added to fix the order of floating point operations 
     
    483467         !                                !==  add the vertical 33 flux  ==! 
    484468         IF( ln_traldf_lap ) THEN               ! laplacian case: eddy coef = ah_wslp2 - akz 
    485             ! [comm_cleanup] ! DO_3D( 0, 0, 1, 0, 2, jpkm1 ) 
    486469            DO_3D( iij-1, iij-1, iij-1, iij-1, 2, jpkm1 ) 
    487470               ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk)   & 
     
    492475            SELECT CASE( kpass ) 
    493476            CASE(  1  )                            ! 1st pass : eddy coef = ah_wslp2 
    494                ! [comm_cleanup] ! DO_3D( 0, 0, 1, 0, 2, jpkm1 ) 
    495477               DO_3D( iij-1, iij-1, iij-1, iij-1, 2, jpkm1 ) 
    496478                  ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk)             & 
     
    498480               END_3D 
    499481            CASE(  2  )                            ! 2nd pass : eddy flux = ah_wslp2 and akz applied on pt  and pt2 gradients, resp. 
    500                ! [comm_cleanup] ! DO_3D( 0, 0, 1, 0, 2, jpkm1 ) 
    501482               DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    502483                  ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk)                      & 
     
    507488         ENDIF 
    508489         ! 
    509          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpkm1 )      !==  Divergence of vertical fluxes added to pta  ==! 
    510490         DO_3D( iij-1, iij-1, iij-1, iij-1, 1, jpkm1 )      !==  Divergence of vertical fluxes added to pta  ==! 
    511491            pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn)    & 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/tramle.F90

    r14631 r14765  
    108108         SELECT CASE( nn_mld_uv )                         ! MLD at u- & v-pts 
    109109         CASE ( 0 )                                               != min of the 2 neighbour MLDs 
    110             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    111110            DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    112111               zhu(ji,jj) = MIN( hmle(ji+1,jj), hmle(ji,jj) ) 
     
    114113            END_2D 
    115114         CASE ( 1 )                                               != average of the 2 neighbour MLDs 
    116             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    117115            DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    118116               zhu(ji,jj) = MAX( hmle(ji+1,jj), hmle(ji,jj) ) 
     
    120118            END_2D 
    121119         CASE ( 2 )                                               != max of the 2 neighbour MLDs 
    122             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    123120            DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    124121               zhu(ji,jj) = MAX( hmle(ji+1,jj), hmle(ji,jj) ) 
     
    127124         END SELECT 
    128125         IF( nn_mle == 0 ) THEN           ! Fox-Kemper et al. 2010 formulation 
    129             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    130126            DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    131127               zpsim_u(ji,jj) = rn_ce * zhu(ji,jj) * zhu(ji,jj)  * e2u(ji,jj)                                            & 
     
    139135            ! 
    140136         ELSEIF( nn_mle == 1 ) THEN       ! New formulation (Lf = 5km fo/ff with fo=Coriolis parameter at latitude rn_lat) 
    141             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    142137            DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    143138               zpsim_u(ji,jj) = rc_f *   zhu(ji,jj)   * zhu(ji,jj)   * e2u(ji,jj)               & 
     
    152147         !                                      !==  MLD used for MLE  ==! 
    153148         !                                                ! compute from the 10m density to deal with the diurnal cycle 
    154          ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 ) 
    155149         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    156150            inml_mle(ji,jj) = mbkt(ji,jj) + 1                    ! init. to number of ocean w-level (T-level + 1) 
    157151         END_2D 
    158152         IF ( nla10 > 0 ) THEN                            ! avoid case where first level is thicker than 10m 
    159            ! [comm_cleanup] ! DO_3DS( 1, 1, 1, 1, jpkm1, nlb10, -1 )        ! from the bottom to nlb10 (10m) 
    160153           DO_3DS( nn_hls, nn_hls, nn_hls, nn_hls, jpkm1, nlb10, -1 )        ! from the bottom to nlb10 (10m) 
    161154              IF( rhop(ji,jj,jk) > rhop(ji,jj,nla10) + rn_rho_c_mle )   inml_mle(ji,jj) = jk      ! Mixed layer 
     
    168161         zbm (:,:) = 0._wp 
    169162         zn2 (:,:) = 0._wp 
    170          ! [comm_cleanup] ! DO_3D( 1, 1, 1, 1, 1, ikmax )                    ! MLD and mean buoyancy and N2 over the mixed layer 
    171163         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, ikmax )                    ! MLD and mean buoyancy and N2 over the mixed layer 
    172164            zc = e3t(ji,jj,jk,Kmm) * REAL( MIN( MAX( 0, inml_mle(ji,jj)-jk ) , 1  )  )    ! zc being 0 outside the ML t-points 
     
    178170         SELECT CASE( nn_mld_uv )                         ! MLD at u- & v-pts 
    179171         CASE ( 0 )                                               != min of the 2 neighbour MLDs 
    180             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    181172            DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    182173               zhu(ji,jj) = MIN( zmld(ji+1,jj), zmld(ji,jj) ) 
     
    184175            END_2D 
    185176         CASE ( 1 )                                               != average of the 2 neighbour MLDs 
    186             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    187177            DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    188178               zhu(ji,jj) = ( zmld(ji+1,jj) + zmld(ji,jj) ) * 0.5_wp 
     
    190180            END_2D 
    191181         CASE ( 2 )                                               != max of the 2 neighbour MLDs 
    192             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    193182            DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    194183               zhu(ji,jj) = MAX( zmld(ji+1,jj), zmld(ji,jj) ) 
     
    197186         END SELECT 
    198187         !                                                ! convert density into buoyancy 
    199          ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 ) 
    200188         DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    201189            zbm(ji,jj) = + grav * zbm(ji,jj) / MAX( e3t(ji,jj,1,Kmm), zmld(ji,jj) ) 
     
    211199         ! 
    212200         IF( nn_mle == 0 ) THEN           ! Fox-Kemper et al. 2010 formulation 
    213             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    214201            DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    215202               zpsim_u(ji,jj) = rn_ce * zhu(ji,jj) * zhu(ji,jj)  * e2_e1u(ji,jj)                                            & 
     
    223210            ! 
    224211         ELSEIF( nn_mle == 1 ) THEN       ! New formulation (Lf = 5km fo/ff with fo=Coriolis parameter at latitude rn_lat) 
    225             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    226212            DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    227213               zpsim_u(ji,jj) = rc_f *   zhu(ji,jj)   * zhu(ji,jj)   * e2_e1u(ji,jj)               & 
     
    234220         ! 
    235221         IF( nn_conv == 1 ) THEN              ! No MLE in case of convection 
    236             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    237222            DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    238223               IF( MIN( zn2(ji,jj) , zn2(ji+1,jj) ) < 0._wp )   zpsim_u(ji,jj) = 0._wp 
     
    243228      ENDIF  ! end of ln_osm_mle conditional 
    244229    !                                      !==  structure function value at uw- and vw-points  ==! 
    245     ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    246230    DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    247231       zhu(ji,jj) = 1._wp / MAX(zhu(ji,jj), rsmall)                   ! hu --> 1/hu 
     
    252236    zpsi_vw(:,:,:) = 0._wp 
    253237    ! 
    254       ! [comm_cleanup] ! DO_3D( 1, 0, 1, 0, 2, ikmax )                ! start from 2 : surface value = 0 
    255238      DO_3D( nn_hls, nn_hls-1, nn_hls, nn_hls-1, 2, ikmax )                ! start from 2 : surface value = 0 
    256239       
     
    268251      !                                      !==  transport increased by the MLE induced transport ==! 
    269252      DO jk = 1, ikmax 
    270          ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )                      ! CAUTION pu,pv must be defined at row/column i=1 / j=1 
    271253         DO_2D_OVR( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    272254            pu(ji,jj,jk) = pu(ji,jj,jk) + ( zpsi_uw(ji,jj,jk) - zpsi_uw(ji,jj,jk+1) ) 
    273255            pv(ji,jj,jk) = pv(ji,jj,jk) + ( zpsi_vw(ji,jj,jk) - zpsi_vw(ji,jj,jk+1) ) 
    274256         END_2D 
    275          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    276257         DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    277258            pw(ji,jj,jk) = pw(ji,jj,jk) - ( zpsi_uw(ji,jj,jk) - zpsi_uw(ji-1,jj,jk)   & 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/TRA/zpshde.F90

    r14680 r14765  
    170170      END DO 
    171171      ! 
    172       IF (nn_hls.EQ.1) CALL lbc_lnk( 'zpshde', pgtu(:,:,:), 'U', -1.0_wp , pgtv(:,:,:), 'V', -1.0_wp )   ! Lateral boundary cond. 
     172      IF (nn_hls==1) CALL lbc_lnk( 'zpshde', pgtu(:,:,:), 'U', -1.0_wp , pgtv(:,:,:), 'V', -1.0_wp )   ! Lateral boundary cond. 
    173173      ! 
    174174      IF( PRESENT( prd ) ) THEN    !==  horizontal derivative of density anomalies (rd)  ==!    (optional part) 
     
    203203            ENDIF 
    204204         END_2D 
    205          IF (nn_hls.EQ.1) CALL lbc_lnk( 'zpshde', pgru , 'U', -1.0_wp , pgrv , 'V', -1.0_wp )   ! Lateral boundary conditions 
     205         IF (nn_hls==1) CALL lbc_lnk( 'zpshde', pgru , 'U', -1.0_wp , pgrv , 'V', -1.0_wp )   ! Lateral boundary conditions 
    206206         ! 
    207207      END IF 
     
    352352      END DO 
    353353      ! 
    354       IF (nn_hls.EQ.1) CALL lbc_lnk( 'zpshde', pgtu(:,:,:), 'U', -1.0_wp , pgtv(:,:,:), 'V', -1.0_wp )   ! Lateral boundary cond. 
     354      IF (nn_hls==1) CALL lbc_lnk( 'zpshde', pgtu(:,:,:), 'U', -1.0_wp , pgtv(:,:,:), 'V', -1.0_wp )   ! Lateral boundary cond. 
    355355 
    356356      ! horizontal derivative of density anomalies (rd) 
     
    394394         END_2D 
    395395 
    396          IF (nn_hls.EQ.1) CALL lbc_lnk( 'zpshde', pgru , 'U', -1.0_wp , pgrv , 'V', -1.0_wp )   ! Lateral boundary conditions 
     396         IF (nn_hls==1) CALL lbc_lnk( 'zpshde', pgru , 'U', -1.0_wp , pgrv , 'V', -1.0_wp )   ! Lateral boundary conditions 
    397397         ! 
    398398      END IF 
     
    446446         ! 
    447447      END DO 
    448       IF (nn_hls.EQ.1) CALL lbc_lnk( 'zpshde', pgtui(:,:,:), 'U', -1.0_wp , pgtvi(:,:,:), 'V', -1.0_wp )   ! Lateral boundary cond. 
     448      IF (nn_hls==1) CALL lbc_lnk( 'zpshde', pgtui(:,:,:), 'U', -1.0_wp , pgtvi(:,:,:), 'V', -1.0_wp )   ! Lateral boundary cond. 
    449449 
    450450      IF( PRESENT( prd ) ) THEN    !==  horizontal derivative of density anomalies (rd)  ==!    (optional part) 
     
    485485 
    486486         END_2D 
    487          IF (nn_hls.EQ.1) CALL lbc_lnk( 'zpshde', pgrui, 'U', -1.0_wp , pgrvi, 'V', -1.0_wp )   ! Lateral boundary conditions 
     487         IF (nn_hls==1) CALL lbc_lnk( 'zpshde', pgrui, 'U', -1.0_wp , pgrvi, 'V', -1.0_wp )   ! Lateral boundary conditions 
    488488         ! 
    489489      END IF 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/ZDF/zdfddm.F90

    r14665 r14765  
    9595!!gm                            and many acces in memory 
    9696          
    97          ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 )           !==  R=zrau = (alpha / beta) (dk[t] / dk[s])  ==! 
    9897         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 )           !==  R=zrau = (alpha / beta) (dk[t] / dk[s])  ==! 
    9998            zrw =   ( gdepw(ji,jj,jk  ,Kmm) - gdept(ji,jj,jk,Kmm) )   & 
     
    112111         END_2D 
    113112 
    114          ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 )           !==  indicators  ==! 
    115113         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 )           !==  indicators  ==! 
    116114            ! stability indicator: msks=1 if rn2>0; 0 elsewhere 
     
    143141         ! ------------------ 
    144142         ! Constant eddy coefficient: reset to the background value 
    145          ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 ) 
    146143         DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    147144            zinr = 1._wp / zrau(ji,jj) 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/ZDF/zdfdrg.F90

    r14665 r14765  
    117117      ! 
    118118      IF( l_log_not_linssh ) THEN     !==  "log layer"  ==!   compute Cd and -Cd*|U| 
    119          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    120119         DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    121120            imk = k_mk(ji,jj)          ! ocean bottom level at t-points 
     
    130129         END_2D 
    131130      ELSE                                            !==  standard Cd  ==! 
    132          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    133131         DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    134132            imk = k_mk(ji,jj)    ! ocean bottom level at t-points 
     
    178176      ENDIF 
    179177 
    180       ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    181       DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
     178      ! NOTE: [tiling] no need for this to work on haloes because output is Krhs 
     179      DO_2D( 0, 0, 0, 0 ) 
    182180         ikbu = mbku(ji,jj)          ! deepest wet ocean u- & v-levels 
    183181         ikbv = mbkv(ji,jj) 
     
    192190      ! 
    193191      IF( ln_isfcav ) THEN        ! ocean cavities 
    194          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    195          DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
     192         ! NOTE: [tiling] no need for this to work on haloes because output is Krhs 
     193         DO_2D( 0, 0, 0, 0 ) 
    196194            ikbu = miku(ji,jj)          ! first wet ocean u- & v-levels 
    197195            ikbv = mikv(ji,jj) 
     
    436434            l_log_not_linssh = .FALSE.    !- don't update Cd at each time step 
    437435            ! 
    438             ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 )              ! pCd0 = mask (and boosted) logarithmic drag coef. 
    439436            DO_2D( nn_hls, nn_hls, nn_hls, nn_hls )              ! pCd0 = mask (and boosted) logarithmic drag coef. 
    440437               zzz =  0.5_wp * e3t_0(ji,jj,k_mk(ji,jj)) 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/ZDF/zdfevd.F90

    r14665 r14765  
    9797!         END WHERE 
    9898         ! 
    99          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    10099         DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 ) 
    101100            IF(  MIN( rn2(ji,jj,jk), rn2b(ji,jj,jk) ) <= -1.e-12 ) THEN 
     
    119118!         END WHERE 
    120119 
    121          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    122120         DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 ) 
    123121            IF(  MIN( rn2(ji,jj,jk), rn2b(ji,jj,jk) ) <= -1.e-12 )   & 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/ZDF/zdfgls.F90

    r14665 r14765  
    181181 
    182182      ! Compute surface, top and bottom friction at T-points 
    183       ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 )          !==  surface ocean friction 
    184183      DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 )          !==  surface ocean friction 
    185184         ustar2_surf(ji,jj) = r1_rho0 * taum(ji,jj) * tmask(ji,jj,1)   ! surface friction 
     
    189188      ! 
    190189      IF( .NOT.ln_drg_OFF ) THEN     !== top/bottom friction   (explicit before friction) 
    191          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 )         ! bottom friction (explicit before friction) 
    192190         DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 )          ! bottom friction (explicit before friction) 
    193191            zmsku = 0.5_wp * ( 2._wp - umask(ji-1,jj,mbkt(ji,jj)) * umask(ji,jj,mbkt(ji,jj)) ) 
     
    197195         END_2D 
    198196         IF( ln_isfcav ) THEN 
    199             ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 )      ! top friction 
    200197            DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 )      ! top friction 
    201198               zmsku = 0.5_wp * ( 2. - umask(ji-1,jj,mikt(ji,jj)) * umask(ji,jj,mikt(ji,jj)) ) 
     
    230227      END_2D 
    231228      ! 
    232       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )  !==  Compute dissipation rate  ==! 
    233229      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )  !==  Compute dissipation rate  ==! 
    234230         eps(ji,jj,jk)  = rc03 * en(ji,jj,jk) * SQRT( en(ji,jj,jk) ) / hmxl_n(ji,jj,jk) 
     
    242238 
    243239      IF( nn_clos == 0 ) THEN    ! Mellor-Yamada 
    244          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    245240         DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    246241            zup   = hmxl_n(ji,jj,jk) * gdepw(ji,jj,mbkt(ji,jj)+1,Kmm) 
     
    264259      ! Warning : after this step, en : right hand side of the matrix 
    265260 
    266       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    267261      DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    268262         ! 
     
    367361         !                      ! en(ibot) = u*^2 / Co2 and hmxl_n(ibot) = rn_lmin 
    368362         !                      ! Balance between the production and the dissipation terms 
    369          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    370363         DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    371364!!gm This means that bottom and ocean w-level above have a specified "en" value.   Sure ???? 
     
    387380         ! NOTE: [tiling] not tested- ctl_stop with ln_isfcav! 
    388381         IF( ln_isfcav) THEN     ! top boundary   (ocean cavity) 
    389             ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    390382            DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    391383               itop   = mikt(ji,jj)       ! k   top w-point 
     
    406398      CASE ( 1 )             ! Neumman boundary condition 
    407399         ! 
    408          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    409400         DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    410401            ibot   = mbkt(ji,jj) + 1      ! k   bottom level of w-point 
     
    423414         ! NOTE: [tiling] not tested- ctl_stop with ln_isfcav! 
    424415         IF( ln_isfcav) THEN     ! top boundary   (ocean cavity) 
    425             ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    426416            DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    427417               itop   = mikt(ji,jj)       ! k   top w-point 
     
    445435      ! ---------------------------------------------------------- 
    446436      ! 
    447       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )                ! First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1 
    448437      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )                ! First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1 
    449438         zdiag(ji,jj,jk) = zdiag(ji,jj,jk) - zd_lw(ji,jj,jk) * zd_up(ji,jj,jk-1) / zdiag(ji,jj,jk-1) 
    450439      END_3D 
    451       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )                ! Second recurrence : Lk = RHSk - Lk / Dk-1 * Lk-1 
    452440      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )                ! Second recurrence : Lk = RHSk - Lk / Dk-1 * Lk-1 
    453441         zd_lw(ji,jj,jk) = en(ji,jj,jk) - zd_lw(ji,jj,jk) / zdiag(ji,jj,jk-1) * zd_lw(ji,jj,jk-1) 
    454442      END_3D 
    455       ! [comm_cleanup] ! DO_3DS( 0, 0, 0, 0, jpkm1, 2, -1 )           ! Third recurrence : Ek = ( Lk - Uk * Ek+1 ) / Dk 
    456443      DO_3DS_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, jpkm1, 2, -1 )           ! Third recurrence : Ek = ( Lk - Uk * Ek+1 ) / Dk 
    457444         en(ji,jj,jk) = ( zd_lw(ji,jj,jk) - zd_up(ji,jj,jk) * en(ji,jj,jk+1) ) / zdiag(ji,jj,jk) 
     
    471458      ! 
    472459      CASE( 0 )               ! k-kl  (Mellor-Yamada) 
    473          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    474460         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    475461            psi(ji,jj,jk)  = eb(ji,jj,jk) * hmxl_b(ji,jj,jk) 
     
    477463         ! 
    478464      CASE( 1 )               ! k-eps 
    479          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    480465         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    481466            psi(ji,jj,jk)  = eps(ji,jj,jk) 
     
    483468         ! 
    484469      CASE( 2 )               ! k-w 
    485          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    486470         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    487471            psi(ji,jj,jk)  = SQRT( eb(ji,jj,jk) ) / ( rc0 * hmxl_b(ji,jj,jk) ) 
     
    489473         ! 
    490474      CASE( 3 )               ! generic 
    491          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    492475         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    493476            psi(ji,jj,jk)  = rc02 * eb(ji,jj,jk) * hmxl_b(ji,jj,jk)**rnn 
     
    503486      ! Warning : after this step, en : right hand side of the matrix 
    504487 
    505       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    506488      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    507489         ! 
     
    606588         !                      ! en(ibot) = u*^2 / Co2 and hmxl_n(ibot) = vkarmn * r_z0_bot 
    607589         !                      ! Balance between the production and the dissipation terms 
    608          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    609590         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    610591            ibot   = mbkt(ji,jj) + 1      ! k   bottom level of w-point 
     
    626607      CASE ( 1 )             ! Neumman boundary condition 
    627608         ! 
    628          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    629609         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    630610            ibot   = mbkt(ji,jj) + 1      ! k   bottom level of w-point 
     
    655635      ! ---------------- 
    656636      ! 
    657       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )                ! First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1 
    658637      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )                ! First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1 
    659638         zdiag(ji,jj,jk) = zdiag(ji,jj,jk) - zd_lw(ji,jj,jk) * zd_up(ji,jj,jk-1) / zdiag(ji,jj,jk-1) 
    660639      END_3D 
    661       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )                ! Second recurrence : Lk = RHSk - Lk / Dk-1 * Lk-1 
    662640      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )                ! Second recurrence : Lk = RHSk - Lk / Dk-1 * Lk-1 
    663641         zd_lw(ji,jj,jk) = psi(ji,jj,jk) - zd_lw(ji,jj,jk) / zdiag(ji,jj,jk-1) * zd_lw(ji,jj,jk-1) 
    664642      END_3D 
    665       ! [comm_cleanup] ! DO_3DS( 0, 0, 0, 0, jpkm1, 2, -1 )           ! Third recurrence : Ek = ( Lk - Uk * Ek+1 ) / Dk 
    666643      DO_3DS( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, jpkm1, 2, -1 )           ! Third recurrence : Ek = ( Lk - Uk * Ek+1 ) / Dk 
    667644         psi(ji,jj,jk) = ( zd_lw(ji,jj,jk) - zd_up(ji,jj,jk) * psi(ji,jj,jk+1) ) / zdiag(ji,jj,jk) 
     
    674651      ! 
    675652      CASE( 0 )               ! k-kl  (Mellor-Yamada) 
    676          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    677653         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 ) 
    678654            eps(ji,jj,jk) = rc03 * en(ji,jj,jk) * en(ji,jj,jk) * SQRT( en(ji,jj,jk) ) / MAX( psi(ji,jj,jk), rn_epsmin) 
     
    680656         ! 
    681657      CASE( 1 )               ! k-eps 
    682          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    683658         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 ) 
    684659            eps(ji,jj,jk) = psi(ji,jj,jk) 
     
    686661         ! 
    687662      CASE( 2 )               ! k-w 
    688          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    689663         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 ) 
    690664            eps(ji,jj,jk) = rc04 * en(ji,jj,jk) * psi(ji,jj,jk) 
     
    695669         zex1  =      ( 1.5_wp + rmm/rnn ) 
    696670         zex2  = -1._wp / rnn 
    697          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    698671         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 ) 
    699672            eps(ji,jj,jk) = zcoef * en(ji,jj,jk)**zex1 * psi(ji,jj,jk)**zex2 
     
    704677      ! Limit dissipation rate under stable stratification 
    705678      ! -------------------------------------------------- 
    706       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpkm1 )   ! Note that this set boundary conditions on hmxl_n at the same time 
    707679      DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 )   ! Note that this set boundary conditions on hmxl_n at the same time 
    708680         ! limitation 
     
    724696      ! 
    725697      CASE ( 0 , 1 )             ! Galperin or Kantha-Clayson stability functions 
    726          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    727698         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    728699            ! zcof =  l²/q² 
     
    742713         ! 
    743714      CASE ( 2, 3 )               ! Canuto stability functions 
    744          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    745715         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    746716            ! zcof =  l²/q² 
     
    775745      ! default value, in case jpk > mbkt(ji,jj)+1. Not needed but avoid a bug when looking for undefined values (-fpe0) 
    776746      zstm(:,:,jpk) = 0. 
    777       ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 )             ! update bottom with good values 
    778747      DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 )             ! update bottom with good values 
    779748         zstm(ji,jj,mbkt(ji,jj)+1) = zstm(ji,jj,mbkt(ji,jj)) 
     
    791760      !     later overwritten by surface/bottom boundaries conditions, so we don't really care of p_avm(:,:1) and p_avm(:,:jpk) 
    792761      !     for zd_lw and zd_up but they have to be defined to avoid a bug when looking for undefined values (-fpe0) 
    793       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpk ) 
    794762      DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpk ) 
    795763         zsqen = SQRT( 2._wp * en(ji,jj,jk) ) * hmxl_n(ji,jj,jk) 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/ZDF/zdfiwm.F90

    r14665 r14765  
    145145      ! Set to zero the 1st and last vertical levels of appropriate variables 
    146146      IF( iom_use("emix_iwm") ) THEN 
    147          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    148147         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    149148            zemx_iwm (ji,jj,1) = 0._wp   ;   zemx_iwm (ji,jj,jpk) = 0._wp 
     
    151150      ENDIF 
    152151      IF( iom_use("av_ratio") ) THEN 
    153          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    154152         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    155153            zav_ratio(ji,jj,1) = 0._wp   ;   zav_ratio(ji,jj,jpk) = 0._wp 
     
    157155      ENDIF 
    158156      IF( iom_use("av_wave") .OR. sn_cfctl%l_prtctl ) THEN 
    159          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    160157         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    161158            zav_wave (ji,jj,1) = 0._wp   ;   zav_wave (ji,jj,jpk) = 0._wp 
     
    169166      !                       !* Critical slope mixing: distribute energy over the time-varying ocean depth, 
    170167      !                                                 using an exponential decay from the seafloor. 
    171       ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 )             ! part independent of the level 
    172168      DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 )             ! part independent of the level 
    173169         zhdep(ji,jj) = gdepw_0(ji,jj,mbkt(ji,jj)+1)       ! depth of the ocean 
     
    176172      END_2D 
    177173!!gm gde3w ==>>>  check for ssh taken into account.... seem OK gde3w_n=gdept(:,:,:,Kmm) - ssh(:,:,Kmm) 
    178       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )   ! complete with the level-dependent part 
    179174      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )   ! complete with the level-dependent part 
    180175         IF ( zfact(ji,jj) == 0._wp .OR. wmask(ji,jj,jk) == 0._wp ) THEN   ! optimization 
     
    197192      CASE ( 1 )               ! Dissipation scales as N (recommended) 
    198193         ! 
    199          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    200194         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    201195            zfact(ji,jj) = 0._wp 
    202196         END_2D 
    203          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )       ! part independent of the level 
    204197         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )       ! part independent of the level 
    205198            zfact(ji,jj) = zfact(ji,jj) + e3w(ji,jj,jk,Kmm) * SQRT(  MAX( 0._wp, rn2(ji,jj,jk) )  ) * wmask(ji,jj,jk) 
    206199         END_3D 
    207200         ! 
    208          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    209201         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    210202            IF( zfact(ji,jj) /= 0 )   zfact(ji,jj) = epyc_iwm(ji,jj) / ( rho0 * zfact(ji,jj) ) 
    211203         END_2D 
    212204         ! 
    213          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )       ! complete with the level-dependent part 
    214205         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )       ! complete with the level-dependent part 
    215206            zemx_iwm(ji,jj,jk) = zemx_iwm(ji,jj,jk) + zfact(ji,jj) * SQRT(  MAX( 0._wp, rn2(ji,jj,jk) )  ) * wmask(ji,jj,jk) 
     
    218209      CASE ( 2 )               ! Dissipation scales as N^2 
    219210         ! 
    220          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    221211         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    222212            zfact(ji,jj) = 0._wp 
    223213         END_2D 
    224          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )       ! part independent of the level 
    225214         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )       ! part independent of the level 
    226215            zfact(ji,jj) = zfact(ji,jj) + e3w(ji,jj,jk,Kmm) * MAX( 0._wp, rn2(ji,jj,jk) ) * wmask(ji,jj,jk) 
    227216         END_3D 
    228217         ! 
    229          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    230218         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    231219            IF( zfact(ji,jj) /= 0 )   zfact(ji,jj) = epyc_iwm(ji,jj) / ( rho0 * zfact(ji,jj) ) 
    232220         END_2D 
    233221         ! 
    234          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    235222         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    236223            zemx_iwm(ji,jj,jk) = zemx_iwm(ji,jj,jk) + zfact(ji,jj) * MAX( 0._wp, rn2(ji,jj,jk) ) * wmask(ji,jj,jk) 
     
    242229      !                        !* ocean depth as proportional to rn2 * exp(-z_wkb/rn_hbot) 
    243230      ! 
    244       ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    245231      DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    246232         zwkb(ji,jj,1) = 0._wp 
    247233      END_2D 
    248       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    249234      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    250235         zwkb(ji,jj,jk) = zwkb(ji,jj,jk-1) + e3w(ji,jj,jk,Kmm) * SQRT(  MAX( 0._wp, rn2(ji,jj,jk) )  ) * wmask(ji,jj,jk) 
    251236      END_3D 
    252       ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    253237      DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    254238         zfact(ji,jj) = zwkb(ji,jj,jpkm1) 
    255239      END_2D 
    256240      ! 
    257       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    258241      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    259242         IF( zfact(ji,jj) /= 0 )   zwkb(ji,jj,jk) = zhdep(ji,jj) * ( zfact(ji,jj) - zwkb(ji,jj,jk) )   & 
    260243            &                                     * wmask(ji,jj,jk) / zfact(ji,jj) 
    261244      END_3D 
    262       ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    263245      DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    264246         zwkb (ji,jj,1) = zhdep(ji,jj) * wmask(ji,jj,1) 
    265247      END_2D 
    266248      ! 
    267       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    268249      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    269250         IF ( rn2(ji,jj,jk) <= 0._wp .OR. wmask(ji,jj,jk) == 0._wp ) THEN   ! optimization: EXP coast a lot 
     
    275256      END_3D 
    276257      ! 
    277       ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    278258      DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    279259         zfact(ji,jj) = 0._wp 
    280260      END_2D 
    281       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )       ! part independent of the level 
    282261      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )       ! part independent of the level 
    283262         zfact(ji,jj) = zfact(ji,jj) + zweight(ji,jj,jk) 
    284263      END_3D 
    285264      ! 
    286       ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    287265      DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    288266         IF( zfact(ji,jj) /= 0 )   zfact(ji,jj) = ebot_iwm(ji,jj) / ( rho0 * zfact(ji,jj) ) 
    289267      END_2D 
    290268      ! 
    291       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )       ! complete with the level-dependent part 
    292269      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )       ! complete with the level-dependent part 
    293270         zemx_iwm(ji,jj,jk) = zemx_iwm(ji,jj,jk) + zweight(ji,jj,jk) * zfact(ji,jj) * wmask(ji,jj,jk)   & 
     
    298275!!gm  this is to be replaced by just a constant value znu=1.e-6 m2/s 
    299276      ! Calculate molecular kinematic viscosity 
    300       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    301277      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 ) 
    302278         znu_t(ji,jj,jk) = 1.e-4_wp * (  17.91_wp - 0.53810_wp * ts(ji,jj,jk,jp_tem,Kmm)   & 
     
    304280            &                                     + 0.02305_wp * ts(ji,jj,jk,jp_sal,Kmm)  ) * tmask(ji,jj,jk) * r1_rho0 
    305281      END_3D 
    306       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    307282      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    308283         znu_w(ji,jj,jk) = 0.5_wp * ( znu_t(ji,jj,jk-1) + znu_t(ji,jj,jk) ) * wmask(ji,jj,jk) 
     
    311286      ! 
    312287      ! Calculate turbulence intensity parameter Reb 
    313       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    314288      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    315289         zReb(ji,jj,jk) = zemx_iwm(ji,jj,jk) / MAX( 1.e-20_wp, znu_w(ji,jj,jk) * rn2(ji,jj,jk) ) 
     
    317291      ! 
    318292      ! Define internal wave-induced diffusivity 
    319       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    320293      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    321294         zav_wave(ji,jj,jk) = znu_w(ji,jj,jk) * zReb(ji,jj,jk) * r1_6   ! This corresponds to a constant mixing efficiency of 1/6 
     
    323296      ! 
    324297      IF( ln_mevar ) THEN                ! Variable mixing efficiency case : modify zav_wave in the 
    325          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )   ! energetic (Reb > 480) and buoyancy-controlled (Reb <10.224 ) regimes 
    326298         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )   ! energetic (Reb > 480) and buoyancy-controlled (Reb <10.224 ) regimes 
    327299            IF( zReb(ji,jj,jk) > 480.00_wp ) THEN 
     
    333305      ENDIF 
    334306      ! 
    335       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )      ! Bound diffusivity by molecular value and 100 cm2/s 
    336307      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )      ! Bound diffusivity by molecular value and 100 cm2/s 
    337308         zav_wave(ji,jj,jk) = MIN(  MAX( 1.4e-7_wp, zav_wave(ji,jj,jk) ), 1.e-2_wp  ) * wmask(ji,jj,jk) 
     
    341312         IF( .NOT. l_istiled .OR. ntile == 1 ) zztmp = 0._wp                    ! Do only on the first tile 
    342313!!gm used of glosum 3D.... 
    343          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    344314         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    345315            zztmp = zztmp + e3w(ji,jj,jk,Kmm) * e1e2t(ji,jj)   & 
     
    367337      IF( ln_tsdiff ) THEN                !* Option for differential mixing of salinity and temperature 
    368338         ztmp1 = 0.505_wp + 0.495_wp * TANH( 0.92_wp * ( LOG10( 1.e-20_wp ) - 0.60_wp ) ) 
    369          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )       ! Calculate S/T diffusivity ratio as a function of Reb 
    370339         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )       ! Calculate S/T diffusivity ratio as a function of Reb 
    371340            ztmp2 = zReb(ji,jj,jk) * 5._wp * r1_6 
     
    377346         END_3D 
    378347         CALL iom_put( "av_ratio", zav_ratio ) 
    379          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )    !* update momentum & tracer diffusivity with wave-driven mixing 
    380348         DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )    !* update momentum & tracer diffusivity with wave-driven mixing 
    381349            p_avs(ji,jj,jk) = p_avs(ji,jj,jk) + zav_wave(ji,jj,jk) * zav_ratio(ji,jj,jk) 
     
    385353         ! 
    386354      ELSE                                !* update momentum & tracer diffusivity with wave-driven mixing 
    387          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    388355         DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    389356            p_avs(ji,jj,jk) = p_avs(ji,jj,jk) + zav_wave(ji,jj,jk) 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/ZDF/zdfmxl.F90

    r14665 r14765  
    9797      END_2D 
    9898      zN2_c = grav * rho_c * r1_rho0      ! convert density criteria into N^2 criteria 
    99       ! [comm_cleanup] ! DO_3D( 1, 1, 1, 1, nlb10, jpkm1 )   ! Mixed layer level: w-level 
    10099      DO_3D_OVR( nn_hls, nn_hls, nn_hls, nn_hls, nlb10, jpkm1 )   ! Mixed layer level: w-level 
    101100         ikt = mbkt(ji,jj) 
     
    105104      END_3D 
    106105      ! depth of the mixed layer 
    107       ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 ) 
    108106      DO_2D_OVR( nn_hls, nn_hls, nn_hls, nn_hls ) 
    109107         iik = nmln(ji,jj) 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/ZDF/zdfphy.F90

    r14665 r14765  
    371371 
    372372      !                                         !* Lateral boundary conditions (sign unchanged) 
    373       ! [comm_cleanup] ! lbc_lnk shifted in stp 
    374       IF(nn_hls.eq.1) THEN 
     373      IF(nn_hls==1) THEN 
    375374         ! NOTE: [tiling] this solution for lbc_lnk will not work if outer halo values are accessed before the end of the tiling loop 
    376375         IF( .NOT. l_istiled .OR. ntile == nijtile ) THEN                       ! Do only on the last tile 
    377             IF( l_zdfsh2 ) THEN 
    378                CALL lbc_lnk( 'zdfphy', avm_k, 'W', 1.0_wp , avt_k, 'W', 1.0_wp,   & 
    379                      &                 avm  , 'W', 1.0_wp , avt  , 'W', 1.0_wp , avs , 'W', 1.0_wp ) 
    380             ELSE 
    381                CALL lbc_lnk( 'zdfphy', avm  , 'W', 1.0_wp , avt  , 'W', 1.0_wp , avs , 'W', 1.0_wp ) 
     376         IF( l_zdfsh2 ) THEN 
     377            CALL lbc_lnk( 'zdfphy', avm_k, 'W', 1.0_wp , avt_k, 'W', 1.0_wp,   & 
     378                  &                 avm  , 'W', 1.0_wp , avt  , 'W', 1.0_wp , avs , 'W', 1.0_wp ) 
     379         ELSE 
     380            CALL lbc_lnk( 'zdfphy', avm  , 'W', 1.0_wp , avt  , 'W', 1.0_wp , avs , 'W', 1.0_wp ) 
     381         ENDIF 
     382         ! 
     383         IF( l_zdfdrg ) THEN     ! drag  have been updated (non-linear cases) 
     384            IF( ln_isfcav ) THEN   ;  CALL lbc_lnk( 'zdfphy', rCdU_top, 'T', 1.0_wp , rCdU_bot, 'T', 1.0_wp )   ! top & bot drag 
     385            ELSE                   ;  CALL lbc_lnk( 'zdfphy', rCdU_bot, 'T', 1.0_wp )                           ! bottom drag only 
    382386            ENDIF 
    383             ! 
    384             IF( l_zdfdrg ) THEN     ! drag  have been updated (non-linear cases) 
    385                IF( ln_isfcav ) THEN   ;  CALL lbc_lnk( 'zdfphy', rCdU_top, 'T', 1.0_wp , rCdU_bot, 'T', 1.0_wp )   ! top & bot drag 
    386                ELSE                   ;  CALL lbc_lnk( 'zdfphy', rCdU_bot, 'T', 1.0_wp )                           ! bottom drag only 
    387                ENDIF 
    388             ENDIF 
    389          ENDIF 
     387         ENDIF 
     388      ENDIF 
    390389      ENDIF 
    391390      ! 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/ZDF/zdfric.F90

    r14665 r14765  
    157157      ! 
    158158      !                       !==  avm and avt = F(Richardson number)  ==! 
    159       ! [comm_cleanup] ! DO_3D( 1, 0, 1, 0, 2, jpkm1 )       ! coefficient = F(richardson number) (avm-weighted Ri) 
    160159      DO_3D_OVR( nn_hls, nn_hls-1, nn_hls, nn_hls-1, 2, jpkm1 )       ! coefficient = F(richardson number) (avm-weighted Ri) 
    161160         zcfRi = 1._wp / (  1._wp + rn_alp * MAX(  0._wp , avm(ji,jj,jk) * rn2(ji,jj,jk) / ( p_sh2(ji,jj,jk) + 1.e-20 ) )  ) 
     
    171170      IF( ln_mldw ) THEN      !==  set a minimum value in the Ekman layer  ==! 
    172171         ! 
    173          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 )             !* Ekman depth 
    174172         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 )  
    175173            zustar = SQRT( taum(ji,jj) * r1_rho0 ) 
     
    177175            zh_ekm(ji,jj) = MAX(  rn_mldmin , MIN( zhek , rn_mldmax )  )   ! set allowed range 
    178176         END_2D 
    179          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )   !* minimum mixing coeff. within the Ekman layer 
    180177         DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )   !* minimum mixing coeff. within the Ekman layer 
    181178            IF( gdept(ji,jj,jk,Kmm) < zh_ekm(ji,jj) ) THEN 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/ZDF/zdfsh2.F90

    r14665 r14765  
    6666         ! TODO: [tiling] NOT TESTED- requires key_oasis3 
    6767         IF ( cpl_sdrftx .AND. ln_stshear )  THEN       ! Surface Stokes Drift available  ===>>>  shear + stokes drift contibution 
    68             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) 
    6968            DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 
    7069               zsh2u(ji,jj) = ( p_avm(ji+1,jj,jk) + p_avm(ji,jj,jk) )        & 
     
    8079            END_2D 
    8180         ELSE 
    82             ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )     !* 2 x shear production at uw- and vw-points (energy conserving form) 
    8381            DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 )     !* 2 x shear production at uw- and vw-points (energy conserving form) 
    8482               zsh2u(ji,jj) = ( p_avm(ji+1,jj,jk) + p_avm(ji,jj,jk) ) & 
     
    9492            END_2D 
    9593         ENDIF 
    96          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 )     !* shear production at w-point ! coast mask: =2 at the coast ; =1 otherwise (NB: wmask useless as zsh2 are masked) 
    9794         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 )     !* shear production at w-point ! coast mask: =2 at the coast ; =1 otherwise (NB: wmask useless as zsh2 are masked) 
    9895            p_sh2(ji,jj,jk) = 0.25 * (   ( zsh2u(ji-1,jj) + zsh2u(ji,jj) ) * ( 2. - umask(ji-1,jj,jk) * umask(ji,jj,jk) )   & 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/ZDF/zdfswm.F90

    r14665 r14765  
    6363      ! 
    6464      zcoef = 1._wp * 0.353553_wp 
    65       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    6665      DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    6766         zqb = zcoef * hsw(ji,jj) * tsd2d(ji,jj) * EXP( -3. * wnum(ji,jj) * gdepw(ji,jj,jk,Kmm) ) * wmask(ji,jj,jk) 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/ZDF/zdftke.F90

    r14665 r14765  
    241241      !                     !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    242242      ! 
    243       ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    244243      DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    245244         en(ji,jj,1) = MAX( rn_emin0, zbbrau * taum(ji,jj) ) 
     
    259258      IF( .NOT.ln_drg_OFF ) THEN    !== friction used as top/bottom boundary condition on TKE 
    260259         ! 
    261          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 )        ! bottom friction 
    262260         DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 )        ! bottom friction 
    263261            zmsku = ( 2. - umask(ji-1,jj,mbkt(ji,jj)) * umask(ji,jj,mbkt(ji,jj)) ) 
     
    269267         END_2D 
    270268         IF( ln_isfcav ) THEN 
    271             ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 )     ! top friction 
    272269            DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 )     ! top friction 
    273270               zmsku = ( 2. - umask(ji-1,jj,mikt(ji,jj)) * umask(ji,jj,mikt(ji,jj)) ) 
     
    298295!!gm  ! PS: currently we don't have neither the 2 stress components at t-point !nor the angle between u* and u_s 
    299296!!gm  ! so we will overestimate the LC velocity....   !!gm I will do the work if !LC have an effect ! 
    300             ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    301297            DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    302298!!XC                  zWlc2(ji,jj) = 0.5_wp * SQRT( taum(ji,jj) * r1_rho0 * ( ut0sd(ji,jj)**2 +vt0sd(ji,jj)**2 )  ) 
     
    306302!  Projection of Stokes drift in the wind stress direction 
    307303! 
    308             ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    309304            DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    310305                  ztaui   = 0.5_wp * ( utau(ji,jj) + utau(ji-1,jj) ) 
     
    319314            !                                ! 1/2 Wlc^2 = 0.5 * 0.016 * 0.016 |tau| /( rho_air Cdrag ) 
    320315            zcof = 0.5 * 0.016 * 0.016 / ( zrhoa * zcdrag )      ! to convert stress in 10m wind using a constant drag 
    321             ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 ) 
    322316            DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    323317               zWlc2(ji,jj) = zcof * taum(ji,jj) 
     
    338332         !                             !- compare LHS to RHS of Eq.47 
    339333         imlc(:,:) = mbkt(A2D(nn_hls)) + 1       ! Initialization to the number of w ocean point (=2 over land) 
    340          ! [comm_cleanup] ! DO_3DS( 1, 1, 1, 1, jpkm1, 2, -1 ) 
    341334         DO_3DS( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, jpkm1, 2, -1 ) 
    342335            IF( zpelc(ji,jj,jk) > zWlc2(ji,jj) )   imlc(ji,jj) = jk 
    343336         END_3D 
    344337         !                               ! finite LC depth 
    345          ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 ) 
    346338         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    347339            zhlc(ji,jj) = gdepw(ji,jj,imlc(ji,jj),Kmm) 
     
    349341         ! 
    350342         zcof = 0.016 / SQRT( zrhoa * zcdrag ) 
    351          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    352343         DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    353344            zus = SQRT( 2. * zWlc2(ji,jj) )             ! Stokes drift 
    354345            zus3(ji,jj) = MAX( 0._wp, 1._wp - zice_fra(ji,jj) ) * zus * zus * zus * tmask(ji,jj,1) ! zus > 0. ok 
    355346         END_2D 
    356          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )                  !* TKE Langmuir circulation source term added to en 
    357347         DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )                  !* TKE Langmuir circulation source term added to en 
    358348            IF ( zus3(ji,jj) /= 0._wp ) THEN 
     
    376366      ! 
    377367      IF( nn_pdl == 1 ) THEN          !* Prandtl number = F( Ri ) 
    378          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    379368         DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    380369            !                             ! local Richardson number 
     
    389378      ENDIF 
    390379      ! 
    391       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )   !* Matrix and right hand side in en 
    392380      DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )   !* Matrix and right hand side in en 
    393381         zcof   = zfact1 * tmask(ji,jj,jk) 
     
    420408 
    421409         CASE ( 0 ) ! Dirichlet BC 
    422             ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 )    ! en(1)   = rn_ebb taum / rho0  (min value rn_emin0) 
    423410            DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 )    ! en(1)   = rn_ebb taum / rho0  (min value rn_emin0) 
    424411               IF ( phioc(ji,jj) < 0 )  phioc(ji,jj) = 0._wp 
     
    428415 
    429416         CASE ( 1 ) ! Neumann BC 
    430             ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    431417            DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    432418               IF ( phioc(ji,jj) < 0 )  phioc(ji,jj) = 0._wp 
     
    443429      ! 
    444430      !                          !* Matrix inversion from level 2 (tke prescribed at level 1) 
    445       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )                ! First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1 
    446431      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )                ! First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1 
    447432         zdiag(ji,jj,jk) = zdiag(ji,jj,jk) - zd_lw(ji,jj,jk) * zd_up(ji,jj,jk-1) / zdiag(ji,jj,jk-1) 
     
    451436!         zd_lw(ji,jj,2) = en(ji,jj,2) - zd_lw(ji,jj,2) * en(ji,jj,1)    ! Surface boudary conditions on tke 
    452437!      END_2D 
    453       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    454438      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    455439         zd_lw(ji,jj,jk) = en(ji,jj,jk) - zd_lw(ji,jj,jk) / zdiag(ji,jj,jk-1) *zd_lw(ji,jj,jk-1) 
    456440      END_3D 
    457       ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 )                          ! thrid recurrence : Ek = ( Lk - Uk * Ek+1 ) / Dk 
    458441      DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 )                          ! thrid recurrence : Ek = ( Lk - Uk * Ek+1 ) / Dk 
    459442         en(ji,jj,jpkm1) = zd_lw(ji,jj,jpkm1) / zdiag(ji,jj,jpkm1) 
    460443      END_2D 
    461       ! [comm_cleanup] ! DO_3DS( 0, 0, 0, 0, jpk-2, 2, -1 ) 
    462444      DO_3DS_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, jpk-2, 2, -1 ) 
    463445         en(ji,jj,jk) = ( zd_lw(ji,jj,jk) - zd_up(ji,jj,jk) * en(ji,jj,jk+1) ) / zdiag(ji,jj,jk) 
    464446      END_3D 
    465       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )                ! set the minimum value of tke 
    466447      DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )                ! set the minimum value of tke 
    467448         en(ji,jj,jk) = MAX( en(ji,jj,jk), rn_emin ) * wmask(ji,jj,jk) 
     
    477458      ! 
    478459      IF( nn_etau == 1 ) THEN           !* penetration below the mixed layer (rn_efr fraction) 
    479          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    480460         DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    481461            en(ji,jj,jk) = en(ji,jj,jk) + rn_efr * en(ji,jj,1) * EXP( -gdepw(ji,jj,jk,Kmm) / htau(ji,jj) )   & 
     
    483463         END_3D 
    484464      ELSEIF( nn_etau == 2 ) THEN       !* act only at the base of the mixed layer (jk=nmln)  (rn_efr fraction) 
    485          ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    486465         DO_2D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    487466            jk = nmln(ji,jj) 
     
    491470      ! TODO: [tiling] NOT TESTED- requires ln_cpl 
    492471      ELSEIF( nn_etau == 3 ) THEN       !* penetration belox the mixed layer (HF variability) 
    493          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    494472         DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    495473            ztx2 = utau(ji-1,jj  ) + utau(ji,jj) 
     
    574552            zraug = vkarmn * 2.e5_wp / ( rho0 * grav ) 
    575553#if ! defined key_si3 && ! defined key_cice 
    576             ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 )                  ! No sea-ice 
    577554            DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 )                  ! No sea-ice 
    578555               zmxlm(ji,jj,1) =  zraug * taum(ji,jj) * tmask(ji,jj,1) 
     
    583560            ! 
    584561            CASE( 0 )                      ! No scaling under sea-ice 
    585                ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    586562               DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    587563                  zmxlm(ji,jj,1) = zraug * taum(ji,jj) * tmask(ji,jj,1) 
     
    589565               ! 
    590566            CASE( 1 )                      ! scaling with constant sea-ice thickness 
    591                ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    592567               DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    593568                  zmxlm(ji,jj,1) =  ( ( 1._wp - fr_i(ji,jj) ) * zraug * taum(ji,jj) + & 
     
    596571               ! 
    597572            CASE( 2 )                      ! scaling with mean sea-ice thickness 
    598                ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    599573               DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    600574#if defined key_si3 
     
    609583               ! 
    610584            CASE( 3 )                      ! scaling with max sea-ice thickness 
    611                ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    612585               DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    613586                  zmaxice = MAXVAL( h_i(ji,jj,:) ) 
     
    619592#endif 
    620593            ! 
    621             ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) 
    622594            DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) 
    623595               zmxlm(ji,jj,1) = MAX( rn_mxl0, zmxlm(ji,jj,1) ) 
     
    629601      ENDIF 
    630602      ! 
    631       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    632603      DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    633604         zrn2 = MAX( rn2(ji,jj,jk), rsmall ) 
     
    645616      ! where wmask = 0 set zmxlm == e3w(:,:,:,Kmm) 
    646617      CASE ( 0 )           ! bounded by the distance to surface and bottom 
    647          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    648618         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    649619            zemxl = MIN( gdepw(ji,jj,jk,Kmm) - gdepw(ji,jj,mikt(ji,jj),Kmm), zmxlm(ji,jj,jk),   & 
     
    657627         ! 
    658628      CASE ( 1 )           ! bounded by the vertical scale factor 
    659          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    660629         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    661630            zemxl = MIN( e3w(ji,jj,jk,Kmm), zmxlm(ji,jj,jk) ) 
     
    665634         ! 
    666635      CASE ( 2 )           ! |dk[xml]| bounded by e3t : 
    667          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )       ! from the surface to the bottom : 
    668636         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )       ! from the surface to the bottom : 
    669637            zmxlm(ji,jj,jk) =   & 
    670638               &    MIN( zmxlm(ji,jj,jk-1) + e3t(ji,jj,jk-1,Kmm), zmxlm(ji,jj,jk) ) 
    671639         END_3D 
    672          ! [comm_cleanup] ! DO_3DS( 0, 0, 0, 0, jpkm1, 2, -1 )   ! from the bottom to the surface : 
    673640         DO_3DS( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, jpkm1, 2, -1 )   ! from the bottom to the surface : 
    674641            zemxl = MIN( zmxlm(ji,jj,jk+1) + e3t(ji,jj,jk+1,Kmm), zmxlm(ji,jj,jk) ) 
     
    678645         ! 
    679646      CASE ( 3 )           ! lup and ldown, |dk[xml]| bounded by e3t : 
    680          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )        ! from the surface to the bottom : lup 
    681647         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 )        ! from the surface to the bottom : lup 
    682648            zmxld(ji,jj,jk) =    & 
    683649               &    MIN( zmxld(ji,jj,jk-1) + e3t(ji,jj,jk-1,Kmm), zmxlm(ji,jj,jk) ) 
    684650         END_3D 
    685          ! [comm_cleanup] ! DO_3DS( 0, 0, 0, 0, jpkm1, 2, -1 )   ! from the bottom to the surface : ldown 
    686651         DO_3DS( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, jpkm1, 2, -1 )   ! from the bottom to the surface : ldown 
    687652            zmxlm(ji,jj,jk) =   & 
    688653               &    MIN( zmxlm(ji,jj,jk+1) + e3t(ji,jj,jk+1,Kmm), zmxlm(ji,jj,jk) ) 
    689654         END_3D 
    690          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    691655         DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    692656            zemlm = MIN ( zmxld(ji,jj,jk),  zmxlm(ji,jj,jk) ) 
     
    701665      !                     !  Vertical eddy viscosity and diffusivity  (avm and avt) 
    702666      !                     !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    703       ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpkm1 )   !* vertical eddy viscosity & diffivity at w-points 
    704667      DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 )   !* vertical eddy viscosity & diffivity at w-points 
    705668         zsqen = SQRT( en(ji,jj,jk) ) 
     
    712675      ! 
    713676      IF( nn_pdl == 1 ) THEN          !* Prandtl number case: update avt 
    714          ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    715677         DO_3D_OVR( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 
    716678            p_avt(ji,jj,jk)   = MAX( apdlr(ji,jj,jk) * p_avt(ji,jj,jk), avtb_2d(ji,jj) * avtb(jk) ) * wmask(ji,jj,jk) 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/nemogcm.F90

    r14574 r14765  
    390390      CALL mpp_init 
    391391 
     392#if defined key_loop_fusion 
     393      IF( nn_hls == 1 ) THEN 
     394         CALL ctl_stop( 'STOP', 'nemogcm : Loop fusion can be used only with extra-halo' ) 
     395      ENDIF 
     396#endif 
     397 
    392398      CALL halo_mng_init() 
    393399      ! Now we know the dimensions of the grid and numout has been set: we can allocate arrays 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/step.F90

    r14753 r14765  
    362362!! 
    363363!!jc2: dynnxt must be the latest call. e3t(:,:,:,Nbb) are indeed updated in that routine 
    364  
    365364                         CALL tra_atf       ( kstp, Nbb, Nnn, Naa, ts )                      ! time filtering of "now" tracer arrays 
    366365                         CALL dyn_atf       ( kstp, Nbb, Nnn, Naa, uu, vv, e3t, e3u, e3v  )  ! time filtering of "now" velocities and scale factors 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/SWE/stprk3.F90

    r14764 r14765  
    172172      ! 
    173173      CALL lbc_lnk( 'stp_RK3', uu(:,:,:,Naa), 'U', -1., vv(:,:,:,Naa), 'V', -1. ) 
    174       ! [ comm_cleanup ] ! lbc_lnk from DYN - needed for ssh_nxt 
    175       IF (nn_hls.eq.2) CALL lbc_lnk( 'stp_MLF', r3u(:,:,Naa), 'U', 1., r3v(:,:,Naa), 'U', 1.) 
     174      IF (nn_hls==2) CALL lbc_lnk( 'stp_MLF', r3u(:,:,Naa), 'U', 1., r3v(:,:,Naa), 'U', 1.) 
    176175      ! 
    177176      !                                 !==  Swap time levels  ==! 
     
    239238      ! 
    240239      CALL lbc_lnk( 'stp_RK3', uu(:,:,:,Naa), 'U', -1., vv(:,:,:,Naa), 'V', -1. ) 
    241       ! [ comm_cleanup ] ! lbc_lnk from DYN - needed for ssh_nxt 
    242       IF (nn_hls.eq.2) CALL lbc_lnk( 'stp_MLF', r3u(:,:,Naa), 'U', 1., r3v(:,:,Naa), 'U', 1.) 
     240      IF (nn_hls==2) CALL lbc_lnk( 'stp_MLF', r3u(:,:,Naa), 'U', 1., r3v(:,:,Naa), 'U', 1.) 
    243241      ! 
    244242      !                                 !==  Swap time levels  ==! 
     
    304302      ! 
    305303      CALL lbc_lnk( 'stp_RK3', uu(:,:,:,Naa), 'U', -1., vv(:,:,:,Naa), 'V', -1. ) 
    306       ! [ comm_cleanup ] ! lbc_lnk from DYN - needed for ssh_nxt 
    307       IF (nn_hls.eq.2) CALL lbc_lnk( 'stp_MLF', r3u(:,:,Naa), 'U', 1., r3v(:,:,Naa), 'U', 1.) 
     304      IF (nn_hls==2) CALL lbc_lnk( 'stp_MLF', r3u(:,:,Naa), 'U', 1., r3v(:,:,Naa), 'U', 1.) 
    308305      ! 
    309306      !                                 !==  Swap time levels  ==! 
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/TOP/TRP/trcadv.F90

    r14764 r14765  
    129129         CALL tra_adv_cen( kt, nittrc000,'TRC',          zuu, zvv, zww,      Kmm, ptr, jptra, Krhs, nn_cen_h, nn_cen_v ) 
    130130      CASE ( np_FCT )                                 ! FCT      : 2nd / 4th order 
    131          IF (nn_hls.EQ.2) THEN 
     131         IF (nn_hls==2) THEN 
    132132#if defined key_loop_fusion 
    133133            CALL tra_adv_fct_lf( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, nn_fct_h, nn_fct_v ) 
     
    139139         END IF 
    140140      CASE ( np_MUS )                                 ! MUSCL 
    141          IF (nn_hls.EQ.2) THEN 
     141         IF (nn_hls==2) THEN 
    142142#if defined key_loop_fusion 
    143143            CALL tra_adv_mus_lf( kt, nittrc000,'TRC', rDt_trc, zuu, zvv, zww, Kbb, Kmm, ptr, jptra, Krhs, ln_mus_ups )  
  • NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/TOP/TRP/trcldf.F90

    r14636 r14765  
    8383      zahv(:,:,:) = rldf * ahtv(:,:,:) 
    8484      !                                  !* Enhanced zonal diffusivity coefficent in the equatorial domain 
    85       ! [ comm_cleanup ] DO_3D( 1, 1, 1, 1, 1, jpk ) 
    8685      DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpk ) 
    8786         IF( gdept(ji,jj,jk,Kmm) > 200. .AND. gphit(ji,jj) < 5. .AND. gphit(ji,jj) > -5. ) THEN 
     
    103102           &                     ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Krhs), jptra, 1 ) 
    104103      CASE ( np_blp , np_blp_i , np_blp_it )                                                               ! bilaplacian: all operator (iso-level, -neutral) 
    105          IF(nn_hls.EQ.2) CALL lbc_lnk( 'trc_ldf', ptr(:,:,:,:,Kbb), 'T',1.) 
    106104         CALL tra_ldf_blp  ( kt, Kmm, nittrc000,'TRC', zahu, zahv, gtru, gtrv, gtrui, gtrvi,            & 
    107105           &                     ptr(:,:,:,:,Kbb) , ptr(:,:,:,:,Krhs),                 jptra, nldf_trc ) 
Note: See TracChangeset for help on using the changeset viewer.