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 13469 for NEMO/branches/2020/temporary_r4_trunk/src/ICE/icedyn_rdgrft.F90 – NEMO

Ignore:
Timestamp:
2020-09-15T12:49:18+02:00 (4 years ago)
Author:
smasson
Message:

r4_trunk: first change of DO loops for routines to be merged, see #2523

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/temporary_r4_trunk/src/ICE/icedyn_rdgrft.F90

    r13466 r13469  
    159159      npti = 0   ;   nptidx(:) = 0 
    160160      ipti = 0   ;   iptidx(:) = 0 
    161       DO jj = 1, jpj 
    162          DO ji = 1, jpi 
    163             IF ( at_i(ji,jj) > epsi10 ) THEN 
    164                npti           = npti + 1 
    165                nptidx( npti ) = (jj - 1) * jpi + ji 
    166             ENDIF 
    167          END DO 
    168       END DO 
     161      DO_2D_11_11 
     162         IF ( at_i(ji,jj) > epsi10 ) THEN 
     163            npti           = npti + 1 
     164            nptidx( npti ) = (jj - 1) * jpi + ji 
     165         ENDIF 
     166      END_2D 
    169167       
    170168      !-------------------------------------------------------- 
     
    777775      !                              !--------------------------------------------------! 
    778776      CASE( 1 )               !--- Spatial smoothing 
    779          DO jj = 2, jpjm1 
    780             DO ji = 2, jpim1 
    781                IF ( SUM( a_i(ji,jj,:) ) > 0._wp ) THEN  
    782                   zworka(ji,jj) = ( 4.0 * strength(ji,jj)              & 
    783                      &                  + strength(ji-1,jj) * tmask(ji-1,jj,1) + strength(ji+1,jj) * tmask(ji+1,jj,1) &   
    784                      &                  + strength(ji,jj-1) * tmask(ji,jj-1,1) + strength(ji,jj+1) * tmask(ji,jj+1,1) & 
    785                      &            ) / ( 4.0 + tmask(ji-1,jj,1) + tmask(ji+1,jj,1) + tmask(ji,jj-1,1) + tmask(ji,jj+1,1) ) 
    786                ELSE 
    787                   zworka(ji,jj) = 0._wp 
    788                ENDIF 
    789             END DO 
    790          END DO 
     777         DO_2D_00_00 
     778            IF ( SUM( a_i(ji,jj,:) ) > 0._wp ) THEN  
     779               zworka(ji,jj) = ( 4.0 * strength(ji,jj)              & 
     780                  &                  + strength(ji-1,jj) * tmask(ji-1,jj,1) + strength(ji+1,jj) * tmask(ji+1,jj,1) &   
     781                  &                  + strength(ji,jj-1) * tmask(ji,jj-1,1) + strength(ji,jj+1) * tmask(ji,jj+1,1) & 
     782                  &            ) / ( 4.0 + tmask(ji-1,jj,1) + tmask(ji+1,jj,1) + tmask(ji,jj-1,1) + tmask(ji,jj+1,1) ) 
     783            ELSE 
     784               zworka(ji,jj) = 0._wp 
     785            ENDIF 
     786         END_2D 
    791787          
    792          DO jj = 2, jpjm1 
    793             DO ji = 2, jpim1 
    794                strength(ji,jj) = zworka(ji,jj) 
    795             END DO 
    796          END DO 
     788         DO_2D_00_00 
     789            strength(ji,jj) = zworka(ji,jj) 
     790         END_2D 
    797791         CALL lbc_lnk( 'icedyn_rdgrft', strength, 'T', 1. ) 
    798792         ! 
     
    803797         ENDIF 
    804798         ! 
    805          DO jj = 2, jpjm1 
    806             DO ji = 2, jpim1 
    807                IF ( SUM( a_i(ji,jj,:) ) > 0._wp ) THEN  
    808                   itframe = 1 ! number of time steps for the running mean 
    809                   IF ( zstrp1(ji,jj) > 0._wp ) itframe = itframe + 1 
    810                   IF ( zstrp2(ji,jj) > 0._wp ) itframe = itframe + 1 
    811                   zp = ( strength(ji,jj) + zstrp1(ji,jj) + zstrp2(ji,jj) ) / itframe 
    812                   zstrp2  (ji,jj) = zstrp1  (ji,jj) 
    813                   zstrp1  (ji,jj) = strength(ji,jj) 
    814                   strength(ji,jj) = zp 
    815                ENDIF 
    816             END DO 
    817          END DO 
     799         DO_2D_00_00 
     800            IF ( SUM( a_i(ji,jj,:) ) > 0._wp ) THEN  
     801               itframe = 1 ! number of time steps for the running mean 
     802               IF ( zstrp1(ji,jj) > 0._wp ) itframe = itframe + 1 
     803               IF ( zstrp2(ji,jj) > 0._wp ) itframe = itframe + 1 
     804               zp = ( strength(ji,jj) + zstrp1(ji,jj) + zstrp2(ji,jj) ) / itframe 
     805               zstrp2  (ji,jj) = zstrp1  (ji,jj) 
     806               zstrp1  (ji,jj) = strength(ji,jj) 
     807               strength(ji,jj) = zp 
     808            ENDIF 
     809         END_2D 
    818810         CALL lbc_lnk( 'icedyn_rdgrft', strength, 'T', 1. ) 
    819811         ! 
Note: See TracChangeset for help on using the changeset viewer.