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

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

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

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/TRA/trazdf.F90

    r13237 r13295  
    161161            IF( l_ldfslp ) THEN            ! isoneutral diffusion: add the contribution  
    162162               IF( ln_traldf_msc  ) THEN     ! MSC iso-neutral operator  
    163                   DO_3D_00_00( 2, jpkm1 ) 
     163                  DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    164164                     zwt(ji,jj,jk) = zwt(ji,jj,jk) + akz(ji,jj,jk)   
    165165                  END_3D 
    166166               ELSE                          ! standard or triad iso-neutral operator 
    167                   DO_3D_00_00( 2, jpkm1 ) 
     167                  DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    168168                     zwt(ji,jj,jk) = zwt(ji,jj,jk) + ah_wslp2(ji,jj,jk) 
    169169                  END_3D 
     
    173173            ! Diagonal, lower (i), upper (s)  (including the bottom boundary condition since avt is masked) 
    174174            IF( ln_zad_Aimp ) THEN         ! Adaptive implicit vertical advection 
    175                DO_3D_00_00( 1, jpkm1 ) 
     175               DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    176176                  zzwi = - p2dt * zwt(ji,jj,jk  ) / e3w(ji,jj,jk  ,Kmm) 
    177177                  zzws = - p2dt * zwt(ji,jj,jk+1) / e3w(ji,jj,jk+1,Kmm) 
     
    182182               END_3D 
    183183            ELSE 
    184                DO_3D_00_00( 1, jpkm1 ) 
     184               DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    185185                  zwi(ji,jj,jk) = - p2dt * zwt(ji,jj,jk  ) / e3w(ji,jj,jk,Kmm) 
    186186                  zws(ji,jj,jk) = - p2dt * zwt(ji,jj,jk+1) / e3w(ji,jj,jk+1,Kmm) 
     
    208208            !   used as a work space array: its value is modified. 
    209209            ! 
    210             DO_2D_00_00 
     210            DO_2D( 0, 0, 0, 0 ) 
    211211               zwt(ji,jj,1) = zwd(ji,jj,1) 
    212212            END_2D 
    213             DO_3D_00_00( 2, jpkm1 ) 
     213            DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    214214               zwt(ji,jj,jk) = zwd(ji,jj,jk) - zwi(ji,jj,jk) * zws(ji,jj,jk-1) / zwt(ji,jj,jk-1) 
    215215            END_3D 
     
    217217         ENDIF  
    218218         !          
    219          DO_2D_00_00 
     219         DO_2D( 0, 0, 0, 0 ) 
    220220            pt(ji,jj,1,jn,Kaa) =        e3t(ji,jj,1,Kbb) * pt(ji,jj,1,jn,Kbb)    & 
    221221               &               + p2dt * e3t(ji,jj,1,Kmm) * pt(ji,jj,1,jn,Krhs) 
    222222         END_2D 
    223          DO_3D_00_00( 2, jpkm1 ) 
     223         DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 
    224224            zrhs =        e3t(ji,jj,jk,Kbb) * pt(ji,jj,jk,jn,Kbb)    &  
    225225               & + p2dt * e3t(ji,jj,jk,Kmm) * pt(ji,jj,jk,jn,Krhs)   ! zrhs=right hand side 
     
    227227         END_3D 
    228228         ! 
    229          DO_2D_00_00 
     229         DO_2D( 0, 0, 0, 0 ) 
    230230            pt(ji,jj,jpkm1,jn,Kaa) = pt(ji,jj,jpkm1,jn,Kaa) / zwt(ji,jj,jpkm1) * tmask(ji,jj,jpkm1) 
    231231         END_2D 
    232          DO_3DS_00_00( jpk-2, 1, -1 ) 
     232         DO_3DS( 0, 0, 0, 0, jpk-2, 1, -1 ) 
    233233            pt(ji,jj,jk,jn,Kaa) = ( pt(ji,jj,jk,jn,Kaa) - zws(ji,jj,jk) * pt(ji,jj,jk+1,jn,Kaa) )   & 
    234234               &             / zwt(ji,jj,jk) * tmask(ji,jj,jk) 
Note: See TracChangeset for help on using the changeset viewer.