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/diawri.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/diawri.F90

    r12983 r13295  
    180180      IF( iom_use("hu") )   THEN                   ! water column at u-point 
    181181         z2d(:,:) = 0._wp 
    182          DO_2D_10_10   
     182         DO_2D( 1, 0, 1, 0 )   
    183183            z2d(ji,jj) = 0.5_wp * ( e3t(ji  ,jj,1,Kmm) * e1e2t(ji  ,jj)  & 
    184184               &                  + e3t(ji+1,jj,1,Kmm) * e1e2t(ji+1,jj)  ) * r1_e1e2u(ji,jj) 
     
    190190      IF( iom_use("hv") )   THEN                  ! water column at v-point 
    191191         z2d(:,:) = 0._wp 
    192          DO_2D_10_10   
     192         DO_2D( 1, 0, 1, 0 )   
    193193            z2d(ji,jj) = 0.5_wp * (  e3t(ji,jj+1,1,Kmm) * e1e2t(ji,jj+1)   & 
    194194              &                    + e3t(ji,jj  ,1,Kmm) * e1e2t(ji,jj  )   ) * r1_e1e2v(ji,jj) 
     
    200200      IF( iom_use("hf") )  THEN                    ! water column at f-point 
    201201         z2d(:,:) = 0._wp 
    202          DO_2D_10_10   
     202         DO_2D( 1, 0, 1, 0 )   
    203203            z2d(ji,jj) = 0.25_wp * (  e3t(ji,jj+1,1,Kmm) * e1e2t(ji,jj+1) + e3t(ji+1,jj+1,1,Kmm) * e1e2t(ji+1,jj+1)    & 
    204204              &                     + e3t(ji,jj  ,1,Kmm) * e1e2t(ji,jj  ) + e3t(ji+1,jj  ,1,Kmm) * e1e2t(ji+1,jj  )  ) * r1_e1e2f(ji,jj) 
     
    216216         zztmp = rho0 * 0.25 
    217217         z2d(:,:) = 0._wp 
    218          DO_2D_00_00 
     218         DO_2D( 0, 0, 0, 0 ) 
    219219            zztmp2 = (  ( rCdU_bot(ji+1,jj)+rCdU_bot(ji  ,jj) ) * uu(ji  ,jj,mbku(ji  ,jj),Kmm)  )**2   & 
    220220               &   + (  ( rCdU_bot(ji  ,jj)+rCdU_bot(ji-1,jj) ) * uu(ji-1,jj,mbku(ji-1,jj),Kmm)  )**2   & 
     
    235235      IF ( iom_use("sKE") ) THEN                        ! surface kinetic energy at T point 
    236236         z2d(:,:) = 0._wp 
    237          DO_2D_00_00 
     237         DO_2D( 0, 0, 0, 0 ) 
    238238            z2d(ji,jj) =    0.25_wp * ( uu(ji  ,jj,1,Kmm) * uu(ji  ,jj,1,Kmm) * e1e2u(ji  ,jj) * e3u(ji  ,jj,1,Kmm)  & 
    239239               &                      + uu(ji-1,jj,1,Kmm) * uu(ji-1,jj,1,Kmm) * e1e2u(ji-1,jj) * e3u(ji-1,jj,1,Kmm)  & 
     
    251251      IF ( iom_use("sKEf") ) THEN                        ! surface kinetic energy at F point 
    252252         z2d(:,:) = 0._wp                                ! CAUTION : only valid in SWE, not with bathymetry 
    253          DO_2D_00_00 
     253         DO_2D( 0, 0, 0, 0 ) 
    254254            z2d(ji,jj) =    0.25_wp * ( uu(ji,jj  ,1,Kmm) * uu(ji,jj  ,1,Kmm) * e1e2u(ji,jj  ) * e3u(ji,jj  ,1,Kmm)  & 
    255255               &                      + uu(ji,jj+1,1,Kmm) * uu(ji,jj+1,1,Kmm) * e1e2u(ji,jj+1) * e3u(ji,jj+1,1,Kmm)  & 
     
    273273         z2d(:,:) = 0._wp  
    274274         ze3 = 0._wp  
    275          DO_2D_10_10 
     275         DO_2D( 1, 0, 1, 0 ) 
    276276            z2d(ji,jj) = (   e2v(ji+1,jj  ) * vv(ji+1,jj  ,1,Kmm) - e2v(ji,jj) * vv(ji,jj,1,Kmm)    & 
    277277            &              - e1u(ji  ,jj+1) * uu(ji  ,jj+1,1,Kmm) + e1u(ji,jj) * uu(ji,jj,1,Kmm)  ) * r1_e1e2f(ji,jj) 
     
    282282         CALL iom_put( "plavor", ff_f )                 ! planetary vorticity ( f ) 
    283283         ! 
    284          DO_2D_10_10   
     284         DO_2D( 1, 0, 1, 0 )   
    285285            ze3 = (  e3t(ji,jj+1,1,Kmm) * e1e2t(ji,jj+1) + e3t(ji+1,jj+1,1,Kmm) * e1e2t(ji+1,jj+1)    & 
    286286              &    + e3t(ji,jj  ,1,Kmm) * e1e2t(ji,jj  ) + e3t(ji+1,jj  ,1,Kmm) * e1e2t(ji+1,jj  )  ) * r1_e1e2f(ji,jj) 
     
    293293         CALL iom_put( "relpotvor", z2d )                  ! relative potential vorticity (zeta/h) 
    294294         ! 
    295          DO_2D_10_10 
     295         DO_2D( 1, 0, 1, 0 ) 
    296296            ze3 = (  e3t(ji,jj+1,1,Kmm) * e1e2t(ji,jj+1) + e3t(ji+1,jj+1,1,Kmm) * e1e2t(ji+1,jj+1)    & 
    297297              &    + e3t(ji,jj  ,1,Kmm) * e1e2t(ji,jj  ) + e3t(ji+1,jj  ,1,Kmm) * e1e2t(ji+1,jj  )  ) * r1_e1e2f(ji,jj) 
     
    304304         CALL iom_put( "abspotvor", z2d )                  ! absolute potential vorticity ( q ) 
    305305         ! 
    306          DO_2D_10_10   
     306         DO_2D( 1, 0, 1, 0 )   
    307307            z2d(ji,jj) = 0.5_wp * z2d(ji,jj)  * z2d(ji,jj)  
    308308         END_2D 
Note: See TracChangeset for help on using the changeset viewer.