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/SBC/sbcwave.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/SBC/sbcwave.F90

    r13237 r13295  
    113113      IF( ll_st_bv_li ) THEN   ! (Eq. (19) in Breivik et al. (2014) ) 
    114114         zfac = 2.0_wp * rpi / 16.0_wp 
    115          DO_2D_11_11 
     115         DO_2D( 1, 1, 1, 1 ) 
    116116            ! Stokes drift velocity estimated from Hs and Tmean 
    117117            ztransp = zfac * hsw(ji,jj)*hsw(ji,jj) / MAX( wmp(ji,jj), 0.0000001_wp ) 
     
    121121            zk_t(ji,jj) = ABS( tsd2d(ji,jj) ) / MAX( ABS( 5.97_wp*ztransp ), 0.0000001_wp ) 
    122122         END_2D 
    123          DO_2D_10_10 
     123         DO_2D( 1, 0, 1, 0 ) 
    124124            zk_u(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji+1,jj) ) 
    125125            zk_v(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji,jj+1) ) 
     
    129129         END_2D 
    130130      ELSE IF( ll_st_peakfr ) THEN    ! peak wave number calculated from the peak frequency received by the wave model 
    131          DO_2D_11_11 
     131         DO_2D( 1, 1, 1, 1 ) 
    132132            zk_t(ji,jj) = ( 2.0_wp * rpi * wfreq(ji,jj) ) * ( 2.0_wp * rpi * wfreq(ji,jj) ) / grav 
    133133         END_2D 
    134          DO_2D_10_10 
     134         DO_2D( 1, 0, 1, 0 ) 
    135135            zk_u(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji+1,jj) ) 
    136136            zk_v(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji,jj+1) ) 
     
    143143      !                       !==  horizontal Stokes Drift 3D velocity  ==! 
    144144      IF( ll_st_bv2014 ) THEN 
    145          DO_3D_00_00( 1, jpkm1 ) 
     145         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    146146            zdep_u = 0.5_wp * ( gdept(ji,jj,jk,Kmm) + gdept(ji+1,jj,jk,Kmm) ) 
    147147            zdep_v = 0.5_wp * ( gdept(ji,jj,jk,Kmm) + gdept(ji,jj+1,jk,Kmm) ) 
     
    158158      ELSE IF( ll_st_li2017 .OR. ll_st_peakfr ) THEN 
    159159         ALLOCATE( zstokes_psi_u_top(jpi,jpj), zstokes_psi_v_top(jpi,jpj) ) 
    160          DO_2D_10_10 
     160         DO_2D( 1, 0, 1, 0 ) 
    161161            zstokes_psi_u_top(ji,jj) = 0._wp 
    162162            zstokes_psi_v_top(ji,jj) = 0._wp 
     
    164164         zsqrtpi = SQRT(rpi) 
    165165         z_two_thirds = 2.0_wp / 3.0_wp 
    166          DO_3D_00_00( 1, jpkm1 ) 
     166         DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    167167            zbot_u = ( gdepw(ji,jj,jk+1,Kmm) + gdepw(ji+1,jj,jk+1,Kmm) )  ! 2 * bottom depth 
    168168            zbot_v = ( gdepw(ji,jj,jk+1,Kmm) + gdepw(ji,jj+1,jk+1,Kmm) )  ! 2 * bottom depth 
     
    204204      !                       !==  vertical Stokes Drift 3D velocity  ==! 
    205205      ! 
    206       DO_3D_01_01( 1, jpkm1 ) 
     206      DO_3D( 0, 1, 0, 1, 1, jpkm1 ) 
    207207         ze3divh(ji,jj,jk) = (  e2u(ji  ,jj) * e3u(ji  ,jj,jk,Kmm) * usd(ji  ,jj,jk)    & 
    208208            &                 - e2u(ji-1,jj) * e3u(ji-1,jj,jk,Kmm) * usd(ji-1,jj,jk)    & 
     
    263263      ! 
    264264      IF( ln_tauw ) THEN 
    265          DO_2D_10_10 
     265         DO_2D( 1, 0, 1, 0 ) 
    266266            ! Stress components at u- & v-points 
    267267            utau(ji,jj) = 0.5_wp * ( tauw_x(ji,jj) + tauw_x(ji+1,jj) ) 
Note: See TracChangeset for help on using the changeset viewer.