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/SWE/stepLF.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/SWE/stepLF.F90

    r12983 r13295  
    146146      !IF( .NOT.ln_linssh )  CALL dom_vvl_sf_nxt_st( kstp, Nbb, Nnn,      Naa )    ! after vertical scale factors  
    147147!!an - calcul du gradient de pression horizontal (explicit) 
    148       DO_3D_00_00( 1, jpkm1 ) 
     148      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    149149         uu(ji,jj,jk,Nrhs) = uu(ji,jj,jk,Nrhs) - grav * ( ssh(ji+1,jj,Nnn) - ssh(ji,jj,Nnn) ) * r1_e1u(ji,jj) 
    150150         vv(ji,jj,jk,Nrhs) = vv(ji,jj,jk,Nrhs) - grav * ( ssh(ji,jj+1,Nnn) - ssh(ji,jj,Nnn) ) * r1_e2v(ji,jj) 
     
    153153      ! add wind stress forcing and layer linear friction to the RHS  
    154154      z1_2rho0 = 0.5_wp * r1_rho0 
    155       DO_3D_00_00(1,jpkm1) 
     155      DO_3D( 0, 0, 0, 0,1,jpkm1) 
    156156         uu(ji,jj,jk,Nrhs) = uu(ji,jj,jk,Nrhs) + z1_2rho0 * ( utau_b(ji,jj) + utau(ji,jj) ) / e3u(ji,jj,jk,Nnn)   & 
    157157            &                                  - rn_rfr * uu(ji,jj,jk,Nbb) 
     
    176176      IF( ln_dynadv_vec ) THEN      ! vector invariant form : applied on velocity 
    177177         IF( l_1st_euler ) THEN           ! Euler time stepping (no Asselin filter) 
    178             DO_3D_00_00(1,jpkm1) 
     178            DO_3D( 0, 0, 0, 0,1,jpkm1) 
    179179               uu(ji,jj,jk,Naa) = uu(ji,jj,jk,Nbb) + rDt * uu(ji,jj,jk,Nrhs) * umask(ji,jj,jk) 
    180180               vv(ji,jj,jk,Naa) = vv(ji,jj,jk,Nbb) + rDt * vv(ji,jj,jk,Nrhs) * vmask(ji,jj,jk) 
    181181             END_3D           
    182182         ELSE                             ! Leap Frog time stepping + Asselin filter          
    183             DO_3D_11_11(1,jpkm1) 
     183            DO_3D( 1, 1, 1, 1,1,jpkm1) 
    184184               zua = uu(ji,jj,jk,Nbb) + rDt * uu(ji,jj,jk,Nrhs) * umask(ji,jj,jk) 
    185185               zva = vv(ji,jj,jk,Nbb) + rDt * vv(ji,jj,jk,Nrhs) * vmask(ji,jj,jk) 
     
    203203      ELSE                          ! flux form : applied on thickness weighted velocity 
    204204         IF( l_1st_euler ) THEN           ! Euler time stepping (no Asselin filter) 
    205             DO_3D_00_00(1,jpkm1) 
     205            DO_3D( 0, 0, 0, 0,1,jpkm1) 
    206206               zue3b = e3u(ji,jj,jk,Nbb) * uu(ji,jj,jk,Nbb) 
    207207               zve3b = e3v(ji,jj,jk,Nbb) * vv(ji,jj,jk,Nbb) 
     
    215215         ELSE                             ! Leap Frog time stepping + Asselin filter 
    216216            CALL dom_qco_r3c( ssh(:,:,Nnn), r3t_f(:,:), r3u_f(:,:), r3v_f(:,:) )   ! "now" ssh/h_0 ratio from filtrered ssh 
    217             DO_3D_11_11(1,jpkm1) 
     217            DO_3D( 1, 1, 1, 1,1,jpkm1) 
    218218               zue3n = e3u(ji,jj,jk,Nnn) * uu(ji,jj,jk,Nnn) 
    219219               zve3n = e3v(ji,jj,jk,Nnn) * vv(ji,jj,jk,Nnn) 
Note: See TracChangeset for help on using the changeset viewer.